@askexenow/exe-os 0.9.371 → 0.9.372
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/deploy/compose/docker-compose.yml +46 -15
- package/deploy/stack-manifests/v0.9.json +117 -2
- package/dist/.dist-verified.json +3 -3
- package/dist/{active-agent-JEUX2MHE.js → active-agent-GRT5MKD5.js} +3 -3
- package/dist/{active-agent-JXOH2JBH.js → active-agent-L2ZSSXDK.js} +3 -3
- package/dist/{agent-defs-generator-J6A57TL6.js → agent-defs-generator-M4ZNYIVX.js} +2 -2
- package/dist/{agentic-ontology-DRUE3NUX.js → agentic-ontology-DMPRDEUX.js} +1 -1
- package/dist/{backfill-metadata-BZ7LEKAR.js → backfill-metadata-ZMEHJQ5M.js} +5 -5
- package/dist/{backup-verify-MYRJCSDR.js → backup-verify-EX2K732J.js} +1 -1
- package/dist/{behavior-injection-BHCOAC4O.js → behavior-injection-22AGMS25.js} +8 -8
- package/dist/{behaviors-352X5WJ6.js → behaviors-DVFXAWF5.js} +6 -6
- package/dist/bin/agentic-ontology-backfill.js +6 -6
- package/dist/bin/agentic-reflection-backfill.js +7 -7
- package/dist/bin/agentic-semantic-label.js +6 -6
- package/dist/bin/backfill-conversations.js +5 -5
- package/dist/bin/backfill-responses.js +5 -5
- package/dist/bin/backfill-vectors.js +6 -6
- package/dist/bin/bulk-sync-postgres.js +10 -10
- package/dist/bin/cc-doctor.js +4 -4
- package/dist/bin/cleanup-stale-review-tasks.js +13 -13
- package/dist/bin/cli.js +28 -20
- package/dist/bin/deferred-daemon-restart.js +76 -76
- package/dist/bin/exe-agent-config.js +2 -2
- package/dist/bin/exe-agent.js +8 -8
- package/dist/bin/exe-assign.js +6 -6
- package/dist/bin/exe-boot.js +41 -31
- package/dist/bin/exe-call.js +4 -4
- package/dist/bin/exe-cloud.js +11 -11
- package/dist/bin/exe-config-dump.js +2 -2
- package/dist/bin/exe-dispatch.js +14 -14
- package/dist/bin/exe-doctor.js +4 -4
- package/dist/bin/exe-export-behaviors.js +10 -10
- package/dist/bin/exe-forget.js +7 -7
- package/dist/bin/exe-gateway.js +7 -7
- package/dist/bin/exe-healthcheck.js +4 -4
- package/dist/bin/exe-heartbeat.js +16 -16
- package/dist/bin/exe-kill.js +17 -17
- package/dist/bin/exe-launch-agent.js +23 -23
- package/dist/bin/exe-mcp.js +3 -3
- package/dist/bin/exe-memory-reads.js +5 -5
- package/dist/bin/exe-new-employee.js +8 -8
- package/dist/bin/exe-os-mcp-proxy.js +3 -3
- package/dist/bin/exe-pending-messages.js +14 -14
- package/dist/bin/exe-pending-notifications.js +13 -13
- package/dist/bin/exe-pending-reviews.js +13 -13
- package/dist/bin/exe-rename.js +4 -4
- package/dist/bin/exe-repo-truth.js +369 -0
- package/dist/bin/exe-review.js +16 -16
- package/dist/bin/exe-search.js +6 -6
- package/dist/bin/exe-session-cleanup.js +17 -17
- package/dist/bin/exe-settings.js +10 -10
- package/dist/bin/exe-start-codex.js +15 -15
- package/dist/bin/exe-start-opencode.js +11 -11
- package/dist/bin/exe-status.js +15 -15
- package/dist/bin/exe-support.js +3 -3
- package/dist/bin/exe-team.js +4 -4
- package/dist/bin/git-sweep.js +14 -14
- package/dist/bin/graph-backfill.js +6 -6
- package/dist/bin/graph-export.js +6 -6
- package/dist/bin/import-history.js +9 -9
- package/dist/bin/install.js +78 -78
- package/dist/bin/intercom-check.js +4 -4
- package/dist/bin/mcp-sessions.js +2 -2
- package/dist/bin/orchestration-metrics.js +4 -4
- package/dist/bin/postgres-agentic-reflection-backfill.js +2 -2
- package/dist/bin/postgres-agentic-semantic-backfill.js +1 -1
- package/dist/bin/reconcile-backlog.js +2 -2
- package/dist/bin/registry-proxy.js +1 -1
- package/dist/bin/scan-tasks.js +13 -13
- package/dist/bin/setup.js +1 -1
- package/dist/bin/shard-migrate.js +5 -5
- package/dist/bin/stack-update.js +4 -4
- package/dist/bin/vps-health-gate.js +1 -1
- package/dist/{boot-generation-ZLU4WCQM.js → boot-generation-OHXH4YC5.js} +3 -3
- package/dist/{boot-review-sections-N6BNB6XH.js → boot-review-sections-N5IXIGSS.js} +12 -12
- package/dist/{branch-hygiene-HFJ3HA62.js → branch-hygiene-KCGXRAWP.js} +125 -73
- package/dist/build-manifest.json +785 -775
- package/dist/{capability-cards-KQOG53EI.js → capability-cards-4PXVLIVS.js} +2 -2
- package/dist/{capacity-monitor-AUDIPQFT.js → capacity-monitor-FKMQXORX.js} +14 -14
- package/dist/{catchup-brief-HRSMXUUZ.js → catchup-brief-SN5EKO4N.js} +17 -17
- package/dist/{chunk-ELSZZPKV.js → chunk-23QKEUF6.js} +11 -11
- package/dist/{chunk-CQPXU7TX.js → chunk-3KTQWMHI.js} +1 -1
- package/dist/{chunk-QS6HI4B6.js → chunk-3TTKAT6V.js} +31 -9
- package/dist/{chunk-HVL53G6O.js → chunk-44C7QNZS.js} +1 -1
- package/dist/{chunk-LQW7BZLZ.js → chunk-4ZJ5BPY6.js} +1 -1
- package/dist/{chunk-PNU7BPJ6.js → chunk-53PYNYTW.js} +3 -3
- package/dist/{chunk-VHUIVLOZ.js → chunk-5AHDQCTB.js} +4 -4
- package/dist/{chunk-XRFTLVRV.js → chunk-5AHRZI3R.js} +1 -1
- package/dist/{chunk-AGML75Y4.js → chunk-5DCCKHDY.js} +3 -3
- package/dist/{chunk-SWYONKEF.js → chunk-6XEYELCA.js} +1 -1
- package/dist/{chunk-IBPCNS6U.js → chunk-77JP3LK4.js} +5 -5
- package/dist/{chunk-JDDT3G7L.js → chunk-7PSLK36P.js} +1 -1
- package/dist/{chunk-JU5CF53A.js → chunk-7R73IAHU.js} +9 -9
- package/dist/{chunk-IBFCSUJV.js → chunk-7V6M3QUS.js} +1 -1
- package/dist/{chunk-G5D62GZA.js → chunk-7WQRFSZI.js} +3 -3
- package/dist/{chunk-5AOQEERG.js → chunk-AAUWFXOX.js} +4 -4
- package/dist/{chunk-PZBYI3ED.js → chunk-AMKSDKMK.js} +1 -1
- package/dist/{chunk-UYAQRBHY.js → chunk-CNC57JCS.js} +4 -4
- package/dist/{chunk-ZVDF4Y6O.js → chunk-DKBPCOU4.js} +50 -20
- package/dist/{chunk-PRMGNTW3.js → chunk-E2WEFZOR.js} +1 -1
- package/dist/{chunk-DRFRUDML.js → chunk-E7UCDSUE.js} +4 -4
- package/dist/{chunk-X7IU6JM7.js → chunk-ECHLVLA7.js} +1 -1
- package/dist/{chunk-75R6NMW5.js → chunk-EEXX4UMQ.js} +1 -1
- package/dist/{chunk-XPRZ6LLL.js → chunk-ELXFSIIM.js} +2 -2
- package/dist/{chunk-AXVUURYS.js → chunk-ERVQTR7P.js} +2 -2
- package/dist/{chunk-AJTRBGIC.js → chunk-FB343XQX.js} +2 -2
- package/dist/{chunk-ZLKDEKK5.js → chunk-FBYAXTDM.js} +1 -1
- package/dist/{chunk-B353FGPH.js → chunk-GH6YJOOC.js} +5 -5
- package/dist/{chunk-MCBPDKWB.js → chunk-GU62SNDH.js} +1 -1
- package/dist/{chunk-ZTZ6DM2M.js → chunk-HDW4XPDV.js} +1 -1
- package/dist/{chunk-5ROSYSRQ.js → chunk-HECXZGGZ.js} +9 -9
- package/dist/{chunk-V4SLIPZS.js → chunk-HHE2HV3V.js} +1 -1
- package/dist/{chunk-Q7YSVIJL.js → chunk-HIIXCAEE.js} +2 -2
- package/dist/{chunk-V7CLIEDZ.js → chunk-HIVZ53YB.js} +1 -1
- package/dist/{chunk-QCQT5RXR.js → chunk-HV6Y6F4X.js} +95 -3
- package/dist/{chunk-QCCAOLAS.js → chunk-IPMUWYRQ.js} +2 -2
- package/dist/{chunk-DVUQYAUC.js → chunk-JJUGI2YL.js} +1 -1
- package/dist/{chunk-O7BGW45J.js → chunk-JKXZGRWR.js} +1 -1
- package/dist/{chunk-ZGSAKOMA.js → chunk-JOO35RHR.js} +2 -2
- package/dist/{chunk-6OJVMXAC.js → chunk-JR23BL74.js} +3 -3
- package/dist/{chunk-ZQEHMWGI.js → chunk-JTWTBX2M.js} +1 -1
- package/dist/{chunk-7MXJXYJS.js → chunk-KPMC7PY7.js} +1 -1
- package/dist/{chunk-IRYOOXZQ.js → chunk-KXYFBBZR.js} +1 -1
- package/dist/{chunk-5RTDR52E.js → chunk-KYFFVTGO.js} +1 -1
- package/dist/{chunk-YKXQT3ZW.js → chunk-L6ZNURWN.js} +1 -1
- package/dist/{chunk-FBSTMK4X.js → chunk-LAZKEJMS.js} +138 -138
- package/dist/{chunk-ZWDWRWQW.js → chunk-LDL3S7AC.js} +1 -1
- package/dist/{chunk-KCO4NVOF.js → chunk-MBNIJXKI.js} +2 -2
- package/dist/{chunk-DZYDMHI5.js → chunk-MDGYXUOV.js} +1 -1
- package/dist/{chunk-GC2AIMNA.js → chunk-MEGRQ53A.js} +5 -5
- package/dist/{chunk-GKFO2ASR.js → chunk-MINXPXAB.js} +3 -3
- package/dist/{chunk-ZWHDGIHV.js → chunk-O4ZFRK6W.js} +11 -11
- package/dist/{chunk-FRLKE6CX.js → chunk-OKGIOWOB.js} +1 -1
- package/dist/{chunk-R5YGJRSH.js → chunk-OW5RZIDW.js} +4 -4
- package/dist/{chunk-6HYV622V.js → chunk-OYQNNKNS.js} +10 -10
- package/dist/{chunk-QESZNU5H.js → chunk-OZBII5E3.js} +4 -4
- package/dist/{chunk-CO4LNMLT.js → chunk-PM6WSWVU.js} +2 -2
- package/dist/{chunk-4DGM3F7F.js → chunk-QLA3RTH4.js} +1 -1
- package/dist/{chunk-SQVBAWJ6.js → chunk-QR624DER.js} +1 -1
- package/dist/{chunk-MWWSJ5FO.js → chunk-QTI4QAWA.js} +1 -1
- package/dist/{chunk-OBY6D44R.js → chunk-QTYJPWJN.js} +4 -4
- package/dist/{chunk-PRKEHXGC.js → chunk-RBYHJDAT.js} +3 -3
- package/dist/{chunk-X5E5CVJG.js → chunk-RGUDGC6A.js} +3 -3
- package/dist/{chunk-L2KHIVNA.js → chunk-RIK5GRWI.js} +3 -3
- package/dist/{chunk-WLOAKBUB.js → chunk-RLR6VVKV.js} +4 -4
- package/dist/{chunk-WNHGHO7M.js → chunk-RNLF3CBB.js} +1 -1
- package/dist/{chunk-QYV6JWP3.js → chunk-RUVO3NJC.js} +3 -3
- package/dist/{chunk-BN7NSTFF.js → chunk-RUWWES2K.js} +2 -2
- package/dist/{chunk-ASERE4BL.js → chunk-SEP5ITFQ.js} +1 -1
- package/dist/chunk-SI5SZAJA.js +178 -0
- package/dist/{chunk-S5W4OAVN.js → chunk-T4EK56WI.js} +1 -1
- package/dist/{chunk-3LI2UY56.js → chunk-TGEPLJ66.js} +3 -3
- package/dist/{chunk-6656BVBH.js → chunk-TGPQMMQP.js} +3 -3
- package/dist/{chunk-HK6BHPXG.js → chunk-THM7J6UI.js} +4 -4
- package/dist/{chunk-Y72EP2Q7.js → chunk-TK4MI6F6.js} +3 -3
- package/dist/{chunk-LAHOHXHD.js → chunk-UKLF7F3Z.js} +2 -2
- package/dist/{chunk-VGMRL522.js → chunk-UTDMTQNH.js} +1 -1
- package/dist/{chunk-4YUQNYOJ.js → chunk-UVW7YFAF.js} +4 -4
- package/dist/{chunk-EIJRPAUS.js → chunk-VKXS2YGN.js} +1 -1
- package/dist/{chunk-ZBT3C2WH.js → chunk-VX2F4ZUY.js} +2 -2
- package/dist/{chunk-UUVRBSH4.js → chunk-W25RLOQ2.js} +2 -2
- package/dist/{chunk-UOOCN72R.js → chunk-WAEKYKTK.js} +1 -1
- package/dist/{chunk-XPDAFAS7.js → chunk-WUKQVNLP.js} +1 -1
- package/dist/{chunk-YAT5IEQK.js → chunk-WZJVGA5I.js} +1 -1
- package/dist/{chunk-KWMCCRM6.js → chunk-XHYHX6F7.js} +19 -19
- package/dist/{chunk-JK6LGA62.js → chunk-XXSNLM6R.js} +1 -1
- package/dist/{chunk-A6BXK7AQ.js → chunk-YFCNWQAM.js} +2 -2
- package/dist/{chunk-FUPE3KJA.js → chunk-YWUQVHDL.js} +1 -1
- package/dist/{chunk-NYEJOJVS.js → chunk-ZISQOOER.js} +2 -2
- package/dist/{chunk-3SL3C2GZ.js → chunk-ZXB56YR2.js} +9 -9
- package/dist/{chunk-MIVFYHZM.js → chunk-ZYCLSEZT.js} +2 -2
- package/dist/{cleanup-graph-garbage-6DD6TADI.js → cleanup-graph-garbage-IPYDS5OX.js} +7 -7
- package/dist/{cloud-sync-command-YXA4IEKT.js → cloud-sync-command-JLNVG7H4.js} +2 -2
- package/dist/{cloud-sync-db-init-H6QPNK3Z.js → cloud-sync-db-init-JXUF6GI3.js} +1 -1
- package/dist/{cloud-sync-shutdown-A6T7RQT2.js → cloud-sync-shutdown-Z4SBP6PL.js} +2 -2
- package/dist/{co-activation-HSKIFJHU.js → co-activation-74RDFTKS.js} +2 -2
- package/dist/{co-occurrence-UW563FHZ.js → co-occurrence-CN3TBYVR.js} +5 -5
- package/dist/{conversation-entity-extractor-LFDOCVKB.js → conversation-entity-extractor-QGTLH4BP.js} +3 -3
- package/dist/{crdt-sync-MGP67KLW.js → crdt-sync-7T4WCOKD.js} +1 -1
- package/dist/{crm-webhook-6DZSEFSP.js → crm-webhook-FTW3XZTO.js} +2 -2
- package/dist/{cto-delegation-gate-QPPDJGLY.js → cto-delegation-gate-SZCE34LB.js} +12 -12
- package/dist/{daemon-orchestration-MXWB4ZOF.js → daemon-orchestration-IGPHVNFR.js} +17 -17
- package/dist/{destructive-data-guard-5SKHIZNN.js → destructive-data-guard-6I5MDFVD.js} +1 -1
- package/dist/{doc-graph-extractor-4XUPW4SI.js → doc-graph-extractor-VPTRIEKN.js} +5 -5
- package/dist/{documents-KG5AACEM.js → documents-URULIXGM.js} +6 -6
- package/dist/{dreaming-3VQVED4S.js → dreaming-VIZO3QDO.js} +16 -16
- package/dist/{employee-boot-brief-CHKXWH4B.js → employee-boot-brief-XLOG4ULP.js} +19 -19
- package/dist/{exe-drift-CSD2AAVQ.js → exe-drift-TLQM3IHD.js} +3 -3
- package/dist/{exe-export-DCJSNQXL.js → exe-export-7YWYWJHY.js} +7 -7
- package/dist/{exe-import-NLT7ABRP.js → exe-import-DW6VAUKW.js} +7 -7
- package/dist/{exe-key-2DFWB3RD.js → exe-key-TLJP2B4Y.js} +76 -76
- package/dist/{exe-org-6GZ54U6N.js → exe-org-LU46N36E.js} +12 -12
- package/dist/{exe-snapshot-PRLVRLLN.js → exe-snapshot-QHUZRS62.js} +17 -17
- package/dist/{fast-db-init-Y2MMNYVV.js → fast-db-init-SCTOOIUT.js} +1 -1
- package/dist/{founder-context-7IEVQPD7.js → founder-context-ZFZC4UHO.js} +2 -2
- package/dist/gateway/index.js +8 -8
- package/dist/{git-main-guard-TGK3RQY3.js → git-main-guard-TN27QBAI.js} +11 -1
- package/dist/{git-staleness-VXP474EL.js → git-staleness-GSGP344N.js} +2 -2
- package/dist/{global-procedures-XT7FBDNK.js → global-procedures-YAR7G4C6.js} +3 -3
- package/dist/{graph-auto-extract-DAWMUOJT.js → graph-auto-extract-GNQS64F5.js} +5 -5
- package/dist/{graph-rag-F35FMFDG.js → graph-rag-RMSFLUOB.js} +3 -3
- package/dist/{hook-integrity-Y3OAZFSH.js → hook-integrity-CF567MVN.js} +1 -1
- package/dist/{hook-prefetch-A4WNG6CH.js → hook-prefetch-36BK4F7U.js} +13 -13
- package/dist/hooks/bug-report-worker.js +17 -17
- package/dist/hooks/codex-stop-task-finalizer.js +18 -18
- package/dist/hooks/commit-complete.js +16 -16
- package/dist/hooks/error-recall.js +8 -8
- package/dist/hooks/exe-heartbeat-hook.js +4 -4
- package/dist/hooks/ingest-worker.js +2 -2
- package/dist/hooks/ingest.js +11 -11
- package/dist/hooks/instructions-loaded.js +5 -5
- package/dist/hooks/manifest.json +20 -20
- package/dist/hooks/notification.js +5 -5
- package/dist/hooks/post-compact.js +4 -4
- package/dist/hooks/post-tool-combined.js +11 -11
- package/dist/hooks/pre-compact.js +16 -16
- package/dist/hooks/pre-tool-use.js +28 -28
- package/dist/hooks/prompt-submit.js +29 -29
- package/dist/hooks/session-end.js +20 -20
- package/dist/hooks/session-start.js +16 -16
- package/dist/hooks/stop.js +19 -19
- package/dist/hooks/subagent-stop.js +17 -17
- package/dist/hooks/summary-worker.js +21 -21
- package/dist/index.js +23 -23
- package/dist/{installer-OIJ5K2AR.js → installer-LUN4HQIC.js} +5 -5
- package/dist/{installer-N4IBPKQP.js → installer-MPRFUQJE.js} +5 -5
- package/dist/{installer-MMMNOFLS.js → installer-OC5VXNC7.js} +5 -5
- package/dist/{intercom-queue-S2PK53WU.js → intercom-queue-6DZ7BANV.js} +12 -12
- package/dist/lib/cloud-sync.js +10 -10
- package/dist/lib/consolidation.js +7 -7
- package/dist/lib/database.js +2 -2
- package/dist/lib/db-backup.js +1 -1
- package/dist/lib/db-write-worker.js +3 -3
- package/dist/lib/db.js +2 -2
- package/dist/lib/device-registry.js +1 -1
- package/dist/lib/employee-templates.js +4 -4
- package/dist/lib/employees.js +2 -2
- package/dist/lib/exe-daemon.js +85 -77
- package/dist/lib/hybrid-search.js +6 -6
- package/dist/lib/identity.js +2 -2
- package/dist/lib/license.js +4 -2
- package/dist/lib/messaging.js +13 -13
- package/dist/lib/registry-proxy.js +1 -1
- package/dist/lib/reminders.js +3 -3
- package/dist/lib/schedules.js +6 -6
- package/dist/lib/session-registry.js +4 -4
- package/dist/lib/skill-learning.js +7 -7
- package/dist/lib/status-brief.js +1 -1
- package/dist/lib/store.js +5 -5
- package/dist/lib/task-router.js +3 -3
- package/dist/lib/tasks.js +14 -14
- package/dist/lib/tmux-routing.js +12 -12
- package/dist/lib/token-spend.js +3 -3
- package/dist/{license-gate-TQUNTYGQ.js → license-gate-ESER24PJ.js} +3 -3
- package/dist/{license-sync-MELIT6GE.js → license-sync-JVG5KNIY.js} +2 -2
- package/dist/mcp/register-tools.js +75 -75
- package/dist/mcp/server.js +76 -76
- package/dist/mcp/tools/complete-reminder.js +4 -4
- package/dist/mcp/tools/create-reminder.js +4 -4
- package/dist/mcp/tools/create-task.js +16 -16
- package/dist/mcp/tools/deactivate-behavior.js +8 -8
- package/dist/mcp/tools/list-reminders.js +4 -4
- package/dist/mcp/tools/list-tasks.js +16 -16
- package/dist/mcp/tools/send-message.js +15 -15
- package/dist/mcp/tools/update-task.js +15 -15
- package/dist/{mcp-http-config-V4CGMP2O.js → mcp-http-config-6K6IKH5F.js} +3 -3
- package/dist/{mcp-session-identity-6CI2MVTG.js → mcp-session-identity-LRC6WJSD.js} +12 -12
- package/dist/{memory-cards-LTM7NC52.js → memory-cards-V3OZHIYP.js} +5 -5
- package/dist/{memory-graph-extractor-653465YU.js → memory-graph-extractor-JC2Z64L4.js} +6 -6
- package/dist/{memory-poisoning-defense-XEF6EJFZ.js → memory-poisoning-defense-YM4QJHCX.js} +2 -2
- package/dist/{memory-pressure-watchdog-CCTRSTCP.js → memory-pressure-watchdog-6F6KEQHN.js} +13 -13
- package/dist/{memory-reflection-A4XN5LJB.js → memory-reflection-QXHJPYPC.js} +2 -2
- package/dist/{notification-ledger-LYFY6J6T.js → notification-ledger-6QRLQW4Q.js} +13 -13
- package/dist/{notifications-CRMZYTZD.js → notifications-7B6D7Y5C.js} +12 -12
- package/dist/{orchestration-events-BG7ECYYB.js → orchestration-events-GY5VP5LU.js} +3 -3
- package/dist/{orchestrator-CXBMAJ3V.js → orchestrator-JVPVOYWA.js} +14 -14
- package/dist/{org-brief-session-PGYGY47D.js → org-brief-session-GRV5R5E3.js} +5 -5
- package/dist/{org-consent-policy-3PNMR2ML.js → org-consent-policy-3FHHSYXV.js} +1 -1
- package/dist/{org-join-E5V5QFJ4.js → org-join-BY4PV6UO.js} +2 -2
- package/dist/{org-key-admin-FZW2PUZB.js → org-key-admin-WSCPT2CZ.js} +3 -3
- package/dist/{org-partner-runtime-Z7E3FAW4.js → org-partner-runtime-UJDGECZ4.js} +5 -5
- package/dist/{org-row-visibility-G2K3XPZJ.js → org-row-visibility-V5DXIHTE.js} +1 -1
- package/dist/{pipeline-router-6ITGNPKO.js → pipeline-router-YY5FQKTY.js} +3 -3
- package/dist/{plan-limits-43MY7ZUK.js → plan-limits-OVX6SN6B.js} +5 -5
- package/dist/{projection-worker-QXUIZL72.js → projection-worker-D2472IOD.js} +2 -2
- package/dist/{prospective-memory-JF4KX7SB.js → prospective-memory-JXO2A6PL.js} +2 -2
- package/dist/{push-notifications-7PXAAEA5.js → push-notifications-HR3FZRDI.js} +13 -13
- package/dist/{reproject-worktree-memories-IXYGHTGA.js → reproject-worktree-memories-OSS3PGRF.js} +127 -35
- package/dist/{reranker-43VKZIKQ.js → reranker-IMZRPYJ2.js} +1 -1
- package/dist/{retrieval-health-PDXYWW4G.js → retrieval-health-W7OD44FE.js} +1 -1
- package/dist/{review-polling-6CZ2Q5LG.js → review-polling-2INP7H6M.js} +13 -13
- package/dist/runtime/index.js +20 -20
- package/dist/{session-events-APEFXOYX.js → session-events-G4XUPVWV.js} +13 -13
- package/dist/{session-kill-telemetry-7RHDZE2H.js → session-kill-telemetry-W7MHWJTQ.js} +13 -13
- package/dist/{session-scope-H5S6SIWW.js → session-scope-LG2J4EMQ.js} +12 -12
- package/dist/{setup-wizard-5SC3DNUD.js → setup-wizard-YQJI3SVM.js} +1 -1
- package/dist/{skill-refinement-WXER7O2B.js → skill-refinement-RA37U756.js} +3 -3
- package/dist/{stack-promote-KANK5AB6.js → stack-promote-IYBRXHTA.js} +4 -4
- package/dist/{stack-release-PXLJNV7I.js → stack-release-OXWLVVG6.js} +4 -4
- package/dist/{stack-update-NICYINJ3.js → stack-update-2CZEROPK.js} +3 -3
- package/dist/{steward-gate-YXVHUILI.js → steward-gate-LTNFB3FY.js} +3 -3
- package/dist/{subagent-brief-injection-YQEH65XW.js → subagent-brief-injection-OHLWLECQ.js} +20 -20
- package/dist/{support-inbox-7H25MDCH.js → support-inbox-4KCEPAZQ.js} +3 -3
- package/dist/{task-enforcement-UO6YWPWA.js → task-enforcement-LGXWXGVZ.js} +13 -13
- package/dist/{task-request-inbox-4HJRWUJ6.js → task-request-inbox-WHCOSUCP.js} +1 -1
- package/dist/{task-scope-HYLP4GNF.js → task-scope-KXF7Y6KA.js} +12 -12
- package/dist/{tasks-crud-FBDDZ7AA.js → tasks-crud-5EM55WRZ.js} +12 -12
- package/dist/{tasks-notify-Y24O7NUS.js → tasks-notify-VFMAURTN.js} +13 -13
- package/dist/{tasks-review-WW6W3TNM.js → tasks-review-MHGMBHUZ.js} +12 -12
- package/dist/{telemetry-upload-WZBHZLC6.js → telemetry-upload-6NRTN7QJ.js} +7 -7
- package/dist/{token-budget-ANESTRO5.js → token-budget-LZPOYTRP.js} +3 -3
- package/dist/{tool-telemetry-GUMN5D45.js → tool-telemetry-ZX7VSAXK.js} +1 -1
- package/dist/tui/App.js +20 -20
- package/dist/{tui-data-TAXTMZSL.js → tui-data-CC5POSUV.js} +12 -12
- package/dist/{update-support-WWGWPCU3.js → update-support-KH6NSQON.js} +9 -9
- package/dist/{work-claims-XXHRJI5N.js → work-claims-MNK7PEPW.js} +3 -3
- package/dist/{work-state-heartbeat-PFPOZLVI.js → work-state-heartbeat-YEWT5NMZ.js} +1 -1
- package/dist/{worker-gate-MRQ44Y4I.js → worker-gate-BOQSIU2Z.js} +1 -1
- package/dist/{workflow-engine-QIBHWCIH.js → workflow-engine-MUUD7ZEX.js} +2 -2
- package/dist/{worktree-O3AE77YT.js → worktree-GOGT2LZP.js} +4 -4
- package/dist/{worktree-sweep-KX75U5TO.js → worktree-sweep-46VWPVQT.js} +5 -5
- package/package.json +2 -1
- package/release-notes.json +15 -29
- package/stack.release.json +4 -4
- package/dist/{chunk-IX6ZFC3M.js → chunk-3F2UB4IQ.js} +0 -0
- package/dist/{chunk-4XFQTDUS.js → chunk-3Y5THOU6.js} +0 -0
- package/dist/{chunk-UINNP65J.js → chunk-5APCDDJZ.js} +0 -0
- package/dist/{chunk-LBDOJAGX.js → chunk-5N4SG5NB.js} +3 -3
- /package/dist/{chunk-6PDPYOAV.js → chunk-7UTJA6HF.js} +0 -0
- /package/dist/{chunk-WTDNYATC.js → chunk-ADNBOKYZ.js} +0 -0
- /package/dist/{chunk-6O73T44R.js → chunk-GB3AHV5F.js} +0 -0
- /package/dist/{chunk-25T6EERD.js → chunk-HR2R2QER.js} +0 -0
- /package/dist/{chunk-E4NB3B2R.js → chunk-ORA5BWCV.js} +0 -0
- /package/dist/{chunk-KSQUNVPJ.js → chunk-R6FLELV6.js} +0 -0
- /package/dist/{chunk-5Y43SCSF.js → chunk-U3XLRMJD.js} +0 -0
- /package/dist/{chunk-LBRBL5S3.js → chunk-V4XAKXXF.js} +0 -0
- /package/dist/{chunk-XWJXNIBG.js → chunk-VJSDGDNS.js} +0 -0
- /package/dist/{chunk-V4S5XV3S.js → chunk-WV3TOOL7.js} +0 -0
- /package/dist/{core-memory-NOF6XESC.js → core-memory-6WBNT2HL.js} +0 -0
- /package/dist/{memory-isolation-SANJ4VHY.js → memory-isolation-EJ45IXBH.js} +0 -0
- /package/dist/{oauth-server-KEWQDSQ7.js → oauth-server-TZFNQAFS.js} +0 -0
- /package/dist/{project-boot-A5SF6NXB.js → project-boot-LXLU2J32.js} +0 -0
- /package/dist/{wiki-acl-XZMUIGP4.js → wiki-acl-WXRJGZ5Q.js} +0 -0
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getRemoteDefaultBranch,
|
|
3
|
+
ghPrStateLookup,
|
|
4
|
+
listRemoteHeads
|
|
5
|
+
} from "./chunk-SI5SZAJA.js";
|
|
1
6
|
import {
|
|
2
7
|
EXE_AI_DIR
|
|
3
8
|
} from "./chunk-QMSEL5YS.js";
|
|
@@ -16,6 +21,9 @@ var MAX_BRANCHES_SCANNED = 60;
|
|
|
16
21
|
var DEFAULT_LISTING_CAP = 10;
|
|
17
22
|
var SCAN_CONCURRENCY = 8;
|
|
18
23
|
var DEFAULT_CACHE_MAX_AGE_MS = 90 * 60 * 1e3;
|
|
24
|
+
function isAttention(c) {
|
|
25
|
+
return c === "closed_unmerged" || c === "never_proposed";
|
|
26
|
+
}
|
|
19
27
|
async function git(repoRoot, args) {
|
|
20
28
|
const { stdout } = await execFileAsync("git", args, {
|
|
21
29
|
cwd: repoRoot,
|
|
@@ -24,21 +32,6 @@ async function git(repoRoot, args) {
|
|
|
24
32
|
});
|
|
25
33
|
return stdout.trim();
|
|
26
34
|
}
|
|
27
|
-
async function detectRemoteBase(repoRoot) {
|
|
28
|
-
for (const candidate of ["main", "master"]) {
|
|
29
|
-
try {
|
|
30
|
-
await git(repoRoot, ["rev-parse", "--verify", `refs/remotes/origin/${candidate}`]);
|
|
31
|
-
return `origin/${candidate}`;
|
|
32
|
-
} catch {
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
return null;
|
|
36
|
-
}
|
|
37
|
-
function parseRefLine(line) {
|
|
38
|
-
const [name, committedAt] = line.split("");
|
|
39
|
-
if (!name) return null;
|
|
40
|
-
return { name: name.replace(/^origin\//, ""), committedAt: committedAt ?? "" };
|
|
41
|
-
}
|
|
42
35
|
async function mapPool(items, concurrency, fn) {
|
|
43
36
|
const results = new Array(items.length);
|
|
44
37
|
let next = 0;
|
|
@@ -53,74 +46,115 @@ async function mapPool(items, concurrency, fn) {
|
|
|
53
46
|
await Promise.all(Array.from({ length: lanes }, () => worker()));
|
|
54
47
|
return results;
|
|
55
48
|
}
|
|
56
|
-
async function scanUnmergedBranchesRaw(repoRoot) {
|
|
57
|
-
const emptyRaw = {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
49
|
+
async function scanUnmergedBranchesRaw(repoRoot, prStateLookup = ghPrStateLookup) {
|
|
50
|
+
const emptyRaw = {
|
|
51
|
+
branches: [],
|
|
52
|
+
truncated: false,
|
|
53
|
+
remoteRead: false,
|
|
54
|
+
prStateAvailable: false
|
|
55
|
+
};
|
|
56
|
+
const heads = await listRemoteHeads(repoRoot);
|
|
57
|
+
if (!heads) return emptyRaw;
|
|
58
|
+
const remoteDefault = await getRemoteDefaultBranch(repoRoot);
|
|
59
|
+
let baseName = remoteDefault?.name;
|
|
60
|
+
if (!baseName) {
|
|
61
|
+
baseName = heads.find((h) => h.name === "main")?.name ?? heads.find((h) => h.name === "master")?.name;
|
|
63
62
|
}
|
|
64
|
-
if (!
|
|
65
|
-
const
|
|
66
|
-
|
|
63
|
+
if (!baseName) return { ...emptyRaw, remoteRead: true };
|
|
64
|
+
const baseSha = heads.find((h) => h.name === baseName)?.sha ?? remoteDefault?.sha;
|
|
65
|
+
if (!baseSha) return { ...emptyRaw, remoteRead: true };
|
|
66
|
+
let baseLocal = false;
|
|
67
67
|
try {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
`--no-merged=${baseRef}`,
|
|
71
|
-
"--sort=-committerdate",
|
|
72
|
-
"--format=%(refname:short)%(committerdate:iso-strict)",
|
|
73
|
-
"refs/remotes/origin"
|
|
74
|
-
]);
|
|
75
|
-
lines = raw ? raw.split("\n") : [];
|
|
68
|
+
await git(repoRoot, ["cat-file", "-e", `${baseSha}^{commit}`]);
|
|
69
|
+
baseLocal = true;
|
|
76
70
|
} catch {
|
|
77
|
-
|
|
71
|
+
baseLocal = false;
|
|
78
72
|
}
|
|
79
|
-
const baseShort = baseRef.replace(/^origin\//, "");
|
|
80
73
|
const candidates = [];
|
|
81
74
|
let truncated = false;
|
|
82
|
-
for (const
|
|
83
|
-
|
|
84
|
-
if (!parsed) continue;
|
|
85
|
-
if (parsed.name === baseShort || parsed.name === "HEAD") continue;
|
|
75
|
+
for (const h of heads) {
|
|
76
|
+
if (h.name === baseName || h.name === "HEAD") continue;
|
|
86
77
|
if (candidates.length >= MAX_BRANCHES_SCANNED) {
|
|
87
78
|
truncated = true;
|
|
88
79
|
break;
|
|
89
80
|
}
|
|
90
|
-
candidates.push(
|
|
81
|
+
candidates.push(h);
|
|
91
82
|
}
|
|
92
|
-
const
|
|
83
|
+
const measured = await mapPool(candidates, SCAN_CONCURRENCY, async (c) => {
|
|
93
84
|
let ahead = 0;
|
|
85
|
+
let aheadUnknown = true;
|
|
86
|
+
let committedAt = "";
|
|
87
|
+
if (baseLocal) {
|
|
88
|
+
try {
|
|
89
|
+
const cnt = await git(repoRoot, ["rev-list", "--count", `${baseSha}..${c.sha}`]);
|
|
90
|
+
ahead = parseInt(cnt, 10) || 0;
|
|
91
|
+
aheadUnknown = false;
|
|
92
|
+
} catch {
|
|
93
|
+
aheadUnknown = true;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
94
96
|
try {
|
|
95
|
-
|
|
96
|
-
ahead = parseInt(cnt, 10) || 0;
|
|
97
|
+
committedAt = await git(repoRoot, ["log", "-1", "--format=%cI", c.sha]);
|
|
97
98
|
} catch {
|
|
98
|
-
|
|
99
|
+
committedAt = "";
|
|
99
100
|
}
|
|
100
|
-
return { c, ahead };
|
|
101
|
+
return { c, ahead, aheadUnknown, committedAt };
|
|
101
102
|
});
|
|
103
|
+
const kept = measured.filter((m) => m.aheadUnknown || m.ahead > 0);
|
|
104
|
+
const prMap = await prStateLookup(repoRoot, kept.map((m) => m.c.name));
|
|
105
|
+
const prStateAvailable = prMap !== null;
|
|
102
106
|
const now = Date.now();
|
|
103
|
-
const out =
|
|
104
|
-
|
|
105
|
-
if (ahead <= 0) continue;
|
|
106
|
-
const committedMs = c.committedAt ? Date.parse(c.committedAt) : NaN;
|
|
107
|
+
const out = kept.map((m) => {
|
|
108
|
+
const committedMs = m.committedAt ? Date.parse(m.committedAt) : NaN;
|
|
107
109
|
const ageHours = Number.isFinite(committedMs) ? Math.max(0, (now - committedMs) / 36e5) : 0;
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
110
|
+
const pr = prMap?.get(m.c.name);
|
|
111
|
+
return {
|
|
112
|
+
name: m.c.name,
|
|
113
|
+
ahead: m.ahead,
|
|
114
|
+
aheadUnknown: m.aheadUnknown,
|
|
115
|
+
committedAt: m.committedAt,
|
|
116
|
+
ageHours,
|
|
117
|
+
// filesChanged retained in the shape (cosmetic) but no longer computed — 0.
|
|
118
|
+
filesChanged: 0,
|
|
119
|
+
classification: pr?.state ?? "unknown",
|
|
120
|
+
prNumber: pr?.number ?? null
|
|
121
|
+
};
|
|
122
|
+
});
|
|
123
|
+
out.sort((a, b) => (Date.parse(b.committedAt) || 0) - (Date.parse(a.committedAt) || 0));
|
|
124
|
+
return { branches: out, truncated, remoteRead: true, prStateAvailable };
|
|
111
125
|
}
|
|
112
|
-
function finalizeScan(
|
|
113
|
-
const refreshed =
|
|
126
|
+
function finalizeScan(raw, staleHours, listingCap, include, now = Date.now()) {
|
|
127
|
+
const refreshed = raw.branches.map((b) => {
|
|
114
128
|
const ms = b.committedAt ? Date.parse(b.committedAt) : NaN;
|
|
115
129
|
const ageHours = Number.isFinite(ms) ? Math.max(0, (now - ms) / 36e5) : b.ageHours;
|
|
116
130
|
return { ...b, ageHours };
|
|
117
131
|
});
|
|
118
|
-
const
|
|
132
|
+
const selected = include ? refreshed.filter((b) => include.includes(b.classification)) : refreshed.filter((b) => isAttention(b.classification));
|
|
133
|
+
return {
|
|
134
|
+
branches: selected.slice(0, listingCap),
|
|
135
|
+
total: selected.length,
|
|
136
|
+
staleCount: selected.filter((b) => b.ageHours >= staleHours).length,
|
|
137
|
+
truncated: raw.truncated,
|
|
138
|
+
liveTotal: refreshed.length,
|
|
139
|
+
mergedCount: refreshed.filter((b) => b.classification === "merged").length,
|
|
140
|
+
openCount: refreshed.filter((b) => b.classification === "open").length,
|
|
141
|
+
unknownCount: refreshed.filter((b) => b.classification === "unknown").length,
|
|
142
|
+
remoteRead: raw.remoteRead,
|
|
143
|
+
prStateAvailable: raw.prStateAvailable
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
function unknownScanResult() {
|
|
119
147
|
return {
|
|
120
|
-
branches:
|
|
121
|
-
total:
|
|
122
|
-
staleCount,
|
|
123
|
-
truncated
|
|
148
|
+
branches: [],
|
|
149
|
+
total: 0,
|
|
150
|
+
staleCount: 0,
|
|
151
|
+
truncated: false,
|
|
152
|
+
liveTotal: 0,
|
|
153
|
+
mergedCount: 0,
|
|
154
|
+
openCount: 0,
|
|
155
|
+
unknownCount: 0,
|
|
156
|
+
remoteRead: false,
|
|
157
|
+
prStateAvailable: false
|
|
124
158
|
};
|
|
125
159
|
}
|
|
126
160
|
async function scanUnmergedBranches(repoRoot, options = {}) {
|
|
@@ -128,13 +162,13 @@ async function scanUnmergedBranches(repoRoot, options = {}) {
|
|
|
128
162
|
const listingCap = options.listingCap ?? DEFAULT_LISTING_CAP;
|
|
129
163
|
let raw;
|
|
130
164
|
try {
|
|
131
|
-
raw = await scanUnmergedBranchesRaw(repoRoot);
|
|
165
|
+
raw = await scanUnmergedBranchesRaw(repoRoot, options.prStateLookup);
|
|
132
166
|
} catch {
|
|
133
|
-
return
|
|
167
|
+
return unknownScanResult();
|
|
134
168
|
}
|
|
135
|
-
return finalizeScan(raw
|
|
169
|
+
return finalizeScan(raw, staleHours, listingCap, options.include);
|
|
136
170
|
}
|
|
137
|
-
var BRANCH_SCAN_CACHE_VERSION =
|
|
171
|
+
var BRANCH_SCAN_CACHE_VERSION = 2;
|
|
138
172
|
function branchScanCacheDir() {
|
|
139
173
|
return join(EXE_AI_DIR, "session-cache");
|
|
140
174
|
}
|
|
@@ -177,29 +211,47 @@ async function scanUnmergedBranchesCached(repoRoot, options = {}, cacheOpts = {}
|
|
|
177
211
|
if (entry?.scannedAt) {
|
|
178
212
|
const age = Date.now() - Date.parse(entry.scannedAt);
|
|
179
213
|
if (Number.isFinite(age) && age >= 0 && age <= maxAgeMs) {
|
|
180
|
-
return finalizeScan(
|
|
214
|
+
return finalizeScan(
|
|
215
|
+
{
|
|
216
|
+
branches: entry.branches ?? [],
|
|
217
|
+
truncated: entry.truncated ?? false,
|
|
218
|
+
remoteRead: entry.remoteRead ?? false,
|
|
219
|
+
prStateAvailable: entry.prStateAvailable ?? false
|
|
220
|
+
},
|
|
221
|
+
staleHours,
|
|
222
|
+
listingCap,
|
|
223
|
+
options.include
|
|
224
|
+
);
|
|
181
225
|
}
|
|
182
226
|
}
|
|
183
227
|
}
|
|
184
228
|
let raw;
|
|
185
229
|
try {
|
|
186
|
-
raw = await scanUnmergedBranchesRaw(repoRoot);
|
|
230
|
+
raw = await scanUnmergedBranchesRaw(repoRoot, options.prStateLookup);
|
|
187
231
|
} catch {
|
|
188
|
-
return
|
|
232
|
+
return unknownScanResult();
|
|
189
233
|
}
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
234
|
+
if (raw.remoteRead) {
|
|
235
|
+
await writeBranchScanCacheEntryAsync(repoRoot, {
|
|
236
|
+
scannedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
237
|
+
branches: raw.branches,
|
|
238
|
+
truncated: raw.truncated,
|
|
239
|
+
remoteRead: raw.remoteRead,
|
|
240
|
+
prStateAvailable: raw.prStateAvailable
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
return finalizeScan(raw, staleHours, listingCap, options.include);
|
|
196
244
|
}
|
|
197
245
|
function slugForMatch(input) {
|
|
198
246
|
return input.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
|
|
199
247
|
}
|
|
200
248
|
async function findMatchingBranches(repoRoot, opts) {
|
|
201
249
|
const result = [];
|
|
202
|
-
const scan = await
|
|
250
|
+
const scan = await scanUnmergedBranchesCached(repoRoot, {
|
|
251
|
+
listingCap: MAX_BRANCHES_SCANNED,
|
|
252
|
+
include: ["closed_unmerged", "never_proposed", "open"],
|
|
253
|
+
prStateLookup: opts.prStateLookup
|
|
254
|
+
});
|
|
203
255
|
if (scan.branches.length === 0) return result;
|
|
204
256
|
const idToken = opts.id ? slugForMatch(opts.id) : "";
|
|
205
257
|
const shortId = idToken ? idToken.replace(/-/g, "").slice(0, 8) : "";
|