@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
|
@@ -0,0 +1,369 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
REMOTE_TIMEOUT_MS,
|
|
4
|
+
fetchPruned,
|
|
5
|
+
getRemoteDefaultBranch,
|
|
6
|
+
ghPrStateLookup,
|
|
7
|
+
listRemoteHeads,
|
|
8
|
+
listRemoteTags
|
|
9
|
+
} from "../chunk-SI5SZAJA.js";
|
|
10
|
+
import {
|
|
11
|
+
isMainModule
|
|
12
|
+
} from "../chunk-6Y4B3QF6.js";
|
|
13
|
+
import "../chunk-MLKGABMK.js";
|
|
14
|
+
|
|
15
|
+
// src/bin/exe-repo-truth.ts
|
|
16
|
+
import { execFile } from "child_process";
|
|
17
|
+
import { promisify } from "util";
|
|
18
|
+
var execFileAsync = promisify(execFile);
|
|
19
|
+
var UNKNOWN = "UNKNOWN";
|
|
20
|
+
async function git(repoRoot, args, timeoutMs = REMOTE_TIMEOUT_MS) {
|
|
21
|
+
const { stdout } = await execFileAsync("git", args, {
|
|
22
|
+
cwd: repoRoot,
|
|
23
|
+
encoding: "utf8",
|
|
24
|
+
timeout: timeoutMs,
|
|
25
|
+
maxBuffer: 16 * 1024 * 1024
|
|
26
|
+
});
|
|
27
|
+
return stdout;
|
|
28
|
+
}
|
|
29
|
+
function parseTagName(name) {
|
|
30
|
+
const m = /^(.*?)v?(\d+(?:\.\d+)*)(?:[-+](.*))?$/.exec(name);
|
|
31
|
+
if (!m) return null;
|
|
32
|
+
const [, prefix, version, pre] = m;
|
|
33
|
+
return {
|
|
34
|
+
name,
|
|
35
|
+
prefix: prefix ?? "",
|
|
36
|
+
parts: version.split(".").map((n) => parseInt(n, 10) || 0),
|
|
37
|
+
pre: pre ?? ""
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
function compareVersions(a, b) {
|
|
41
|
+
const len = Math.max(a.parts.length, b.parts.length);
|
|
42
|
+
for (let i = 0; i < len; i++) {
|
|
43
|
+
const d = (a.parts[i] ?? 0) - (b.parts[i] ?? 0);
|
|
44
|
+
if (d !== 0) return d;
|
|
45
|
+
}
|
|
46
|
+
if (a.pre === b.pre) return 0;
|
|
47
|
+
if (!a.pre) return 1;
|
|
48
|
+
if (!b.pre) return -1;
|
|
49
|
+
return a.pre < b.pre ? -1 : 1;
|
|
50
|
+
}
|
|
51
|
+
function seriesRegexFromVersion(version) {
|
|
52
|
+
const m = /^(\d+)\.(\d+)\./.exec(version.trim());
|
|
53
|
+
if (!m) return null;
|
|
54
|
+
return new RegExp(`^v?${m[1]}\\.${m[2]}\\.`);
|
|
55
|
+
}
|
|
56
|
+
function groupOtherNamespaces(parsed) {
|
|
57
|
+
const byPrefix = /* @__PURE__ */ new Map();
|
|
58
|
+
for (const t of parsed) {
|
|
59
|
+
const list = byPrefix.get(t.prefix) ?? [];
|
|
60
|
+
list.push(t);
|
|
61
|
+
byPrefix.set(t.prefix, list);
|
|
62
|
+
}
|
|
63
|
+
const out = [];
|
|
64
|
+
for (const [prefix, list] of byPrefix) {
|
|
65
|
+
const sorted = [...list].sort((a, b) => compareVersions(b, a));
|
|
66
|
+
out.push({ prefix, tags: sorted.map((t) => t.name), latest: sorted[0].name });
|
|
67
|
+
}
|
|
68
|
+
return out.sort((a, b) => b.tags.length - a.tags.length);
|
|
69
|
+
}
|
|
70
|
+
async function showAtCommit(repoRoot, sha, file) {
|
|
71
|
+
try {
|
|
72
|
+
return await git(repoRoot, ["show", `${sha}:${file}`]);
|
|
73
|
+
} catch {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
function jsonVersion(raw) {
|
|
78
|
+
if (!raw) return null;
|
|
79
|
+
try {
|
|
80
|
+
const parsed = JSON.parse(raw);
|
|
81
|
+
return typeof parsed.version === "string" ? parsed.version : null;
|
|
82
|
+
} catch {
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
async function defaultOpenPrLookup(repoRoot) {
|
|
87
|
+
try {
|
|
88
|
+
const { stdout } = await execFileAsync(
|
|
89
|
+
"gh",
|
|
90
|
+
["pr", "list", "--state", "open", "--limit", "100", "--json", "number,title,headRefName,updatedAt"],
|
|
91
|
+
{ cwd: repoRoot, encoding: "utf8", timeout: REMOTE_TIMEOUT_MS, maxBuffer: 8 * 1024 * 1024 }
|
|
92
|
+
);
|
|
93
|
+
const parsed = JSON.parse(stdout);
|
|
94
|
+
return Array.isArray(parsed) ? parsed : [];
|
|
95
|
+
} catch {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
async function collectRepoTruth(repoRoot, opts = {}) {
|
|
100
|
+
const prLookup = opts.prStateLookup ?? ghPrStateLookup;
|
|
101
|
+
const openPrLookup = opts.openPrLookup ?? defaultOpenPrLookup;
|
|
102
|
+
let remoteUrl = UNKNOWN;
|
|
103
|
+
try {
|
|
104
|
+
remoteUrl = (await git(repoRoot, ["remote", "get-url", "origin"])).trim() || UNKNOWN;
|
|
105
|
+
} catch {
|
|
106
|
+
remoteUrl = UNKNOWN;
|
|
107
|
+
}
|
|
108
|
+
const fetched = await fetchPruned(repoRoot);
|
|
109
|
+
const report = {
|
|
110
|
+
repoRoot,
|
|
111
|
+
remoteUrl,
|
|
112
|
+
fetched,
|
|
113
|
+
defaultBranch: UNKNOWN,
|
|
114
|
+
defaultHeadSha: UNKNOWN,
|
|
115
|
+
openPrs: UNKNOWN,
|
|
116
|
+
branches: UNKNOWN,
|
|
117
|
+
branchCounts: UNKNOWN,
|
|
118
|
+
ourTags: UNKNOWN,
|
|
119
|
+
ourSeriesRule: UNKNOWN,
|
|
120
|
+
latestOurTag: UNKNOWN,
|
|
121
|
+
otherTagNamespaces: UNKNOWN,
|
|
122
|
+
manifestVersion: UNKNOWN,
|
|
123
|
+
packageVersion: UNKNOWN,
|
|
124
|
+
versionsAgree: UNKNOWN,
|
|
125
|
+
unreleasedCount: UNKNOWN,
|
|
126
|
+
unreleasedCommits: UNKNOWN
|
|
127
|
+
};
|
|
128
|
+
const heads = await listRemoteHeads(repoRoot);
|
|
129
|
+
const remoteDefault = await getRemoteDefaultBranch(repoRoot);
|
|
130
|
+
if (remoteDefault) {
|
|
131
|
+
report.defaultBranch = remoteDefault.name;
|
|
132
|
+
report.defaultHeadSha = remoteDefault.sha;
|
|
133
|
+
} else if (heads) {
|
|
134
|
+
const guess = heads.find((h) => h.name === "main") ?? heads.find((h) => h.name === "master");
|
|
135
|
+
if (guess) {
|
|
136
|
+
report.defaultBranch = guess.name;
|
|
137
|
+
report.defaultHeadSha = guess.sha;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
const openPrs = await openPrLookup(repoRoot);
|
|
141
|
+
if (openPrs) report.openPrs = openPrs;
|
|
142
|
+
if (heads) {
|
|
143
|
+
const baseName = report.defaultBranch === UNKNOWN ? null : report.defaultBranch;
|
|
144
|
+
const candidates = heads.filter((h) => h.name !== baseName);
|
|
145
|
+
const prMap = await prLookup(repoRoot, candidates.map((c) => c.name));
|
|
146
|
+
const rows = candidates.map((c) => {
|
|
147
|
+
const pr = prMap?.get(c.name);
|
|
148
|
+
return {
|
|
149
|
+
name: c.name,
|
|
150
|
+
sha: c.sha,
|
|
151
|
+
classification: pr?.state ?? "unknown",
|
|
152
|
+
prNumber: pr?.number ?? null
|
|
153
|
+
};
|
|
154
|
+
});
|
|
155
|
+
rows.sort((a, b) => a.name.localeCompare(b.name));
|
|
156
|
+
report.branches = rows;
|
|
157
|
+
report.branchCounts = {
|
|
158
|
+
live: rows.length,
|
|
159
|
+
merged: rows.filter((r) => r.classification === "merged").length,
|
|
160
|
+
closedUnmerged: rows.filter((r) => r.classification === "closed_unmerged").length,
|
|
161
|
+
neverProposed: rows.filter((r) => r.classification === "never_proposed").length,
|
|
162
|
+
open: rows.filter((r) => r.classification === "open").length,
|
|
163
|
+
unknown: rows.filter((r) => r.classification === "unknown").length
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
const headSha = report.defaultHeadSha === UNKNOWN ? null : report.defaultHeadSha;
|
|
167
|
+
if (headSha && fetched) {
|
|
168
|
+
const manifestRaw = await showAtCommit(repoRoot, headSha, "stack.release.json");
|
|
169
|
+
const pkgRaw = await showAtCommit(repoRoot, headSha, "package.json");
|
|
170
|
+
report.manifestVersion = manifestRaw === null ? null : jsonVersion(manifestRaw) ?? UNKNOWN;
|
|
171
|
+
report.packageVersion = pkgRaw === null ? null : jsonVersion(pkgRaw) ?? UNKNOWN;
|
|
172
|
+
report.versionsAgree = typeof report.manifestVersion === "string" && report.manifestVersion !== UNKNOWN && typeof report.packageVersion === "string" && report.packageVersion !== UNKNOWN ? report.manifestVersion === report.packageVersion : null;
|
|
173
|
+
}
|
|
174
|
+
const tags = await listRemoteTags(repoRoot);
|
|
175
|
+
if (tags) {
|
|
176
|
+
const parsed = tags.map((t) => parseTagName(t.name)).filter((t) => t !== null);
|
|
177
|
+
let oursRe = opts.oursPattern ?? null;
|
|
178
|
+
let ruleSource = opts.oursPattern ? "--ours flag" : "";
|
|
179
|
+
if (!oursRe) {
|
|
180
|
+
const declared = [report.manifestVersion, report.packageVersion].find((v) => typeof v === "string" && v !== UNKNOWN);
|
|
181
|
+
if (declared) {
|
|
182
|
+
oursRe = seriesRegexFromVersion(declared);
|
|
183
|
+
ruleSource = `series ${declared.split(".").slice(0, 2).join(".")}.x declared on ${report.defaultBranch}`;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
if (oursRe) {
|
|
187
|
+
report.ourSeriesRule = `${oursRe.source} (${ruleSource})`;
|
|
188
|
+
const ours = parsed.filter((t) => t.prefix === "" && oursRe.test(t.name));
|
|
189
|
+
const sortedOurs = [...ours].sort((a, b) => compareVersions(b, a));
|
|
190
|
+
report.ourTags = sortedOurs.map((t) => t.name);
|
|
191
|
+
report.latestOurTag = sortedOurs[0]?.name ?? null;
|
|
192
|
+
if (report.latestOurTag === null) {
|
|
193
|
+
report.unreleasedCount = null;
|
|
194
|
+
report.unreleasedCommits = null;
|
|
195
|
+
}
|
|
196
|
+
const ourNames = new Set(ours.map((t) => t.name));
|
|
197
|
+
report.otherTagNamespaces = groupOtherNamespaces(parsed.filter((t) => !ourNames.has(t.name)));
|
|
198
|
+
} else {
|
|
199
|
+
report.ourSeriesRule = UNKNOWN;
|
|
200
|
+
report.ourTags = UNKNOWN;
|
|
201
|
+
report.latestOurTag = UNKNOWN;
|
|
202
|
+
report.otherTagNamespaces = groupOtherNamespaces(parsed);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
if (headSha && fetched && typeof report.latestOurTag === "string" && report.latestOurTag !== UNKNOWN) {
|
|
206
|
+
try {
|
|
207
|
+
const raw = await git(repoRoot, [
|
|
208
|
+
"log",
|
|
209
|
+
"--no-merges",
|
|
210
|
+
"--format=%h %s",
|
|
211
|
+
`refs/tags/${report.latestOurTag}..${headSha}`
|
|
212
|
+
]);
|
|
213
|
+
const commits = raw.split("\n").map((l) => l.trim()).filter(Boolean);
|
|
214
|
+
report.unreleasedCommits = commits;
|
|
215
|
+
report.unreleasedCount = commits.length;
|
|
216
|
+
} catch {
|
|
217
|
+
report.unreleasedCommits = UNKNOWN;
|
|
218
|
+
report.unreleasedCount = UNKNOWN;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
return report;
|
|
222
|
+
}
|
|
223
|
+
var CLASSIFICATION_LABEL = {
|
|
224
|
+
merged: "MERGED (prunable)",
|
|
225
|
+
closed_unmerged: "CLOSED, NOT MERGED",
|
|
226
|
+
never_proposed: "NEVER PROPOSED",
|
|
227
|
+
open: "OPEN PR",
|
|
228
|
+
unknown: "UNKNOWN"
|
|
229
|
+
};
|
|
230
|
+
function show(v) {
|
|
231
|
+
if (v === UNKNOWN) return UNKNOWN;
|
|
232
|
+
if (v === null) return "n/a";
|
|
233
|
+
return String(v);
|
|
234
|
+
}
|
|
235
|
+
function hasUnknowns(r) {
|
|
236
|
+
return !r.fetched || r.defaultBranch === UNKNOWN || r.defaultHeadSha === UNKNOWN || r.openPrs === UNKNOWN || r.branches === UNKNOWN || r.latestOurTag === UNKNOWN || r.manifestVersion === UNKNOWN || r.packageVersion === UNKNOWN || r.unreleasedCount === UNKNOWN || r.branchCounts !== UNKNOWN && r.branchCounts.unknown > 0;
|
|
237
|
+
}
|
|
238
|
+
function renderRepoTruth(r) {
|
|
239
|
+
const out = [];
|
|
240
|
+
out.push("");
|
|
241
|
+
out.push(`REPO TRUTH \u2014 ${show(r.remoteUrl)}`);
|
|
242
|
+
out.push(` every value below was read from the remote during this run; anything unverified says ${UNKNOWN}`);
|
|
243
|
+
out.push("");
|
|
244
|
+
out.push(` fetch --prune --tags --prune-tags ${r.fetched ? "ok" : `FAILED \u2192 remote-derived values are ${UNKNOWN}`}`);
|
|
245
|
+
out.push(` default branch ${show(r.defaultBranch)}`);
|
|
246
|
+
out.push(` head ${r.defaultHeadSha === UNKNOWN ? UNKNOWN : String(r.defaultHeadSha).slice(0, 12)}`);
|
|
247
|
+
out.push("");
|
|
248
|
+
if (r.openPrs === UNKNOWN) {
|
|
249
|
+
out.push(` OPEN PRs ${UNKNOWN} (forge unreadable)`);
|
|
250
|
+
} else {
|
|
251
|
+
out.push(` OPEN PRs ${r.openPrs.length}`);
|
|
252
|
+
for (const pr of r.openPrs) out.push(` #${pr.number} ${pr.headRefName} \u2014 ${pr.title}`);
|
|
253
|
+
}
|
|
254
|
+
out.push("");
|
|
255
|
+
if (r.branches === UNKNOWN || r.branchCounts === UNKNOWN) {
|
|
256
|
+
out.push(` REMOTE BRANCHES ${UNKNOWN} (ls-remote failed)`);
|
|
257
|
+
} else {
|
|
258
|
+
const c = r.branchCounts;
|
|
259
|
+
out.push(` REMOTE BRANCHES ${c.live} live (excluding the default branch)`);
|
|
260
|
+
out.push(` open PR ${c.open} merged/prunable ${c.merged} closed-unmerged ${c.closedUnmerged} never-proposed ${c.neverProposed} unknown ${c.unknown}`);
|
|
261
|
+
for (const b of r.branches) {
|
|
262
|
+
out.push(` ${CLASSIFICATION_LABEL[b.classification].padEnd(19)} ${b.name}${b.prNumber ? ` (PR #${b.prNumber})` : ""}`);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
out.push("");
|
|
266
|
+
out.push(` OUR RELEASE TAGS`);
|
|
267
|
+
out.push(` rule ${show(r.ourSeriesRule)}`);
|
|
268
|
+
out.push(
|
|
269
|
+
` latest OURS ${r.latestOurTag === null ? "none \u2014 no tag in our series" : show(r.latestOurTag)}`
|
|
270
|
+
);
|
|
271
|
+
if (Array.isArray(r.ourTags)) {
|
|
272
|
+
out.push(` all ours (${r.ourTags.length})${" ".repeat(Math.max(1, 24 - String(r.ourTags.length).length))}${r.ourTags.join(", ") || "none"}`);
|
|
273
|
+
}
|
|
274
|
+
if (r.otherTagNamespaces === UNKNOWN) {
|
|
275
|
+
out.push(` OTHER TAG NAMESPACES ${UNKNOWN}`);
|
|
276
|
+
} else if (r.otherTagNamespaces.length > 0) {
|
|
277
|
+
out.push(` OTHER TAG NAMESPACES (not ours \u2014 inherited upstream or auxiliary)`);
|
|
278
|
+
for (const ns of r.otherTagNamespaces) {
|
|
279
|
+
const label = ns.prefix === "" ? "(bare, other series)" : `${ns.prefix}*`;
|
|
280
|
+
out.push(` ${label.padEnd(24)} ${ns.tags.length} tag(s), newest ${ns.latest}`);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
out.push("");
|
|
284
|
+
out.push(` DECLARED VERSIONS (read at the remote head)`);
|
|
285
|
+
out.push(` stack.release.json ${show(r.manifestVersion)}`);
|
|
286
|
+
out.push(` package.json ${show(r.packageVersion)}`);
|
|
287
|
+
out.push(
|
|
288
|
+
` agree ${r.versionsAgree === null ? "n/a" : r.versionsAgree === UNKNOWN ? UNKNOWN : r.versionsAgree ? "yes" : "NO \u2014 the release workflow hard-fails on this"}`
|
|
289
|
+
);
|
|
290
|
+
out.push("");
|
|
291
|
+
if (r.unreleasedCount === UNKNOWN) {
|
|
292
|
+
out.push(` UNRELEASED COMMITS ${UNKNOWN} (no verified OURS tag to measure from)`);
|
|
293
|
+
} else if (r.unreleasedCount === null) {
|
|
294
|
+
out.push(` UNRELEASED COMMITS n/a \u2014 nothing released yet to measure from`);
|
|
295
|
+
} else {
|
|
296
|
+
out.push(` UNRELEASED COMMITS ${r.unreleasedCount} above ${show(r.latestOurTag)}`);
|
|
297
|
+
if (Array.isArray(r.unreleasedCommits)) {
|
|
298
|
+
for (const c of r.unreleasedCommits.slice(0, 15)) out.push(` ${c}`);
|
|
299
|
+
if (r.unreleasedCommits.length > 15) out.push(` ... ${r.unreleasedCommits.length - 15} more`);
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
out.push("");
|
|
303
|
+
return out.join("\n");
|
|
304
|
+
}
|
|
305
|
+
function parseRepoTruthArgs(argv) {
|
|
306
|
+
const args = { repoRoot: process.cwd(), json: false, help: false };
|
|
307
|
+
for (let i = 0; i < argv.length; i++) {
|
|
308
|
+
const a = argv[i];
|
|
309
|
+
if (a === "--help" || a === "-h") args.help = true;
|
|
310
|
+
else if (a === "--json") args.json = true;
|
|
311
|
+
else if (a === "--repo" && argv[i + 1]) args.repoRoot = argv[++i];
|
|
312
|
+
else if (a === "--ours" && argv[i + 1]) args.oursPattern = new RegExp(argv[++i]);
|
|
313
|
+
}
|
|
314
|
+
return args;
|
|
315
|
+
}
|
|
316
|
+
var HELP = `
|
|
317
|
+
exe-os repo-truth \u2014 remote-authoritative repo state
|
|
318
|
+
|
|
319
|
+
Fetches with --prune --tags --prune-tags, then reports ONLY what the remote
|
|
320
|
+
says: default branch + head, open PRs, live branches classified by PR state
|
|
321
|
+
(merged / closed-unmerged / never-proposed), tags split by namespace so an
|
|
322
|
+
inherited upstream tag can never be reported as our latest release, declared
|
|
323
|
+
versions read at the remote head, and commits above our newest tag.
|
|
324
|
+
|
|
325
|
+
Anything that could not be fetched prints UNKNOWN. It never falls back to a
|
|
326
|
+
local value.
|
|
327
|
+
|
|
328
|
+
Usage:
|
|
329
|
+
exe-os repo-truth [--repo <path>] [--ours <regex>] [--json]
|
|
330
|
+
|
|
331
|
+
--repo <path> repository to inspect (default: cwd)
|
|
332
|
+
--ours <regex> override the "our tags" rule, e.g. '^v0\\.9\\.'
|
|
333
|
+
--json machine-readable output
|
|
334
|
+
|
|
335
|
+
Exit: 0 fully verified \xB7 1 something is UNKNOWN \xB7 2 usage error
|
|
336
|
+
`;
|
|
337
|
+
async function runRepoTruthCli(argv) {
|
|
338
|
+
const args = parseRepoTruthArgs(argv);
|
|
339
|
+
if (args.help) {
|
|
340
|
+
process.stdout.write(HELP);
|
|
341
|
+
return 0;
|
|
342
|
+
}
|
|
343
|
+
try {
|
|
344
|
+
await execFileAsync("git", ["rev-parse", "--git-dir"], { cwd: args.repoRoot, timeout: 1e4 });
|
|
345
|
+
} catch {
|
|
346
|
+
process.stderr.write(`exe-os repo-truth: not a git repository: ${args.repoRoot}
|
|
347
|
+
`);
|
|
348
|
+
return 2;
|
|
349
|
+
}
|
|
350
|
+
const report = await collectRepoTruth(args.repoRoot, { oursPattern: args.oursPattern });
|
|
351
|
+
process.stdout.write(args.json ? `${JSON.stringify(report, null, 2)}
|
|
352
|
+
` : `${renderRepoTruth(report)}
|
|
353
|
+
`);
|
|
354
|
+
return hasUnknowns(report) ? 1 : 0;
|
|
355
|
+
}
|
|
356
|
+
if (isMainModule(import.meta.url)) {
|
|
357
|
+
process.exit(await runRepoTruthCli(process.argv.slice(2)));
|
|
358
|
+
}
|
|
359
|
+
export {
|
|
360
|
+
UNKNOWN,
|
|
361
|
+
collectRepoTruth,
|
|
362
|
+
compareVersions,
|
|
363
|
+
hasUnknowns,
|
|
364
|
+
parseRepoTruthArgs,
|
|
365
|
+
parseTagName,
|
|
366
|
+
renderRepoTruth,
|
|
367
|
+
runRepoTruthCli,
|
|
368
|
+
seriesRegexFromVersion
|
|
369
|
+
};
|
package/dist/bin/exe-review.js
CHANGED
|
@@ -2,40 +2,40 @@
|
|
|
2
2
|
import {
|
|
3
3
|
flushBatch,
|
|
4
4
|
writeMemory
|
|
5
|
-
} from "../chunk-
|
|
6
|
-
import "../chunk-
|
|
5
|
+
} from "../chunk-OYQNNKNS.js";
|
|
6
|
+
import "../chunk-7UTJA6HF.js";
|
|
7
7
|
import "../chunk-CHCA3ZM2.js";
|
|
8
8
|
import "../chunk-OTVEIJUQ.js";
|
|
9
|
-
import "../chunk-
|
|
9
|
+
import "../chunk-3F2UB4IQ.js";
|
|
10
10
|
import {
|
|
11
11
|
fastDbInit
|
|
12
|
-
} from "../chunk-
|
|
12
|
+
} from "../chunk-HR2R2QER.js";
|
|
13
13
|
import "../chunk-5MOYSU5A.js";
|
|
14
14
|
import "../chunk-4QCFFW2H.js";
|
|
15
15
|
import "../chunk-76CJBM36.js";
|
|
16
16
|
import {
|
|
17
17
|
getCurrentSessionScope,
|
|
18
18
|
strictSessionScopeFilter
|
|
19
|
-
} from "../chunk-
|
|
19
|
+
} from "../chunk-XHYHX6F7.js";
|
|
20
20
|
import "../chunk-BTSWFMEH.js";
|
|
21
|
-
import "../chunk-
|
|
22
|
-
import "../chunk-
|
|
23
|
-
import "../chunk-
|
|
21
|
+
import "../chunk-WAEKYKTK.js";
|
|
22
|
+
import "../chunk-44C7QNZS.js";
|
|
23
|
+
import "../chunk-JTWTBX2M.js";
|
|
24
24
|
import "../chunk-KI5PFRG6.js";
|
|
25
25
|
import "../chunk-WT4RI36X.js";
|
|
26
26
|
import "../chunk-E23LNUWJ.js";
|
|
27
27
|
import "../chunk-QAEWWYHL.js";
|
|
28
28
|
import "../chunk-EIKATSE4.js";
|
|
29
|
-
import "../chunk-
|
|
29
|
+
import "../chunk-MDGYXUOV.js";
|
|
30
30
|
import "../chunk-GBNB4EWD.js";
|
|
31
31
|
import "../chunk-UXLO7VHX.js";
|
|
32
32
|
import "../chunk-DSOQUQTV.js";
|
|
33
|
-
import "../chunk-
|
|
33
|
+
import "../chunk-E2WEFZOR.js";
|
|
34
34
|
import "../chunk-AJIXH5JF.js";
|
|
35
|
-
import "../chunk-
|
|
35
|
+
import "../chunk-L6ZNURWN.js";
|
|
36
36
|
import "../chunk-XTWHNLGD.js";
|
|
37
37
|
import "../chunk-AM7S2TY6.js";
|
|
38
|
-
import "../chunk-
|
|
38
|
+
import "../chunk-HIIXCAEE.js";
|
|
39
39
|
import "../chunk-CVYC6DUW.js";
|
|
40
40
|
import "../chunk-QZL6E4UB.js";
|
|
41
41
|
import "../chunk-CDUB5Q6J.js";
|
|
@@ -53,11 +53,11 @@ import {
|
|
|
53
53
|
getCoordinatorName,
|
|
54
54
|
getEmployee,
|
|
55
55
|
loadEmployees
|
|
56
|
-
} from "../chunk-
|
|
56
|
+
} from "../chunk-5DCCKHDY.js";
|
|
57
57
|
import "../chunk-TKDITWDN.js";
|
|
58
58
|
import "../chunk-BBMTVAE3.js";
|
|
59
59
|
import "../chunk-5YEUPUV4.js";
|
|
60
|
-
import "../chunk-
|
|
60
|
+
import "../chunk-UTDMTQNH.js";
|
|
61
61
|
import "../chunk-YYB5PMTK.js";
|
|
62
62
|
import "../chunk-NJFJWQNN.js";
|
|
63
63
|
import "../chunk-V3W3SATA.js";
|
|
@@ -65,9 +65,9 @@ import "../chunk-JY5GAZYC.js";
|
|
|
65
65
|
import "../chunk-FXU7JOXK.js";
|
|
66
66
|
import "../chunk-HPXFKUGU.js";
|
|
67
67
|
import "../chunk-WNBZJSQT.js";
|
|
68
|
-
import "../chunk-
|
|
68
|
+
import "../chunk-DKBPCOU4.js";
|
|
69
69
|
import "../chunk-A7XLR3K7.js";
|
|
70
|
-
import "../chunk-
|
|
70
|
+
import "../chunk-GB3AHV5F.js";
|
|
71
71
|
import "../chunk-A7JYF4RG.js";
|
|
72
72
|
import "../chunk-ARX6TAGN.js";
|
|
73
73
|
import "../chunk-QMSEL5YS.js";
|
package/dist/bin/exe-search.js
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
hybridSearch
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-ZXB56YR2.js";
|
|
5
5
|
import "../chunk-VMHZSZQJ.js";
|
|
6
6
|
import {
|
|
7
7
|
initStore
|
|
8
|
-
} from "../chunk-
|
|
9
|
-
import "../chunk-
|
|
8
|
+
} from "../chunk-OYQNNKNS.js";
|
|
9
|
+
import "../chunk-7UTJA6HF.js";
|
|
10
10
|
import "../chunk-CHCA3ZM2.js";
|
|
11
11
|
import "../chunk-OTVEIJUQ.js";
|
|
12
|
-
import "../chunk-
|
|
12
|
+
import "../chunk-3F2UB4IQ.js";
|
|
13
13
|
import "../chunk-5MOYSU5A.js";
|
|
14
14
|
import "../chunk-4QCFFW2H.js";
|
|
15
15
|
import "../chunk-76CJBM36.js";
|
|
16
16
|
import "../chunk-GJV3WDWM.js";
|
|
17
17
|
import "../chunk-MP2AFCGL.js";
|
|
18
|
-
import "../chunk-
|
|
18
|
+
import "../chunk-5DCCKHDY.js";
|
|
19
19
|
import "../chunk-TKDITWDN.js";
|
|
20
20
|
import "../chunk-BBMTVAE3.js";
|
|
21
21
|
import "../chunk-5YEUPUV4.js";
|
|
22
|
-
import "../chunk-
|
|
22
|
+
import "../chunk-UTDMTQNH.js";
|
|
23
23
|
import "../chunk-YYB5PMTK.js";
|
|
24
24
|
import "../chunk-NJFJWQNN.js";
|
|
25
25
|
import "../chunk-V3W3SATA.js";
|
|
@@ -3,17 +3,17 @@ import {
|
|
|
3
3
|
findBestMatch,
|
|
4
4
|
getRecentCommits,
|
|
5
5
|
pushUnpushedCommits
|
|
6
|
-
} from "../chunk-
|
|
6
|
+
} from "../chunk-JOO35RHR.js";
|
|
7
7
|
import "../chunk-KZXMP6JG.js";
|
|
8
8
|
import {
|
|
9
9
|
flushBatch,
|
|
10
10
|
initStore,
|
|
11
11
|
writeMemory
|
|
12
|
-
} from "../chunk-
|
|
13
|
-
import "../chunk-
|
|
12
|
+
} from "../chunk-OYQNNKNS.js";
|
|
13
|
+
import "../chunk-7UTJA6HF.js";
|
|
14
14
|
import "../chunk-CHCA3ZM2.js";
|
|
15
15
|
import "../chunk-OTVEIJUQ.js";
|
|
16
|
-
import "../chunk-
|
|
16
|
+
import "../chunk-3F2UB4IQ.js";
|
|
17
17
|
import "../chunk-5MOYSU5A.js";
|
|
18
18
|
import "../chunk-4QCFFW2H.js";
|
|
19
19
|
import "../chunk-76CJBM36.js";
|
|
@@ -21,26 +21,26 @@ import {
|
|
|
21
21
|
createReviewForCompletedTask,
|
|
22
22
|
sessionScopeFilter,
|
|
23
23
|
updateTaskStatus
|
|
24
|
-
} from "../chunk-
|
|
24
|
+
} from "../chunk-XHYHX6F7.js";
|
|
25
25
|
import "../chunk-BTSWFMEH.js";
|
|
26
|
-
import "../chunk-
|
|
27
|
-
import "../chunk-
|
|
28
|
-
import "../chunk-
|
|
26
|
+
import "../chunk-WAEKYKTK.js";
|
|
27
|
+
import "../chunk-44C7QNZS.js";
|
|
28
|
+
import "../chunk-JTWTBX2M.js";
|
|
29
29
|
import "../chunk-KI5PFRG6.js";
|
|
30
30
|
import "../chunk-WT4RI36X.js";
|
|
31
31
|
import "../chunk-E23LNUWJ.js";
|
|
32
32
|
import "../chunk-QAEWWYHL.js";
|
|
33
33
|
import "../chunk-EIKATSE4.js";
|
|
34
|
-
import "../chunk-
|
|
34
|
+
import "../chunk-MDGYXUOV.js";
|
|
35
35
|
import "../chunk-GBNB4EWD.js";
|
|
36
36
|
import "../chunk-UXLO7VHX.js";
|
|
37
37
|
import "../chunk-DSOQUQTV.js";
|
|
38
|
-
import "../chunk-
|
|
38
|
+
import "../chunk-E2WEFZOR.js";
|
|
39
39
|
import "../chunk-AJIXH5JF.js";
|
|
40
|
-
import "../chunk-
|
|
40
|
+
import "../chunk-L6ZNURWN.js";
|
|
41
41
|
import "../chunk-XTWHNLGD.js";
|
|
42
42
|
import "../chunk-AM7S2TY6.js";
|
|
43
|
-
import "../chunk-
|
|
43
|
+
import "../chunk-HIIXCAEE.js";
|
|
44
44
|
import "../chunk-CVYC6DUW.js";
|
|
45
45
|
import "../chunk-QZL6E4UB.js";
|
|
46
46
|
import "../chunk-CDUB5Q6J.js";
|
|
@@ -57,11 +57,11 @@ import "../chunk-GJV3WDWM.js";
|
|
|
57
57
|
import "../chunk-MP2AFCGL.js";
|
|
58
58
|
import {
|
|
59
59
|
getClient
|
|
60
|
-
} from "../chunk-
|
|
60
|
+
} from "../chunk-5DCCKHDY.js";
|
|
61
61
|
import "../chunk-TKDITWDN.js";
|
|
62
62
|
import "../chunk-BBMTVAE3.js";
|
|
63
63
|
import "../chunk-5YEUPUV4.js";
|
|
64
|
-
import "../chunk-
|
|
64
|
+
import "../chunk-UTDMTQNH.js";
|
|
65
65
|
import "../chunk-YYB5PMTK.js";
|
|
66
66
|
import "../chunk-NJFJWQNN.js";
|
|
67
67
|
import "../chunk-V3W3SATA.js";
|
|
@@ -69,9 +69,9 @@ import "../chunk-JY5GAZYC.js";
|
|
|
69
69
|
import "../chunk-FXU7JOXK.js";
|
|
70
70
|
import "../chunk-HPXFKUGU.js";
|
|
71
71
|
import "../chunk-WNBZJSQT.js";
|
|
72
|
-
import "../chunk-
|
|
72
|
+
import "../chunk-DKBPCOU4.js";
|
|
73
73
|
import "../chunk-A7XLR3K7.js";
|
|
74
|
-
import "../chunk-
|
|
74
|
+
import "../chunk-GB3AHV5F.js";
|
|
75
75
|
import "../chunk-A7JYF4RG.js";
|
|
76
76
|
import "../chunk-ARX6TAGN.js";
|
|
77
77
|
import "../chunk-QMSEL5YS.js";
|
|
@@ -442,7 +442,7 @@ try {
|
|
|
442
442
|
} catch {
|
|
443
443
|
}
|
|
444
444
|
try {
|
|
445
|
-
const { cleanupWorktree } = await import("../worktree-
|
|
445
|
+
const { cleanupWorktree } = await import("../worktree-GOGT2LZP.js");
|
|
446
446
|
const cleanup = cleanupWorktree(process.cwd(), agentName);
|
|
447
447
|
if (cleanup.cleaned) {
|
|
448
448
|
process.stderr.write(`[session-cleanup] worktree cleaned: ${cleanup.reason}
|
package/dist/bin/exe-settings.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
assertSecureEndpoint
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-
|
|
3
|
+
} from "../chunk-77JP3LK4.js";
|
|
4
|
+
import "../chunk-WV3TOOL7.js";
|
|
5
5
|
import "../chunk-NEHOQ3P2.js";
|
|
6
6
|
import "../chunk-CW2UCKHS.js";
|
|
7
7
|
import "../chunk-VV5EZZNT.js";
|
|
8
8
|
import "../chunk-JTB5V6BV.js";
|
|
9
9
|
import "../chunk-NUTZJZKW.js";
|
|
10
|
-
import "../chunk-
|
|
10
|
+
import "../chunk-MBNIJXKI.js";
|
|
11
11
|
import "../chunk-PGLPUP37.js";
|
|
12
12
|
import "../chunk-QGGH7LOU.js";
|
|
13
13
|
import "../chunk-VHJVD3MZ.js";
|
|
@@ -17,11 +17,11 @@ import {
|
|
|
17
17
|
resolveEmbeddingsEnabled,
|
|
18
18
|
setEmbeddingsEnabled
|
|
19
19
|
} from "../chunk-KWOAM7TA.js";
|
|
20
|
-
import "../chunk-
|
|
21
|
-
import "../chunk-
|
|
20
|
+
import "../chunk-OYQNNKNS.js";
|
|
21
|
+
import "../chunk-7UTJA6HF.js";
|
|
22
22
|
import "../chunk-CHCA3ZM2.js";
|
|
23
23
|
import "../chunk-OTVEIJUQ.js";
|
|
24
|
-
import "../chunk-
|
|
24
|
+
import "../chunk-3F2UB4IQ.js";
|
|
25
25
|
import "../chunk-5MOYSU5A.js";
|
|
26
26
|
import "../chunk-4QCFFW2H.js";
|
|
27
27
|
import "../chunk-76CJBM36.js";
|
|
@@ -42,11 +42,11 @@ import "../chunk-NLEW62VC.js";
|
|
|
42
42
|
import "../chunk-MP2AFCGL.js";
|
|
43
43
|
import {
|
|
44
44
|
loadEmployeesSync
|
|
45
|
-
} from "../chunk-
|
|
45
|
+
} from "../chunk-5DCCKHDY.js";
|
|
46
46
|
import "../chunk-TKDITWDN.js";
|
|
47
47
|
import "../chunk-BBMTVAE3.js";
|
|
48
48
|
import "../chunk-5YEUPUV4.js";
|
|
49
|
-
import "../chunk-
|
|
49
|
+
import "../chunk-UTDMTQNH.js";
|
|
50
50
|
import "../chunk-YYB5PMTK.js";
|
|
51
51
|
import "../chunk-NJFJWQNN.js";
|
|
52
52
|
import "../chunk-V3W3SATA.js";
|
|
@@ -56,9 +56,9 @@ import "../chunk-HPXFKUGU.js";
|
|
|
56
56
|
import {
|
|
57
57
|
DEFAULT_RUNTIME
|
|
58
58
|
} from "../chunk-WNBZJSQT.js";
|
|
59
|
-
import "../chunk-
|
|
59
|
+
import "../chunk-DKBPCOU4.js";
|
|
60
60
|
import "../chunk-A7XLR3K7.js";
|
|
61
|
-
import "../chunk-
|
|
61
|
+
import "../chunk-GB3AHV5F.js";
|
|
62
62
|
import "../chunk-A7JYF4RG.js";
|
|
63
63
|
import "../chunk-ARX6TAGN.js";
|
|
64
64
|
import {
|