@askexenow/exe-os 0.9.145 → 0.9.147
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-HUDSZRUG.js → active-agent-KMQCNXXD.js} +6 -6
- package/dist/{active-agent-GJOJUEMF.js → active-agent-NCZCDDZ2.js} +6 -6
- package/dist/{agent-context-HH7TL5ZP.js → agent-context-AZTTMUHP.js} +1 -1
- package/dist/agent-heartbeat-I5UPGXAU.js +60 -0
- package/dist/{agent-loop-OCJFYO72.js → agent-loop-NUIWAL3Z.js} +1 -1
- package/dist/{agentic-ontology-5PGUVMDP.js → agentic-ontology-SQR74CO7.js} +2 -2
- package/dist/{asana-BSDR6NW4.js → asana-MRQ2OQMJ.js} +1 -1
- package/dist/assets/wezterm.lua +68 -0
- package/dist/{backfill-metadata-ZDJ5B37R.js → backfill-metadata-KMDWLDXU.js} +7 -7
- package/dist/{background-jobs-4N4JSZVZ.js → background-jobs-IUB22CRF.js} +4 -4
- package/dist/{bash-X54PZMOG.js → bash-HOHKSOU3.js} +1 -1
- package/dist/{behaviors-TXLHEM5J.js → behaviors-4U2N5L4E.js} +6 -6
- package/dist/bin/age-ontology-load.js +4 -4
- package/dist/bin/agentic-ontology-backfill.js +9 -9
- package/dist/bin/agentic-reflection-backfill.js +10 -10
- package/dist/bin/agentic-semantic-label.js +9 -9
- package/dist/bin/backfill-conversations.js +9 -9
- package/dist/bin/backfill-responses.js +9 -9
- package/dist/bin/backfill-vectors.js +12 -14
- package/dist/bin/bulk-sync-postgres.js +10 -10
- package/dist/bin/cc-doctor.js +5 -5
- package/dist/bin/cleanup-stale-review-tasks.js +12 -11
- package/dist/bin/cli.js +19 -19
- package/dist/bin/customer-readiness.js +47 -0
- package/dist/bin/exe-agent-config.js +6 -6
- package/dist/bin/exe-agent.js +8 -8
- package/dist/bin/exe-assign.js +11 -11
- package/dist/bin/exe-boot.js +39 -32
- package/dist/bin/exe-call.js +9 -11
- package/dist/bin/exe-cloud.js +10 -12
- package/dist/bin/exe-dispatch.js +12 -11
- package/dist/bin/exe-doctor.js +2 -2
- package/dist/bin/exe-export-behaviors.js +10 -10
- package/dist/bin/exe-forget.js +9 -9
- package/dist/bin/exe-gateway.js +18 -18
- package/dist/bin/exe-healthcheck.js +5 -5
- package/dist/bin/exe-heartbeat.js +19 -14
- package/dist/bin/exe-kill.js +9 -9
- package/dist/bin/exe-launch-agent.js +16 -18
- package/dist/bin/exe-new-employee.js +11 -11
- package/dist/bin/exe-pending-messages.js +13 -12
- package/dist/bin/exe-pending-notifications.js +12 -11
- package/dist/bin/exe-pending-reviews.js +20 -13
- package/dist/bin/exe-rename.js +9 -11
- package/dist/bin/exe-review.js +14 -13
- package/dist/bin/exe-search.js +8 -10
- package/dist/bin/exe-session-cleanup.js +19 -19
- package/dist/bin/exe-settings.js +11 -13
- package/dist/bin/exe-start-codex.js +15 -15
- package/dist/bin/exe-start-opencode.js +11 -11
- package/dist/bin/exe-status.js +13 -12
- package/dist/bin/exe-support.js +5 -5
- package/dist/bin/exe-team.js +6 -6
- package/dist/bin/git-sweep.js +12 -11
- package/dist/bin/graph-backfill.js +10 -10
- package/dist/bin/graph-export.js +8 -8
- package/dist/bin/graph-layer-benchmark.js +1 -1
- package/dist/bin/install.js +38 -12
- package/dist/bin/intercom-check.js +14 -8
- package/dist/bin/list-providers.js +1 -1
- package/dist/bin/postgres-agentic-reflection-backfill.js +6 -6
- package/dist/bin/postgres-agentic-semantic-backfill.js +5 -5
- package/dist/bin/pre-publish.js +2 -2
- package/dist/bin/registry-proxy.js +1 -1
- package/dist/bin/scan-tasks.js +48 -49
- package/dist/bin/setup.js +6 -5
- package/dist/bin/shard-migrate.js +8 -8
- package/dist/bin/stack-update.js +66 -10
- package/dist/bin/update.js +1 -1
- package/dist/{branding-52J2ILJX.js → branding-EHDA3CCK.js} +4 -6
- package/dist/{capacity-monitor-HWN2JX5W.js → capacity-monitor-Q5M5SVRC.js} +13 -12
- package/dist/{catchup-brief-UERCIVM5.js → catchup-brief-IPNSW7RQ.js} +14 -13
- package/dist/{chunk-GK5VMHSN.js → chunk-26UVGP3I.js} +1 -1
- package/dist/{chunk-CDDRSIGK.js → chunk-2BPO7VQF.js} +80 -70
- package/dist/{chunk-7PTII6F4.js → chunk-2OATM2JZ.js} +1 -1
- package/dist/{chunk-AJ2XDY27.js → chunk-3FIWKONP.js} +10 -12
- package/dist/{chunk-53VUIKOE.js → chunk-3MLGUSKS.js} +1 -1
- package/dist/{chunk-OYCQ6PFC.js → chunk-4EINMZNO.js} +6 -6
- package/dist/{chunk-JUITBJ7J.js → chunk-4GLEFA2X.js} +1 -1
- package/dist/{chunk-BY4OTURZ.js → chunk-4MN44ORL.js} +1 -1
- package/dist/{chunk-MUVPQCQA.js → chunk-6HFZ2KUC.js} +1 -3
- package/dist/{chunk-F7JVVLGH.js → chunk-6YUACQQA.js} +2 -4
- package/dist/{chunk-UVH6FA5E.js → chunk-7B5DQGXG.js} +1 -1
- package/dist/{chunk-XEA6DSLR.js → chunk-AERGE6GC.js} +4 -6
- package/dist/{chunk-NQAZ2CP7.js → chunk-AGFWOII2.js} +11 -11
- package/dist/{chunk-RWJY7KMP.js → chunk-ARGBV4PP.js} +46 -13
- package/dist/{chunk-VRD452MQ.js → chunk-B4HAUSVQ.js} +2 -2
- package/dist/{chunk-VX4X2O6J.js → chunk-CGQ5PWS3.js} +6 -6
- package/dist/{chunk-RNN4MZDN.js → chunk-DBXKWFTK.js} +3 -3
- package/dist/{chunk-Y2VVTK2E.js → chunk-DTLASDQM.js} +1 -1
- package/dist/{chunk-K3PSCQLK.js → chunk-DW6P7UVY.js} +4 -6
- package/dist/{chunk-B6Q6WAD7.js → chunk-EHNSK2Y4.js} +1 -1
- package/dist/{chunk-7PEYIW53.js → chunk-EHXOWGQG.js} +2 -2
- package/dist/{chunk-6BUUY7FG.js → chunk-EOO32RJZ.js} +2 -4
- package/dist/{chunk-MFGARIVE.js → chunk-EYQIEK5M.js} +2 -4
- package/dist/{chunk-NT6R4ATM.js → chunk-FG4Z2XFU.js} +1 -1
- package/dist/{chunk-32LFUJVG.js → chunk-FNMNKYVH.js} +221 -110
- package/dist/{chunk-CWPE6QVM.js → chunk-GNHN5HRQ.js} +2 -4
- package/dist/{chunk-WLEVAIL5.js → chunk-GP6G6EQI.js} +1 -1
- package/dist/{chunk-KLRP6ZG3.js → chunk-HHMHL4FB.js} +251 -96
- package/dist/{chunk-O7YD7JYE.js → chunk-I7AW4237.js} +18 -4
- package/dist/{chunk-TFZZL3QF.js → chunk-ICKEGWWP.js} +2 -4
- package/dist/{chunk-SR6D65DA.js → chunk-IFACD7E6.js} +3 -3
- package/dist/{chunk-I4WAKJ6W.js → chunk-J4RAXKTC.js} +3 -3
- package/dist/{chunk-65UQ7H5U.js → chunk-JF3Q5YKI.js} +4 -6
- package/dist/{chunk-RWURKLS3.js → chunk-JH7Z2AZ7.js} +1 -1
- package/dist/{chunk-5WTYETQO.js → chunk-K4KAPZC7.js} +4 -8
- package/dist/{chunk-G3VR3MJI.js → chunk-KIUU4PNX.js} +4 -8
- package/dist/{chunk-4F56OUR7.js → chunk-LC53LVOT.js} +2 -2
- package/dist/{chunk-W7NQE65M.js → chunk-LJML7HT2.js} +1 -1
- package/dist/{chunk-V4O2APMI.js → chunk-LL5EY6OQ.js} +1 -1
- package/dist/{chunk-DCJ42FEN.js → chunk-LWJ4AMMY.js} +2 -4
- package/dist/{chunk-GCMT6RWI.js → chunk-LYH5HE24.js} +3 -14
- package/dist/{chunk-63UVIM7S.js → chunk-MBA4NNTS.js} +2 -4
- package/dist/{chunk-7KR5PV4P.js → chunk-MKPSMRVX.js} +1 -1
- package/dist/{chunk-C4EVFN7J.js → chunk-MKUVEDUE.js} +2 -2
- package/dist/chunk-MLKGABMK.js +9 -0
- package/dist/chunk-MLXJ5EZG.js +90 -0
- package/dist/{chunk-BXCJOACQ.js → chunk-NFHFNPTN.js} +3 -5
- package/dist/{chunk-2R3N4DQY.js → chunk-NJKERRSG.js} +3 -3
- package/dist/{chunk-I5VJNTDL.js → chunk-NNT2ZNMC.js} +5 -7
- package/dist/{chunk-O7CTVDC3.js → chunk-ODEGQCWW.js} +8 -8
- package/dist/{chunk-H4YONWQX.js → chunk-ONMRBKAX.js} +229 -108
- package/dist/{chunk-NE6RPW5C.js → chunk-PMWDO5FR.js} +1 -1
- package/dist/{chunk-IPSFAUK5.js → chunk-QB66MH2V.js} +4 -4
- package/dist/{chunk-XAHIVBTU.js → chunk-QHQJ7DLL.js} +6 -6
- package/dist/{chunk-NA3MXUU6.js → chunk-TH6HTK2L.js} +17 -15
- package/dist/{chunk-H4KUTL2T.js → chunk-TKEDF7KV.js} +1 -1
- package/dist/{chunk-KHV55ME4.js → chunk-TOWAZ5IV.js} +95 -118
- package/dist/{chunk-IBVB2NGY.js → chunk-TOXHEZN5.js} +47 -4
- package/dist/{chunk-H6OEU54G.js → chunk-UJMDHPIN.js} +91 -39
- package/dist/{chunk-UWBU44UP.js → chunk-UPL5FEZY.js} +1 -1
- package/dist/{chunk-ER3UJ2VL.js → chunk-UPMKSFBU.js} +2 -2
- package/dist/{chunk-X7DJ2QZW.js → chunk-V4MKR32F.js} +4 -6
- package/dist/{chunk-HV75RBMK.js → chunk-VB23RNNI.js} +1 -1
- package/dist/{chunk-56T5TMNK.js → chunk-VK2AWQ6D.js} +2 -2
- package/dist/{chunk-UXDQ4ERA.js → chunk-VNTDQUOG.js} +21 -18
- package/dist/{chunk-KQTGSD23.js → chunk-VYVESELG.js} +13 -9
- package/dist/{chunk-S465RWY7.js → chunk-W6SKR3HZ.js} +3 -5
- package/dist/{chunk-CQCURHDV.js → chunk-X2XE65WV.js} +12 -10
- package/dist/{chunk-XQ2ZBOAD.js → chunk-XK7VZFCC.js} +22 -9
- package/dist/{chunk-5F3EXHT7.js → chunk-XMRDT4PB.js} +2 -4
- package/dist/{chunk-MPXPPKJ4.js → chunk-XWQKCCCO.js} +3 -3
- package/dist/{chunk-7APRWURX.js → chunk-Y6TS42WD.js} +10 -12
- package/dist/{chunk-WTJS6PCC.js → chunk-YOG7TWMO.js} +1 -1
- package/dist/{chunk-QSSABSCM.js → chunk-YPSN64BU.js} +6 -6
- package/dist/{chunk-WJW564IP.js → chunk-ZBA74MMX.js} +2 -2
- package/dist/{chunk-VXQDZH5T.js → chunk-ZMJHXDZR.js} +3 -3
- package/dist/{chunk-BHV7PX5V.js → chunk-ZUAXTH6Z.js} +2 -2
- package/dist/{chunk-K6MMN6AW.js → chunk-ZZLTJXKR.js} +3 -5
- package/dist/{code-context-index-SRTAWCZQ.js → code-context-index-I5A7I4JQ.js} +7 -7
- package/dist/{content-extractor-H4IPL533.js → content-extractor-M7ISRONU.js} +1 -1
- package/dist/{conversation-entity-extractor-IZ3ECP4A.js → conversation-entity-extractor-EYSI4DKM.js} +3 -3
- package/dist/{conversation-wiki-populator-K4BQXHHO.js → conversation-wiki-populator-RSJ44BRO.js} +2 -2
- package/dist/{core-memory-JZ34WT5R.js → core-memory-C3JLISAU.js} +1 -1
- package/dist/{crdt-sync-4TOVD4QN.js → crdt-sync-XMC6LT2Q.js} +2 -2
- package/dist/{crm-bridge-27QVOWPI.js → crm-bridge-4QZRMOF7.js} +1 -1
- package/dist/{crm-webhook-77XHBWL7.js → crm-webhook-QMHD5YYQ.js} +3 -3
- package/dist/{cto-delegation-gate-AWENA4VT.js → cto-delegation-gate-BTZWAA4E.js} +11 -10
- package/dist/{daemon-auth-Z7O3LO23.js → daemon-auth-F47P6HTC.js} +4 -4
- package/dist/{daemon-orchestration-BG4NPWOK.js → daemon-orchestration-HFODCB52.js} +14 -13
- package/dist/{daemon-protocol-N7MOJ4U3.js → daemon-protocol-XW2OLNBS.js} +1 -1
- package/dist/{db-backup-E34JMBZD.js → db-backup-W56YOLMC.js} +4 -4
- package/dist/{devtools-ZL5NCINM.js → devtools-5PEATRYE.js} +1 -1
- package/dist/{discord-QOFQKX6S.js → discord-LMZKIYWB.js} +1 -1
- package/dist/dispatch-ack-JYCKAWKZ.js +13 -0
- package/dist/{email-NY5HB4WA.js → email-UENAIKRN.js} +1 -1
- package/dist/{entity-boost-V6KSRGG4.js → entity-boost-LIBVNNXO.js} +2 -2
- package/dist/{exe-drift-YFWCC26O.js → exe-drift-SED6KQTZ.js} +6 -6
- package/dist/{exe-export-YRACBEUY.js → exe-export-ADSWDE5U.js} +9 -9
- package/dist/{exe-import-DY57L2OI.js → exe-import-WFLNGJZP.js} +9 -9
- package/dist/{exe-key-U2JJH4MO.js → exe-key-4L32R46F.js} +5 -7
- package/dist/{exe-org-45OTYZZJ.js → exe-org-OOO7KJVZ.js} +4 -4
- package/dist/{factory-2PB537KA.js → factory-CTFAGZUA.js} +1 -1
- package/dist/fast-db-init-HVAVS35N.js +7 -0
- package/dist/{file-edit-GSXUFUDC.js → file-edit-AZAJPCA3.js} +1 -1
- package/dist/{file-read-Z3F3PUCK.js → file-read-VACF23NC.js} +1 -1
- package/dist/{file-write-X77JXZ2C.js → file-write-B2RPT5U7.js} +1 -1
- package/dist/gateway/index.js +10 -10
- package/dist/{gateway-client-IPKKEYKY.js → gateway-client-5EUMMEZZ.js} +2 -2
- package/dist/{git-staleness-I662R7RL.js → git-staleness-BY4ZK6MW.js} +5 -5
- package/dist/{git-task-sweep-XWFCP2HA.js → git-task-sweep-RSRASAHB.js} +12 -11
- package/dist/{glob-2PWAXTZ2.js → glob-7PWH7WKL.js} +1 -1
- package/dist/{global-procedures-IEIJBCAH.js → global-procedures-EKYSVONR.js} +7 -7
- package/dist/graph-auto-extract-HWZ5GVXZ.js +161 -0
- package/dist/{graph-query-NCDYOT4Y.js → graph-query-SE6T5XC4.js} +1 -1
- package/dist/{graph-rag-2YLGRBW5.js → graph-rag-G3EG5Q6L.js} +3 -3
- package/dist/{grep-GTV6WAZ4.js → grep-HWIDXHRC.js} +1 -1
- package/dist/{hook-integrity-LLPJPAXW.js → hook-integrity-PR4BPZBT.js} +2 -2
- package/dist/hooks/bug-report-worker.js +13 -12
- package/dist/hooks/codex-stop-task-finalizer.js +16 -13
- package/dist/hooks/commit-complete.js +14 -13
- package/dist/hooks/error-recall.js +9 -12
- package/dist/hooks/exe-heartbeat-hook.js +6 -6
- package/dist/hooks/ingest-worker.js +9 -9
- package/dist/hooks/ingest.js +16 -19
- package/dist/hooks/instructions-loaded.js +7 -7
- package/dist/hooks/notification.js +12 -10
- package/dist/hooks/post-compact.js +13 -12
- package/dist/hooks/post-tool-combined.js +6 -6
- package/dist/hooks/pre-compact.js +18 -17
- package/dist/hooks/pre-tool-use.js +19 -20
- package/dist/hooks/prompt-submit.js +78 -39
- package/dist/hooks/session-end.js +22 -21
- package/dist/hooks/session-start.js +31 -25
- package/dist/hooks/stop.js +20 -22
- package/dist/hooks/subagent-stop.js +13 -12
- package/dist/hooks/summary-worker.js +21 -20
- package/dist/{hooks-UK2AYRCA.js → hooks-LDCFYHDF.js} +1 -1
- package/dist/{imessage-LINH4V4D.js → imessage-6UOZB5VN.js} +1 -1
- package/dist/index.js +19 -18
- package/dist/{installer-PB63JTTG.js → installer-RLKOACKG.js} +9 -9
- package/dist/{installer-SSR2OOLO.js → installer-W4NY3OBF.js} +13 -11
- package/dist/{installer-ZONYB3XK.js → installer-X5FEYJIA.js} +9 -9
- package/dist/{intercom-queue-MMZT2MA2.js → intercom-queue-K3DVKSPJ.js} +1 -1
- package/dist/{key-backup-status-4WKIQOAS.js → key-backup-status-ORNMJEEA.js} +4 -6
- package/dist/lib/agent-config.js +4 -4
- package/dist/lib/cloud-sync.js +8 -8
- package/dist/lib/cloudflare-dns.js +1 -1
- package/dist/lib/config.js +3 -5
- package/dist/lib/consolidation.js +8 -8
- package/dist/lib/crypto.js +1 -1
- package/dist/lib/database.js +5 -5
- package/dist/lib/db-daemon-client.js +5 -5
- package/dist/lib/db.js +5 -5
- package/dist/lib/device-registry.js +4 -6
- package/dist/lib/embedder.js +6 -6
- package/dist/lib/employee-templates.js +8 -8
- package/dist/lib/employees.js +7 -5
- package/dist/lib/error-detector.js +1 -1
- package/dist/lib/exe-daemon-client.js +5 -5
- package/dist/lib/exe-daemon.js +143 -52
- package/dist/lib/file-grep.js +1 -1
- package/dist/lib/hybrid-search.js +8 -8
- package/dist/lib/identity-templates.js +1 -1
- package/dist/lib/identity.js +5 -5
- package/dist/lib/keychain.js +1 -1
- package/dist/lib/license.js +4 -4
- package/dist/lib/messaging.js +12 -11
- package/dist/lib/post-tool-memory.js +3 -3
- package/dist/lib/registry-proxy.js +1 -1
- package/dist/lib/reminders.js +6 -6
- package/dist/lib/runtime-table.js +1 -1
- package/dist/lib/schedules.js +8 -8
- package/dist/lib/session-registry.js +1 -1
- package/dist/lib/session-wrappers.js +1 -1
- package/dist/lib/skill-learning.js +7 -7
- package/dist/lib/status-brief.js +1 -1
- package/dist/lib/store.js +7 -7
- package/dist/lib/task-router.js +6 -6
- package/dist/lib/tasks.js +14 -11
- package/dist/lib/tmux-routing.js +11 -10
- package/dist/lib/tmux-status.js +1 -1
- package/dist/lib/tmux-transport.js +1 -1
- package/dist/lib/token-spend.js +6 -6
- package/dist/lib/transport.js +1 -1
- package/dist/lib/ws-auth.js +1 -1
- package/dist/lib/ws-client.js +2 -2
- package/dist/license-gate-J5YN264E.js +14 -0
- package/dist/mcp/register-tools.js +63 -62
- package/dist/mcp/server.js +65 -64
- package/dist/mcp/tools/complete-reminder.js +7 -7
- package/dist/mcp/tools/create-reminder.js +7 -7
- package/dist/mcp/tools/create-task.js +15 -13
- package/dist/mcp/tools/deactivate-behavior.js +8 -8
- package/dist/mcp/tools/list-reminders.js +7 -7
- package/dist/mcp/tools/list-tasks.js +14 -14
- package/dist/mcp/tools/send-message.js +14 -13
- package/dist/mcp/tools/update-task.js +13 -12
- package/dist/{mcp-diagnostics-CWMVPHVC.js → mcp-diagnostics-TSBY62UQ.js} +1 -1
- package/dist/{mcp-disconnect-tracker-RM3GEERR.js → mcp-disconnect-tracker-MB23DRS6.js} +1 -1
- package/dist/{mcp-http-config-PDGSOYNQ.js → mcp-http-config-6YLW4PFG.js} +6 -6
- package/dist/{memory-cards-OLE6MGO7.js → memory-cards-UAQCO4QR.js} +5 -5
- package/dist/{memory-poisoning-defense-OOHJIXIX.js → memory-poisoning-defense-VWITZ4WO.js} +5 -7
- package/dist/{memory-queue-TGWXMENR.js → memory-queue-NYIGZNCG.js} +4 -4
- package/dist/memory-queue-client-YJOLYALV.js +15 -0
- package/dist/{memory-reflection-Z7CT6JLY.js → memory-reflection-JQC4ZSUD.js} +5 -5
- package/dist/{message-queue-client-TWIA2GIH.js → message-queue-client-NTLKYGVO.js} +1 -1
- package/dist/{notifications-SREXGSAQ.js → notifications-YDOKTVCH.js} +11 -10
- package/dist/{oauth-server-NSWGKLLA.js → oauth-server-TOWAZR4K.js} +1 -1
- package/dist/{orchestration-phase-WLQMEP4M.js → orchestration-phase-FXKZYK6R.js} +4 -4
- package/dist/{orchestrator-CHQURQSC.js → orchestrator-BZ2D6ZM6.js} +13 -12
- package/dist/{permission-presets-3XKJNM6N.js → permission-presets-E3DZK46K.js} +1 -1
- package/dist/{permissions-EZH3ULLD.js → permissions-6MCWUDCD.js} +1 -1
- package/dist/{pg-ssl-4ZNXKUNH.js → pg-ssl-7JXQFL4I.js} +1 -1
- package/dist/{plan-limits-7L75PB33.js → plan-limits-KUTODKG6.js} +7 -7
- package/dist/{preferences-K2GKUQSJ.js → preferences-ERXO6SMJ.js} +3 -3
- package/dist/{project-name-OBIDABHE.js → project-name-EWG5KAZP.js} +1 -1
- package/dist/{projection-worker-HSGE44JA.js → projection-worker-UY7R2EQJ.js} +85 -8
- package/dist/{push-notifications-EOTMKJ6B.js → push-notifications-KDYFOJRI.js} +4 -4
- package/dist/{reranker-ME4CK2ZQ.js → reranker-OMADCS3D.js} +4 -4
- package/dist/{review-gate-M3U2YAW6.js → review-gate-IUNS6GQU.js} +1 -1
- package/dist/{review-polling-DQCN4TNM.js → review-polling-DORNZ2KI.js} +12 -11
- package/dist/runtime/index.js +14 -13
- package/dist/{self-query-router-TRPHL54X.js → self-query-router-37VB3PKQ.js} +1 -1
- package/dist/{session-events-ZZBFYL5Z.js → session-events-5WR5RVDK.js} +12 -12
- package/dist/{session-kill-telemetry-MUFET632.js → session-kill-telemetry-DHSQV2CI.js} +6 -6
- package/dist/{session-scope-QUUDZM2L.js → session-scope-D4Q62ZOZ.js} +13 -13
- package/dist/setup-wizard-QVNTI3T4.js +12 -0
- package/dist/{shard-manager-VYMJM7NR.js → shard-manager-SP4YL5JQ.js} +4 -4
- package/dist/{signal-C263RUND.js → signal-7UIRTYGZ.js} +1 -1
- package/dist/{slack-N7PL6QMX.js → slack-GCOYBZUK.js} +1 -1
- package/dist/{task-enforcement-WJ3S6JTL.js → task-enforcement-OYCQXBBC.js} +11 -10
- package/dist/{task-scanner-YHWRG4ZJ.js → task-scanner-QEM5CO2Y.js} +1 -1
- package/dist/{task-scope-V2CTRHG7.js → task-scope-WWRNU2LU.js} +11 -10
- package/dist/{tasks-crud-W2XPUGKK.js → tasks-crud-75AUVZPO.js} +13 -10
- package/dist/{tasks-review-BR2SBSYG.js → tasks-review-UMZN5ZPQ.js} +11 -10
- package/dist/{telegram-B54FFOXD.js → telegram-RGVD4LUY.js} +1 -1
- package/dist/{telemetry-7IQCPV4Q.js → telemetry-43X3GT3R.js} +1 -1
- package/dist/{token-budget-H2XSWO4D.js → token-budget-62TYDIMI.js} +5 -5
- package/dist/{tool-capability-index-5X2CCGIK.js → tool-capability-index-OBZXORBP.js} +2 -2
- package/dist/{tool-gates-SGFMDREY.js → tool-gates-3IC7DK4R.js} +1 -1
- package/dist/{tool-gates-3DNTD7G3.js → tool-gates-GXSYBVK4.js} +1 -1
- package/dist/{tool-registry-2VUAZXTW.js → tool-registry-5XN3FUYL.js} +1 -1
- package/dist/{tool-telemetry-NVPSPRYP.js → tool-telemetry-JL6NY3KP.js} +2 -2
- package/dist/tui/App.js +44 -43
- package/dist/{tui-data-QN4O565C.js → tui-data-C5I2YU4C.js} +11 -10
- package/dist/{update-check-ERUKV2G6.js → update-check-MKHO7H6B.js} +1 -1
- package/dist/{webhook-L5FGAUPJ.js → webhook-LCW7UP4L.js} +1 -1
- package/dist/{webhook-pipe-B7GJCJAI.js → webhook-pipe-PJOFVBD3.js} +1 -1
- package/dist/{whatsapp-7FK2PRWO.js → whatsapp-SILL4V64.js} +1 -1
- package/dist/{whatsapp-accounts-VIHRSLGB.js → whatsapp-accounts-BWRZUY23.js} +1 -1
- package/dist/{wiki-acl-R4IIHICT.js → wiki-acl-5EC5VNYG.js} +1 -1
- package/dist/{wiki-client-EUDJA7O2.js → wiki-client-MMVRPTPK.js} +1 -1
- package/dist/{worker-gate-3KDXLIJC.js → worker-gate-Q5Y6B5N7.js} +4 -4
- package/dist/{workflow-engine-GISKRYSO.js → workflow-engine-KAKVU7NC.js} +3 -3
- package/dist/{worktree-B3FHAHEM.js → worktree-OMPQEJH7.js} +1 -1
- package/package.json +2 -2
- package/release-notes.json +126 -126
- package/src/commands/exe/setup.md +1 -1
- package/dist/chunk-PNKVD2UK.js +0 -26
- package/dist/fast-db-init-67TQTHWT.js +0 -7
- package/dist/license-gate-JY2KFIKO.js +0 -14
- package/dist/memory-queue-client-RZP5F4EA.js +0 -15
- package/dist/setup-wizard-NXWCEK63.js +0 -12
- package/dist/{chunk-D5MPHVWH.js → chunk-524VLFFY.js} +0 -0
- package/dist/{chunk-HIQ5RDA7.js → chunk-A3A2E42I.js} +0 -0
- package/dist/{chunk-APRP5D27.js → chunk-H6ADW3YC.js} +0 -0
- package/dist/{chunk-AAVODJ4F.js → chunk-J2OPV5FE.js} +0 -0
- package/dist/{chunk-DBLBWWFS.js → chunk-S6DA6UKC.js} +3 -3
- /package/dist/{chunk-F3ULERRZ.js → chunk-TSCZMB3P.js} +0 -0
- /package/dist/{chunk-2HV2EQW2.js → chunk-WRU72I4S.js} +0 -0
package/dist/bin/graph-export.js
CHANGED
|
@@ -5,21 +5,21 @@ import {
|
|
|
5
5
|
} from "../chunk-46SQTBQW.js";
|
|
6
6
|
import {
|
|
7
7
|
fastDbInit
|
|
8
|
-
} from "../chunk-
|
|
8
|
+
} from "../chunk-7B5DQGXG.js";
|
|
9
9
|
import {
|
|
10
10
|
disposeStore
|
|
11
|
-
} from "../chunk-
|
|
12
|
-
import "../chunk-
|
|
11
|
+
} from "../chunk-Y6TS42WD.js";
|
|
12
|
+
import "../chunk-524VLFFY.js";
|
|
13
13
|
import "../chunk-MP2AFCGL.js";
|
|
14
14
|
import {
|
|
15
15
|
getClient
|
|
16
|
-
} from "../chunk-
|
|
17
|
-
import "../chunk-
|
|
16
|
+
} from "../chunk-TH6HTK2L.js";
|
|
17
|
+
import "../chunk-EOO32RJZ.js";
|
|
18
18
|
import "../chunk-FXU7JOXK.js";
|
|
19
19
|
import "../chunk-6D23UNXU.js";
|
|
20
|
-
import "../chunk-
|
|
21
|
-
import "../chunk-
|
|
22
|
-
import "../chunk-
|
|
20
|
+
import "../chunk-TOWAZ5IV.js";
|
|
21
|
+
import "../chunk-LYH5HE24.js";
|
|
22
|
+
import "../chunk-MLKGABMK.js";
|
|
23
23
|
|
|
24
24
|
// src/bin/graph-export.ts
|
|
25
25
|
import { writeFileSync, mkdirSync, existsSync } from "fs";
|
package/dist/bin/install.js
CHANGED
|
@@ -4,22 +4,23 @@ import {
|
|
|
4
4
|
resolvePackageRoot,
|
|
5
5
|
runInstaller,
|
|
6
6
|
setupGhostty,
|
|
7
|
-
setupTmux
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
import "../chunk-
|
|
7
|
+
setupTmux,
|
|
8
|
+
setupWezterm
|
|
9
|
+
} from "../chunk-TOXHEZN5.js";
|
|
10
|
+
import "../chunk-GNHN5HRQ.js";
|
|
11
|
+
import "../chunk-EHNSK2Y4.js";
|
|
11
12
|
import {
|
|
12
13
|
generateSessionWrappers
|
|
13
14
|
} from "../chunk-ZHMQDTGE.js";
|
|
14
15
|
import "../chunk-L3TB7CC3.js";
|
|
15
|
-
import "../chunk-
|
|
16
|
+
import "../chunk-DTLASDQM.js";
|
|
16
17
|
import "../chunk-HYZV25LY.js";
|
|
17
|
-
import "../chunk-
|
|
18
|
-
import "../chunk-
|
|
18
|
+
import "../chunk-TH6HTK2L.js";
|
|
19
|
+
import "../chunk-EOO32RJZ.js";
|
|
19
20
|
import "../chunk-FXU7JOXK.js";
|
|
20
|
-
import "../chunk-
|
|
21
|
-
import "../chunk-
|
|
22
|
-
import "../chunk-
|
|
21
|
+
import "../chunk-TOWAZ5IV.js";
|
|
22
|
+
import "../chunk-LYH5HE24.js";
|
|
23
|
+
import "../chunk-MLKGABMK.js";
|
|
23
24
|
|
|
24
25
|
// src/bin/install.ts
|
|
25
26
|
import { existsSync, readFileSync, writeFileSync, unlinkSync, readdirSync, openSync, closeSync, renameSync, constants, writeSync } from "fs";
|
|
@@ -220,8 +221,32 @@ function restartDaemon() {
|
|
|
220
221
|
} catch {
|
|
221
222
|
}
|
|
222
223
|
}
|
|
223
|
-
|
|
224
|
+
const DAEMON_PORT = 48739;
|
|
225
|
+
let daemonHealthy = false;
|
|
226
|
+
for (let attempt = 1; attempt <= 10; attempt++) {
|
|
227
|
+
try {
|
|
228
|
+
execSync("sleep 1");
|
|
229
|
+
} catch {
|
|
230
|
+
}
|
|
231
|
+
try {
|
|
232
|
+
const healthResp = execSync(
|
|
233
|
+
`curl -sf http://127.0.0.1:${DAEMON_PORT}/health 2>/dev/null`,
|
|
234
|
+
{ encoding: "utf8", timeout: 3e3 }
|
|
235
|
+
);
|
|
236
|
+
if (healthResp.includes("ok") || healthResp.includes("healthy")) {
|
|
237
|
+
daemonHealthy = true;
|
|
238
|
+
break;
|
|
239
|
+
}
|
|
240
|
+
} catch {
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
if (daemonHealthy) {
|
|
244
|
+
process.stderr.write(`exe-os: daemon restarted and healthy
|
|
224
245
|
`);
|
|
246
|
+
} else {
|
|
247
|
+
process.stderr.write(`exe-os: daemon spawned but health check did not pass (may still be starting)
|
|
248
|
+
`);
|
|
249
|
+
}
|
|
225
250
|
} catch (err) {
|
|
226
251
|
process.stderr.write(`exe-os: daemon respawn failed: ${err instanceof Error ? err.message : String(err)}
|
|
227
252
|
`);
|
|
@@ -246,6 +271,7 @@ if (args.includes("--commands-only")) {
|
|
|
246
271
|
await runInstaller();
|
|
247
272
|
setupTmux();
|
|
248
273
|
setupGhostty();
|
|
274
|
+
setupWezterm();
|
|
249
275
|
try {
|
|
250
276
|
const { normalizeRosterCase } = await import("../lib/employees.js");
|
|
251
277
|
const changed = await normalizeRosterCase();
|
|
@@ -271,7 +297,7 @@ if (args.includes("--commands-only")) {
|
|
|
271
297
|
}
|
|
272
298
|
try {
|
|
273
299
|
execSync("which codex", { encoding: "utf8", timeout: 5e3 });
|
|
274
|
-
const { runCodexInstaller } = await import("../installer-
|
|
300
|
+
const { runCodexInstaller } = await import("../installer-RLKOACKG.js");
|
|
275
301
|
await runCodexInstaller();
|
|
276
302
|
} catch {
|
|
277
303
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
fastDbInit
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-
|
|
4
|
+
} from "../chunk-7B5DQGXG.js";
|
|
5
|
+
import "../chunk-MLKGABMK.js";
|
|
6
6
|
|
|
7
7
|
// src/bin/intercom-check.ts
|
|
8
8
|
async function main() {
|
|
@@ -17,9 +17,8 @@ async function main() {
|
|
|
17
17
|
}
|
|
18
18
|
if (isCoordinator) {
|
|
19
19
|
try {
|
|
20
|
-
const { listPendingReviews, cleanupOrphanedReviews, formatAge, isStale } = await import("../tasks-review-
|
|
20
|
+
const { listPendingReviews, cleanupOrphanedReviews, formatAge, isStale } = await import("../tasks-review-UMZN5ZPQ.js");
|
|
21
21
|
const { extractRootExe } = await import("../lib/tmux-routing.js");
|
|
22
|
-
await cleanupOrphanedReviews();
|
|
23
22
|
let sessionScope = process.env.EXE_SESSION ? extractRootExe(process.env.EXE_SESSION) ?? void 0 : void 0;
|
|
24
23
|
if (!sessionScope) {
|
|
25
24
|
try {
|
|
@@ -29,7 +28,14 @@ async function main() {
|
|
|
29
28
|
} catch {
|
|
30
29
|
}
|
|
31
30
|
}
|
|
32
|
-
|
|
31
|
+
await cleanupOrphanedReviews(sessionScope);
|
|
32
|
+
let reviewProject;
|
|
33
|
+
try {
|
|
34
|
+
const { getProjectName } = await import("../project-name-EWG5KAZP.js");
|
|
35
|
+
reviewProject = getProjectName() || void 0;
|
|
36
|
+
} catch {
|
|
37
|
+
}
|
|
38
|
+
const reviews = await listPendingReviews(10, sessionScope, reviewProject);
|
|
33
39
|
if (reviews.length > 0) {
|
|
34
40
|
process.stdout.write("[REVIEW NOTIFICATIONS]\n");
|
|
35
41
|
for (const r of reviews.slice(0, 10)) {
|
|
@@ -44,7 +50,7 @@ async function main() {
|
|
|
44
50
|
} else {
|
|
45
51
|
try {
|
|
46
52
|
const { scanFromDb } = await import("./scan-tasks.js");
|
|
47
|
-
const { getProjectName } = await import("../project-name-
|
|
53
|
+
const { getProjectName } = await import("../project-name-EWG5KAZP.js");
|
|
48
54
|
const tmuxSession = process.env.EXE_SESSION_NAME;
|
|
49
55
|
const projectName = getProjectName() || void 0;
|
|
50
56
|
const result = await scanFromDb(agent, tmuxSession, projectName);
|
|
@@ -90,7 +96,7 @@ async function main() {
|
|
|
90
96
|
}
|
|
91
97
|
if (!isCoordinator) {
|
|
92
98
|
try {
|
|
93
|
-
const { listBehaviors } = await import("../behaviors-
|
|
99
|
+
const { listBehaviors } = await import("../behaviors-4U2N5L4E.js");
|
|
94
100
|
const sessionStart = process.env.EXE_SESSION_START_ISO ?? "";
|
|
95
101
|
if (sessionStart) {
|
|
96
102
|
const behaviors = await listBehaviors(agent);
|
|
@@ -109,7 +115,7 @@ async function main() {
|
|
|
109
115
|
}
|
|
110
116
|
}
|
|
111
117
|
try {
|
|
112
|
-
const { readUnreadNotifications, markAsRead } = await import("../notifications-
|
|
118
|
+
const { readUnreadNotifications, markAsRead } = await import("../notifications-YDOKTVCH.js");
|
|
113
119
|
const { resolveExeSession } = await import("../lib/tmux-routing.js");
|
|
114
120
|
const sessionScope = resolveExeSession();
|
|
115
121
|
const notifications = await readUnreadNotifications(agent, sessionScope);
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
buildReflectionCheckpoint
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-
|
|
4
|
+
} from "../chunk-YOG7TWMO.js";
|
|
5
|
+
import "../chunk-H6ADW3YC.js";
|
|
6
6
|
import {
|
|
7
7
|
pgSslConfig
|
|
8
8
|
} from "../chunk-EQSQ4HBW.js";
|
|
9
9
|
import {
|
|
10
10
|
politeBatchPause,
|
|
11
11
|
startManagedJob
|
|
12
|
-
} from "../chunk-
|
|
13
|
-
import "../chunk-
|
|
14
|
-
import "../chunk-
|
|
15
|
-
import "../chunk-
|
|
12
|
+
} from "../chunk-6YUACQQA.js";
|
|
13
|
+
import "../chunk-TOWAZ5IV.js";
|
|
14
|
+
import "../chunk-LYH5HE24.js";
|
|
15
|
+
import "../chunk-MLKGABMK.js";
|
|
16
16
|
|
|
17
17
|
// src/bin/postgres-agentic-reflection-backfill.ts
|
|
18
18
|
import { Client } from "pg";
|
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
import {
|
|
3
3
|
inferSemanticLabel,
|
|
4
4
|
stableId
|
|
5
|
-
} from "../chunk-
|
|
5
|
+
} from "../chunk-H6ADW3YC.js";
|
|
6
6
|
import {
|
|
7
7
|
pgSslConfig
|
|
8
8
|
} from "../chunk-EQSQ4HBW.js";
|
|
9
9
|
import {
|
|
10
10
|
politeBatchPause,
|
|
11
11
|
startManagedJob
|
|
12
|
-
} from "../chunk-
|
|
13
|
-
import "../chunk-
|
|
14
|
-
import "../chunk-
|
|
15
|
-
import "../chunk-
|
|
12
|
+
} from "../chunk-6YUACQQA.js";
|
|
13
|
+
import "../chunk-TOWAZ5IV.js";
|
|
14
|
+
import "../chunk-LYH5HE24.js";
|
|
15
|
+
import "../chunk-MLKGABMK.js";
|
|
16
16
|
|
|
17
17
|
// src/bin/postgres-agentic-semantic-backfill.ts
|
|
18
18
|
import { Client } from "pg";
|
package/dist/bin/pre-publish.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
PLATFORM_PROCEDURES
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-
|
|
4
|
+
} from "../chunk-XWQKCCCO.js";
|
|
5
|
+
import "../chunk-MLKGABMK.js";
|
|
6
6
|
|
|
7
7
|
// src/bin/pre-publish.ts
|
|
8
8
|
import { readFileSync as readFileSync2 } from "fs";
|
package/dist/bin/scan-tasks.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
|
-
|
|
4
|
-
} from "../chunk-
|
|
3
|
+
queryTaskRows
|
|
4
|
+
} from "../chunk-ONMRBKAX.js";
|
|
5
5
|
import "../chunk-LOQCOHEW.js";
|
|
6
6
|
import "../chunk-TXSJ2L5O.js";
|
|
7
7
|
import "../chunk-64WZEXXA.js";
|
|
@@ -9,26 +9,27 @@ import "../chunk-3TXOH3SJ.js";
|
|
|
9
9
|
import "../chunk-RLCZBSUB.js";
|
|
10
10
|
import "../chunk-GZIAQYGI.js";
|
|
11
11
|
import "../chunk-ZQX6UOP6.js";
|
|
12
|
-
import "../chunk-
|
|
12
|
+
import "../chunk-KIUU4PNX.js";
|
|
13
13
|
import "../chunk-NGP6LSV2.js";
|
|
14
|
-
import "../chunk-
|
|
14
|
+
import "../chunk-AERGE6GC.js";
|
|
15
|
+
import "../chunk-OPU3NYOO.js";
|
|
15
16
|
import {
|
|
16
17
|
getSessionRuntime
|
|
17
18
|
} from "../chunk-CVYC6DUW.js";
|
|
18
19
|
import "../chunk-GJV3WDWM.js";
|
|
19
20
|
import "../chunk-MP2AFCGL.js";
|
|
20
|
-
import "../chunk-
|
|
21
|
+
import "../chunk-DTLASDQM.js";
|
|
21
22
|
import "../chunk-HYZV25LY.js";
|
|
22
|
-
import "../chunk-
|
|
23
|
-
import "../chunk-
|
|
23
|
+
import "../chunk-TH6HTK2L.js";
|
|
24
|
+
import "../chunk-EOO32RJZ.js";
|
|
24
25
|
import "../chunk-FXU7JOXK.js";
|
|
25
|
-
import "../chunk-
|
|
26
|
-
import "../chunk-
|
|
27
|
-
import "../chunk-
|
|
26
|
+
import "../chunk-NNT2ZNMC.js";
|
|
27
|
+
import "../chunk-TOWAZ5IV.js";
|
|
28
|
+
import "../chunk-LYH5HE24.js";
|
|
28
29
|
import {
|
|
29
30
|
isMainModule
|
|
30
31
|
} from "../chunk-6Y4B3QF6.js";
|
|
31
|
-
import "../chunk-
|
|
32
|
+
import "../chunk-MLKGABMK.js";
|
|
32
33
|
|
|
33
34
|
// src/bin/scan-tasks.ts
|
|
34
35
|
import { existsSync, readFileSync } from "fs";
|
|
@@ -71,48 +72,28 @@ function checkMcpHealth() {
|
|
|
71
72
|
}
|
|
72
73
|
}
|
|
73
74
|
async function scanFromDb(agentId, tmuxSession, projectName) {
|
|
74
|
-
const { fastDbInit } = await import("../fast-db-init-
|
|
75
|
-
let client;
|
|
75
|
+
const { fastDbInit } = await import("../fast-db-init-HVAVS35N.js");
|
|
76
76
|
try {
|
|
77
|
-
|
|
77
|
+
await fastDbInit();
|
|
78
78
|
} catch (err) {
|
|
79
79
|
process.stderr.write(`[scan-tasks] FATAL: ${err instanceof Error ? err.message : String(err)}
|
|
80
80
|
`);
|
|
81
81
|
return { open: [], inProgress: [], done: 0, total: 0 };
|
|
82
82
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
const { resolveExeSession } = await import("../lib/tmux-routing.js");
|
|
94
|
-
resolvedSession = resolveExeSession();
|
|
95
|
-
} catch {
|
|
96
|
-
}
|
|
97
|
-
const sessionFilter = resolvedSession ? " AND (session_scope IS NULL OR session_scope = ?)" : "";
|
|
98
|
-
const sessionArgs = resolvedSession ? [resolvedSession] : [];
|
|
99
|
-
const sql = resolvedProject ? `SELECT id, title, priority, status, assigned_to, reviewer, assigned_tmux, checkpoint, checkpoint_count FROM tasks
|
|
100
|
-
WHERE ((assigned_to = ? AND status IN ('open', 'in_progress', 'blocked', 'needs_review'))
|
|
101
|
-
OR (reviewer = ? AND status = 'needs_review'))
|
|
102
|
-
AND project_name = ?${sessionFilter}
|
|
103
|
-
ORDER BY CASE status WHEN 'in_progress' THEN 0 WHEN 'open' THEN 1 WHEN 'blocked' THEN 2 WHEN 'needs_review' THEN 3 ELSE 4 END,
|
|
104
|
-
priority ASC, created_at DESC` : `SELECT id, title, priority, status, assigned_to, reviewer, assigned_tmux, checkpoint, checkpoint_count FROM tasks
|
|
105
|
-
WHERE ((assigned_to = ? AND status IN ('open', 'in_progress', 'blocked', 'needs_review'))
|
|
106
|
-
OR (reviewer = ? AND status = 'needs_review'))
|
|
107
|
-
${sessionFilter ? "AND" + sessionFilter.slice(4) : ""}
|
|
108
|
-
ORDER BY CASE status WHEN 'in_progress' THEN 0 WHEN 'open' THEN 1 WHEN 'blocked' THEN 2 WHEN 'needs_review' THEN 3 ELSE 4 END,
|
|
109
|
-
priority ASC, created_at DESC`;
|
|
110
|
-
const args = resolvedProject ? [agentId, agentId, resolvedProject, ...sessionArgs] : [agentId, agentId, ...sessionArgs];
|
|
111
|
-
const result = await client.execute({ sql, args });
|
|
83
|
+
const rows = await queryTaskRows({
|
|
84
|
+
projectName: projectName === void 0 ? void 0 : projectName ?? null,
|
|
85
|
+
columns: "id, title, priority, status, assigned_to, reviewer, assigned_tmux, checkpoint, checkpoint_count",
|
|
86
|
+
limit: 1e3,
|
|
87
|
+
orderBy: "CASE status WHEN 'in_progress' THEN 0 WHEN 'open' THEN 1 WHEN 'blocked' THEN 2 WHEN 'needs_review' THEN 3 ELSE 4 END, priority ASC, created_at DESC",
|
|
88
|
+
extraConditions: [
|
|
89
|
+
"((assigned_to = ? AND status IN ('open', 'in_progress', 'blocked', 'needs_review')) OR (reviewer = ? AND status = 'needs_review'))"
|
|
90
|
+
],
|
|
91
|
+
extraArgs: [agentId, agentId]
|
|
92
|
+
});
|
|
112
93
|
const open = [];
|
|
113
94
|
const inProgress = [];
|
|
114
95
|
let done = 0;
|
|
115
|
-
for (const row of
|
|
96
|
+
for (const row of rows) {
|
|
116
97
|
const status = String(row.status);
|
|
117
98
|
const claimedBy = row.assigned_tmux == null ? null : String(row.assigned_tmux);
|
|
118
99
|
const task = {
|
|
@@ -130,15 +111,33 @@ async function scanFromDb(agentId, tmuxSession, projectName) {
|
|
|
130
111
|
}
|
|
131
112
|
inProgress.push(task);
|
|
132
113
|
} else if (status === "open") {
|
|
114
|
+
if (claimedBy && claimedBy !== "unknown" && tmuxSession) {
|
|
115
|
+
const mine = claimedBy === tmuxSession || claimedBy.startsWith(`${tmuxSession}:`);
|
|
116
|
+
if (!mine) continue;
|
|
117
|
+
}
|
|
133
118
|
open.push(task);
|
|
134
119
|
}
|
|
135
120
|
}
|
|
136
|
-
const
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
121
|
+
const doneRows = await queryTaskRows({
|
|
122
|
+
assignedTo: agentId,
|
|
123
|
+
status: "done",
|
|
124
|
+
columns: "COUNT(*) as cnt",
|
|
125
|
+
limit: 1,
|
|
126
|
+
orderBy: "1"
|
|
127
|
+
// no-op order for COUNT
|
|
140
128
|
});
|
|
141
|
-
done = Number(
|
|
129
|
+
done = Number(doneRows[0]?.cnt ?? 0);
|
|
130
|
+
if (open.length > 0 && tmuxSession && tmuxSession !== "unknown") {
|
|
131
|
+
const topTask = open[0];
|
|
132
|
+
try {
|
|
133
|
+
const { getClient } = await import("../lib/database.js");
|
|
134
|
+
await getClient().execute({
|
|
135
|
+
sql: "UPDATE tasks SET assigned_tmux = ? WHERE id = ? AND (assigned_tmux IS NULL OR assigned_tmux = 'unknown')",
|
|
136
|
+
args: [tmuxSession, topTask.id]
|
|
137
|
+
});
|
|
138
|
+
} catch {
|
|
139
|
+
}
|
|
140
|
+
}
|
|
142
141
|
return { open, inProgress, done, total: open.length + inProgress.length + done };
|
|
143
142
|
}
|
|
144
143
|
function formatText(_agentId, result) {
|
package/dist/bin/setup.js
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
runSetupWizard
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-UJMDHPIN.js";
|
|
5
5
|
import "../chunk-6D23UNXU.js";
|
|
6
|
-
import "../chunk-
|
|
7
|
-
import "../chunk-
|
|
8
|
-
import "../chunk-
|
|
6
|
+
import "../chunk-TOWAZ5IV.js";
|
|
7
|
+
import "../chunk-LYH5HE24.js";
|
|
8
|
+
import "../chunk-MLKGABMK.js";
|
|
9
9
|
|
|
10
10
|
// src/bin/setup.ts
|
|
11
11
|
var args = process.argv.slice(2);
|
|
12
12
|
var skipModel = args.includes("--skip-model");
|
|
13
|
+
var nonInteractive = args.includes("--non-interactive") || args.includes("--yes") || args.includes("-y");
|
|
13
14
|
try {
|
|
14
|
-
await runSetupWizard({ skipModel });
|
|
15
|
+
await runSetupWizard({ skipModel, nonInteractive });
|
|
15
16
|
} catch (err) {
|
|
16
17
|
console.error("Setup failed:", err instanceof Error ? err.message : String(err));
|
|
17
18
|
process.exit(1);
|
|
@@ -4,24 +4,24 @@ import {
|
|
|
4
4
|
getReadyShardClient,
|
|
5
5
|
getShardsDir,
|
|
6
6
|
initShardManager
|
|
7
|
-
} from "../chunk-
|
|
7
|
+
} from "../chunk-ICKEGWWP.js";
|
|
8
8
|
import {
|
|
9
9
|
disposeStore,
|
|
10
10
|
initStore
|
|
11
|
-
} from "../chunk-
|
|
12
|
-
import "../chunk-
|
|
11
|
+
} from "../chunk-Y6TS42WD.js";
|
|
12
|
+
import "../chunk-524VLFFY.js";
|
|
13
13
|
import "../chunk-MP2AFCGL.js";
|
|
14
14
|
import {
|
|
15
15
|
getClient
|
|
16
|
-
} from "../chunk-
|
|
17
|
-
import "../chunk-
|
|
16
|
+
} from "../chunk-TH6HTK2L.js";
|
|
17
|
+
import "../chunk-EOO32RJZ.js";
|
|
18
18
|
import "../chunk-FXU7JOXK.js";
|
|
19
19
|
import {
|
|
20
20
|
getMasterKey
|
|
21
21
|
} from "../chunk-6D23UNXU.js";
|
|
22
|
-
import "../chunk-
|
|
23
|
-
import "../chunk-
|
|
24
|
-
import "../chunk-
|
|
22
|
+
import "../chunk-TOWAZ5IV.js";
|
|
23
|
+
import "../chunk-LYH5HE24.js";
|
|
24
|
+
import "../chunk-MLKGABMK.js";
|
|
25
25
|
|
|
26
26
|
// src/bin/shard-migrate.ts
|
|
27
27
|
import { existsSync, writeFileSync } from "fs";
|
package/dist/bin/stack-update.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
loadLicense
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-
|
|
6
|
-
import "../chunk-
|
|
4
|
+
} from "../chunk-NNT2ZNMC.js";
|
|
5
|
+
import "../chunk-TOWAZ5IV.js";
|
|
6
|
+
import "../chunk-LYH5HE24.js";
|
|
7
7
|
import {
|
|
8
8
|
isMainModule
|
|
9
9
|
} from "../chunk-6Y4B3QF6.js";
|
|
10
|
-
import "../chunk-
|
|
10
|
+
import "../chunk-MLKGABMK.js";
|
|
11
11
|
|
|
12
12
|
// src/bin/stack-update.ts
|
|
13
13
|
import { readFileSync as readFileSync2 } from "fs";
|
|
@@ -527,7 +527,63 @@ async function runStackUpdate(options) {
|
|
|
527
527
|
registryForLogout = creds.registry;
|
|
528
528
|
}
|
|
529
529
|
exec("docker", [...composeArgs, "pull"]);
|
|
530
|
-
|
|
530
|
+
const RESTART_ORDER = [
|
|
531
|
+
"crm-postgres",
|
|
532
|
+
// data layer — must be healthy before apps
|
|
533
|
+
"clickhouse",
|
|
534
|
+
"redis",
|
|
535
|
+
"exed",
|
|
536
|
+
// daemon — has its own health endpoint
|
|
537
|
+
"exe-crm",
|
|
538
|
+
// CRM app
|
|
539
|
+
"exe-crm-worker",
|
|
540
|
+
// CRM background worker
|
|
541
|
+
"exe-gateway",
|
|
542
|
+
// gateway — WhatsApp connections
|
|
543
|
+
"exe-wiki"
|
|
544
|
+
// wiki
|
|
545
|
+
];
|
|
546
|
+
const preSnapshot = spawnSync("docker", ["ps", "--format", "json"], { encoding: "utf8", timeout: 1e4 });
|
|
547
|
+
const preContainerCount = preSnapshot.stdout?.split("\n").filter(Boolean).length ?? 0;
|
|
548
|
+
console.log(`[stack-update] Pre-update snapshot: ${preContainerCount} containers`);
|
|
549
|
+
for (const service of RESTART_ORDER) {
|
|
550
|
+
const psResult = spawnSync("docker", [...composeArgs, "ps", "--quiet", service], {
|
|
551
|
+
encoding: "utf8",
|
|
552
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
553
|
+
timeout: 1e4
|
|
554
|
+
});
|
|
555
|
+
if (psResult.status !== 0) continue;
|
|
556
|
+
exec("docker", [...composeArgs, "up", "-d", "--no-deps", service]);
|
|
557
|
+
const maxWait = 60;
|
|
558
|
+
let healthy = false;
|
|
559
|
+
for (let i = 0; i < maxWait; i++) {
|
|
560
|
+
const inspectResult = spawnSync(
|
|
561
|
+
"docker",
|
|
562
|
+
["inspect", "--format", "{{.State.Health.Status}}", service],
|
|
563
|
+
{ encoding: "utf8", timeout: 5e3 }
|
|
564
|
+
);
|
|
565
|
+
const status = inspectResult.stdout?.trim();
|
|
566
|
+
if (status === "healthy") {
|
|
567
|
+
healthy = true;
|
|
568
|
+
break;
|
|
569
|
+
}
|
|
570
|
+
if (status === "" || inspectResult.status !== 0) {
|
|
571
|
+
healthy = true;
|
|
572
|
+
break;
|
|
573
|
+
}
|
|
574
|
+
await new Promise((r) => setTimeout(r, 1e3));
|
|
575
|
+
}
|
|
576
|
+
if (!healthy) {
|
|
577
|
+
throw new Error(`Service ${service} failed health check after ${maxWait}s \u2014 aborting update`);
|
|
578
|
+
}
|
|
579
|
+
console.log(`[stack-update] \u2713 ${service} restarted and healthy`);
|
|
580
|
+
}
|
|
581
|
+
const postSnapshot = spawnSync("docker", ["ps", "--format", "json"], { encoding: "utf8", timeout: 1e4 });
|
|
582
|
+
const postContainerCount = postSnapshot.stdout?.split("\n").filter(Boolean).length ?? 0;
|
|
583
|
+
console.log(`[stack-update] Post-update snapshot: ${postContainerCount} containers (was ${preContainerCount})`);
|
|
584
|
+
if (postContainerCount < preContainerCount) {
|
|
585
|
+
console.warn(`[stack-update] \u26A0 Container count dropped from ${preContainerCount} to ${postContainerCount}`);
|
|
586
|
+
}
|
|
531
587
|
await verifyReleaseHealth(plan.release, options.healthRetries ?? 12, options.healthDelayMs ?? 5e3);
|
|
532
588
|
writeFileSync(lockFile, JSON.stringify({ stackVersion: plan.targetVersion, updatedAt: now().toISOString(), backupEnvFile, services: plan.release.services }, null, 2) + "\n");
|
|
533
589
|
await postDeployAudit(options, "success", plan.targetVersion, previousVersion, void 0, { changes: plan.changes.length });
|
|
@@ -657,16 +713,16 @@ function defaultStackPaths() {
|
|
|
657
713
|
const cwdCompose = path.resolve("docker-compose.yml");
|
|
658
714
|
const cwdEnv = path.resolve(".env");
|
|
659
715
|
const packagedManifest = path.join(resolvePackageRoot(), "deploy", "stack-manifests", "v0.9.json");
|
|
660
|
-
const manifestRef = process.env.EXE_STACK_MANIFEST || (existsSync(packagedManifest) ? packagedManifest : "https://
|
|
716
|
+
const manifestRef = process.env.EXE_STACK_MANIFEST || (existsSync(packagedManifest) ? packagedManifest : "https://api.askexe.com/stack-manifest.json");
|
|
661
717
|
return {
|
|
662
718
|
composeFile: process.env.EXE_STACK_COMPOSE_FILE || (existsSync(cwdCompose) ? cwdCompose : "/opt/exe-stack/docker-compose.yml"),
|
|
663
719
|
envFile: process.env.EXE_STACK_ENV_FILE || (existsSync(cwdEnv) ? cwdEnv : "/opt/exe-stack/.env"),
|
|
664
720
|
manifestRef,
|
|
665
|
-
// Only call
|
|
721
|
+
// Only call api.askexe.com if explicitly configured or if a remote manifest was requested.
|
|
666
722
|
// Packaged manifests keep cold-start installs unblocked even before update-service entitlements are provisioned.
|
|
667
|
-
auditUrl: process.env.EXE_STACK_AUDIT_URL || (/^https?:\/\//.test(manifestRef) ? "https://
|
|
668
|
-
imageCredentialsUrl: process.env.EXE_STACK_IMAGE_CREDENTIALS_URL || (/^https?:\/\//.test(manifestRef) ? "https://
|
|
669
|
-
// License key IS the auth token for
|
|
723
|
+
auditUrl: process.env.EXE_STACK_AUDIT_URL || (/^https?:\/\//.test(manifestRef) ? "https://api.askexe.com/v1/deploy-audits" : void 0),
|
|
724
|
+
imageCredentialsUrl: process.env.EXE_STACK_IMAGE_CREDENTIALS_URL || (/^https?:\/\//.test(manifestRef) ? "https://api.askexe.com/v1/image-credentials" : void 0),
|
|
725
|
+
// License key IS the auth token for api.askexe.com — no separate update token needed.
|
|
670
726
|
// EXE_STACK_UPDATE_TOKEN kept as legacy fallback during migration.
|
|
671
727
|
manifestAuthToken: process.env.EXE_LICENSE_KEY || loadLicense() || process.env.EXE_STACK_UPDATE_TOKEN || void 0,
|
|
672
728
|
manifestPublicKey: loadDefaultPublicKey()
|
package/dist/bin/update.js
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
|
-
EXE_AI_DIR
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-PNKVD2UK.js";
|
|
2
|
+
EXE_AI_DIR
|
|
3
|
+
} from "./chunk-TOWAZ5IV.js";
|
|
4
|
+
import "./chunk-LYH5HE24.js";
|
|
5
|
+
import "./chunk-MLKGABMK.js";
|
|
7
6
|
|
|
8
7
|
// src/lib/branding.ts
|
|
9
|
-
init_config();
|
|
10
8
|
import { readFileSync, writeFileSync, existsSync, mkdirSync } from "fs";
|
|
11
9
|
import path from "path";
|
|
12
10
|
var BRANDING_PATH = path.join(EXE_AI_DIR, "branding.json");
|
|
@@ -8,9 +8,9 @@ import {
|
|
|
8
8
|
isAtCapacity,
|
|
9
9
|
isWithinRelaunchCooldown,
|
|
10
10
|
pollCapacityDead
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-J4RAXKTC.js";
|
|
12
|
+
import "./chunk-PMWDO5FR.js";
|
|
13
|
+
import "./chunk-ONMRBKAX.js";
|
|
14
14
|
import "./chunk-LOQCOHEW.js";
|
|
15
15
|
import "./chunk-TXSJ2L5O.js";
|
|
16
16
|
import "./chunk-64WZEXXA.js";
|
|
@@ -18,21 +18,22 @@ import "./chunk-3TXOH3SJ.js";
|
|
|
18
18
|
import "./chunk-RLCZBSUB.js";
|
|
19
19
|
import "./chunk-GZIAQYGI.js";
|
|
20
20
|
import "./chunk-ZQX6UOP6.js";
|
|
21
|
-
import "./chunk-
|
|
21
|
+
import "./chunk-KIUU4PNX.js";
|
|
22
22
|
import "./chunk-NGP6LSV2.js";
|
|
23
|
-
import "./chunk-
|
|
23
|
+
import "./chunk-AERGE6GC.js";
|
|
24
|
+
import "./chunk-OPU3NYOO.js";
|
|
24
25
|
import "./chunk-CVYC6DUW.js";
|
|
25
26
|
import "./chunk-GJV3WDWM.js";
|
|
26
27
|
import "./chunk-MP2AFCGL.js";
|
|
27
|
-
import "./chunk-
|
|
28
|
+
import "./chunk-DTLASDQM.js";
|
|
28
29
|
import "./chunk-HYZV25LY.js";
|
|
29
|
-
import "./chunk-
|
|
30
|
-
import "./chunk-
|
|
30
|
+
import "./chunk-TH6HTK2L.js";
|
|
31
|
+
import "./chunk-EOO32RJZ.js";
|
|
31
32
|
import "./chunk-FXU7JOXK.js";
|
|
32
|
-
import "./chunk-
|
|
33
|
-
import "./chunk-
|
|
34
|
-
import "./chunk-
|
|
35
|
-
import "./chunk-
|
|
33
|
+
import "./chunk-NNT2ZNMC.js";
|
|
34
|
+
import "./chunk-TOWAZ5IV.js";
|
|
35
|
+
import "./chunk-LYH5HE24.js";
|
|
36
|
+
import "./chunk-MLKGABMK.js";
|
|
36
37
|
export {
|
|
37
38
|
CTX_FLOOR_PERCENT,
|
|
38
39
|
_resetLastRelaunchCache,
|