@askexenow/exe-os 0.9.323 → 0.9.324
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/stack-manifests/v0.9.json +110 -2
- package/dist/{active-agent-67BHUBV2.js → active-agent-CVSB2EER.js} +3 -3
- package/dist/{active-agent-IGVX2AAK.js → active-agent-IUVRZOSF.js} +3 -3
- package/dist/{agentic-ontology-I5MEKVGE.js → agentic-ontology-2QFPBIQP.js} +1 -1
- package/dist/{backfill-metadata-N5VVCYFT.js → backfill-metadata-W3PRQPVV.js} +4 -4
- package/dist/{behaviors-2YYG72ZH.js → behaviors-MQCADHAD.js} +5 -5
- package/dist/bin/agentic-ontology-backfill.js +5 -5
- package/dist/bin/agentic-reflection-backfill.js +6 -6
- package/dist/bin/agentic-semantic-label.js +5 -5
- package/dist/bin/backfill-conversations.js +5 -5
- package/dist/bin/backfill-responses.js +5 -5
- package/dist/bin/backfill-vectors.js +7 -7
- package/dist/bin/bulk-sync-postgres.js +11 -11
- package/dist/bin/cc-doctor.js +4 -4
- package/dist/bin/cleanup-stale-review-tasks.js +14 -14
- package/dist/bin/cli.js +16 -16
- package/dist/bin/deferred-daemon-restart.js +68 -68
- package/dist/bin/exe-agent-config.js +2 -2
- package/dist/bin/exe-agent.js +5 -5
- package/dist/bin/exe-assign.js +7 -7
- package/dist/bin/exe-boot.js +23 -23
- package/dist/bin/exe-call.js +5 -5
- package/dist/bin/exe-cloud.js +11 -11
- package/dist/bin/exe-config-dump.js +2 -2
- package/dist/bin/exe-dispatch.js +14 -14
- package/dist/bin/exe-doctor.js +4 -4
- package/dist/bin/exe-export-behaviors.js +7 -7
- package/dist/bin/exe-forget.js +6 -6
- package/dist/bin/exe-gateway.js +7 -7
- package/dist/bin/exe-healthcheck.js +4 -4
- package/dist/bin/exe-heartbeat.js +14 -14
- package/dist/bin/exe-kill.js +17 -17
- package/dist/bin/exe-launch-agent.js +24 -24
- package/dist/bin/exe-new-employee.js +9 -9
- package/dist/bin/exe-pending-messages.js +15 -15
- package/dist/bin/exe-pending-notifications.js +14 -14
- package/dist/bin/exe-pending-reviews.js +14 -14
- package/dist/bin/exe-rename.js +5 -5
- package/dist/bin/exe-review.js +16 -16
- package/dist/bin/exe-search.js +5 -5
- package/dist/bin/exe-session-cleanup.js +18 -18
- package/dist/bin/exe-settings.js +11 -11
- package/dist/bin/exe-start-codex.js +51 -34
- package/dist/bin/exe-start-opencode.js +8 -8
- package/dist/bin/exe-status.js +15 -15
- package/dist/bin/exe-support.js +3 -3
- package/dist/bin/exe-team.js +3 -3
- package/dist/bin/git-sweep.js +15 -15
- package/dist/bin/graph-backfill.js +4 -4
- package/dist/bin/graph-export.js +5 -5
- package/dist/bin/import-history.js +7 -7
- package/dist/bin/install.js +70 -70
- 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/pre-publish.js +1 -1
- package/dist/bin/registry-proxy.js +1 -1
- package/dist/bin/scan-tasks.js +14 -14
- package/dist/bin/setup.js +1 -1
- package/dist/bin/shard-migrate.js +4 -4
- package/dist/bin/stack-update.js +4 -4
- package/dist/bin/vps-health-gate.js +1 -1
- package/dist/{capability-cards-RC4JYXCG.js → capability-cards-STD3NMCR.js} +2 -2
- package/dist/{capacity-monitor-EDIGJSVQ.js → capacity-monitor-6O3PWYNM.js} +15 -15
- package/dist/{catchup-brief-YVSBRXYZ.js → catchup-brief-EDQ3VZCF.js} +17 -17
- package/dist/{chunk-EZHNCIO5.js → chunk-2E2NKFXK.js} +1 -1
- package/dist/{chunk-CMZIAR5S.js → chunk-2NY7LZT7.js} +1 -1
- package/dist/{chunk-XYJXJWKH.js → chunk-2QD5M47V.js} +3 -3
- package/dist/{chunk-3MUV2GDZ.js → chunk-2YWUZPHE.js} +2 -2
- package/dist/{chunk-A3CRB4PS.js → chunk-2ZW4AQ24.js} +3 -3
- package/dist/{chunk-H7FI3AWZ.js → chunk-376J36IW.js} +4 -4
- package/dist/{chunk-2COLYLE6.js → chunk-5VT45EV6.js} +1 -1
- package/dist/{chunk-HAA4N3NI.js → chunk-5YCOEPEX.js} +1 -1
- package/dist/{chunk-JTF4UVXK.js → chunk-6FWMLTF2.js} +1 -1
- package/dist/{chunk-IKFL4OLM.js → chunk-6XAAJ5OV.js} +1 -1
- package/dist/{chunk-ZU2UK4BC.js → chunk-7M6TXYRQ.js} +10 -10
- package/dist/{chunk-3LZILUET.js → chunk-7PLMYXPG.js} +1 -1
- package/dist/{chunk-DDKDN4HV.js → chunk-A47MXY2I.js} +7 -0
- package/dist/{chunk-SSIUJXOL.js → chunk-AEFZEJKW.js} +1 -1
- package/dist/{chunk-IKOAALTW.js → chunk-AVKZIG4A.js} +1 -1
- package/dist/{chunk-GHARDROH.js → chunk-BB5IKY7B.js} +2 -2
- package/dist/{chunk-UPLY33F7.js → chunk-BC7IIR3A.js} +64 -38
- package/dist/{chunk-WRA6OO5V.js → chunk-BDJQWBWF.js} +3 -3
- package/dist/{chunk-L5TUAHLX.js → chunk-BMSAJ2IH.js} +1 -1
- package/dist/{chunk-5HXJI7SX.js → chunk-C7B44DJI.js} +1 -1
- package/dist/{chunk-3QJ3GDQZ.js → chunk-CS6MYGNB.js} +3 -3
- package/dist/{chunk-4GK6JTEV.js → chunk-CSPHV5DJ.js} +1 -1
- package/dist/{chunk-RYJH6S55.js → chunk-DYUISOIT.js} +1 -1
- package/dist/{chunk-PGEADAZL.js → chunk-EWDTTTZP.js} +3 -3
- package/dist/{chunk-5CRFNQ7L.js → chunk-F2RK5YWB.js} +36 -27
- package/dist/{chunk-364VBQIC.js → chunk-F6TJIWN5.js} +1 -1
- package/dist/{chunk-644DVREV.js → chunk-FPTBCPI3.js} +2 -2
- package/dist/{chunk-W33H7TWW.js → chunk-GIFDGNIL.js} +1 -1
- package/dist/{chunk-NQPAG7CB.js → chunk-HAYDXMW6.js} +3 -3
- package/dist/{chunk-UB322YIG.js → chunk-HBKYKN3S.js} +1 -1
- package/dist/{chunk-WCXFNUMD.js → chunk-HZ5J2GFE.js} +7 -7
- package/dist/{chunk-5ZQMGI3V.js → chunk-ID3V4BWS.js} +1 -1
- package/dist/{chunk-3CT3GN2B.js → chunk-JRD7ARQ6.js} +60 -2
- package/dist/{chunk-BKOGHVRO.js → chunk-KJOQLNX2.js} +1 -1
- package/dist/{chunk-QBRBLEXP.js → chunk-KK67DSCO.js} +8 -8
- package/dist/{chunk-UW5QD52P.js → chunk-KLDQFOFY.js} +9 -9
- package/dist/{chunk-XK7HAEFC.js → chunk-KUJGADX6.js} +67 -16
- package/dist/{chunk-AVEOL6NP.js → chunk-KWWHRJGG.js} +638 -535
- package/dist/{chunk-W377NZE4.js → chunk-LUOQCGBO.js} +1 -1
- package/dist/{chunk-A6ODMODG.js → chunk-LWAGAC3H.js} +1 -1
- package/dist/{chunk-SE7TU5GX.js → chunk-MB2YT5VQ.js} +2 -2
- package/dist/{chunk-I4IMPAZQ.js → chunk-MCEXBLLK.js} +3 -3
- package/dist/{chunk-VH345O6X.js → chunk-MIWPKWXQ.js} +1 -1
- package/dist/{chunk-T3OGIK3Y.js → chunk-MKIFYIXC.js} +1 -1
- package/dist/{chunk-VQEZ3ZNK.js → chunk-MWIX3YKA.js} +4 -4
- package/dist/{chunk-A6I36KVN.js → chunk-NBDTQVWU.js} +2 -2
- package/dist/{chunk-SXN3TRJ4.js → chunk-NGACCR2M.js} +1 -1
- package/dist/{chunk-VJL2BGX2.js → chunk-PGFYWVOB.js} +1 -1
- package/dist/{chunk-DDRASSJI.js → chunk-PGUISLOT.js} +5 -5
- package/dist/{chunk-QCWZMS7B.js → chunk-PJTEZLAM.js} +1 -1
- package/dist/{chunk-4VW5KF6X.js → chunk-POOMY3CS.js} +4 -4
- package/dist/{chunk-S6XKC36B.js → chunk-PV7IG4V6.js} +1 -1
- package/dist/{chunk-3VYAQUWZ.js → chunk-QDI77B3E.js} +1 -1
- package/dist/{chunk-46AMZT3C.js → chunk-QGOMYIVT.js} +14 -5
- package/dist/{chunk-CCYEO6EG.js → chunk-QQFZ32WS.js} +5 -5
- package/dist/{chunk-2RR2CJCX.js → chunk-SOXUF34Y.js} +2 -2
- package/dist/{chunk-NW6V3XVK.js → chunk-SPO2RLOB.js} +1 -1
- package/dist/{chunk-GMDLNJ5E.js → chunk-T3XHH5FE.js} +5 -5
- package/dist/{chunk-CP4LIKCX.js → chunk-TA3A4UQL.js} +1 -1
- package/dist/{chunk-WYHCMHTL.js → chunk-TGVKQ3QB.js} +3 -3
- package/dist/{chunk-YOS4FN26.js → chunk-TNS6U2K7.js} +2 -2
- package/dist/{chunk-LX2TYKEQ.js → chunk-UAIMI7CK.js} +1 -1
- package/dist/{chunk-YTPNOTUS.js → chunk-UXYQLOFW.js} +8 -8
- package/dist/{chunk-IFXE7QYT.js → chunk-UYOW7U24.js} +1 -1
- package/dist/{chunk-YS7VW7KR.js → chunk-V4VYIHSL.js} +1 -1
- package/dist/{chunk-SAUO2ZLB.js → chunk-VDUHWQFA.js} +1 -1
- package/dist/{chunk-EAHLB7YN.js → chunk-W5GBB23I.js} +1 -1
- package/dist/{chunk-A2K7YIRL.js → chunk-WF3J6GJZ.js} +2 -2
- package/dist/{chunk-E72VLAJH.js → chunk-WGHTISNK.js} +3 -3
- package/dist/{chunk-7PXMLHPG.js → chunk-WGOAILWE.js} +2 -2
- package/dist/{chunk-ZR57QAJ2.js → chunk-WJICX53Z.js} +1 -1
- package/dist/{chunk-U3VSCPGX.js → chunk-Y2KBHLEO.js} +1 -1
- package/dist/{chunk-HYNNAM4R.js → chunk-Y34FDPOY.js} +5 -5
- package/dist/{chunk-6UR7C2NX.js → chunk-YBHOWK3L.js} +2 -2
- package/dist/{chunk-DZVQ23CM.js → chunk-ZDNJ3TSB.js} +7 -7
- package/dist/{chunk-KIXTW4VH.js → chunk-ZRZ2Z6RZ.js} +1 -1
- package/dist/{cleanup-graph-garbage-5KI4MSDC.js → cleanup-graph-garbage-2YH52ADR.js} +4 -4
- package/dist/{co-activation-JRDKF2M3.js → co-activation-7F3J2GC7.js} +2 -2
- package/dist/{co-occurrence-JGFIAEKR.js → co-occurrence-B36Q5GY3.js} +2 -2
- package/dist/{code-context-index-NODPVXHC.js → code-context-index-2PUBBQOE.js} +2 -2
- package/dist/{crdt-sync-NOWBFD5N.js → crdt-sync-MXHPR6V6.js} +1 -1
- package/dist/{crm-webhook-FXSSAHON.js → crm-webhook-56MWGMRY.js} +2 -2
- package/dist/{cto-delegation-gate-J6DDJFAB.js → cto-delegation-gate-26BD7NEE.js} +13 -13
- package/dist/{daemon-orchestration-HIZMZ2Y5.js → daemon-orchestration-IBP6PWEG.js} +17 -17
- package/dist/{db-backup-I5GQBRIG.js → db-backup-XLID57KW.js} +1 -1
- package/dist/{doc-graph-extractor-TAZHM63R.js → doc-graph-extractor-VBZ6XTTE.js} +2 -2
- package/dist/{documents-XXOQ5QIJ.js → documents-C5LYSJT3.js} +7 -7
- package/dist/{dreaming-V275C7L2.js → dreaming-LMVDIC5C.js} +14 -14
- package/dist/{exe-drift-VOJZYOIO.js → exe-drift-T3K6WA47.js} +3 -3
- package/dist/{exe-export-EDQDGZV3.js → exe-export-QCTASWXI.js} +7 -7
- package/dist/{exe-import-DV7GKBZD.js → exe-import-WNP5A7VA.js} +7 -7
- package/dist/{exe-key-6SLYWY36.js → exe-key-JM3JXE2E.js} +68 -68
- package/dist/{exe-snapshot-TDQI34DW.js → exe-snapshot-ODDJUEM5.js} +17 -17
- package/dist/{fast-db-init-SNHHRW3L.js → fast-db-init-O6A3TK3F.js} +1 -1
- package/dist/{founder-context-UZVRU4HI.js → founder-context-FYTF4IMD.js} +2 -2
- package/dist/gateway/index.js +11 -11
- package/dist/{git-staleness-TRCX6FVG.js → git-staleness-YA5J6VYJ.js} +2 -2
- package/dist/{global-procedures-LH4JG3CR.js → global-procedures-76NDWTYN.js} +4 -4
- package/dist/{graph-auto-extract-YTXHYR35.js → graph-auto-extract-I7QL2TY5.js} +2 -2
- package/dist/hooks/bug-report-worker.js +16 -16
- package/dist/hooks/codex-stop-task-finalizer.js +16 -16
- package/dist/hooks/commit-complete.js +16 -16
- package/dist/hooks/error-recall.js +6 -6
- package/dist/hooks/exe-heartbeat-hook.js +3 -3
- package/dist/hooks/ingest-worker.js +2 -2
- package/dist/hooks/ingest.js +6 -6
- 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 +15 -15
- package/dist/hooks/post-tool-combined.js +8 -8
- package/dist/hooks/pre-compact.js +16 -16
- package/dist/hooks/pre-tool-use.js +19 -19
- package/dist/hooks/prompt-submit.js +29 -29
- package/dist/hooks/session-end.js +21 -21
- package/dist/hooks/session-start.js +12 -12
- package/dist/hooks/stop.js +22 -22
- package/dist/hooks/subagent-stop.js +15 -15
- package/dist/hooks/summary-worker.js +19 -19
- package/dist/index.js +23 -23
- package/dist/{installer-U7D3PAR5.js → installer-3EYHBKWB.js} +5 -5
- package/dist/{installer-WHO23TIO.js → installer-3VZMDDMJ.js} +5 -5
- package/dist/{installer-W4SHZFOR.js → installer-GYABVCB7.js} +5 -5
- package/dist/{intercom-queue-2XB622OR.js → intercom-queue-ZCNT4LYU.js} +13 -13
- package/dist/lib/cloud-sync.js +11 -11
- package/dist/lib/consolidation.js +5 -5
- 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 +5 -5
- package/dist/lib/employees.js +2 -2
- package/dist/lib/exe-daemon-client.js +1 -1
- package/dist/lib/exe-daemon.js +125 -62
- package/dist/lib/hybrid-search.js +5 -5
- package/dist/lib/identity.js +2 -2
- package/dist/lib/license.js +2 -2
- package/dist/lib/messaging.js +14 -14
- package/dist/lib/registry-proxy.js +1 -1
- package/dist/lib/reminders.js +3 -3
- package/dist/lib/schedules.js +5 -5
- package/dist/lib/session-registry.js +6 -4
- package/dist/lib/skill-learning.js +6 -6
- package/dist/lib/store.js +4 -4
- package/dist/lib/task-router.js +3 -3
- package/dist/lib/tasks.js +15 -15
- package/dist/lib/tmux-routing.js +15 -13
- package/dist/lib/token-spend.js +3 -3
- package/dist/{license-gate-7CYKGRXW.js → license-gate-73XGUIVP.js} +3 -3
- package/dist/{license-sync-H4TVZ7PR.js → license-sync-CG5YRUVH.js} +2 -2
- package/dist/mcp/register-tools.js +67 -67
- package/dist/mcp/server.js +71 -71
- 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 +17 -17
- package/dist/mcp/tools/deactivate-behavior.js +7 -7
- package/dist/mcp/tools/list-reminders.js +4 -4
- package/dist/mcp/tools/list-tasks.js +17 -17
- package/dist/mcp/tools/send-message.js +16 -16
- package/dist/mcp/tools/update-task.js +16 -16
- package/dist/{mcp-http-config-LEBUOECG.js → mcp-http-config-TT7PXZLX.js} +3 -3
- package/dist/{memory-cards-47XM3VWW.js → memory-cards-6NGUDUDN.js} +4 -4
- package/dist/{memory-graph-extractor-COD5E52L.js → memory-graph-extractor-FIMS3VQR.js} +3 -3
- package/dist/{memory-poisoning-defense-SBYOEXT3.js → memory-poisoning-defense-M3LOQ3XU.js} +2 -2
- package/dist/{memory-pressure-watchdog-T276SDOR.js → memory-pressure-watchdog-45GABDWH.js} +14 -14
- package/dist/{memory-queue-client-IQ52W7W4.js → memory-queue-client-BDYKFNB4.js} +2 -2
- package/dist/{memory-reflection-UZK5MHG2.js → memory-reflection-LANCFYK2.js} +2 -2
- package/dist/{notifications-O5DH4O35.js → notifications-N5NKUYAU.js} +13 -13
- package/dist/{orchestration-events-65YDDRF4.js → orchestration-events-KVNRNIPR.js} +3 -3
- package/dist/{orchestrator-NHMTDGWJ.js → orchestrator-VTF5BR26.js} +15 -15
- package/dist/{pipeline-router-2KJQDX5O.js → pipeline-router-KQAYWDPH.js} +3 -3
- package/dist/{plan-limits-NQQN5C4S.js → plan-limits-EUZI4X5W.js} +5 -5
- package/dist/{projection-worker-IUCBINZH.js → projection-worker-FG6G226D.js} +2 -2
- package/dist/{prospective-memory-U2TISMIW.js → prospective-memory-FVDNUSIL.js} +2 -2
- package/dist/{reranker-D6NSD5A3.js → reranker-54Q3L32E.js} +1 -1
- package/dist/{retrieval-health-LBNMCYNF.js → retrieval-health-YJ7CXYVD.js} +1 -1
- package/dist/{review-polling-ZJWELHBP.js → review-polling-TKXYSXH6.js} +14 -14
- package/dist/runtime/index.js +17 -17
- package/dist/{session-events-GRHFFRZV.js → session-events-WQHTP65R.js} +14 -14
- package/dist/{session-kill-telemetry-ALV4KMWS.js → session-kill-telemetry-2HSE7IGH.js} +14 -14
- package/dist/{session-scope-JB5TBNCX.js → session-scope-RBKAC75W.js} +13 -13
- package/dist/{setup-wizard-5STOE3PS.js → setup-wizard-AA6ZV57H.js} +1 -1
- package/dist/{skill-refinement-JB2LRDLS.js → skill-refinement-QI35LMTZ.js} +3 -3
- package/dist/{stack-update-ZG4YS7WS.js → stack-update-BE6PX4AG.js} +3 -3
- package/dist/{steward-gate-TE63SGPL.js → steward-gate-2XD5BXH6.js} +3 -3
- package/dist/{task-enforcement-72WZMQGC.js → task-enforcement-DMOCBRLB.js} +14 -14
- package/dist/{task-scope-FLDBFGWR.js → task-scope-ULBNFBFH.js} +13 -13
- package/dist/{tasks-crud-DKOSSXTD.js → tasks-crud-6SJOKES5.js} +15 -13
- package/dist/{tasks-notify-WEWKM6B3.js → tasks-notify-TESRABUM.js} +14 -14
- package/dist/{tasks-review-MHCL7PNP.js → tasks-review-INDAGLWJ.js} +13 -13
- package/dist/{telemetry-upload-K2MZ4O6U.js → telemetry-upload-6XB3Q3IH.js} +7 -7
- package/dist/{token-budget-MZZ5DLOH.js → token-budget-NOF27AZC.js} +3 -3
- package/dist/{tool-capability-index-M3FUNMFF.js → tool-capability-index-EFBBPTBI.js} +1 -1
- package/dist/{tool-telemetry-ERE5FRVC.js → tool-telemetry-OEK6KQFF.js} +1 -1
- package/dist/tui/App.js +22 -22
- package/dist/{tui-data-JDBTFDAF.js → tui-data-EG6LEZFF.js} +13 -13
- package/dist/{worker-gate-3OR47E4T.js → worker-gate-YA35VMAN.js} +1 -1
- package/dist/{workflow-engine-JLVEE2CI.js → workflow-engine-3AVKRE5I.js} +2 -2
- package/dist/{worktree-WLPHLZ2S.js → worktree-72QYYL5L.js} +4 -4
- package/dist/{worktree-sweep-S6AYDLAQ.js → worktree-sweep-GDISKGQ2.js} +5 -5
- package/package.json +3 -3
- package/release-notes.json +35 -67
- /package/dist/{chunk-VW326Q5R.js → chunk-24WPWCD6.js} +0 -0
- /package/dist/{chunk-TVY65H23.js → chunk-4O3N7I5Z.js} +0 -0
- /package/dist/{chunk-MV5OSOP4.js → chunk-7577GDDG.js} +0 -0
- /package/dist/{chunk-B2ONIFHD.js → chunk-EWKZKO7F.js} +0 -0
- /package/dist/{chunk-FU767JXE.js → chunk-H43BPGIV.js} +0 -0
- /package/dist/{chunk-RYZR4NNE.js → chunk-IHRXCNSC.js} +0 -0
- /package/dist/{chunk-SSM2JHQ4.js → chunk-NIB2N6L2.js} +0 -0
- /package/dist/{chunk-HWVEDRZA.js → chunk-QMUSJESS.js} +0 -0
- /package/dist/{chunk-AI3BK3JD.js → chunk-RXS2LBKE.js} +0 -0
- /package/dist/{chunk-2G75BF5J.js → chunk-SNFYZFXY.js} +0 -0
- /package/dist/{chunk-6IJ47YFD.js → chunk-TSYMWC53.js} +0 -0
- /package/dist/{chunk-X2K2LHFO.js → chunk-UBYAKNRF.js} +0 -0
- /package/dist/{core-memory-4AZ2CSQZ.js → core-memory-NKKP2XUB.js} +0 -0
- /package/dist/{entity-boost-WV4GGNN2.js → entity-boost-DRIUFTYB.js} +0 -0
- /package/dist/{message-queue-client-JZ7TIOTZ.js → message-queue-client-4ERC7HLX.js} +0 -0
- /package/dist/{oauth-server-LUJ5P2BH.js → oauth-server-PECJREY2.js} +0 -0
- /package/dist/{project-boot-TOFNGMHM.js → project-boot-SFKP2MFW.js} +0 -0
- /package/dist/{wiki-acl-3JA23DH3.js → wiki-acl-QIBDNXSM.js} +0 -0
|
@@ -8,43 +8,43 @@ import {
|
|
|
8
8
|
isAtCapacity,
|
|
9
9
|
isWithinRelaunchCooldown,
|
|
10
10
|
pollCapacityDead
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-QQFZ32WS.js";
|
|
12
|
+
import "./chunk-EWDTTTZP.js";
|
|
13
|
+
import "./chunk-KUJGADX6.js";
|
|
14
|
+
import "./chunk-7PLMYXPG.js";
|
|
15
|
+
import "./chunk-KJOQLNX2.js";
|
|
16
|
+
import "./chunk-Y2KBHLEO.js";
|
|
17
17
|
import "./chunk-EIKATSE4.js";
|
|
18
18
|
import "./chunk-E23LNUWJ.js";
|
|
19
19
|
import "./chunk-4JERP7NT.js";
|
|
20
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-JRD7ARQ6.js";
|
|
21
21
|
import "./chunk-SSTLTIF3.js";
|
|
22
22
|
import "./chunk-RMOBQ6A5.js";
|
|
23
23
|
import "./chunk-54QCG45Y.js";
|
|
24
|
-
import "./chunk-
|
|
24
|
+
import "./chunk-F6TJIWN5.js";
|
|
25
25
|
import "./chunk-FROUDYRT.js";
|
|
26
26
|
import "./chunk-NGP6LSV2.js";
|
|
27
|
-
import "./chunk-
|
|
27
|
+
import "./chunk-BB5IKY7B.js";
|
|
28
28
|
import "./chunk-CVYC6DUW.js";
|
|
29
|
-
import "./chunk-
|
|
29
|
+
import "./chunk-GIFDGNIL.js";
|
|
30
30
|
import "./chunk-HCJCW7X4.js";
|
|
31
31
|
import "./chunk-OPU3NYOO.js";
|
|
32
|
-
import "./chunk-
|
|
32
|
+
import "./chunk-BC7IIR3A.js";
|
|
33
33
|
import "./chunk-AFNRE2RV.js";
|
|
34
34
|
import "./chunk-3NGZ4PL7.js";
|
|
35
35
|
import "./chunk-NLEW62VC.js";
|
|
36
36
|
import "./chunk-HYZV25LY.js";
|
|
37
37
|
import "./chunk-GJV3WDWM.js";
|
|
38
38
|
import "./chunk-MP2AFCGL.js";
|
|
39
|
-
import "./chunk-
|
|
39
|
+
import "./chunk-QGOMYIVT.js";
|
|
40
40
|
import "./chunk-2I23RPSI.js";
|
|
41
|
-
import "./chunk-
|
|
41
|
+
import "./chunk-7577GDDG.js";
|
|
42
42
|
import "./chunk-PNQDP3OA.js";
|
|
43
43
|
import "./chunk-H73TUI4Y.js";
|
|
44
44
|
import "./chunk-7HLWBYH7.js";
|
|
45
45
|
import "./chunk-FXU7JOXK.js";
|
|
46
|
-
import "./chunk-
|
|
47
|
-
import "./chunk-
|
|
46
|
+
import "./chunk-BMSAJ2IH.js";
|
|
47
|
+
import "./chunk-IHRXCNSC.js";
|
|
48
48
|
import "./chunk-7Y5UDEVM.js";
|
|
49
49
|
import "./chunk-SHIICYJW.js";
|
|
50
50
|
import "./chunk-MLKGABMK.js";
|
|
@@ -1,35 +1,35 @@
|
|
|
1
1
|
import {
|
|
2
2
|
lightweightSearch
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-7M6TXYRQ.js";
|
|
4
4
|
import "./chunk-AB4PAQYK.js";
|
|
5
|
-
import "./chunk-
|
|
5
|
+
import "./chunk-KLDQFOFY.js";
|
|
6
6
|
import "./chunk-CHCA3ZM2.js";
|
|
7
7
|
import "./chunk-OTVEIJUQ.js";
|
|
8
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-TSYMWC53.js";
|
|
9
9
|
import "./chunk-Y25OJWOQ.js";
|
|
10
10
|
import {
|
|
11
11
|
sessionScopeFilter,
|
|
12
12
|
strictSessionScopeFilter
|
|
13
|
-
} from "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
13
|
+
} from "./chunk-KUJGADX6.js";
|
|
14
|
+
import "./chunk-7PLMYXPG.js";
|
|
15
|
+
import "./chunk-KJOQLNX2.js";
|
|
16
|
+
import "./chunk-Y2KBHLEO.js";
|
|
17
17
|
import "./chunk-EIKATSE4.js";
|
|
18
18
|
import "./chunk-E23LNUWJ.js";
|
|
19
19
|
import "./chunk-4JERP7NT.js";
|
|
20
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-JRD7ARQ6.js";
|
|
21
21
|
import "./chunk-SSTLTIF3.js";
|
|
22
22
|
import "./chunk-RMOBQ6A5.js";
|
|
23
23
|
import "./chunk-54QCG45Y.js";
|
|
24
|
-
import "./chunk-
|
|
24
|
+
import "./chunk-F6TJIWN5.js";
|
|
25
25
|
import "./chunk-FROUDYRT.js";
|
|
26
26
|
import "./chunk-NGP6LSV2.js";
|
|
27
|
-
import "./chunk-
|
|
27
|
+
import "./chunk-BB5IKY7B.js";
|
|
28
28
|
import "./chunk-CVYC6DUW.js";
|
|
29
|
-
import "./chunk-
|
|
29
|
+
import "./chunk-GIFDGNIL.js";
|
|
30
30
|
import "./chunk-HCJCW7X4.js";
|
|
31
31
|
import "./chunk-OPU3NYOO.js";
|
|
32
|
-
import "./chunk-
|
|
32
|
+
import "./chunk-BC7IIR3A.js";
|
|
33
33
|
import "./chunk-AFNRE2RV.js";
|
|
34
34
|
import "./chunk-3NGZ4PL7.js";
|
|
35
35
|
import "./chunk-NLEW62VC.js";
|
|
@@ -38,16 +38,16 @@ import "./chunk-GJV3WDWM.js";
|
|
|
38
38
|
import "./chunk-MP2AFCGL.js";
|
|
39
39
|
import {
|
|
40
40
|
getClient
|
|
41
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-QGOMYIVT.js";
|
|
42
42
|
import "./chunk-2I23RPSI.js";
|
|
43
|
-
import "./chunk-
|
|
43
|
+
import "./chunk-7577GDDG.js";
|
|
44
44
|
import "./chunk-PNQDP3OA.js";
|
|
45
45
|
import "./chunk-H73TUI4Y.js";
|
|
46
46
|
import "./chunk-7HLWBYH7.js";
|
|
47
47
|
import "./chunk-FXU7JOXK.js";
|
|
48
48
|
import "./chunk-Z42MXYWW.js";
|
|
49
|
-
import "./chunk-
|
|
50
|
-
import "./chunk-
|
|
49
|
+
import "./chunk-BMSAJ2IH.js";
|
|
50
|
+
import "./chunk-IHRXCNSC.js";
|
|
51
51
|
import "./chunk-7Y5UDEVM.js";
|
|
52
52
|
import "./chunk-SHIICYJW.js";
|
|
53
53
|
import "./chunk-MLKGABMK.js";
|
|
@@ -156,7 +156,7 @@ ${msgLines}`);
|
|
|
156
156
|
} catch {
|
|
157
157
|
}
|
|
158
158
|
try {
|
|
159
|
-
const { getPendingProspective, markSurfaced } = await import("./prospective-memory-
|
|
159
|
+
const { getPendingProspective, markSurfaced } = await import("./prospective-memory-FVDNUSIL.js");
|
|
160
160
|
const due = await getPendingProspective(agentId, { projectName, limit: 5 });
|
|
161
161
|
if (due.length > 0) {
|
|
162
162
|
const now = Date.now();
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getActiveAgent
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-ID3V4BWS.js";
|
|
4
4
|
import {
|
|
5
5
|
listTasks
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-KUJGADX6.js";
|
|
7
7
|
import {
|
|
8
8
|
getAgentContext
|
|
9
9
|
} from "./chunk-GJV3WDWM.js";
|
|
10
10
|
import {
|
|
11
11
|
isCoordinatorName
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-QGOMYIVT.js";
|
|
13
13
|
|
|
14
14
|
// src/mcp/tools/list-tasks.ts
|
|
15
15
|
import { z } from "zod";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
sessionScopeFilter
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-KUJGADX6.js";
|
|
4
4
|
|
|
5
5
|
// src/lib/git-task-sweep.ts
|
|
6
6
|
import { execSync } from "child_process";
|
|
@@ -238,7 +238,7 @@ async function sweepTasks(projectName, options = {}) {
|
|
|
238
238
|
}
|
|
239
239
|
if (!dryRun) {
|
|
240
240
|
try {
|
|
241
|
-
const { updateTaskStatus } = await import("./tasks-crud-
|
|
241
|
+
const { updateTaskStatus } = await import("./tasks-crud-6SJOKES5.js");
|
|
242
242
|
await updateTaskStatus({
|
|
243
243
|
taskId: task.id,
|
|
244
244
|
status: "needs_review",
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
extractMemoryGraph
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-WGOAILWE.js";
|
|
4
4
|
import {
|
|
5
5
|
flushBatch,
|
|
6
6
|
writeMemory
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-KLDQFOFY.js";
|
|
8
8
|
import {
|
|
9
9
|
extractKeywords
|
|
10
10
|
} from "./chunk-CHCA3ZM2.js";
|
|
11
11
|
import {
|
|
12
12
|
getActiveAgent
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-ID3V4BWS.js";
|
|
14
14
|
|
|
15
15
|
// src/mcp/tools/import-conversations.ts
|
|
16
16
|
import { z } from "zod";
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
deactivateBehavior
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-WF3J6GJZ.js";
|
|
4
4
|
import {
|
|
5
5
|
getActiveAgent
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-ID3V4BWS.js";
|
|
7
7
|
import {
|
|
8
8
|
canCoordinate,
|
|
9
9
|
getClient
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-QGOMYIVT.js";
|
|
11
11
|
|
|
12
12
|
// src/mcp/tools/deactivate-behavior.ts
|
|
13
13
|
import { z } from "zod";
|
|
@@ -24,7 +24,7 @@ function registerDeactivateBehavior(server) {
|
|
|
24
24
|
async ({ behavior_id }) => {
|
|
25
25
|
const caller = getActiveAgent();
|
|
26
26
|
try {
|
|
27
|
-
const { StewardGate } = await import("./steward-gate-
|
|
27
|
+
const { StewardGate } = await import("./steward-gate-2XD5BXH6.js");
|
|
28
28
|
const steward = new StewardGate();
|
|
29
29
|
const gateDecision = await steward.checkAuthority(caller.agentId || "unknown", "deactivate_behavior", behavior_id);
|
|
30
30
|
if (!gateDecision.allowed) {
|
|
@@ -119,7 +119,7 @@ function releaseBackfillLock() {
|
|
|
119
119
|
}
|
|
120
120
|
async function getTaskAwareCapacity() {
|
|
121
121
|
const { getClient } = await import("./lib/database.js");
|
|
122
|
-
const { sessionScopeFilter } = await import("./task-scope-
|
|
122
|
+
const { sessionScopeFilter } = await import("./task-scope-ULBNFBFH.js");
|
|
123
123
|
const client = getClient();
|
|
124
124
|
const scope = sessionScopeFilter();
|
|
125
125
|
const result = await client.execute({
|
|
@@ -8,13 +8,13 @@ import {
|
|
|
8
8
|
buildStatusFilter,
|
|
9
9
|
buildWikiScopeFilter,
|
|
10
10
|
searchMemories
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-KLDQFOFY.js";
|
|
12
12
|
import {
|
|
13
13
|
blobToVector
|
|
14
14
|
} from "./chunk-OTVEIJUQ.js";
|
|
15
15
|
import {
|
|
16
16
|
getClient
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-QGOMYIVT.js";
|
|
18
18
|
|
|
19
19
|
// src/lib/hybrid-search.ts
|
|
20
20
|
var RRF_K = 60;
|
|
@@ -359,7 +359,7 @@ async function hybridSearch(queryText, agentId, options) {
|
|
|
359
359
|
let rerankerAvailable = false;
|
|
360
360
|
if (process.env.EXE_IS_DAEMON === "1") {
|
|
361
361
|
try {
|
|
362
|
-
const { isRerankerAvailable } = await import("./reranker-
|
|
362
|
+
const { isRerankerAvailable } = await import("./reranker-54Q3L32E.js");
|
|
363
363
|
rerankerAvailable = isRerankerAvailable();
|
|
364
364
|
} catch {
|
|
365
365
|
}
|
|
@@ -427,7 +427,7 @@ async function hybridSearch(queryText, agentId, options) {
|
|
|
427
427
|
]).catch(() => []),
|
|
428
428
|
includeStructuredCards ? (async () => {
|
|
429
429
|
try {
|
|
430
|
-
const { searchMemoryCards } = await import("./memory-cards-
|
|
430
|
+
const { searchMemoryCards } = await import("./memory-cards-6NGUDUDN.js");
|
|
431
431
|
return await searchMemoryCards(effectiveQuery, agentId, fetchOptions);
|
|
432
432
|
} catch {
|
|
433
433
|
return [];
|
|
@@ -436,7 +436,7 @@ async function hybridSearch(queryText, agentId, options) {
|
|
|
436
436
|
// Reflection insights: patterns, contradictions, summaries across sessions
|
|
437
437
|
includeStructuredCards ? (async () => {
|
|
438
438
|
try {
|
|
439
|
-
const { searchReflections } = await import("./memory-reflection-
|
|
439
|
+
const { searchReflections } = await import("./memory-reflection-LANCFYK2.js");
|
|
440
440
|
const insights = await searchReflections(effectiveQuery, agentId, 5, {
|
|
441
441
|
includeArchived: options?.includeArchived
|
|
442
442
|
});
|
|
@@ -537,7 +537,7 @@ async function hybridSearch(queryText, agentId, options) {
|
|
|
537
537
|
let entityBoostRan = false;
|
|
538
538
|
if (merged.length > 0) {
|
|
539
539
|
try {
|
|
540
|
-
const { applyEntityBoost } = await import("./entity-boost-
|
|
540
|
+
const { applyEntityBoost } = await import("./entity-boost-DRIUFTYB.js");
|
|
541
541
|
const boosted = await applyEntityBoost(merged, effectiveQuery, getClient());
|
|
542
542
|
merged = boosted.results;
|
|
543
543
|
graphContextMap = boosted.graphContext;
|
|
@@ -561,7 +561,7 @@ async function hybridSearch(queryText, agentId, options) {
|
|
|
561
561
|
try {
|
|
562
562
|
let rerankedRecords;
|
|
563
563
|
if (graphContextMap.size > 0) {
|
|
564
|
-
const { rerankWithContext } = await import("./reranker-
|
|
564
|
+
const { rerankWithContext } = await import("./reranker-54Q3L32E.js");
|
|
565
565
|
const candidates = merged.map((m) => ({
|
|
566
566
|
text: m.raw_text,
|
|
567
567
|
context: graphContextMap.get(m.id)
|
|
@@ -569,7 +569,7 @@ async function hybridSearch(queryText, agentId, options) {
|
|
|
569
569
|
const scored = await rerankWithContext(effectiveQuery, candidates, rerankReturnLimit);
|
|
570
570
|
rerankedRecords = scored.map((s) => merged[s.index]);
|
|
571
571
|
} else {
|
|
572
|
-
const { rerank } = await import("./reranker-
|
|
572
|
+
const { rerank } = await import("./reranker-54Q3L32E.js");
|
|
573
573
|
rerankedRecords = await rerank(effectiveQuery, merged, rerankReturnLimit);
|
|
574
574
|
}
|
|
575
575
|
if (rerankedRecords.length > 0) {
|
|
@@ -931,7 +931,7 @@ async function lightweightSearch(queryText, agentId, options) {
|
|
|
931
931
|
}
|
|
932
932
|
if (results.length >= 2) {
|
|
933
933
|
try {
|
|
934
|
-
const { recordCoActivations } = await import("./co-activation-
|
|
934
|
+
const { recordCoActivations } = await import("./co-activation-7F3J2GC7.js");
|
|
935
935
|
const ids = results.slice(0, 10).map((r) => r.id);
|
|
936
936
|
void recordCoActivations(ids);
|
|
937
937
|
} catch {
|
|
@@ -939,7 +939,7 @@ async function lightweightSearch(queryText, agentId, options) {
|
|
|
939
939
|
}
|
|
940
940
|
if (options?.includeStructuredCards !== true) return results;
|
|
941
941
|
try {
|
|
942
|
-
const { searchMemoryCards } = await import("./memory-cards-
|
|
942
|
+
const { searchMemoryCards } = await import("./memory-cards-6NGUDUDN.js");
|
|
943
943
|
const cardResults = await searchMemoryCards(queryText, agentId, options);
|
|
944
944
|
if (cardResults.length > 0) {
|
|
945
945
|
return rrfMergeMulti([results, cardResults], limit, RRF_K, [1, 0.85]);
|
|
@@ -309,6 +309,13 @@ var PLATFORM_PROCEDURES = [
|
|
|
309
309
|
domain: "engineering",
|
|
310
310
|
priority: "p1",
|
|
311
311
|
content: "A single audit only finds what its angles look for. A 'green' codebase (passing tests) routinely hides real, user-facing, disqualifying defects that tests structurally cannot catch. NEVER treat one audit pass as production-readiness proof. Audit as successive ROUNDS, each attacking ENTIRELY DIFFERENT surfaces, until convergence. THREE PRINCIPLES: 1. Never repeat an angle \u2014 tell each round what prior rounds already covered, so it hunts NEW surface instead of re-confirming old findings. 2. Fan out, then adversarially synthesize \u2014 N parallel hunters per round (each blind to the others), then ONE synthesizer that discards re-discoveries and renders a convergence verdict. 3. Convergence is the stop signal, NOT a round count \u2014 stop only when a FRESH-angle round comes back mostly P3 polish. A drop in findings between rounds is NOT convergence; it is usually angle exhaustion within a similar surface (a false signal). Verify by widening the aperture; if new angles still surface P0/P1, keep going. ANGLE FAMILIES (rotate; never re-run the same family): (a) Trust / obvious failures \u2014 data-loss, edge-cases, dependency-risk, privacy, ux-traps, concurrency. (b) Self-audit + structural fragility \u2014 did our own fixes / just-merged PRs introduce regressions? what is structurally fragile (dedup, token refresh, error boundaries)? (c) Desktop-native + infra \u2014 updater lifecycle (a registered-but-never-invoked auto-updater is a classic invisible P0), single-instance, half-open sockets, multi-window, native robustness, build-config. (d) Data-flow + privacy + visual \u2014 trace the EXACT bytes leaving the device (telemetry payloads), cross-user bleed on shared machines, privacy-toggle actually working, i18n/timezone, theme/CSS layout, clipboard/file-drop, logout completeness, zero-data first-run. (e) Time + OS + compound failure \u2014 offline/airplane, multi-hour soak (resource accumulation), rapid double-submit races, OS integration (notifications/tray/deep-links), session-resumption gap reconciliation, keyboard/focus/IME conflicts (the hardest class \u2014 only fails over time or when several things break at once). HONEST HEADLINE: fast-built surface that was never adversarially stressed keeps yielding blockers round after round. If early rounds keep finding real P0/P1s and never converge to polish, the right call may be a dedicated stabilization pass \u2014 NOT just more audit rounds. Surface that judgment rather than declaring 'ready' on a hopeful dip."
|
|
312
|
+
},
|
|
313
|
+
// --- License plan & refreshing entitlement ---
|
|
314
|
+
{
|
|
315
|
+
title: "License plan & refreshing entitlement \u2014 pick up a plan change (e.g. more agents)",
|
|
316
|
+
domain: "licensing",
|
|
317
|
+
priority: "p1",
|
|
318
|
+
content: "Your plan (free / pro / team / agency / enterprise) governs your limits \u2014 including how many agents/employees you can run. Enterprise = unlimited. HOW VALIDATION WORKS: your instance validates your license key (or login) against the cloud (api.askexe.com), which reads the users store \u2014 the SINGLE SOURCE OF TRUTH \u2014 and returns your plan as a signed token, cached locally at ~/.exe-os/license-cache.json (works fast, and offline within a grace window). That cached token is what your limits run on day-to-day. IF YOUR PLAN WAS CHANGED (e.g. upgraded to enterprise for more agents): the change lands on the SERVER first; your instance keeps the OLD cached plan until it re-validates \u2014 so nothing changes for you until you refresh. To pick it up IMMEDIATELY, do one of: (1) run the `refresh_license` MCP action, or (2) run the `exe-os license refresh` CLI. Either forces a re-check against the cloud, caches the new plan, and lifts your agent limit on the spot (shows old plan -> new plan + new limits). AUTOMATIC: on your next boot, your instance auto-detects a plan change (cheap cloud check, gated to ~10-min cache freshness) and announces it \u2014 e.g. 'Plan changed: pro -> enterprise. Employee limit now unlimited.' No cache-file editing, ever. ASKEXE ADMINS ONLY: to change a CUSTOMER's plan, use the admin-gated set-customer-plan path (requires the AskExe admin token \u2014 customers can never change their own or anyone's plan). It writes the users store (source of truth); the hourly license sync then reflects it into billing, and the customer runs `refresh_license` to pick it up. (Self-serve refresh available in exe-os 0.9.322+.)"
|
|
312
319
|
}
|
|
313
320
|
];
|
|
314
321
|
var PLATFORM_PROCEDURE_TITLES = new Set(
|
|
@@ -3,12 +3,12 @@ import {
|
|
|
3
3
|
getClient,
|
|
4
4
|
isInitialized,
|
|
5
5
|
loadEmployees
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-QGOMYIVT.js";
|
|
7
7
|
import {
|
|
8
8
|
PLAN_LIMITS,
|
|
9
9
|
checkLicense,
|
|
10
10
|
isFeatureAllowed
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-BMSAJ2IH.js";
|
|
12
12
|
import {
|
|
13
13
|
EXE_AI_DIR
|
|
14
14
|
} from "./chunk-7Y5UDEVM.js";
|
|
@@ -42,6 +42,7 @@ function isBootFast() {
|
|
|
42
42
|
var _socket = null;
|
|
43
43
|
var _connected = false;
|
|
44
44
|
var _autoReconnecting = false;
|
|
45
|
+
var _autoReconnectTimer = null;
|
|
45
46
|
var _buffer = "";
|
|
46
47
|
var _requestCount = 0;
|
|
47
48
|
var _consecutiveFailures = 0;
|
|
@@ -54,6 +55,11 @@ var MAX_RETRIES_BEFORE_RESTART = 3;
|
|
|
54
55
|
var RETRY_DELAYS_MS = [1e3, 3e3, 5e3];
|
|
55
56
|
var ALIVE_SOCKET_WARNING_INTERVAL_MS = 6e4;
|
|
56
57
|
var MISSING_SOCKET_RECOVERY_INTERVAL_MS = 6e4;
|
|
58
|
+
var AUTO_RECONNECT_ALIVE_MIN_MS = parseInt(process.env.EXE_DAEMON_RECONNECT_ALIVE_MIN_MS ?? "", 10) || 2e3;
|
|
59
|
+
var AUTO_RECONNECT_ALIVE_MAX_MS = parseInt(process.env.EXE_DAEMON_RECONNECT_ALIVE_MAX_MS ?? "", 10) || 3e4;
|
|
60
|
+
var AUTO_RECONNECT_DEAD_MIN_MS = parseInt(process.env.EXE_DAEMON_RECONNECT_DEAD_MIN_MS ?? "", 10) || 500;
|
|
61
|
+
var AUTO_RECONNECT_DEAD_MAX_MS = parseInt(process.env.EXE_DAEMON_RECONNECT_DEAD_MAX_MS ?? "", 10) || 1e4;
|
|
62
|
+
var MCP_RECONNECT_WAIT_MAX_MS = parseInt(process.env.EXE_MCP_RECONNECT_WAIT_MAX_MS ?? "", 10) || 25e3;
|
|
57
63
|
var _pending = /* @__PURE__ */ new Map();
|
|
58
64
|
var MAX_BUFFER = 1e7;
|
|
59
65
|
function handleData(chunk) {
|
|
@@ -260,6 +266,60 @@ function releaseSpawnLock() {
|
|
|
260
266
|
} catch {
|
|
261
267
|
}
|
|
262
268
|
}
|
|
269
|
+
function clearAutoReconnectTimer() {
|
|
270
|
+
if (_autoReconnectTimer) {
|
|
271
|
+
clearTimeout(_autoReconnectTimer);
|
|
272
|
+
_autoReconnectTimer = null;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
function autoReconnectDelay(attempt, daemonDeadInitially) {
|
|
276
|
+
const min = daemonDeadInitially ? AUTO_RECONNECT_DEAD_MIN_MS : AUTO_RECONNECT_ALIVE_MIN_MS;
|
|
277
|
+
const max = daemonDeadInitially ? AUTO_RECONNECT_DEAD_MAX_MS : AUTO_RECONNECT_ALIVE_MAX_MS;
|
|
278
|
+
const exponential = Math.min(max, min * Math.pow(2, Math.max(0, attempt - 1)));
|
|
279
|
+
const jitter = Math.random() * Math.min(min, Math.max(1, Math.floor(exponential / 2)));
|
|
280
|
+
return Math.max(1, Math.floor(exponential + jitter));
|
|
281
|
+
}
|
|
282
|
+
function startAutoReconnectLoop() {
|
|
283
|
+
if (_autoReconnecting || isBootFast()) return;
|
|
284
|
+
_autoReconnecting = true;
|
|
285
|
+
const daemonDeadInitially = !isDaemonPidAlive();
|
|
286
|
+
if (daemonDeadInitially) {
|
|
287
|
+
debugLog("[daemon-client] Daemon PID dead \u2014 fast-path respawn (skipping jitter)");
|
|
288
|
+
try {
|
|
289
|
+
cleanupStaleFiles();
|
|
290
|
+
if (acquireSpawnLock()) {
|
|
291
|
+
try {
|
|
292
|
+
spawnDaemon();
|
|
293
|
+
} finally {
|
|
294
|
+
releaseSpawnLock();
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
} catch {
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
let attempt = 0;
|
|
301
|
+
const scheduleNext = (delayMs) => {
|
|
302
|
+
clearAutoReconnectTimer();
|
|
303
|
+
_autoReconnectTimer = setTimeout(async () => {
|
|
304
|
+
attempt++;
|
|
305
|
+
const ok = await connectToSocket();
|
|
306
|
+
if (ok) {
|
|
307
|
+
clearAutoReconnectTimer();
|
|
308
|
+
_autoReconnecting = false;
|
|
309
|
+
_connectFailedAt = 0;
|
|
310
|
+
if (attempt > 1) debugLog(`[exed-client] Auto-reconnected to daemon (attempt ${attempt})`);
|
|
311
|
+
return;
|
|
312
|
+
}
|
|
313
|
+
if (attempt === 20 || attempt % 60 === 0) {
|
|
314
|
+
debugLog(`[exed-client] Auto-reconnect still pending after ${attempt} attempts; continuing with capped backoff`);
|
|
315
|
+
}
|
|
316
|
+
scheduleNext(autoReconnectDelay(attempt, daemonDeadInitially));
|
|
317
|
+
}, delayMs);
|
|
318
|
+
_autoReconnectTimer.unref?.();
|
|
319
|
+
};
|
|
320
|
+
const initialDelay = daemonDeadInitially ? 200 : Math.floor(Math.random() * AUTO_RECONNECT_ALIVE_MIN_MS);
|
|
321
|
+
scheduleNext(initialDelay);
|
|
322
|
+
}
|
|
263
323
|
function connectToSocket() {
|
|
264
324
|
return new Promise((resolve) => {
|
|
265
325
|
if (_socket && _connected) {
|
|
@@ -286,43 +346,7 @@ function connectToSocket() {
|
|
|
286
346
|
entry.resolve({ error: "Connection closed" });
|
|
287
347
|
}
|
|
288
348
|
if (!_autoReconnecting && !isBootFast()) {
|
|
289
|
-
|
|
290
|
-
const maxRetries = 20;
|
|
291
|
-
let attempt = 0;
|
|
292
|
-
const daemonDead = !isDaemonPidAlive();
|
|
293
|
-
if (daemonDead) {
|
|
294
|
-
debugLog("[daemon-client] Daemon PID dead \u2014 fast-path respawn (skipping jitter)");
|
|
295
|
-
try {
|
|
296
|
-
cleanupStaleFiles();
|
|
297
|
-
if (acquireSpawnLock()) {
|
|
298
|
-
try {
|
|
299
|
-
spawnDaemon();
|
|
300
|
-
} finally {
|
|
301
|
-
releaseSpawnLock();
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
} catch {
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
const jitter = daemonDead ? () => 500 + Math.random() * 500 : () => 2e3 + Math.random() * 2e3;
|
|
308
|
-
const initialDelay = daemonDead ? 200 : Math.random() * 2e3;
|
|
309
|
-
setTimeout(() => {
|
|
310
|
-
const retryTimer = setInterval(async () => {
|
|
311
|
-
attempt++;
|
|
312
|
-
if (attempt > maxRetries) {
|
|
313
|
-
clearInterval(retryTimer);
|
|
314
|
-
_autoReconnecting = false;
|
|
315
|
-
criticalLog(`[exed-client] Auto-reconnect failed after ${maxRetries} attempts`);
|
|
316
|
-
return;
|
|
317
|
-
}
|
|
318
|
-
const ok = await connectToSocket();
|
|
319
|
-
if (ok) {
|
|
320
|
-
clearInterval(retryTimer);
|
|
321
|
-
_autoReconnecting = false;
|
|
322
|
-
if (attempt > 1) debugLog(`[exed-client] Auto-reconnected to daemon (attempt ${attempt})`);
|
|
323
|
-
}
|
|
324
|
-
}, jitter());
|
|
325
|
-
}, initialDelay);
|
|
349
|
+
startAutoReconnectLoop();
|
|
326
350
|
}
|
|
327
351
|
});
|
|
328
352
|
socket.on("error", () => {
|
|
@@ -389,7 +413,7 @@ function sendRequest(texts, priority) {
|
|
|
389
413
|
function sendDaemonRequest(payload, timeoutMs = REQUEST_TIMEOUT_MS) {
|
|
390
414
|
return new Promise(async (resolve) => {
|
|
391
415
|
if ((!_socket || !_connected) && _autoReconnecting) {
|
|
392
|
-
const reconnectWaitMs = Math.min(3e3, timeoutMs);
|
|
416
|
+
const reconnectWaitMs = process.env.EXE_MCP_MODE === "1" ? Math.min(MCP_RECONNECT_WAIT_MAX_MS, timeoutMs) : Math.min(3e3, timeoutMs);
|
|
393
417
|
const waitStart = Date.now();
|
|
394
418
|
while (!_connected && Date.now() - waitStart < reconnectWaitMs) {
|
|
395
419
|
await new Promise((r) => setTimeout(r, 500));
|
|
@@ -537,6 +561,8 @@ async function embedBatchViaClient(texts, priority = "high") {
|
|
|
537
561
|
return !result.error && result.vectors ? result.vectors : null;
|
|
538
562
|
}
|
|
539
563
|
function disconnectClient() {
|
|
564
|
+
clearAutoReconnectTimer();
|
|
565
|
+
_autoReconnecting = false;
|
|
540
566
|
if (_socket) {
|
|
541
567
|
_socket.destroy();
|
|
542
568
|
_socket = null;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
fastDbInit
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-QMUSJESS.js";
|
|
4
4
|
import {
|
|
5
5
|
sessionScopeFilter
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-KUJGADX6.js";
|
|
7
7
|
import {
|
|
8
8
|
formatStatusAll,
|
|
9
9
|
formatStatusDeep,
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
getClient,
|
|
15
15
|
isCoordinatorRole,
|
|
16
16
|
loadEmployees
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-QGOMYIVT.js";
|
|
18
18
|
import {
|
|
19
19
|
isMainModule
|
|
20
20
|
} from "./chunk-6Y4B3QF6.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
routeTask
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-VDUHWQFA.js";
|
|
4
4
|
import {
|
|
5
5
|
createTaskCore,
|
|
6
6
|
employeeSessionName,
|
|
@@ -9,11 +9,11 @@ import {
|
|
|
9
9
|
isEmployeeAlive,
|
|
10
10
|
sessionScopeFilter,
|
|
11
11
|
updateTaskStatus
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-KUJGADX6.js";
|
|
13
13
|
import {
|
|
14
14
|
DEFAULT_COORDINATOR_TEMPLATE_NAME,
|
|
15
15
|
getCoordinatorName
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-QGOMYIVT.js";
|
|
17
17
|
|
|
18
18
|
// src/runtime/orchestrator.ts
|
|
19
19
|
var STALE_THRESHOLD_MS = 2 * 60 * 60 * 1e3;
|