@askexenow/exe-os 0.9.367 → 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-V3CUDNED.js → active-agent-6WNC756A.js} +3 -3
- package/dist/{active-agent-R6Q7UEUD.js → active-agent-RDTJGZHP.js} +3 -3
- package/dist/{agent-defs-generator-MLPRGY75.js → agent-defs-generator-M5AUL3WM.js} +2 -2
- package/dist/{agentic-ontology-5FMQWGDZ.js → agentic-ontology-ZJBRYETW.js} +1 -1
- package/dist/{backfill-metadata-YXUMCKRV.js → backfill-metadata-Q4X23XLR.js} +5 -5
- package/dist/{backup-verify-GYHKAX7K.js → backup-verify-UKLX6IEK.js} +1 -1
- package/dist/behavior-injection-C3HEKSJY.js +60 -0
- package/dist/{behaviors-O6HKTSOF.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 +4 -4
- package/dist/bin/cleanup-stale-review-tasks.js +14 -14
- package/dist/bin/cli.js +20 -20
- package/dist/bin/deferred-daemon-restart.js +83 -81
- package/dist/bin/exe-agent-config.js +2 -2
- package/dist/bin/exe-agent.js +11 -11
- package/dist/bin/exe-assign.js +6 -6
- package/dist/bin/exe-boot.js +30 -30
- 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 +15 -15
- package/dist/bin/exe-doctor.js +5 -5
- 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 +4 -4
- package/dist/bin/exe-heartbeat.js +17 -17
- package/dist/bin/exe-kill.js +18 -18
- package/dist/bin/exe-launch-agent.js +24 -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 +15 -15
- package/dist/bin/exe-pending-notifications.js +14 -14
- package/dist/bin/exe-pending-reviews.js +14 -14
- package/dist/bin/exe-rename.js +4 -4
- package/dist/bin/exe-review.js +17 -17
- package/dist/bin/exe-search.js +6 -6
- package/dist/bin/exe-session-cleanup.js +19 -18
- package/dist/bin/exe-settings.js +10 -10
- package/dist/bin/exe-start-codex.js +73 -19
- package/dist/bin/exe-start-opencode.js +11 -9
- package/dist/bin/exe-status.js +16 -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 +16 -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 +85 -83
- 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 +14 -14
- package/dist/bin/setup.js +1 -1
- package/dist/bin/shard-migrate.js +5 -5
- package/dist/bin/stack-update.js +6 -5
- package/dist/bin/verify-stack.js +6 -1
- package/dist/bin/vps-health-gate.js +1 -1
- package/dist/{boot-generation-EZ2Y74IG.js → boot-generation-7H7Y4KC2.js} +3 -3
- package/dist/{boot-review-sections-7CNQTAYR.js → boot-review-sections-4AGCECCP.js} +13 -13
- package/dist/build-manifest.json +808 -773
- package/dist/{capability-cards-ZTFMK4VJ.js → capability-cards-6KAC5D2Z.js} +2 -2
- package/dist/{capacity-monitor-B2XU4YHP.js → capacity-monitor-J2Y4SFLA.js} +15 -15
- package/dist/{catchup-brief-3BEOL7EV.js → catchup-brief-F2HKF2CU.js} +18 -18
- package/dist/{chunk-PR3AHVFW.js → chunk-2AS6FG6C.js} +3 -3
- package/dist/{chunk-WCDIDSLR.js → chunk-2UBMXN4D.js} +2 -2
- package/dist/{chunk-267QB6VB.js → chunk-2UGU3V63.js} +1 -1
- package/dist/{chunk-PQ6NRLKL.js → chunk-34BMZTWV.js} +1 -1
- package/dist/{chunk-XA4EU3CW.js → chunk-4DGIOK6T.js} +1 -1
- package/dist/{chunk-JJRZE2LD.js → chunk-4GVJIMMK.js} +12 -6
- package/dist/{chunk-2IZH6W73.js → chunk-4L732DE5.js} +3 -3
- package/dist/{chunk-ZSHLY5BS.js → chunk-4RRMZJLG.js} +1 -1
- package/dist/{chunk-MQ3N4KZY.js → chunk-5IVLOOJR.js} +1 -1
- package/dist/{chunk-PFR6EOUY.js → chunk-5YKNEL3W.js} +2 -2
- package/dist/{chunk-AE3PYLLS.js → chunk-6EXOW5ZA.js} +9 -9
- package/dist/{chunk-CTPG4KYZ.js → chunk-6P7DVFKA.js} +1 -1
- package/dist/{chunk-F3PIHVVY.js → chunk-6UZ3DEQI.js} +1 -1
- package/dist/{chunk-URHJDUWO.js → chunk-72JZQ7EV.js} +1 -1
- package/dist/{chunk-66BFQOWR.js → chunk-72QUZX6J.js} +4 -4
- package/dist/{chunk-JOKKIFRN.js → chunk-AAL6CDMQ.js} +7 -7
- package/dist/{chunk-FSIAGX55.js → chunk-AJGX4Z34.js} +1 -1
- package/dist/{chunk-OADOH45L.js → chunk-BEPO36MW.js} +3 -3
- package/dist/{chunk-UI3K73LD.js → chunk-BFL3UB77.js} +1 -1
- package/dist/{chunk-KDD26FUY.js → chunk-BFPQXPN3.js} +1 -1
- package/dist/{chunk-7W5LCREK.js → chunk-BJKC6ZJU.js} +40 -84
- package/dist/{chunk-OPS7KUFV.js → chunk-BLNSUBP3.js} +3 -3
- package/dist/{chunk-5CH6XKVC.js → chunk-BNDHQGOY.js} +1 -1
- package/dist/{chunk-Z5Z3MYUW.js → chunk-BPQWRR4H.js} +2 -2
- package/dist/{chunk-YA4PM3MV.js → chunk-BTGR55GX.js} +3 -3
- package/dist/{chunk-WYVBWDFY.js → chunk-C4IJ5IS5.js} +1 -1
- package/dist/{chunk-XVRQZCTS.js → chunk-C5FOA5GO.js} +14 -3
- package/dist/{chunk-XKFMNAJ7.js → chunk-CSBD7QLZ.js} +1 -1
- package/dist/{chunk-BY3V5CLX.js → chunk-CU2OUUSV.js} +25 -5
- package/dist/{chunk-Y4JVM3SI.js → chunk-CXHRNESJ.js} +1 -1
- package/dist/{chunk-SFKIZYKK.js → chunk-DRMGPZSC.js} +2 -2
- package/dist/{chunk-PFOJX6CR.js → chunk-DYPKSVB7.js} +5 -5
- package/dist/{chunk-PS4NA7PM.js → chunk-EDB3LXBQ.js} +268 -166
- package/dist/{chunk-TCR7NBHD.js → chunk-EDRXCUEP.js} +4 -4
- package/dist/{chunk-BQYQES2Z.js → chunk-ELY5WBZX.js} +10 -10
- package/dist/{chunk-ALYI3P5D.js → chunk-EZUSIF66.js} +1 -1
- package/dist/{chunk-CYNL3ZFD.js → chunk-FHYX64H3.js} +3 -3
- package/dist/{chunk-PWCZFIQH.js → chunk-FSALI4B7.js} +4 -4
- package/dist/{chunk-4DJDC4Y2.js → chunk-FWKTZURC.js} +4 -4
- package/dist/{chunk-53LCVVX5.js → chunk-FWVPGXHD.js} +5 -5
- package/dist/{chunk-O3F5P6Z5.js → chunk-GILYOIMP.js} +2 -2
- package/dist/{chunk-NPND34FS.js → chunk-GP3J3AOT.js} +4 -4
- package/dist/{chunk-6NJURKRG.js → chunk-H6J7N3BZ.js} +1 -1
- package/dist/{chunk-WSLFGJBA.js → chunk-HQSUXAB4.js} +1 -1
- package/dist/{chunk-XTEKGO44.js → chunk-HTLJHSN4.js} +1 -1
- package/dist/{chunk-AEVE654G.js → chunk-HXV3DGL7.js} +1 -1
- package/dist/{chunk-LW5WRSDD.js → chunk-IEE6X6R2.js} +1 -1
- package/dist/{chunk-V3ISR2QT.js → chunk-IKRIUEIF.js} +1 -1
- package/dist/{chunk-52CFP2AV.js → chunk-J44774XC.js} +1 -1
- package/dist/{chunk-TJSTWACD.js → chunk-J77ZIMH5.js} +5 -5
- package/dist/{chunk-Y7OK5PJE.js → chunk-JDPV7W2L.js} +1 -1
- package/dist/{chunk-7W6FDHHY.js → chunk-KGPWS4KE.js} +1 -1
- package/dist/{chunk-XAMLDTRA.js → chunk-KWQ7RHYD.js} +4 -4
- package/dist/{chunk-IIVFXD6P.js → chunk-KYVIV54Y.js} +1 -1
- package/dist/chunk-KZXMP6JG.js +319 -0
- package/dist/{chunk-ZZ3JQM5I.js → chunk-LJWCK2DR.js} +9 -9
- package/dist/{chunk-WBKIU6UJ.js → chunk-MCXYNYZI.js} +30 -2
- package/dist/{chunk-L2VZBPJJ.js → chunk-MWEIBVBS.js} +13 -1
- package/dist/{chunk-GUOMZ3JM.js → chunk-MXP27XTP.js} +2 -2
- package/dist/{chunk-EDZ5URGR.js → chunk-N3CGSO3S.js} +1 -1
- package/dist/{chunk-QWDZNQXA.js → chunk-NNXPIJRB.js} +1 -1
- package/dist/{chunk-OISZ2I4X.js → chunk-NWE3CFX7.js} +4 -4
- package/dist/{chunk-HSBKV5LB.js → chunk-OBESOWFJ.js} +3 -3
- package/dist/{chunk-XKZD5FGK.js → chunk-OL3QP3AU.js} +116 -1
- package/dist/{chunk-6MCUXRIP.js → chunk-P3PAD6AA.js} +1 -1
- package/dist/{chunk-N3JLNMPF.js → chunk-PGF5I7EV.js} +2 -2
- package/dist/{chunk-CX4MVEM3.js → chunk-PVWM2WMM.js} +1 -1
- package/dist/{chunk-JFOZHVNO.js → chunk-QCSAYYL6.js} +1 -1
- package/dist/{chunk-J6VQ7HYV.js → chunk-QE5KWKVU.js} +27 -6
- package/dist/{chunk-4WOOCTON.js → chunk-QKZEUCTS.js} +2 -2
- package/dist/{chunk-P5XER5QY.js → chunk-QT6CNCXO.js} +3 -3
- package/dist/{chunk-P76VYS6V.js → chunk-QZYYCPNL.js} +1 -1
- package/dist/{chunk-DTTISDTI.js → chunk-RDIZSXXD.js} +1 -1
- package/dist/{chunk-R4AROSYI.js → chunk-RFWOXKVL.js} +10 -179
- package/dist/chunk-S2YTU74T.js +76 -0
- package/dist/{chunk-K2OFS57E.js → chunk-TP7BFVQP.js} +2 -2
- package/dist/{chunk-LIZ3QQGK.js → chunk-TTJWPV4G.js} +1 -1
- package/dist/{chunk-XUGOVOID.js → chunk-UATT6BNO.js} +3 -3
- package/dist/{chunk-ALKYXAMB.js → chunk-UVM5ZXO2.js} +4 -4
- package/dist/{chunk-R3H3WW7H.js → chunk-V7E37GE3.js} +2 -2
- package/dist/{chunk-XSXZVKJ7.js → chunk-VD3CVNGB.js} +3 -3
- package/dist/{chunk-CKKLSY7B.js → chunk-VIW62NN5.js} +1 -1
- package/dist/{chunk-VY3QUSWS.js → chunk-VTOO5UB3.js} +9 -9
- package/dist/chunk-W5MCOZTW.js +304 -0
- package/dist/{chunk-TZFOWWPM.js → chunk-WJOJWRN5.js} +139 -33
- package/dist/{chunk-PS6VPW64.js → chunk-X4MRVNR3.js} +1 -1
- package/dist/{chunk-YYLVHUYZ.js → chunk-XBTQPQN7.js} +1 -1
- package/dist/{behavior-injection-7VGYY2KO.js → chunk-XOTDAKJL.js} +24 -38
- package/dist/{chunk-QX33D4CH.js → chunk-Y4AYNLXU.js} +25 -25
- package/dist/{chunk-BTMX2D4X.js → chunk-YGPJ7VSJ.js} +48 -10
- package/dist/{chunk-DXCTHNEF.js → chunk-ZR3VMM3X.js} +9 -9
- package/dist/{chunk-MLPPG2OG.js → chunk-ZWONQU5S.js} +1 -1
- package/dist/{cleanup-graph-garbage-XDIX3HLN.js → cleanup-graph-garbage-FBSQI33K.js} +8 -8
- package/dist/{cloud-sync-command-VPYE4FIH.js → cloud-sync-command-NHGVDTLM.js} +11 -3
- package/dist/{cloud-sync-db-init-NSDBTFGI.js → cloud-sync-db-init-I75VOTXC.js} +1 -1
- package/dist/{cloud-sync-shutdown-6OUYTG4T.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-EAAKGGZH.js → co-activation-AE5L2SJV.js} +2 -2
- package/dist/{co-occurrence-OFVF55RX.js → co-occurrence-O65D4SCN.js} +6 -6
- package/dist/{conversation-entity-extractor-ZR5GFKAI.js → conversation-entity-extractor-LFIDTD2O.js} +4 -4
- package/dist/{crdt-sync-FGH4SBFW.js → crdt-sync-NRWDBRSE.js} +1 -1
- package/dist/{crm-webhook-PJATR2DC.js → crm-webhook-XOQGX6DV.js} +2 -2
- package/dist/{cto-delegation-gate-PO4LSSQ4.js → cto-delegation-gate-ZGOAXQI2.js} +13 -13
- package/dist/{daemon-orchestration-IJFZFQUX.js → daemon-orchestration-ZMQWYYDT.js} +18 -18
- package/dist/dispatch-intent-journal-VV6HMZC4.js +17 -0
- package/dist/{doc-graph-extractor-CAYUAM5A.js → doc-graph-extractor-6C5JBKPP.js} +6 -6
- package/dist/{documents-W2G477QE.js → documents-FKSQGSO4.js} +6 -6
- package/dist/{dreaming-FVXSIIWV.js → dreaming-IB3H6NDZ.js} +17 -17
- package/dist/{employee-boot-brief-OYMSHFHA.js → employee-boot-brief-5YRTUEJH.js} +24 -21
- package/dist/{exe-drift-67RGJOBX.js → exe-drift-CUWUYX3O.js} +3 -3
- package/dist/{exe-export-SGYX6XZG.js → exe-export-XWENYJNM.js} +7 -7
- package/dist/{exe-import-UABVA5N3.js → exe-import-OWOMRF2S.js} +7 -7
- package/dist/{exe-key-XNYDCVFE.js → exe-key-P356FGK5.js} +83 -81
- package/dist/{exe-org-XJVSU5HN.js → exe-org-UKIVF3KE.js} +8 -8
- package/dist/{exe-snapshot-YXOGYZUX.js → exe-snapshot-AZI2WW5Y.js} +18 -18
- package/dist/{fast-db-init-GDFJY5UH.js → fast-db-init-FPAPF3GB.js} +1 -1
- package/dist/{founder-context-KUXSNXKS.js → founder-context-QTQ6V3B5.js} +2 -2
- package/dist/gateway/index.js +11 -11
- package/dist/{git-staleness-NN6RWNLW.js → git-staleness-6ACWLV5Q.js} +2 -2
- package/dist/{global-procedures-XDNA3TNA.js → global-procedures-RXIKBVLZ.js} +3 -3
- package/dist/{graph-auto-extract-KTOR45V4.js → graph-auto-extract-Q4A4QMOF.js} +6 -6
- package/dist/{graph-rag-L5NV5YWD.js → graph-rag-RLRQMY54.js} +4 -4
- package/dist/{hook-integrity-X3YAVGUW.js → hook-integrity-3X2JRLBM.js} +1 -1
- package/dist/{hook-prefetch-WE4MIXBM.js → hook-prefetch-DU44UZQP.js} +14 -14
- package/dist/hooks/bug-report-worker.js +18 -18
- package/dist/hooks/codex-stop-task-finalizer.js +19 -19
- package/dist/hooks/commit-complete.js +20 -18
- 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 +17 -17
- package/dist/hooks/pre-tool-use.js +44 -37
- package/dist/hooks/prompt-submit.js +35 -31
- package/dist/hooks/session-end.js +21 -21
- package/dist/hooks/session-start.js +16 -16
- package/dist/hooks/stop.js +20 -20
- package/dist/hooks/subagent-stop.js +18 -18
- package/dist/hooks/summary-worker.js +22 -22
- package/dist/index.js +25 -25
- package/dist/{installer-EAAYEEEF.js → installer-B7QYQE56.js} +7 -5
- package/dist/{installer-UDRMFY75.js → installer-EXR25DDG.js} +5 -5
- package/dist/{installer-EPQAOI6M.js → installer-TOPA7673.js} +5 -5
- package/dist/{intercom-queue-IBOAVT2I.js → intercom-queue-BZ4M3L4S.js} +13 -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 +181 -76
- 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 +14 -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/store.js +5 -5
- package/dist/lib/task-router.js +3 -3
- package/dist/lib/tasks.js +15 -15
- package/dist/lib/tmux-routing.js +13 -13
- package/dist/lib/token-spend.js +3 -3
- package/dist/{license-gate-3TTWJABL.js → license-gate-YTIOLKVV.js} +3 -3
- package/dist/{license-sync-ZC6TPKVV.js → license-sync-5VE5OSTV.js} +2 -2
- package/dist/mcp/register-tools.js +82 -80
- package/dist/mcp/server.js +85 -83
- 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 +25 -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 +17 -17
- package/dist/mcp/tools/send-message.js +16 -16
- package/dist/mcp/tools/update-task.js +16 -16
- package/dist/{mcp-http-config-ROF5EPEF.js → mcp-http-config-XUNRIGQH.js} +3 -3
- package/dist/{mcp-session-identity-ERU6FEUB.js → mcp-session-identity-4UIG7KLK.js} +13 -13
- package/dist/{memory-cards-3QTXI2SG.js → memory-cards-R74YU4CO.js} +5 -5
- package/dist/{memory-graph-extractor-7GAILMYG.js → memory-graph-extractor-3B4QJUXI.js} +7 -7
- package/dist/{memory-poisoning-defense-TPXSRJTQ.js → memory-poisoning-defense-OAKFL5O2.js} +2 -2
- package/dist/{memory-pressure-watchdog-ZSOP6T2F.js → memory-pressure-watchdog-FFC2CHFJ.js} +14 -14
- package/dist/{memory-reflection-3AI4JBV2.js → memory-reflection-5IJ6RE2J.js} +2 -2
- package/dist/{notification-ledger-ZU7ZFJJX.js → notification-ledger-P5XBUYKO.js} +14 -14
- package/dist/{notifications-S4GU22GF.js → notifications-LLCCHRYV.js} +13 -13
- package/dist/{orchestration-events-HVG56HJ5.js → orchestration-events-VBGCIQSS.js} +3 -3
- package/dist/{orchestrator-UW3Q3WYG.js → orchestrator-EB3SCTAJ.js} +15 -15
- package/dist/{org-brief-session-G36TJBN4.js → org-brief-session-GDCDKBFF.js} +6 -6
- package/dist/{org-consent-policy-RMYVMM3X.js → org-consent-policy-HCD42NBN.js} +2 -2
- package/dist/{org-partner-runtime-KXMGEYFW.js → org-partner-runtime-TPVKFR6E.js} +6 -6
- package/dist/{org-row-visibility-UI5PGN76.js → org-row-visibility-ZZLOPZLH.js} +1 -1
- package/dist/{pipeline-router-IODWXDDI.js → pipeline-router-3JTL2KF6.js} +3 -3
- package/dist/{plan-limits-XMAQVEJZ.js → plan-limits-MTHRP4WY.js} +5 -5
- package/dist/{projection-worker-6LZUCI3B.js → projection-worker-FLASNERC.js} +2 -2
- package/dist/{prospective-memory-G5VK5GCD.js → prospective-memory-HI3WUY4U.js} +2 -2
- package/dist/{push-notifications-S2RYRXLF.js → push-notifications-DFSR6P7V.js} +14 -14
- package/dist/{reranker-EHQTAA3L.js → reranker-XHBKUDGG.js} +1 -1
- package/dist/{retrieval-health-WZ4ICGNF.js → retrieval-health-NYKSDS6M.js} +1 -1
- package/dist/{review-polling-MAWLRDSP.js → review-polling-UAV6DZIZ.js} +14 -14
- package/dist/runtime/index.js +21 -21
- package/dist/{session-events-BRUIZ5E4.js → session-events-YCYPLWPG.js} +14 -14
- package/dist/{session-kill-telemetry-PTZLHT33.js → session-kill-telemetry-UEJTHL65.js} +14 -14
- package/dist/{session-scope-G4RVJJGR.js → session-scope-LXDW7LJJ.js} +13 -13
- package/dist/{setup-wizard-WFEUB63Z.js → setup-wizard-OVJQYUUL.js} +1 -1
- package/dist/{skill-refinement-2OYPH7WD.js → skill-refinement-EWRJID73.js} +3 -3
- package/dist/{stack-promote-DLYYQXQI.js → stack-promote-4IJM36OG.js} +4 -4
- package/dist/{stack-release-OPWARLXI.js → stack-release-BAIRY65H.js} +4 -4
- package/dist/{stack-update-SJ43IEQE.js → stack-update-VDM5WXRS.js} +3 -3
- package/dist/stalled-dispatch-escalation-MHLYH2PT.js +80 -0
- package/dist/{steward-gate-V7PBGVFK.js → steward-gate-Y4N2XY3R.js} +3 -3
- package/dist/{subagent-brief-injection-BLCRI2AJ.js → subagent-brief-injection-7A6JEVTP.js} +21 -20
- package/dist/{support-inbox-6HOQYFD2.js → support-inbox-LT4WJECQ.js} +4 -3
- package/dist/{task-enforcement-EF6O2V26.js → task-enforcement-WOIZ5TLK.js} +14 -14
- package/dist/{task-request-inbox-OB2KIJWO.js → task-request-inbox-D65BPUKZ.js} +2 -2
- package/dist/{task-scope-74JBTKJN.js → task-scope-PQ67YRWP.js} +13 -13
- package/dist/{tasks-crud-ZU6RZDEZ.js → tasks-crud-TJNMUKKH.js} +13 -13
- package/dist/{tasks-notify-767DRYAA.js → tasks-notify-7UVC3VGI.js} +14 -14
- package/dist/{tasks-review-4F6PZZ3B.js → tasks-review-WDWYISZ2.js} +13 -13
- package/dist/{telemetry-upload-2JM6KIAB.js → telemetry-upload-6LBGRJUE.js} +7 -7
- package/dist/{token-budget-NH2RD4YX.js → token-budget-XO5XW6DL.js} +3 -3
- package/dist/{tool-telemetry-CHCBD4OQ.js → tool-telemetry-ZL6TTZWG.js} +1 -1
- package/dist/tui/App.js +21 -21
- package/dist/{tui-data-244GF3BI.js → tui-data-UK7ZPKN4.js} +13 -13
- package/dist/{update-support-P2LO3DAB.js → update-support-BGL5KAZO.js} +12 -12
- package/dist/{work-claims-4QOE7DT2.js → work-claims-XZL2DKQ3.js} +3 -3
- package/dist/{work-state-heartbeat-GX3VWWWK.js → work-state-heartbeat-267YQ75U.js} +1 -1
- package/dist/{worker-gate-62PZATOV.js → worker-gate-RUM6MLIR.js} +1 -1
- package/dist/{workflow-engine-7YIRU62F.js → workflow-engine-YQHGHKSJ.js} +2 -2
- package/dist/{worktree-3TUKIZWY.js → worktree-3FO6EQ4G.js} +4 -4
- package/dist/{worktree-sweep-MYQHUXDE.js → worktree-sweep-X7MUEEQS.js} +5 -5
- package/package.json +2 -1
- package/release-notes.json +29 -23
- /package/dist/{chunk-25EN7XXN.js → chunk-4AN2PWUK.js} +0 -0
- /package/dist/{chunk-WM7Y5ZV2.js → chunk-5U4UJGTW.js} +0 -0
- /package/dist/{chunk-62U63R3E.js → chunk-EYIX6JU7.js} +0 -0
- /package/dist/{chunk-JLYHJJHU.js → chunk-FDA45THL.js} +0 -0
- /package/dist/{chunk-JZBZI36P.js → chunk-GIO4VU4J.js} +0 -0
- /package/dist/{chunk-BTFDA3UJ.js → chunk-I76LRCNA.js} +0 -0
- /package/dist/{chunk-YNPOELAN.js → chunk-LBWEAQ6Z.js} +0 -0
- /package/dist/{chunk-65ZSFW3O.js → chunk-MQ5RUHNZ.js} +0 -0
- /package/dist/{chunk-XM7HJ5SS.js → chunk-PFCE4AXQ.js} +0 -0
- /package/dist/{chunk-FLP2BQOA.js → chunk-SXAERZL2.js} +0 -0
- /package/dist/{chunk-OUIEDJFO.js → chunk-TKTQRSSD.js} +0 -0
- /package/dist/{chunk-DAXFAXLN.js → chunk-U2AZUMBZ.js} +0 -0
- /package/dist/{chunk-GTOMDMJL.js → chunk-W6FVADZS.js} +0 -0
- /package/dist/{core-memory-EARETDZ6.js → core-memory-W5ZHHBRR.js} +0 -0
- /package/dist/{memory-isolation-XASOGA7G.js → memory-isolation-ZE7EDBO4.js} +0 -0
- /package/dist/{oauth-server-C3BXAKAW.js → oauth-server-3HG62YYJ.js} +0 -0
- /package/dist/{project-boot-LCFBQ6NB.js → project-boot-3OAWKYLO.js} +0 -0
- /package/dist/{wiki-acl-XQH4UBP2.js → wiki-acl-FQV4E6M4.js} +0 -0
|
@@ -5,6 +5,9 @@ import {
|
|
|
5
5
|
supportTaskIdSchema,
|
|
6
6
|
supportVersionSchema
|
|
7
7
|
} from "./chunk-5H47VHB7.js";
|
|
8
|
+
import {
|
|
9
|
+
buildVerificationArtifact
|
|
10
|
+
} from "./chunk-KZXMP6JG.js";
|
|
8
11
|
import {
|
|
9
12
|
SUPPORT_PRODUCTS,
|
|
10
13
|
sanitizeProductFilter,
|
|
@@ -14,16 +17,88 @@ import {
|
|
|
14
17
|
import {
|
|
15
18
|
loadLicense,
|
|
16
19
|
readCachedLicenseToken
|
|
17
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-6UZ3DEQI.js";
|
|
18
21
|
|
|
19
22
|
// src/mcp/tools/support-inbox.ts
|
|
20
|
-
import { z } from "zod";
|
|
23
|
+
import { z as z2 } from "zod";
|
|
21
24
|
import { readFileSync } from "fs";
|
|
22
25
|
import { join } from "path";
|
|
23
26
|
import { homedir } from "os";
|
|
27
|
+
|
|
28
|
+
// src/lib/support-verification-input.ts
|
|
29
|
+
import { z } from "zod";
|
|
30
|
+
function isVerifiedStatus(status) {
|
|
31
|
+
return status === "fixed" || status === "closed";
|
|
32
|
+
}
|
|
33
|
+
var verificationArtifactInputSchema = {
|
|
34
|
+
verification_kind: z.enum(["regression_test", "manual"]).optional().describe(
|
|
35
|
+
"REQUIRED to set status=fixed or closed. 'regression_test' when you actually RAN a test that fails at the parent commit and passes at the fix. 'manual' when a named person reproduced the original defect and confirmed it is gone."
|
|
36
|
+
),
|
|
37
|
+
fix_commit: supportCommitSchema.optional().describe("SHA of the merged commit containing the fix. Its diff is measured locally \u2014 a comment-only or test-only commit is refused."),
|
|
38
|
+
repo_path: z.string().optional().describe("Absolute path to the repository containing fix_commit. Required when the fix landed outside the current working repo (e.g. exe-gateway, exe-crm). Defaults to the current directory."),
|
|
39
|
+
regression_test_id: z.string().optional().describe("regression_test only: the test that detects the defect, e.g. 'tests/raw-event-backlog.test.ts::counts unprocessed events'."),
|
|
40
|
+
parent_result: z.enum(["fail", "pass", "error"]).optional().describe("regression_test only: the result you OBSERVED running that test at the parent commit. Must be 'fail' \u2014 a test that already passed does not detect the defect."),
|
|
41
|
+
fix_result: z.enum(["fail", "pass", "error"]).optional().describe("regression_test only: the result you OBSERVED running that test at the fix commit. Must be 'pass'."),
|
|
42
|
+
verifier: z.string().optional().describe("manual only: the identity of the person or employee who confirmed the defect is gone. Checked server-side against the bug's filer and assignee \u2014 it may not be either. Placeholders ('me', 'agent') are refused."),
|
|
43
|
+
verification_method: z.string().optional().describe("manual only: how it was verified, in enough detail for someone else to repeat it."),
|
|
44
|
+
verification_observation: z.string().optional().describe("manual only: what was observed that shows the DEFECT IS ABSENT \u2014 not what the change did. 'It is fixed' is refused."),
|
|
45
|
+
delivery_proof: z.string().optional().describe('Optional JSON delivery declaration, e.g. {"channel":"npm","version":"0.9.364","tarball_shasum":"\u2026","fix_path_published":true}. Recorded, not required \u2014 delivery does not gate closing. A declaration that is present must still be true.')
|
|
46
|
+
};
|
|
47
|
+
var NO_ARTIFACT_HELP = [
|
|
48
|
+
"Refused locally: setting status=fixed or closed requires evidence that the defect is ABSENT.",
|
|
49
|
+
"",
|
|
50
|
+
"Supply ONE of:",
|
|
51
|
+
" regression_test \u2014 verification_kind='regression_test', fix_commit, repo_path,",
|
|
52
|
+
" regression_test_id, parent_result (must be the result you observed at the parent),",
|
|
53
|
+
" fix_result. Use this when you actually ran the test at both commits.",
|
|
54
|
+
" manual \u2014 verification_kind='manual', fix_commit, repo_path, verifier (a real identity,",
|
|
55
|
+
" not the bug's filer or assignee), verification_method, verification_observation",
|
|
56
|
+
" describing what you saw that shows the defect is gone.",
|
|
57
|
+
"",
|
|
58
|
+
"The fix commit's diff is measured from the repository; substance is never taken from the caller.",
|
|
59
|
+
"If you have not verified the defect is absent, do not close it \u2014 record what you found with notes instead."
|
|
60
|
+
].join("\n");
|
|
61
|
+
function resolveVerificationArtifact(status, input, context = {}) {
|
|
62
|
+
if (!isVerifiedStatus(status)) return { ok: true };
|
|
63
|
+
if (!input.verification_kind && !input.fix_commit) {
|
|
64
|
+
return { ok: false, message: NO_ARTIFACT_HELP };
|
|
65
|
+
}
|
|
66
|
+
if (!input.verification_kind) {
|
|
67
|
+
return { ok: false, message: "verification_kind is required (regression_test or manual) when setting status=fixed or closed." };
|
|
68
|
+
}
|
|
69
|
+
if (!input.fix_commit) {
|
|
70
|
+
return { ok: false, message: "fix_commit is required when setting status=fixed or closed \u2014 the diff is measured, not described." };
|
|
71
|
+
}
|
|
72
|
+
const request = {
|
|
73
|
+
kind: input.verification_kind,
|
|
74
|
+
fix_commit: input.fix_commit,
|
|
75
|
+
repo_path: input.repo_path?.trim() || process.cwd(),
|
|
76
|
+
test_id: input.regression_test_id,
|
|
77
|
+
parent_result: input.parent_result,
|
|
78
|
+
fix_result: input.fix_result,
|
|
79
|
+
verifier: input.verifier,
|
|
80
|
+
method: input.verification_method,
|
|
81
|
+
observation: input.verification_observation
|
|
82
|
+
};
|
|
83
|
+
const built = buildVerificationArtifact(request, context);
|
|
84
|
+
if (!built.ok) {
|
|
85
|
+
return { ok: false, message: `Refused locally [${built.code}]: ${built.message}` };
|
|
86
|
+
}
|
|
87
|
+
return { ok: true, artifact: built.artifact };
|
|
88
|
+
}
|
|
89
|
+
function parseDeliveryProof(raw) {
|
|
90
|
+
if (raw === void 0 || !raw.trim()) return { ok: true };
|
|
91
|
+
try {
|
|
92
|
+
return { ok: true, value: JSON.parse(raw) };
|
|
93
|
+
} catch {
|
|
94
|
+
return { ok: false, message: "delivery_proof must be valid JSON (or omitted \u2014 delivery does not gate closing)." };
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// src/mcp/tools/support-inbox.ts
|
|
24
99
|
var DEFAULT_ENDPOINT = "https://api.askexe.com/admin/support/bug-reports";
|
|
25
100
|
var DEFAULT_OWNER_ENDPOINT = "https://api.askexe.com/v1/support/bug-reports";
|
|
26
|
-
var STATUS =
|
|
101
|
+
var STATUS = z2.enum(["open", "triaged", "fixed", "closed", "wontfix"]);
|
|
27
102
|
var SupportHttpError = class extends Error {
|
|
28
103
|
constructor(status, message) {
|
|
29
104
|
super(message);
|
|
@@ -158,13 +233,13 @@ function registerListBugReports(server) {
|
|
|
158
233
|
title: "List Bug Reports",
|
|
159
234
|
description: "AskExe-internal only: list incoming customer bug reports from the support inbox.",
|
|
160
235
|
inputSchema: {
|
|
161
|
-
status:
|
|
162
|
-
severity:
|
|
236
|
+
status: z2.enum(["all", "open", "triaged", "fixed", "closed", "wontfix"]).default("open"),
|
|
237
|
+
severity: z2.enum(["p0", "p1", "p2", "p3"]).optional(),
|
|
163
238
|
// Round 8: constrain to the known enum at the schema — a `product` filter is
|
|
164
239
|
// NOT free text, and it was sent raw as a query param.
|
|
165
|
-
product:
|
|
166
|
-
limit:
|
|
167
|
-
offset:
|
|
240
|
+
product: z2.enum(SUPPORT_PRODUCTS).optional().describe("Filter by product"),
|
|
241
|
+
limit: z2.number().int().min(1).max(500).default(25),
|
|
242
|
+
offset: z2.number().int().min(0).default(0).describe("Number of results to skip for pagination. Use next_offset from a prior response.")
|
|
168
243
|
}
|
|
169
244
|
},
|
|
170
245
|
async ({ status, severity, product, limit, offset }) => {
|
|
@@ -215,7 +290,7 @@ function registerAddBugReportComment(server) {
|
|
|
215
290
|
description: "AskExe-internal only: append a comment to a bug report's thread (POST /comments). Non-destructive \u2014 does not touch triage_notes or status.",
|
|
216
291
|
inputSchema: {
|
|
217
292
|
id: supportIdSchema,
|
|
218
|
-
comment:
|
|
293
|
+
comment: z2.string().min(1).describe("Comment text to append to the bug report thread")
|
|
219
294
|
}
|
|
220
295
|
},
|
|
221
296
|
async ({ id, comment }) => {
|
|
@@ -246,22 +321,50 @@ function registerTriageBugReport(server) {
|
|
|
246
321
|
"triage_bug_report",
|
|
247
322
|
{
|
|
248
323
|
title: "Triage Bug Report",
|
|
249
|
-
description: "AskExe-internal only: update bug report status and link task/commit/release metadata.",
|
|
324
|
+
description: "AskExe-internal only: update bug report status and link task/commit/release metadata. Setting status=fixed or closed requires a verification artifact (verification_kind + fix_commit + either the regression-test fields or the manual verifier fields); the fix commit's diff is measured locally.",
|
|
250
325
|
inputSchema: {
|
|
251
326
|
id: supportIdSchema,
|
|
252
327
|
status: STATUS.optional(),
|
|
253
|
-
triage_notes:
|
|
254
|
-
add_note:
|
|
328
|
+
triage_notes: z2.string().optional(),
|
|
329
|
+
add_note: z2.string().optional().describe("Append a timestamped progress note without changing status or replacing triage_notes"),
|
|
255
330
|
linked_task_id: supportTaskIdSchema.optional(),
|
|
256
331
|
linked_commit: supportCommitSchema.optional(),
|
|
257
332
|
fixed_version: supportVersionSchema.optional(),
|
|
258
|
-
product: supportProductSchema.optional().describe("Re-label this bug's product: exe-os, exe-create, exe-wiki, exe-gateway, exe-crm, exe-build, exe-chat, exe-auth, exe-monitor, exe-db, exe-erp")
|
|
333
|
+
product: supportProductSchema.optional().describe("Re-label this bug's product: exe-os, exe-create, exe-wiki, exe-gateway, exe-crm, exe-build, exe-chat, exe-auth, exe-monitor, exe-db, exe-erp"),
|
|
334
|
+
...verificationArtifactInputSchema
|
|
259
335
|
}
|
|
260
336
|
},
|
|
261
|
-
async ({ id, status, triage_notes, add_note, linked_task_id, linked_commit, fixed_version, product }) => {
|
|
262
|
-
const
|
|
337
|
+
async ({ id, status, triage_notes, add_note, linked_task_id, linked_commit, fixed_version, product, ...verification }) => {
|
|
338
|
+
const bugUrl = `${endpoint()}/${encodeURIComponent(sanitizeUpstreamId(id))}`;
|
|
339
|
+
let authorIdentities = [];
|
|
340
|
+
if (isVerifiedStatus(status) && verification.verification_kind === "manual") {
|
|
341
|
+
try {
|
|
342
|
+
const row = await requestJson(bugUrl);
|
|
343
|
+
authorIdentities = [row?.agent_id, row?.license_email];
|
|
344
|
+
} catch {
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
const resolved = resolveVerificationArtifact(status, verification, { authorIdentities });
|
|
348
|
+
if (!resolved.ok) {
|
|
349
|
+
return { isError: true, content: [{ type: "text", text: resolved.message }] };
|
|
350
|
+
}
|
|
351
|
+
const delivery = parseDeliveryProof(verification.delivery_proof);
|
|
352
|
+
if (!delivery.ok) {
|
|
353
|
+
return { isError: true, content: [{ type: "text", text: delivery.message }] };
|
|
354
|
+
}
|
|
355
|
+
const data = await requestJson(bugUrl, {
|
|
263
356
|
method: "PATCH",
|
|
264
|
-
body: sanitizedUpstreamBody({
|
|
357
|
+
body: sanitizedUpstreamBody({
|
|
358
|
+
status,
|
|
359
|
+
triage_notes,
|
|
360
|
+
add_note,
|
|
361
|
+
linked_task_id,
|
|
362
|
+
linked_commit,
|
|
363
|
+
fixed_version,
|
|
364
|
+
product,
|
|
365
|
+
verification_artifact: resolved.artifact,
|
|
366
|
+
delivery_proof: delivery.value
|
|
367
|
+
}, "support-inbox:triage_bug")
|
|
265
368
|
});
|
|
266
369
|
const response = fixed_version && !status ? withStatusNotice(
|
|
267
370
|
data,
|
|
@@ -271,7 +374,7 @@ function registerTriageBugReport(server) {
|
|
|
271
374
|
}
|
|
272
375
|
);
|
|
273
376
|
}
|
|
274
|
-
var FEATURE_STATUS =
|
|
377
|
+
var FEATURE_STATUS = z2.enum(["open", "planned", "in_progress", "shipped", "closed", "wontdo"]);
|
|
275
378
|
function featureEndpoint() {
|
|
276
379
|
return endpoint().replace(/\/bug-reports\/?$/, "/feature-requests");
|
|
277
380
|
}
|
|
@@ -285,11 +388,11 @@ function registerListFeatureRequests(server) {
|
|
|
285
388
|
title: "List Feature Requests",
|
|
286
389
|
description: "AskExe-internal only: list incoming customer feature requests from the support inbox.",
|
|
287
390
|
inputSchema: {
|
|
288
|
-
status:
|
|
289
|
-
priority:
|
|
290
|
-
product:
|
|
291
|
-
limit:
|
|
292
|
-
offset:
|
|
391
|
+
status: z2.enum(["all", "open", "planned", "in_progress", "shipped", "closed", "wontdo"]).default("open"),
|
|
392
|
+
priority: z2.enum(["p0", "p1", "p2", "p3"]).optional(),
|
|
393
|
+
product: z2.string().optional().describe("Filter by product: exe-os, exe-create, exe-wiki, exe-gateway, exe-crm, exe-build, exe-chat, exe-auth, exe-monitor, exe-db, exe-erp"),
|
|
394
|
+
limit: z2.number().int().min(1).max(500).default(25),
|
|
395
|
+
offset: z2.number().int().min(0).default(0).describe("Number of results to skip for pagination. Use next_offset from a prior response.")
|
|
293
396
|
}
|
|
294
397
|
},
|
|
295
398
|
async ({ status, priority, product, limit, offset }) => {
|
|
@@ -328,8 +431,8 @@ function registerTriageFeatureRequest(server) {
|
|
|
328
431
|
inputSchema: {
|
|
329
432
|
id: supportIdSchema,
|
|
330
433
|
status: FEATURE_STATUS.optional(),
|
|
331
|
-
response_notes:
|
|
332
|
-
add_note:
|
|
434
|
+
response_notes: z2.string().optional(),
|
|
435
|
+
add_note: z2.string().optional().describe("Append a timestamped progress note without changing status or replacing response_notes"),
|
|
333
436
|
target_version: supportVersionSchema.optional(),
|
|
334
437
|
shipped_version: supportVersionSchema.optional(),
|
|
335
438
|
// bug b8e990ed: allow admin re-label of a feature's product. Typed with the
|
|
@@ -350,7 +453,7 @@ function registerTriageFeatureRequest(server) {
|
|
|
350
453
|
}
|
|
351
454
|
);
|
|
352
455
|
}
|
|
353
|
-
var REVIEW_STATUS =
|
|
456
|
+
var REVIEW_STATUS = z2.enum(["open", "in_review", "approved", "merged", "closed", "rejected"]);
|
|
354
457
|
function reviewEndpoint() {
|
|
355
458
|
return endpoint().replace(/\/bug-reports\/?$/, "/reviews");
|
|
356
459
|
}
|
|
@@ -361,10 +464,10 @@ function registerListReviews(server) {
|
|
|
361
464
|
title: "List Reviews",
|
|
362
465
|
description: "AskExe-internal only: list incoming review requests from the support inbox.",
|
|
363
466
|
inputSchema: {
|
|
364
|
-
status:
|
|
365
|
-
priority:
|
|
366
|
-
limit:
|
|
367
|
-
offset:
|
|
467
|
+
status: z2.enum(["all", "open", "in_review", "approved", "merged", "closed", "rejected"]).default("open"),
|
|
468
|
+
priority: z2.enum(["p0", "p1", "p2", "p3"]).optional(),
|
|
469
|
+
limit: z2.number().int().min(1).max(500).default(25),
|
|
470
|
+
offset: z2.number().int().min(0).default(0).describe("Number of results to skip for pagination. Use next_offset from a prior response.")
|
|
368
471
|
}
|
|
369
472
|
},
|
|
370
473
|
async ({ status, priority, limit, offset }) => {
|
|
@@ -401,10 +504,10 @@ function registerTriageReview(server) {
|
|
|
401
504
|
inputSchema: {
|
|
402
505
|
id: supportIdSchema,
|
|
403
506
|
status: REVIEW_STATUS.optional(),
|
|
404
|
-
response_notes:
|
|
405
|
-
add_note:
|
|
406
|
-
resolution:
|
|
407
|
-
pr_url:
|
|
507
|
+
response_notes: z2.string().optional(),
|
|
508
|
+
add_note: z2.string().optional().describe("Append a timestamped progress note without changing status or replacing response_notes"),
|
|
509
|
+
resolution: z2.string().optional(),
|
|
510
|
+
pr_url: z2.string().optional()
|
|
408
511
|
}
|
|
409
512
|
},
|
|
410
513
|
async ({ id, status, response_notes, add_note, resolution, pr_url }) => {
|
|
@@ -418,6 +521,9 @@ function registerTriageReview(server) {
|
|
|
418
521
|
}
|
|
419
522
|
|
|
420
523
|
export {
|
|
524
|
+
verificationArtifactInputSchema,
|
|
525
|
+
resolveVerificationArtifact,
|
|
526
|
+
parseDeliveryProof,
|
|
421
527
|
registerListBugReports,
|
|
422
528
|
registerGetBugReport,
|
|
423
529
|
registerAddBugReportComment,
|
|
@@ -351,7 +351,7 @@ async function runRegistryProxy(options = registryProxyOptionsFromEnv()) {
|
|
|
351
351
|
await new Promise((resolve) => server.listen(options.port, options.host, resolve));
|
|
352
352
|
console.log(`exe-registry-proxy listening on ${options.host ?? "0.0.0.0"}:${options.port}`);
|
|
353
353
|
console.log(`proxying /v2/${options.allowedNamespace ?? "askexe"}/* -> ${options.upstream ?? "https://ghcr.io"}`);
|
|
354
|
-
const { licenseSyncConfigFromEnv, startLicenseSyncScheduler } = await import("./license-sync-
|
|
354
|
+
const { licenseSyncConfigFromEnv, startLicenseSyncScheduler } = await import("./license-sync-5VE5OSTV.js");
|
|
355
355
|
const syncConfig = licenseSyncConfigFromEnv();
|
|
356
356
|
if (syncConfig) {
|
|
357
357
|
startLicenseSyncScheduler(syncConfig);
|
|
@@ -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-BQYQES2Z.js";
|
|
7
|
-
import "./chunk-JLYHJJHU.js";
|
|
8
|
-
import "./chunk-CHCA3ZM2.js";
|
|
9
|
-
import "./chunk-OTVEIJUQ.js";
|
|
10
|
-
import "./chunk-WM7Y5ZV2.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-HSBKV5LB.js";
|
|
23
|
-
import "./chunk-TKDITWDN.js";
|
|
24
|
-
import "./chunk-BBMTVAE3.js";
|
|
25
|
-
import "./chunk-5YEUPUV4.js";
|
|
26
|
-
import "./chunk-Y7OK5PJE.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
|
};
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-BTSWFMEH.js";
|
|
4
4
|
import {
|
|
5
5
|
ensureAgentSymlink
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-P3PAD6AA.js";
|
|
7
7
|
import {
|
|
8
8
|
ensureWorktree,
|
|
9
9
|
ensureWorktreeAsync,
|
|
@@ -11,16 +11,17 @@ import {
|
|
|
11
11
|
getMainRepoRoot,
|
|
12
12
|
isInsideGitRepo,
|
|
13
13
|
isWorktreeDirty
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-KGPWS4KE.js";
|
|
15
15
|
import {
|
|
16
16
|
resolveRowVisibility
|
|
17
|
-
} from "./chunk-
|
|
18
|
-
import {
|
|
19
|
-
incrementSkillSuccess
|
|
20
|
-
} from "./chunk-CX4MVEM3.js";
|
|
17
|
+
} from "./chunk-KYVIV54Y.js";
|
|
21
18
|
import {
|
|
22
19
|
runBudgetedSweep
|
|
23
20
|
} from "./chunk-KI5PFRG6.js";
|
|
21
|
+
import {
|
|
22
|
+
buildTaskResult,
|
|
23
|
+
serializeMessage
|
|
24
|
+
} from "./chunk-QAEWWYHL.js";
|
|
24
25
|
import {
|
|
25
26
|
reviewSignalPath,
|
|
26
27
|
taskSignalDir
|
|
@@ -30,14 +31,10 @@ import {
|
|
|
30
31
|
isLeaseExpired,
|
|
31
32
|
leaseExpiryIso
|
|
32
33
|
} from "./chunk-E23LNUWJ.js";
|
|
33
|
-
import {
|
|
34
|
-
buildTaskResult,
|
|
35
|
-
serializeMessage
|
|
36
|
-
} from "./chunk-QAEWWYHL.js";
|
|
37
34
|
import {
|
|
38
35
|
listSessions,
|
|
39
36
|
registerSession
|
|
40
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-CSBD7QLZ.js";
|
|
41
38
|
import {
|
|
42
39
|
listTmuxSessions
|
|
43
40
|
} from "./chunk-GBNB4EWD.js";
|
|
@@ -46,13 +43,16 @@ import {
|
|
|
46
43
|
} from "./chunk-UXLO7VHX.js";
|
|
47
44
|
import {
|
|
48
45
|
recordOrchestrationEventBestEffort
|
|
49
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-BFL3UB77.js";
|
|
50
47
|
import {
|
|
51
48
|
appendDispatchJournalEvent,
|
|
52
49
|
releaseDispatchClaim,
|
|
53
50
|
tryAcquireDispatchClaim,
|
|
54
51
|
writeDispatchAck
|
|
55
52
|
} from "./chunk-AJIXH5JF.js";
|
|
53
|
+
import {
|
|
54
|
+
incrementSkillSuccess
|
|
55
|
+
} from "./chunk-PVWM2WMM.js";
|
|
56
56
|
import {
|
|
57
57
|
assertRuntimeModelCompatible,
|
|
58
58
|
getAgentRuntime,
|
|
@@ -62,7 +62,7 @@ import {
|
|
|
62
62
|
import {
|
|
63
63
|
PlanLimitError,
|
|
64
64
|
assertEmployeeLimitSync
|
|
65
|
-
} from "./chunk-
|
|
65
|
+
} from "./chunk-PGF5I7EV.js";
|
|
66
66
|
import {
|
|
67
67
|
getSessionKey
|
|
68
68
|
} from "./chunk-CVYC6DUW.js";
|
|
@@ -96,13 +96,13 @@ import {
|
|
|
96
96
|
loadEmployeesSync,
|
|
97
97
|
offloadReadIfMain,
|
|
98
98
|
offloadReadQuery
|
|
99
|
-
} from "./chunk-
|
|
99
|
+
} from "./chunk-OBESOWFJ.js";
|
|
100
100
|
import {
|
|
101
101
|
RUNTIME_TABLE
|
|
102
102
|
} from "./chunk-WNBZJSQT.js";
|
|
103
103
|
import {
|
|
104
104
|
loadDeviceId
|
|
105
|
-
} from "./chunk-
|
|
105
|
+
} from "./chunk-6UZ3DEQI.js";
|
|
106
106
|
import {
|
|
107
107
|
EXE_AI_DIR
|
|
108
108
|
} from "./chunk-QMSEL5YS.js";
|
|
@@ -1528,7 +1528,7 @@ async function createTaskCore(input) {
|
|
|
1528
1528
|
if (isCoordinatorSession) {
|
|
1529
1529
|
earlySessionScope = resolved;
|
|
1530
1530
|
} else {
|
|
1531
|
-
const { getSessionProject } = await import("./session-scope-
|
|
1531
|
+
const { getSessionProject } = await import("./session-scope-LXDW7LJJ.js");
|
|
1532
1532
|
const sessionProject = getSessionProject(resolved);
|
|
1533
1533
|
if (sessionProject && sessionProject !== input.projectName) {
|
|
1534
1534
|
scopeMismatchWarning = `session/project mismatch: session "${resolved}" owns "${sessionProject}" but task targets "${input.projectName}". Routed to default scope.`;
|
|
@@ -1832,7 +1832,7 @@ async function buildTaskRowsStatement(opts) {
|
|
|
1832
1832
|
}
|
|
1833
1833
|
if (opts.founderId !== null) {
|
|
1834
1834
|
try {
|
|
1835
|
-
const { founderScopeFilter } = await import("./founder-context-
|
|
1835
|
+
const { founderScopeFilter } = await import("./founder-context-QTQ6V3B5.js");
|
|
1836
1836
|
const founderFilter = founderScopeFilter(opts.founderId);
|
|
1837
1837
|
const cleaned = founderFilter.sql.replace(/^\s*AND\s+/, "");
|
|
1838
1838
|
conditions.push(cleaned);
|
|
@@ -5158,7 +5158,7 @@ async function verifyPaneAtCapacity(sessionName) {
|
|
|
5158
5158
|
reason: `capture-pane failed: ${err instanceof Error ? err.message : String(err)}`
|
|
5159
5159
|
};
|
|
5160
5160
|
}
|
|
5161
|
-
const { isAtCapacity } = await import("./capacity-monitor-
|
|
5161
|
+
const { isAtCapacity } = await import("./capacity-monitor-J2Y4SFLA.js");
|
|
5162
5162
|
if (!isAtCapacity(pane)) {
|
|
5163
5163
|
return {
|
|
5164
5164
|
atCapacity: false,
|
|
@@ -5392,7 +5392,7 @@ async function countScopedPendingReviews(targetSession, reviewer) {
|
|
|
5392
5392
|
}
|
|
5393
5393
|
async function countScopedOpenTasks(targetSession, agentId) {
|
|
5394
5394
|
try {
|
|
5395
|
-
const { fastDbInit } = await import("./fast-db-init-
|
|
5395
|
+
const { fastDbInit } = await import("./fast-db-init-FPAPF3GB.js");
|
|
5396
5396
|
const client = await fastDbInit();
|
|
5397
5397
|
const scope = extractRootExe(targetSession);
|
|
5398
5398
|
if (!scope) return 0;
|
|
@@ -5447,7 +5447,7 @@ function buildScopedInProgressTaskQuery(targetSession) {
|
|
|
5447
5447
|
async function findScopedInProgressTaskId(targetSession) {
|
|
5448
5448
|
const q = buildScopedInProgressTaskQuery(targetSession);
|
|
5449
5449
|
if (!q) return null;
|
|
5450
|
-
const { fastDbInit } = await import("./fast-db-init-
|
|
5450
|
+
const { fastDbInit } = await import("./fast-db-init-FPAPF3GB.js");
|
|
5451
5451
|
const client = await fastDbInit();
|
|
5452
5452
|
const result = await client.execute(q);
|
|
5453
5453
|
const id = result.rows[0]?.id;
|
|
@@ -5568,7 +5568,7 @@ function sendIntercom(targetSession, opts) {
|
|
|
5568
5568
|
const ledgerEnv = (process.env.EXE_NOTIFICATION_LEDGER ?? "").trim().toLowerCase();
|
|
5569
5569
|
if (ledgerEnv === "shadow" || ledgerEnv === "on") {
|
|
5570
5570
|
const ledgerScope = opts && "callerSessionScope" in opts ? opts.callerSessionScope : void 0;
|
|
5571
|
-
void import("./notification-ledger-
|
|
5571
|
+
void import("./notification-ledger-P5XBUYKO.js").then((m) => m.recordShadowNudge(targetSession, reason, ledgerScope, { force: opts?.force })).catch(() => {
|
|
5572
5572
|
});
|
|
5573
5573
|
}
|
|
5574
5574
|
if (!opts?.force && isDebounced(targetSession)) {
|
|
@@ -5704,7 +5704,7 @@ function scheduleDeferredSpawnNudge(input) {
|
|
|
5704
5704
|
return;
|
|
5705
5705
|
}
|
|
5706
5706
|
queueIntercom(input.sessionName, `spawn nudge failed after ${attempt} attempts: ${msg}`, "signal");
|
|
5707
|
-
void import("./notifications-
|
|
5707
|
+
void import("./notifications-LLCCHRYV.js").then(({ writeNotification: writeNotification2 }) => writeNotification2({
|
|
5708
5708
|
agentId: getCoordinatorName(),
|
|
5709
5709
|
agentRole: "COO",
|
|
5710
5710
|
event: "error_spike",
|
|
@@ -5798,7 +5798,7 @@ async function sendIntercomAsync(targetSession, opts) {
|
|
|
5798
5798
|
let ledgerClaim = null;
|
|
5799
5799
|
if (authoritativeLedger) {
|
|
5800
5800
|
try {
|
|
5801
|
-
const { claimAuthoritativeNudge } = await import("./notification-ledger-
|
|
5801
|
+
const { claimAuthoritativeNudge } = await import("./notification-ledger-P5XBUYKO.js");
|
|
5802
5802
|
const claim2 = await claimAuthoritativeNudge(
|
|
5803
5803
|
targetSession,
|
|
5804
5804
|
reason,
|
|
@@ -5821,7 +5821,7 @@ async function sendIntercomAsync(targetSession, opts) {
|
|
|
5821
5821
|
const markLedgerDelivered = async () => {
|
|
5822
5822
|
if (!ledgerClaim) return;
|
|
5823
5823
|
try {
|
|
5824
|
-
const { markNudgeDelivered } = await import("./notification-ledger-
|
|
5824
|
+
const { markNudgeDelivered } = await import("./notification-ledger-P5XBUYKO.js");
|
|
5825
5825
|
await markNudgeDelivered(ledgerClaim.id, ledgerClaim.sessionScope);
|
|
5826
5826
|
} catch {
|
|
5827
5827
|
}
|
|
@@ -5829,7 +5829,7 @@ async function sendIntercomAsync(targetSession, opts) {
|
|
|
5829
5829
|
const markLedgerFailed = async (error) => {
|
|
5830
5830
|
if (!ledgerClaim) return;
|
|
5831
5831
|
try {
|
|
5832
|
-
const { markNudgeDeliveryFailed } = await import("./notification-ledger-
|
|
5832
|
+
const { markNudgeDeliveryFailed } = await import("./notification-ledger-P5XBUYKO.js");
|
|
5833
5833
|
await markNudgeDeliveryFailed(ledgerClaim.id, error, ledgerClaim.sessionScope);
|
|
5834
5834
|
} catch {
|
|
5835
5835
|
}
|