@askexenow/exe-os 0.9.365 → 0.9.368
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/.env.askexe-control-plane.example +3 -1
- package/deploy/compose/.env.customer.example +6 -2
- package/deploy/compose/.env.example +8 -2
- package/deploy/compose/docker-compose.yml +21 -2
- package/deploy/compose/generate-env.ts +21 -1
- package/dist/.dist-verified.json +3 -3
- package/dist/{active-agent-MGF7J3HB.js → active-agent-6WNC756A.js} +3 -3
- package/dist/{active-agent-C6DPH43L.js → active-agent-RDTJGZHP.js} +3 -3
- package/dist/{agent-defs-generator-X7TVMPVB.js → agent-defs-generator-M5AUL3WM.js} +2 -2
- package/dist/agent-heartbeat-CQPGJIFF.js +13 -0
- package/dist/{agent-loop-E7RZCFDB.js → agent-loop-FOK2IRZQ.js} +1 -1
- package/dist/{agentic-ontology-CARDCG37.js → agentic-ontology-ZJBRYETW.js} +1 -1
- package/dist/{backfill-metadata-ANCJA6LA.js → backfill-metadata-Q4X23XLR.js} +5 -5
- package/dist/{backup-verify-F7BHVEF7.js → backup-verify-UKLX6IEK.js} +1 -1
- package/dist/behavior-injection-C3HEKSJY.js +60 -0
- package/dist/{behaviors-R2IE3PEN.js → behaviors-UCMAREU3.js} +8 -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 +5 -5
- package/dist/bin/cleanup-stale-review-tasks.js +15 -14
- package/dist/bin/cli.js +20 -20
- package/dist/bin/deferred-daemon-restart.js +88 -83
- package/dist/bin/exe-agent-config.js +2 -2
- package/dist/bin/exe-agent.js +252 -14
- package/dist/bin/exe-assign.js +6 -6
- package/dist/bin/exe-boot.js +33 -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 +16 -15
- package/dist/bin/exe-doctor.js +6 -6
- package/dist/bin/exe-export-behaviors.js +10 -8
- package/dist/bin/exe-forget.js +7 -7
- package/dist/bin/exe-gateway.js +7 -7
- package/dist/bin/exe-healthcheck.js +5 -5
- package/dist/bin/exe-heartbeat.js +18 -17
- package/dist/bin/exe-kill.js +19 -18
- package/dist/bin/exe-launch-agent.js +25 -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 +16 -15
- package/dist/bin/exe-pending-notifications.js +15 -14
- package/dist/bin/exe-pending-reviews.js +15 -14
- package/dist/bin/exe-rename.js +4 -4
- package/dist/bin/exe-review.js +18 -17
- package/dist/bin/exe-search.js +6 -6
- package/dist/bin/exe-session-cleanup.js +20 -18
- package/dist/bin/exe-settings.js +10 -10
- package/dist/bin/exe-start-codex.js +81 -19
- package/dist/bin/exe-start-opencode.js +11 -9
- package/dist/bin/exe-status.js +17 -16
- package/dist/bin/exe-support.js +3 -3
- package/dist/bin/exe-team.js +4 -4
- package/dist/bin/exe-verify-running-images.js +123 -4
- package/dist/bin/exe-watchdog.js +44 -3
- package/dist/bin/git-sweep.js +25 -15
- package/dist/bin/graph-backfill.js +7 -7
- package/dist/bin/graph-export.js +6 -6
- package/dist/bin/import-history.js +10 -10
- package/dist/bin/install.js +90 -85
- 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 +4 -4
- package/dist/bin/postgres-agentic-semantic-backfill.js +4 -4
- package/dist/bin/reconcile-backlog.js +47 -6
- package/dist/bin/registry-proxy.js +1 -1
- package/dist/bin/scan-tasks.js +15 -14
- package/dist/bin/setup.js +1 -1
- package/dist/bin/shard-migrate.js +5 -5
- package/dist/bin/stack-update.js +35 -6
- package/dist/bin/verify-stack.js +11 -1
- package/dist/bin/vps-health-gate.js +1 -1
- package/dist/{boot-generation-X45BSVZY.js → boot-generation-7H7Y4KC2.js} +3 -3
- package/dist/{boot-review-sections-OBVRXXSF.js → boot-review-sections-4AGCECCP.js} +14 -13
- package/dist/build-manifest.json +910 -845
- package/dist/{capability-cards-57FURUMR.js → capability-cards-6KAC5D2Z.js} +2 -2
- package/dist/{capacity-monitor-QEL62JDO.js → capacity-monitor-J2Y4SFLA.js} +16 -15
- package/dist/{catchup-brief-PMXTCASA.js → catchup-brief-F2HKF2CU.js} +19 -18
- package/dist/{chunk-5CBGH6RA.js → chunk-2AS6FG6C.js} +3 -3
- package/dist/{chunk-TO6TB75E.js → chunk-2UBMXN4D.js} +2 -2
- package/dist/{chunk-J6I7X272.js → chunk-2UGU3V63.js} +1 -1
- package/dist/{chunk-45EQTS7B.js → chunk-34BMZTWV.js} +1 -1
- package/dist/{chunk-JYFYIGYK.js → chunk-4DGIOK6T.js} +1 -1
- package/dist/{chunk-T6S45OLV.js → chunk-4GVJIMMK.js} +12 -6
- package/dist/{chunk-IXEFO6HD.js → chunk-4L732DE5.js} +3 -3
- package/dist/{chunk-MXEIZUXG.js → chunk-4RRMZJLG.js} +1 -1
- package/dist/{chunk-3JNVB5LG.js → chunk-5IVLOOJR.js} +1 -1
- package/dist/chunk-5YKNEL3W.js +356 -0
- package/dist/{chunk-EMZHB767.js → chunk-6EXOW5ZA.js} +9 -9
- package/dist/{chunk-6Q263OZE.js → chunk-6P7DVFKA.js} +1 -1
- package/dist/{chunk-ZDUO6QBH.js → chunk-6UZ3DEQI.js} +1 -1
- package/dist/{chunk-DJK45U7B.js → chunk-72JZQ7EV.js} +1 -1
- package/dist/{chunk-22YQBVMO.js → chunk-72QUZX6J.js} +4 -4
- package/dist/{chunk-DYWGIPVP.js → chunk-AAL6CDMQ.js} +7 -7
- package/dist/{chunk-E6ORBQHP.js → chunk-AAMGHW5W.js} +1 -0
- package/dist/{chunk-EJ4522YM.js → chunk-AJGX4Z34.js} +1 -1
- package/dist/{chunk-M7EES2KM.js → chunk-BEPO36MW.js} +3 -3
- package/dist/{chunk-WR75WUEP.js → chunk-BFL3UB77.js} +1 -1
- package/dist/{chunk-NV6A5HDN.js → chunk-BFPQXPN3.js} +1 -1
- package/dist/{chunk-VGE6IHZB.js → chunk-BJKC6ZJU.js} +110 -86
- package/dist/{chunk-R7RM766N.js → chunk-BLNSUBP3.js} +3 -3
- package/dist/{chunk-52TIQJEQ.js → chunk-BNDHQGOY.js} +1 -1
- package/dist/{chunk-QYJANQWC.js → chunk-BPQWRR4H.js} +2 -2
- package/dist/{chunk-ANPE3TT3.js → chunk-BTGR55GX.js} +3 -3
- package/dist/chunk-BTSWFMEH.js +14 -0
- package/dist/{chunk-OPNROU5B.js → chunk-C4IJ5IS5.js} +1 -1
- package/dist/{chunk-BEHLIRRJ.js → chunk-C5FOA5GO.js} +14 -3
- package/dist/{chunk-EHHMNKOA.js → chunk-CSBD7QLZ.js} +1 -1
- package/dist/{chunk-EKVTRI3N.js → chunk-CU2OUUSV.js} +27 -6
- package/dist/{chunk-P47MPWNU.js → chunk-CXHRNESJ.js} +1 -1
- package/dist/{chunk-F2S3M5MB.js → chunk-DRMGPZSC.js} +2 -2
- package/dist/{chunk-KRUYQFSH.js → chunk-DYPKSVB7.js} +5 -5
- package/dist/{chunk-KSVLBATT.js → chunk-E5QQZDQN.js} +53 -0
- package/dist/{chunk-ODBRU6BF.js → chunk-EDB3LXBQ.js} +1542 -984
- package/dist/{chunk-IIZITKBV.js → chunk-EDRXCUEP.js} +4 -4
- package/dist/{chunk-4QKKLK3C.js → chunk-ELY5WBZX.js} +10 -10
- package/dist/{chunk-MPQXQ5IE.js → chunk-EZUSIF66.js} +1 -1
- package/dist/{chunk-DEFSN2FQ.js → chunk-FHYX64H3.js} +3 -3
- package/dist/{chunk-YMJOLEPE.js → chunk-FSALI4B7.js} +4 -4
- package/dist/{chunk-6GQYPJPG.js → chunk-FWKTZURC.js} +8 -8
- package/dist/{chunk-EWZYFG5Q.js → chunk-FWVPGXHD.js} +5 -5
- package/dist/{chunk-DWAQOEXL.js → chunk-GILYOIMP.js} +2 -2
- package/dist/{chunk-RZIKSE6N.js → chunk-GP3J3AOT.js} +4 -4
- package/dist/{chunk-LHOKWZKL.js → chunk-H6J7N3BZ.js} +1 -1
- package/dist/{chunk-EVPBYX2Z.js → chunk-HQSUXAB4.js} +1 -1
- package/dist/{chunk-IM2I7OOS.js → chunk-HTLJHSN4.js} +1 -1
- package/dist/{chunk-JUOZLXLH.js → chunk-HXV3DGL7.js} +1 -1
- package/dist/{chunk-OFGFRT5J.js → chunk-IEE6X6R2.js} +1 -1
- package/dist/{chunk-SP37DONS.js → chunk-IKRIUEIF.js} +1 -1
- package/dist/{chunk-RHX6MNWY.js → chunk-J44774XC.js} +1 -1
- package/dist/{chunk-7C4FUNVO.js → chunk-J77ZIMH5.js} +5 -5
- package/dist/{chunk-NO3M2AFM.js → chunk-JDPV7W2L.js} +1 -1
- package/dist/{chunk-FXPAUDCZ.js → chunk-KGPWS4KE.js} +1 -1
- package/dist/{chunk-L3TB7CC3.js → chunk-KM6XSFHP.js} +12 -2
- package/dist/{chunk-ZEKCHV43.js → chunk-KWQ7RHYD.js} +4 -4
- package/dist/{chunk-QFIVK3G5.js → chunk-KYVIV54Y.js} +1 -1
- package/dist/chunk-KZXMP6JG.js +319 -0
- package/dist/{chunk-AGQAGOQN.js → chunk-LJWCK2DR.js} +9 -9
- package/dist/{chunk-O2MEBF23.js → chunk-MCXYNYZI.js} +30 -2
- package/dist/{chunk-L2VZBPJJ.js → chunk-MWEIBVBS.js} +13 -1
- package/dist/{chunk-RVWALVDT.js → chunk-MXP27XTP.js} +2 -2
- package/dist/{chunk-DQ5KHWFD.js → chunk-N3CGSO3S.js} +1 -1
- package/dist/{chunk-ZNEBZCZR.js → chunk-NNXPIJRB.js} +1 -1
- package/dist/{chunk-MZJBUAC3.js → chunk-NWE3CFX7.js} +4 -4
- package/dist/{chunk-BRLS5OLZ.js → chunk-OBESOWFJ.js} +35 -4
- package/dist/{chunk-5KLQCGI5.js → chunk-OL3QP3AU.js} +171 -1
- package/dist/{chunk-ESTR7QUP.js → chunk-P3PAD6AA.js} +1 -1
- package/dist/{chunk-2FYIMTQE.js → chunk-PGF5I7EV.js} +2 -2
- package/dist/{agent-heartbeat-I5UPGXAU.js → chunk-PHUHIVD5.js} +4 -5
- package/dist/{chunk-C3UAQ3JG.js → chunk-PVWM2WMM.js} +1 -1
- package/dist/{chunk-EWCEUO65.js → chunk-QCSAYYL6.js} +1 -1
- package/dist/{chunk-SBAU735L.js → chunk-QE5KWKVU.js} +27 -6
- package/dist/{chunk-LZKYVMBY.js → chunk-QKZEUCTS.js} +2 -2
- package/dist/{chunk-POPRJKAY.js → chunk-QS6HI4B6.js} +6 -0
- package/dist/{chunk-JNVQGLPX.js → chunk-QT6CNCXO.js} +3 -3
- package/dist/{chunk-J4U5Z7VX.js → chunk-QZYYCPNL.js} +4 -4
- package/dist/{chunk-RD4E5G3B.js → chunk-RDIZSXXD.js} +1 -1
- package/dist/{chunk-2RQT7TED.js → chunk-RFWOXKVL.js} +55 -3
- package/dist/chunk-S2YTU74T.js +76 -0
- package/dist/{chunk-X6A2VWVJ.js → chunk-TP7BFVQP.js} +2 -2
- package/dist/{chunk-CKG6CVKI.js → chunk-TTJWPV4G.js} +1 -1
- package/dist/chunk-TX3Q2GIL.js +97 -0
- package/dist/{chunk-Q7BU5Q6I.js → chunk-UATT6BNO.js} +3 -3
- package/dist/{chunk-PPGPCWRC.js → chunk-UVM5ZXO2.js} +4 -4
- package/dist/{chunk-BATQKSLI.js → chunk-V7E37GE3.js} +2 -2
- package/dist/{chunk-U373MEF5.js → chunk-VD3CVNGB.js} +3 -3
- package/dist/{chunk-ZSZPMUNX.js → chunk-VIW62NN5.js} +126 -7
- package/dist/{chunk-EPNWEOOE.js → chunk-VTOO5UB3.js} +10 -10
- package/dist/chunk-W5MCOZTW.js +304 -0
- package/dist/{chunk-2ESB5SDP.js → chunk-WJOJWRN5.js} +139 -33
- package/dist/{chunk-CPILYY2K.js → chunk-X4MRVNR3.js} +1 -1
- package/dist/{chunk-EPDNWY5P.js → chunk-XBTQPQN7.js} +1 -1
- package/dist/{behavior-injection-XQ4B7DCF.js → chunk-XOTDAKJL.js} +24 -38
- package/dist/{chunk-ORNCMRIX.js → chunk-Y4AYNLXU.js} +31 -37
- package/dist/{chunk-WYLFDSIE.js → chunk-YGPJ7VSJ.js} +48 -10
- package/dist/{chunk-ZRKEUCUZ.js → chunk-ZR3VMM3X.js} +12 -10
- package/dist/{chunk-JITNFE4W.js → chunk-ZWONQU5S.js} +1 -1
- package/dist/{cleanup-graph-garbage-CAA625RJ.js → cleanup-graph-garbage-FBSQI33K.js} +8 -8
- package/dist/{cloud-sync-command-DBB7WRHL.js → cloud-sync-command-NHGVDTLM.js} +11 -3
- package/dist/{cloud-sync-db-init-V7IB23W5.js → cloud-sync-db-init-I75VOTXC.js} +1 -1
- package/dist/{cloud-sync-shutdown-2D3B73CJ.js → cloud-sync-shutdown-JGOFGGET.js} +2 -2
- package/dist/{cloud-sync-state-5DFKLWNB.js → cloud-sync-state-QF3TMMJ4.js} +3 -1
- package/dist/{co-activation-JVN7EBS6.js → co-activation-AE5L2SJV.js} +2 -2
- package/dist/{co-occurrence-526PTFGT.js → co-occurrence-O65D4SCN.js} +6 -6
- package/dist/codex-consolidation-PPXNBXCV.js +96 -0
- package/dist/{conversation-entity-extractor-JO56DB2E.js → conversation-entity-extractor-LFIDTD2O.js} +4 -4
- package/dist/{crdt-sync-LIJLZKFE.js → crdt-sync-NRWDBRSE.js} +1 -1
- package/dist/{crm-webhook-55F7Y6D2.js → crm-webhook-XOQGX6DV.js} +2 -2
- package/dist/{cto-delegation-gate-QIYV4KFO.js → cto-delegation-gate-ZGOAXQI2.js} +14 -13
- package/dist/{daemon-orchestration-Q3GJA2JJ.js → daemon-orchestration-ZMQWYYDT.js} +19 -18
- package/dist/dispatch-intent-journal-VV6HMZC4.js +17 -0
- package/dist/{doc-graph-extractor-P46R4QME.js → doc-graph-extractor-6C5JBKPP.js} +6 -6
- package/dist/{documents-7KFEREWO.js → documents-FKSQGSO4.js} +6 -6
- package/dist/{dreaming-JMUXBAPU.js → dreaming-IB3H6NDZ.js} +18 -17
- package/dist/{employee-boot-brief-HN63D2BY.js → employee-boot-brief-5YRTUEJH.js} +25 -21
- package/dist/{exe-drift-7J7GX7DP.js → exe-drift-CUWUYX3O.js} +3 -3
- package/dist/{exe-export-KJ7B2OBU.js → exe-export-XWENYJNM.js} +7 -7
- package/dist/{exe-import-HPZDWKGE.js → exe-import-OWOMRF2S.js} +7 -7
- package/dist/{exe-key-2PREP464.js → exe-key-P356FGK5.js} +88 -83
- package/dist/{exe-org-VEIISATF.js → exe-org-UKIVF3KE.js} +8 -8
- package/dist/{exe-snapshot-JXQFLUKA.js → exe-snapshot-AZI2WW5Y.js} +19 -18
- package/dist/{fast-db-init-SCXJXOYX.js → fast-db-init-FPAPF3GB.js} +1 -1
- package/dist/{founder-context-U2SZPLYV.js → founder-context-QTQ6V3B5.js} +2 -2
- package/dist/gateway/index.js +11 -11
- package/dist/{git-staleness-S4NDR7NX.js → git-staleness-6ACWLV5Q.js} +2 -2
- package/dist/{global-procedures-ZOFTOXIR.js → global-procedures-RXIKBVLZ.js} +3 -3
- package/dist/{graph-auto-extract-CLVTSUSB.js → graph-auto-extract-Q4A4QMOF.js} +6 -6
- package/dist/{graph-rag-LSJLWGXV.js → graph-rag-RLRQMY54.js} +4 -4
- package/dist/{hook-integrity-SGTKBL6W.js → hook-integrity-3X2JRLBM.js} +1 -1
- package/dist/{hook-prefetch-BDSLB6F4.js → hook-prefetch-DU44UZQP.js} +15 -14
- package/dist/hooks/bug-report-worker.js +19 -18
- package/dist/hooks/codex-stop-task-finalizer.js +20 -19
- package/dist/hooks/commit-complete.js +35 -19
- 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 +12 -12
- package/dist/hooks/pre-compact.js +18 -17
- package/dist/hooks/pre-tool-use.js +86 -34
- package/dist/hooks/prompt-submit.js +36 -31
- package/dist/hooks/session-end.js +114 -100
- package/dist/hooks/session-start.js +16 -16
- package/dist/hooks/stop.js +83 -20
- package/dist/hooks/subagent-stop.js +19 -18
- package/dist/hooks/summary-worker.js +23 -22
- package/dist/index.js +27 -26
- package/dist/{installer-RC2JCKSE.js → installer-B7QYQE56.js} +8 -6
- package/dist/{installer-EA7T3PBD.js → installer-EXR25DDG.js} +6 -6
- package/dist/{installer-KCEM4RCG.js → installer-TOPA7673.js} +152 -8
- package/dist/{intercom-queue-6DZPHHQ2.js → intercom-queue-BZ4M3L4S.js} +14 -13
- package/dist/lib/cloud-sync.js +10 -10
- package/dist/lib/consolidation.js +8 -8
- 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/delivery-truth.js +25 -0
- 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 +185 -79
- package/dist/lib/hybrid-search.js +6 -6
- package/dist/lib/identity.js +2 -2
- package/dist/lib/license.js +2 -2
- package/dist/lib/messaging.js +15 -14
- 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 +2 -1
- package/dist/lib/store.js +5 -5
- package/dist/lib/task-router.js +3 -3
- package/dist/lib/tasks.js +16 -15
- package/dist/lib/tmux-routing.js +14 -13
- package/dist/lib/token-spend.js +3 -3
- package/dist/{license-gate-HMSMUIAU.js → license-gate-YTIOLKVV.js} +3 -3
- package/dist/{license-sync-FBCMPC4J.js → license-sync-5VE5OSTV.js} +2 -2
- package/dist/mcp/register-tools.js +87 -82
- package/dist/mcp/server.js +90 -85
- 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 +26 -23
- 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 +18 -17
- package/dist/mcp/tools/send-message.js +17 -16
- package/dist/mcp/tools/update-task.js +17 -16
- package/dist/{mcp-http-config-YKJN52HG.js → mcp-http-config-XUNRIGQH.js} +3 -3
- package/dist/{mcp-session-identity-QLUVYWPR.js → mcp-session-identity-4UIG7KLK.js} +14 -13
- package/dist/{memory-cards-K2OSX4AW.js → memory-cards-R74YU4CO.js} +5 -5
- package/dist/{memory-graph-extractor-YLTSKLSY.js → memory-graph-extractor-3B4QJUXI.js} +7 -7
- package/dist/{memory-poisoning-defense-IPO4ADRL.js → memory-poisoning-defense-OAKFL5O2.js} +2 -2
- package/dist/{memory-pressure-watchdog-ZI3TH2OF.js → memory-pressure-watchdog-FFC2CHFJ.js} +15 -14
- package/dist/{memory-reflection-ZKVRU3NT.js → memory-reflection-5IJ6RE2J.js} +2 -2
- package/dist/{notification-ledger-4REL6M3T.js → notification-ledger-P5XBUYKO.js} +17 -15
- package/dist/{notifications-UXJUAP3C.js → notifications-LLCCHRYV.js} +14 -13
- package/dist/{orchestration-events-GMRGGBMN.js → orchestration-events-VBGCIQSS.js} +3 -3
- package/dist/{orchestrator-5TV75HDJ.js → orchestrator-EB3SCTAJ.js} +16 -15
- package/dist/{org-brief-session-7AZZEO3F.js → org-brief-session-GDCDKBFF.js} +6 -6
- package/dist/{org-consent-policy-XT6UZENB.js → org-consent-policy-HCD42NBN.js} +2 -2
- package/dist/{org-partner-runtime-WLZAZJIY.js → org-partner-runtime-TPVKFR6E.js} +6 -6
- package/dist/{org-row-visibility-A5XM4MVO.js → org-row-visibility-ZZLOPZLH.js} +1 -1
- package/dist/{pipeline-router-UEVXDUHR.js → pipeline-router-3JTL2KF6.js} +3 -3
- package/dist/{plan-limits-QEP32X4W.js → plan-limits-MTHRP4WY.js} +5 -5
- package/dist/{projection-worker-GMRC6SBH.js → projection-worker-FLASNERC.js} +2 -2
- package/dist/{prospective-memory-QLHSAPSG.js → prospective-memory-HI3WUY4U.js} +2 -2
- package/dist/{push-notifications-GKRPXOGI.js → push-notifications-DFSR6P7V.js} +15 -14
- package/dist/{reranker-GB4VEMUV.js → reranker-XHBKUDGG.js} +1 -1
- package/dist/{retrieval-health-QIBPBGN6.js → retrieval-health-NYKSDS6M.js} +1 -1
- package/dist/{review-polling-MU47NQ2N.js → review-polling-UAV6DZIZ.js} +15 -14
- package/dist/runtime/index.js +23 -22
- package/dist/{session-events-YMQ3VGBJ.js → session-events-YCYPLWPG.js} +15 -14
- package/dist/{session-kill-telemetry-VGPKE57M.js → session-kill-telemetry-UEJTHL65.js} +15 -14
- package/dist/{session-scope-P46KAHXQ.js → session-scope-LXDW7LJJ.js} +14 -13
- package/dist/{setup-wizard-BRNHSJ4U.js → setup-wizard-OVJQYUUL.js} +1 -1
- package/dist/{skill-refinement-NLYDSFEH.js → skill-refinement-EWRJID73.js} +3 -3
- package/dist/{stack-promote-NHFTNIM2.js → stack-promote-4IJM36OG.js} +5 -4
- package/dist/{stack-release-AQVKZUS7.js → stack-release-BAIRY65H.js} +5 -4
- package/dist/{stack-update-LLX5KT7G.js → stack-update-VDM5WXRS.js} +10 -3
- package/dist/stalled-dispatch-escalation-MHLYH2PT.js +80 -0
- package/dist/{steward-gate-JKHYFAHA.js → steward-gate-Y4N2XY3R.js} +3 -3
- package/dist/{subagent-brief-injection-VDVOHDOU.js → subagent-brief-injection-7A6JEVTP.js} +22 -20
- package/dist/{support-inbox-S6YO5YZU.js → support-inbox-LT4WJECQ.js} +4 -3
- package/dist/{task-enforcement-LXW45H5Z.js → task-enforcement-WOIZ5TLK.js} +15 -14
- package/dist/{task-request-inbox-UCSKDC3R.js → task-request-inbox-D65BPUKZ.js} +2 -2
- package/dist/{task-scope-GDLFE26E.js → task-scope-PQ67YRWP.js} +18 -16
- package/dist/{tasks-crud-W7VGWRUV.js → tasks-crud-TJNMUKKH.js} +14 -13
- package/dist/{tasks-notify-CT7NWCS4.js → tasks-notify-7UVC3VGI.js} +15 -14
- package/dist/{tasks-review-WCSKOUFW.js → tasks-review-WDWYISZ2.js} +14 -13
- package/dist/{telemetry-upload-FK5WKXVB.js → telemetry-upload-6LBGRJUE.js} +7 -7
- package/dist/{token-budget-GBNGSIU3.js → token-budget-XO5XW6DL.js} +3 -3
- package/dist/{tool-gates-3IC7DK4R.js → tool-gates-2OZY3GZM.js} +1 -1
- package/dist/{tool-gates-GXSYBVK4.js → tool-gates-7PLIOLAL.js} +1 -1
- package/dist/{tool-telemetry-VKMRS6MP.js → tool-telemetry-ZL6TTZWG.js} +1 -1
- package/dist/tui/App.js +23 -22
- package/dist/{tui-data-FTPV2XBQ.js → tui-data-UK7ZPKN4.js} +14 -13
- package/dist/{update-support-J6UWPUOC.js → update-support-BGL5KAZO.js} +12 -12
- package/dist/work-claims-XZL2DKQ3.js +53 -0
- package/dist/{work-state-heartbeat-4LDF6DSM.js → work-state-heartbeat-267YQ75U.js} +1 -1
- package/dist/{worker-gate-35VZINZG.js → worker-gate-RUM6MLIR.js} +1 -1
- package/dist/{workflow-engine-4DA6RSHI.js → workflow-engine-YQHGHKSJ.js} +2 -2
- package/dist/{worktree-H3YFJ3NU.js → worktree-3FO6EQ4G.js} +4 -4
- package/dist/{worktree-sweep-4EDLLQ2E.js → worktree-sweep-X7MUEEQS.js} +5 -5
- package/package.json +7 -2
- package/release-notes.json +93 -81
- /package/dist/{chunk-7Y6AQWVT.js → chunk-4AN2PWUK.js} +0 -0
- /package/dist/{chunk-7DMCAGSC.js → chunk-5U4UJGTW.js} +0 -0
- /package/dist/{chunk-3THNS2T7.js → chunk-EYIX6JU7.js} +0 -0
- /package/dist/{chunk-QYECRPGD.js → chunk-FDA45THL.js} +0 -0
- /package/dist/{chunk-MBBFL2SP.js → chunk-GIO4VU4J.js} +0 -0
- /package/dist/{chunk-LKYGSJ2E.js → chunk-I76LRCNA.js} +0 -0
- /package/dist/{chunk-UY6HRDB2.js → chunk-LBWEAQ6Z.js} +0 -0
- /package/dist/{chunk-VS4LPG66.js → chunk-MQ5RUHNZ.js} +0 -0
- /package/dist/{chunk-G2EAYH4U.js → chunk-PFCE4AXQ.js} +0 -0
- /package/dist/{chunk-3NBWARKC.js → chunk-SXAERZL2.js} +0 -0
- /package/dist/{chunk-BY7WWPRM.js → chunk-TKTQRSSD.js} +0 -0
- /package/dist/{chunk-JRPYLUXH.js → chunk-U2AZUMBZ.js} +0 -0
- /package/dist/{chunk-CMBF5WCL.js → chunk-W6FVADZS.js} +0 -0
- /package/dist/{core-memory-CMPPHJN5.js → core-memory-W5ZHHBRR.js} +0 -0
- /package/dist/{memory-isolation-ZB5S5HCO.js → memory-isolation-ZE7EDBO4.js} +0 -0
- /package/dist/{oauth-server-NP7KGF7N.js → oauth-server-3HG62YYJ.js} +0 -0
- /package/dist/{project-boot-LEZSK3W7.js → project-boot-3OAWKYLO.js} +0 -0
- /package/dist/{wiki-acl-5DKOWOIH.js → wiki-acl-FQV4E6M4.js} +0 -0
|
@@ -1,41 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
listBehaviors
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-VMJ2UH4S.js";
|
|
5
|
-
import "./chunk-QGGH7LOU.js";
|
|
6
|
-
import "./chunk-4QKKLK3C.js";
|
|
7
|
-
import "./chunk-QYECRPGD.js";
|
|
8
|
-
import "./chunk-CHCA3ZM2.js";
|
|
9
|
-
import "./chunk-OTVEIJUQ.js";
|
|
10
|
-
import "./chunk-7DMCAGSC.js";
|
|
11
|
-
import "./chunk-5MOYSU5A.js";
|
|
12
|
-
import "./chunk-4QCFFW2H.js";
|
|
13
|
-
import "./chunk-76CJBM36.js";
|
|
3
|
+
} from "./chunk-MCXYNYZI.js";
|
|
14
4
|
import {
|
|
15
5
|
incrementSkillUsage
|
|
16
|
-
} from "./chunk-
|
|
17
|
-
import "./chunk-BNHAZ65R.js";
|
|
18
|
-
import "./chunk-RIECV7SR.js";
|
|
19
|
-
import "./chunk-LNOS24GV.js";
|
|
20
|
-
import "./chunk-NLEW62VC.js";
|
|
21
|
-
import "./chunk-MP2AFCGL.js";
|
|
22
|
-
import "./chunk-BRLS5OLZ.js";
|
|
23
|
-
import "./chunk-TKDITWDN.js";
|
|
24
|
-
import "./chunk-BBMTVAE3.js";
|
|
25
|
-
import "./chunk-5YEUPUV4.js";
|
|
26
|
-
import "./chunk-NO3M2AFM.js";
|
|
27
|
-
import "./chunk-YYB5PMTK.js";
|
|
28
|
-
import "./chunk-NJFJWQNN.js";
|
|
29
|
-
import "./chunk-V3W3SATA.js";
|
|
30
|
-
import "./chunk-JY5GAZYC.js";
|
|
31
|
-
import "./chunk-FXU7JOXK.js";
|
|
32
|
-
import "./chunk-HPXFKUGU.js";
|
|
33
|
-
import "./chunk-QILQ5FCG.js";
|
|
34
|
-
import "./chunk-ARX6TAGN.js";
|
|
35
|
-
import "./chunk-QMSEL5YS.js";
|
|
36
|
-
import "./chunk-HSGBZSCA.js";
|
|
37
|
-
import "./chunk-JKKZGDLP.js";
|
|
38
|
-
import "./chunk-MLKGABMK.js";
|
|
6
|
+
} from "./chunk-PVWM2WMM.js";
|
|
39
7
|
|
|
40
8
|
// src/lib/behavior-injection.ts
|
|
41
9
|
import { appendFile } from "fs/promises";
|
|
@@ -49,6 +17,20 @@ function p0OverflowNotice(activeBehaviors, cap = BEHAVIOR_INJECTION_CAP) {
|
|
|
49
17
|
const dropped = storedP0 - injectedP0;
|
|
50
18
|
return `\u26A0\uFE0F ${storedP0} p0 behaviors stored, ${injectedP0} injected \u2014 ${dropped} dropped. Prune/promote to avoid silent loss.`;
|
|
51
19
|
}
|
|
20
|
+
var BEHAVIOR_SELECTION_ORDER_DOC = "p0 first, then identity rules, then most-recently-updated";
|
|
21
|
+
function behaviorTruncationNotice(injected, counts) {
|
|
22
|
+
const shown = injected.length;
|
|
23
|
+
const shownP0 = injected.filter((b) => b.priority === "p0").length;
|
|
24
|
+
const dropped = Math.max(0, counts.total - shown);
|
|
25
|
+
if (dropped === 0) return null;
|
|
26
|
+
const droppedP0 = Math.max(0, counts.p0 - shownP0);
|
|
27
|
+
const p0Clause = droppedP0 > 0 ? ` ${droppedP0} of them are p0 (showing ${shownP0} of ${counts.p0}).` : "";
|
|
28
|
+
return `\u26A0\uFE0F TRUNCATED: showing ${shown} of ${counts.total} active behaviors \u2014 ${dropped} not injected.${p0Clause} Selection order: ${BEHAVIOR_SELECTION_ORDER_DOC}. Your ruleset here is PARTIAL \u2014 do not assume a rule does not exist because it is absent. Run behavior(action='list', priority='p0') for the rest.`;
|
|
29
|
+
}
|
|
30
|
+
function formatOverCapWarning(agentId, counts, cap = BEHAVIOR_INJECTION_CAP) {
|
|
31
|
+
if (counts.total <= cap) return null;
|
|
32
|
+
return `\u26A0\uFE0F Over injection cap: ${agentId} now has ${counts.total} active behaviors (${counts.p0} p0) but only ~${cap} are injected into context (${BEHAVIOR_SELECTION_ORDER_DOC}). The rest are stored but NOT enforced at runtime. Prune stale ones with behavior(action='deactivate') or raise the priority of what must always apply.`;
|
|
33
|
+
}
|
|
52
34
|
function cosineSimilarity(a, b) {
|
|
53
35
|
if (a.length !== b.length || a.length === 0) return 0;
|
|
54
36
|
let dot = 0, normA = 0, normB = 0;
|
|
@@ -274,13 +256,17 @@ async function injectBehaviors(opts) {
|
|
|
274
256
|
);
|
|
275
257
|
}
|
|
276
258
|
}
|
|
259
|
+
|
|
277
260
|
export {
|
|
278
261
|
BEHAVIOR_INJECTION_CAP,
|
|
262
|
+
p0OverflowNotice,
|
|
263
|
+
BEHAVIOR_SELECTION_ORDER_DOC,
|
|
264
|
+
behaviorTruncationNotice,
|
|
265
|
+
formatOverCapWarning,
|
|
279
266
|
cosineSimilarity,
|
|
267
|
+
scoreRelevance,
|
|
280
268
|
extractKeywords,
|
|
269
|
+
selectRelevantBehaviors,
|
|
281
270
|
formatBehaviorsMarkdown,
|
|
282
|
-
injectBehaviors
|
|
283
|
-
p0OverflowNotice,
|
|
284
|
-
scoreRelevance,
|
|
285
|
-
selectRelevantBehaviors
|
|
271
|
+
injectBehaviors
|
|
286
272
|
};
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
import {
|
|
2
|
+
isValidSessionScope
|
|
3
|
+
} from "./chunk-BTSWFMEH.js";
|
|
1
4
|
import {
|
|
2
5
|
ensureAgentSymlink
|
|
3
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-P3PAD6AA.js";
|
|
4
7
|
import {
|
|
5
8
|
ensureWorktree,
|
|
6
9
|
ensureWorktreeAsync,
|
|
@@ -8,16 +11,17 @@ import {
|
|
|
8
11
|
getMainRepoRoot,
|
|
9
12
|
isInsideGitRepo,
|
|
10
13
|
isWorktreeDirty
|
|
11
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-KGPWS4KE.js";
|
|
12
15
|
import {
|
|
13
16
|
resolveRowVisibility
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import {
|
|
16
|
-
incrementSkillSuccess
|
|
17
|
-
} from "./chunk-C3UAQ3JG.js";
|
|
17
|
+
} from "./chunk-KYVIV54Y.js";
|
|
18
18
|
import {
|
|
19
19
|
runBudgetedSweep
|
|
20
20
|
} from "./chunk-KI5PFRG6.js";
|
|
21
|
+
import {
|
|
22
|
+
buildTaskResult,
|
|
23
|
+
serializeMessage
|
|
24
|
+
} from "./chunk-QAEWWYHL.js";
|
|
21
25
|
import {
|
|
22
26
|
reviewSignalPath,
|
|
23
27
|
taskSignalDir
|
|
@@ -27,14 +31,10 @@ import {
|
|
|
27
31
|
isLeaseExpired,
|
|
28
32
|
leaseExpiryIso
|
|
29
33
|
} from "./chunk-E23LNUWJ.js";
|
|
30
|
-
import {
|
|
31
|
-
buildTaskResult,
|
|
32
|
-
serializeMessage
|
|
33
|
-
} from "./chunk-QAEWWYHL.js";
|
|
34
34
|
import {
|
|
35
35
|
listSessions,
|
|
36
36
|
registerSession
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-CSBD7QLZ.js";
|
|
38
38
|
import {
|
|
39
39
|
listTmuxSessions
|
|
40
40
|
} from "./chunk-GBNB4EWD.js";
|
|
@@ -43,13 +43,16 @@ import {
|
|
|
43
43
|
} from "./chunk-UXLO7VHX.js";
|
|
44
44
|
import {
|
|
45
45
|
recordOrchestrationEventBestEffort
|
|
46
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-BFL3UB77.js";
|
|
47
47
|
import {
|
|
48
48
|
appendDispatchJournalEvent,
|
|
49
49
|
releaseDispatchClaim,
|
|
50
50
|
tryAcquireDispatchClaim,
|
|
51
51
|
writeDispatchAck
|
|
52
52
|
} from "./chunk-AJIXH5JF.js";
|
|
53
|
+
import {
|
|
54
|
+
incrementSkillSuccess
|
|
55
|
+
} from "./chunk-PVWM2WMM.js";
|
|
53
56
|
import {
|
|
54
57
|
assertRuntimeModelCompatible,
|
|
55
58
|
getAgentRuntime,
|
|
@@ -59,7 +62,7 @@ import {
|
|
|
59
62
|
import {
|
|
60
63
|
PlanLimitError,
|
|
61
64
|
assertEmployeeLimitSync
|
|
62
|
-
} from "./chunk-
|
|
65
|
+
} from "./chunk-PGF5I7EV.js";
|
|
63
66
|
import {
|
|
64
67
|
getSessionKey
|
|
65
68
|
} from "./chunk-CVYC6DUW.js";
|
|
@@ -93,13 +96,13 @@ import {
|
|
|
93
96
|
loadEmployeesSync,
|
|
94
97
|
offloadReadIfMain,
|
|
95
98
|
offloadReadQuery
|
|
96
|
-
} from "./chunk-
|
|
99
|
+
} from "./chunk-OBESOWFJ.js";
|
|
97
100
|
import {
|
|
98
101
|
RUNTIME_TABLE
|
|
99
102
|
} from "./chunk-WNBZJSQT.js";
|
|
100
103
|
import {
|
|
101
104
|
loadDeviceId
|
|
102
|
-
} from "./chunk-
|
|
105
|
+
} from "./chunk-6UZ3DEQI.js";
|
|
103
106
|
import {
|
|
104
107
|
EXE_AI_DIR
|
|
105
108
|
} from "./chunk-QMSEL5YS.js";
|
|
@@ -1525,7 +1528,7 @@ async function createTaskCore(input) {
|
|
|
1525
1528
|
if (isCoordinatorSession) {
|
|
1526
1529
|
earlySessionScope = resolved;
|
|
1527
1530
|
} else {
|
|
1528
|
-
const { getSessionProject } = await import("./session-scope-
|
|
1531
|
+
const { getSessionProject } = await import("./session-scope-LXDW7LJJ.js");
|
|
1529
1532
|
const sessionProject = getSessionProject(resolved);
|
|
1530
1533
|
if (sessionProject && sessionProject !== input.projectName) {
|
|
1531
1534
|
scopeMismatchWarning = `session/project mismatch: session "${resolved}" owns "${sessionProject}" but task targets "${input.projectName}". Routed to default scope.`;
|
|
@@ -1829,7 +1832,7 @@ async function buildTaskRowsStatement(opts) {
|
|
|
1829
1832
|
}
|
|
1830
1833
|
if (opts.founderId !== null) {
|
|
1831
1834
|
try {
|
|
1832
|
-
const { founderScopeFilter } = await import("./founder-context-
|
|
1835
|
+
const { founderScopeFilter } = await import("./founder-context-QTQ6V3B5.js");
|
|
1833
1836
|
const founderFilter = founderScopeFilter(opts.founderId);
|
|
1834
1837
|
const cleaned = founderFilter.sql.replace(/^\s*AND\s+/, "");
|
|
1835
1838
|
conditions.push(cleaned);
|
|
@@ -4506,15 +4509,6 @@ function formatIntercomPrompt(reason = "nudge") {
|
|
|
4506
4509
|
}
|
|
4507
4510
|
}
|
|
4508
4511
|
|
|
4509
|
-
// src/lib/session-scope-token.ts
|
|
4510
|
-
var VALID_SESSION_SCOPE_RE = /^[a-zA-Z0-9_]+$/;
|
|
4511
|
-
function isValidSessionScope(scope) {
|
|
4512
|
-
return typeof scope === "string" && scope.length > 0 && scope.length <= 64 && VALID_SESSION_SCOPE_RE.test(scope);
|
|
4513
|
-
}
|
|
4514
|
-
function sanitizeSessionScope(scope) {
|
|
4515
|
-
return isValidSessionScope(scope) ? scope : null;
|
|
4516
|
-
}
|
|
4517
|
-
|
|
4518
4512
|
// src/lib/session-busy-pattern.ts
|
|
4519
4513
|
var BUSY_PATTERN = /[✻✽✶✳].*…|Running…|• Working|• Ran |• Explored|• Called|esc to interrupt|Waiting for \d+ background agents?/i;
|
|
4520
4514
|
|
|
@@ -5164,7 +5158,7 @@ async function verifyPaneAtCapacity(sessionName) {
|
|
|
5164
5158
|
reason: `capture-pane failed: ${err instanceof Error ? err.message : String(err)}`
|
|
5165
5159
|
};
|
|
5166
5160
|
}
|
|
5167
|
-
const { isAtCapacity } = await import("./capacity-monitor-
|
|
5161
|
+
const { isAtCapacity } = await import("./capacity-monitor-J2Y4SFLA.js");
|
|
5168
5162
|
if (!isAtCapacity(pane)) {
|
|
5169
5163
|
return {
|
|
5170
5164
|
atCapacity: false,
|
|
@@ -5398,7 +5392,7 @@ async function countScopedPendingReviews(targetSession, reviewer) {
|
|
|
5398
5392
|
}
|
|
5399
5393
|
async function countScopedOpenTasks(targetSession, agentId) {
|
|
5400
5394
|
try {
|
|
5401
|
-
const { fastDbInit } = await import("./fast-db-init-
|
|
5395
|
+
const { fastDbInit } = await import("./fast-db-init-FPAPF3GB.js");
|
|
5402
5396
|
const client = await fastDbInit();
|
|
5403
5397
|
const scope = extractRootExe(targetSession);
|
|
5404
5398
|
if (!scope) return 0;
|
|
@@ -5453,7 +5447,7 @@ function buildScopedInProgressTaskQuery(targetSession) {
|
|
|
5453
5447
|
async function findScopedInProgressTaskId(targetSession) {
|
|
5454
5448
|
const q = buildScopedInProgressTaskQuery(targetSession);
|
|
5455
5449
|
if (!q) return null;
|
|
5456
|
-
const { fastDbInit } = await import("./fast-db-init-
|
|
5450
|
+
const { fastDbInit } = await import("./fast-db-init-FPAPF3GB.js");
|
|
5457
5451
|
const client = await fastDbInit();
|
|
5458
5452
|
const result = await client.execute(q);
|
|
5459
5453
|
const id = result.rows[0]?.id;
|
|
@@ -5574,7 +5568,7 @@ function sendIntercom(targetSession, opts) {
|
|
|
5574
5568
|
const ledgerEnv = (process.env.EXE_NOTIFICATION_LEDGER ?? "").trim().toLowerCase();
|
|
5575
5569
|
if (ledgerEnv === "shadow" || ledgerEnv === "on") {
|
|
5576
5570
|
const ledgerScope = opts && "callerSessionScope" in opts ? opts.callerSessionScope : void 0;
|
|
5577
|
-
void import("./notification-ledger-
|
|
5571
|
+
void import("./notification-ledger-P5XBUYKO.js").then((m) => m.recordShadowNudge(targetSession, reason, ledgerScope, { force: opts?.force })).catch(() => {
|
|
5578
5572
|
});
|
|
5579
5573
|
}
|
|
5580
5574
|
if (!opts?.force && isDebounced(targetSession)) {
|
|
@@ -5710,7 +5704,7 @@ function scheduleDeferredSpawnNudge(input) {
|
|
|
5710
5704
|
return;
|
|
5711
5705
|
}
|
|
5712
5706
|
queueIntercom(input.sessionName, `spawn nudge failed after ${attempt} attempts: ${msg}`, "signal");
|
|
5713
|
-
void import("./notifications-
|
|
5707
|
+
void import("./notifications-LLCCHRYV.js").then(({ writeNotification: writeNotification2 }) => writeNotification2({
|
|
5714
5708
|
agentId: getCoordinatorName(),
|
|
5715
5709
|
agentRole: "COO",
|
|
5716
5710
|
event: "error_spike",
|
|
@@ -5804,7 +5798,7 @@ async function sendIntercomAsync(targetSession, opts) {
|
|
|
5804
5798
|
let ledgerClaim = null;
|
|
5805
5799
|
if (authoritativeLedger) {
|
|
5806
5800
|
try {
|
|
5807
|
-
const { claimAuthoritativeNudge } = await import("./notification-ledger-
|
|
5801
|
+
const { claimAuthoritativeNudge } = await import("./notification-ledger-P5XBUYKO.js");
|
|
5808
5802
|
const claim2 = await claimAuthoritativeNudge(
|
|
5809
5803
|
targetSession,
|
|
5810
5804
|
reason,
|
|
@@ -5827,7 +5821,7 @@ async function sendIntercomAsync(targetSession, opts) {
|
|
|
5827
5821
|
const markLedgerDelivered = async () => {
|
|
5828
5822
|
if (!ledgerClaim) return;
|
|
5829
5823
|
try {
|
|
5830
|
-
const { markNudgeDelivered } = await import("./notification-ledger-
|
|
5824
|
+
const { markNudgeDelivered } = await import("./notification-ledger-P5XBUYKO.js");
|
|
5831
5825
|
await markNudgeDelivered(ledgerClaim.id, ledgerClaim.sessionScope);
|
|
5832
5826
|
} catch {
|
|
5833
5827
|
}
|
|
@@ -5835,7 +5829,7 @@ async function sendIntercomAsync(targetSession, opts) {
|
|
|
5835
5829
|
const markLedgerFailed = async (error) => {
|
|
5836
5830
|
if (!ledgerClaim) return;
|
|
5837
5831
|
try {
|
|
5838
|
-
const { markNudgeDeliveryFailed } = await import("./notification-ledger-
|
|
5832
|
+
const { markNudgeDeliveryFailed } = await import("./notification-ledger-P5XBUYKO.js");
|
|
5839
5833
|
await markNudgeDeliveryFailed(ledgerClaim.id, error, ledgerClaim.sessionScope);
|
|
5840
5834
|
} catch {
|
|
5841
5835
|
}
|
|
@@ -6666,6 +6660,9 @@ function spawnEmployee(employeeName, exeSession, projectDir, opts) {
|
|
|
6666
6660
|
"update_task",
|
|
6667
6661
|
"list_tasks",
|
|
6668
6662
|
"get_task",
|
|
6663
|
+
// Work claims: spawned agents must be able to claim/release without a
|
|
6664
|
+
// permission prompt, or the dispatch gate becomes advisory in practice.
|
|
6665
|
+
"claim",
|
|
6669
6666
|
"ask_team_memory",
|
|
6670
6667
|
"store_behavior",
|
|
6671
6668
|
"get_identity",
|
|
@@ -7364,9 +7361,6 @@ export {
|
|
|
7364
7361
|
claudeSupportsAgentFlag,
|
|
7365
7362
|
PROVIDER_TABLE,
|
|
7366
7363
|
DEFAULT_PROVIDER,
|
|
7367
|
-
VALID_SESSION_SCOPE_RE,
|
|
7368
|
-
isValidSessionScope,
|
|
7369
|
-
sanitizeSessionScope,
|
|
7370
7364
|
isAmbiguousMultiCoordinatorContext,
|
|
7371
7365
|
isMultiCoordinatorSharedProject,
|
|
7372
7366
|
isScopeCoordinatorDead,
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
import {
|
|
2
|
+
isCrdtSyncEnabled
|
|
3
|
+
} from "./chunk-EYIX6JU7.js";
|
|
1
4
|
import {
|
|
2
5
|
compress,
|
|
3
6
|
decompress
|
|
4
7
|
} from "./chunk-NEHOQ3P2.js";
|
|
5
|
-
import {
|
|
6
|
-
isCrdtSyncEnabled
|
|
7
|
-
} from "./chunk-3THNS2T7.js";
|
|
8
8
|
import {
|
|
9
9
|
orgMembershipsPath,
|
|
10
10
|
orgModeActive
|
|
@@ -25,7 +25,7 @@ import {
|
|
|
25
25
|
import {
|
|
26
26
|
GHOST_BEHAVIOR_SQL,
|
|
27
27
|
isGhostBehaviorRow
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-MCXYNYZI.js";
|
|
29
29
|
import {
|
|
30
30
|
retryOnDaemonTransportError
|
|
31
31
|
} from "./chunk-VMJ2UH4S.js";
|
|
@@ -41,10 +41,10 @@ import {
|
|
|
41
41
|
loadEmployees,
|
|
42
42
|
registerBinSymlinks,
|
|
43
43
|
saveEmployees
|
|
44
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-OBESOWFJ.js";
|
|
45
45
|
import {
|
|
46
46
|
loadDeviceId
|
|
47
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-6UZ3DEQI.js";
|
|
48
48
|
import {
|
|
49
49
|
EXE_AI_DIR
|
|
50
50
|
} from "./chunk-QMSEL5YS.js";
|
|
@@ -216,6 +216,16 @@ async function markCloudSyncStageComplete(client, state, stage) {
|
|
|
216
216
|
lastAttemptAt: state.lastAttemptAt
|
|
217
217
|
});
|
|
218
218
|
}
|
|
219
|
+
async function resetCloudSyncResumeAttempts(client, state) {
|
|
220
|
+
state.resumeAttempts = 0;
|
|
221
|
+
const completed = CLOUD_SYNC_STAGE_NAMES.filter((name) => state.completed.has(name));
|
|
222
|
+
await writeResumeRecord(client, {
|
|
223
|
+
startedAt: state.startedAt,
|
|
224
|
+
completed,
|
|
225
|
+
resumeAttempts: 0,
|
|
226
|
+
lastAttemptAt: state.lastAttemptAt
|
|
227
|
+
});
|
|
228
|
+
}
|
|
219
229
|
async function clearCloudSyncStageResume(client) {
|
|
220
230
|
await client.execute({
|
|
221
231
|
sql: "DELETE FROM sync_meta WHERE key = ?",
|
|
@@ -286,6 +296,25 @@ function partialCloudSyncResult(values) {
|
|
|
286
296
|
codeContext: values.codeContext ?? base.codeContext
|
|
287
297
|
};
|
|
288
298
|
}
|
|
299
|
+
async function markCloudSyncSlicePending() {
|
|
300
|
+
try {
|
|
301
|
+
const { writeCloudSyncState, readCloudSyncState } = await import("./cloud-sync-state-QF3TMMJ4.js");
|
|
302
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
303
|
+
const previous = readCloudSyncState();
|
|
304
|
+
writeCloudSyncState({
|
|
305
|
+
lastSuccessAt: previous?.lastSuccessAt ?? null,
|
|
306
|
+
lastError: previous?.lastError ?? null,
|
|
307
|
+
consecutiveFailures: previous?.consecutiveFailures ?? 0,
|
|
308
|
+
paused: previous?.paused ?? false,
|
|
309
|
+
pausedAt: previous?.pausedAt ?? null,
|
|
310
|
+
intervalMs: Number(process.env.EXE_CLOUD_SYNC_INTERVAL_MS) || previous?.intervalMs || 5 * 6e4,
|
|
311
|
+
updatedAt: now,
|
|
312
|
+
pendingSliceAt: now
|
|
313
|
+
});
|
|
314
|
+
} catch (err) {
|
|
315
|
+
logError(`[cloud-sync] pending-slice state write failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
316
|
+
}
|
|
317
|
+
}
|
|
289
318
|
async function logResumeClearFailure(err) {
|
|
290
319
|
const msg = err instanceof Error ? err.message : String(err);
|
|
291
320
|
logError(`[cloud-sync] resume cursor clear failed: ${msg}`);
|
|
@@ -1024,7 +1053,7 @@ async function cloudSync(config, options) {
|
|
|
1024
1053
|
pullResult = await cloudPull(lastPullVersion, config);
|
|
1025
1054
|
if (pullResult.records.length > 0) {
|
|
1026
1055
|
if (shouldUseCrdtMergeForCloudSync()) {
|
|
1027
|
-
const { initCrdtDoc, importExistingMemories, readAllMemories } = await import("./crdt-sync-
|
|
1056
|
+
const { initCrdtDoc, importExistingMemories, readAllMemories } = await import("./crdt-sync-NRWDBRSE.js");
|
|
1028
1057
|
initCrdtDoc();
|
|
1029
1058
|
importExistingMemories(
|
|
1030
1059
|
pullResult.records.map((rec) => ({
|
|
@@ -1249,11 +1278,19 @@ async function cloudSync(config, options) {
|
|
|
1249
1278
|
pushed = memoryPush.pushed;
|
|
1250
1279
|
if (memoryPush.deferred) {
|
|
1251
1280
|
const elapsedMs = Date.now() - syncStartTime;
|
|
1281
|
+
if (pushed > 0) {
|
|
1282
|
+
try {
|
|
1283
|
+
await resetCloudSyncResumeAttempts(client, resume);
|
|
1284
|
+
} catch (err) {
|
|
1285
|
+
logError(`[cloud-sync] resume attempt reset failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
1286
|
+
}
|
|
1287
|
+
}
|
|
1288
|
+
await markCloudSyncSlicePending();
|
|
1252
1289
|
onProgress(
|
|
1253
1290
|
"Cloud sync",
|
|
1254
1291
|
`memory push deferred after bounded slice (pushed ${pushed}, cursor ${memoryPush.finalCursor}, elapsed ${(elapsedMs / 1e3).toFixed(1)}s)`
|
|
1255
1292
|
);
|
|
1256
|
-
return partialCloudSyncResult({ pushed, pulled, elapsedMs });
|
|
1293
|
+
return partialCloudSyncResult({ pushed, pulled, elapsedMs, deferred: true });
|
|
1257
1294
|
}
|
|
1258
1295
|
await stageDone("memories");
|
|
1259
1296
|
}
|
|
@@ -1573,7 +1610,7 @@ async function cloudSync(config, options) {
|
|
|
1573
1610
|
await logResumeClearFailure(err);
|
|
1574
1611
|
}
|
|
1575
1612
|
try {
|
|
1576
|
-
const { writeCloudSyncState, readCloudSyncState } = await import("./cloud-sync-state-
|
|
1613
|
+
const { writeCloudSyncState, readCloudSyncState } = await import("./cloud-sync-state-QF3TMMJ4.js");
|
|
1577
1614
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
1578
1615
|
const intervalMs = Number(process.env.EXE_CLOUD_SYNC_INTERVAL_MS) || readCloudSyncState()?.intervalMs || 5 * 6e4;
|
|
1579
1616
|
writeCloudSyncState({
|
|
@@ -1583,7 +1620,8 @@ async function cloudSync(config, options) {
|
|
|
1583
1620
|
paused: false,
|
|
1584
1621
|
pausedAt: null,
|
|
1585
1622
|
intervalMs,
|
|
1586
|
-
updatedAt: now
|
|
1623
|
+
updatedAt: now,
|
|
1624
|
+
pendingSliceAt: null
|
|
1587
1625
|
});
|
|
1588
1626
|
} catch (err) {
|
|
1589
1627
|
logError(`[cloud-sync] success state write failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
isPaneBusy
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-KWQ7RHYD.js";
|
|
4
4
|
import {
|
|
5
5
|
recordSessionKill
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-BTGR55GX.js";
|
|
7
7
|
import {
|
|
8
8
|
updateTask
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-LJWCK2DR.js";
|
|
10
10
|
import {
|
|
11
11
|
BUSY_PATTERN,
|
|
12
12
|
countPendingReviews,
|
|
@@ -15,7 +15,6 @@ import {
|
|
|
15
15
|
getSessionState,
|
|
16
16
|
getSessionStateAsync,
|
|
17
17
|
isExeSession,
|
|
18
|
-
isValidSessionScope,
|
|
19
18
|
queryTaskRows,
|
|
20
19
|
queueIntercom,
|
|
21
20
|
sendIntercomAsync,
|
|
@@ -23,14 +22,17 @@ import {
|
|
|
23
22
|
sessionScopeFilter,
|
|
24
23
|
strictSessionScopeFilter,
|
|
25
24
|
writeNotification
|
|
26
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-Y4AYNLXU.js";
|
|
26
|
+
import {
|
|
27
|
+
isValidSessionScope
|
|
28
|
+
} from "./chunk-BTSWFMEH.js";
|
|
27
29
|
import {
|
|
28
30
|
LEASE_MINUTES,
|
|
29
31
|
isLeaseExpired
|
|
30
32
|
} from "./chunk-E23LNUWJ.js";
|
|
31
33
|
import {
|
|
32
34
|
listSessions
|
|
33
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-CSBD7QLZ.js";
|
|
34
36
|
import {
|
|
35
37
|
capturePaneLinesAsync,
|
|
36
38
|
listTmuxSessions,
|
|
@@ -42,7 +44,7 @@ import {
|
|
|
42
44
|
} from "./chunk-UXLO7VHX.js";
|
|
43
45
|
import {
|
|
44
46
|
recordOrchestrationEventBestEffort
|
|
45
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-BFL3UB77.js";
|
|
46
48
|
import {
|
|
47
49
|
checkDispatchStatus,
|
|
48
50
|
readTerminalLauncherFailure,
|
|
@@ -62,7 +64,7 @@ import {
|
|
|
62
64
|
getCoordinatorName,
|
|
63
65
|
isCoordinatorName,
|
|
64
66
|
shouldAutoInstance
|
|
65
|
-
} from "./chunk-
|
|
67
|
+
} from "./chunk-OBESOWFJ.js";
|
|
66
68
|
import {
|
|
67
69
|
eventLoopBlockedMarkerPath
|
|
68
70
|
} from "./chunk-JY5GAZYC.js";
|
|
@@ -3457,7 +3459,7 @@ async function reapOrphanedWorktrees(deps, nowMs = Date.now()) {
|
|
|
3457
3459
|
}
|
|
3458
3460
|
async function createWorktreeReaperRealDeps() {
|
|
3459
3461
|
const { getPaneCwdAsync } = await import("./lib/tmux-status.js");
|
|
3460
|
-
const { getGitRootAsync, isWorktreeDirtyAsync } = await import("./worktree-
|
|
3462
|
+
const { getGitRootAsync, isWorktreeDirtyAsync } = await import("./worktree-3FO6EQ4G.js");
|
|
3461
3463
|
const { statSync: statSync3 } = await import("fs");
|
|
3462
3464
|
const { basename: basename2 } = await import("path");
|
|
3463
3465
|
const { promisify: promisify2 } = await import("util");
|
|
@@ -3700,7 +3702,7 @@ async function gcStaleCheckpoints() {
|
|
|
3700
3702
|
}
|
|
3701
3703
|
async function pollTaskGroupBarriers() {
|
|
3702
3704
|
try {
|
|
3703
|
-
const { checkAndFireBarriers } = await import("./tasks-crud-
|
|
3705
|
+
const { checkAndFireBarriers } = await import("./tasks-crud-TJNMUKKH.js");
|
|
3704
3706
|
const firedGroupIds = await checkAndFireBarriers();
|
|
3705
3707
|
if (firedGroupIds.length === 0) return 0;
|
|
3706
3708
|
const { getClient } = await import("./lib/database.js");
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import "./chunk-
|
|
2
|
+
import "./chunk-BEPO36MW.js";
|
|
3
3
|
import {
|
|
4
4
|
isGarbageEntity
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-GUMRIUI5.js";
|
|
5
|
+
} from "./chunk-FWVPGXHD.js";
|
|
7
6
|
import "./chunk-Z6BZQHP5.js";
|
|
7
|
+
import "./chunk-GUMRIUI5.js";
|
|
8
8
|
import "./chunk-VGMACSEV.js";
|
|
9
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-FDA45THL.js";
|
|
10
10
|
import "./chunk-CHCA3ZM2.js";
|
|
11
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-5U4UJGTW.js";
|
|
12
12
|
import {
|
|
13
13
|
fastDbInit
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-I76LRCNA.js";
|
|
15
15
|
import "./chunk-5MOYSU5A.js";
|
|
16
16
|
import "./chunk-4QCFFW2H.js";
|
|
17
17
|
import "./chunk-76CJBM36.js";
|
|
18
18
|
import {
|
|
19
19
|
getClient
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-OBESOWFJ.js";
|
|
21
21
|
import "./chunk-TKDITWDN.js";
|
|
22
22
|
import "./chunk-BBMTVAE3.js";
|
|
23
23
|
import "./chunk-5YEUPUV4.js";
|
|
24
|
-
import "./chunk-
|
|
24
|
+
import "./chunk-JDPV7W2L.js";
|
|
25
25
|
import "./chunk-YYB5PMTK.js";
|
|
26
26
|
import "./chunk-NJFJWQNN.js";
|
|
27
27
|
import "./chunk-V3W3SATA.js";
|
|
@@ -23,7 +23,7 @@ async function runCloudSyncCli() {
|
|
|
23
23
|
const { getMasterKey } = await import("./lib/keychain.js");
|
|
24
24
|
const { initSyncCrypto } = await import("./lib/crypto.js");
|
|
25
25
|
const { assertCloudSyncReachable, withTimeout } = await import("./bin/exe-cloud.js");
|
|
26
|
-
const { runCloudSyncShutdown } = await import("./cloud-sync-shutdown-
|
|
26
|
+
const { runCloudSyncShutdown } = await import("./cloud-sync-shutdown-JGOFGGET.js");
|
|
27
27
|
const { disconnectClient } = await import("./lib/exe-daemon-client.js");
|
|
28
28
|
let shuttingDown = false;
|
|
29
29
|
const handleShutdown = (signal) => {
|
|
@@ -48,7 +48,7 @@ async function runCloudSyncCli() {
|
|
|
48
48
|
const { initPostgresOnlyDatabase } = await import("./lib/database.js");
|
|
49
49
|
await initPostgresOnlyDatabase();
|
|
50
50
|
} else {
|
|
51
|
-
const { initCloudSyncDatabase } = await import("./cloud-sync-db-init-
|
|
51
|
+
const { initCloudSyncDatabase } = await import("./cloud-sync-db-init-I75VOTXC.js");
|
|
52
52
|
await initCloudSyncDatabase();
|
|
53
53
|
}
|
|
54
54
|
const masterKey = await getMasterKey();
|
|
@@ -71,8 +71,16 @@ async function runCloudSyncCli() {
|
|
|
71
71
|
console.log(` Documents: ${result.documents.pushed} total (\u2193 ${result.documents.pulled} pulled)`);
|
|
72
72
|
console.log(` GraphRAG: ${result.graphrag.pushed} entities`);
|
|
73
73
|
const elapsedDisplay = result.elapsedMs != null ? `${(result.elapsedMs / 1e3).toFixed(1)}s` : "n/a";
|
|
74
|
-
|
|
74
|
+
if (result.deferred) {
|
|
75
|
+
console.log(
|
|
76
|
+
`
|
|
77
|
+
\x1B[33mSync paused after a bounded memory slice \u2014 memories are still queued.\x1B[0m (${elapsedDisplay})
|
|
78
|
+
Run it again (or let the background sync continue) until it reports complete.`
|
|
79
|
+
);
|
|
80
|
+
} else {
|
|
81
|
+
console.log(`
|
|
75
82
|
\x1B[32mSync complete.\x1B[0m (${elapsedDisplay})`);
|
|
83
|
+
}
|
|
76
84
|
} catch (err) {
|
|
77
85
|
const message = err instanceof Error ? err.message : String(err);
|
|
78
86
|
if (message.includes("Cloud sync is blocked because this device rotated")) {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
releaseDbLock
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-OBESOWFJ.js";
|
|
4
4
|
import "./chunk-TKDITWDN.js";
|
|
5
5
|
import "./chunk-BBMTVAE3.js";
|
|
6
6
|
import "./chunk-5YEUPUV4.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-JDPV7W2L.js";
|
|
8
8
|
import "./chunk-YYB5PMTK.js";
|
|
9
9
|
import "./chunk-NJFJWQNN.js";
|
|
10
10
|
import "./chunk-V3W3SATA.js";
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
|
+
hasPendingCloudSyncSlice,
|
|
2
3
|
readCloudSyncState,
|
|
3
4
|
resolveCloudSyncStatePath,
|
|
4
5
|
resolveCloudSyncStatus,
|
|
5
6
|
resolveDaemonHealthLogPath,
|
|
6
7
|
resolveExeOsDir,
|
|
7
8
|
writeCloudSyncState
|
|
8
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-MWEIBVBS.js";
|
|
9
10
|
import "./chunk-MLKGABMK.js";
|
|
10
11
|
export {
|
|
12
|
+
hasPendingCloudSyncSlice,
|
|
11
13
|
readCloudSyncState,
|
|
12
14
|
resolveCloudSyncStatePath,
|
|
13
15
|
resolveCloudSyncStatus,
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getClient
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-OBESOWFJ.js";
|
|
4
4
|
import "./chunk-TKDITWDN.js";
|
|
5
5
|
import "./chunk-BBMTVAE3.js";
|
|
6
6
|
import "./chunk-5YEUPUV4.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-JDPV7W2L.js";
|
|
8
8
|
import "./chunk-YYB5PMTK.js";
|
|
9
9
|
import "./chunk-NJFJWQNN.js";
|
|
10
10
|
import "./chunk-V3W3SATA.js";
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import {
|
|
2
2
|
entityId,
|
|
3
3
|
normalizeEntityName
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-GUMRIUI5.js";
|
|
4
|
+
} from "./chunk-FWVPGXHD.js";
|
|
6
5
|
import "./chunk-Z6BZQHP5.js";
|
|
6
|
+
import "./chunk-GUMRIUI5.js";
|
|
7
7
|
import "./chunk-VGMACSEV.js";
|
|
8
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-FDA45THL.js";
|
|
9
9
|
import "./chunk-CHCA3ZM2.js";
|
|
10
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-5U4UJGTW.js";
|
|
11
11
|
import "./chunk-5MOYSU5A.js";
|
|
12
12
|
import "./chunk-4QCFFW2H.js";
|
|
13
13
|
import "./chunk-76CJBM36.js";
|
|
14
14
|
import {
|
|
15
15
|
getClient
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-OBESOWFJ.js";
|
|
17
17
|
import "./chunk-TKDITWDN.js";
|
|
18
18
|
import "./chunk-BBMTVAE3.js";
|
|
19
19
|
import "./chunk-5YEUPUV4.js";
|
|
20
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-JDPV7W2L.js";
|
|
21
21
|
import "./chunk-YYB5PMTK.js";
|
|
22
22
|
import "./chunk-NJFJWQNN.js";
|
|
23
23
|
import "./chunk-V3W3SATA.js";
|