@askexenow/exe-os 0.9.166 → 0.9.167
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/backup.sh +45 -7
- package/deploy/compose/setup.sh +7 -0
- package/deploy/stack-manifests/v0.9.json +40 -1
- package/dist/{active-agent-R2KMWMR6.js → active-agent-DGTIJN2U.js} +2 -2
- package/dist/{active-agent-CYMM3QQA.js → active-agent-HVMLG6FH.js} +2 -2
- package/dist/{agentic-ontology-GKAKYNPE.js → agentic-ontology-S54AFODT.js} +1 -1
- package/dist/{backfill-metadata-Z5SYUWAV.js → backfill-metadata-74IWETRF.js} +4 -3
- package/dist/{behaviors-QGU6XI5R.js → behaviors-LZVAVHTC.js} +2 -2
- package/dist/bin/agentic-ontology-backfill.js +5 -4
- package/dist/bin/agentic-reflection-backfill.js +6 -5
- package/dist/bin/agentic-semantic-label.js +5 -4
- package/dist/bin/backfill-conversations.js +5 -4
- package/dist/bin/backfill-responses.js +5 -4
- package/dist/bin/backfill-vectors.js +6 -5
- package/dist/bin/bulk-sync-postgres.js +6 -5
- package/dist/bin/cleanup-stale-review-tasks.js +9 -9
- package/dist/bin/cli.js +16 -13
- package/dist/bin/daily-summary.js +0 -217
- package/dist/bin/deferred-daemon-restart.js +8 -0
- package/dist/bin/exe-agent-config.js +1 -1
- package/dist/bin/exe-agent.js +10 -10
- package/dist/bin/exe-assign.js +7 -6
- package/dist/bin/exe-boot.js +20 -19
- package/dist/bin/exe-call.js +4 -4
- package/dist/bin/exe-cloud.js +3 -3
- package/dist/bin/exe-dispatch.js +9 -9
- package/dist/bin/exe-doctor.js +1 -1
- package/dist/bin/exe-export-behaviors.js +7 -6
- package/dist/bin/exe-forget.js +6 -5
- package/dist/bin/exe-gateway.js +5 -5
- package/dist/bin/exe-heartbeat.js +9 -9
- package/dist/bin/exe-kill.js +13 -12
- package/dist/bin/exe-launch-agent.js +11 -10
- package/dist/bin/exe-new-employee.js +6 -6
- package/dist/bin/exe-pending-messages.js +10 -10
- package/dist/bin/exe-pending-notifications.js +9 -9
- package/dist/bin/exe-pending-reviews.js +9 -9
- package/dist/bin/exe-rename.js +4 -4
- package/dist/bin/exe-review.js +12 -11
- package/dist/bin/exe-search.js +5 -4
- package/dist/bin/exe-session-cleanup.js +19 -14
- package/dist/bin/exe-settings.js +3 -3
- package/dist/bin/exe-start-codex.js +11 -10
- package/dist/bin/exe-start-opencode.js +8 -7
- package/dist/bin/exe-status.js +10 -10
- package/dist/bin/exe-team.js +2 -2
- package/dist/bin/git-sweep.js +9 -9
- package/dist/bin/graph-backfill.js +4 -3
- package/dist/bin/graph-export.js +5 -4
- package/dist/bin/import-history.js +171 -0
- package/dist/bin/install-launchd.js +41 -0
- package/dist/bin/install.js +50 -74
- package/dist/bin/intercom-check.js +4 -4
- package/dist/bin/postgres-agentic-reflection-backfill.js +2 -2
- package/dist/bin/postgres-agentic-semantic-backfill.js +4 -4
- package/dist/bin/pre-publish.js +1 -1
- package/dist/bin/scan-tasks.js +22 -12
- package/dist/bin/setup.js +1 -1
- package/dist/bin/shard-migrate.js +4 -3
- package/dist/bin/stack-update.js +61 -857
- package/dist/bin/vps-backup.js +170 -0
- package/dist/bin/vps-health-gate.js +232 -0
- package/dist/{capacity-monitor-ZEAE4WP2.js → capacity-monitor-JBZB2S4P.js} +10 -10
- package/dist/{catchup-brief-OGWCHENC.js → catchup-brief-HE2EMZS5.js} +12 -11
- package/dist/{chunk-DJJNB47C.js → chunk-27DO3EZO.js} +1 -1
- package/dist/{chunk-45FYZIHI.js → chunk-32YUET3Y.js} +2 -2
- package/dist/{chunk-Y75ECPO5.js → chunk-3FW5LUGI.js} +2 -2
- package/dist/{chunk-4OZGQZ4U.js → chunk-3M3O56VT.js} +636 -179
- package/dist/{chunk-77WQOD6J.js → chunk-4CXUZ4NI.js} +2 -2
- package/dist/{chunk-PBXWPHEK.js → chunk-4VEHJZ6R.js} +1 -1
- package/dist/{chunk-TH22QIEC.js → chunk-6A4COFDG.js} +1 -1
- package/dist/{chunk-ACBTCC2L.js → chunk-7OJH2A6I.js} +1 -1
- package/dist/{chunk-NHCOTCI6.js → chunk-A7SGEBXJ.js} +2 -2
- package/dist/{chunk-5MPQSNZF.js → chunk-AUTCT6AY.js} +1 -1
- package/dist/{chunk-OEKSTOTE.js → chunk-AZAZ2C75.js} +1 -1
- package/dist/chunk-CHCA3ZM2.js +167 -0
- package/dist/{chunk-X347L57O.js → chunk-CSTJQDOE.js} +4 -3
- package/dist/{chunk-B234R3VW.js → chunk-D7WLV6WD.js} +2 -2
- package/dist/{chunk-GMXF3AHJ.js → chunk-DGAONW36.js} +1 -1
- package/dist/chunk-EAT5YL3W.js +229 -0
- package/dist/{chunk-OD4H5YCJ.js → chunk-EKTQE2R5.js} +8 -8
- package/dist/{chunk-Z44PC42G.js → chunk-ELUBA7XL.js} +2 -2
- package/dist/{chunk-ZWS6XQER.js → chunk-F5AKOE4P.js} +7 -7
- package/dist/{chunk-T5YULDDO.js → chunk-FVI4UBKO.js} +27 -4
- package/dist/{chunk-ESRI7MFI.js → chunk-GAN7PW6G.js} +28 -24
- package/dist/{chunk-K4OWYJSP.js → chunk-GM2WZTG3.js} +2 -2
- package/dist/{chunk-TAB5QGIK.js → chunk-GZYQTPTF.js} +3 -3
- package/dist/{chunk-CXDU5DE3.js → chunk-IAUNGATJ.js} +1 -1
- package/dist/{chunk-YS63NS6M.js → chunk-IHSM5GR4.js} +1 -1
- package/dist/{chunk-23PTS2ZD.js → chunk-IP7KJAUW.js} +117 -15
- package/dist/{chunk-D6IMJAV2.js → chunk-J64P2LB2.js} +2 -2
- package/dist/{chunk-CXAVSQZM.js → chunk-JXMSCKRM.js} +1 -1
- package/dist/{chunk-RQMK3IQH.js → chunk-K4OTJP6N.js} +14 -7
- package/dist/{chunk-L7ROZR2H.js → chunk-KXAUMIOX.js} +1 -1
- package/dist/{chunk-TPC3LAP7.js → chunk-LGY2BIOT.js} +13 -0
- package/dist/{chunk-RPIDSBK7.js → chunk-LLHRJEE4.js} +3 -3
- package/dist/{chunk-6WG2VIKC.js → chunk-LM7H6XU4.js} +1 -1
- package/dist/{chunk-Y6GMKZZ2.js → chunk-LOFFGJSY.js} +150 -23
- package/dist/{chunk-W7SDGBEC.js → chunk-MFI5OXYW.js} +52 -84
- package/dist/{chunk-KNPEVPYG.js → chunk-MSSQWF6X.js} +2 -2
- package/dist/{chunk-QIQAO3VG.js → chunk-NEFFFKMD.js} +3 -3
- package/dist/{chunk-YUC552KZ.js → chunk-NEHONJJC.js} +3 -3
- package/dist/{chunk-KZ7SXZ2V.js → chunk-NFMQRLCD.js} +1 -1
- package/dist/{chunk-52HCNDPG.js → chunk-O4TATDOV.js} +1 -1
- package/dist/{chunk-AR3OYGLB.js → chunk-PEFBRL4S.js} +28 -6
- package/dist/{chunk-AEUXUEJG.js → chunk-PEXVU3HU.js} +5 -3
- package/dist/chunk-Q2G5C3HV.js +217 -0
- package/dist/{chunk-KOO56JVC.js → chunk-Q6N6LDEJ.js} +1 -1
- package/dist/{chunk-TXSJ2L5O.js → chunk-QI4IXJN7.js} +1 -1
- package/dist/{chunk-HLVQ5Y7B.js → chunk-RE4VLK45.js} +1 -1
- package/dist/{chunk-TF6SZGDT.js → chunk-SA2PH6WY.js} +1 -1
- package/dist/{chunk-5RSYY7BE.js → chunk-SJYOPYXH.js} +117 -9
- package/dist/{chunk-PJGHBANY.js → chunk-TTJE7CCU.js} +1 -1
- package/dist/{chunk-A7KEWR6S.js → chunk-TXWQPL2U.js} +1 -1
- package/dist/{chunk-XXSJ35J5.js → chunk-U5ZH52FB.js} +2 -2
- package/dist/{chunk-G4FDG3LK.js → chunk-UVNDLF74.js} +63 -40
- package/dist/{chunk-5OD3AFRW.js → chunk-V6RCZ25F.js} +1 -1
- package/dist/{chunk-LHMBIFKD.js → chunk-VYNNN2S3.js} +4 -4
- package/dist/chunk-WCYT54XP.js +934 -0
- package/dist/{chunk-5AMSQRHT.js → chunk-XGYSTVUH.js} +1 -1
- package/dist/{chunk-MKZBHM6A.js → chunk-XLWF3C4R.js} +4 -4
- package/dist/{chunk-YL36L2SN.js → chunk-Y7YHLV57.js} +1 -1
- package/dist/{chunk-HZC4MR4H.js → chunk-YBKB2PXY.js} +1 -1
- package/dist/{chunk-NWM3A4TK.js → chunk-ZDNLKXZA.js} +1 -1
- package/dist/{chunk-O7KW6QMH.js → chunk-ZW4TKQUM.js} +15 -5
- package/dist/{chunk-6BURHBE6.js → chunk-ZXB44R3E.js} +32 -11
- package/dist/co-occurrence-WCED475N.js +73 -0
- package/dist/{code-context-index-B6VIWPSF.js → code-context-index-LSZ3DKTJ.js} +2 -2
- package/dist/{crdt-sync-XA22KI3S.js → crdt-sync-PBXZTHZC.js} +1 -1
- package/dist/{crm-webhook-CIZNOEY4.js → crm-webhook-W7Q25VZU.js} +2 -2
- package/dist/{cto-delegation-gate-H5IULFRC.js → cto-delegation-gate-JKULOLMC.js} +8 -8
- package/dist/{daemon-orchestration-VO5XQIJL.js → daemon-orchestration-CHV6MB42.js} +13 -11
- package/dist/{exe-drift-DMT75WR3.js → exe-drift-PW36OULT.js} +2 -2
- package/dist/{exe-export-2RZWOSX6.js → exe-export-XQOD3KE6.js} +6 -5
- package/dist/{exe-import-NFNYATHL.js → exe-import-QOFP67LW.js} +6 -5
- package/dist/{exe-key-4D7CF3BU.js → exe-key-WQ34UZR6.js} +1 -1
- package/dist/{fast-db-init-LAEISZQ2.js → fast-db-init-UKETGWQI.js} +1 -1
- package/dist/gateway/index.js +6 -6
- package/dist/{git-staleness-M46AYLPP.js → git-staleness-ATV5CGAP.js} +1 -1
- package/dist/{git-task-sweep-PXOS56YT.js → git-task-sweep-KXZRIP4T.js} +9 -9
- package/dist/{global-procedures-KROQQX54.js → global-procedures-G6IKCYKM.js} +3 -3
- package/dist/{graph-auto-extract-QJ2BBJM2.js → graph-auto-extract-ZJXJOLE2.js} +1 -1
- package/dist/hooks/bug-report-worker.js +10 -10
- package/dist/hooks/codex-stop-task-finalizer.js +10 -10
- package/dist/hooks/commit-complete.js +11 -11
- package/dist/hooks/error-recall.js +8 -7
- package/dist/hooks/exe-heartbeat-hook.js +2 -2
- package/dist/hooks/ingest-worker.js +3 -3
- package/dist/hooks/ingest.js +9 -9
- package/dist/hooks/instructions-loaded.js +3 -3
- package/dist/hooks/notification.js +3 -3
- package/dist/hooks/post-compact.js +10 -10
- package/dist/hooks/post-tool-combined.js +5 -5
- package/dist/hooks/pre-compact.js +16 -16
- package/dist/hooks/pre-tool-use.js +14 -14
- package/dist/hooks/prompt-submit.js +30 -29
- package/dist/hooks/session-end.js +46 -25
- package/dist/hooks/session-start.js +48 -10
- package/dist/hooks/stop.js +17 -17
- package/dist/hooks/subagent-stop.js +10 -10
- package/dist/hooks/summary-worker.js +17 -16
- package/dist/index.js +17 -17
- package/dist/{installer-SDBLJBAB.js → installer-DE2LH5EC.js} +4 -4
- package/dist/{installer-ZA6QNQ4P.js → installer-M2MDS7HC.js} +4 -4
- package/dist/{installer-6KAY6LD6.js → installer-VE23YFXU.js} +4 -4
- package/dist/{intercom-queue-K3DVKSPJ.js → intercom-queue-RNM6EPGA.js} +1 -1
- package/dist/keyword-extractor-UJHFWVZE.js +11 -0
- package/dist/lib/cloud-sync.js +3 -3
- package/dist/lib/consolidation.js +5 -4
- package/dist/lib/database.js +1 -1
- package/dist/lib/db-daemon-client.js +1 -1
- package/dist/lib/db.js +1 -1
- package/dist/lib/embed-worker.js +98 -0
- package/dist/lib/embedder.js +2 -2
- package/dist/lib/employee-templates.js +4 -4
- package/dist/lib/employees.js +1 -1
- package/dist/lib/exe-daemon-client.js +1 -1
- package/dist/lib/exe-daemon.js +523 -500
- package/dist/lib/hybrid-search.js +5 -6
- package/dist/lib/identity.js +1 -1
- package/dist/lib/messaging.js +9 -9
- package/dist/lib/reminders.js +2 -2
- package/dist/lib/schedules.js +5 -4
- package/dist/lib/skill-learning.js +3 -3
- package/dist/lib/store.js +4 -3
- package/dist/lib/task-router.js +2 -2
- package/dist/lib/tasks.js +9 -9
- package/dist/lib/tmux-routing.js +8 -8
- package/dist/lib/tmux-transport.js +1 -1
- package/dist/lib/token-spend.js +2 -2
- package/dist/lib/transport.js +2 -2
- package/dist/lib/ws-client.js +3 -1
- package/dist/mcp/register-tools.js +54 -51
- package/dist/mcp/server.js +58 -55
- 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 +11 -11
- 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 +11 -11
- package/dist/mcp/tools/send-message.js +11 -11
- package/dist/mcp/tools/update-task.js +10 -10
- package/dist/{mcp-http-config-LK2EDOEJ.js → mcp-http-config-Z2E4VUOF.js} +2 -2
- package/dist/{memory-cards-V3DKSRWL.js → memory-cards-SFDKDIAW.js} +1 -1
- package/dist/memory-graph-extractor-YD4GNH7T.js +16 -0
- package/dist/{memory-poisoning-defense-3B75HS74.js → memory-poisoning-defense-VEGNFELN.js} +1 -1
- package/dist/{memory-queue-client-LFPZPPQA.js → memory-queue-client-5HB2XUH7.js} +2 -2
- package/dist/{memory-reflection-HTDAUUE5.js → memory-reflection-MTPRQNI6.js} +2 -2
- package/dist/{notifications-76VCYXWW.js → notifications-6TCE6OBG.js} +8 -8
- package/dist/{orchestrator-CBNSBI5P.js → orchestrator-W2GYJR23.js} +10 -10
- package/dist/{plan-limits-SOR3QXKV.js → plan-limits-4EP46323.js} +2 -2
- package/dist/{projection-worker-FK5YOEIL.js → projection-worker-EBUYNMU2.js} +1 -1
- package/dist/{review-polling-ZLNDUKL4.js → review-polling-2N7KQFZZ.js} +9 -9
- package/dist/runtime/index.js +15 -15
- package/dist/{session-events-CUSPL25D.js → session-events-K47FHAXJ.js} +9 -9
- package/dist/{session-kill-telemetry-FLBRHBDP.js → session-kill-telemetry-275YUXM5.js} +2 -2
- package/dist/{session-scope-PX2ABSJO.js → session-scope-XSFJZEER.js} +8 -8
- package/dist/{setup-wizard-Y6PBZGFX.js → setup-wizard-UEO7HYLQ.js} +1 -1
- package/dist/{skill-refinement-L7PGKCYO.js → skill-refinement-WXBTANDQ.js} +1 -1
- package/dist/stack-update-2B2UXREV.js +50 -0
- package/dist/{task-enforcement-7FUILB63.js → task-enforcement-2JIJSXPU.js} +14 -16
- package/dist/{task-scope-2N45TE32.js → task-scope-W73Z3XWE.js} +8 -8
- package/dist/{tasks-crud-ADLCGHGH.js → tasks-crud-HPJKI3QQ.js} +8 -8
- package/dist/{tasks-review-PJ2DUI6N.js → tasks-review-MXLMPGNZ.js} +8 -8
- package/dist/{token-budget-T5DFXVTM.js → token-budget-BA46CVHX.js} +1 -1
- package/dist/{tool-capability-index-6JJN6ZRC.js → tool-capability-index-42VVN5BS.js} +1 -1
- package/dist/{tool-telemetry-72PVO5HV.js → tool-telemetry-GZ5E2AUL.js} +1 -1
- package/dist/tui/App.js +22 -18
- package/dist/{tui-data-63JHE6EZ.js → tui-data-PVXWQCJX.js} +8 -8
- package/dist/{worker-gate-REVBJUZ6.js → worker-gate-WTTK64TK.js} +1 -1
- package/dist/{workflow-engine-W2WNHJG5.js → workflow-engine-LT3WTT7V.js} +2 -2
- package/package.json +1 -1
- package/release-notes.json +209 -209
- /package/dist/{chunk-BNOZUS6J.js → chunk-6VVCAVRT.js} +0 -0
- /package/dist/{chunk-IC7GKK6I.js → chunk-CWQZZ7X3.js} +0 -0
- /package/dist/{chunk-ZI2ZVERO.js → chunk-EIW5GOBW.js} +0 -0
- /package/dist/{chunk-2BGGDNRD.js → chunk-IPPJEM26.js} +0 -0
- /package/dist/{chunk-4ISDU5KR.js → chunk-K5UR73PM.js} +0 -0
- /package/dist/{chunk-ZWRTVUQ6.js → chunk-KIMO5S45.js} +0 -0
- /package/dist/{chunk-S2FX5KJ4.js → chunk-WBLILGAP.js} +0 -0
- /package/dist/{core-memory-PCJ3L46L.js → core-memory-RAC6M67J.js} +0 -0
- /package/dist/{entity-boost-GHFPE6A2.js → entity-boost-5FIRFRDC.js} +0 -0
- /package/dist/{message-queue-client-CHRQYBH5.js → message-queue-client-PTQ2S7D7.js} +0 -0
- /package/dist/{wiki-acl-QYRAYYVQ.js → wiki-acl-MSDRCIAI.js} +0 -0
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
import {
|
|
20
20
|
createCRMWebhookHandler,
|
|
21
21
|
parseTwentyWebhook
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-AZAZ2C75.js";
|
|
23
23
|
import {
|
|
24
24
|
BotRegistry,
|
|
25
25
|
BotRuntime,
|
|
@@ -42,7 +42,7 @@ import {
|
|
|
42
42
|
retryWithBackoff,
|
|
43
43
|
routeMessage,
|
|
44
44
|
validateGatewayConfig
|
|
45
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-MSSQWF6X.js";
|
|
46
46
|
import {
|
|
47
47
|
OllamaProvider
|
|
48
48
|
} from "./chunk-FWFFZGSC.js";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
PLATFORM_PROCEDURES,
|
|
3
3
|
PLATFORM_PROCEDURE_TITLES
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-LGY2BIOT.js";
|
|
5
5
|
import {
|
|
6
6
|
getClient
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-SJYOPYXH.js";
|
|
8
8
|
|
|
9
9
|
// src/lib/global-procedures.ts
|
|
10
10
|
import { randomUUID } from "crypto";
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
// src/lib/keyword-extractor.ts
|
|
2
|
+
var STOP_WORDS = /* @__PURE__ */ new Set([
|
|
3
|
+
"the",
|
|
4
|
+
"a",
|
|
5
|
+
"an",
|
|
6
|
+
"is",
|
|
7
|
+
"are",
|
|
8
|
+
"was",
|
|
9
|
+
"were",
|
|
10
|
+
"be",
|
|
11
|
+
"been",
|
|
12
|
+
"being",
|
|
13
|
+
"have",
|
|
14
|
+
"has",
|
|
15
|
+
"had",
|
|
16
|
+
"do",
|
|
17
|
+
"does",
|
|
18
|
+
"did",
|
|
19
|
+
"will",
|
|
20
|
+
"would",
|
|
21
|
+
"could",
|
|
22
|
+
"should",
|
|
23
|
+
"may",
|
|
24
|
+
"might",
|
|
25
|
+
"shall",
|
|
26
|
+
"can",
|
|
27
|
+
"need",
|
|
28
|
+
"must",
|
|
29
|
+
"to",
|
|
30
|
+
"of",
|
|
31
|
+
"in",
|
|
32
|
+
"for",
|
|
33
|
+
"on",
|
|
34
|
+
"with",
|
|
35
|
+
"at",
|
|
36
|
+
"by",
|
|
37
|
+
"from",
|
|
38
|
+
"as",
|
|
39
|
+
"into",
|
|
40
|
+
"through",
|
|
41
|
+
"during",
|
|
42
|
+
"before",
|
|
43
|
+
"after",
|
|
44
|
+
"above",
|
|
45
|
+
"below",
|
|
46
|
+
"between",
|
|
47
|
+
"out",
|
|
48
|
+
"off",
|
|
49
|
+
"over",
|
|
50
|
+
"under",
|
|
51
|
+
"again",
|
|
52
|
+
"further",
|
|
53
|
+
"then",
|
|
54
|
+
"once",
|
|
55
|
+
"here",
|
|
56
|
+
"there",
|
|
57
|
+
"when",
|
|
58
|
+
"where",
|
|
59
|
+
"why",
|
|
60
|
+
"how",
|
|
61
|
+
"all",
|
|
62
|
+
"each",
|
|
63
|
+
"every",
|
|
64
|
+
"both",
|
|
65
|
+
"few",
|
|
66
|
+
"more",
|
|
67
|
+
"most",
|
|
68
|
+
"other",
|
|
69
|
+
"some",
|
|
70
|
+
"such",
|
|
71
|
+
"no",
|
|
72
|
+
"not",
|
|
73
|
+
"only",
|
|
74
|
+
"own",
|
|
75
|
+
"same",
|
|
76
|
+
"so",
|
|
77
|
+
"than",
|
|
78
|
+
"too",
|
|
79
|
+
"very",
|
|
80
|
+
"just",
|
|
81
|
+
"and",
|
|
82
|
+
"but",
|
|
83
|
+
"or",
|
|
84
|
+
"if",
|
|
85
|
+
"while",
|
|
86
|
+
"because",
|
|
87
|
+
"until",
|
|
88
|
+
"about",
|
|
89
|
+
"this",
|
|
90
|
+
"that",
|
|
91
|
+
"these",
|
|
92
|
+
"those",
|
|
93
|
+
"it",
|
|
94
|
+
"its",
|
|
95
|
+
"they",
|
|
96
|
+
"them",
|
|
97
|
+
"their",
|
|
98
|
+
"we",
|
|
99
|
+
"our",
|
|
100
|
+
"you",
|
|
101
|
+
"your",
|
|
102
|
+
"he",
|
|
103
|
+
"she",
|
|
104
|
+
"his",
|
|
105
|
+
"her"
|
|
106
|
+
]);
|
|
107
|
+
var FILE_PATH_RE = /(?:[\w@.-]+\/)+[\w@.-]+\.[\w]+/g;
|
|
108
|
+
var DOTTED_ID_RE = /\b[a-zA-Z_][\w]*(?:\.[\w]+){1,5}\b/g;
|
|
109
|
+
var CAMEL_CASE_RE = /\b[a-z][a-zA-Z0-9]*[A-Z][a-zA-Z0-9]*\b/g;
|
|
110
|
+
var PASCAL_CASE_RE = /\b[A-Z][a-z]+(?:[A-Z][a-z]+)+\b/g;
|
|
111
|
+
var UPPER_SNAKE_RE = /\b[A-Z][A-Z0-9_]{2,}\b/g;
|
|
112
|
+
var SNAKE_CASE_RE = /\b[a-z]+_[a-z_]+\b/g;
|
|
113
|
+
var KEBAB_FILE_RE = /\b[\w]+-[\w-]+\.[\w]+\b/g;
|
|
114
|
+
var ERROR_CODE_RE = /\b(?:E[A-Z]+|ERR_[A-Z_]+|[0-9]{3})\b/g;
|
|
115
|
+
function extractKeywords(text) {
|
|
116
|
+
if (!text || text.length === 0) return [];
|
|
117
|
+
const keywords = /* @__PURE__ */ new Set();
|
|
118
|
+
for (const match of text.matchAll(FILE_PATH_RE)) {
|
|
119
|
+
keywords.add(match[0]);
|
|
120
|
+
}
|
|
121
|
+
for (const match of text.matchAll(DOTTED_ID_RE)) {
|
|
122
|
+
if (match[0].length > 4) keywords.add(match[0]);
|
|
123
|
+
}
|
|
124
|
+
for (const match of text.matchAll(KEBAB_FILE_RE)) {
|
|
125
|
+
keywords.add(match[0]);
|
|
126
|
+
}
|
|
127
|
+
for (const match of text.matchAll(CAMEL_CASE_RE)) {
|
|
128
|
+
keywords.add(match[0]);
|
|
129
|
+
}
|
|
130
|
+
for (const match of text.matchAll(PASCAL_CASE_RE)) {
|
|
131
|
+
keywords.add(match[0]);
|
|
132
|
+
}
|
|
133
|
+
for (const match of text.matchAll(UPPER_SNAKE_RE)) {
|
|
134
|
+
if (!STOP_WORDS.has(match[0].toLowerCase())) {
|
|
135
|
+
keywords.add(match[0]);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
for (const match of text.matchAll(SNAKE_CASE_RE)) {
|
|
139
|
+
if (match[0].length > 4 && !STOP_WORDS.has(match[0])) {
|
|
140
|
+
keywords.add(match[0]);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
for (const match of text.matchAll(ERROR_CODE_RE)) {
|
|
144
|
+
keywords.add(match[0]);
|
|
145
|
+
}
|
|
146
|
+
const words = text.replace(/[^a-zA-Z0-9\s_.-]/g, " ").split(/\s+/).filter((w) => w.length >= 3 && !STOP_WORDS.has(w.toLowerCase()));
|
|
147
|
+
for (const word of words) {
|
|
148
|
+
if (word.length >= 4 && !STOP_WORDS.has(word.toLowerCase())) {
|
|
149
|
+
keywords.add(word);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
return [...keywords];
|
|
153
|
+
}
|
|
154
|
+
function keywordsToString(keywords) {
|
|
155
|
+
const unique = [...new Set(keywords)];
|
|
156
|
+
return unique.slice(0, 200).join(" ");
|
|
157
|
+
}
|
|
158
|
+
function stringToKeywords(stored) {
|
|
159
|
+
if (!stored) return [];
|
|
160
|
+
return stored.split(/\s+/).filter((k) => k.length > 0);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
export {
|
|
164
|
+
extractKeywords,
|
|
165
|
+
keywordsToString,
|
|
166
|
+
stringToKeywords
|
|
167
|
+
};
|
|
@@ -39,7 +39,8 @@ var TmuxTransport = class {
|
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
sendKeys(target, keys) {
|
|
42
|
-
execFileSync("tmux", ["send-keys", "-t", target, keys
|
|
42
|
+
execFileSync("tmux", ["send-keys", "-t", target, keys], QUIET);
|
|
43
|
+
execFileSync("tmux", ["send-keys", "-t", target, "Enter"], QUIET);
|
|
43
44
|
}
|
|
44
45
|
/**
|
|
45
46
|
* Send text as literal characters, then submit with Enter as a separate call.
|
|
@@ -87,10 +88,10 @@ var TmuxTransport = class {
|
|
|
87
88
|
}
|
|
88
89
|
spawn(name, config) {
|
|
89
90
|
try {
|
|
90
|
-
const args = ["new-session", "-d", "-s", name];
|
|
91
|
+
const args = ["new-session", "-d", "-s", name, "-x", "200", "-y", "50"];
|
|
91
92
|
if (config.cwd) args.push("-c", config.cwd);
|
|
92
|
-
args.push(config.command);
|
|
93
93
|
execFileSync("tmux", args);
|
|
94
|
+
execFileSync("tmux", ["send-keys", "-t", name, config.command, "Enter"]);
|
|
94
95
|
return { sessionName: name };
|
|
95
96
|
} catch (e) {
|
|
96
97
|
return { sessionName: name, error: `spawn failed: ${e}` };
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getClient
|
|
3
|
+
} from "./chunk-SJYOPYXH.js";
|
|
4
|
+
|
|
5
|
+
// src/lib/memory-graph-extractor.ts
|
|
6
|
+
function entityId(type, name) {
|
|
7
|
+
return `mem:${type}:${name.toLowerCase().replace(/[^a-z0-9]/g, "-").replace(/-+/g, "-").replace(/^-|-$/g, "")}`;
|
|
8
|
+
}
|
|
9
|
+
function relationshipId(sourceId, targetId, relType) {
|
|
10
|
+
return `rel:${sourceId}:${relType}:${targetId}`;
|
|
11
|
+
}
|
|
12
|
+
var FILE_EXT_PATTERN = /(?:^|\s|['"`(])([a-zA-Z0-9_./-]+\.(?:ts|js|tsx|jsx|json|md|py|rs|go|toml|yaml|yml|css|html|sql|sh|bash|zsh|env|conf|cfg|xml|csv|lock))\b/g;
|
|
13
|
+
var PATH_PATTERN = /(?:^|\s|['"`(])((?:src|lib|bin|dist|tests?|__tests__|node_modules|\.?\w+)\/[a-zA-Z0-9_./-]+)/g;
|
|
14
|
+
function extractFilePaths(text) {
|
|
15
|
+
const paths = /* @__PURE__ */ new Set();
|
|
16
|
+
let match;
|
|
17
|
+
FILE_EXT_PATTERN.lastIndex = 0;
|
|
18
|
+
while ((match = FILE_EXT_PATTERN.exec(text)) !== null) {
|
|
19
|
+
const p = match[1].trim();
|
|
20
|
+
if (p.length >= 3 && p.length <= 200 && !p.startsWith("http")) {
|
|
21
|
+
paths.add(p);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
PATH_PATTERN.lastIndex = 0;
|
|
25
|
+
while ((match = PATH_PATTERN.exec(text)) !== null) {
|
|
26
|
+
const p = match[1].trim();
|
|
27
|
+
if (p.length >= 5 && p.length <= 200 && !p.startsWith("http") && p.includes("/")) {
|
|
28
|
+
paths.add(p);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return Array.from(paths).slice(0, 20);
|
|
32
|
+
}
|
|
33
|
+
var ERROR_PATTERNS = [
|
|
34
|
+
/\b(Error|TypeError|ReferenceError|SyntaxError|RangeError):\s*(.{10,80})/g,
|
|
35
|
+
/\b(ERR_[A-Z_]+)/g,
|
|
36
|
+
/\b(ENOENT|EACCES|EPERM|ECONNREFUSED|ETIMEDOUT|SQLITE_BUSY)\b/g,
|
|
37
|
+
/\bfailed\s+(?:to\s+)?(\w+(?:\s+\w+){0,3})/gi
|
|
38
|
+
];
|
|
39
|
+
function extractErrors(text) {
|
|
40
|
+
const errors = /* @__PURE__ */ new Set();
|
|
41
|
+
for (const pattern of ERROR_PATTERNS) {
|
|
42
|
+
pattern.lastIndex = 0;
|
|
43
|
+
let match;
|
|
44
|
+
while ((match = pattern.exec(text)) !== null) {
|
|
45
|
+
const err = (match[1] ?? match[0]).trim();
|
|
46
|
+
if (err.length >= 3 && err.length <= 100) {
|
|
47
|
+
errors.add(err);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
if (errors.size >= 5) break;
|
|
51
|
+
}
|
|
52
|
+
return Array.from(errors).slice(0, 5);
|
|
53
|
+
}
|
|
54
|
+
var IDENTIFIER_PATTERN = /\b([a-z][a-zA-Z0-9]{3,30}[A-Z][a-zA-Z0-9]{0,30}|[A-Z][a-zA-Z0-9]{2,30})\b/g;
|
|
55
|
+
var COMMON_WORDS = /* @__PURE__ */ new Set([
|
|
56
|
+
"Error",
|
|
57
|
+
"String",
|
|
58
|
+
"Number",
|
|
59
|
+
"Boolean",
|
|
60
|
+
"Object",
|
|
61
|
+
"Array",
|
|
62
|
+
"Promise",
|
|
63
|
+
"Buffer",
|
|
64
|
+
"Event",
|
|
65
|
+
"Date",
|
|
66
|
+
"Math",
|
|
67
|
+
"JSON",
|
|
68
|
+
"RegExp",
|
|
69
|
+
"Symbol",
|
|
70
|
+
"NULL",
|
|
71
|
+
"TRUE",
|
|
72
|
+
"FALSE",
|
|
73
|
+
"undefined",
|
|
74
|
+
"NaN",
|
|
75
|
+
"This",
|
|
76
|
+
"That",
|
|
77
|
+
"Each",
|
|
78
|
+
"Some",
|
|
79
|
+
"Every",
|
|
80
|
+
"Many"
|
|
81
|
+
]);
|
|
82
|
+
function extractIdentifiers(text) {
|
|
83
|
+
const counts = /* @__PURE__ */ new Map();
|
|
84
|
+
IDENTIFIER_PATTERN.lastIndex = 0;
|
|
85
|
+
let match;
|
|
86
|
+
while ((match = IDENTIFIER_PATTERN.exec(text)) !== null) {
|
|
87
|
+
const id = match[1];
|
|
88
|
+
if (!COMMON_WORDS.has(id) && id.length >= 4) {
|
|
89
|
+
counts.set(id, (counts.get(id) ?? 0) + 1);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return Array.from(counts.entries()).filter(([, count]) => count >= 2).map(([name]) => name).slice(0, 10);
|
|
93
|
+
}
|
|
94
|
+
function extractMemoryGraph(memoryText, agentId, projectName, toolName) {
|
|
95
|
+
const entities = [];
|
|
96
|
+
const relationships = [];
|
|
97
|
+
entities.push({ name: agentId, type: "agent" });
|
|
98
|
+
if (projectName && projectName !== "unknown") {
|
|
99
|
+
entities.push({ name: projectName, type: "project" });
|
|
100
|
+
relationships.push({
|
|
101
|
+
source: agentId,
|
|
102
|
+
sourceType: "agent",
|
|
103
|
+
target: projectName,
|
|
104
|
+
targetType: "project",
|
|
105
|
+
type: "works_on"
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
if (toolName && toolName !== "manual" && toolName !== "unknown") {
|
|
109
|
+
entities.push({ name: toolName, type: "tool" });
|
|
110
|
+
relationships.push({
|
|
111
|
+
source: agentId,
|
|
112
|
+
sourceType: "agent",
|
|
113
|
+
target: toolName,
|
|
114
|
+
targetType: "tool",
|
|
115
|
+
type: "used_tool"
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
const filePaths = extractFilePaths(memoryText);
|
|
119
|
+
for (const fp of filePaths) {
|
|
120
|
+
entities.push({ name: fp, type: "file" });
|
|
121
|
+
relationships.push({
|
|
122
|
+
source: agentId,
|
|
123
|
+
sourceType: "agent",
|
|
124
|
+
target: fp,
|
|
125
|
+
targetType: "file",
|
|
126
|
+
type: "modified"
|
|
127
|
+
});
|
|
128
|
+
if (projectName && projectName !== "unknown") {
|
|
129
|
+
relationships.push({
|
|
130
|
+
source: fp,
|
|
131
|
+
sourceType: "file",
|
|
132
|
+
target: projectName,
|
|
133
|
+
targetType: "project",
|
|
134
|
+
type: "belongs_to"
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
const errors = extractErrors(memoryText);
|
|
139
|
+
for (const err of errors) {
|
|
140
|
+
entities.push({ name: err, type: "error" });
|
|
141
|
+
relationships.push({
|
|
142
|
+
source: agentId,
|
|
143
|
+
sourceType: "agent",
|
|
144
|
+
target: err,
|
|
145
|
+
targetType: "error",
|
|
146
|
+
type: "encountered"
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
const identifiers = extractIdentifiers(memoryText);
|
|
150
|
+
for (const id of identifiers) {
|
|
151
|
+
entities.push({ name: id, type: "function" });
|
|
152
|
+
if (filePaths.length > 0) {
|
|
153
|
+
relationships.push({
|
|
154
|
+
source: filePaths[0],
|
|
155
|
+
sourceType: "file",
|
|
156
|
+
target: id,
|
|
157
|
+
targetType: "function",
|
|
158
|
+
type: "contains"
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
return { entities, relationships };
|
|
163
|
+
}
|
|
164
|
+
async function upsertMemoryGraph(result, memoryId) {
|
|
165
|
+
const client = getClient();
|
|
166
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
167
|
+
for (const e of result.entities) {
|
|
168
|
+
const id = entityId(e.type, e.name);
|
|
169
|
+
await client.execute({
|
|
170
|
+
sql: `INSERT INTO entities (id, name, type, first_seen, last_seen, properties)
|
|
171
|
+
VALUES (?, ?, ?, ?, ?, '{}')
|
|
172
|
+
ON CONFLICT(name, type) DO UPDATE SET last_seen = ?`,
|
|
173
|
+
args: [id, e.name, e.type, now, now, now]
|
|
174
|
+
});
|
|
175
|
+
await client.execute({
|
|
176
|
+
sql: `INSERT OR IGNORE INTO entity_memories (entity_id, memory_id)
|
|
177
|
+
VALUES (?, ?)`,
|
|
178
|
+
args: [id, memoryId]
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
try {
|
|
182
|
+
const { createCoOccurrenceEdges } = await import("./co-occurrence-WCED475N.js");
|
|
183
|
+
await createCoOccurrenceEdges(result.entities, memoryId);
|
|
184
|
+
} catch {
|
|
185
|
+
}
|
|
186
|
+
for (const r of result.relationships) {
|
|
187
|
+
const sourceId = entityId(r.sourceType, r.source);
|
|
188
|
+
const targetId = entityId(r.targetType, r.target);
|
|
189
|
+
const relId = relationshipId(sourceId, targetId, r.type);
|
|
190
|
+
await client.execute({
|
|
191
|
+
sql: `INSERT INTO relationships (id, source_entity_id, target_entity_id, type, weight, timestamp, properties)
|
|
192
|
+
VALUES (?, ?, ?, ?, 1.0, ?, '{}')
|
|
193
|
+
ON CONFLICT(source_entity_id, target_entity_id, type) DO UPDATE SET
|
|
194
|
+
weight = MIN(weight + 0.1, 10.0),
|
|
195
|
+
timestamp = ?`,
|
|
196
|
+
args: [relId, sourceId, targetId, r.type, now, now]
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
async function extractGraphForBatch(batch) {
|
|
201
|
+
for (const row of batch) {
|
|
202
|
+
try {
|
|
203
|
+
const graphResult = extractMemoryGraph(
|
|
204
|
+
row.raw_text,
|
|
205
|
+
row.agent_id,
|
|
206
|
+
row.project_name,
|
|
207
|
+
row.tool_name
|
|
208
|
+
);
|
|
209
|
+
if (graphResult.entities.length > 0) {
|
|
210
|
+
await upsertMemoryGraph(graphResult, row.id);
|
|
211
|
+
}
|
|
212
|
+
try {
|
|
213
|
+
const client = getClient();
|
|
214
|
+
await client.execute({
|
|
215
|
+
sql: `UPDATE memories SET graph_extracted = 1 WHERE id = ?`,
|
|
216
|
+
args: [row.id]
|
|
217
|
+
});
|
|
218
|
+
} catch {
|
|
219
|
+
}
|
|
220
|
+
} catch {
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
export {
|
|
226
|
+
extractMemoryGraph,
|
|
227
|
+
upsertMemoryGraph,
|
|
228
|
+
extractGraphForBatch
|
|
229
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
MultiAgentOrchestrator
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-VYNNN2S3.js";
|
|
4
4
|
import {
|
|
5
5
|
createQuietRenderer,
|
|
6
6
|
createTerminalRenderer,
|
|
@@ -33,6 +33,10 @@ import {
|
|
|
33
33
|
partitionTools,
|
|
34
34
|
zodToJsonSchema
|
|
35
35
|
} from "./chunk-JQ6TLNIV.js";
|
|
36
|
+
import {
|
|
37
|
+
composeHooks,
|
|
38
|
+
createDefaultHooks
|
|
39
|
+
} from "./chunk-O377P7GM.js";
|
|
36
40
|
import {
|
|
37
41
|
EMPLOYEE_PERMISSIONS,
|
|
38
42
|
checkPermission,
|
|
@@ -46,10 +50,6 @@ import {
|
|
|
46
50
|
matchInputPattern,
|
|
47
51
|
matchToolPattern
|
|
48
52
|
} from "./chunk-HF25XPZE.js";
|
|
49
|
-
import {
|
|
50
|
-
composeHooks,
|
|
51
|
-
createDefaultHooks
|
|
52
|
-
} from "./chunk-O377P7GM.js";
|
|
53
53
|
import {
|
|
54
54
|
StateBus,
|
|
55
55
|
orgBus
|
|
@@ -206,7 +206,7 @@ function createExeOSHooks(config) {
|
|
|
206
206
|
);
|
|
207
207
|
}
|
|
208
208
|
try {
|
|
209
|
-
const { listBehaviors } = await import("./behaviors-
|
|
209
|
+
const { listBehaviors } = await import("./behaviors-LZVAVHTC.js");
|
|
210
210
|
const behaviors = await listBehaviors(config.agentId, config.projectName, 12);
|
|
211
211
|
if (behaviors.length > 0) {
|
|
212
212
|
process.stderr.write(
|
|
@@ -327,7 +327,7 @@ function createExeOSHooks(config) {
|
|
|
327
327
|
async onSubagentStop(_reason) {
|
|
328
328
|
try {
|
|
329
329
|
const { getClient } = await import("./lib/database.js");
|
|
330
|
-
const { sessionScopeFilter } = await import("./task-scope-
|
|
330
|
+
const { sessionScopeFilter } = await import("./task-scope-W73Z3XWE.js");
|
|
331
331
|
const client = getClient();
|
|
332
332
|
const ehScope = sessionScopeFilter();
|
|
333
333
|
const tasks = await client.execute({
|
|
@@ -419,7 +419,7 @@ function createExeOSHooks(config) {
|
|
|
419
419
|
try {
|
|
420
420
|
const { writeMemory, flushBatch } = await import("./lib/store.js");
|
|
421
421
|
const { getClient } = await import("./lib/database.js");
|
|
422
|
-
const { sessionScopeFilter: cpScopeFilter } = await import("./task-scope-
|
|
422
|
+
const { sessionScopeFilter: cpScopeFilter } = await import("./task-scope-W73Z3XWE.js");
|
|
423
423
|
const client = getClient();
|
|
424
424
|
const cpScope = cpScopeFilter();
|
|
425
425
|
const tasks = await client.execute({
|
|
@@ -830,7 +830,7 @@ function formatReport(report, flags) {
|
|
|
830
830
|
return lines.join("\n");
|
|
831
831
|
}
|
|
832
832
|
async function fixNullVectors() {
|
|
833
|
-
const { tryAcquireWorkerSlot, registerWorkerPid } = await import("./worker-gate-
|
|
833
|
+
const { tryAcquireWorkerSlot, registerWorkerPid } = await import("./worker-gate-WTTK64TK.js");
|
|
834
834
|
if (!tryAcquireWorkerSlot()) {
|
|
835
835
|
process.stderr.write("[exe-doctor] Worker gate full \u2014 waiting for existing backfill workers to finish\n");
|
|
836
836
|
await new Promise((r) => setTimeout(r, 5e3));
|
|
@@ -951,7 +951,7 @@ function splitAtSentences(text, maxChunkSize) {
|
|
|
951
951
|
}
|
|
952
952
|
async function main(argv = process.argv.slice(2)) {
|
|
953
953
|
const flags = parseFlags(argv);
|
|
954
|
-
const { fastDbInit } = await import("./fast-db-init-
|
|
954
|
+
const { fastDbInit } = await import("./fast-db-init-UKETGWQI.js");
|
|
955
955
|
const client = await fastDbInit();
|
|
956
956
|
const report = await runAudit(client, flags);
|
|
957
957
|
console.log(formatReport(report, flags));
|
|
@@ -11,10 +11,10 @@ import {
|
|
|
11
11
|
sessionScopeFilter,
|
|
12
12
|
updateTaskStatus,
|
|
13
13
|
writeNotification
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-MFI5OXYW.js";
|
|
15
15
|
import {
|
|
16
16
|
getTransport
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-TXWQPL2U.js";
|
|
18
18
|
import {
|
|
19
19
|
getSessionKey
|
|
20
20
|
} from "./chunk-CVYC6DUW.js";
|
|
@@ -27,7 +27,7 @@ import {
|
|
|
27
27
|
isCoordinatorName,
|
|
28
28
|
isMultiInstance,
|
|
29
29
|
shouldAutoInstance
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-SJYOPYXH.js";
|
|
31
31
|
import {
|
|
32
32
|
EXE_AI_DIR
|
|
33
33
|
} from "./chunk-4GXRETYL.js";
|
|
@@ -69,7 +69,7 @@ async function cascadeUnblock(taskId, baseDir, now) {
|
|
|
69
69
|
}
|
|
70
70
|
if (unblockedRows.rows.length > 0 && !process.env.VITEST) {
|
|
71
71
|
try {
|
|
72
|
-
const { queueIntercom } = await import("./intercom-queue-
|
|
72
|
+
const { queueIntercom } = await import("./intercom-queue-RNM6EPGA.js");
|
|
73
73
|
const dispatched = /* @__PURE__ */ new Set();
|
|
74
74
|
for (const ur of unblockedRows.rows) {
|
|
75
75
|
const assignee = String(ur.assigned_to);
|
|
@@ -136,7 +136,7 @@ async function dispatchTaskToEmployee(input) {
|
|
|
136
136
|
let crossProject = false;
|
|
137
137
|
if (input.projectName) {
|
|
138
138
|
try {
|
|
139
|
-
const { assertSessionScope } = await import("./session-scope-
|
|
139
|
+
const { assertSessionScope } = await import("./session-scope-XSFJZEER.js");
|
|
140
140
|
const check = assertSessionScope("dispatch_task", input.projectName);
|
|
141
141
|
if (check.reason === "cross_session_denied") {
|
|
142
142
|
crossProject = true;
|
|
@@ -356,7 +356,7 @@ async function updateTask(input) {
|
|
|
356
356
|
try {
|
|
357
357
|
process.stderr.write(`[tasks] EVENT: tmux delivery failed for reviewer="${reviewer}". Queueing for daemon delivery.
|
|
358
358
|
`);
|
|
359
|
-
const { queueIntercom } = await import("./intercom-queue-
|
|
359
|
+
const { queueIntercom } = await import("./intercom-queue-RNM6EPGA.js");
|
|
360
360
|
const { resolveExeSession: resolveExeSession2 } = await import("./lib/tmux-routing.js");
|
|
361
361
|
const exeSession = row.session_scope ? String(row.session_scope) : resolveExeSession2();
|
|
362
362
|
if (exeSession) {
|
|
@@ -396,7 +396,7 @@ async function updateTask(input) {
|
|
|
396
396
|
await markTaskNotificationsRead(taskFile);
|
|
397
397
|
if (input.status === "needs_review" && !isCoordinator) {
|
|
398
398
|
try {
|
|
399
|
-
const { writeNotification: writeNotification2 } = await import("./notifications-
|
|
399
|
+
const { writeNotification: writeNotification2 } = await import("./notifications-6TCE6OBG.js");
|
|
400
400
|
await writeNotification2({
|
|
401
401
|
agentId: String(row.assigned_to),
|
|
402
402
|
agentRole: String(row.assigned_to),
|