@askexenow/exe-os 0.9.409 → 0.9.411
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 +408 -1
- package/dist/.dist-verified.json +3 -3
- package/dist/{active-agent-5AKPW2N7.js → active-agent-3YCLS7GB.js} +4 -4
- package/dist/{active-agent-2AMJC3SC.js → active-agent-MHWQDMML.js} +4 -4
- package/dist/agent-defs-generator-DNXMO34I.js +32 -0
- package/dist/{agentic-ontology-6RS7A7KP.js → agentic-ontology-RA6CMND6.js} +1 -1
- package/dist/{artifact-backup-6O4FNYPS.js → artifact-backup-EETHNFFP.js} +3 -3
- package/dist/{backfill-metadata-6YX6LGPJ.js → backfill-metadata-WYT257VG.js} +7 -7
- package/dist/backup-verify-AG54CYGR.js +62 -0
- package/dist/{behavior-injection-NRXTNROW.js → behavior-injection-G7GAUHGO.js} +10 -10
- package/dist/{behavior-promotion-MW7OQ72V.js → behavior-promotion-I2DIUFUR.js} +9 -9
- package/dist/{behaviors-7AOK44QK.js → behaviors-SKVKPCRW.js} +8 -8
- package/dist/bin/agentic-ontology-backfill.js +8 -8
- package/dist/bin/agentic-reflection-backfill.js +9 -9
- package/dist/bin/agentic-semantic-label.js +8 -8
- package/dist/bin/backfill-conversations.js +7 -7
- package/dist/bin/backfill-responses.js +7 -7
- package/dist/bin/backfill-vectors.js +7 -7
- package/dist/bin/bulk-sync-postgres.js +16 -16
- package/dist/bin/cc-doctor.js +8 -8
- package/dist/bin/cleanup-stale-review-tasks.js +13 -16
- package/dist/bin/cli.js +24 -24
- package/dist/bin/deferred-daemon-restart.js +97 -97
- package/dist/bin/exe-actions.js +1 -1
- package/dist/bin/exe-agent-config.js +3 -3
- package/dist/bin/exe-agent.js +12 -12
- package/dist/bin/exe-assign.js +8 -8
- package/dist/bin/exe-boot.js +35 -38
- package/dist/bin/exe-call.js +9 -9
- package/dist/bin/exe-cloud.js +26 -22
- package/dist/bin/exe-config-dump.js +3 -3
- package/dist/bin/exe-dispatch.js +14 -17
- package/dist/bin/exe-doctor.js +5 -5
- package/dist/bin/exe-export-behaviors.js +12 -12
- package/dist/bin/exe-forget.js +12 -12
- package/dist/bin/exe-gateway.js +9 -9
- package/dist/bin/exe-grant.js +6 -6
- package/dist/bin/exe-healthcheck.js +8 -8
- package/dist/bin/exe-heartbeat.js +19 -22
- package/dist/bin/exe-kill.js +18 -21
- package/dist/bin/exe-launch-agent.js +264 -110
- package/dist/bin/exe-mcp.js +5 -5
- package/dist/bin/exe-memory-reads.js +7 -7
- package/dist/bin/exe-new-employee.js +11 -11
- package/dist/bin/exe-os-mcp-proxy.js +5 -5
- package/dist/bin/exe-pending-messages.js +14 -17
- package/dist/bin/exe-pending-notifications.js +13 -16
- package/dist/bin/exe-pending-reviews.js +14 -17
- package/dist/bin/exe-rename.js +7 -7
- package/dist/bin/exe-review.js +17 -20
- package/dist/bin/exe-search.js +11 -11
- package/dist/bin/exe-session-cleanup.js +18 -21
- package/dist/bin/exe-settings.js +16 -16
- package/dist/bin/exe-start-codex.js +37 -19
- package/dist/bin/exe-start-opencode.js +35 -17
- package/dist/bin/exe-status.js +15 -18
- package/dist/bin/exe-support.js +3 -3
- package/dist/bin/exe-team.js +5 -5
- package/dist/bin/git-sweep.js +15 -17
- package/dist/bin/graph-backfill.js +8 -8
- package/dist/bin/graph-export.js +8 -8
- package/dist/bin/hooks-cli.js +1 -1
- package/dist/bin/import-history.js +11 -11
- package/dist/bin/install.js +99 -99
- package/dist/bin/intercom-check.js +5 -5
- package/dist/bin/mcp-sessions.js +2 -2
- package/dist/bin/orchestration-metrics.js +5 -5
- 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/reconcile-backlog.js +2 -2
- package/dist/bin/registry-proxy.js +1 -1
- package/dist/bin/repair-document-chunks.js +7 -7
- package/dist/bin/scan-tasks.js +14 -17
- package/dist/bin/setup.js +2 -2
- package/dist/bin/shard-migrate.js +8 -8
- package/dist/bin/stack-update.js +4 -4
- package/dist/bin/vps-health-gate.js +1 -1
- package/dist/{boot-generation-HG6LLZLY.js → boot-generation-RPJVFAQJ.js} +4 -4
- package/dist/{boot-review-sections-STZ5EAIL.js → boot-review-sections-FOPPZTJI.js} +12 -15
- package/dist/{bug-landed-reconciler-EO72HUI2.js → bug-landed-reconciler-FN5KPBRK.js} +6 -6
- package/dist/build-info.json +3 -3
- package/dist/build-manifest.json +997 -987
- package/dist/{capability-cards-C3SMHB2E.js → capability-cards-YQWBEG7A.js} +3 -3
- package/dist/{capacity-monitor-UI553HRL.js → capacity-monitor-7SMEJHYG.js} +14 -17
- package/dist/{catchup-brief-VE2X4HML.js → catchup-brief-IBQ26LEB.js} +21 -23
- package/dist/{chunk-6ZW6BRI4.js → chunk-27NG2NTG.js} +2 -2
- package/dist/{chunk-EIM7OGTD.js → chunk-2BOLFLAU.js} +4 -2
- package/dist/{chunk-DM4VTXM6.js → chunk-2EYVXUGA.js} +4 -4
- package/dist/{chunk-LMF2YC5C.js → chunk-2YFMBXUU.js} +4 -4
- package/dist/{chunk-C426MZMD.js → chunk-2YGBJHC2.js} +3 -3
- package/dist/{chunk-6EY6OFBC.js → chunk-353XF4LU.js} +2 -2
- package/dist/{chunk-VMHZSZQJ.js → chunk-3ARSKDHC.js} +52 -0
- package/dist/{chunk-ZYOIH5NY.js → chunk-3DXAJVXE.js} +6 -6
- package/dist/{chunk-HFSFWMID.js → chunk-3GGMHSY2.js} +3 -3
- package/dist/{chunk-BM467PZN.js → chunk-3N24FV22.js} +1 -1
- package/dist/{chunk-SY53PYLU.js → chunk-47YGEM4N.js} +1 -1
- package/dist/{chunk-NVM3SKJ4.js → chunk-4CN3EE6U.js} +27 -21
- package/dist/{chunk-KIJRAZWR.js → chunk-4J77TCTX.js} +1 -1
- package/dist/{chunk-NHQWPKX7.js → chunk-54STF27U.js} +2 -2
- package/dist/{chunk-Q4GS5VW7.js → chunk-5BWDUUMH.js} +3 -3
- package/dist/{chunk-VYKXRSHU.js → chunk-5ZMNFSHV.js} +1 -1
- package/dist/{chunk-HNGAM3U4.js → chunk-657I6PUF.js} +3 -3
- package/dist/{chunk-OE7TAEOG.js → chunk-6777GNWI.js} +1 -1
- package/dist/{chunk-HYZV25LY.js → chunk-67IVG6CB.js} +1 -11
- package/dist/{chunk-5N34MMKS.js → chunk-6APOLYIZ.js} +43 -3
- package/dist/{chunk-TBYWOHTE.js → chunk-6BD6JYR2.js} +1 -1
- package/dist/{chunk-JJYAETCO.js → chunk-6DMURUBY.js} +4 -4
- package/dist/{chunk-W5XAB2SW.js → chunk-6HJF7IA3.js} +273 -206
- package/dist/{chunk-HRKN3DQE.js → chunk-6J2J3VJS.js} +11 -11
- package/dist/{chunk-XFGS22VE.js → chunk-6PXFF6IV.js} +1 -1
- package/dist/{chunk-RZ23QQCI.js → chunk-7HLAYQRG.js} +4 -4
- package/dist/{chunk-IUBCS6TA.js → chunk-7KPZQ65I.js} +3 -3
- package/dist/{chunk-SYUJCVJG.js → chunk-7PDZBPGW.js} +1 -1
- package/dist/{chunk-VLAENYCN.js → chunk-7SHU5MOD.js} +1 -1
- package/dist/{chunk-6RRPVE5O.js → chunk-A5I2GYVQ.js} +3 -3
- package/dist/{chunk-X4V5ZLNX.js → chunk-A75TAU2I.js} +628 -4
- package/dist/{chunk-SGR4ZQAV.js → chunk-BE3UETW6.js} +3 -3
- package/dist/{chunk-GG73NHZD.js → chunk-BG6RAOCJ.js} +63 -9
- package/dist/{chunk-DMYJVGQM.js → chunk-BIPTWAEO.js} +1 -1
- package/dist/{chunk-B3ISLIKE.js → chunk-BLTXAUP6.js} +2 -2
- package/dist/{chunk-G2M7WQ2M.js → chunk-CBC3JCIF.js} +1 -1
- package/dist/{chunk-FJKUFMNF.js → chunk-CFFSHBQF.js} +1 -1
- package/dist/{chunk-WYNIWJRN.js → chunk-CJ6CS2IH.js} +5 -5
- package/dist/{chunk-7LTAA55U.js → chunk-CRW63CDI.js} +1 -1
- package/dist/{chunk-BHDDDNC6.js → chunk-CWHTUNJX.js} +2 -2
- package/dist/{chunk-FZT4VQP7.js → chunk-D6NZNUVH.js} +1 -1
- package/dist/{chunk-GKPPLIMJ.js → chunk-DHLJZDWI.js} +4 -4
- package/dist/{chunk-JR3GTBV3.js → chunk-DRHTRVDT.js} +1 -1
- package/dist/{chunk-GTRB6DGI.js → chunk-DWRULKB3.js} +2 -2
- package/dist/{chunk-DIKLSAJE.js → chunk-EOWJXCYC.js} +25 -7
- package/dist/{chunk-4W7Y67B5.js → chunk-EWDBWOCX.js} +1 -1
- package/dist/{chunk-EHILXBVT.js → chunk-FPF2PJFK.js} +3 -3
- package/dist/{chunk-BPBEJD7U.js → chunk-FSXMKIDO.js} +1 -1
- package/dist/{chunk-E2Z3F26R.js → chunk-FUDXITKX.js} +1 -1
- package/dist/{chunk-SFGFNJBR.js → chunk-FYV2CTKP.js} +1 -1
- package/dist/{chunk-4M24XCTI.js → chunk-GATAYYAF.js} +53 -7
- package/dist/{chunk-L5CPS34O.js → chunk-GHYHNHDL.js} +1 -1
- package/dist/{chunk-OISOA6NX.js → chunk-GL5ZG72X.js} +1 -1
- package/dist/{chunk-XAGIZVYI.js → chunk-GM4UEZDE.js} +181 -1625
- package/dist/{chunk-4O7OUBEX.js → chunk-GZVFHFO3.js} +27 -140
- package/dist/{chunk-M4N7I2H5.js → chunk-HA6BIZ6L.js} +5 -5
- package/dist/chunk-HDQAVAV6.js +248 -0
- package/dist/{chunk-IPANAGA3.js → chunk-HDV2V25K.js} +1 -1
- package/dist/{chunk-XGPBHKU3.js → chunk-HTFM7ZDD.js} +2 -2
- package/dist/{chunk-KPLMY2GT.js → chunk-HUHR5CKJ.js} +4 -4
- package/dist/{chunk-IPBNHPTE.js → chunk-IC2AONBH.js} +9 -9
- package/dist/{chunk-23XUZHB7.js → chunk-IHAXXDBH.js} +245 -36
- package/dist/{chunk-4S6H2NWS.js → chunk-IPUDXR67.js} +1 -1
- package/dist/{chunk-UXJAW4IQ.js → chunk-J6U4ZR77.js} +2 -2
- package/dist/{chunk-7I6KVKFF.js → chunk-JAIZCE6W.js} +3 -3
- package/dist/{chunk-SA66WRBT.js → chunk-JGBYZTWH.js} +1 -1
- package/dist/{chunk-HRYWB4TO.js → chunk-JJZZXEAN.js} +3 -3
- package/dist/{chunk-IZ24HRDC.js → chunk-JNULO6I5.js} +3 -3
- package/dist/{chunk-YVS77JPW.js → chunk-JTJP4JK7.js} +3 -3
- package/dist/{chunk-BIV4IHED.js → chunk-JW5NUXPN.js} +15 -28
- package/dist/{chunk-NFNM64A7.js → chunk-K2HIXAIF.js} +22 -18
- package/dist/{chunk-F5ZRHLG5.js → chunk-KEDZRQI3.js} +2 -2
- package/dist/{chunk-QPMKVSHU.js → chunk-KN5GAVCG.js} +2 -2
- package/dist/{chunk-3MDUKF3N.js → chunk-L5JFVK5T.js} +5 -4
- package/dist/{chunk-FBZ32BD4.js → chunk-LBSCOP25.js} +1 -1
- package/dist/{chunk-K7DAE2HO.js → chunk-LLZUL7M2.js} +19 -6
- package/dist/{chunk-PCFYNK7V.js → chunk-LQGLGSBY.js} +2 -2
- package/dist/{chunk-APVU4Q5B.js → chunk-LSHUX7P4.js} +16 -16
- package/dist/{chunk-GRAMRMWS.js → chunk-M6AX64J2.js} +2 -2
- package/dist/{chunk-52Z435PH.js → chunk-M6SUJLNP.js} +15 -10
- package/dist/{chunk-GPWXUU3L.js → chunk-MZNLQC6W.js} +1 -1
- package/dist/{chunk-G3ZYXXO7.js → chunk-N7POJZJT.js} +10 -10
- package/dist/{chunk-DE2V7547.js → chunk-NCNT2C2P.js} +2 -2
- package/dist/{chunk-HK7HIDXP.js → chunk-O3BLL6MY.js} +1 -1
- package/dist/{chunk-YLWKWEJJ.js → chunk-O6KQAJCC.js} +3 -3
- package/dist/{chunk-QUK3UDZV.js → chunk-OHHZNNUD.js} +1 -1
- package/dist/{chunk-6JLVCMKH.js → chunk-PDQGR5LZ.js} +1 -1
- package/dist/{chunk-LE3DIA25.js → chunk-PTF5TB6O.js} +3 -3
- package/dist/{chunk-KBHK2WNO.js → chunk-PYXXL7N7.js} +1 -1
- package/dist/{chunk-QK3Z4TKQ.js → chunk-Q6KUBP6R.js} +5 -5
- package/dist/{chunk-NDCW4G55.js → chunk-QJWLQXR7.js} +1 -1
- package/dist/{chunk-ME733Y2F.js → chunk-QOFQY7BJ.js} +37 -9
- package/dist/{chunk-HFXBL7XE.js → chunk-QSW5DHMZ.js} +1 -1
- package/dist/{chunk-OFT5KSBM.js → chunk-QV26G2BF.js} +1 -1
- package/dist/{chunk-LVEMYNYH.js → chunk-RHHEYC6H.js} +3 -3
- package/dist/{chunk-QYIR64RR.js → chunk-RHJOTGEU.js} +1 -1
- package/dist/{chunk-HUMNRJZE.js → chunk-RJIH7JXM.js} +4 -4
- package/dist/{chunk-6TB7UXCA.js → chunk-RMC2A6EE.js} +1 -1
- package/dist/{chunk-XCPD7NGP.js → chunk-RYMXD2NT.js} +1 -1
- package/dist/{chunk-W2VDJKTB.js → chunk-RYYFFCJG.js} +1 -1
- package/dist/{chunk-YUAOQJVV.js → chunk-SINIRUYZ.js} +101 -9
- package/dist/{chunk-R7QZXQPU.js → chunk-SXUABANK.js} +216 -147
- package/dist/{backup-verify-QIAQ63VC.js → chunk-T3AM52YT.js} +411 -90
- package/dist/{chunk-NK4JHJNP.js → chunk-TCBWHLKH.js} +4 -4
- package/dist/{chunk-R6CKQLEA.js → chunk-TS4LSNRI.js} +2 -2
- package/dist/{chunk-4Q7H3TO7.js → chunk-TVWYMOZ4.js} +1 -1
- package/dist/{chunk-TCV3WA5I.js → chunk-VAHQOIQY.js} +1 -1
- package/dist/{chunk-ZEHBSA25.js → chunk-VQQPYI4X.js} +1 -1
- package/dist/{chunk-PZDAPIQL.js → chunk-VS7V5HNO.js} +1 -1
- package/dist/{chunk-7R7KDRKV.js → chunk-W7VKGB42.js} +1 -1
- package/dist/{chunk-M7774YLB.js → chunk-WC44PNZU.js} +1 -1
- package/dist/{chunk-3AL2LO3L.js → chunk-WHUQ44F2.js} +1 -1
- package/dist/{chunk-4RQ62XXK.js → chunk-X2ZHCNNB.js} +5 -5
- package/dist/{chunk-T2PAFWRK.js → chunk-X4FHT6ST.js} +5 -5
- package/dist/{chunk-N3JEYUDV.js → chunk-XC5OASHV.js} +1 -1
- package/dist/{agent-defs-generator-QN3J6FVJ.js → chunk-XDOCXKHW.js} +61 -21
- package/dist/{chunk-OEHZ46WQ.js → chunk-XEAZJXMZ.js} +2 -2
- package/dist/{chunk-DACRR362.js → chunk-XQ7BIVLI.js} +6 -6
- package/dist/{chunk-7P2TDFZL.js → chunk-Z3LGAFMG.js} +1 -1
- package/dist/{chunk-GEQQGN3J.js → chunk-ZJ6AMC4Y.js} +7 -7
- package/dist/{chunk-IURGBN5B.js → chunk-ZZR2WRNW.js} +4 -4
- package/dist/{cleanup-graph-garbage-NKAJSCWZ.js → cleanup-graph-garbage-SYGPMPUM.js} +8 -8
- package/dist/{cli-shutdown-F3DFDCB5.js → cli-shutdown-JI7CASE4.js} +1 -1
- package/dist/{cloud-sync-command-3YBLSMAL.js → cloud-sync-command-ZV3P5FP6.js} +2 -2
- package/dist/{cloud-sync-db-init-JWSPAFKY.js → cloud-sync-db-init-RQIHWKV4.js} +1 -1
- package/dist/{cloud-sync-shutdown-4R6RIO67.js → cloud-sync-shutdown-V2N7VLD3.js} +3 -3
- package/dist/{co-activation-2ZRANV3Q.js → co-activation-SRE6DIRX.js} +3 -3
- package/dist/{co-occurrence-6EELW2L2.js → co-occurrence-F5TMSEQZ.js} +6 -6
- package/dist/{consent-passphrase-TDR263MC.js → consent-passphrase-MWZRHJRC.js} +2 -2
- package/dist/content-extractor-GWF2T7FK.js +13 -0
- package/dist/{conversation-entity-extractor-KUJN3MOH.js → conversation-entity-extractor-XMOUHGMT.js} +3 -3
- package/dist/{crdt-sync-IX43KVQ3.js → crdt-sync-FXEKABM7.js} +4 -4
- package/dist/{crm-webhook-GSCIW6CE.js → crm-webhook-D6IJOPRQ.js} +2 -2
- package/dist/{cto-delegation-gate-ZWD4EFRR.js → cto-delegation-gate-BU3JRCYN.js} +12 -15
- package/dist/{daemon-orchestration-WL6V4QL4.js → daemon-orchestration-K4NKFYXO.js} +19 -21
- package/dist/{destructive-data-guard-JDUJ2ULM.js → destructive-data-guard-3TGAAE7K.js} +77 -23
- package/dist/{doc-graph-extractor-NJ7ZZC2C.js → doc-graph-extractor-TVK2NGAR.js} +6 -6
- package/dist/{documents-O7WYZFFE.js → documents-MDZ4VB5X.js} +8 -8
- package/dist/{dreaming-TUESPDT3.js → dreaming-L24PSS35.js} +17 -20
- package/dist/{employee-boot-brief-UCP6QLN4.js → employee-boot-brief-GQVL3FQC.js} +23 -25
- package/dist/{entity-boost-TK43XT24.js → entity-boost-OMFA5QCG.js} +2 -2
- package/dist/{exe-drift-QD6LUZT2.js → exe-drift-JDDG3OPT.js} +4 -4
- package/dist/{exe-export-QIUNHFSS.js → exe-export-EEGIE3JP.js} +10 -10
- package/dist/{exe-import-3UFOLHEW.js → exe-import-UJNC5Q2L.js} +10 -10
- package/dist/{exe-key-D5NDKGHT.js → exe-key-TYEY4W4E.js} +97 -97
- package/dist/{exe-org-UWDJBOCV.js → exe-org-B3ICTTEV.js} +32 -32
- package/dist/{exe-snapshot-P6SFODEN.js → exe-snapshot-VBFBONYN.js} +20 -23
- package/dist/{fast-db-init-SD7JZSEC.js → fast-db-init-TFRTK6EH.js} +1 -1
- package/dist/{founder-context-QIXDZIJX.js → founder-context-3X4QUWKD.js} +2 -2
- package/dist/{founder-monitor-envelope-TLOC4UYG.js → founder-monitor-envelope-54UNZNY4.js} +4 -4
- package/dist/gateway/index.js +11 -11
- package/dist/{gateway-client-CQTSYJLP.js → gateway-client-OUDO5GGV.js} +1 -1
- package/dist/{git-staleness-JSQTHB4Z.js → git-staleness-73YZ5PGU.js} +3 -3
- package/dist/{global-procedures-T3RKI4QX.js → global-procedures-PYNE2BQG.js} +20 -6
- package/dist/{graph-auto-extract-V75GSTNX.js → graph-auto-extract-PGUMEEQB.js} +6 -6
- package/dist/{graph-query-VAQN2RK3.js → graph-query-7YA3YNKL.js} +1 -1
- package/dist/{graph-rag-GBA5E3QC.js → graph-rag-UWOTK4AQ.js} +3 -3
- package/dist/{hook-integrity-II6QK6Y4.js → hook-integrity-6MNEPT6W.js} +1 -1
- package/dist/{hook-prefetch-5EHPOYY3.js → hook-prefetch-JOF6YZSR.js} +13 -16
- package/dist/hooks/bug-report-worker.js +17 -20
- package/dist/hooks/codex-stop-task-finalizer.js +19 -22
- package/dist/hooks/commit-complete.js +16 -19
- package/dist/hooks/error-recall.js +14 -14
- package/dist/hooks/exe-heartbeat-hook.js +5 -5
- package/dist/hooks/ingest-worker.js +18 -20
- package/dist/hooks/ingest.js +16 -16
- package/dist/hooks/instructions-loaded.js +7 -7
- package/dist/hooks/manifest.json +20 -20
- package/dist/hooks/notification.js +6 -6
- package/dist/hooks/post-compact.js +5 -5
- package/dist/hooks/post-tool-combined.js +13 -13
- package/dist/hooks/pre-compact.js +16 -19
- package/dist/hooks/pre-tool-use.js +2 -2
- package/dist/hooks/prompt-submit.js +40 -39
- package/dist/hooks/session-end.js +21 -24
- package/dist/hooks/session-start.js +18 -18
- package/dist/hooks/stop.js +19 -22
- package/dist/hooks/subagent-stop.js +18 -21
- package/dist/hooks/summary-worker.js +20 -23
- package/dist/index.js +25 -28
- package/dist/{installer-XEEZSF3V.js → installer-34XZ7JMW.js} +7 -8
- package/dist/{installer-MPVQ5L22.js → installer-356RMQ2K.js} +7 -8
- package/dist/{installer-ILYC4LI5.js → installer-7TN36Z7T.js} +113 -30
- package/dist/{intercom-queue-QGHAW2KO.js → intercom-queue-ZJ3MNULM.js} +12 -15
- package/dist/lib/backup-verify-worker.js +157 -0
- package/dist/lib/cloud-sync.js +16 -20
- package/dist/lib/consolidation.js +9 -9
- package/dist/lib/crypto.js +3 -3
- package/dist/lib/database.js +3 -3
- package/dist/lib/db-backup.js +7 -3
- package/dist/lib/db-write-worker.js +3 -3
- package/dist/lib/db.js +3 -3
- package/dist/lib/device-registry.js +1 -1
- package/dist/lib/employee-templates.js +7 -7
- package/dist/lib/employees.js +3 -3
- package/dist/lib/error-detector.js +2 -2
- package/dist/lib/exe-daemon.js +89 -87
- package/dist/lib/hybrid-search.js +11 -11
- package/dist/lib/identity.js +5 -3
- package/dist/lib/keychain.js +1 -1
- package/dist/lib/license.js +2 -2
- package/dist/lib/messaging.js +13 -16
- package/dist/lib/post-tool-memory.js +16 -18
- package/dist/lib/registry-proxy.js +1 -1
- package/dist/lib/reminders.js +4 -4
- package/dist/lib/schedules.js +8 -8
- package/dist/lib/session-registry.js +5 -5
- package/dist/lib/skill-learning.js +9 -9
- package/dist/lib/store.js +7 -7
- package/dist/lib/task-router.js +4 -4
- package/dist/lib/tasks.js +14 -17
- package/dist/lib/tmux-routing.js +14 -41
- package/dist/lib/token-spend.js +4 -4
- package/dist/lib/ws-client.js +1 -1
- package/dist/{license-gate-CARN6AB6.js → license-gate-4BXUTHLB.js} +3 -3
- package/dist/{license-recheck-7Z3LS6YS.js → license-recheck-QFPUKISQ.js} +1 -1
- package/dist/{license-sync-PUQV3HSZ.js → license-sync-FDEDT4AC.js} +2 -2
- package/dist/mcp/register-tools.js +96 -96
- package/dist/mcp/server.js +96 -96
- package/dist/mcp/tools/complete-reminder.js +5 -5
- package/dist/mcp/tools/create-reminder.js +5 -5
- package/dist/mcp/tools/create-task.js +16 -19
- package/dist/mcp/tools/deactivate-behavior.js +10 -10
- package/dist/mcp/tools/list-reminders.js +5 -5
- package/dist/mcp/tools/list-tasks.js +16 -19
- package/dist/mcp/tools/send-message.js +15 -18
- package/dist/mcp/tools/update-task.js +15 -18
- package/dist/{mcp-http-config-RJKTZPHZ.js → mcp-http-config-GKP5QGAO.js} +5 -5
- package/dist/{mcp-session-identity-HN444A3G.js → mcp-session-identity-JHAGRB7B.js} +12 -15
- package/dist/{memory-cards-AT3QCCWU.js → memory-cards-O377ETAM.js} +8 -8
- package/dist/{memory-graph-extractor-B43UWGV5.js → memory-graph-extractor-4KJCCUOP.js} +7 -7
- package/dist/{memory-maintenance-WDLL3ZX3.js → memory-maintenance-RR5UPRW3.js} +1 -1
- package/dist/{memory-poisoning-defense-TS4WNW4S.js → memory-poisoning-defense-Y5TTKGOP.js} +3 -3
- package/dist/{memory-pressure-watchdog-6YH7S6W7.js → memory-pressure-watchdog-NGXTI4HR.js} +13 -16
- package/dist/{memory-reflection-N6NSYW6S.js → memory-reflection-EXNHRZL7.js} +8 -8
- package/dist/{memory-write-repository-D35RDO62.js → memory-write-repository-S4TX7WQB.js} +1 -1
- package/dist/{monitor-grants-FH4PNYN5.js → monitor-grants-57Q4NL25.js} +3 -3
- package/dist/{monitor-identity-LK5ZCCND.js → monitor-identity-3FQ52SYU.js} +2 -2
- package/dist/{notification-ledger-3WJYJGGS.js → notification-ledger-O6KQYYGK.js} +13 -16
- package/dist/{notifications-T5C2CVB3.js → notifications-6FCQCJ4P.js} +12 -15
- package/dist/{orchestration-events-73VEJT7Q.js → orchestration-events-2Z2BMMA5.js} +4 -4
- package/dist/{orchestrator-3O657734.js → orchestrator-AGOSKPHD.js} +14 -17
- package/dist/{org-brief-session-EGB35QLM.js → org-brief-session-WJHZVXXJ.js} +15 -15
- package/dist/{org-consent-policy-MSVSRI53.js → org-consent-policy-X43UGTHI.js} +5 -5
- package/dist/{org-join-4BK2XJJI.js → org-join-M3UTBMHC.js} +9 -9
- package/dist/{org-key-admin-EUSSGXQ3.js → org-key-admin-AA2DRHB2.js} +11 -11
- package/dist/{org-key-epoch-NMEWDT5L.js → org-key-epoch-Z5UIVUHT.js} +5 -5
- package/dist/{org-key-pin-HUSXGINB.js → org-key-pin-FE6YHEZ3.js} +3 -3
- package/dist/{org-membership-B74IWEM5.js → org-membership-3J2MIGE4.js} +4 -4
- package/dist/{org-partner-config-5FJTJABN.js → org-partner-config-5HATZYG4.js} +8 -8
- package/dist/{org-partner-runtime-GN4GFWI2.js → org-partner-runtime-UI35IHUC.js} +15 -15
- package/dist/{org-row-visibility-PBZ2TSCR.js → org-row-visibility-TRJERVYP.js} +1 -1
- package/dist/{pipeline-router-2IELBSVJ.js → pipeline-router-EKQ6D7ZA.js} +4 -4
- package/dist/{plan-limits-4GXK5PFT.js → plan-limits-3BGHIHX6.js} +6 -6
- package/dist/{platform-procedures-QP3W2NLH.js → platform-procedures-RXW46WNY.js} +1 -1
- package/dist/{pre-tool-use-impl-CY73PRJP.js → pre-tool-use-impl-7BT5TJVM.js} +35 -33
- package/dist/{project-name-337ERIAX.js → project-name-PGJGUEJY.js} +4 -4
- package/dist/{projection-worker-W476IG6V.js → projection-worker-3GEVFPAI.js} +2 -2
- package/dist/{prospective-memory-5INB7NUL.js → prospective-memory-GEN7CN7H.js} +3 -3
- package/dist/{push-notifications-YVOP4KGN.js → push-notifications-QW4BWRC7.js} +13 -16
- package/dist/{reproject-worktree-memories-OGBR3CMO.js → reproject-worktree-memories-DIULBEBD.js} +12 -15
- package/dist/{reranker-W7WCJH6Y.js → reranker-LQ6OPJOI.js} +1 -1
- package/dist/{retrieval-health-R6MGXLTP.js → retrieval-health-XDFYFEOP.js} +1 -1
- package/dist/{review-polling-TKAWVY6G.js → review-polling-ED33YLFT.js} +13 -16
- package/dist/runtime/index.js +20 -23
- package/dist/{session-events-HUCZ7TOR.js → session-events-7IJGTBVH.js} +13 -16
- package/dist/{session-kill-telemetry-RWRWOW4C.js → session-kill-telemetry-RUTEARJ3.js} +13 -16
- package/dist/{session-scope-5CDRHV75.js → session-scope-SSYA64L3.js} +12 -15
- package/dist/{setup-wizard-RBTJAZOP.js → setup-wizard-XD7FZVLJ.js} +2 -2
- package/dist/{shard-manager-LRPAAQA4.js → shard-manager-FH5JZRSE.js} +2 -2
- package/dist/{skill-refinement-MDXKDCY6.js → skill-refinement-UHD4E6GV.js} +4 -4
- package/dist/{skill-retrieval-OWY6MTCX.js → skill-retrieval-F6PAJ3I5.js} +11 -11
- package/dist/{skill-usage-GNV737U5.js → skill-usage-2MBTF7Y4.js} +4 -4
- package/dist/{stack-generate-manifest-S4SBLKBY.js → stack-generate-manifest-SU6OFFY7.js} +4 -4
- package/dist/{stack-promote-U4EZNLOV.js → stack-promote-MJF436JD.js} +4 -4
- package/dist/{stack-release-4VBGOYGK.js → stack-release-S37R57XC.js} +5 -5
- package/dist/{stack-update-C5YKHE7A.js → stack-update-XXDRKGGR.js} +3 -3
- package/dist/{steward-gate-QFPXQBUZ.js → steward-gate-EWG2BHYQ.js} +4 -4
- package/dist/{subagent-brief-injection-GDXO5WNS.js → subagent-brief-injection-YZGSWUEY.js} +25 -27
- package/dist/{support-bug-actions-4XEKXIIO.js → support-bug-actions-RU6WZ3UV.js} +3 -3
- package/dist/{support-inbox-Y7AFCOGM.js → support-inbox-A3S52SPS.js} +12 -12
- package/dist/{task-enforcement-CN3Q4PEH.js → task-enforcement-LVAS55AR.js} +13 -16
- package/dist/{task-request-inbox-AY3C6DND.js → task-request-inbox-2TN4ZUH2.js} +5 -5
- package/dist/{task-scope-AMR3Z3DJ.js → task-scope-NLKUVCP5.js} +12 -15
- package/dist/{tasks-crud-2GHKIZOM.js → tasks-crud-NQDPLHNZ.js} +14 -15
- package/dist/{tasks-notify-Z53446KM.js → tasks-notify-BDM2NEHP.js} +13 -16
- package/dist/{tasks-review-APRNSHMQ.js → tasks-review-3G7CAW2O.js} +12 -15
- package/dist/{telemetry-upload-5XR42SQN.js → telemetry-upload-6DR6AL3V.js} +8 -8
- package/dist/{token-budget-TTNJXI7W.js → token-budget-KNC2WGR7.js} +4 -4
- package/dist/{tool-telemetry-36ST422N.js → tool-telemetry-I3SEU5M5.js} +1 -1
- package/dist/tui/App.js +23 -26
- package/dist/{tui-data-AP5TPUOQ.js → tui-data-KJDWP4CB.js} +16 -19
- package/dist/{update-support-SFTI2PUD.js → update-support-UYDYMHVR.js} +11 -11
- package/dist/{whatsapp-5CXE3JHG.js → whatsapp-5EMPZHF5.js} +2 -2
- package/dist/{wiki-acl-N754BC2W.js → wiki-acl-M7BTQJBZ.js} +1 -1
- package/dist/{work-claims-OAICQBWO.js → work-claims-5CFMZTML.js} +4 -4
- package/dist/{work-state-heartbeat-MTTUGMPU.js → work-state-heartbeat-7IA2DZ2E.js} +1 -1
- package/dist/{workflow-engine-RID3QL2U.js → workflow-engine-S5JOE2YR.js} +2 -2
- package/dist/{worktree-XWVNDBRD.js → worktree-7V4ZMF3D.js} +5 -5
- package/dist/{worktree-sweep-6VEHGH7U.js → worktree-sweep-34MXJ7S6.js} +6 -6
- package/package.json +2 -1
- package/release-notes.json +25 -7
- package/stack.release.json +3 -3
- package/dist/chunk-ESO5JDOT.js +0 -70
- package/dist/chunk-KCRSJ3VU.js +0 -113
- package/dist/content-extractor-OVD7PTSN.js +0 -9
- /package/dist/{chunk-OLMLA377.js → chunk-542FBM5U.js} +0 -0
- /package/dist/{chunk-LDHJX4TZ.js → chunk-6D2O5SAH.js} +0 -0
- /package/dist/{chunk-33PG3KNY.js → chunk-6NRZLVK3.js} +0 -0
- /package/dist/{chunk-CLV7ALXV.js → chunk-CFO47VW4.js} +0 -0
- /package/dist/{chunk-FLO24BNN.js → chunk-EULAP6L6.js} +0 -0
- /package/dist/{chunk-PKM456D2.js → chunk-FYSKQPTE.js} +0 -0
- /package/dist/{chunk-WIDOLS7T.js → chunk-J4B4M5PH.js} +0 -0
- /package/dist/{chunk-YBB43SXC.js → chunk-J635FA7T.js} +0 -0
- /package/dist/{chunk-64UAHPXA.js → chunk-MOBZTIJQ.js} +0 -0
- /package/dist/{chunk-EZQ4W3WW.js → chunk-N45FAI6D.js} +0 -0
- /package/dist/{chunk-OEEHLATI.js → chunk-QDSNEGJE.js} +0 -0
- /package/dist/{chunk-YG4DZZ6J.js → chunk-SKSXROKP.js} +0 -0
- /package/dist/{chunk-FUZHMV7K.js → chunk-YVWXI2HM.js} +0 -0
- /package/dist/{core-memory-WR7I7DIP.js → core-memory-PZEO3OWH.js} +0 -0
- /package/dist/{memory-isolation-4RQJ5RCK.js → memory-isolation-MFNT2ITE.js} +0 -0
- /package/dist/{oauth-server-VBDMZIEV.js → oauth-server-CBGEWD6H.js} +0 -0
- /package/dist/{project-boot-G7T5WHO6.js → project-boot-VESAYDIH.js} +0 -0
|
@@ -1,51 +1,42 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
exportBehaviorsForAgent
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-
|
|
4
|
+
} from "../chunk-BG6RAOCJ.js";
|
|
5
|
+
import "../chunk-JTJP4JK7.js";
|
|
6
6
|
import {
|
|
7
7
|
resolveClaudeBinaryPath
|
|
8
8
|
} from "../chunk-CBPNZFSU.js";
|
|
9
9
|
import {
|
|
10
10
|
getSessionPrompt
|
|
11
|
-
} from "../chunk-
|
|
12
|
-
import "../chunk-
|
|
13
|
-
import "../chunk-
|
|
14
|
-
import "../chunk-
|
|
11
|
+
} from "../chunk-TS4LSNRI.js";
|
|
12
|
+
import "../chunk-HDQAVAV6.js";
|
|
13
|
+
import "../chunk-4CN3EE6U.js";
|
|
14
|
+
import "../chunk-KEDZRQI3.js";
|
|
15
15
|
import {
|
|
16
16
|
retryOnDaemonTransportError
|
|
17
17
|
} from "../chunk-ZD5TZZXU.js";
|
|
18
18
|
import "../chunk-QGGH7LOU.js";
|
|
19
19
|
import {
|
|
20
20
|
disposeStore
|
|
21
|
-
} from "../chunk-
|
|
22
|
-
import "../chunk-
|
|
21
|
+
} from "../chunk-LSHUX7P4.js";
|
|
22
|
+
import "../chunk-MOBZTIJQ.js";
|
|
23
23
|
import "../chunk-CHCA3ZM2.js";
|
|
24
24
|
import "../chunk-OTVEIJUQ.js";
|
|
25
|
-
import "../chunk-
|
|
25
|
+
import "../chunk-FYSKQPTE.js";
|
|
26
26
|
import "../chunk-5MOYSU5A.js";
|
|
27
27
|
import "../chunk-BYP3DOUU.js";
|
|
28
28
|
import {
|
|
29
29
|
fastDbInit
|
|
30
|
-
} from "../chunk-
|
|
30
|
+
} from "../chunk-N45FAI6D.js";
|
|
31
31
|
import {
|
|
32
32
|
resolveCurrentTask
|
|
33
33
|
} from "../chunk-76CJBM36.js";
|
|
34
34
|
import {
|
|
35
35
|
getBudgetFallback
|
|
36
36
|
} from "../chunk-QLZ46RCK.js";
|
|
37
|
-
import
|
|
38
|
-
|
|
39
|
-
PROVIDER_TABLE,
|
|
40
|
-
_resetCcAgentSupportCache,
|
|
41
|
-
_resetCcHelpCache,
|
|
42
|
-
claudeSupportsAgentFlag,
|
|
43
|
-
getCcHelpOutputCached
|
|
44
|
-
} from "../chunk-XAGIZVYI.js";
|
|
45
|
-
import "../chunk-ESO5JDOT.js";
|
|
46
|
-
import "../chunk-VYKXRSHU.js";
|
|
37
|
+
import "../chunk-GM4UEZDE.js";
|
|
38
|
+
import "../chunk-PYXXL7N7.js";
|
|
47
39
|
import "../chunk-ZKGWHT56.js";
|
|
48
|
-
import "../chunk-KBHK2WNO.js";
|
|
49
40
|
import "../chunk-WT4RI36X.js";
|
|
50
41
|
import "../chunk-E23LNUWJ.js";
|
|
51
42
|
import "../chunk-TDF2XKLK.js";
|
|
@@ -53,13 +44,13 @@ import "../chunk-EIKATSE4.js";
|
|
|
53
44
|
import "../chunk-MJCSEIFI.js";
|
|
54
45
|
import "../chunk-QDMZ5DX2.js";
|
|
55
46
|
import "../chunk-HME6ITKV.js";
|
|
56
|
-
import "../chunk-
|
|
47
|
+
import "../chunk-QSW5DHMZ.js";
|
|
57
48
|
import "../chunk-VI4ATC6I.js";
|
|
58
49
|
import "../chunk-A27Q27CT.js";
|
|
59
50
|
import "../chunk-6L4VIYLZ.js";
|
|
60
|
-
import "../chunk-
|
|
51
|
+
import "../chunk-JGBYZTWH.js";
|
|
61
52
|
import "../chunk-T5SM4RXY.js";
|
|
62
|
-
import "../chunk-
|
|
53
|
+
import "../chunk-CFFSHBQF.js";
|
|
63
54
|
import {
|
|
64
55
|
DEFAULT_MODELS,
|
|
65
56
|
getAgentRuntime,
|
|
@@ -68,7 +59,7 @@ import {
|
|
|
68
59
|
validateRuntimeModel
|
|
69
60
|
} from "../chunk-IVXELUEQ.js";
|
|
70
61
|
import "../chunk-AM7S2TY6.js";
|
|
71
|
-
import "../chunk-
|
|
62
|
+
import "../chunk-2BOLFLAU.js";
|
|
72
63
|
import "../chunk-WJWRQQMS.js";
|
|
73
64
|
import "../chunk-PCV52RYM.js";
|
|
74
65
|
import "../chunk-BTSWFMEH.js";
|
|
@@ -77,8 +68,7 @@ import "../chunk-IMYGYIAI.js";
|
|
|
77
68
|
import "../chunk-NLEW62VC.js";
|
|
78
69
|
import "../chunk-3DAEZILW.js";
|
|
79
70
|
import "../chunk-DRTJCG6B.js";
|
|
80
|
-
import "../chunk-
|
|
81
|
-
import "../chunk-HYZV25LY.js";
|
|
71
|
+
import "../chunk-TVWYMOZ4.js";
|
|
82
72
|
import "../chunk-CVYC6DUW.js";
|
|
83
73
|
import "../chunk-GJV3WDWM.js";
|
|
84
74
|
import "../chunk-YRUZK2QA.js";
|
|
@@ -89,11 +79,11 @@ import {
|
|
|
89
79
|
loadEmployees,
|
|
90
80
|
loadEmployeesSync,
|
|
91
81
|
normalizeRole
|
|
92
|
-
} from "../chunk-
|
|
82
|
+
} from "../chunk-L5JFVK5T.js";
|
|
93
83
|
import "../chunk-BBMTVAE3.js";
|
|
94
84
|
import "../chunk-TKDITWDN.js";
|
|
95
|
-
import "../chunk-
|
|
96
|
-
import "../chunk-
|
|
85
|
+
import "../chunk-SINIRUYZ.js";
|
|
86
|
+
import "../chunk-6777GNWI.js";
|
|
97
87
|
import "../chunk-7FE43JRU.js";
|
|
98
88
|
import "../chunk-5YEUPUV4.js";
|
|
99
89
|
import "../chunk-YYB5PMTK.js";
|
|
@@ -104,10 +94,10 @@ import "../chunk-QH5ZQ5SJ.js";
|
|
|
104
94
|
import "../chunk-ZQEJ4IX2.js";
|
|
105
95
|
import "../chunk-C7GHNJPW.js";
|
|
106
96
|
import "../chunk-UWGQNJIE.js";
|
|
107
|
-
import "../chunk-
|
|
108
|
-
import "../chunk-
|
|
97
|
+
import "../chunk-4J77TCTX.js";
|
|
98
|
+
import "../chunk-EOWJXCYC.js";
|
|
109
99
|
import "../chunk-3R7UDPVR.js";
|
|
110
|
-
import "../chunk-
|
|
100
|
+
import "../chunk-6D2O5SAH.js";
|
|
111
101
|
import "../chunk-A7JYF4RG.js";
|
|
112
102
|
import "../chunk-ARX6TAGN.js";
|
|
113
103
|
import "../chunk-MMS2HBRT.js";
|
|
@@ -120,13 +110,138 @@ import "../chunk-JKKZGDLP.js";
|
|
|
120
110
|
import "../chunk-MLKGABMK.js";
|
|
121
111
|
|
|
122
112
|
// src/bin/exe-launch-agent.ts
|
|
123
|
-
import
|
|
124
|
-
import
|
|
113
|
+
import os2 from "os";
|
|
114
|
+
import path2 from "path";
|
|
125
115
|
import { createHash } from "crypto";
|
|
126
|
-
import { existsSync, readFileSync, mkdirSync, readdirSync, statSync } from "fs";
|
|
116
|
+
import { existsSync as existsSync2, readFileSync as readFileSync2, mkdirSync as mkdirSync2, readdirSync, statSync } from "fs";
|
|
127
117
|
import { fileURLToPath } from "url";
|
|
128
118
|
import { spawn as spawnAsync } from "child_process";
|
|
119
|
+
|
|
120
|
+
// src/lib/cc-help-cache.ts
|
|
129
121
|
import { execSync } from "child_process";
|
|
122
|
+
import { readFileSync, writeFileSync, existsSync, mkdirSync } from "fs";
|
|
123
|
+
import path from "path";
|
|
124
|
+
import os from "os";
|
|
125
|
+
var CACHE_DIR = path.join(os.homedir(), ".exe-os", "cache");
|
|
126
|
+
var _cached = null;
|
|
127
|
+
function getCcVersion() {
|
|
128
|
+
try {
|
|
129
|
+
const out = execSync("claude --version 2>/dev/null || echo unknown", {
|
|
130
|
+
encoding: "utf8",
|
|
131
|
+
timeout: 5e3
|
|
132
|
+
}).trim();
|
|
133
|
+
const m = out.match(/(\d+\.\d+\.\d+)/);
|
|
134
|
+
return m ? m[1] : "unknown";
|
|
135
|
+
} catch {
|
|
136
|
+
return "unknown";
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
function getCcHelpOutputCached() {
|
|
140
|
+
if (_cached !== null) return _cached;
|
|
141
|
+
const version = getCcVersion();
|
|
142
|
+
const cacheFile = path.join(CACHE_DIR, `cc-help-${version}.txt`);
|
|
143
|
+
if (existsSync(cacheFile)) {
|
|
144
|
+
try {
|
|
145
|
+
_cached = readFileSync(cacheFile, "utf8");
|
|
146
|
+
return _cached;
|
|
147
|
+
} catch {
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
let helpText = "";
|
|
151
|
+
try {
|
|
152
|
+
const result = execSync("claude --help 2>&1", {
|
|
153
|
+
encoding: "utf8",
|
|
154
|
+
timeout: 5e3
|
|
155
|
+
});
|
|
156
|
+
helpText = typeof result === "string" ? result : "";
|
|
157
|
+
} catch {
|
|
158
|
+
helpText = "";
|
|
159
|
+
}
|
|
160
|
+
try {
|
|
161
|
+
mkdirSync(CACHE_DIR, { recursive: true });
|
|
162
|
+
writeFileSync(cacheFile, helpText, "utf8");
|
|
163
|
+
} catch {
|
|
164
|
+
}
|
|
165
|
+
_cached = helpText;
|
|
166
|
+
return _cached;
|
|
167
|
+
}
|
|
168
|
+
function _resetCcHelpCache() {
|
|
169
|
+
_cached = null;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
// src/lib/cc-agent-support.ts
|
|
173
|
+
function _resetCcAgentSupportCache() {
|
|
174
|
+
_resetCcHelpCache();
|
|
175
|
+
}
|
|
176
|
+
function claudeSupportsAgentFlag() {
|
|
177
|
+
return /(^|\s)--agent(\b|=)/.test(getCcHelpOutputCached());
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
// src/bin/exe-launch-agent.ts
|
|
181
|
+
import { execSync as execSync2 } from "child_process";
|
|
182
|
+
|
|
183
|
+
// src/lib/provider-table.ts
|
|
184
|
+
var PROVIDER_TABLE = {
|
|
185
|
+
opencode: {
|
|
186
|
+
baseUrl: "https://opencode.ai/zen/go",
|
|
187
|
+
apiKeyEnv: "OPENCODE_API_KEY",
|
|
188
|
+
defaultModel: "kimi-k2.7-code"
|
|
189
|
+
},
|
|
190
|
+
glm: {
|
|
191
|
+
baseUrl: "https://api.z.ai/api/anthropic",
|
|
192
|
+
apiKeyEnv: "ZAI_API_KEY",
|
|
193
|
+
defaultModel: "glm-5.3",
|
|
194
|
+
authVar: "ANTHROPIC_AUTH_TOKEN",
|
|
195
|
+
apiKeyFallbackFile: ".glm-mcp/config.json",
|
|
196
|
+
contextByModel: {
|
|
197
|
+
// glm-5.3 released 2026-08-14 (confirmed real via
|
|
198
|
+
// api.z.ai/api/paas/v4/models — Z.ai's endpoint validates model ids and
|
|
199
|
+
// this one isn't rejected). Z.ai's model-list/model-detail endpoints
|
|
200
|
+
// don't expose context length via API, so this 1M figure is founder-
|
|
201
|
+
// confirmed (2026-08-24), not independently API-verified — if that
|
|
202
|
+
// ever turns out wrong, don't silently "fix" it back down, ask first.
|
|
203
|
+
"glm-5.3": 1e6,
|
|
204
|
+
"glm-5.2": 1e6,
|
|
205
|
+
"glm-5": 2e5,
|
|
206
|
+
"glm-5-turbo": 2e5,
|
|
207
|
+
"glm-4.7": 2e5,
|
|
208
|
+
"glm-4.7-flash": 2e5
|
|
209
|
+
}
|
|
210
|
+
},
|
|
211
|
+
kimi: {
|
|
212
|
+
// Kimi subscription via kimi-proxy (~/.kimi-code/kimi-proxy.mjs, launchd
|
|
213
|
+
// com.exeai.kimi-proxy, port 8791). The subscription API
|
|
214
|
+
// https://api.kimi.ai/coding/v1/messages speaks NATIVE Anthropic protocol
|
|
215
|
+
// but authenticates with the Kimi CLI's OAuth token (15-min expiry,
|
|
216
|
+
// refresh via auth.kimi.ai/v1/oauth/token — client_id 17e5f671-…,
|
|
217
|
+
// anthropic-beta oauth-2025-04-20; extracted from @moonshot-ai/kimi-code
|
|
218
|
+
// 2.0.2 dist/main.mjs). The proxy handles refresh + Cloudflare UA
|
|
219
|
+
// fingerprinting (upstream 403s any non-kimi UA) and is a pure byte
|
|
220
|
+
// passthrough, so Claude Code just points at 127.0.0.1:8791 and CC's
|
|
221
|
+
// /v1/messages lands on /coding/v1/messages. Verified E2E 2026-09-22.
|
|
222
|
+
//
|
|
223
|
+
// Model ids are the Kimi Code registry's wire ids (NOT display names):
|
|
224
|
+
// kimi-for-coding = "K2.8 Preview" (1M context, default per founder
|
|
225
|
+
// 2026-09-22), kimi-for-coding-highspeed = "K2.7 Code Highspeed" (256k),
|
|
226
|
+
// k3-256k. K3's 1M variant (wire id "k3") is deliberately NOT declared —
|
|
227
|
+
// founder policy 2026-09-22: never use K3 1M, it burns 2x tokens; K3
|
|
228
|
+
// work goes through k3-256k. The fallback api-key.json exists only to
|
|
229
|
+
// satisfy the launcher's key check — the proxy owns real credentials.
|
|
230
|
+
baseUrl: "http://127.0.0.1:8791",
|
|
231
|
+
apiKeyEnv: "KIMI_API_KEY",
|
|
232
|
+
defaultModel: "kimi-for-coding",
|
|
233
|
+
authVar: "ANTHROPIC_AUTH_TOKEN",
|
|
234
|
+
apiKeyFallbackFile: ".kimi-code/api-key.json",
|
|
235
|
+
contextByModel: {
|
|
236
|
+
"kimi-for-coding": 1e6,
|
|
237
|
+
"kimi-for-coding-highspeed": 262144,
|
|
238
|
+
"k3-256k": 262144
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
};
|
|
242
|
+
var DEFAULT_PROVIDER = "default";
|
|
243
|
+
|
|
244
|
+
// src/bin/exe-launch-agent.ts
|
|
130
245
|
function getKnownAgents() {
|
|
131
246
|
try {
|
|
132
247
|
return loadEmployeesSync().map((e) => e.name);
|
|
@@ -144,7 +259,7 @@ function parseBasename(basename) {
|
|
|
144
259
|
return { agent, provider };
|
|
145
260
|
}
|
|
146
261
|
function resolveAgent(argv) {
|
|
147
|
-
const invokedAs =
|
|
262
|
+
const invokedAs = path2.basename(argv[1] ?? "");
|
|
148
263
|
if (invokedAs && invokedAs !== "exe-launch-agent" && !invokedAs.endsWith(".js")) {
|
|
149
264
|
const { agent: agent2, provider } = parseBasename(invokedAs.toLowerCase());
|
|
150
265
|
return { agent: agent2, provider, passthrough: argv.slice(2) };
|
|
@@ -175,23 +290,23 @@ async function isKnownAgent(agent) {
|
|
|
175
290
|
}
|
|
176
291
|
}
|
|
177
292
|
function identityPathFor(agent) {
|
|
178
|
-
const dir =
|
|
179
|
-
const exactPath =
|
|
180
|
-
if (
|
|
293
|
+
const dir = path2.join(os2.homedir(), ".exe-os", "identity");
|
|
294
|
+
const exactPath = path2.join(dir, `${agent}.md`);
|
|
295
|
+
if (existsSync2(exactPath)) return exactPath;
|
|
181
296
|
try {
|
|
182
297
|
const files = readdirSync(dir);
|
|
183
298
|
const match = files.find((f) => f.toLowerCase() === `${agent.toLowerCase()}.md`);
|
|
184
|
-
if (match) return
|
|
299
|
+
if (match) return path2.join(dir, match);
|
|
185
300
|
} catch {
|
|
186
301
|
}
|
|
187
302
|
const baseName = agent.replace(/\d+$/, "");
|
|
188
303
|
if (baseName !== agent) {
|
|
189
|
-
const basePath =
|
|
190
|
-
if (
|
|
304
|
+
const basePath = path2.join(dir, `${baseName}.md`);
|
|
305
|
+
if (existsSync2(basePath)) return basePath;
|
|
191
306
|
try {
|
|
192
307
|
const files = readdirSync(dir);
|
|
193
308
|
const match = files.find((f) => f.toLowerCase() === `${baseName.toLowerCase()}.md`);
|
|
194
|
-
if (match) return
|
|
309
|
+
if (match) return path2.join(dir, match);
|
|
195
310
|
} catch {
|
|
196
311
|
}
|
|
197
312
|
}
|
|
@@ -252,13 +367,13 @@ function collectAllMcpServers() {
|
|
|
252
367
|
if (_mcpServerCache) return _mcpServerCache;
|
|
253
368
|
const servers = {};
|
|
254
369
|
const sources = [
|
|
255
|
-
|
|
256
|
-
|
|
370
|
+
path2.join(os2.homedir(), ".claude.json"),
|
|
371
|
+
path2.join(os2.homedir(), ".claude", "settings.json")
|
|
257
372
|
];
|
|
258
373
|
for (const src of sources) {
|
|
259
374
|
try {
|
|
260
|
-
if (!
|
|
261
|
-
const data = JSON.parse(
|
|
375
|
+
if (!existsSync2(src)) continue;
|
|
376
|
+
const data = JSON.parse(readFileSync2(src, "utf-8"));
|
|
262
377
|
const block = data.mcpServers;
|
|
263
378
|
if (!block) continue;
|
|
264
379
|
for (const [name, cfg] of Object.entries(block)) {
|
|
@@ -309,24 +424,24 @@ function generateLeanMcpConfig(agent, role) {
|
|
|
309
424
|
const leanServers = selectScopedMcpServers(allServers, agent, role);
|
|
310
425
|
if (!leanServers) return null;
|
|
311
426
|
if (!leanServers["exe-mem"]) {
|
|
312
|
-
const packageRoot =
|
|
427
|
+
const packageRoot = path2.resolve(path2.dirname(new URL(import.meta.url).pathname), "..", "..");
|
|
313
428
|
leanServers["exe-mem"] = {
|
|
314
429
|
type: "stdio",
|
|
315
430
|
command: "node",
|
|
316
|
-
args: [
|
|
431
|
+
args: [path2.join(packageRoot, "dist", "mcp", "server.js")],
|
|
317
432
|
env: {}
|
|
318
433
|
};
|
|
319
434
|
}
|
|
320
|
-
const configDir =
|
|
321
|
-
|
|
322
|
-
const configPath =
|
|
435
|
+
const configDir = path2.join(os2.homedir(), ".exe-os", "mcp-configs");
|
|
436
|
+
mkdirSync2(configDir, { recursive: true });
|
|
437
|
+
const configPath = path2.join(configDir, `${agent}-lean.json`);
|
|
323
438
|
const hashPath = configPath + ".generated-hash";
|
|
324
439
|
const newContent = JSON.stringify({ mcpServers: leanServers }, null, 2);
|
|
325
440
|
const newHash = createHash("sha256").update(newContent).digest("hex").slice(0, 16);
|
|
326
|
-
if (
|
|
441
|
+
if (existsSync2(configPath)) {
|
|
327
442
|
try {
|
|
328
|
-
const currentContent =
|
|
329
|
-
const lastGeneratedHash =
|
|
443
|
+
const currentContent = readFileSync2(configPath, "utf-8");
|
|
444
|
+
const lastGeneratedHash = existsSync2(hashPath) ? readFileSync2(hashPath, "utf-8").trim() : "";
|
|
330
445
|
const currentHash = createHash("sha256").update(currentContent).digest("hex").slice(0, 16);
|
|
331
446
|
if (lastGeneratedHash && currentHash !== lastGeneratedHash) {
|
|
332
447
|
process.stderr.write(
|
|
@@ -367,8 +482,8 @@ function leanMcpConfigFor(agent) {
|
|
|
367
482
|
} catch {
|
|
368
483
|
}
|
|
369
484
|
if (!leanMcpEnabled() && !hasPerAgentMcps) return null;
|
|
370
|
-
const p =
|
|
371
|
-
return
|
|
485
|
+
const p = path2.join(os2.homedir(), ".exe-os", "mcp-configs", `${agent}-lean.json`);
|
|
486
|
+
return existsSync2(p) ? p : null;
|
|
372
487
|
}
|
|
373
488
|
function ccSupportsFlag(flag) {
|
|
374
489
|
return getCcHelpOutputCached().includes(flag);
|
|
@@ -476,39 +591,39 @@ function buildLaunchPlan(agent, behaviorsPath, passthrough, _hasAgentFlag, _prov
|
|
|
476
591
|
if (configuredEffort) args.push("--effort", configuredEffort);
|
|
477
592
|
}
|
|
478
593
|
const idPath = identityPathFor(agent);
|
|
479
|
-
const ccAgentPath =
|
|
594
|
+
const ccAgentPath = path2.join(os2.homedir(), ".claude", "agents", `${agent}.md`);
|
|
480
595
|
let effectiveCcPath = null;
|
|
481
|
-
if (
|
|
596
|
+
if (existsSync2(ccAgentPath)) {
|
|
482
597
|
effectiveCcPath = ccAgentPath;
|
|
483
598
|
} else {
|
|
484
599
|
try {
|
|
485
|
-
const ccAgentDir =
|
|
600
|
+
const ccAgentDir = path2.join(os2.homedir(), ".claude", "agents");
|
|
486
601
|
const ccFiles = readdirSync(ccAgentDir);
|
|
487
602
|
const ccMatch = ccFiles.find((f) => f.toLowerCase() === `${agent.toLowerCase()}.md`);
|
|
488
|
-
if (ccMatch) effectiveCcPath =
|
|
603
|
+
if (ccMatch) effectiveCcPath = path2.join(ccAgentDir, ccMatch);
|
|
489
604
|
} catch {
|
|
490
605
|
}
|
|
491
606
|
}
|
|
492
|
-
const effectiveIdPath =
|
|
607
|
+
const effectiveIdPath = existsSync2(idPath) ? idPath : effectiveCcPath;
|
|
493
608
|
let identityContent = null;
|
|
494
|
-
if (effectiveIdPath &&
|
|
609
|
+
if (effectiveIdPath && existsSync2(effectiveIdPath)) {
|
|
495
610
|
try {
|
|
496
|
-
const content =
|
|
611
|
+
const content = readFileSync2(effectiveIdPath, "utf-8");
|
|
497
612
|
if (content.trim().length > 0) identityContent = content;
|
|
498
613
|
} catch {
|
|
499
614
|
}
|
|
500
615
|
}
|
|
501
616
|
if (!identityContent) {
|
|
502
617
|
try {
|
|
503
|
-
const rosterPath =
|
|
504
|
-
if (
|
|
505
|
-
const roster = JSON.parse(
|
|
618
|
+
const rosterPath = path2.join(os2.homedir(), ".exe-os", "exe-employees.json");
|
|
619
|
+
if (existsSync2(rosterPath)) {
|
|
620
|
+
const roster = JSON.parse(readFileSync2(rosterPath, "utf8"));
|
|
506
621
|
const emp = roster.find((e) => e.name.toLowerCase() === agent.toLowerCase());
|
|
507
622
|
if (emp?.systemPrompt && emp.systemPrompt.trim().length > 20) {
|
|
508
623
|
identityContent = emp.systemPrompt;
|
|
509
624
|
try {
|
|
510
|
-
const dir =
|
|
511
|
-
if (!
|
|
625
|
+
const dir = path2.dirname(idPath);
|
|
626
|
+
if (!existsSync2(dir)) mkdirSync2(dir, { recursive: true });
|
|
512
627
|
const hasFrontmatter = identityContent.trimStart().startsWith("---");
|
|
513
628
|
const baseContent = hasFrontmatter ? identityContent : `---
|
|
514
629
|
role: ${normalizeRole(emp.role ?? "employee")}
|
|
@@ -555,15 +670,15 @@ ${renderedPrompt}` : renderedPrompt
|
|
|
555
670
|
);
|
|
556
671
|
} else {
|
|
557
672
|
try {
|
|
558
|
-
const tmpPath =
|
|
559
|
-
|
|
673
|
+
const tmpPath = path2.join(os2.homedir(), ".exe-os", "session-cache", `${agent}-identity.md`);
|
|
674
|
+
mkdirSync2(path2.dirname(tmpPath), { recursive: true });
|
|
560
675
|
atomicWriteSync(tmpPath, identityContent);
|
|
561
676
|
args.push("--append-system-prompt-file", tmpPath);
|
|
562
677
|
} catch {
|
|
563
678
|
}
|
|
564
679
|
}
|
|
565
680
|
}
|
|
566
|
-
if (behaviorsPath &&
|
|
681
|
+
if (behaviorsPath && existsSync2(behaviorsPath)) {
|
|
567
682
|
args.push("--append-system-prompt-file", behaviorsPath);
|
|
568
683
|
}
|
|
569
684
|
const leanMcp = leanMcpConfigFor(agent);
|
|
@@ -588,7 +703,7 @@ ${renderedPrompt}` : renderedPrompt
|
|
|
588
703
|
if (!hasUserPrompt) {
|
|
589
704
|
try {
|
|
590
705
|
const employees = JSON.parse(
|
|
591
|
-
|
|
706
|
+
readFileSync2(path2.join(os2.homedir(), ".exe-os", "exe-employees.json"), "utf-8")
|
|
592
707
|
);
|
|
593
708
|
const emp = employees.find(
|
|
594
709
|
(e) => e.name.toLowerCase() === baseAgentName(agent).toLowerCase()
|
|
@@ -602,16 +717,16 @@ ${renderedPrompt}` : renderedPrompt
|
|
|
602
717
|
return { command: "claude", args };
|
|
603
718
|
}
|
|
604
719
|
function behaviorsExportDir() {
|
|
605
|
-
return
|
|
720
|
+
return path2.join(os2.homedir(), ".exe-os", "behaviors-export");
|
|
606
721
|
}
|
|
607
722
|
function behaviorsExportPathFor(agent) {
|
|
608
|
-
return
|
|
723
|
+
return path2.join(behaviorsExportDir(), `${agent}.md`);
|
|
609
724
|
}
|
|
610
725
|
function spawnBehaviorsRefresh(agent) {
|
|
611
726
|
if (process.env.EXE_SKIP_BEHAVIORS_REFRESH === "1") return;
|
|
612
727
|
try {
|
|
613
728
|
const sibling = fileURLToPath(new URL("./exe-export-behaviors.js", import.meta.url));
|
|
614
|
-
const hasSibling =
|
|
729
|
+
const hasSibling = existsSync2(sibling);
|
|
615
730
|
const child = spawnAsync(
|
|
616
731
|
hasSibling ? process.execPath : "exe-export-behaviors",
|
|
617
732
|
hasSibling ? [sibling, agent, ""] : [agent, ""],
|
|
@@ -625,14 +740,14 @@ async function resolveBehaviorsPath(agent) {
|
|
|
625
740
|
const stable = behaviorsExportPathFor(agent);
|
|
626
741
|
let cached = null;
|
|
627
742
|
try {
|
|
628
|
-
if (
|
|
743
|
+
if (existsSync2(stable) && statSync(stable).size > 0) cached = stable;
|
|
629
744
|
} catch {
|
|
630
745
|
}
|
|
631
746
|
if (cached) {
|
|
632
747
|
let spawnPath = cached;
|
|
633
748
|
try {
|
|
634
|
-
const snapshot =
|
|
635
|
-
atomicWriteSync(snapshot,
|
|
749
|
+
const snapshot = path2.join(behaviorsExportDir(), `${agent}-boot.md`);
|
|
750
|
+
atomicWriteSync(snapshot, readFileSync2(cached, "utf-8"));
|
|
636
751
|
spawnPath = snapshot;
|
|
637
752
|
} catch {
|
|
638
753
|
}
|
|
@@ -699,10 +814,10 @@ async function buildTaskBootPrompt(agentId, role) {
|
|
|
699
814
|
}
|
|
700
815
|
function loadApiKeyFallback(cfg) {
|
|
701
816
|
if (!cfg.apiKeyFallbackFile) return null;
|
|
702
|
-
const filePath =
|
|
703
|
-
if (!
|
|
817
|
+
const filePath = path2.join(os2.homedir(), cfg.apiKeyFallbackFile);
|
|
818
|
+
if (!existsSync2(filePath)) return null;
|
|
704
819
|
try {
|
|
705
|
-
const parsed = JSON.parse(
|
|
820
|
+
const parsed = JSON.parse(readFileSync2(filePath, "utf8"));
|
|
706
821
|
const key = parsed?.apiKey;
|
|
707
822
|
return typeof key === "string" && key.trim() ? key.trim() : null;
|
|
708
823
|
} catch {
|
|
@@ -747,23 +862,62 @@ function _getCompanyProceduresLoadFailedForTests() {
|
|
|
747
862
|
}
|
|
748
863
|
var COMPANY_PROCEDURES_NOT_LOADED_LINE = "\u26A0 Company procedures NOT loaded; run config company_procedure list";
|
|
749
864
|
async function warmCompanyProceduresCache() {
|
|
865
|
+
let reason;
|
|
750
866
|
try {
|
|
751
|
-
const { fastDbInit: fastDbInit2, isNoopFastDbClient } = await import("../fast-db-init-
|
|
867
|
+
const { fastDbInit: fastDbInit2, isNoopFastDbClient } = await import("../fast-db-init-TFRTK6EH.js");
|
|
752
868
|
const client = await fastDbInit2({ daemonOnly: true, caller: "cli" });
|
|
753
869
|
if (isNoopFastDbClient(client)) {
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
870
|
+
reason = "daemon unavailable \u2014 fastDbInit degraded to its no-op client (no direct DB open)";
|
|
871
|
+
} else {
|
|
872
|
+
const { loadGlobalProcedures } = await import("../global-procedures-PYNE2BQG.js");
|
|
873
|
+
reason = await loadWithOneRetry(loadGlobalProcedures);
|
|
874
|
+
}
|
|
875
|
+
} catch (err) {
|
|
876
|
+
reason = await describeLoadFailure(err);
|
|
877
|
+
}
|
|
878
|
+
if (reason === null) return;
|
|
879
|
+
let snap = null;
|
|
880
|
+
try {
|
|
881
|
+
const { loadCompanyProceduresSnapshot } = await import("../global-procedures-PYNE2BQG.js");
|
|
882
|
+
snap = loadCompanyProceduresSnapshot();
|
|
883
|
+
} catch {
|
|
884
|
+
}
|
|
885
|
+
if (snap) {
|
|
886
|
+
process.stderr.write(
|
|
887
|
+
`[exe-launch-agent] WARN: company-procedures live load failed (${reason}); using last-known-good snapshot from ${snap.loadedAt} (${snap.count} procedures)
|
|
757
888
|
`
|
|
758
|
-
|
|
759
|
-
|
|
889
|
+
);
|
|
890
|
+
return;
|
|
891
|
+
}
|
|
892
|
+
companyProceduresLoadFailed = true;
|
|
893
|
+
process.stderr.write(
|
|
894
|
+
`[exe-launch-agent] WARN: ${reason}. No company-procedures snapshot available. ${COMPANY_PROCEDURES_NOT_LOADED_LINE}
|
|
895
|
+
`
|
|
896
|
+
);
|
|
897
|
+
}
|
|
898
|
+
var PROCEDURES_RETRY_DELAY_MS = 300;
|
|
899
|
+
async function loadWithOneRetry(load) {
|
|
900
|
+
try {
|
|
901
|
+
await load();
|
|
902
|
+
return null;
|
|
903
|
+
} catch (first) {
|
|
904
|
+
const { classifyProceduresLoadError } = await import("../global-procedures-PYNE2BQG.js");
|
|
905
|
+
if (classifyProceduresLoadError(first) !== "no-client") return describeLoadFailure(first);
|
|
906
|
+
await new Promise((resolve) => setTimeout(resolve, PROCEDURES_RETRY_DELAY_MS));
|
|
907
|
+
try {
|
|
908
|
+
await load();
|
|
909
|
+
return null;
|
|
910
|
+
} catch (second) {
|
|
911
|
+
return `${await describeLoadFailure(second)} (after 1 retry)`;
|
|
760
912
|
}
|
|
761
|
-
|
|
762
|
-
|
|
913
|
+
}
|
|
914
|
+
}
|
|
915
|
+
async function describeLoadFailure(err) {
|
|
916
|
+
try {
|
|
917
|
+
const { classifyProceduresLoadError, describeError } = await import("../global-procedures-PYNE2BQG.js");
|
|
918
|
+
return `company-procedures load ${classifyProceduresLoadError(err)}: ${describeError(err)}`;
|
|
763
919
|
} catch {
|
|
764
|
-
|
|
765
|
-
process.stderr.write(`[exe-launch-agent] WARN: ${COMPANY_PROCEDURES_NOT_LOADED_LINE}
|
|
766
|
-
`);
|
|
920
|
+
return `company-procedures load failed: ${err instanceof Error ? `${err.name}: ${err.message}` : String(err)}`;
|
|
767
921
|
}
|
|
768
922
|
}
|
|
769
923
|
function resolveAnthropicModelPin(agentId, env) {
|
|
@@ -809,7 +963,7 @@ async function main() {
|
|
|
809
963
|
}
|
|
810
964
|
if (inTmux && (!process.env.EXE_SESSION_NAME || !process.env.EXE_SESSION)) {
|
|
811
965
|
try {
|
|
812
|
-
const tmuxSession =
|
|
966
|
+
const tmuxSession = execSync2("tmux display-message -p '#{session_name}'", {
|
|
813
967
|
encoding: "utf8",
|
|
814
968
|
stdio: ["pipe", "pipe", "pipe"],
|
|
815
969
|
timeout: 3e3
|
|
@@ -838,26 +992,26 @@ async function main() {
|
|
|
838
992
|
_resetCcAgentSupportCache();
|
|
839
993
|
const hasAgentFlag = claudeSupportsAgentFlag();
|
|
840
994
|
if (hasAgentFlag) {
|
|
841
|
-
const ccAgentDir =
|
|
842
|
-
const ccAgentFile =
|
|
843
|
-
if (!
|
|
995
|
+
const ccAgentDir = path2.join(os2.homedir(), ".claude", "agents");
|
|
996
|
+
const ccAgentFile = path2.join(ccAgentDir, `${agent}.md`);
|
|
997
|
+
if (!existsSync2(ccAgentFile)) {
|
|
844
998
|
const exeIdentity = identityPathFor(agent);
|
|
845
999
|
let sourceFile = null;
|
|
846
|
-
if (
|
|
1000
|
+
if (existsSync2(exeIdentity)) {
|
|
847
1001
|
sourceFile = exeIdentity;
|
|
848
1002
|
} else {
|
|
849
1003
|
try {
|
|
850
|
-
const identityDir =
|
|
1004
|
+
const identityDir = path2.dirname(exeIdentity);
|
|
851
1005
|
const files = readdirSync(identityDir);
|
|
852
1006
|
const match = files.find((f) => f.toLowerCase() === `${agent.toLowerCase()}.md`);
|
|
853
|
-
if (match) sourceFile =
|
|
1007
|
+
if (match) sourceFile = path2.join(identityDir, match);
|
|
854
1008
|
} catch {
|
|
855
1009
|
}
|
|
856
1010
|
}
|
|
857
1011
|
if (sourceFile) {
|
|
858
1012
|
try {
|
|
859
|
-
|
|
860
|
-
let content =
|
|
1013
|
+
mkdirSync2(ccAgentDir, { recursive: true });
|
|
1014
|
+
let content = readFileSync2(sourceFile, "utf-8");
|
|
861
1015
|
content = content.replace(/\$\{agent_id\}/g, baseAgentName(agent));
|
|
862
1016
|
content = ensureAgentFrontmatter(content, baseAgentName(agent));
|
|
863
1017
|
atomicWriteSync(ccAgentFile, content);
|
|
@@ -873,8 +1027,8 @@ async function main() {
|
|
|
873
1027
|
const memoryAgent = baseAgentName(agent);
|
|
874
1028
|
const empRole = (() => {
|
|
875
1029
|
try {
|
|
876
|
-
const emps =
|
|
877
|
-
|
|
1030
|
+
const emps = readFileSync2(
|
|
1031
|
+
path2.join(os2.homedir(), ".exe-os", "exe-employees.json"),
|
|
878
1032
|
"utf-8"
|
|
879
1033
|
);
|
|
880
1034
|
const found = JSON.parse(emps).find(
|
|
@@ -902,7 +1056,7 @@ async function main() {
|
|
|
902
1056
|
try {
|
|
903
1057
|
const unscopedServers = collectAllMcpServers();
|
|
904
1058
|
const allServers = leanMcpEnabled() || hasPerAgentMcps ? selectScopedMcpServers(unscopedServers, memoryAgent, empRole) ?? unscopedServers : unscopedServers;
|
|
905
|
-
const { readOrCreateDaemonToken, mcpHttpUrl } = await import("../mcp-http-config-
|
|
1059
|
+
const { readOrCreateDaemonToken, mcpHttpUrl } = await import("../mcp-http-config-GKP5QGAO.js");
|
|
906
1060
|
let currentDaemonToken = null;
|
|
907
1061
|
try {
|
|
908
1062
|
currentDaemonToken = readOrCreateDaemonToken();
|
|
@@ -929,9 +1083,9 @@ async function main() {
|
|
|
929
1083
|
`
|
|
930
1084
|
);
|
|
931
1085
|
}
|
|
932
|
-
const configDir =
|
|
933
|
-
|
|
934
|
-
sessionMcpConfig =
|
|
1086
|
+
const configDir = path2.join(os2.homedir(), ".exe-os", "mcp-configs");
|
|
1087
|
+
mkdirSync2(configDir, { recursive: true });
|
|
1088
|
+
sessionMcpConfig = path2.join(configDir, sessionMcpConfigFilename(sessionName));
|
|
935
1089
|
atomicWriteJsonSync(sessionMcpConfig, { mcpServers: built.servers });
|
|
936
1090
|
process.stderr.write(
|
|
937
1091
|
`[exe-launch-agent] session MCP config: ${sessionMcpConfig} (${Object.keys(built.servers).length} servers, session=${sessionName}, coordinator=${coordinatorSession})
|
|
@@ -980,7 +1134,7 @@ async function main() {
|
|
|
980
1134
|
process.env.EXE_RUNTIME = "claude";
|
|
981
1135
|
process.env.AGENT_ROLE = empRole;
|
|
982
1136
|
try {
|
|
983
|
-
const { writeActiveAgent } = await import("../active-agent-
|
|
1137
|
+
const { writeActiveAgent } = await import("../active-agent-3YCLS7GB.js");
|
|
984
1138
|
writeActiveAgent(memoryAgent, empRole);
|
|
985
1139
|
} catch {
|
|
986
1140
|
}
|