@askexenow/exe-os 0.9.140 → 0.9.141
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 +16 -17
- 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-ZIAX3FBS.js} +12 -13
- package/dist/{catchup-brief-OMDCLETB.js → catchup-brief-GYZWGUDP.js} +14 -15
- package/dist/{chunk-OIUPHIN2.js → chunk-2NWMGMNH.js} +9 -9
- package/dist/{chunk-UE3BYGWY.js → chunk-47D4UN72.js} +30 -15
- package/dist/{chunk-3SPQNGRT.js → chunk-4AZYVT6A.js} +1 -1
- package/dist/{chunk-3WSH4P4Z.js → chunk-4GA5XZWY.js} +2 -2
- package/dist/{chunk-XUHFQHGZ.js → chunk-4JZNDVZH.js} +37 -4
- package/dist/{chunk-54MB5TNF.js → chunk-4NKNXOA5.js} +2 -2
- package/dist/{chunk-CSVYC6HH.js → chunk-4OHIVMHS.js} +1 -1
- package/dist/{chunk-UEWGUOXB.js → chunk-55LEDLDE.js} +499 -27
- 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-4YNGDNDI.js → chunk-7M3DNYMR.js} +4 -4
- package/dist/{chunk-H24OVCAN.js → chunk-AJOZXJLJ.js} +1 -1
- package/dist/{chunk-ABCDEJUD.js → chunk-BBOD5TVX.js} +1 -1
- 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-VTZ4QOBS.js → chunk-CQX2WDI5.js} +1 -1
- package/dist/{chunk-BBVMIH76.js → chunk-CU2XXD5I.js} +8 -8
- package/dist/{chunk-5K3CCPNX.js → chunk-CXXGHL7T.js} +137 -92
- package/dist/{chunk-7HZFWAIR.js → chunk-DH6N5G4T.js} +1 -1
- package/dist/{chunk-GUDCQBRY.js → chunk-DU4ZN7VF.js} +1 -1
- package/dist/{chunk-PS4UUDIG.js → chunk-DUDPJVAC.js} +5 -7
- package/dist/{chunk-Q3MIJPXM.js → chunk-EAVACBVO.js} +2 -2
- package/dist/{chunk-6EBG7VWN.js → chunk-ENL5P2CU.js} +2 -2
- package/dist/{chunk-HIOFKHTO.js → chunk-EP3OKNTW.js} +3 -3
- package/dist/{chunk-LPG22IL5.js → chunk-EP523LJD.js} +2 -2
- 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-73JE5PVU.js → chunk-GQNG4MKL.js} +7 -7
- package/dist/chunk-GUMRIUI5.js +63 -0
- package/dist/{chunk-34O6PRWE.js → chunk-GVGISFMN.js} +4 -6
- package/dist/{chunk-QVVV6DHI.js → chunk-HSJKFTKP.js} +2 -2
- package/dist/{chunk-UOCQQHZT.js → chunk-IBWVMMLN.js} +43 -14
- package/dist/{chunk-HO4C7QMH.js → chunk-ITJMONDK.js} +1 -1
- package/dist/{chunk-OYBQKDV5.js → chunk-JAFHOB5P.js} +1 -1
- package/dist/{chunk-STVJLWSA.js → chunk-K6WORHFF.js} +4 -4
- package/dist/{chunk-SPMZRVXK.js → chunk-LCZRXRB7.js} +2 -2
- package/dist/{chunk-XNWXVGEA.js → chunk-LD6WE7DK.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-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-2JAEWE7P.js → chunk-NTALKXBR.js} +6 -6
- package/dist/{chunk-CLIW2CES.js → chunk-NW4AUWIT.js} +8 -10
- 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-5LJQSXUG.js → chunk-P3RKVFBX.js} +3 -3
- package/dist/{chunk-DEHYRM3I.js → chunk-PB5TRWLG.js} +1 -1
- package/dist/{chunk-NX4WEVG6.js → chunk-Q53ZYTIU.js} +12 -8
- package/dist/{chunk-5PB6BRLA.js → chunk-QWOQHCRO.js} +1 -1
- package/dist/{chunk-CYCRC2KN.js → chunk-RGKFUMLQ.js} +30 -11
- 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-FCO2K73K.js → chunk-T62RXVA4.js} +2 -2
- 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-4ITOWLHX.js → chunk-UEJTDPRA.js} +4 -6
- package/dist/{chunk-POU4ZLBM.js → chunk-UKCSMGNM.js} +2 -2
- package/dist/{chunk-IG5XFUYJ.js → chunk-VA42PIIY.js} +25 -7
- package/dist/{chunk-DMFM77DV.js → chunk-WZDI6UJ6.js} +1 -1
- package/dist/{chunk-762FPANW.js → chunk-XFBKSNNI.js} +1 -1
- package/dist/{chunk-6LKDJ5WX.js → chunk-XOVQ43JR.js} +52 -10
- package/dist/{chunk-YWCPAQBH.js → chunk-Y3JNBCZI.js} +16 -14
- 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-7654EZEJ.js} +2 -2
- package/dist/{cto-delegation-gate-7SQNLKN7.js → cto-delegation-gate-43UJFGMT.js} +12 -14
- package/dist/{daemon-auth-6XMF4JG5.js → daemon-auth-VXM7MOF4.js} +3 -3
- package/dist/{daemon-orchestration-7YUD2H64.js → daemon-orchestration-NB5HYPXS.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-KHNNQGSZ.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-ATQQNA7A.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 +31 -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 +97 -57
- 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/{notifications-WWROKWFT.js → notifications-OXEFBG2D.js} +10 -11
- package/dist/{orchestration-phase-SBCILK4O.js → orchestration-phase-365P32CD.js} +3 -3
- package/dist/{orchestrator-V3EMR3AU.js → orchestrator-6ULAKZQP.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-5X2SSRXX.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-42JIV5KF.js} +11 -12
- package/dist/setup-wizard-MAPYQDKT.js +12 -0
- package/dist/{shard-manager-CIDCCPJ4.js → shard-manager-3MDFLDOZ.js} +3 -3
- package/dist/{task-enforcement-YMGIERU4.js → task-enforcement-V2CQEPXS.js} +10 -11
- package/dist/{task-scope-RMJLXJ7S.js → task-scope-EY3G5623.js} +10 -11
- package/dist/{tasks-crud-ZRXPR3UB.js → tasks-crud-FPWY4RZ2.js} +10 -11
- package/dist/{tasks-review-NQUJR52I.js → tasks-review-XDSW3WRG.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-FQ2F5WA3.js} +10 -11
- package/dist/{worker-gate-H43H32OF.js → worker-gate-WM2RGEZE.js} +3 -3
- package/dist/{workflow-engine-EPWKDGHR.js → workflow-engine-6QPTYDQI.js} +2 -2
- package/package.json +1 -1
- package/release-notes.json +104 -100
- 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-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-VEGDNUBO.js → chunk-T7SJCDG3.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-MQV4UKTS.js
DELETED
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
getClient,
|
|
3
|
-
init_database
|
|
4
|
-
} from "./chunk-UEWGUOXB.js";
|
|
5
|
-
import {
|
|
6
|
-
EXE_AI_DIR,
|
|
7
|
-
init_config
|
|
8
|
-
} from "./chunk-IG5XFUYJ.js";
|
|
9
|
-
|
|
10
|
-
// src/lib/identity.ts
|
|
11
|
-
init_config();
|
|
12
|
-
init_database();
|
|
13
|
-
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
|
|
14
|
-
import { readdirSync } from "fs";
|
|
15
|
-
import path from "path";
|
|
16
|
-
import { createHash } from "crypto";
|
|
17
|
-
var IDENTITY_DIR = path.join(EXE_AI_DIR, "identity");
|
|
18
|
-
function ensureDir() {
|
|
19
|
-
if (!existsSync(IDENTITY_DIR)) {
|
|
20
|
-
mkdirSync(IDENTITY_DIR, { recursive: true });
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
function identityPath(agentId) {
|
|
24
|
-
return path.join(IDENTITY_DIR, `${agentId}.md`);
|
|
25
|
-
}
|
|
26
|
-
function sanitizeIdentityBody(body) {
|
|
27
|
-
return body.replace(/<!--[\s\S]*?-->/g, "").trim();
|
|
28
|
-
}
|
|
29
|
-
function parseFrontmatter(raw) {
|
|
30
|
-
const match = raw.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);
|
|
31
|
-
if (!match) {
|
|
32
|
-
return {
|
|
33
|
-
frontmatter: {
|
|
34
|
-
role: "unknown",
|
|
35
|
-
title: "Unknown",
|
|
36
|
-
agent_id: "unknown",
|
|
37
|
-
org_level: "specialist",
|
|
38
|
-
created_by: "system",
|
|
39
|
-
updated_at: (/* @__PURE__ */ new Date()).toISOString()
|
|
40
|
-
},
|
|
41
|
-
body: sanitizeIdentityBody(raw)
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
const yamlStr = match[1];
|
|
45
|
-
const body = sanitizeIdentityBody(match[2]);
|
|
46
|
-
const fm = {};
|
|
47
|
-
for (const line of yamlStr.split("\n")) {
|
|
48
|
-
const kv = line.match(/^(\w+):\s*(.+)$/);
|
|
49
|
-
if (kv) fm[kv[1]] = kv[2].trim();
|
|
50
|
-
}
|
|
51
|
-
return {
|
|
52
|
-
frontmatter: {
|
|
53
|
-
role: fm.role ?? "unknown",
|
|
54
|
-
title: fm.title ?? "Unknown",
|
|
55
|
-
agent_id: fm.agent_id ?? "unknown",
|
|
56
|
-
org_level: fm.org_level ?? "specialist",
|
|
57
|
-
created_by: fm.created_by ?? "system",
|
|
58
|
-
updated_at: fm.updated_at ?? (/* @__PURE__ */ new Date()).toISOString()
|
|
59
|
-
},
|
|
60
|
-
body
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
function contentHash(content) {
|
|
64
|
-
return createHash("sha256").update(content).digest("hex").slice(0, 16);
|
|
65
|
-
}
|
|
66
|
-
function getIdentity(agentId) {
|
|
67
|
-
const filePath = identityPath(agentId);
|
|
68
|
-
if (!existsSync(filePath)) return null;
|
|
69
|
-
const raw = readFileSync(filePath, "utf-8");
|
|
70
|
-
const { frontmatter, body } = parseFrontmatter(raw);
|
|
71
|
-
return {
|
|
72
|
-
agentId,
|
|
73
|
-
frontmatter,
|
|
74
|
-
body,
|
|
75
|
-
raw,
|
|
76
|
-
contentHash: contentHash(raw)
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
async function updateIdentity(agentId, content, updatedBy) {
|
|
80
|
-
ensureDir();
|
|
81
|
-
const filePath = identityPath(agentId);
|
|
82
|
-
const hash = contentHash(content);
|
|
83
|
-
writeFileSync(filePath, content, "utf-8");
|
|
84
|
-
try {
|
|
85
|
-
const client = getClient();
|
|
86
|
-
await client.execute({
|
|
87
|
-
sql: `INSERT INTO identity (agent_id, content_hash, updated_at, updated_by)
|
|
88
|
-
VALUES (?, ?, ?, ?)
|
|
89
|
-
ON CONFLICT(agent_id) DO UPDATE SET
|
|
90
|
-
content_hash = excluded.content_hash,
|
|
91
|
-
updated_at = excluded.updated_at,
|
|
92
|
-
updated_by = excluded.updated_by`,
|
|
93
|
-
args: [agentId, hash, (/* @__PURE__ */ new Date()).toISOString(), updatedBy]
|
|
94
|
-
});
|
|
95
|
-
} catch {
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
function listIdentities() {
|
|
99
|
-
ensureDir();
|
|
100
|
-
const files = readdirSync(IDENTITY_DIR).filter((f) => f.endsWith(".md"));
|
|
101
|
-
const results = [];
|
|
102
|
-
for (const file of files) {
|
|
103
|
-
const agentId = file.replace(".md", "");
|
|
104
|
-
const identity = getIdentity(agentId);
|
|
105
|
-
if (!identity) continue;
|
|
106
|
-
const lines = identity.body.split("\n").filter((l) => l.trim() && !l.startsWith("#"));
|
|
107
|
-
const summary = lines[0]?.trim().slice(0, 120) ?? identity.frontmatter.title;
|
|
108
|
-
results.push({
|
|
109
|
-
agentId,
|
|
110
|
-
// User-facing/team-facing title only. `frontmatter.role` is internal
|
|
111
|
-
// routing metadata and must not leak as an external title.
|
|
112
|
-
title: identity.frontmatter.title,
|
|
113
|
-
summary
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
return results;
|
|
117
|
-
}
|
|
118
|
-
function getIdentityInjection(agentId) {
|
|
119
|
-
const own = getIdentity(agentId);
|
|
120
|
-
const all = listIdentities();
|
|
121
|
-
const parts = [];
|
|
122
|
-
if (own) {
|
|
123
|
-
parts.push(`## Your Identity (exe.md)
|
|
124
|
-
These define WHO YOU ARE. Non-negotiable. Permanent.
|
|
125
|
-
|
|
126
|
-
${own.body}`);
|
|
127
|
-
}
|
|
128
|
-
const teamLines = all.filter((a) => a.agentId !== agentId).map((a) => `- ${a.agentId} (${a.title}): ${a.summary}`);
|
|
129
|
-
if (teamLines.length > 0) {
|
|
130
|
-
parts.push(`## Team Identities
|
|
131
|
-
${teamLines.join("\n")}`);
|
|
132
|
-
}
|
|
133
|
-
return parts.join("\n\n");
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
export {
|
|
137
|
-
identityPath,
|
|
138
|
-
getIdentity,
|
|
139
|
-
updateIdentity,
|
|
140
|
-
listIdentities,
|
|
141
|
-
getIdentityInjection
|
|
142
|
-
};
|
package/dist/chunk-X2IMCCM5.js
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
__esm
|
|
3
|
-
} from "./chunk-KFQGP6VL.js";
|
|
4
|
-
|
|
5
|
-
// src/lib/secure-files.ts
|
|
6
|
-
import { chmodSync, existsSync, mkdirSync } from "fs";
|
|
7
|
-
import { chmod, mkdir } from "fs/promises";
|
|
8
|
-
async function ensurePrivateDir(dirPath) {
|
|
9
|
-
await mkdir(dirPath, { recursive: true, mode: PRIVATE_DIR_MODE });
|
|
10
|
-
try {
|
|
11
|
-
await chmod(dirPath, PRIVATE_DIR_MODE);
|
|
12
|
-
} catch {
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
function ensurePrivateDirSync(dirPath) {
|
|
16
|
-
mkdirSync(dirPath, { recursive: true, mode: PRIVATE_DIR_MODE });
|
|
17
|
-
try {
|
|
18
|
-
chmodSync(dirPath, PRIVATE_DIR_MODE);
|
|
19
|
-
} catch {
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
async function enforcePrivateFile(filePath) {
|
|
23
|
-
try {
|
|
24
|
-
await chmod(filePath, PRIVATE_FILE_MODE);
|
|
25
|
-
} catch {
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
function enforcePrivateFileSync(filePath) {
|
|
29
|
-
try {
|
|
30
|
-
if (existsSync(filePath)) chmodSync(filePath, PRIVATE_FILE_MODE);
|
|
31
|
-
} catch {
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
var PRIVATE_DIR_MODE, PRIVATE_FILE_MODE;
|
|
35
|
-
var init_secure_files = __esm({
|
|
36
|
-
"src/lib/secure-files.ts"() {
|
|
37
|
-
"use strict";
|
|
38
|
-
PRIVATE_DIR_MODE = 448;
|
|
39
|
-
PRIVATE_FILE_MODE = 384;
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
export {
|
|
44
|
-
ensurePrivateDir,
|
|
45
|
-
ensurePrivateDirSync,
|
|
46
|
-
enforcePrivateFile,
|
|
47
|
-
enforcePrivateFileSync,
|
|
48
|
-
init_secure_files
|
|
49
|
-
};
|
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
|