@askexenow/exe-os 0.9.340 → 0.9.341
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/dist/{active-agent-EC6M7KTX.js → active-agent-AIQP4DFL.js} +3 -3
- package/dist/{active-agent-WHIUCHLA.js → active-agent-LW45DSJ4.js} +3 -3
- package/dist/{agentic-ontology-RNSXGXW4.js → agentic-ontology-RVUNRCQY.js} +1 -1
- package/dist/{backfill-metadata-MFY6BHKE.js → backfill-metadata-ZSDJ4O2T.js} +5 -5
- package/dist/backup-verify-ZAJLEL4X.js +425 -0
- package/dist/{behaviors-HLZUJSMP.js → behaviors-EO7KCP3H.js} +6 -6
- package/dist/bin/agentic-ontology-backfill.js +6 -6
- package/dist/bin/agentic-reflection-backfill.js +7 -7
- package/dist/bin/agentic-semantic-label.js +6 -6
- package/dist/bin/backfill-conversations.js +6 -6
- package/dist/bin/backfill-responses.js +6 -6
- package/dist/bin/backfill-vectors.js +8 -8
- package/dist/bin/bulk-sync-postgres.js +12 -12
- package/dist/bin/cc-doctor.js +4 -4
- package/dist/bin/cleanup-stale-review-tasks.js +17 -17
- package/dist/bin/cli.js +50 -18
- package/dist/bin/deferred-daemon-restart.js +74 -73
- package/dist/bin/exe-agent-config.js +3 -3
- package/dist/bin/exe-agent.js +10 -10
- package/dist/bin/exe-assign.js +8 -8
- package/dist/bin/exe-boot.js +26 -26
- package/dist/bin/exe-call.js +4 -4
- package/dist/bin/exe-cloud.js +12 -12
- package/dist/bin/exe-config-dump.js +3 -3
- package/dist/bin/exe-dispatch.js +17 -17
- package/dist/bin/exe-doctor.js +4 -4
- package/dist/bin/exe-export-behaviors.js +8 -8
- package/dist/bin/exe-forget.js +7 -7
- package/dist/bin/exe-gateway.js +7 -7
- package/dist/bin/exe-healthcheck.js +4 -4
- package/dist/bin/exe-heartbeat.js +17 -17
- package/dist/bin/exe-kill.js +21 -21
- package/dist/bin/exe-launch-agent.js +27 -27
- package/dist/bin/exe-new-employee.js +8 -8
- package/dist/bin/exe-pending-messages.js +18 -18
- package/dist/bin/exe-pending-notifications.js +17 -17
- package/dist/bin/exe-pending-reviews.js +17 -17
- package/dist/bin/exe-rename.js +4 -4
- package/dist/bin/exe-review.js +20 -20
- package/dist/bin/exe-search.js +6 -6
- package/dist/bin/exe-session-cleanup.js +22 -22
- package/dist/bin/exe-settings.js +13 -13
- package/dist/bin/exe-start-codex.js +13 -13
- package/dist/bin/exe-start-opencode.js +9 -9
- package/dist/bin/exe-status.js +18 -18
- package/dist/bin/exe-support.js +3 -3
- package/dist/bin/exe-team.js +3 -3
- package/dist/bin/git-sweep.js +18 -18
- package/dist/bin/graph-backfill.js +7 -7
- package/dist/bin/graph-export.js +6 -6
- package/dist/bin/import-history.js +10 -10
- package/dist/bin/install.js +76 -75
- package/dist/bin/intercom-check.js +4 -4
- package/dist/bin/mcp-sessions.js +2 -2
- package/dist/bin/orchestration-metrics.js +4 -4
- package/dist/bin/postgres-agentic-reflection-backfill.js +2 -2
- package/dist/bin/postgres-agentic-semantic-backfill.js +1 -1
- package/dist/bin/reconcile-backlog.js +484 -0
- package/dist/bin/registry-proxy.js +1 -1
- package/dist/bin/scan-tasks.js +17 -17
- package/dist/bin/setup.js +1 -1
- package/dist/bin/shard-migrate.js +5 -5
- package/dist/bin/stack-update.js +13 -7
- package/dist/bin/vps-health-gate.js +1 -1
- package/dist/boot-generation-GSMPJOWM.js +22 -0
- package/dist/{capability-cards-YOKVMMOL.js → capability-cards-OBYQNAKZ.js} +2 -2
- package/dist/{capacity-monitor-S54IOWRL.js → capacity-monitor-MG3FTUD5.js} +18 -18
- package/dist/{catchup-brief-DRRQCMKA.js → catchup-brief-BVJOF3GL.js} +21 -21
- package/dist/{chunk-X425OEYF.js → chunk-2C455MU3.js} +2 -2
- package/dist/{chunk-N5I7RL3I.js → chunk-2IWBY7XK.js} +1 -1
- package/dist/{chunk-X7H3HMFH.js → chunk-2P4WJNN5.js} +3 -3
- package/dist/{chunk-MW2GJJ53.js → chunk-2UGGBIDL.js} +2 -2
- package/dist/{chunk-BPC5LZ6Y.js → chunk-2WMTTIAZ.js} +1 -1
- package/dist/{chunk-BU2QQWBQ.js → chunk-2YCFNBC4.js} +1 -1
- package/dist/{chunk-RRWDYOQS.js → chunk-32YHCHWW.js} +1 -1
- package/dist/{chunk-I5RLNOFK.js → chunk-3BRVLPPA.js} +8 -4
- package/dist/{chunk-KTY7I7UH.js → chunk-4FJZ6SO7.js} +1 -1
- package/dist/{chunk-XWHE4LZK.js → chunk-4LWV633D.js} +21 -2
- package/dist/{chunk-AVKXCSBI.js → chunk-4QSJVMMT.js} +1 -1
- package/dist/{chunk-I3XKO3KQ.js → chunk-6BQG7EKO.js} +1 -1
- package/dist/{chunk-RLRT2BVM.js → chunk-6D2PI4QD.js} +1 -1
- package/dist/{chunk-7EA7LYW4.js → chunk-6MVC43X7.js} +4 -4
- package/dist/chunk-6QW6JHRE.js +368 -0
- package/dist/{chunk-HHIBOU3P.js → chunk-7LF5DS3A.js} +1 -1
- package/dist/{chunk-XACL67CS.js → chunk-7SEC2AG5.js} +1 -1
- package/dist/{chunk-UFAXZ2PY.js → chunk-7YORGTXC.js} +1 -1
- package/dist/{chunk-3QDSCJ3F.js → chunk-AP455LBW.js} +1 -1
- package/dist/{chunk-OFX5B2S7.js → chunk-ATKW3SYL.js} +1 -1
- package/dist/{chunk-3OBWSCJN.js → chunk-B7CUBLF7.js} +10 -10
- package/dist/{chunk-UCQITDLM.js → chunk-BJ23BNED.js} +1 -1
- package/dist/{chunk-B76TSEP3.js → chunk-BJOBR6P2.js} +1 -1
- package/dist/{chunk-XCTGRD4S.js → chunk-BMHQPIJ2.js} +12 -12
- package/dist/{chunk-ZIVEA3NB.js → chunk-BR4423AS.js} +1 -1
- package/dist/{chunk-ATOU6CYR.js → chunk-BV6GBSRP.js} +16 -2
- package/dist/{chunk-DZ6OQM67.js → chunk-C445WRUX.js} +1 -1
- package/dist/{chunk-YE7NH53A.js → chunk-CCIEIRV2.js} +1 -1
- package/dist/{chunk-6IRVGOUL.js → chunk-CCPHEPLU.js} +1 -1
- package/dist/{chunk-2HZY3ECT.js → chunk-CMR64RYM.js} +18 -18
- package/dist/{chunk-MQRFKSLI.js → chunk-CYA5S5OD.js} +3 -3
- package/dist/{chunk-FNZR3B7U.js → chunk-DGGDUKH6.js} +1 -1
- package/dist/{chunk-QXSBB26A.js → chunk-DNVFWFYF.js} +1 -1
- package/dist/{chunk-QZLIZAS7.js → chunk-DPFQ2WQX.js} +2 -2
- package/dist/{chunk-H37HHX3E.js → chunk-EDH54E5A.js} +9 -9
- package/dist/{chunk-JD5S5AAV.js → chunk-EDOO23B2.js} +2 -2
- package/dist/{chunk-ZREGOV2Q.js → chunk-FOV57K47.js} +10 -10
- package/dist/{chunk-65SVQELL.js → chunk-GFDGDFBF.js} +9 -0
- package/dist/{chunk-DILD54TU.js → chunk-GOGSWXNZ.js} +9 -9
- package/dist/{chunk-UPWE5NOG.js → chunk-GPW32HVB.js} +2 -2
- package/dist/{chunk-4IYSBPX3.js → chunk-HAZO7TRD.js} +1 -1
- package/dist/{chunk-52KNOQMK.js → chunk-HJX6NCJF.js} +3 -3
- package/dist/{chunk-UIV2WPBT.js → chunk-HNLXMD2V.js} +1 -1
- package/dist/{chunk-F55JF43M.js → chunk-HSYJ6DZ2.js} +1 -1
- package/dist/{chunk-LTVCRHHD.js → chunk-HUSVERE6.js} +4 -4
- package/dist/{chunk-I7Z6KTGF.js → chunk-I7ECEP3W.js} +5 -5
- package/dist/{chunk-T4KZ2Z2N.js → chunk-IELUDZAA.js} +3 -3
- package/dist/{chunk-XUKPALWT.js → chunk-ITMEE7PQ.js} +3 -3
- package/dist/{chunk-KCC5A7YL.js → chunk-IXBIVKWZ.js} +6 -6
- package/dist/{chunk-GN45PBWI.js → chunk-J6SEDDOR.js} +2 -2
- package/dist/{chunk-UXBD22CD.js → chunk-K6KRBXQP.js} +1 -1
- package/dist/{chunk-PLRIJALF.js → chunk-KKOLHBNC.js} +33 -25
- package/dist/{chunk-OJTJYEMX.js → chunk-KP4PY2Z2.js} +3 -3
- package/dist/{chunk-VJHUVFIW.js → chunk-L2YGXJGF.js} +3 -3
- package/dist/{chunk-6MRWJMI5.js → chunk-LA2Z6RMS.js} +1 -1
- package/dist/{chunk-G7WO77Z2.js → chunk-LEJ25726.js} +321 -621
- package/dist/{chunk-2233TQCA.js → chunk-LLU6WZLK.js} +1 -1
- package/dist/{chunk-6M36JFFD.js → chunk-LOBCQXV5.js} +4 -4
- package/dist/{chunk-LMZISHSJ.js → chunk-MC4ATFJV.js} +5 -5
- package/dist/{chunk-EIF2LQHZ.js → chunk-MJB5ZFQM.js} +1 -1
- package/dist/{chunk-PAEXYFMY.js → chunk-N7A5D25S.js} +1 -1
- package/dist/{chunk-DADMPMYX.js → chunk-NDSNM5OH.js} +1 -1
- package/dist/{chunk-H2L4PHGH.js → chunk-NFBW7N4D.js} +2 -2
- package/dist/{chunk-TALWBVZE.js → chunk-NTI22F3R.js} +1 -1
- package/dist/{chunk-TLYAEISW.js → chunk-OUEFW4RK.js} +2 -2
- package/dist/{chunk-K5WFKEXQ.js → chunk-PTJBWC77.js} +1 -1
- package/dist/{chunk-KMBEL7VB.js → chunk-PVIH3ZGV.js} +1 -1
- package/dist/{support-outbox-MGUVVGHT.js → chunk-Q5AIPSSC.js} +19 -7
- package/dist/chunk-RP5GETX5.js +140 -0
- package/dist/{chunk-HEPR6QTL.js → chunk-RWSLVYTE.js} +45 -5
- package/dist/{chunk-XJI7Z6LZ.js → chunk-T2PYVVZ5.js} +1 -1
- package/dist/{chunk-WYLV4S6A.js → chunk-TIXTHUVJ.js} +3 -3
- package/dist/{chunk-7WDXEKUL.js → chunk-TWXZM34M.js} +3 -3
- package/dist/{chunk-W7DHFGCB.js → chunk-U2MREVXQ.js} +1 -1
- package/dist/{chunk-6HBURYON.js → chunk-UIU2DGRV.js} +3 -3
- package/dist/{chunk-7TS64TBG.js → chunk-UU4UINUX.js} +6 -1
- package/dist/chunk-W6K4XB6G.js +40 -0
- package/dist/{chunk-R44Z32O2.js → chunk-WD55PEBM.js} +3 -3
- package/dist/{chunk-FUIIVSW6.js → chunk-WH7XN5ER.js} +1 -1
- package/dist/{chunk-Q7L6G6KV.js → chunk-WWNQFOSP.js} +2 -2
- package/dist/{chunk-542EWGY3.js → chunk-XSMRR4IW.js} +7 -7
- package/dist/{chunk-TNJRWUCE.js → chunk-Y3S4H77G.js} +1 -1
- package/dist/{chunk-AOO77BDE.js → chunk-YHUNDGVV.js} +1 -1
- package/dist/{chunk-JBSCL2XT.js → chunk-YIIME2OW.js} +1 -1
- package/dist/{chunk-QFPTDSY2.js → chunk-YLQXP7T7.js} +1 -1
- package/dist/{chunk-7WPOJDTA.js → chunk-YWQMWFYR.js} +7 -7
- package/dist/{chunk-2SG2UGCH.js → chunk-ZNE6H2JO.js} +4 -4
- package/dist/{cleanup-graph-garbage-KUABW6LS.js → cleanup-graph-garbage-MXQ4Q2MA.js} +6 -6
- package/dist/{co-activation-XMPHKGHR.js → co-activation-QI5BK4RT.js} +2 -2
- package/dist/{co-occurrence-SHKSJ6CV.js → co-occurrence-BYSQNZSV.js} +4 -4
- package/dist/{code-context-index-EXXDY3QZ.js → code-context-index-BNBHDXHW.js} +2 -2
- package/dist/{content-extractor-RHITF2KM.js → content-extractor-JRJDNIHP.js} +2 -2
- package/dist/{conversation-entity-extractor-D3EFTLT4.js → conversation-entity-extractor-FPAMTL3C.js} +2 -2
- package/dist/{crdt-sync-UJELKSNX.js → crdt-sync-ETPKNBCU.js} +1 -1
- package/dist/{crm-webhook-HHNBS7LY.js → crm-webhook-M566ZMZS.js} +2 -2
- package/dist/{cto-delegation-gate-DXNF5HVW.js → cto-delegation-gate-S734XDXT.js} +16 -16
- package/dist/{daemon-orchestration-7QB6QOXT.js → daemon-orchestration-XV5GN73R.js} +20 -20
- package/dist/{daemon-ready-5XI5BIJD.js → daemon-ready-RKKB4P6K.js} +1 -1
- package/dist/{daemon-ready-signal-E7VMIQ6I.js → daemon-ready-signal-WKEJQNRA.js} +3 -1
- package/dist/{db-backup-DLD4QZBO.js → db-backup-MX2G3CEK.js} +1 -1
- package/dist/{doc-graph-extractor-3TRLGD7M.js → doc-graph-extractor-LR5KMPH7.js} +4 -4
- package/dist/{documents-FHIBU7KJ.js → documents-FA6N7QDA.js} +8 -8
- package/dist/{dreaming-OMFUEUCQ.js → dreaming-UKGTQT6I.js} +17 -17
- package/dist/{exe-drift-KY2KHZEL.js → exe-drift-TUKTCXZE.js} +3 -3
- package/dist/{exe-export-SP6G3QF6.js → exe-export-ZLHBXMZC.js} +7 -7
- package/dist/{exe-import-KJU7FBVQ.js → exe-import-VVKBZWSA.js} +7 -7
- package/dist/{exe-key-M6TYHNUW.js → exe-key-QJXFBF6G.js} +74 -73
- package/dist/{exe-snapshot-ZNPGUKRZ.js → exe-snapshot-JRLUO645.js} +21 -21
- package/dist/{fast-db-init-QQB6IVWV.js → fast-db-init-JKJEEHUI.js} +1 -1
- package/dist/{founder-context-PQR3BUS7.js → founder-context-HWPLMZVR.js} +2 -2
- package/dist/gateway/index.js +24 -24
- package/dist/{git-staleness-UGB5J3K7.js → git-staleness-X5XZONX3.js} +2 -2
- package/dist/{global-procedures-R7KRREEK.js → global-procedures-VIIVWB6R.js} +3 -3
- package/dist/{graph-auto-extract-LKIQ57PL.js → graph-auto-extract-HCQQF5AG.js} +4 -4
- package/dist/{graph-rag-JZZAB7PC.js → graph-rag-WAK2BRJH.js} +2 -2
- package/dist/hooks/bug-report-worker.js +19 -19
- package/dist/hooks/codex-stop-task-finalizer.js +19 -19
- package/dist/hooks/commit-complete.js +19 -19
- package/dist/hooks/error-recall.js +7 -7
- package/dist/hooks/exe-heartbeat-hook.js +3 -3
- package/dist/hooks/ingest-worker.js +5 -5
- package/dist/hooks/ingest.js +9 -9
- package/dist/hooks/instructions-loaded.js +4 -4
- package/dist/hooks/manifest.json +20 -20
- package/dist/hooks/notification.js +4 -4
- package/dist/hooks/post-compact.js +18 -18
- package/dist/hooks/post-tool-combined.js +9 -9
- package/dist/hooks/pre-compact.js +19 -19
- package/dist/hooks/pre-tool-use.js +22 -22
- package/dist/hooks/prompt-submit.js +36 -36
- package/dist/hooks/session-end.js +24 -24
- package/dist/hooks/session-start.js +14 -14
- package/dist/hooks/stop.js +25 -25
- package/dist/hooks/subagent-stop.js +18 -18
- package/dist/hooks/summary-worker.js +23 -23
- package/dist/index.js +29 -29
- package/dist/{installer-SB2N5NKH.js → installer-6IFVEQI4.js} +5 -5
- package/dist/{installer-MZWWBXM6.js → installer-NX2CLNV5.js} +5 -5
- package/dist/{installer-MNPXDLGG.js → installer-T2LGHZKL.js} +5 -5
- package/dist/{intercom-queue-VU2G6F5R.js → intercom-queue-KYHXXZCQ.js} +16 -16
- package/dist/lib/agent-config.js +1 -1
- package/dist/lib/cloud-sync.js +12 -12
- package/dist/lib/consolidation.js +8 -8
- package/dist/lib/database.js +2 -2
- package/dist/lib/db-daemon-client.js +2 -2
- package/dist/lib/db.js +2 -2
- package/dist/lib/device-registry.js +1 -1
- package/dist/lib/embedder.js +2 -2
- package/dist/lib/employee-templates.js +4 -4
- package/dist/lib/employees.js +2 -2
- package/dist/lib/exe-daemon-client.js +1 -1
- package/dist/lib/exe-daemon.js +123 -54
- package/dist/lib/hybrid-search.js +6 -6
- package/dist/lib/identity.js +2 -2
- package/dist/lib/license.js +2 -2
- package/dist/lib/messaging.js +17 -17
- package/dist/lib/post-tool-memory.js +3 -3
- package/dist/lib/registry-proxy.js +1 -1
- package/dist/lib/reminders.js +3 -3
- package/dist/lib/schedules.js +6 -6
- package/dist/lib/session-registry.js +4 -4
- package/dist/lib/skill-learning.js +7 -7
- package/dist/lib/store.js +5 -5
- package/dist/lib/task-router.js +3 -3
- package/dist/lib/tasks.js +18 -18
- package/dist/lib/tmux-routing.js +16 -16
- package/dist/lib/token-spend.js +3 -3
- package/dist/{license-gate-BYDMFMFT.js → license-gate-MGDR4YNI.js} +3 -3
- package/dist/{license-sync-N3RNYVP2.js → license-sync-UWE6GEB4.js} +2 -2
- package/dist/mcp/register-tools.js +73 -72
- package/dist/mcp/server.js +74 -73
- package/dist/mcp/tools/complete-reminder.js +4 -4
- package/dist/mcp/tools/create-reminder.js +4 -4
- package/dist/mcp/tools/create-task.js +20 -20
- package/dist/mcp/tools/deactivate-behavior.js +8 -8
- package/dist/mcp/tools/list-reminders.js +4 -4
- package/dist/mcp/tools/list-tasks.js +20 -20
- package/dist/mcp/tools/send-message.js +19 -19
- package/dist/mcp/tools/update-task.js +19 -19
- package/dist/{mcp-http-config-EMAVS2JI.js → mcp-http-config-RQLYEPTL.js} +3 -3
- package/dist/{memory-cards-TQRLZI4D.js → memory-cards-VYQ5DPMR.js} +5 -5
- package/dist/{memory-graph-extractor-IWGNVAFU.js → memory-graph-extractor-GX2HNYLU.js} +5 -5
- package/dist/{memory-poisoning-defense-T4ITBGSG.js → memory-poisoning-defense-TX7627BD.js} +2 -2
- package/dist/{memory-pressure-watchdog-RRIAXPXQ.js → memory-pressure-watchdog-MLNNH26B.js} +17 -17
- package/dist/{memory-queue-client-BKQHTYTH.js → memory-queue-client-YRL6XTGU.js} +2 -2
- package/dist/{memory-reflection-6N4J2FL7.js → memory-reflection-KIGEFSI4.js} +2 -2
- package/dist/notification-ledger-B6AVEGMV.js +407 -0
- package/dist/{notifications-KONB3C62.js → notifications-DWXV7SVL.js} +16 -16
- package/dist/{orchestration-events-5SIJOE4H.js → orchestration-events-ZG7O4HRY.js} +3 -3
- package/dist/{orchestrator-DUUX7FQV.js → orchestrator-PGHJDUUT.js} +18 -18
- package/dist/{pipeline-router-O6HU7DKH.js → pipeline-router-RTLAGZTA.js} +3 -3
- package/dist/{plan-limits-GRNBOBB3.js → plan-limits-WLQZTCSF.js} +5 -5
- package/dist/{projection-worker-ZVOFHTXT.js → projection-worker-44SEKTZ5.js} +2 -2
- package/dist/{prospective-memory-W6S67LZZ.js → prospective-memory-UACFTYXK.js} +2 -2
- package/dist/{reranker-QATGTAPC.js → reranker-NL4YAV6R.js} +1 -1
- package/dist/{retrieval-health-TWHKYCRK.js → retrieval-health-4C2PO6HH.js} +1 -1
- package/dist/{review-polling-PCMD5BFN.js → review-polling-W5AMHNLT.js} +17 -17
- package/dist/runtime/index.js +24 -24
- package/dist/{session-events-3LCVQEL7.js → session-events-PGL5GJEB.js} +17 -17
- package/dist/{session-kill-telemetry-CZSPN5V6.js → session-kill-telemetry-6YDGEF27.js} +17 -17
- package/dist/{session-scope-CFHVSVAQ.js → session-scope-3MEOO557.js} +16 -16
- package/dist/{setup-wizard-TOFEJPLF.js → setup-wizard-CJIYDSSP.js} +1 -1
- package/dist/{skill-refinement-74T6VDFM.js → skill-refinement-EOROTBPX.js} +3 -3
- package/dist/stack-promote-RSOWO6EY.js +130 -0
- package/dist/{stack-release-XXMV7SPX.js → stack-release-PR2XKJ4Q.js} +24 -9
- package/dist/{stack-update-E2TKHHSQ.js → stack-update-LMDM27ZW.js} +5 -3
- package/dist/{steward-gate-WT7WXQIE.js → steward-gate-4A2XHYFD.js} +3 -3
- package/dist/support-inbox-Z77ACQUY.js +32 -0
- package/dist/support-outbox-GB5SQFRJ.js +16 -0
- package/dist/{task-enforcement-VI7L43DC.js → task-enforcement-X5QVL6RE.js} +17 -17
- package/dist/{task-scope-CQEG5SSJ.js → task-scope-EKYDCVUF.js} +16 -16
- package/dist/{tasks-crud-UGK5A25L.js → tasks-crud-6LBNU43G.js} +16 -16
- package/dist/{tasks-notify-SMLDFBWM.js → tasks-notify-TFJLSQ3B.js} +17 -17
- package/dist/{tasks-review-JKBRACII.js → tasks-review-PBIUYXAL.js} +16 -16
- package/dist/{telemetry-upload-7LBYGPCB.js → telemetry-upload-WQDFABTF.js} +7 -7
- package/dist/{token-budget-QBRJR4M5.js → token-budget-KWGL5DY7.js} +3 -3
- package/dist/{tool-capability-index-Q6YQDL7I.js → tool-capability-index-EH3HQVHU.js} +1 -1
- package/dist/{tool-telemetry-ULIDUK3P.js → tool-telemetry-UC55LSIH.js} +1 -1
- package/dist/tui/App.js +24 -24
- package/dist/{tui-data-NPTGKT37.js → tui-data-M3RBSJL3.js} +16 -16
- package/dist/update-support-VPBD5SD2.js +355 -0
- package/dist/{worker-gate-MXUQUG4M.js → worker-gate-4QLLMXZM.js} +1 -1
- package/dist/{workflow-engine-EWCOLD47.js → workflow-engine-MMEHKUN4.js} +2 -2
- package/dist/{worktree-GVF2I5FP.js → worktree-YXBDRYOC.js} +4 -4
- package/dist/{worktree-sweep-ZAG3V24E.js → worktree-sweep-5WKBU7E6.js} +5 -5
- package/package.json +2 -2
- package/release-notes.json +24 -46
- package/dist/chunk-Y25OJWOQ.js +0 -45
- package/dist/{chunk-FLNSJ2TC.js → chunk-2KLAYDFB.js} +0 -0
- package/dist/{chunk-WHRTDN5J.js → chunk-3NCZKWPO.js} +0 -0
- package/dist/{chunk-IYB2NIW3.js → chunk-6MVI4QH2.js} +0 -0
- package/dist/{chunk-A4DVMPYB.js → chunk-7UMCQQWS.js} +3 -3
- /package/dist/{chunk-QLFRCA6I.js → chunk-AYLNJGCS.js} +0 -0
- /package/dist/{chunk-D3QASX2W.js → chunk-C2SRRCRK.js} +0 -0
- /package/dist/{chunk-KTPG4XKI.js → chunk-IB336P52.js} +0 -0
- /package/dist/{chunk-NQBRGXYR.js → chunk-MC6VPZKS.js} +0 -0
- /package/dist/{chunk-5Z5NATNS.js → chunk-PPZOWQHP.js} +0 -0
- /package/dist/{chunk-DRCRZIIJ.js → chunk-WNKVKNOM.js} +0 -0
- /package/dist/{core-memory-VO5ZIBKH.js → core-memory-3IBWM4WR.js} +0 -0
- /package/dist/{entity-boost-DNI4A5I7.js → entity-boost-DWAWXFKN.js} +0 -0
- /package/dist/{message-queue-client-Q5BW3O5W.js → message-queue-client-3PTHPG5Q.js} +0 -0
- /package/dist/{oauth-server-ROQFOEMM.js → oauth-server-M5TGXT6D.js} +0 -0
- /package/dist/{project-boot-SD7GM24K.js → project-boot-6CGQ3EAH.js} +0 -0
- /package/dist/{wiki-acl-JA5UCQZ4.js → wiki-acl-7CROE3MJ.js} +0 -0
|
@@ -0,0 +1,368 @@
|
|
|
1
|
+
import {
|
|
2
|
+
sanitizedUpstreamBody
|
|
3
|
+
} from "./chunk-RP5GETX5.js";
|
|
4
|
+
import {
|
|
5
|
+
loadLicense,
|
|
6
|
+
readCachedLicenseToken
|
|
7
|
+
} from "./chunk-7SEC2AG5.js";
|
|
8
|
+
|
|
9
|
+
// src/mcp/tools/support-inbox.ts
|
|
10
|
+
import { z } from "zod";
|
|
11
|
+
import { readFileSync } from "fs";
|
|
12
|
+
import { join } from "path";
|
|
13
|
+
import { homedir } from "os";
|
|
14
|
+
var DEFAULT_ENDPOINT = "https://api.askexe.com/admin/support/bug-reports";
|
|
15
|
+
var DEFAULT_OWNER_ENDPOINT = "https://api.askexe.com/v1/support/bug-reports";
|
|
16
|
+
var STATUS = z.enum(["open", "triaged", "fixed", "closed", "wontfix"]);
|
|
17
|
+
function adminToken() {
|
|
18
|
+
if (process.env.ASKEXE_SUPPORT_ADMIN_TOKEN) return process.env.ASKEXE_SUPPORT_ADMIN_TOKEN;
|
|
19
|
+
if (process.env.EXE_SUPPORT_ADMIN_TOKEN) return process.env.EXE_SUPPORT_ADMIN_TOKEN;
|
|
20
|
+
try {
|
|
21
|
+
const configPath = join(process.env.EXE_OS_DIR ?? join(homedir(), ".exe-os"), "config.json");
|
|
22
|
+
const config = JSON.parse(readFileSync(configPath, "utf-8"));
|
|
23
|
+
return config.support?.adminToken || config.support?.admin_token;
|
|
24
|
+
} catch {
|
|
25
|
+
return void 0;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function endpoint() {
|
|
29
|
+
return (process.env.ASKEXE_SUPPORT_ADMIN_ENDPOINT || DEFAULT_ENDPOINT).replace(/\/+$/, "");
|
|
30
|
+
}
|
|
31
|
+
function ownerEndpoint() {
|
|
32
|
+
const routerUrl = process.env.API_ROUTER_URL?.replace(/\/+$/, "");
|
|
33
|
+
let configured;
|
|
34
|
+
try {
|
|
35
|
+
const configPath = join(process.env.EXE_OS_DIR ?? join(homedir(), ".exe-os"), "config.json");
|
|
36
|
+
const config = JSON.parse(readFileSync(configPath, "utf-8"));
|
|
37
|
+
configured = config.support?.bugReportEndpoint;
|
|
38
|
+
} catch {
|
|
39
|
+
}
|
|
40
|
+
const base = configured || process.env.EXE_BUG_REPORT_ENDPOINT || (routerUrl ? `${routerUrl}/v1/support/bug-reports` : DEFAULT_OWNER_ENDPOINT);
|
|
41
|
+
return base.replace(/\/+$/, "");
|
|
42
|
+
}
|
|
43
|
+
function ownerAuthHeaders() {
|
|
44
|
+
let cloudApiKey;
|
|
45
|
+
try {
|
|
46
|
+
const configPath = join(process.env.EXE_OS_DIR ?? join(homedir(), ".exe-os"), "config.json");
|
|
47
|
+
const config = JSON.parse(readFileSync(configPath, "utf-8"));
|
|
48
|
+
cloudApiKey = config.cloud?.apiKey;
|
|
49
|
+
} catch {
|
|
50
|
+
}
|
|
51
|
+
const licenseKey = loadLicense() || process.env.EXE_LICENSE_KEY || cloudApiKey;
|
|
52
|
+
const licenseToken = readCachedLicenseToken();
|
|
53
|
+
const headers = {};
|
|
54
|
+
if (licenseKey) {
|
|
55
|
+
headers["x-exe-license-key"] = licenseKey;
|
|
56
|
+
headers.authorization = `Bearer ${licenseKey}`;
|
|
57
|
+
}
|
|
58
|
+
if (licenseToken) headers["x-exe-license-token"] = licenseToken;
|
|
59
|
+
return headers;
|
|
60
|
+
}
|
|
61
|
+
function assertInternal() {
|
|
62
|
+
const token = adminToken();
|
|
63
|
+
if (!token) throw new Error("AskExe support admin token not configured");
|
|
64
|
+
return token;
|
|
65
|
+
}
|
|
66
|
+
async function requestJson(url, init) {
|
|
67
|
+
const token = assertInternal();
|
|
68
|
+
const res = await fetch(url, {
|
|
69
|
+
...init,
|
|
70
|
+
headers: {
|
|
71
|
+
"content-type": "application/json",
|
|
72
|
+
authorization: `Bearer ${token}`,
|
|
73
|
+
...init?.headers ?? {}
|
|
74
|
+
},
|
|
75
|
+
signal: AbortSignal.timeout(1e4)
|
|
76
|
+
});
|
|
77
|
+
const text = await res.text();
|
|
78
|
+
let data = text;
|
|
79
|
+
try {
|
|
80
|
+
data = text ? JSON.parse(text) : {};
|
|
81
|
+
} catch {
|
|
82
|
+
}
|
|
83
|
+
if (!res.ok) throw new Error(`HTTP ${res.status}: ${typeof data === "string" ? data : JSON.stringify(data)}`);
|
|
84
|
+
return data;
|
|
85
|
+
}
|
|
86
|
+
async function fetchJson(url, headers, init) {
|
|
87
|
+
const res = await fetch(url, {
|
|
88
|
+
...init,
|
|
89
|
+
headers: { "content-type": "application/json", ...headers, ...init?.headers ?? {} },
|
|
90
|
+
signal: AbortSignal.timeout(1e4)
|
|
91
|
+
});
|
|
92
|
+
const text = await res.text();
|
|
93
|
+
let data = text;
|
|
94
|
+
try {
|
|
95
|
+
data = text ? JSON.parse(text) : {};
|
|
96
|
+
} catch {
|
|
97
|
+
}
|
|
98
|
+
if (!res.ok) throw new Error(`HTTP ${res.status}: ${typeof data === "string" ? data : JSON.stringify(data)}`);
|
|
99
|
+
return data;
|
|
100
|
+
}
|
|
101
|
+
async function commentRequestJson(bugId, init) {
|
|
102
|
+
const token = adminToken();
|
|
103
|
+
if (token) {
|
|
104
|
+
const url2 = `${endpoint()}/${encodeURIComponent(bugId)}/comments`;
|
|
105
|
+
return fetchJson(url2, { authorization: `Bearer ${token}` }, init);
|
|
106
|
+
}
|
|
107
|
+
const ownerHeaders = ownerAuthHeaders();
|
|
108
|
+
if (!ownerHeaders.authorization && !ownerHeaders["x-exe-license-token"]) {
|
|
109
|
+
throw new Error(
|
|
110
|
+
"Not authenticated for support comments. Run `exe-os login` (GoTrue) or set a license key, or configure an AskExe admin token (ASKEXE_SUPPORT_ADMIN_TOKEN)."
|
|
111
|
+
);
|
|
112
|
+
}
|
|
113
|
+
const url = `${ownerEndpoint()}/${encodeURIComponent(bugId)}/comments`;
|
|
114
|
+
return fetchJson(url, ownerHeaders, init);
|
|
115
|
+
}
|
|
116
|
+
function registerListBugReports(server) {
|
|
117
|
+
server.registerTool(
|
|
118
|
+
"list_bug_reports",
|
|
119
|
+
{
|
|
120
|
+
title: "List Bug Reports",
|
|
121
|
+
description: "AskExe-internal only: list incoming customer bug reports from the support inbox.",
|
|
122
|
+
inputSchema: {
|
|
123
|
+
status: z.enum(["all", "open", "triaged", "fixed", "closed", "wontfix"]).default("open"),
|
|
124
|
+
severity: z.enum(["p0", "p1", "p2", "p3"]).optional(),
|
|
125
|
+
limit: z.number().int().min(1).max(100).default(25)
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
async ({ status, severity, limit }) => {
|
|
129
|
+
const url = new URL(endpoint());
|
|
130
|
+
url.searchParams.set("status", status);
|
|
131
|
+
url.searchParams.set("limit", String(limit));
|
|
132
|
+
if (severity) url.searchParams.set("severity", severity);
|
|
133
|
+
const data = await requestJson(url.toString());
|
|
134
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
135
|
+
}
|
|
136
|
+
);
|
|
137
|
+
}
|
|
138
|
+
function parseComments(row) {
|
|
139
|
+
if (!row || typeof row !== "object") return [];
|
|
140
|
+
const raw = row.progress_log;
|
|
141
|
+
if (typeof raw !== "string" || !raw.trim()) return [];
|
|
142
|
+
try {
|
|
143
|
+
const parsed = JSON.parse(raw);
|
|
144
|
+
return Array.isArray(parsed) ? parsed : [];
|
|
145
|
+
} catch {
|
|
146
|
+
return [];
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
function registerGetBugReport(server) {
|
|
150
|
+
server.registerTool(
|
|
151
|
+
"get_bug_report",
|
|
152
|
+
{
|
|
153
|
+
title: "Get Bug Report",
|
|
154
|
+
description: "AskExe-internal only: fetch one customer bug report with full markdown payload and comments thread.",
|
|
155
|
+
inputSchema: { id: z.string().min(8) }
|
|
156
|
+
},
|
|
157
|
+
async ({ id }) => {
|
|
158
|
+
const data = await requestJson(`${endpoint()}/${encodeURIComponent(id)}`);
|
|
159
|
+
const comments = parseComments(data);
|
|
160
|
+
const enriched = data && typeof data === "object" ? { ...data, comments } : { id, comments };
|
|
161
|
+
return { content: [{ type: "text", text: JSON.stringify(enriched, null, 2) }] };
|
|
162
|
+
}
|
|
163
|
+
);
|
|
164
|
+
}
|
|
165
|
+
function registerAddBugReportComment(server) {
|
|
166
|
+
server.registerTool(
|
|
167
|
+
"add_bug_report_comment",
|
|
168
|
+
{
|
|
169
|
+
title: "Add Bug Report Comment",
|
|
170
|
+
description: "AskExe-internal only: append a comment to a bug report's thread (POST /comments). Non-destructive \u2014 does not touch triage_notes or status.",
|
|
171
|
+
inputSchema: {
|
|
172
|
+
id: z.string().min(8),
|
|
173
|
+
comment: z.string().min(1).describe("Comment text to append to the bug report thread")
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
async ({ id, comment }) => {
|
|
177
|
+
const data = await commentRequestJson(id, {
|
|
178
|
+
method: "POST",
|
|
179
|
+
body: sanitizedUpstreamBody({ comment }, "support-inbox:add_comment")
|
|
180
|
+
});
|
|
181
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
182
|
+
}
|
|
183
|
+
);
|
|
184
|
+
}
|
|
185
|
+
function registerGetBugReportComments(server) {
|
|
186
|
+
server.registerTool(
|
|
187
|
+
"get_bug_report_comments",
|
|
188
|
+
{
|
|
189
|
+
title: "Get Bug Report Comments",
|
|
190
|
+
description: "AskExe-internal only: list the comments thread on a bug report (GET /comments).",
|
|
191
|
+
inputSchema: { id: z.string().min(8) }
|
|
192
|
+
},
|
|
193
|
+
async ({ id }) => {
|
|
194
|
+
const data = await commentRequestJson(id);
|
|
195
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
196
|
+
}
|
|
197
|
+
);
|
|
198
|
+
}
|
|
199
|
+
function registerTriageBugReport(server) {
|
|
200
|
+
server.registerTool(
|
|
201
|
+
"triage_bug_report",
|
|
202
|
+
{
|
|
203
|
+
title: "Triage Bug Report",
|
|
204
|
+
description: "AskExe-internal only: update bug report status and link task/commit/release metadata.",
|
|
205
|
+
inputSchema: {
|
|
206
|
+
id: z.string().min(8),
|
|
207
|
+
status: STATUS.optional(),
|
|
208
|
+
triage_notes: z.string().optional(),
|
|
209
|
+
add_note: z.string().optional().describe("Append a timestamped progress note without changing status or replacing triage_notes"),
|
|
210
|
+
linked_task_id: z.string().optional(),
|
|
211
|
+
linked_commit: z.string().optional(),
|
|
212
|
+
fixed_version: z.string().optional(),
|
|
213
|
+
product: z.string().optional().describe("Re-label this bug's product: exe-os, exe-create, exe-wiki, exe-gateway, exe-crm, exe-build, exe-chat, exe-auth, exe-monitor, exe-db, exe-erp")
|
|
214
|
+
}
|
|
215
|
+
},
|
|
216
|
+
async ({ id, status, triage_notes, add_note, linked_task_id, linked_commit, fixed_version, product }) => {
|
|
217
|
+
const effectiveStatus = fixed_version && !status ? "closed" : status;
|
|
218
|
+
const data = await requestJson(`${endpoint()}/${encodeURIComponent(id)}`, {
|
|
219
|
+
method: "PATCH",
|
|
220
|
+
body: sanitizedUpstreamBody({ status: effectiveStatus, triage_notes, add_note, linked_task_id, linked_commit, fixed_version, product }, "support-inbox:triage_bug")
|
|
221
|
+
});
|
|
222
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
223
|
+
}
|
|
224
|
+
);
|
|
225
|
+
}
|
|
226
|
+
var FEATURE_STATUS = z.enum(["open", "planned", "in_progress", "shipped", "closed", "wontdo"]);
|
|
227
|
+
function featureEndpoint() {
|
|
228
|
+
return endpoint().replace(/\/bug-reports\/?$/, "/feature-requests");
|
|
229
|
+
}
|
|
230
|
+
function registerListFeatureRequests(server) {
|
|
231
|
+
server.registerTool(
|
|
232
|
+
"list_feature_requests",
|
|
233
|
+
{
|
|
234
|
+
title: "List Feature Requests",
|
|
235
|
+
description: "AskExe-internal only: list incoming customer feature requests from the support inbox.",
|
|
236
|
+
inputSchema: {
|
|
237
|
+
status: z.enum(["all", "open", "planned", "in_progress", "shipped", "closed", "wontdo"]).default("open"),
|
|
238
|
+
priority: z.enum(["p0", "p1", "p2", "p3"]).optional(),
|
|
239
|
+
limit: z.number().int().min(1).max(100).default(25)
|
|
240
|
+
}
|
|
241
|
+
},
|
|
242
|
+
async ({ status, priority, limit }) => {
|
|
243
|
+
const url = new URL(featureEndpoint());
|
|
244
|
+
url.searchParams.set("status", status);
|
|
245
|
+
url.searchParams.set("limit", String(limit));
|
|
246
|
+
if (priority) url.searchParams.set("priority", priority);
|
|
247
|
+
const data = await requestJson(url.toString());
|
|
248
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
249
|
+
}
|
|
250
|
+
);
|
|
251
|
+
}
|
|
252
|
+
function registerGetFeatureRequest(server) {
|
|
253
|
+
server.registerTool(
|
|
254
|
+
"get_feature_request",
|
|
255
|
+
{
|
|
256
|
+
title: "Get Feature Request",
|
|
257
|
+
description: "AskExe-internal only: fetch one customer feature request with full payload.",
|
|
258
|
+
inputSchema: { id: z.string().min(8) }
|
|
259
|
+
},
|
|
260
|
+
async ({ id }) => {
|
|
261
|
+
const data = await requestJson(`${featureEndpoint()}/${encodeURIComponent(id)}`);
|
|
262
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
263
|
+
}
|
|
264
|
+
);
|
|
265
|
+
}
|
|
266
|
+
function registerTriageFeatureRequest(server) {
|
|
267
|
+
server.registerTool(
|
|
268
|
+
"triage_feature_request",
|
|
269
|
+
{
|
|
270
|
+
title: "Triage Feature Request",
|
|
271
|
+
description: "AskExe-internal only: update feature request status, response notes, and version metadata.",
|
|
272
|
+
inputSchema: {
|
|
273
|
+
id: z.string().min(8),
|
|
274
|
+
status: FEATURE_STATUS.optional(),
|
|
275
|
+
response_notes: z.string().optional(),
|
|
276
|
+
add_note: z.string().optional().describe("Append a timestamped progress note without changing status or replacing response_notes"),
|
|
277
|
+
target_version: z.string().optional(),
|
|
278
|
+
shipped_version: z.string().optional()
|
|
279
|
+
}
|
|
280
|
+
},
|
|
281
|
+
async ({ id, status, response_notes, add_note, target_version, shipped_version }) => {
|
|
282
|
+
const effectiveStatus = shipped_version && !status ? "shipped" : status;
|
|
283
|
+
const data = await requestJson(`${featureEndpoint()}/${encodeURIComponent(id)}`, {
|
|
284
|
+
method: "PATCH",
|
|
285
|
+
body: sanitizedUpstreamBody({ status: effectiveStatus, response_notes, add_note, target_version, shipped_version }, "support-inbox:triage_feature")
|
|
286
|
+
});
|
|
287
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
288
|
+
}
|
|
289
|
+
);
|
|
290
|
+
}
|
|
291
|
+
var REVIEW_STATUS = z.enum(["open", "in_review", "approved", "merged", "closed", "rejected"]);
|
|
292
|
+
function reviewEndpoint() {
|
|
293
|
+
return endpoint().replace(/\/bug-reports\/?$/, "/reviews");
|
|
294
|
+
}
|
|
295
|
+
function registerListReviews(server) {
|
|
296
|
+
server.registerTool(
|
|
297
|
+
"list_reviews",
|
|
298
|
+
{
|
|
299
|
+
title: "List Reviews",
|
|
300
|
+
description: "AskExe-internal only: list incoming review requests from the support inbox.",
|
|
301
|
+
inputSchema: {
|
|
302
|
+
status: z.enum(["all", "open", "in_review", "approved", "merged", "closed", "rejected"]).default("open"),
|
|
303
|
+
priority: z.enum(["p0", "p1", "p2", "p3"]).optional(),
|
|
304
|
+
limit: z.number().int().min(1).max(100).default(25)
|
|
305
|
+
}
|
|
306
|
+
},
|
|
307
|
+
async ({ status, priority, limit }) => {
|
|
308
|
+
const url = new URL(reviewEndpoint());
|
|
309
|
+
url.searchParams.set("status", status);
|
|
310
|
+
url.searchParams.set("limit", String(limit));
|
|
311
|
+
if (priority) url.searchParams.set("priority", priority);
|
|
312
|
+
const data = await requestJson(url.toString());
|
|
313
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
314
|
+
}
|
|
315
|
+
);
|
|
316
|
+
}
|
|
317
|
+
function registerGetReview(server) {
|
|
318
|
+
server.registerTool(
|
|
319
|
+
"get_review",
|
|
320
|
+
{
|
|
321
|
+
title: "Get Review",
|
|
322
|
+
description: "AskExe-internal only: fetch one review with full payload.",
|
|
323
|
+
inputSchema: { id: z.string().min(8) }
|
|
324
|
+
},
|
|
325
|
+
async ({ id }) => {
|
|
326
|
+
const data = await requestJson(`${reviewEndpoint()}/${encodeURIComponent(id)}`);
|
|
327
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
328
|
+
}
|
|
329
|
+
);
|
|
330
|
+
}
|
|
331
|
+
function registerTriageReview(server) {
|
|
332
|
+
server.registerTool(
|
|
333
|
+
"triage_review",
|
|
334
|
+
{
|
|
335
|
+
title: "Triage Review",
|
|
336
|
+
description: "AskExe-internal only: update review status, response notes, and resolution.",
|
|
337
|
+
inputSchema: {
|
|
338
|
+
id: z.string().min(8),
|
|
339
|
+
status: REVIEW_STATUS.optional(),
|
|
340
|
+
response_notes: z.string().optional(),
|
|
341
|
+
add_note: z.string().optional().describe("Append a timestamped progress note without changing status or replacing response_notes"),
|
|
342
|
+
resolution: z.string().optional(),
|
|
343
|
+
pr_url: z.string().optional()
|
|
344
|
+
}
|
|
345
|
+
},
|
|
346
|
+
async ({ id, status, response_notes, add_note, resolution, pr_url }) => {
|
|
347
|
+
const data = await requestJson(`${reviewEndpoint()}/${encodeURIComponent(id)}`, {
|
|
348
|
+
method: "PATCH",
|
|
349
|
+
body: sanitizedUpstreamBody({ status, response_notes, add_note, resolution, pr_url }, "support-inbox:triage_review")
|
|
350
|
+
});
|
|
351
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
352
|
+
}
|
|
353
|
+
);
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
export {
|
|
357
|
+
registerListBugReports,
|
|
358
|
+
registerGetBugReport,
|
|
359
|
+
registerAddBugReportComment,
|
|
360
|
+
registerGetBugReportComments,
|
|
361
|
+
registerTriageBugReport,
|
|
362
|
+
registerListFeatureRequests,
|
|
363
|
+
registerGetFeatureRequest,
|
|
364
|
+
registerTriageFeatureRequest,
|
|
365
|
+
registerListReviews,
|
|
366
|
+
registerGetReview,
|
|
367
|
+
registerTriageReview
|
|
368
|
+
};
|
|
@@ -52,7 +52,7 @@ async function fastDbInit(opts) {
|
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
if (effectiveDaemonOnly) {
|
|
55
|
-
const { isDaemonReady } = await import("./daemon-ready-signal-
|
|
55
|
+
const { isDaemonReady } = await import("./daemon-ready-signal-WKEJQNRA.js");
|
|
56
56
|
if (!isDaemonReady()) return makeNoopClient();
|
|
57
57
|
}
|
|
58
58
|
const forceDirect = process.env.EXE_DB_DIRECT === "1" || process.env.EXE_DB_READONLY === "1" || process.env.EXE_SKIP_DAEMON === "1";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
MultiAgentOrchestrator
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-HJX6NCJF.js";
|
|
4
4
|
import {
|
|
5
5
|
createTokenBudgetMiddleware
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-32YHCHWW.js";
|
|
7
7
|
import {
|
|
8
8
|
createQuietRenderer,
|
|
9
9
|
createTerminalRenderer,
|
|
@@ -18,6 +18,10 @@ import {
|
|
|
18
18
|
checkReadPathSafety,
|
|
19
19
|
containsPathTraversal
|
|
20
20
|
} from "./chunk-NGVOA6ZQ.js";
|
|
21
|
+
import {
|
|
22
|
+
composeHooks,
|
|
23
|
+
createDefaultHooks
|
|
24
|
+
} from "./chunk-O377P7GM.js";
|
|
21
25
|
import {
|
|
22
26
|
ContextManager,
|
|
23
27
|
agentLoop,
|
|
@@ -49,10 +53,6 @@ import {
|
|
|
49
53
|
matchInputPattern,
|
|
50
54
|
matchToolPattern
|
|
51
55
|
} from "./chunk-HF25XPZE.js";
|
|
52
|
-
import {
|
|
53
|
-
composeHooks,
|
|
54
|
-
createDefaultHooks
|
|
55
|
-
} from "./chunk-O377P7GM.js";
|
|
56
56
|
import {
|
|
57
57
|
StateBus,
|
|
58
58
|
orgBus
|
|
@@ -209,7 +209,7 @@ function createExeOSHooks(config) {
|
|
|
209
209
|
);
|
|
210
210
|
}
|
|
211
211
|
try {
|
|
212
|
-
const { listBehaviors } = await import("./behaviors-
|
|
212
|
+
const { listBehaviors } = await import("./behaviors-EO7KCP3H.js");
|
|
213
213
|
const behaviors = await listBehaviors(config.agentId, config.projectName, 12);
|
|
214
214
|
if (behaviors.length > 0) {
|
|
215
215
|
process.stderr.write(
|
|
@@ -247,7 +247,7 @@ function createExeOSHooks(config) {
|
|
|
247
247
|
const ALLOWED_RE = /^(Bash|Edit|Write|Read|Glob|Grep|Agent|mcp__.*)$/;
|
|
248
248
|
if (!ALLOWED_RE.test(toolName)) return;
|
|
249
249
|
try {
|
|
250
|
-
const { extractSemanticText } = await import("./content-extractor-
|
|
250
|
+
const { extractSemanticText } = await import("./content-extractor-JRJDNIHP.js");
|
|
251
251
|
const { writeMemory } = await import("./lib/store.js");
|
|
252
252
|
const toolInput = block.input ?? {};
|
|
253
253
|
const toolResponse = result.isError ? { error: result.content } : { output: result.content };
|
|
@@ -330,7 +330,7 @@ function createExeOSHooks(config) {
|
|
|
330
330
|
async onSubagentStop(_reason) {
|
|
331
331
|
try {
|
|
332
332
|
const { getClient } = await import("./lib/database.js");
|
|
333
|
-
const { sessionScopeFilter } = await import("./task-scope-
|
|
333
|
+
const { sessionScopeFilter } = await import("./task-scope-EKYDCVUF.js");
|
|
334
334
|
const client = getClient();
|
|
335
335
|
const ehScope = sessionScopeFilter();
|
|
336
336
|
const tasks = await client.execute({
|
|
@@ -422,7 +422,7 @@ function createExeOSHooks(config) {
|
|
|
422
422
|
try {
|
|
423
423
|
const { writeMemory, flushBatch } = await import("./lib/store.js");
|
|
424
424
|
const { getClient } = await import("./lib/database.js");
|
|
425
|
-
const { sessionScopeFilter: cpScopeFilter } = await import("./task-scope-
|
|
425
|
+
const { sessionScopeFilter: cpScopeFilter } = await import("./task-scope-EKYDCVUF.js");
|
|
426
426
|
const client = getClient();
|
|
427
427
|
const cpScope = cpScopeFilter();
|
|
428
428
|
const tasks = await client.execute({
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
recordSessionKill
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-IELUDZAA.js";
|
|
4
4
|
import {
|
|
5
5
|
updateTask
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-XSMRR4IW.js";
|
|
7
7
|
import {
|
|
8
8
|
countPendingReviews,
|
|
9
9
|
ensureEmployeeAsync,
|
|
@@ -16,32 +16,32 @@ import {
|
|
|
16
16
|
sessionScopeFilter,
|
|
17
17
|
strictSessionScopeFilter,
|
|
18
18
|
writeNotification
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-KKOLHBNC.js";
|
|
20
20
|
import {
|
|
21
21
|
isLeaseExpired
|
|
22
22
|
} from "./chunk-E23LNUWJ.js";
|
|
23
23
|
import {
|
|
24
24
|
listSessions
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-HNLXMD2V.js";
|
|
26
|
+
import {
|
|
27
|
+
getTransport
|
|
28
|
+
} from "./chunk-RMOBQ6A5.js";
|
|
26
29
|
import {
|
|
27
30
|
listTmuxSessions,
|
|
28
31
|
parseContextPercentage
|
|
29
32
|
} from "./chunk-SSTLTIF3.js";
|
|
30
|
-
import {
|
|
31
|
-
getTransport
|
|
32
|
-
} from "./chunk-RMOBQ6A5.js";
|
|
33
33
|
import {
|
|
34
34
|
recordOrchestrationEventBestEffort
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-WH7XN5ER.js";
|
|
36
36
|
import {
|
|
37
37
|
getAgentRuntime
|
|
38
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-GFDGDFBF.js";
|
|
39
39
|
import {
|
|
40
40
|
baseAgentName,
|
|
41
41
|
getCoordinatorName,
|
|
42
42
|
isCoordinatorName,
|
|
43
43
|
shouldAutoInstance
|
|
44
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-RWSLVYTE.js";
|
|
45
45
|
import {
|
|
46
46
|
loadConfigSync
|
|
47
47
|
} from "./chunk-7Y5UDEVM.js";
|
|
@@ -2456,7 +2456,7 @@ async function reapOrphanedWorktrees(deps, nowMs = Date.now()) {
|
|
|
2456
2456
|
}
|
|
2457
2457
|
async function createWorktreeReaperRealDeps() {
|
|
2458
2458
|
const { getPaneCwdAsync } = await import("./lib/tmux-status.js");
|
|
2459
|
-
const { getGitRoot, isWorktreeDirty: isDirty } = await import("./worktree-
|
|
2459
|
+
const { getGitRoot, isWorktreeDirty: isDirty } = await import("./worktree-YXBDRYOC.js");
|
|
2460
2460
|
const { statSync: statSync3 } = await import("fs");
|
|
2461
2461
|
const { basename: basename2 } = await import("path");
|
|
2462
2462
|
const { promisify: promisify2 } = await import("util");
|
|
@@ -2671,7 +2671,7 @@ async function gcStaleCheckpoints() {
|
|
|
2671
2671
|
}
|
|
2672
2672
|
async function pollTaskGroupBarriers() {
|
|
2673
2673
|
try {
|
|
2674
|
-
const { checkAndFireBarriers } = await import("./tasks-crud-
|
|
2674
|
+
const { checkAndFireBarriers } = await import("./tasks-crud-6LBNU43G.js");
|
|
2675
2675
|
const firedGroupIds = await checkAndFireBarriers();
|
|
2676
2676
|
if (firedGroupIds.length === 0) return 0;
|
|
2677
2677
|
const { getClient } = await import("./lib/database.js");
|
|
@@ -263,7 +263,7 @@ async function runRegistryProxy(options = registryProxyOptionsFromEnv()) {
|
|
|
263
263
|
await new Promise((resolve) => server.listen(options.port, options.host, resolve));
|
|
264
264
|
console.log(`exe-registry-proxy listening on ${options.host ?? "0.0.0.0"}:${options.port}`);
|
|
265
265
|
console.log(`proxying /v2/${options.allowedNamespace ?? "askexe"}/* -> ${options.upstream ?? "https://ghcr.io"}`);
|
|
266
|
-
const { licenseSyncConfigFromEnv, startLicenseSyncScheduler } = await import("./license-sync-
|
|
266
|
+
const { licenseSyncConfigFromEnv, startLicenseSyncScheduler } = await import("./license-sync-UWE6GEB4.js");
|
|
267
267
|
const syncConfig = licenseSyncConfigFromEnv();
|
|
268
268
|
if (syncConfig) {
|
|
269
269
|
startLicenseSyncScheduler(syncConfig);
|
|
@@ -138,6 +138,13 @@ async function createBackupAsync(reason = "manual", opts = {}) {
|
|
|
138
138
|
} catch {
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
|
+
try {
|
|
142
|
+
const { manifestWriteEnabled, writeBackupManifest } = await import("./backup-verify-ZAJLEL4X.js");
|
|
143
|
+
if (manifestWriteEnabled()) {
|
|
144
|
+
await writeBackupManifest(backupPath, dbName);
|
|
145
|
+
}
|
|
146
|
+
} catch {
|
|
147
|
+
}
|
|
141
148
|
try {
|
|
142
149
|
enforceRetention(reason);
|
|
143
150
|
} catch {
|
|
@@ -159,6 +166,13 @@ function rotateBackups(keepDays = DEFAULT_KEEP_DAYS) {
|
|
|
159
166
|
if (stat.mtimeMs < cutoff) {
|
|
160
167
|
unlinkSync(filePath);
|
|
161
168
|
deleted++;
|
|
169
|
+
if (file.endsWith(".db")) {
|
|
170
|
+
try {
|
|
171
|
+
const mf = filePath + ".manifest.json";
|
|
172
|
+
if (existsSync(mf)) unlinkSync(mf);
|
|
173
|
+
} catch {
|
|
174
|
+
}
|
|
175
|
+
}
|
|
162
176
|
}
|
|
163
177
|
} catch {
|
|
164
178
|
}
|
|
@@ -249,7 +263,7 @@ function rotateBackupsByReason(reason, keep) {
|
|
|
249
263
|
}
|
|
250
264
|
}
|
|
251
265
|
for (const target of selectBackupsToDelete(matches, keep)) {
|
|
252
|
-
for (const p of [target, target + "-wal", target + "-shm"]) {
|
|
266
|
+
for (const p of [target, target + "-wal", target + "-shm", target + ".manifest.json"]) {
|
|
253
267
|
try {
|
|
254
268
|
if (existsSync(p)) {
|
|
255
269
|
unlinkSync(p);
|
|
@@ -327,7 +341,7 @@ function pruneCorruptQuarantine(keep = QUARANTINE_KEEP) {
|
|
|
327
341
|
}
|
|
328
342
|
}
|
|
329
343
|
for (const target of selectBackupsToDelete(matches, keep)) {
|
|
330
|
-
for (const p of [target, target + "-wal", target + "-shm"]) {
|
|
344
|
+
for (const p of [target, target + "-wal", target + "-shm", target + ".manifest.json"]) {
|
|
331
345
|
try {
|
|
332
346
|
if (existsSync(p)) {
|
|
333
347
|
unlinkSync(p);
|