@askexenow/exe-os 0.9.140 → 0.9.142
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{active-agent-GFBVE3ES.js → active-agent-OTOFSYIV.js} +6 -4
- package/dist/{active-agent-M3ZT74AM.js → active-agent-PNV6PKJK.js} +6 -4
- package/dist/{agentic-ontology-QRNPGDIM.js → agentic-ontology-GYJZMRNB.js} +1 -1
- package/dist/{backfill-metadata-DI7R3MXV.js → backfill-metadata-EDLDTB2G.js} +9 -11
- package/dist/{background-jobs-LUEOBAVF.js → background-jobs-TBUOKMJR.js} +3 -3
- package/dist/{behaviors-KTEEQ3KG.js → behaviors-GE4RY2HA.js} +5 -6
- package/dist/bin/age-ontology-load.js +3 -3
- package/dist/bin/agentic-ontology-backfill.js +9 -10
- package/dist/bin/agentic-reflection-backfill.js +10 -11
- package/dist/bin/agentic-semantic-label.js +9 -10
- package/dist/bin/backfill-conversations.js +11 -13
- package/dist/bin/backfill-responses.js +11 -13
- package/dist/bin/backfill-vectors.js +11 -12
- package/dist/bin/bulk-sync-postgres.js +10 -11
- package/dist/bin/cc-doctor.js +4 -4
- package/dist/bin/cleanup-stale-review-tasks.js +11 -12
- package/dist/bin/cli.js +18 -18
- package/dist/bin/exe-agent-config.js +6 -4
- package/dist/bin/exe-agent.js +7 -8
- package/dist/bin/exe-assign.js +12 -13
- package/dist/bin/exe-boot.js +23 -25
- package/dist/bin/exe-call.js +8 -9
- package/dist/bin/exe-cloud.js +9 -10
- package/dist/bin/exe-dispatch.js +11 -12
- package/dist/bin/exe-doctor.js +1 -1
- package/dist/bin/exe-export-behaviors.js +10 -11
- package/dist/bin/exe-forget.js +9 -10
- package/dist/bin/exe-gateway.js +9 -10
- package/dist/bin/exe-healthcheck.js +4 -4
- package/dist/bin/exe-heartbeat.js +13 -15
- package/dist/bin/exe-kill.js +9 -10
- package/dist/bin/exe-launch-agent.js +31 -19
- package/dist/bin/exe-new-employee.js +11 -12
- package/dist/bin/exe-pending-messages.js +12 -13
- package/dist/bin/exe-pending-notifications.js +11 -12
- package/dist/bin/exe-pending-reviews.js +11 -12
- package/dist/bin/exe-rename.js +13 -10
- package/dist/bin/exe-review.js +16 -18
- package/dist/bin/exe-search.js +8 -9
- package/dist/bin/exe-session-cleanup.js +16 -17
- package/dist/bin/exe-settings.js +9 -10
- package/dist/bin/exe-start-codex.js +16 -17
- package/dist/bin/exe-start-opencode.js +12 -13
- package/dist/bin/exe-status.js +12 -13
- package/dist/bin/exe-support.js +4 -4
- package/dist/bin/exe-team.js +7 -9
- package/dist/bin/git-sweep.js +11 -12
- package/dist/bin/graph-backfill.js +10 -10
- package/dist/bin/graph-export.js +8 -9
- package/dist/bin/install.js +10 -8
- package/dist/bin/intercom-check.js +4 -4
- package/dist/bin/postgres-agentic-reflection-backfill.js +5 -5
- package/dist/bin/postgres-agentic-semantic-backfill.js +4 -4
- package/dist/bin/pre-publish.js +1 -1
- package/dist/bin/scan-tasks.js +11 -12
- package/dist/bin/setup.js +4 -4
- package/dist/bin/shard-migrate.js +8 -9
- package/dist/bin/stack-update.js +3 -3
- package/dist/{branding-EKPE6CWW.js → branding-EKI27T6K.js} +2 -2
- package/dist/{capacity-monitor-HGD2C6CP.js → capacity-monitor-D3RGDLMN.js} +12 -13
- package/dist/{catchup-brief-OMDCLETB.js → catchup-brief-LD2QLE2D.js} +14 -15
- package/dist/{chunk-2JAEWE7P.js → chunk-25QUV6FU.js} +6 -6
- package/dist/{chunk-OIUPHIN2.js → chunk-2NWMGMNH.js} +9 -9
- package/dist/{chunk-CLIW2CES.js → chunk-32Z4GK25.js} +8 -10
- package/dist/{chunk-3SPQNGRT.js → chunk-4AZYVT6A.js} +1 -1
- package/dist/{chunk-5K3CCPNX.js → chunk-4CBBN2XD.js} +245 -111
- package/dist/{chunk-3WSH4P4Z.js → chunk-4GA5XZWY.js} +2 -2
- package/dist/{chunk-XUHFQHGZ.js → chunk-4JZNDVZH.js} +37 -4
- package/dist/{chunk-CSVYC6HH.js → chunk-4OHIVMHS.js} +1 -1
- package/dist/{chunk-STVJLWSA.js → chunk-4YSDLTCT.js} +4 -4
- package/dist/{chunk-UEWGUOXB.js → chunk-55LEDLDE.js} +499 -27
- package/dist/{chunk-UOCQQHZT.js → chunk-5PZ3HSGP.js} +87 -48
- package/dist/{chunk-7SVGVGE3.js → chunk-5UCBVXKO.js} +1 -1
- package/dist/{chunk-SQLEKC4E.js → chunk-6EZRMPDA.js} +1 -1
- package/dist/{chunk-35FFFDS2.js → chunk-6V6UTSOP.js} +1 -1
- package/dist/{chunk-LPG22IL5.js → chunk-7BPUBHGW.js} +2 -2
- package/dist/{chunk-4YNGDNDI.js → chunk-7M3DNYMR.js} +4 -4
- package/dist/{chunk-H24OVCAN.js → chunk-AJOZXJLJ.js} +1 -1
- package/dist/{chunk-YWCPAQBH.js → chunk-AOJHEMHE.js} +36 -15
- package/dist/{chunk-YYB6HGEY.js → chunk-BI3GMMTP.js} +1 -1
- package/dist/{chunk-3TTJPQAE.js → chunk-BKEJSHDE.js} +1 -1
- package/dist/{chunk-SCGCHM2H.js → chunk-BSSSCUQJ.js} +3 -3
- package/dist/{chunk-XDJWGR2S.js → chunk-CBSUVFZ7.js} +2 -2
- package/dist/{chunk-54MB5TNF.js → chunk-CHXX73NX.js} +2 -2
- package/dist/{chunk-5LJQSXUG.js → chunk-CK5ZAMWX.js} +3 -3
- package/dist/{chunk-VTZ4QOBS.js → chunk-CQX2WDI5.js} +1 -1
- package/dist/{chunk-7HZFWAIR.js → chunk-DH6N5G4T.js} +1 -1
- package/dist/{chunk-QVVV6DHI.js → chunk-DKWTDULH.js} +2 -2
- package/dist/{chunk-GUDCQBRY.js → chunk-DU4ZN7VF.js} +1 -1
- package/dist/{chunk-PS4UUDIG.js → chunk-DUDPJVAC.js} +5 -7
- package/dist/{chunk-5PB6BRLA.js → chunk-E2KEN3PG.js} +1 -1
- package/dist/{chunk-Q3MIJPXM.js → chunk-EAVACBVO.js} +2 -2
- package/dist/{chunk-FCO2K73K.js → chunk-EENNKZMN.js} +3 -3
- package/dist/{chunk-QUG6EMZQ.js → chunk-EZUWMBWA.js} +1 -1
- package/dist/{chunk-YKOW7KMK.js → chunk-F4OU2ETP.js} +23 -7
- package/dist/chunk-FZ23OZL3.js +78 -0
- package/dist/{chunk-KNEH2MGD.js → chunk-GIGLGGYL.js} +5 -5
- package/dist/{chunk-KNS5ETKF.js → chunk-GLVF7ENO.js} +1 -1
- package/dist/{chunk-D7BPHQGX.js → chunk-GOCW7Z6D.js} +2 -2
- package/dist/chunk-GUMRIUI5.js +63 -0
- package/dist/{chunk-HO4C7QMH.js → chunk-ITJMONDK.js} +1 -1
- package/dist/{chunk-OYBQKDV5.js → chunk-JAFHOB5P.js} +1 -1
- package/dist/{chunk-UE3BYGWY.js → chunk-JMMY24KD.js} +30 -15
- package/dist/{chunk-CYCRC2KN.js → chunk-JSVRX6IW.js} +30 -11
- package/dist/{chunk-ABCDEJUD.js → chunk-KCLL5ECT.js} +1 -1
- package/dist/{chunk-SPMZRVXK.js → chunk-LCZRXRB7.js} +2 -2
- package/dist/{chunk-XNWXVGEA.js → chunk-LD6WE7DK.js} +2 -2
- package/dist/{chunk-6EBG7VWN.js → chunk-LFVL3R6H.js} +2 -2
- package/dist/{chunk-RGKPVKUO.js → chunk-LGPTAJZC.js} +1 -1
- package/dist/{chunk-OX6D5AF3.js → chunk-LNX37VPO.js} +2 -2
- package/dist/{chunk-IU3CXV4S.js → chunk-LR3QFARI.js} +11 -11
- package/dist/{chunk-EWGZPTII.js → chunk-MQB2BE3I.js} +1 -1
- package/dist/{chunk-4ITOWLHX.js → chunk-MRX42FAS.js} +4 -6
- package/dist/{chunk-UCNCSKGH.js → chunk-N5MH3CN2.js} +3 -3
- package/dist/{chunk-QCJ3Y52V.js → chunk-NFX6MDEO.js} +1 -1
- package/dist/{chunk-F6PIXTHZ.js → chunk-NMG76472.js} +5 -7
- package/dist/{chunk-LUOLBU54.js → chunk-NMT6QFEE.js} +1 -1
- package/dist/{chunk-DEHYRM3I.js → chunk-NWUWTV7B.js} +1 -1
- package/dist/{chunk-2XUXMKX5.js → chunk-OC7FNHGA.js} +4 -4
- package/dist/{chunk-SPKE5ANC.js → chunk-OI3REUP5.js} +1 -1
- package/dist/{chunk-FLVDAA3Z.js → chunk-P2YTTKPR.js} +1 -1
- package/dist/{chunk-NX4WEVG6.js → chunk-Q53ZYTIU.js} +12 -8
- package/dist/{chunk-NTIWZFOJ.js → chunk-RZK7BZHP.js} +1 -1
- package/dist/{chunk-5WIEDLGY.js → chunk-S3FDCJNF.js} +6 -6
- package/dist/{chunk-SL47NHTE.js → chunk-SDYBAMPW.js} +2 -2
- package/dist/{chunk-2ZWYALO4.js → chunk-SFURTBMT.js} +1 -1
- package/dist/{chunk-HHV26QTD.js → chunk-SOHGHGWU.js} +5 -6
- package/dist/{chunk-73JE5PVU.js → chunk-TJI7DMBT.js} +7 -7
- package/dist/{chunk-O2RVWP3S.js → chunk-TSPBIMZV.js} +1 -1
- package/dist/{chunk-BZHXUKVC.js → chunk-U3Q3WNGY.js} +2 -2
- package/dist/{chunk-Z6BTUUPK.js → chunk-U7M7ZURS.js} +2 -2
- package/dist/{chunk-34O6PRWE.js → chunk-UB7E2FEB.js} +4 -6
- package/dist/{chunk-POU4ZLBM.js → chunk-UKCSMGNM.js} +2 -2
- package/dist/{chunk-BBVMIH76.js → chunk-UYFPFO6Q.js} +8 -8
- package/dist/{chunk-HIOFKHTO.js → chunk-UYNFWD54.js} +3 -3
- package/dist/{chunk-IG5XFUYJ.js → chunk-VA42PIIY.js} +25 -7
- package/dist/{chunk-DMFM77DV.js → chunk-WZDI6UJ6.js} +1 -1
- package/dist/{chunk-6LKDJ5WX.js → chunk-XOVQ43JR.js} +52 -10
- package/dist/{chunk-762FPANW.js → chunk-XRPIVNFS.js} +1 -1
- package/dist/{code-context-index-PIC37JSG.js → code-context-index-XCX6HB3T.js} +5 -5
- package/dist/{conversation-entity-extractor-HKSNDF4L.js → conversation-entity-extractor-FJNOZ4DO.js} +2 -1
- package/dist/{conversation-wiki-populator-7M5YYPXH.js → conversation-wiki-populator-HAW3EQD5.js} +1 -1
- package/dist/{crdt-sync-MDW6THU7.js → crdt-sync-WXVYQ5ZO.js} +1 -1
- package/dist/{crm-webhook-YZKCH7QB.js → crm-webhook-HGUHXI6W.js} +2 -2
- package/dist/{cto-delegation-gate-7SQNLKN7.js → cto-delegation-gate-RJ5EVOY3.js} +12 -14
- package/dist/{daemon-auth-6XMF4JG5.js → daemon-auth-VXM7MOF4.js} +3 -3
- package/dist/{daemon-orchestration-7YUD2H64.js → daemon-orchestration-3E3BIK7E.js} +14 -15
- package/dist/{db-backup-R4DLUO4C.js → db-backup-YHDR4SXR.js} +3 -3
- package/dist/{entity-boost-YQFREESI.js → entity-boost-27ENEPYC.js} +1 -1
- package/dist/{exe-drift-HKJONDA5.js → exe-drift-DBY7PC3H.js} +5 -7
- package/dist/{exe-export-TSZJEMWC.js → exe-export-FQPQCBDA.js} +9 -11
- package/dist/{exe-import-LAKNLCWI.js → exe-import-7CML2REU.js} +9 -11
- package/dist/{exe-key-ODHZVEGR.js → exe-key-KNR4LT2L.js} +5 -6
- package/dist/{exe-org-EVOEZY6H.js → exe-org-QKK7M6FR.js} +3 -3
- package/dist/{fast-db-init-6SRLEIFS.js → fast-db-init-ADRYLHUA.js} +1 -1
- package/dist/gateway/index.js +9 -10
- package/dist/{gateway-client-VFKE2WJX.js → gateway-client-CJNSI4GG.js} +1 -1
- package/dist/{git-staleness-H774CLPX.js → git-staleness-OL7J5CXL.js} +4 -5
- package/dist/{git-task-sweep-FMRECHV7.js → git-task-sweep-O4OIPQB3.js} +11 -12
- package/dist/{global-procedures-PYYMCJIW.js → global-procedures-L7AN2A5W.js} +6 -7
- package/dist/{graph-query-657O5JYJ.js → graph-query-JBQDJJFP.js} +2 -1
- package/dist/{graph-rag-ZE5N7C65.js → graph-rag-V3JU7GYG.js} +2 -1
- package/dist/{hook-integrity-S5EUKBL6.js → hook-integrity-HESSTSAK.js} +1 -1
- package/dist/hooks/bug-report-worker.js +13 -14
- package/dist/hooks/codex-stop-task-finalizer.js +13 -14
- package/dist/hooks/commit-complete.js +13 -14
- package/dist/hooks/error-recall.js +10 -11
- package/dist/hooks/exe-heartbeat-hook.js +6 -4
- package/dist/hooks/ingest-worker.js +6 -6
- package/dist/hooks/ingest.js +14 -12
- package/dist/hooks/instructions-loaded.js +10 -10
- package/dist/hooks/notification.js +7 -5
- package/dist/hooks/post-compact.js +12 -13
- package/dist/hooks/post-tool-combined.js +5 -5
- package/dist/hooks/pre-compact.js +17 -18
- package/dist/hooks/pre-tool-use.js +34 -17
- package/dist/hooks/prompt-submit.js +22 -23
- package/dist/hooks/session-end.js +21 -22
- package/dist/hooks/session-start.js +8 -8
- package/dist/hooks/stop.js +18 -19
- package/dist/hooks/subagent-stop.js +12 -13
- package/dist/hooks/summary-worker.js +23 -25
- package/dist/index.js +18 -19
- package/dist/{installer-MIBTZDDM.js → installer-4YA7JGL4.js} +9 -7
- package/dist/{installer-3RTZXZ57.js → installer-JF7ARD2O.js} +9 -7
- package/dist/{installer-4G4YDLGY.js → installer-ZF7VAXAE.js} +9 -7
- package/dist/{key-backup-status-6BBOUM2S.js → key-backup-status-M4W77D3P.js} +2 -2
- package/dist/lib/agent-config.js +3 -3
- package/dist/lib/cloud-sync.js +7 -8
- package/dist/lib/config.js +2 -2
- package/dist/lib/consolidation.js +8 -9
- package/dist/lib/database.js +4 -5
- package/dist/lib/db-daemon-client.js +4 -4
- package/dist/lib/db.js +4 -5
- package/dist/lib/device-registry.js +2 -2
- package/dist/lib/embedder.js +5 -5
- package/dist/lib/employee-templates.js +7 -8
- package/dist/lib/employees.js +7 -3
- package/dist/lib/exe-daemon-client.js +4 -4
- package/dist/lib/exe-daemon.js +151 -59
- package/dist/lib/hybrid-search.js +8 -9
- package/dist/lib/identity-templates.js +1 -1
- package/dist/lib/identity.js +6 -6
- package/dist/lib/keychain.js +1 -1
- package/dist/lib/license.js +3 -3
- package/dist/lib/messaging.js +11 -12
- package/dist/lib/reminders.js +5 -6
- package/dist/lib/schedules.js +8 -9
- package/dist/lib/skill-learning.js +6 -7
- package/dist/lib/status-brief.js +1 -1
- package/dist/lib/store.js +7 -8
- package/dist/lib/task-router.js +6 -4
- package/dist/lib/tasks.js +12 -13
- package/dist/lib/tmux-routing.js +10 -11
- package/dist/lib/token-spend.js +5 -6
- package/dist/lib/ws-client.js +1 -1
- package/dist/{license-gate-746LFKMY.js → license-gate-P6NDW4Z3.js} +4 -4
- package/dist/mcp/register-tools.js +64 -65
- package/dist/mcp/server.js +66 -67
- package/dist/mcp/tools/complete-reminder.js +6 -7
- package/dist/mcp/tools/create-reminder.js +6 -7
- package/dist/mcp/tools/create-task.js +14 -15
- package/dist/mcp/tools/deactivate-behavior.js +7 -8
- package/dist/mcp/tools/list-reminders.js +6 -7
- package/dist/mcp/tools/list-tasks.js +14 -15
- package/dist/mcp/tools/send-message.js +13 -14
- package/dist/mcp/tools/update-task.js +13 -14
- package/dist/{mcp-http-config-RD5MJYJD.js → mcp-http-config-TIY7CLWB.js} +6 -4
- package/dist/{memory-cards-CS3QQQST.js → memory-cards-MQBULX5V.js} +4 -5
- package/dist/{memory-poisoning-defense-XPM34UJQ.js → memory-poisoning-defense-EHSL5PZW.js} +4 -5
- package/dist/{memory-queue-B332RRFX.js → memory-queue-6YCGHJLQ.js} +3 -3
- package/dist/memory-queue-client-SZZDOZXE.js +14 -0
- package/dist/{memory-reflection-GH5BOH7A.js → memory-reflection-OTJBCQWK.js} +4 -5
- package/dist/message-queue-client-2YTGEB5H.js +92 -0
- package/dist/{notifications-WWROKWFT.js → notifications-APKWB63A.js} +10 -11
- package/dist/{orchestration-phase-SBCILK4O.js → orchestration-phase-365P32CD.js} +3 -3
- package/dist/{orchestrator-V3EMR3AU.js → orchestrator-W62CLQLP.js} +12 -13
- package/dist/{plan-limits-AMJUHUCR.js → plan-limits-BO2HMJ6S.js} +6 -7
- package/dist/{preferences-MW3BYTQ5.js → preferences-M7KQYRR2.js} +2 -2
- package/dist/{projection-worker-2YXEQRKI.js → projection-worker-6TGUPMLY.js} +3 -3
- package/dist/{push-notifications-NYQZGUJT.js → push-notifications-2SBCAIA2.js} +3 -3
- package/dist/{reranker-ZU3GWEBG.js → reranker-LV5BQIF4.js} +3 -3
- package/dist/runtime/index.js +13 -14
- package/dist/{session-events-RCAUFPNG.js → session-events-SR2WX2X4.js} +11 -12
- package/dist/{session-kill-telemetry-GUN2M2LJ.js → session-kill-telemetry-N2IKZK33.js} +5 -6
- package/dist/{session-scope-NGLL42BM.js → session-scope-S5DODJU4.js} +11 -12
- package/dist/setup-wizard-H4TZHU36.js +12 -0
- package/dist/{shard-manager-CIDCCPJ4.js → shard-manager-3MDFLDOZ.js} +3 -3
- package/dist/{task-enforcement-YMGIERU4.js → task-enforcement-L7EGD6LJ.js} +10 -11
- package/dist/{task-scope-RMJLXJ7S.js → task-scope-QNRAYD7S.js} +10 -11
- package/dist/{tasks-crud-ZRXPR3UB.js → tasks-crud-JHHIROCS.js} +10 -11
- package/dist/{tasks-review-NQUJR52I.js → tasks-review-TXMVOOFN.js} +10 -11
- package/dist/{tool-capability-index-6EKGND6H.js → tool-capability-index-7OF3LF4X.js} +1 -1
- package/dist/{tool-telemetry-4C6LTIPM.js → tool-telemetry-QPGPBV5R.js} +1 -1
- package/dist/tui/App.js +25 -26
- package/dist/{tui-data-A4GTAXBL.js → tui-data-65WM7L5Q.js} +10 -11
- package/dist/{worker-gate-H43H32OF.js → worker-gate-WM2RGEZE.js} +3 -3
- package/dist/{workflow-engine-EPWKDGHR.js → workflow-engine-PK2TC7UE.js} +2 -2
- package/package.json +1 -1
- package/release-notes.json +207 -199
- package/dist/chunk-MQV4UKTS.js +0 -142
- package/dist/chunk-X2IMCCM5.js +0 -49
- package/dist/chunk-ZHJNMC4W.js +0 -292
- package/dist/memory-queue-client-MPJ2B7RU.js +0 -14
- package/dist/setup-wizard-JAFJRWKE.js +0 -12
- /package/dist/{chunk-3RNNTTBH.js → chunk-267IKUT5.js} +0 -0
- /package/dist/{chunk-VEGDNUBO.js → chunk-72O7CSKA.js} +0 -0
- /package/dist/{chunk-ELXPFTBJ.js → chunk-7A2YCQNM.js} +0 -0
- /package/dist/{chunk-NBYMO4RZ.js → chunk-HBV3HSER.js} +0 -0
- /package/dist/{chunk-RCNCUSAF.js → chunk-JZB67O4M.js} +0 -0
- /package/dist/{chunk-OJ6Z2ZS2.js → chunk-NGAZPQQY.js} +0 -0
- /package/dist/{chunk-GSI6OPPH.js → chunk-NSA2JWNP.js} +0 -0
- /package/dist/{chunk-GLGWGMPD.js → chunk-XIIVMIS4.js} +0 -0
- /package/dist/{core-memory-JOTETVSY.js → core-memory-N74JWH4M.js} +0 -0
- /package/dist/{webhook-pipe-AFXVZ6YL.js → webhook-pipe-VOUF2Y43.js} +0 -0
- /package/dist/{wiki-acl-P7WEIMJV.js → wiki-acl-BIEVKTJC.js} +0 -0
- /package/dist/{wiki-client-UFR4R7YH.js → wiki-client-NGWOSMCV.js} +0 -0
package/dist/chunk-ZHJNMC4W.js
DELETED
|
@@ -1,292 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
EXE_AI_DIR,
|
|
3
|
-
init_config
|
|
4
|
-
} from "./chunk-IG5XFUYJ.js";
|
|
5
|
-
import {
|
|
6
|
-
__esm,
|
|
7
|
-
__export
|
|
8
|
-
} from "./chunk-KFQGP6VL.js";
|
|
9
|
-
|
|
10
|
-
// src/lib/employees.ts
|
|
11
|
-
var employees_exports = {};
|
|
12
|
-
__export(employees_exports, {
|
|
13
|
-
COORDINATOR_ROLE: () => COORDINATOR_ROLE,
|
|
14
|
-
DEFAULT_COORDINATOR_TEMPLATE_NAME: () => DEFAULT_COORDINATOR_TEMPLATE_NAME,
|
|
15
|
-
EMPLOYEES_PATH: () => EMPLOYEES_PATH,
|
|
16
|
-
addEmployee: () => addEmployee,
|
|
17
|
-
baseAgentName: () => baseAgentName,
|
|
18
|
-
canCoordinate: () => canCoordinate,
|
|
19
|
-
getCoordinatorEmployee: () => getCoordinatorEmployee,
|
|
20
|
-
getCoordinatorName: () => getCoordinatorName,
|
|
21
|
-
getEmployee: () => getEmployee,
|
|
22
|
-
getEmployeeByRole: () => getEmployeeByRole,
|
|
23
|
-
getEmployeeNamesByRole: () => getEmployeeNamesByRole,
|
|
24
|
-
hasRole: () => hasRole,
|
|
25
|
-
hireEmployee: () => hireEmployee,
|
|
26
|
-
isCoordinatorName: () => isCoordinatorName,
|
|
27
|
-
isCoordinatorRole: () => isCoordinatorRole,
|
|
28
|
-
isMultiInstance: () => isMultiInstance,
|
|
29
|
-
loadEmployees: () => loadEmployees,
|
|
30
|
-
loadEmployeesSync: () => loadEmployeesSync,
|
|
31
|
-
normalizeRole: () => normalizeRole,
|
|
32
|
-
normalizeRosterCase: () => normalizeRosterCase,
|
|
33
|
-
registerBinSymlinks: () => registerBinSymlinks,
|
|
34
|
-
saveEmployees: () => saveEmployees,
|
|
35
|
-
validateEmployeeName: () => validateEmployeeName
|
|
36
|
-
});
|
|
37
|
-
import { readFile, writeFile, mkdir } from "fs/promises";
|
|
38
|
-
import { existsSync, symlinkSync, readlinkSync, readFileSync, renameSync, unlinkSync, writeFileSync } from "fs";
|
|
39
|
-
import { execSync } from "child_process";
|
|
40
|
-
import path from "path";
|
|
41
|
-
import os from "os";
|
|
42
|
-
function normalizeRole(role) {
|
|
43
|
-
return (role ?? "").trim().toLowerCase();
|
|
44
|
-
}
|
|
45
|
-
function isCoordinatorRole(role) {
|
|
46
|
-
return normalizeRole(role) === normalizeRole(COORDINATOR_ROLE);
|
|
47
|
-
}
|
|
48
|
-
function getCoordinatorEmployee(employees) {
|
|
49
|
-
return employees.find((e) => isCoordinatorRole(e.role));
|
|
50
|
-
}
|
|
51
|
-
function getCoordinatorName(employees = loadEmployeesSync()) {
|
|
52
|
-
return getCoordinatorEmployee(employees)?.name ?? DEFAULT_COORDINATOR_TEMPLATE_NAME;
|
|
53
|
-
}
|
|
54
|
-
function isCoordinatorName(agentName, employees = loadEmployeesSync()) {
|
|
55
|
-
if (!agentName) return false;
|
|
56
|
-
return agentName.toLowerCase() === getCoordinatorName(employees).toLowerCase();
|
|
57
|
-
}
|
|
58
|
-
function canCoordinate(agentName, agentRole, employees = loadEmployeesSync()) {
|
|
59
|
-
return agentName === "default" || isCoordinatorRole(agentRole) || isCoordinatorName(agentName, employees);
|
|
60
|
-
}
|
|
61
|
-
function validateEmployeeName(name) {
|
|
62
|
-
if (!name) {
|
|
63
|
-
return { valid: false, error: "Name is required" };
|
|
64
|
-
}
|
|
65
|
-
if (name.length > 32) {
|
|
66
|
-
return { valid: false, error: "Name must be 32 characters or fewer" };
|
|
67
|
-
}
|
|
68
|
-
if (!/^[a-z][a-z0-9]*$/.test(name)) {
|
|
69
|
-
return {
|
|
70
|
-
valid: false,
|
|
71
|
-
error: "Name must start with a letter and contain only lowercase alphanumeric characters"
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
return { valid: true };
|
|
75
|
-
}
|
|
76
|
-
async function loadEmployees(employeesPath = EMPLOYEES_PATH) {
|
|
77
|
-
if (!existsSync(employeesPath)) {
|
|
78
|
-
return [];
|
|
79
|
-
}
|
|
80
|
-
const raw = await readFile(employeesPath, "utf-8");
|
|
81
|
-
try {
|
|
82
|
-
return JSON.parse(raw);
|
|
83
|
-
} catch {
|
|
84
|
-
return [];
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
async function saveEmployees(employees, employeesPath = EMPLOYEES_PATH) {
|
|
88
|
-
await mkdir(path.dirname(employeesPath), { recursive: true });
|
|
89
|
-
await writeFile(employeesPath, JSON.stringify(employees, null, 2) + "\n", "utf-8");
|
|
90
|
-
}
|
|
91
|
-
function loadEmployeesSync(employeesPath = EMPLOYEES_PATH) {
|
|
92
|
-
if (!existsSync(employeesPath)) return [];
|
|
93
|
-
try {
|
|
94
|
-
return JSON.parse(readFileSync(employeesPath, "utf-8"));
|
|
95
|
-
} catch {
|
|
96
|
-
return [];
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
function getEmployee(employees, name) {
|
|
100
|
-
return employees.find((e) => e.name.toLowerCase() === name.toLowerCase());
|
|
101
|
-
}
|
|
102
|
-
function getEmployeeByRole(employees, role) {
|
|
103
|
-
const lower = role.toLowerCase();
|
|
104
|
-
return employees.find((e) => e.role.toLowerCase() === lower);
|
|
105
|
-
}
|
|
106
|
-
function getEmployeeNamesByRole(employees, role) {
|
|
107
|
-
const lower = role.toLowerCase();
|
|
108
|
-
return employees.filter((e) => e.role.toLowerCase() === lower).map((e) => e.name);
|
|
109
|
-
}
|
|
110
|
-
function hasRole(agentName, role) {
|
|
111
|
-
const employees = loadEmployeesSync();
|
|
112
|
-
const emp = getEmployee(employees, agentName);
|
|
113
|
-
return emp ? emp.role.toLowerCase() === role.toLowerCase() : false;
|
|
114
|
-
}
|
|
115
|
-
function baseAgentName(name, employees) {
|
|
116
|
-
const match = name.match(/^([a-zA-Z]+)\d+$/);
|
|
117
|
-
if (!match) return name;
|
|
118
|
-
const base = match[1];
|
|
119
|
-
const roster = employees ?? loadEmployeesSync();
|
|
120
|
-
if (getEmployee(roster, base)) return base;
|
|
121
|
-
return name;
|
|
122
|
-
}
|
|
123
|
-
function isMultiInstance(agentName, employees) {
|
|
124
|
-
const roster = employees ?? loadEmployeesSync();
|
|
125
|
-
const emp = getEmployee(roster, agentName);
|
|
126
|
-
if (!emp) return false;
|
|
127
|
-
return MULTI_INSTANCE_ROLES.has(emp.role.toLowerCase());
|
|
128
|
-
}
|
|
129
|
-
function addEmployee(employees, employee) {
|
|
130
|
-
const { systemPrompt: _legacyPrompt, ...rest } = employee;
|
|
131
|
-
const normalized = { ...rest, name: employee.name.toLowerCase() };
|
|
132
|
-
if (employees.some((e) => e.name.toLowerCase() === normalized.name)) {
|
|
133
|
-
throw new Error(`Employee '${normalized.name}' already exists`);
|
|
134
|
-
}
|
|
135
|
-
return [...employees, normalized];
|
|
136
|
-
}
|
|
137
|
-
function appendToCoordinatorTeam(employee) {
|
|
138
|
-
const coordinator = getCoordinatorEmployee(loadEmployeesSync());
|
|
139
|
-
if (!coordinator) return;
|
|
140
|
-
const idPath = path.join(IDENTITY_DIR, `${coordinator.name}.md`);
|
|
141
|
-
if (!existsSync(idPath)) return;
|
|
142
|
-
const content = readFileSync(idPath, "utf-8");
|
|
143
|
-
if (content.includes(`**${capitalize(employee.name)}`)) return;
|
|
144
|
-
const teamMatch = content.match(TEAM_SECTION_RE);
|
|
145
|
-
if (!teamMatch || teamMatch.index === void 0) return;
|
|
146
|
-
const afterTeam = content.slice(teamMatch.index + teamMatch[0].length);
|
|
147
|
-
const nextHeading = afterTeam.match(/\n## /);
|
|
148
|
-
const entry = `
|
|
149
|
-
**${capitalize(employee.name)} (${employee.role}):** Newly hired. Update this description as the role develops.
|
|
150
|
-
`;
|
|
151
|
-
let updated;
|
|
152
|
-
if (nextHeading && nextHeading.index !== void 0) {
|
|
153
|
-
const insertAt = teamMatch.index + teamMatch[0].length + nextHeading.index;
|
|
154
|
-
updated = content.slice(0, insertAt) + entry + content.slice(insertAt);
|
|
155
|
-
} else {
|
|
156
|
-
updated = content.trimEnd() + "\n" + entry;
|
|
157
|
-
}
|
|
158
|
-
writeFileSync(idPath, updated, "utf-8");
|
|
159
|
-
}
|
|
160
|
-
function capitalize(s) {
|
|
161
|
-
return s.charAt(0).toUpperCase() + s.slice(1);
|
|
162
|
-
}
|
|
163
|
-
async function hireEmployee(employee) {
|
|
164
|
-
const employees = await loadEmployees();
|
|
165
|
-
const updated = addEmployee(employees, employee);
|
|
166
|
-
await saveEmployees(updated);
|
|
167
|
-
try {
|
|
168
|
-
appendToCoordinatorTeam(employee);
|
|
169
|
-
} catch {
|
|
170
|
-
}
|
|
171
|
-
try {
|
|
172
|
-
const { loadAgentConfig, saveAgentConfig } = await import("./lib/agent-config.js");
|
|
173
|
-
const config = loadAgentConfig();
|
|
174
|
-
const name = employee.name.toLowerCase();
|
|
175
|
-
if (!config[name] && config["default"]) {
|
|
176
|
-
config[name] = { ...config["default"] };
|
|
177
|
-
saveAgentConfig(config);
|
|
178
|
-
}
|
|
179
|
-
} catch {
|
|
180
|
-
}
|
|
181
|
-
return updated;
|
|
182
|
-
}
|
|
183
|
-
async function normalizeRosterCase(rosterPath) {
|
|
184
|
-
const employees = await loadEmployees(rosterPath);
|
|
185
|
-
let changed = false;
|
|
186
|
-
for (const emp of employees) {
|
|
187
|
-
if (emp.name !== emp.name.toLowerCase()) {
|
|
188
|
-
const oldName = emp.name;
|
|
189
|
-
emp.name = emp.name.toLowerCase();
|
|
190
|
-
changed = true;
|
|
191
|
-
try {
|
|
192
|
-
const identityDir = path.join(os.homedir(), ".exe-os", "identity");
|
|
193
|
-
const oldPath = path.join(identityDir, `${oldName}.md`);
|
|
194
|
-
const newPath = path.join(identityDir, `${emp.name}.md`);
|
|
195
|
-
if (existsSync(oldPath) && !existsSync(newPath)) {
|
|
196
|
-
renameSync(oldPath, newPath);
|
|
197
|
-
} else if (existsSync(oldPath) && oldPath !== newPath) {
|
|
198
|
-
const content = readFileSync(oldPath, "utf-8");
|
|
199
|
-
writeFileSync(newPath, content, "utf-8");
|
|
200
|
-
if (oldPath.toLowerCase() !== newPath.toLowerCase()) {
|
|
201
|
-
unlinkSync(oldPath);
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
} catch {
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
if (changed) {
|
|
209
|
-
await saveEmployees(employees, rosterPath);
|
|
210
|
-
}
|
|
211
|
-
return changed;
|
|
212
|
-
}
|
|
213
|
-
function findExeBin() {
|
|
214
|
-
try {
|
|
215
|
-
return execSync(process.platform === "win32" ? "where exe-os" : "which exe-os", { encoding: "utf8" }).trim();
|
|
216
|
-
} catch {
|
|
217
|
-
return null;
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
function registerBinSymlinks(name) {
|
|
221
|
-
const created = [];
|
|
222
|
-
const skipped = [];
|
|
223
|
-
const errors = [];
|
|
224
|
-
const exeBinPath = findExeBin();
|
|
225
|
-
if (!exeBinPath) {
|
|
226
|
-
errors.push("Could not find 'exe-os' in PATH");
|
|
227
|
-
return { created, skipped, errors };
|
|
228
|
-
}
|
|
229
|
-
const binDir = path.dirname(exeBinPath);
|
|
230
|
-
let target;
|
|
231
|
-
try {
|
|
232
|
-
target = readlinkSync(exeBinPath);
|
|
233
|
-
} catch {
|
|
234
|
-
errors.push("Could not read 'exe' symlink");
|
|
235
|
-
return { created, skipped, errors };
|
|
236
|
-
}
|
|
237
|
-
for (const suffix of ["", "-opencode"]) {
|
|
238
|
-
const linkName = `${name}${suffix}`;
|
|
239
|
-
const linkPath = path.join(binDir, linkName);
|
|
240
|
-
if (existsSync(linkPath)) {
|
|
241
|
-
skipped.push(linkName);
|
|
242
|
-
continue;
|
|
243
|
-
}
|
|
244
|
-
try {
|
|
245
|
-
symlinkSync(target, linkPath);
|
|
246
|
-
created.push(linkName);
|
|
247
|
-
} catch (err) {
|
|
248
|
-
errors.push(`${linkName}: ${err instanceof Error ? err.message : String(err)}`);
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
return { created, skipped, errors };
|
|
252
|
-
}
|
|
253
|
-
var EMPLOYEES_PATH, DEFAULT_COORDINATOR_TEMPLATE_NAME, COORDINATOR_ROLE, MULTI_INSTANCE_ROLES, IDENTITY_DIR, TEAM_SECTION_RE;
|
|
254
|
-
var init_employees = __esm({
|
|
255
|
-
"src/lib/employees.ts"() {
|
|
256
|
-
init_config();
|
|
257
|
-
EMPLOYEES_PATH = path.join(EXE_AI_DIR, "exe-employees.json");
|
|
258
|
-
DEFAULT_COORDINATOR_TEMPLATE_NAME = "exe";
|
|
259
|
-
COORDINATOR_ROLE = "COO";
|
|
260
|
-
MULTI_INSTANCE_ROLES = /* @__PURE__ */ new Set(["principal engineer", "content production specialist", "staff code reviewer"]);
|
|
261
|
-
IDENTITY_DIR = path.join(EXE_AI_DIR, "identity");
|
|
262
|
-
TEAM_SECTION_RE = /^## Team\b.*$/m;
|
|
263
|
-
}
|
|
264
|
-
});
|
|
265
|
-
|
|
266
|
-
export {
|
|
267
|
-
EMPLOYEES_PATH,
|
|
268
|
-
DEFAULT_COORDINATOR_TEMPLATE_NAME,
|
|
269
|
-
COORDINATOR_ROLE,
|
|
270
|
-
normalizeRole,
|
|
271
|
-
isCoordinatorRole,
|
|
272
|
-
getCoordinatorEmployee,
|
|
273
|
-
getCoordinatorName,
|
|
274
|
-
isCoordinatorName,
|
|
275
|
-
canCoordinate,
|
|
276
|
-
validateEmployeeName,
|
|
277
|
-
loadEmployees,
|
|
278
|
-
saveEmployees,
|
|
279
|
-
loadEmployeesSync,
|
|
280
|
-
getEmployee,
|
|
281
|
-
getEmployeeByRole,
|
|
282
|
-
getEmployeeNamesByRole,
|
|
283
|
-
hasRole,
|
|
284
|
-
baseAgentName,
|
|
285
|
-
isMultiInstance,
|
|
286
|
-
addEmployee,
|
|
287
|
-
hireEmployee,
|
|
288
|
-
normalizeRosterCase,
|
|
289
|
-
registerBinSymlinks,
|
|
290
|
-
employees_exports,
|
|
291
|
-
init_employees
|
|
292
|
-
};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
batchWriteMemoryViaDaemon,
|
|
3
|
-
writeMemoryViaDaemon
|
|
4
|
-
} from "./chunk-3WSH4P4Z.js";
|
|
5
|
-
import "./chunk-HO4C7QMH.js";
|
|
6
|
-
import "./chunk-POU4ZLBM.js";
|
|
7
|
-
import "./chunk-SL47NHTE.js";
|
|
8
|
-
import "./chunk-IG5XFUYJ.js";
|
|
9
|
-
import "./chunk-X2IMCCM5.js";
|
|
10
|
-
import "./chunk-KFQGP6VL.js";
|
|
11
|
-
export {
|
|
12
|
-
batchWriteMemoryViaDaemon,
|
|
13
|
-
writeMemoryViaDaemon
|
|
14
|
-
};
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|