@askexenow/exe-os 0.9.397 → 0.9.398
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/stack-manifests/v0.9.json +267 -1
- package/dist/.dist-verified.json +3 -3
- package/dist/{active-agent-GOCTWSHD.js → active-agent-5DC75ZP3.js} +4 -4
- package/dist/{active-agent-GHNUSBYO.js → active-agent-Q7AOGCY5.js} +4 -4
- package/dist/{agent-defs-generator-KKXWCDQR.js → agent-defs-generator-TBR4P3XR.js} +3 -3
- package/dist/{agentic-ontology-5JFHYHEN.js → agentic-ontology-UFSQDLCW.js} +1 -1
- package/dist/{artifact-backup-FDU7UQ5Z.js → artifact-backup-VWQ6EYNO.js} +3 -3
- package/dist/{backfill-metadata-OIVQN3GF.js → backfill-metadata-BVW4KXY3.js} +7 -7
- package/dist/{backup-verify-ZKTVXYOK.js → backup-verify-6UIMP3QY.js} +1 -1
- package/dist/{behavior-injection-S2NBCHRK.js → behavior-injection-MVL5PXIH.js} +10 -10
- package/dist/{behavior-promotion-WZIKTD3C.js → behavior-promotion-ZQSQLBNO.js} +9 -9
- package/dist/{behaviors-T2N3VJS3.js → behaviors-S6ANWJTO.js} +8 -8
- package/dist/bin/agentic-ontology-backfill.js +8 -8
- package/dist/bin/agentic-reflection-backfill.js +9 -9
- package/dist/bin/agentic-semantic-label.js +8 -8
- package/dist/bin/backfill-conversations.js +7 -7
- package/dist/bin/backfill-responses.js +7 -7
- package/dist/bin/backfill-vectors.js +7 -7
- package/dist/bin/bulk-sync-postgres.js +16 -16
- package/dist/bin/cc-doctor.js +8 -8
- package/dist/bin/cleanup-stale-review-tasks.js +15 -15
- package/dist/bin/cli.js +24 -24
- package/dist/bin/deferred-daemon-restart.js +93 -93
- package/dist/bin/exe-actions.js +1 -1
- package/dist/bin/exe-agent-config.js +3 -3
- package/dist/bin/exe-agent.js +8 -8
- package/dist/bin/exe-assign.js +8 -8
- package/dist/bin/exe-boot.js +35 -35
- package/dist/bin/exe-call.js +8 -8
- package/dist/bin/exe-cloud.js +17 -17
- package/dist/bin/exe-config-dump.js +3 -3
- package/dist/bin/exe-dispatch.js +16 -16
- package/dist/bin/exe-doctor.js +5 -5
- package/dist/bin/exe-export-behaviors.js +12 -12
- package/dist/bin/exe-forget.js +10 -10
- package/dist/bin/exe-gateway.js +9 -9
- package/dist/bin/exe-grant.js +6 -6
- package/dist/bin/exe-healthcheck.js +8 -8
- package/dist/bin/exe-heartbeat.js +21 -21
- package/dist/bin/exe-kill.js +20 -20
- package/dist/bin/exe-launch-agent.js +28 -28
- package/dist/bin/exe-mcp.js +5 -5
- package/dist/bin/exe-memory-reads.js +7 -7
- package/dist/bin/exe-new-employee.js +10 -10
- package/dist/bin/exe-os-mcp-proxy.js +5 -5
- package/dist/bin/exe-pending-messages.js +16 -16
- package/dist/bin/exe-pending-notifications.js +15 -15
- package/dist/bin/exe-pending-reviews.js +16 -16
- package/dist/bin/exe-rename.js +6 -6
- package/dist/bin/exe-review.js +19 -19
- package/dist/bin/exe-search.js +9 -9
- package/dist/bin/exe-session-cleanup.js +20 -20
- package/dist/bin/exe-settings.js +16 -16
- package/dist/bin/exe-start-codex.js +18 -18
- package/dist/bin/exe-start-opencode.js +16 -16
- package/dist/bin/exe-status.js +17 -17
- package/dist/bin/exe-support.js +3 -3
- package/dist/bin/exe-team.js +5 -5
- package/dist/bin/git-sweep.js +16 -16
- package/dist/bin/graph-backfill.js +8 -8
- package/dist/bin/graph-export.js +8 -8
- package/dist/bin/hooks-cli.js +1 -1
- package/dist/bin/import-history.js +11 -11
- package/dist/bin/install.js +95 -95
- package/dist/bin/intercom-check.js +5 -5
- package/dist/bin/mcp-sessions.js +2 -2
- package/dist/bin/orchestration-metrics.js +5 -5
- package/dist/bin/postgres-agentic-reflection-backfill.js +2 -2
- package/dist/bin/postgres-agentic-semantic-backfill.js +1 -1
- package/dist/bin/reconcile-backlog.js +2 -2
- package/dist/bin/registry-proxy.js +1 -1
- package/dist/bin/repair-document-chunks.js +7 -7
- package/dist/bin/scan-tasks.js +16 -16
- package/dist/bin/setup.js +2 -2
- package/dist/bin/shard-migrate.js +8 -8
- package/dist/bin/stack-update.js +4 -4
- package/dist/bin/vps-health-gate.js +1 -1
- package/dist/{boot-generation-SJQ7JNY7.js → boot-generation-ASJLGXK2.js} +4 -4
- package/dist/{boot-review-sections-G33ATPSN.js → boot-review-sections-B34SK4LE.js} +14 -14
- package/dist/{bug-landed-reconciler-C4UHLQKA.js → bug-landed-reconciler-P53SGWZG.js} +6 -6
- package/dist/build-manifest.json +904 -904
- package/dist/{capability-cards-KD4UW5DR.js → capability-cards-WMK2P2O2.js} +3 -3
- package/dist/{capacity-monitor-RKLRCGOG.js → capacity-monitor-WSRFY3UK.js} +16 -16
- package/dist/{catchup-brief-UHPPUIRL.js → catchup-brief-CE3FP6SL.js} +21 -21
- package/dist/{chunk-DQQTUIQJ.js → chunk-2CGKFJ3Q.js} +2 -2
- package/dist/{chunk-4BC5DUD7.js → chunk-2FMLMHJE.js} +3 -3
- package/dist/{chunk-BLZ2LEZF.js → chunk-2YLN5M5K.js} +3 -3
- package/dist/{chunk-EZ2JLFDT.js → chunk-33D76SCE.js} +147 -147
- package/dist/{chunk-MB3XK7YW.js → chunk-342X5YQB.js} +1 -1
- package/dist/{chunk-QRWGGJAA.js → chunk-3HV3TRBB.js} +2 -2
- package/dist/{chunk-DNCEIP3G.js → chunk-3QGQG2CR.js} +1 -1
- package/dist/{chunk-7KMFHVKB.js → chunk-4VD4CIHX.js} +9 -9
- package/dist/{chunk-NW6XAQLN.js → chunk-5ID4DJ2E.js} +2 -2
- package/dist/{chunk-FZPJBU3F.js → chunk-5OG5UQKP.js} +4 -4
- package/dist/{chunk-EK5EYX37.js → chunk-5VZDXC7N.js} +2 -2
- package/dist/{chunk-O2INE7WD.js → chunk-6X4TCYMU.js} +1 -1
- package/dist/{chunk-WOG5XT2P.js → chunk-6YJKBKSI.js} +1 -1
- package/dist/{chunk-2QF657OK.js → chunk-7ECQZXUE.js} +3 -3
- package/dist/{chunk-SC3QNY3H.js → chunk-7PNTI56G.js} +2 -2
- package/dist/{chunk-Y2DTTZCV.js → chunk-7QYXNSKT.js} +21 -21
- package/dist/{chunk-K5FSX6H6.js → chunk-A6GDEHRQ.js} +3 -3
- package/dist/{chunk-BNLXWJLD.js → chunk-AIOP4BF6.js} +10 -10
- package/dist/{chunk-HSEBRWE2.js → chunk-AWERP5SW.js} +3 -3
- package/dist/{chunk-F63FRP7L.js → chunk-B4OZKTIS.js} +1 -1
- package/dist/{chunk-P4C3BX2L.js → chunk-B7T7I5BK.js} +16 -16
- package/dist/{chunk-RC6Q5KSW.js → chunk-BI6SK67J.js} +2 -2
- package/dist/{chunk-VESYCD2K.js → chunk-BTN6AEKU.js} +3 -3
- package/dist/{chunk-2YESHX5N.js → chunk-C3CRGIS4.js} +1 -1
- package/dist/{chunk-KPDKZEVT.js → chunk-C4OMBSRB.js} +2 -2
- package/dist/{chunk-SH5IEP2Q.js → chunk-CBLI4ANF.js} +1 -1
- package/dist/{chunk-E7IALVOP.js → chunk-CBUFW5J2.js} +12 -12
- package/dist/{chunk-QR7VJ5WB.js → chunk-CIFHEPMI.js} +1 -1
- package/dist/{chunk-3MK5RGIP.js → chunk-CIRZLORZ.js} +1 -1
- package/dist/{chunk-RWDU3OKM.js → chunk-CN7IOETW.js} +2 -2
- package/dist/{chunk-M65DE5CO.js → chunk-CTMEIRJQ.js} +1 -1
- package/dist/{chunk-5BCJKGB3.js → chunk-DKD6JKIQ.js} +5 -5
- package/dist/{chunk-IV63ZWK6.js → chunk-DTUQGAD4.js} +1 -1
- package/dist/{chunk-D73NQPRC.js → chunk-DUPQMNK6.js} +6 -6
- package/dist/{chunk-5DFDHMOD.js → chunk-DVFVOT42.js} +4 -4
- package/dist/{chunk-P25NNTN3.js → chunk-E72V3JWD.js} +1 -1
- package/dist/{chunk-44FX5OK6.js → chunk-EI53C646.js} +1 -1
- package/dist/{chunk-YLY66VLU.js → chunk-ENEYMKL6.js} +3 -3
- package/dist/{chunk-VRPXCQV6.js → chunk-F4C3X66B.js} +1 -1
- package/dist/{chunk-XJRF26L5.js → chunk-FCQK3CNA.js} +1 -1
- package/dist/{chunk-ABDYYZSP.js → chunk-GER43BIE.js} +224 -7
- package/dist/{chunk-XYB7GHGV.js → chunk-GOQ5EE67.js} +1 -1
- package/dist/{chunk-I3MPYHFM.js → chunk-HRLCAV2S.js} +2 -2
- package/dist/{chunk-ZBUUFS5G.js → chunk-HWZZNUJJ.js} +1 -1
- package/dist/{chunk-5UC27XF6.js → chunk-I3OXYKU7.js} +2 -2
- package/dist/{chunk-AMSNTFS4.js → chunk-IACMGMGW.js} +1 -1
- package/dist/{chunk-MKHUI5UB.js → chunk-ICAGVBZ4.js} +1 -1
- package/dist/{chunk-DOMITJOC.js → chunk-IDFOZ6YH.js} +1 -1
- package/dist/{chunk-AFYSK7BX.js → chunk-J54BOM4G.js} +4 -4
- package/dist/{chunk-YYPHTYOV.js → chunk-JDRIUUMY.js} +3 -3
- package/dist/{chunk-AUZ4VPKO.js → chunk-JK5XB7Z5.js} +1 -1
- package/dist/{chunk-KDRYMX6M.js → chunk-JWA3Y6PE.js} +11 -11
- package/dist/{chunk-4MFPPHG4.js → chunk-KUJODN4N.js} +1 -1
- package/dist/{chunk-JO7ZJTFL.js → chunk-L5TOPOTW.js} +1 -1
- package/dist/{chunk-C44UWID5.js → chunk-LGP67CBT.js} +1 -1
- package/dist/{chunk-GGSXOKK6.js → chunk-LHNMKY7N.js} +10 -10
- package/dist/{chunk-ITV2CEFW.js → chunk-MBF7NXKP.js} +1 -1
- package/dist/{chunk-PSB3QGYL.js → chunk-MT3P3B2L.js} +1 -1
- package/dist/{chunk-6G7CTQBF.js → chunk-MYGXI2UC.js} +4 -4
- package/dist/{chunk-XHSCV3BM.js → chunk-NCKHGVDK.js} +1 -1
- package/dist/{chunk-RAPFF7J7.js → chunk-NITCVCRV.js} +1 -1
- package/dist/{chunk-KOOURQVV.js → chunk-NJG3YVZI.js} +3 -3
- package/dist/{chunk-F6OV7JP2.js → chunk-NQG5CD3V.js} +1 -1
- package/dist/{chunk-62MT4SAM.js → chunk-NUHCZF6C.js} +1 -1
- package/dist/{chunk-BMGX4GUS.js → chunk-OLRMWNOW.js} +1 -1
- package/dist/{chunk-JI7TFGJY.js → chunk-OSLT3VAE.js} +3 -3
- package/dist/{chunk-PAYDZ6J3.js → chunk-OURGAT7A.js} +2 -2
- package/dist/{chunk-DFNCYH7G.js → chunk-OZMKDFJU.js} +2 -2
- package/dist/{chunk-3ODUTQG5.js → chunk-P47UW3N5.js} +2 -2
- package/dist/{chunk-M7P6GCXS.js → chunk-POMZGFDP.js} +3 -3
- package/dist/{chunk-2WMPGRZV.js → chunk-PSWYKWKN.js} +4 -4
- package/dist/{chunk-SKWDDWHT.js → chunk-PTAJKZBG.js} +4 -4
- package/dist/{chunk-DFIH6ZZF.js → chunk-Q6X5EVH5.js} +1 -1
- package/dist/{chunk-HNVYH2WE.js → chunk-Q7YT7RGZ.js} +2 -2
- package/dist/{chunk-2DDXCN4A.js → chunk-QJI5LPRJ.js} +3 -3
- package/dist/{chunk-TRBSWP2V.js → chunk-QX7FJJBT.js} +1 -1
- package/dist/{chunk-2SDTYPJ5.js → chunk-R7F3UARN.js} +1 -1
- package/dist/{chunk-TM2BQ6PS.js → chunk-R7JQKULM.js} +3 -3
- package/dist/{chunk-TTHUPNBU.js → chunk-RCMXCNMC.js} +1 -1
- package/dist/{chunk-XWOEPR2Q.js → chunk-RSOHC3JR.js} +2 -2
- package/dist/{chunk-36WZEH4Z.js → chunk-RUAEYGEH.js} +1 -1
- package/dist/{chunk-ROQ6R3FV.js → chunk-SQE2PHXK.js} +1 -1
- package/dist/{chunk-WO6KY2SP.js → chunk-SVORDFGR.js} +6 -6
- package/dist/{chunk-TFKVXWVG.js → chunk-SZHPUFK7.js} +5 -5
- package/dist/{chunk-KAY2CDFK.js → chunk-TLAW77QU.js} +7 -7
- package/dist/{chunk-TWHPVYBU.js → chunk-TRH6E2HV.js} +4 -4
- package/dist/{chunk-YBUSK4GH.js → chunk-UAPWTGRP.js} +1 -1
- package/dist/{chunk-PTI2NYAM.js → chunk-UI2MRWQC.js} +2 -2
- package/dist/{chunk-3QYMH77Q.js → chunk-UI5HQJK5.js} +1 -1
- package/dist/{chunk-ROOST7ZU.js → chunk-ULBPH7SD.js} +1 -1
- package/dist/{chunk-GUZOREJ4.js → chunk-ULORKGXX.js} +2 -2
- package/dist/{chunk-GW67QP3K.js → chunk-UMXUJTSQ.js} +6 -6
- package/dist/{chunk-FQMLNMUZ.js → chunk-UOZBM4LO.js} +3 -3
- package/dist/{chunk-EPKJANA5.js → chunk-UPGKO5UD.js} +1 -1
- package/dist/{chunk-AFDVI6KB.js → chunk-UQDCXE5D.js} +1 -1
- package/dist/{chunk-GAUMGWSQ.js → chunk-UYU25KCR.js} +4 -4
- package/dist/{chunk-TQDEHRVD.js → chunk-UZZSM36C.js} +1 -1
- package/dist/{chunk-OJ2OGGK2.js → chunk-V5C7NLBF.js} +3 -3
- package/dist/{chunk-AQZ3WYPU.js → chunk-V6EIR7QO.js} +2 -2
- package/dist/{chunk-AXGHNNOO.js → chunk-VFVF3FHG.js} +1 -1
- package/dist/{chunk-QTVEBBQT.js → chunk-VRTBRPRO.js} +1 -1
- package/dist/{chunk-GTW56AUB.js → chunk-VX7I5XT6.js} +2 -3
- package/dist/{chunk-4Y5EKT3D.js → chunk-VXYXKN6Z.js} +5 -5
- package/dist/{chunk-XG7OHNPA.js → chunk-W2SNTOQE.js} +5 -5
- package/dist/{chunk-ZFDQJVKH.js → chunk-WHQADJV7.js} +1 -1
- package/dist/{chunk-SDYIUXW7.js → chunk-XMQE5IBD.js} +1 -1
- package/dist/{chunk-YPSS2SHD.js → chunk-XQH5BKEC.js} +2 -2
- package/dist/{chunk-5523XPQ5.js → chunk-YQ7V5UGG.js} +4 -4
- package/dist/{chunk-U67KLIPZ.js → chunk-YUMZXMKO.js} +1 -1
- package/dist/{chunk-BIHUXE5T.js → chunk-Z25GSJ55.js} +3 -3
- package/dist/{chunk-O22YLZXQ.js → chunk-ZFJ2KQNY.js} +1 -1
- package/dist/{chunk-UBFKX2AN.js → chunk-ZGILZG4X.js} +3 -3
- package/dist/{chunk-T4LKMZKF.js → chunk-ZHENW7C3.js} +1 -1
- package/dist/{chunk-QKH64COS.js → chunk-ZK645I2O.js} +5 -5
- package/dist/{chunk-AZRKNXMB.js → chunk-ZPMKJS7L.js} +4 -4
- package/dist/{cleanup-graph-garbage-EPZIDN7L.js → cleanup-graph-garbage-4PGUCD7L.js} +8 -8
- package/dist/{cli-shutdown-DM5YVHIP.js → cli-shutdown-TWBTAIJX.js} +1 -1
- package/dist/{cloud-sync-command-FNOSXKNT.js → cloud-sync-command-GLTTBKWO.js} +2 -2
- package/dist/{cloud-sync-db-init-5DIULXS2.js → cloud-sync-db-init-GCR22YII.js} +1 -1
- package/dist/{cloud-sync-shutdown-RTTZ3C53.js → cloud-sync-shutdown-YMLKOH3D.js} +3 -3
- package/dist/{co-activation-7D34HSWC.js → co-activation-MTMCPMZ7.js} +3 -3
- package/dist/{co-occurrence-7JJMQ3GI.js → co-occurrence-USGUH6Q4.js} +6 -6
- package/dist/{consent-passphrase-ZNB3GYWB.js → consent-passphrase-47T2T7AI.js} +2 -2
- package/dist/{conversation-entity-extractor-YSNOVYBN.js → conversation-entity-extractor-NMXN4MFL.js} +3 -3
- package/dist/{crdt-sync-MHQ6XSMO.js → crdt-sync-MKLAGQ44.js} +4 -4
- package/dist/{crm-webhook-WLFDORDH.js → crm-webhook-5XPG7KVJ.js} +2 -2
- package/dist/{cto-delegation-gate-KD5POZYX.js → cto-delegation-gate-MPD4NXN2.js} +14 -14
- package/dist/{daemon-orchestration-3LRZCT6E.js → daemon-orchestration-3PQVCRII.js} +20 -20
- package/dist/{doc-graph-extractor-KNX2SMZH.js → doc-graph-extractor-N4ROA5Y6.js} +6 -6
- package/dist/{documents-2QWQETQJ.js → documents-MB6ZBMFN.js} +8 -8
- package/dist/{dreaming-AQHABHGO.js → dreaming-J44REYEX.js} +19 -19
- package/dist/{employee-boot-brief-XJDE3JSJ.js → employee-boot-brief-XGGQIUWH.js} +23 -23
- package/dist/{entity-boost-T6WZN7UG.js → entity-boost-EF4ZVOAL.js} +1 -1
- package/dist/{exe-drift-NRQ36UMA.js → exe-drift-BG7P4MPD.js} +4 -4
- package/dist/{exe-export-ET4SWQ3K.js → exe-export-JGIBEZ6Y.js} +9 -9
- package/dist/{exe-import-DSMF6Z6O.js → exe-import-WLFLUY3Y.js} +9 -9
- package/dist/{exe-key-UUMREJEU.js → exe-key-VST55TOI.js} +93 -93
- package/dist/{exe-org-GV72LHO5.js → exe-org-FRBL3DFL.js} +32 -32
- package/dist/{exe-snapshot-EQG3R45R.js → exe-snapshot-RYI5ECPA.js} +22 -22
- package/dist/{fast-db-init-YRCNKGFD.js → fast-db-init-SIDYVAXH.js} +1 -1
- package/dist/{founder-context-3X5JFEQQ.js → founder-context-2NDDWGSH.js} +2 -2
- package/dist/{founder-monitor-envelope-OYRYJZBS.js → founder-monitor-envelope-KZCFNWMB.js} +4 -4
- package/dist/gateway/index.js +11 -11
- package/dist/{gateway-client-R3XZHUNA.js → gateway-client-KABOHP62.js} +1 -1
- package/dist/{git-staleness-JWTUU3B7.js → git-staleness-2CLU6VTA.js} +3 -3
- package/dist/{global-procedures-GUCIJGTG.js → global-procedures-W3G63OIF.js} +5 -5
- package/dist/{graph-auto-extract-SGRQ37NU.js → graph-auto-extract-3UV2CVSW.js} +6 -6
- package/dist/{graph-query-ABAIG6YK.js → graph-query-6HLVU6K6.js} +1 -1
- package/dist/{graph-rag-DB5SXSJ6.js → graph-rag-5AMI2SXI.js} +3 -3
- package/dist/{hook-integrity-AGQSJJGP.js → hook-integrity-OYI2N5RC.js} +1 -1
- package/dist/{hook-prefetch-GUBRFD5N.js → hook-prefetch-JV5HG7BJ.js} +15 -15
- package/dist/hooks/bug-report-worker.js +19 -19
- package/dist/hooks/codex-stop-task-finalizer.js +21 -21
- package/dist/hooks/commit-complete.js +18 -18
- package/dist/hooks/error-recall.js +11 -11
- package/dist/hooks/exe-heartbeat-hook.js +5 -5
- package/dist/hooks/ingest-worker.js +7 -7
- package/dist/hooks/ingest.js +13 -13
- package/dist/hooks/instructions-loaded.js +7 -7
- package/dist/hooks/manifest.json +20 -20
- package/dist/hooks/notification.js +6 -6
- package/dist/hooks/post-compact.js +5 -5
- package/dist/hooks/post-tool-combined.js +13 -13
- package/dist/hooks/pre-compact.js +18 -18
- package/dist/hooks/pre-tool-use.js +2 -2
- package/dist/hooks/prompt-submit.js +36 -36
- package/dist/hooks/session-end.js +23 -23
- package/dist/hooks/session-start.js +18 -18
- package/dist/hooks/stop.js +21 -21
- package/dist/hooks/subagent-stop.js +20 -20
- package/dist/hooks/summary-worker.js +22 -22
- package/dist/index.js +26 -26
- package/dist/{installer-KC5BRKQD.js → installer-LY3KOTTY.js} +7 -7
- package/dist/{installer-W2REG4OT.js → installer-X3WJPT5P.js} +7 -7
- package/dist/{installer-IRALYZ4O.js → installer-Y5OURERO.js} +7 -7
- package/dist/{intercom-queue-WJ52Y7ZM.js → intercom-queue-5LBDKW7T.js} +14 -14
- package/dist/lib/cloud-sync.js +16 -16
- package/dist/lib/consolidation.js +9 -9
- package/dist/lib/crypto.js +3 -3
- package/dist/lib/database.js +3 -3
- package/dist/lib/db-backup.js +1 -1
- package/dist/lib/db-write-worker.js +3 -3
- package/dist/lib/db.js +3 -3
- package/dist/lib/device-registry.js +1 -1
- package/dist/lib/employee-templates.js +6 -6
- package/dist/lib/employees.js +3 -3
- package/dist/lib/exe-daemon.js +85 -85
- package/dist/lib/hybrid-search.js +9 -9
- package/dist/lib/identity.js +3 -3
- package/dist/lib/keychain.js +1 -1
- package/dist/lib/license.js +2 -2
- package/dist/lib/messaging.js +15 -15
- package/dist/lib/post-tool-memory.js +5 -5
- package/dist/lib/registry-proxy.js +1 -1
- package/dist/lib/reminders.js +4 -4
- package/dist/lib/schedules.js +8 -8
- package/dist/lib/session-registry.js +5 -5
- package/dist/lib/skill-learning.js +9 -9
- package/dist/lib/store.js +7 -7
- package/dist/lib/task-router.js +4 -4
- package/dist/lib/tasks.js +16 -16
- package/dist/lib/tmux-routing.js +14 -14
- package/dist/lib/token-spend.js +4 -4
- package/dist/lib/ws-client.js +1 -1
- package/dist/{license-gate-YAA3BFTG.js → license-gate-ZENWFXPR.js} +3 -3
- package/dist/{license-recheck-WOVNBY54.js → license-recheck-J2I5LOY6.js} +1 -1
- package/dist/{license-sync-4GBRQ3NQ.js → license-sync-Y5JLOYTI.js} +2 -2
- package/dist/mcp/register-tools.js +92 -92
- package/dist/mcp/server.js +92 -92
- package/dist/mcp/tools/complete-reminder.js +5 -5
- package/dist/mcp/tools/create-reminder.js +5 -5
- package/dist/mcp/tools/create-task.js +18 -18
- package/dist/mcp/tools/deactivate-behavior.js +10 -10
- package/dist/mcp/tools/list-reminders.js +5 -5
- package/dist/mcp/tools/list-tasks.js +18 -18
- package/dist/mcp/tools/send-message.js +17 -17
- package/dist/mcp/tools/update-task.js +17 -17
- package/dist/{mcp-http-config-JJFHT7EU.js → mcp-http-config-CQDHUBEL.js} +5 -5
- package/dist/{mcp-session-identity-AA24Y7M7.js → mcp-session-identity-5P4KAHTQ.js} +14 -14
- package/dist/{memory-cards-FE7CH766.js → memory-cards-XYZQ5J5T.js} +7 -7
- package/dist/{memory-graph-extractor-XALPE33I.js → memory-graph-extractor-K57UAS52.js} +7 -7
- package/dist/{memory-maintenance-42VRD746.js → memory-maintenance-BF6DEY23.js} +1 -1
- package/dist/{memory-poisoning-defense-R7T4ZQBO.js → memory-poisoning-defense-DRJOUPIL.js} +3 -3
- package/dist/{memory-pressure-watchdog-YR7OOVNY.js → memory-pressure-watchdog-6EVWGJ6K.js} +15 -15
- package/dist/{memory-reflection-SU57VEBT.js → memory-reflection-3TX3U2RP.js} +7 -7
- package/dist/{memory-write-repository-AZFMYNFE.js → memory-write-repository-IXUYUMAK.js} +1 -1
- package/dist/{monitor-grants-EQOXKY44.js → monitor-grants-BTAWMLRU.js} +3 -3
- package/dist/{monitor-identity-QO7YCJ45.js → monitor-identity-VZDTHQDS.js} +2 -2
- package/dist/{notification-ledger-BYBU427R.js → notification-ledger-FQ5FE6H2.js} +15 -15
- package/dist/{notifications-7EBPEORY.js → notifications-4NV4X5US.js} +14 -14
- package/dist/{orchestration-events-UWSAFL25.js → orchestration-events-J6MGN7BL.js} +4 -4
- package/dist/{orchestrator-T3LSQK7S.js → orchestrator-3RAP4BIW.js} +16 -16
- package/dist/{org-brief-session-4VXN7UFY.js → org-brief-session-S5TVA7ZS.js} +15 -15
- package/dist/{org-consent-policy-X4ZEAHIR.js → org-consent-policy-EBTTGC7A.js} +5 -5
- package/dist/{org-join-2GRVJWCW.js → org-join-WLATMHMH.js} +9 -9
- package/dist/{org-key-admin-Q54ZASNY.js → org-key-admin-KJBO4TMT.js} +11 -11
- package/dist/{org-key-epoch-F3XYALXK.js → org-key-epoch-5E7OFFY5.js} +5 -5
- package/dist/{org-key-pin-3ZKOEYQS.js → org-key-pin-YHWVAB4F.js} +3 -3
- package/dist/{org-membership-3EHM5TDB.js → org-membership-PGATG3HH.js} +4 -4
- package/dist/{org-partner-config-N32CQSIW.js → org-partner-config-I6RTWJYD.js} +8 -8
- package/dist/{org-partner-runtime-S7Q4W5I5.js → org-partner-runtime-CSKMXXHT.js} +15 -15
- package/dist/{org-row-visibility-IUOZSB56.js → org-row-visibility-ZK3OLJ67.js} +1 -1
- package/dist/{pipeline-router-GCAJZN4H.js → pipeline-router-A3LVNWB6.js} +4 -4
- package/dist/{plan-limits-N5TAWTKK.js → plan-limits-3XZY7F72.js} +6 -6
- package/dist/{pre-tool-use-impl-VCHU3RAP.js → pre-tool-use-impl-DNACKCTW.js} +30 -30
- package/dist/{project-name-2GN2XXVD.js → project-name-2TTGTGEQ.js} +4 -4
- package/dist/{projection-worker-3GKE4WEE.js → projection-worker-WW7T7QN2.js} +2 -2
- package/dist/{prospective-memory-TYA3TWQD.js → prospective-memory-44J6PINA.js} +3 -3
- package/dist/{push-notifications-NKOXRWUY.js → push-notifications-XXJDSJA6.js} +15 -15
- package/dist/{reproject-worktree-memories-OPUWR2K2.js → reproject-worktree-memories-DVAR2CSE.js} +14 -14
- package/dist/{reranker-IYVEMKHW.js → reranker-4LFGA2X5.js} +1 -1
- package/dist/{retrieval-health-BIGTBGIP.js → retrieval-health-OMOG6DVF.js} +1 -1
- package/dist/{review-polling-ZLIBMKW4.js → review-polling-EX2WCR5V.js} +15 -15
- package/dist/runtime/index.js +18 -18
- package/dist/{session-events-H5T2UBTK.js → session-events-Z5XJD4R3.js} +15 -15
- package/dist/{session-kill-telemetry-AHUOYQEM.js → session-kill-telemetry-UYQ5H3XQ.js} +15 -15
- package/dist/{session-scope-KVIRKTX7.js → session-scope-NUWMURJ7.js} +14 -14
- package/dist/{setup-wizard-5VRFHYUR.js → setup-wizard-BP4FM3SE.js} +2 -2
- package/dist/{shard-manager-TPRWCONR.js → shard-manager-FIMZLYAN.js} +2 -2
- package/dist/{skill-refinement-2IOY2TOP.js → skill-refinement-YRTPOCTT.js} +4 -4
- package/dist/{skill-retrieval-55KMSROF.js → skill-retrieval-WEGXROXO.js} +11 -11
- package/dist/{skill-usage-JCSBXOM6.js → skill-usage-7HHQGIMF.js} +4 -4
- package/dist/{stack-generate-manifest-HDZZ5ZRU.js → stack-generate-manifest-NWBAQUC6.js} +4 -4
- package/dist/{stack-promote-OLIJI4GI.js → stack-promote-NV2ZQEVL.js} +4 -4
- package/dist/{stack-release-QBLVY2ZF.js → stack-release-IPOLLLJH.js} +5 -5
- package/dist/{stack-update-JHPGK6AM.js → stack-update-5LT2U7IP.js} +3 -3
- package/dist/{steward-gate-2YQ6DOO3.js → steward-gate-BY7R6PJI.js} +4 -4
- package/dist/{subagent-brief-injection-BKSHRUTQ.js → subagent-brief-injection-MHQEC6VS.js} +25 -25
- package/dist/{support-bug-actions-G2I77EPX.js → support-bug-actions-QIJETJW5.js} +3 -3
- package/dist/{support-inbox-FP44VIA4.js → support-inbox-YGGVORLU.js} +12 -12
- package/dist/{task-enforcement-MJSY7ZZF.js → task-enforcement-IRFSPSN3.js} +15 -15
- package/dist/{task-request-inbox-AZUGPSW6.js → task-request-inbox-3JRUEHQ5.js} +5 -5
- package/dist/{task-scope-NF7JKUD7.js → task-scope-Q4GALTXQ.js} +14 -14
- package/dist/{tasks-crud-SRP4GIL2.js → tasks-crud-EPCTLLQ3.js} +14 -14
- package/dist/{tasks-notify-VP3ZRTKA.js → tasks-notify-B6ORX32W.js} +15 -15
- package/dist/{tasks-review-ASOST3JT.js → tasks-review-6MXUAHHW.js} +14 -14
- package/dist/{telemetry-upload-KIMFENPR.js → telemetry-upload-HQEFD3C5.js} +8 -8
- package/dist/{token-budget-47HHAV2D.js → token-budget-WD3O2E67.js} +4 -4
- package/dist/{tool-telemetry-D6DUOQHB.js → tool-telemetry-WRQUOLQX.js} +1 -1
- package/dist/tui/App.js +24 -24
- package/dist/{tui-data-3Y2DUC57.js → tui-data-F4MEUKAG.js} +18 -18
- package/dist/{update-support-5G5P4ZGV.js → update-support-UXAVIPYK.js} +11 -11
- package/dist/{whatsapp-KGOFKMVE.js → whatsapp-OXW4DIHE.js} +2 -2
- package/dist/{wiki-acl-CXFMQHKZ.js → wiki-acl-J564J7MH.js} +1 -1
- package/dist/{work-claims-O2WSV3EK.js → work-claims-AURJKQOJ.js} +4 -4
- package/dist/{work-state-heartbeat-EPJZICCW.js → work-state-heartbeat-KS3XNIJW.js} +1 -1
- package/dist/{workflow-engine-MVMZIOEQ.js → workflow-engine-TSLIUTU2.js} +2 -2
- package/dist/{worktree-DIXUIFXS.js → worktree-4YARVREJ.js} +5 -5
- package/dist/{worktree-sweep-ZKPAO5EG.js → worktree-sweep-XMESZYDA.js} +6 -6
- package/package.json +1 -1
- package/release-notes.json +10 -3
- package/stack.release.json +3 -3
- /package/dist/{chunk-TXMGX6U2.js → chunk-2WJDZ7ZL.js} +0 -0
- /package/dist/{chunk-FMCLWB6A.js → chunk-5RIIZINL.js} +0 -0
- /package/dist/{chunk-ONXR3HDH.js → chunk-7SQPOOQI.js} +0 -0
- /package/dist/{chunk-X7VWZ4ZI.js → chunk-A65MJS3O.js} +0 -0
- /package/dist/{chunk-MBZXKIG3.js → chunk-CZ3RYFNL.js} +0 -0
- /package/dist/{chunk-GASLH556.js → chunk-DTQF6UBE.js} +0 -0
- /package/dist/{chunk-RICCASG5.js → chunk-IPJRMBYC.js} +0 -0
- /package/dist/{chunk-GZL3DOGB.js → chunk-J6UCIUPI.js} +0 -0
- /package/dist/{chunk-RYXW24OR.js → chunk-JCV4UPMD.js} +0 -0
- /package/dist/{chunk-ZZBQO44I.js → chunk-K2ETALNO.js} +0 -0
- /package/dist/{chunk-OJ7SLC5P.js → chunk-OJG6S5OI.js} +0 -0
- /package/dist/{chunk-BTIXHM2F.js → chunk-R75Z5WXN.js} +0 -0
- /package/dist/{chunk-3JRVKBF2.js → chunk-ZXMOTEQE.js} +0 -0
- /package/dist/{core-memory-LDOO2QBB.js → core-memory-SKTPW67X.js} +0 -0
- /package/dist/{memory-isolation-JVIFSPYK.js → memory-isolation-XXQUEA6Z.js} +0 -0
- /package/dist/{oauth-server-N22SJWOH.js → oauth-server-XD33YOXG.js} +0 -0
- /package/dist/{project-boot-46E2KI2Y.js → project-boot-H2RD4NGX.js} +0 -0
|
@@ -1809,6 +1809,27 @@ function expandEnvReferences(token, homeDir, env) {
|
|
|
1809
1809
|
if (out === "~" || out.startsWith("~/")) out = home + out.slice(1);
|
|
1810
1810
|
return out;
|
|
1811
1811
|
}
|
|
1812
|
+
var KNOWN_SAFE_PATH_ROOT_SUBSTITUTION = /^\$\(\s*npm\s+root\s+(?:-g|--global)\s*\)$/;
|
|
1813
|
+
function npmRootGSubstitutionMayBePolluted(fullCommand, env) {
|
|
1814
|
+
if (env.npm_config_prefix || env.NPM_CONFIG_PREFIX || env.PREFIX) return true;
|
|
1815
|
+
if (/\b(?:npm_config_prefix|NPM_CONFIG_PREFIX|PREFIX)\s*=/.test(fullCommand)) return true;
|
|
1816
|
+
if (/\bnpm\s+config\b/i.test(fullCommand)) return true;
|
|
1817
|
+
if (/\bln\b/.test(fullCommand)) return true;
|
|
1818
|
+
return false;
|
|
1819
|
+
}
|
|
1820
|
+
function isTrustedNodeBootArgument(argument, homeDir, env) {
|
|
1821
|
+
const expanded = expandEnvReferences(argument, homeDir, env);
|
|
1822
|
+
if (fstringIsOpaque(expanded)) return false;
|
|
1823
|
+
const substitutions = expanded.match(/\$\([^)]*\)|`[^`]*`/g) ?? [];
|
|
1824
|
+
if (substitutions.length !== 1) return false;
|
|
1825
|
+
const substitution = substitutions[0];
|
|
1826
|
+
if (!KNOWN_SAFE_PATH_ROOT_SUBSTITUTION.test(substitution)) return false;
|
|
1827
|
+
if (expanded.indexOf(substitution) !== 0) return false;
|
|
1828
|
+
const rest = expanded.slice(substitution.length);
|
|
1829
|
+
if (/\$\{|\$[^A-Za-z_\s)]/.test(rest)) return false;
|
|
1830
|
+
if (rest.split("/").some((seg) => seg === "..")) return false;
|
|
1831
|
+
return true;
|
|
1832
|
+
}
|
|
1812
1833
|
function isUnverifiablePathToken(expanded) {
|
|
1813
1834
|
if (fstringIsOpaque(expanded)) return true;
|
|
1814
1835
|
if (!UNRESOLVABLE_EXPANSION.test(expanded)) return false;
|
|
@@ -1818,6 +1839,15 @@ function isUnverifiablePathToken(expanded) {
|
|
|
1818
1839
|
function inAuditDir(resolved, auditDir, ledgerFile) {
|
|
1819
1840
|
return resolved === ledgerFile || resolved === auditDir || resolved.startsWith(auditDir + path2.sep);
|
|
1820
1841
|
}
|
|
1842
|
+
function findBracketClassEnd(component, start) {
|
|
1843
|
+
return component.indexOf("]", component[start] === "]" ? start + 1 : start);
|
|
1844
|
+
}
|
|
1845
|
+
function hasAmbiguousPosixClassIntroducer(chars) {
|
|
1846
|
+
for (let i = 0; i < chars.length; i++) {
|
|
1847
|
+
if (chars[i] === "[" && /[:.=]/.test(chars[i + 1] ?? "")) return true;
|
|
1848
|
+
}
|
|
1849
|
+
return false;
|
|
1850
|
+
}
|
|
1821
1851
|
function globComponentPattern(component) {
|
|
1822
1852
|
let pattern = "";
|
|
1823
1853
|
for (let i = 0; i < component.length; i++) {
|
|
@@ -1828,11 +1858,16 @@ function globComponentPattern(component) {
|
|
|
1828
1858
|
let start = i + 1;
|
|
1829
1859
|
const negated = component[start] === "!" || component[start] === "^";
|
|
1830
1860
|
if (negated) start++;
|
|
1831
|
-
const end = component
|
|
1832
|
-
if (end < 0)
|
|
1861
|
+
const end = findBracketClassEnd(component, start);
|
|
1862
|
+
if (end < 0) {
|
|
1863
|
+
pattern += "\\[";
|
|
1864
|
+
continue;
|
|
1865
|
+
}
|
|
1833
1866
|
const chars = component.slice(start, end);
|
|
1834
|
-
if (chars.includes("
|
|
1835
|
-
|
|
1867
|
+
if (chars.includes("\\") || hasAmbiguousPosixClassIntroducer(chars)) {
|
|
1868
|
+
throw new Error("Unverified glob character class");
|
|
1869
|
+
}
|
|
1870
|
+
pattern += `[${negated ? "^" : ""}${chars.replace(/[\]^\\]/g, "\\$&")}]`;
|
|
1836
1871
|
i = end;
|
|
1837
1872
|
} else pattern += char.replace(/[.+^${}()|\\\]]/g, "\\$&");
|
|
1838
1873
|
}
|
|
@@ -1893,7 +1928,16 @@ function segmentAuditVerdict(text, auditDir, ledgerFile, rawLedgerPath, rawAudit
|
|
|
1893
1928
|
if (mentions(text) || mentions(expandEnvReferences(text, homeDir, env))) return "yes";
|
|
1894
1929
|
let unverified = false;
|
|
1895
1930
|
for (const frag of text.split(/\s+/)) {
|
|
1896
|
-
|
|
1931
|
+
const expandedFrag = expandEnvReferences(frag, homeDir, env);
|
|
1932
|
+
if (isUnverifiablePathToken(expandedFrag)) {
|
|
1933
|
+
unverified = true;
|
|
1934
|
+
continue;
|
|
1935
|
+
}
|
|
1936
|
+
if (!/[*?\[]/.test(expandedFrag)) continue;
|
|
1937
|
+
if (UNRESOLVABLE_EXPANSION.test(expandedFrag)) continue;
|
|
1938
|
+
const verdict = globAuditVerdict(expandedFrag.replace(/\/+\*+\/?$/, ""), cwd, auditDir, ledgerFile);
|
|
1939
|
+
if (verdict === "yes") return "yes";
|
|
1940
|
+
if (verdict === "unverified") unverified = true;
|
|
1897
1941
|
}
|
|
1898
1942
|
for (const tok of tokenizeShell(text).tokens) {
|
|
1899
1943
|
const stripped = tok.replace(/\/+\*+\/?$/, "");
|
|
@@ -1987,6 +2031,159 @@ function segmentAuditVerdict(text, auditDir, ledgerFile, rawLedgerPath, rawAudit
|
|
|
1987
2031
|
}
|
|
1988
2032
|
return unverified ? "unverified" : "no";
|
|
1989
2033
|
}
|
|
2034
|
+
function segmentHasOnlyAllowlistedRedirects(segment) {
|
|
2035
|
+
const n = segment.length;
|
|
2036
|
+
let i = 0;
|
|
2037
|
+
let inSingle = false;
|
|
2038
|
+
let inDouble = false;
|
|
2039
|
+
const readWord = (start) => {
|
|
2040
|
+
let cur = "";
|
|
2041
|
+
let j = start;
|
|
2042
|
+
let single = false;
|
|
2043
|
+
let double = false;
|
|
2044
|
+
while (j < n) {
|
|
2045
|
+
const ch = segment[j];
|
|
2046
|
+
const next = segment[j + 1];
|
|
2047
|
+
if (single) {
|
|
2048
|
+
if (ch === "'") {
|
|
2049
|
+
single = false;
|
|
2050
|
+
j++;
|
|
2051
|
+
continue;
|
|
2052
|
+
}
|
|
2053
|
+
cur += ch;
|
|
2054
|
+
j++;
|
|
2055
|
+
continue;
|
|
2056
|
+
}
|
|
2057
|
+
if (double) {
|
|
2058
|
+
if (ch === '"') {
|
|
2059
|
+
double = false;
|
|
2060
|
+
j++;
|
|
2061
|
+
continue;
|
|
2062
|
+
}
|
|
2063
|
+
if (ch === "\\" && (next === "$" || next === "`" || next === '"' || next === "\\")) {
|
|
2064
|
+
cur += next;
|
|
2065
|
+
j += 2;
|
|
2066
|
+
continue;
|
|
2067
|
+
}
|
|
2068
|
+
cur += ch;
|
|
2069
|
+
j++;
|
|
2070
|
+
continue;
|
|
2071
|
+
}
|
|
2072
|
+
if (ch === "'") {
|
|
2073
|
+
single = true;
|
|
2074
|
+
j++;
|
|
2075
|
+
continue;
|
|
2076
|
+
}
|
|
2077
|
+
if (ch === '"') {
|
|
2078
|
+
double = true;
|
|
2079
|
+
j++;
|
|
2080
|
+
continue;
|
|
2081
|
+
}
|
|
2082
|
+
if (/\s/.test(ch)) break;
|
|
2083
|
+
if (ch === ";" || ch === "|" || ch === "&" || ch === "<" || ch === ">" || ch === "(" || ch === ")") break;
|
|
2084
|
+
if (ch === "\\" && next !== void 0) {
|
|
2085
|
+
cur += next;
|
|
2086
|
+
j += 2;
|
|
2087
|
+
continue;
|
|
2088
|
+
}
|
|
2089
|
+
cur += ch;
|
|
2090
|
+
j++;
|
|
2091
|
+
}
|
|
2092
|
+
return { word: cur, end: j, ambiguous: single || double };
|
|
2093
|
+
};
|
|
2094
|
+
while (i < n) {
|
|
2095
|
+
const ch = segment[i];
|
|
2096
|
+
const next = segment[i + 1];
|
|
2097
|
+
if (inSingle) {
|
|
2098
|
+
if (ch === "'") inSingle = false;
|
|
2099
|
+
i++;
|
|
2100
|
+
continue;
|
|
2101
|
+
}
|
|
2102
|
+
if (inDouble) {
|
|
2103
|
+
if (ch === "\\" && (next === "$" || next === "`" || next === '"' || next === "\\")) {
|
|
2104
|
+
i += 2;
|
|
2105
|
+
continue;
|
|
2106
|
+
}
|
|
2107
|
+
if (ch === '"') {
|
|
2108
|
+
inDouble = false;
|
|
2109
|
+
i++;
|
|
2110
|
+
continue;
|
|
2111
|
+
}
|
|
2112
|
+
i++;
|
|
2113
|
+
continue;
|
|
2114
|
+
}
|
|
2115
|
+
if (ch === "'") {
|
|
2116
|
+
inSingle = true;
|
|
2117
|
+
i++;
|
|
2118
|
+
continue;
|
|
2119
|
+
}
|
|
2120
|
+
if (ch === '"') {
|
|
2121
|
+
inDouble = true;
|
|
2122
|
+
i++;
|
|
2123
|
+
continue;
|
|
2124
|
+
}
|
|
2125
|
+
if (ch === "\\" && next !== void 0) {
|
|
2126
|
+
i += 2;
|
|
2127
|
+
continue;
|
|
2128
|
+
}
|
|
2129
|
+
let opStart = i;
|
|
2130
|
+
let fdDigits = "";
|
|
2131
|
+
if (/[0-9]/.test(ch)) {
|
|
2132
|
+
let k2 = i;
|
|
2133
|
+
while (k2 < n && /[0-9]/.test(segment[k2])) k2++;
|
|
2134
|
+
if (segment[k2] === "<" || segment[k2] === ">") {
|
|
2135
|
+
opStart = k2;
|
|
2136
|
+
fdDigits = segment.slice(i, k2);
|
|
2137
|
+
}
|
|
2138
|
+
}
|
|
2139
|
+
let opText = "";
|
|
2140
|
+
if (segment.startsWith("<<<", opStart)) opText = "<<<";
|
|
2141
|
+
else if (segment.startsWith("<<", opStart)) opText = "<<";
|
|
2142
|
+
else if (segment.startsWith("<>", opStart)) opText = "<>";
|
|
2143
|
+
else if (segment[opStart] === "<") opText = "<";
|
|
2144
|
+
else if (segment.startsWith("&>>", opStart)) opText = "&>>";
|
|
2145
|
+
else if (segment.startsWith("&>", opStart)) opText = "&>";
|
|
2146
|
+
else if (segment.startsWith(">>", opStart)) opText = ">>";
|
|
2147
|
+
else if (segment[opStart] === ">") opText = ">";
|
|
2148
|
+
if (opText === "") {
|
|
2149
|
+
i++;
|
|
2150
|
+
continue;
|
|
2151
|
+
}
|
|
2152
|
+
const isHeredoc = opText === "<<" || opText === "<<<";
|
|
2153
|
+
let k = opStart + opText.length;
|
|
2154
|
+
while (k < n && /[ \t]/.test(segment[k])) k++;
|
|
2155
|
+
if (segment[k] === "&" && /[0-9-]/.test(segment[k + 1] ?? "")) {
|
|
2156
|
+
const dupTo = segment[k + 1];
|
|
2157
|
+
const isAllowedDup = opText === ">" && fdDigits === "2" && dupTo === "1" || // 2>&1
|
|
2158
|
+
opText === ">" && fdDigits === "1" && dupTo === "2" || // 1>&2
|
|
2159
|
+
opText === ">" && fdDigits === "" && dupTo === "2";
|
|
2160
|
+
if (!isAllowedDup) return false;
|
|
2161
|
+
i = k + 2;
|
|
2162
|
+
continue;
|
|
2163
|
+
}
|
|
2164
|
+
if (isHeredoc) {
|
|
2165
|
+
const from = segment[k] === "-" ? k + 1 : k;
|
|
2166
|
+
const { end: end2, ambiguous: ambiguous2 } = readWord(from);
|
|
2167
|
+
if (ambiguous2) return false;
|
|
2168
|
+
i = Math.max(end2, opStart + opText.length);
|
|
2169
|
+
continue;
|
|
2170
|
+
}
|
|
2171
|
+
const { word, end, ambiguous } = readWord(k);
|
|
2172
|
+
if (ambiguous) return false;
|
|
2173
|
+
const isNullTargetShape = opText === ">" && (fdDigits === "" || fdDigits === "1" || fdDigits === "2") || opText === "&>" || opText === "<" && fdDigits === "";
|
|
2174
|
+
if (!isNullTargetShape || word !== "/dev/null") return false;
|
|
2175
|
+
i = Math.max(end, opStart + opText.length);
|
|
2176
|
+
}
|
|
2177
|
+
return !(inSingle || inDouble);
|
|
2178
|
+
}
|
|
2179
|
+
function isTrustedNodeBootLine(seg, homeDir, env, npmRootGSubstitutionPolluted) {
|
|
2180
|
+
if (npmRootGSubstitutionPolluted) return false;
|
|
2181
|
+
if (!/^\s*node\s+"\$\(npm root (?:-g|--global)\)\/[A-Za-z0-9@._\/-]+"(?:\s+--[a-z][a-z-]*)*\s*$/.test(seg)) return false;
|
|
2182
|
+
const tokens = tokenizeShell(seg).tokens;
|
|
2183
|
+
if (tokens.length < 2 || tokens[0] !== "node") return false;
|
|
2184
|
+
if (!tokens.slice(2).every((t) => /^--[a-z][a-z-]*$/.test(t))) return false;
|
|
2185
|
+
return isTrustedNodeBootArgument(tokens[1], homeDir, env);
|
|
2186
|
+
}
|
|
1990
2187
|
function hasLiveCommandOrProcessSubstitution(text) {
|
|
1991
2188
|
let state = "none";
|
|
1992
2189
|
for (let i = 0; i < text.length; i++) {
|
|
@@ -2052,11 +2249,27 @@ function commandMutatesLedger(command, ledgerPath, homeDir, cwd, env, depth = 0)
|
|
|
2052
2249
|
});
|
|
2053
2250
|
return commandMutatesLedgerForSegments(quoteAwareSegments, command, ledgerPath, homeDir, cwd, env, depth) || commandMutatesLedgerForSegments(naiveSegments, command, ledgerPath, homeDir, cwd, env, depth);
|
|
2054
2251
|
}
|
|
2055
|
-
function
|
|
2252
|
+
function rejoinSplitFdDuplications(segments) {
|
|
2253
|
+
const rejoined = [];
|
|
2254
|
+
for (let i = 0; i < segments.length; i++) {
|
|
2255
|
+
const seg = segments[i];
|
|
2256
|
+
const next = segments[i + 1];
|
|
2257
|
+
if (next !== void 0 && /[0-9]?[<>]$/.test(seg.trimEnd()) && /^[0-9-]+$/.test(next.trim())) {
|
|
2258
|
+
rejoined.push(`${seg}&${next}`);
|
|
2259
|
+
i++;
|
|
2260
|
+
continue;
|
|
2261
|
+
}
|
|
2262
|
+
rejoined.push(seg);
|
|
2263
|
+
}
|
|
2264
|
+
return rejoined;
|
|
2265
|
+
}
|
|
2266
|
+
function commandMutatesLedgerForSegments(rawSegments, command, ledgerPath, homeDir, cwd, env, depth) {
|
|
2267
|
+
const segments = rejoinSplitFdDuplications(rawSegments);
|
|
2056
2268
|
const rawLedgerPath = path2.resolve(ledgerPath);
|
|
2057
2269
|
const rawAuditDir = path2.dirname(rawLedgerPath);
|
|
2058
2270
|
const auditDir = realResolve(cwd, rawAuditDir) ?? rawAuditDir;
|
|
2059
2271
|
const ledgerFile = realResolve(cwd, rawLedgerPath) ?? rawLedgerPath;
|
|
2272
|
+
const npmRootGSubstitutionPolluted = npmRootGSubstitutionMayBePolluted(command, env);
|
|
2060
2273
|
const verdictOf = (text, directory = cwd) => segmentAuditVerdict(text, auditDir, ledgerFile, rawLedgerPath, rawAuditDir, homeDir, directory, env);
|
|
2061
2274
|
if (segments.length === 0) return verdictOf(command) !== "no";
|
|
2062
2275
|
let accountedFor = false;
|
|
@@ -2069,6 +2282,10 @@ function commandMutatesLedgerForSegments(segments, command, ledgerPath, homeDir,
|
|
|
2069
2282
|
if (scriptIndex < 0) continue;
|
|
2070
2283
|
if (unknownDirectory || [...directories].some((directory) => commandMutatesLedger(tokens[scriptIndex], ledgerPath, homeDir, directory, env, depth + 1))) return true;
|
|
2071
2284
|
}
|
|
2285
|
+
if (isTrustedNodeBootLine(seg, homeDir, env, npmRootGSubstitutionPolluted)) {
|
|
2286
|
+
accountedFor = true;
|
|
2287
|
+
continue;
|
|
2288
|
+
}
|
|
2072
2289
|
const changesDirectory = ["cd", "pushd", "popd"].includes(tokens[0] ?? "");
|
|
2073
2290
|
if (changesDirectory && /\$\(|`/.test(seg)) return true;
|
|
2074
2291
|
if (changesDirectory && !/[<>]/.test(seg)) {
|
|
@@ -2089,7 +2306,7 @@ function commandMutatesLedgerForSegments(segments, command, ledgerPath, homeDir,
|
|
|
2089
2306
|
const verdict = verdicts.includes("yes") ? "yes" : unknownDirectory || verdicts.includes("unverified") ? "unverified" : "no";
|
|
2090
2307
|
if (verdict === "no") continue;
|
|
2091
2308
|
accountedFor = true;
|
|
2092
|
-
if (
|
|
2309
|
+
if (segmentHasOnlyAllowlistedRedirects(seg) && !hasLiveCommandOrProcessSubstitution(seg) && [...directories].every((directory) => LEDGER_READ_ONLY_PROGRAMS.has(segmentProgram(seg, directory)))) continue;
|
|
2093
2310
|
return true;
|
|
2094
2311
|
}
|
|
2095
2312
|
return !accountedFor && verdictOf(command) === "yes";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
storeBehavior
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-Q7YT7RGZ.js";
|
|
4
4
|
import {
|
|
5
5
|
resolveAnthropicAuth
|
|
6
6
|
} from "./chunk-VGMACSEV.js";
|
|
7
7
|
import {
|
|
8
8
|
getClient
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-UYU25KCR.js";
|
|
10
10
|
import {
|
|
11
11
|
loadConfig
|
|
12
12
|
} from "./chunk-MMS2HBRT.js";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
sessionScopeFilter
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-7QYXNSKT.js";
|
|
4
4
|
import {
|
|
5
5
|
leaseExpiryIso
|
|
6
6
|
} from "./chunk-E23LNUWJ.js";
|
|
7
7
|
import {
|
|
8
8
|
getProjectName
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-SQE2PHXK.js";
|
|
10
10
|
|
|
11
11
|
// src/lib/subagent-observability.ts
|
|
12
12
|
var MAX_RESULT_DIGEST_CHARS = 200;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
sendMessage
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-OSLT3VAE.js";
|
|
4
4
|
import {
|
|
5
5
|
getActiveAgent
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-LGP67CBT.js";
|
|
7
7
|
import {
|
|
8
8
|
resolveExeSession
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-7QYXNSKT.js";
|
|
10
10
|
import {
|
|
11
11
|
getDispatcherSession
|
|
12
12
|
} from "./chunk-PCV52RYM.js";
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
import {
|
|
17
17
|
getCoordinatorName,
|
|
18
18
|
isCoordinatorName
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-UYU25KCR.js";
|
|
20
20
|
|
|
21
21
|
// src/mcp/tools/send-message.ts
|
|
22
22
|
import { z } from "zod";
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
extractMemoryGraph
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-QJI5LPRJ.js";
|
|
4
4
|
import {
|
|
5
5
|
flushBatch,
|
|
6
6
|
writeMemory
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-B7T7I5BK.js";
|
|
8
8
|
import {
|
|
9
9
|
extractKeywords
|
|
10
10
|
} from "./chunk-CHCA3ZM2.js";
|
|
11
11
|
import {
|
|
12
12
|
getActiveAgent
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-LGP67CBT.js";
|
|
14
14
|
|
|
15
15
|
// src/mcp/tools/import-conversations.ts
|
|
16
16
|
import { z } from "zod";
|
|
@@ -7,10 +7,10 @@ import {
|
|
|
7
7
|
} from "./chunk-S2YTU74T.js";
|
|
8
8
|
import {
|
|
9
9
|
createTask
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-4VD4CIHX.js";
|
|
11
11
|
import {
|
|
12
12
|
getActiveAgent
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-LGP67CBT.js";
|
|
14
14
|
import {
|
|
15
15
|
deriveTaskIdempotencyKey,
|
|
16
16
|
ensureEmployeeAsync,
|
|
@@ -18,13 +18,13 @@ import {
|
|
|
18
18
|
isExeSession,
|
|
19
19
|
logTaskDispatch,
|
|
20
20
|
resolveExeSession
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-7QYXNSKT.js";
|
|
22
22
|
import {
|
|
23
23
|
getPaneCwdAsync
|
|
24
24
|
} from "./chunk-6L4VIYLZ.js";
|
|
25
25
|
import {
|
|
26
26
|
recordOrchestrationEventBestEffort
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-C3CRGIS4.js";
|
|
28
28
|
import {
|
|
29
29
|
releaseDispatchClaim,
|
|
30
30
|
tryAcquireDispatchClaim,
|
|
@@ -37,7 +37,7 @@ import {
|
|
|
37
37
|
} from "./chunk-GWAN2BDB.js";
|
|
38
38
|
import {
|
|
39
39
|
getLicenseSync
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-3HV3TRBB.js";
|
|
41
41
|
import {
|
|
42
42
|
isValidSessionScope
|
|
43
43
|
} from "./chunk-BTSWFMEH.js";
|
|
@@ -46,7 +46,7 @@ import {
|
|
|
46
46
|
} from "./chunk-GJV3WDWM.js";
|
|
47
47
|
import {
|
|
48
48
|
isCoordinatorName
|
|
49
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-UYU25KCR.js";
|
|
50
50
|
import {
|
|
51
51
|
EXE_AI_DIR
|
|
52
52
|
} from "./chunk-MMS2HBRT.js";
|
|
@@ -891,7 +891,7 @@ Idempotent no-op (existing task unchanged; no execution side effects)`
|
|
|
891
891
|
let claimWarning = "";
|
|
892
892
|
const claimRefRaw = (work_ref ?? "").trim();
|
|
893
893
|
try {
|
|
894
|
-
const { findConflicts, findConflictsInText, describeConflict, normalizeTarget } = await import("./work-claims-
|
|
894
|
+
const { findConflicts, findConflictsInText, describeConflict, normalizeTarget } = await import("./work-claims-AURJKQOJ.js");
|
|
895
895
|
const conflicts = claimRefRaw ? await findConflicts(
|
|
896
896
|
[normalizeTarget({ kind: "work_ref", value: claimRefRaw })],
|
|
897
897
|
callerRoot
|
|
@@ -958,7 +958,7 @@ Nothing was created or dispatched. Either pick different work, or \u2014 if that
|
|
|
958
958
|
});
|
|
959
959
|
if (claimRefRaw) {
|
|
960
960
|
try {
|
|
961
|
-
const { acquireClaim } = await import("./work-claims-
|
|
961
|
+
const { acquireClaim } = await import("./work-claims-AURJKQOJ.js");
|
|
962
962
|
const acquired = await acquireClaim({
|
|
963
963
|
targets: [{ kind: "work_ref", value: claimRefRaw }],
|
|
964
964
|
holderSession: callerRoot,
|
|
@@ -1154,7 +1154,7 @@ Note: ${spawnOverrideNoopNotice(ignoredSpawnOverrides)}`;
|
|
|
1154
1154
|
}
|
|
1155
1155
|
if (claimRefRaw) {
|
|
1156
1156
|
try {
|
|
1157
|
-
const { acquireClaim } = await import("./work-claims-
|
|
1157
|
+
const { acquireClaim } = await import("./work-claims-AURJKQOJ.js");
|
|
1158
1158
|
const acquired = await acquireClaim({
|
|
1159
1159
|
targets: [{ kind: "work_ref", value: claimRefRaw }],
|
|
1160
1160
|
holderSession: callerRoot,
|
|
@@ -1207,7 +1207,7 @@ Claimed ${claimRefRaw} for session ${callerRoot} (claim_group ${acquired.claimGr
|
|
|
1207
1207
|
session_scope: sessionScope,
|
|
1208
1208
|
created_at: (/* @__PURE__ */ new Date()).toISOString()
|
|
1209
1209
|
}), "utf-8");
|
|
1210
|
-
const { recordOrchestrationEventBestEffort: recordOE } = await import("./orchestration-events-
|
|
1210
|
+
const { recordOrchestrationEventBestEffort: recordOE } = await import("./orchestration-events-J6MGN7BL.js");
|
|
1211
1211
|
recordOE({
|
|
1212
1212
|
eventType: "signal.created",
|
|
1213
1213
|
source: "create-task.mcp",
|
|
@@ -1240,7 +1240,7 @@ Claimed ${claimRefRaw} for session ${callerRoot} (claim_group ${acquired.claimGr
|
|
|
1240
1240
|
let projectConflictOpts = {};
|
|
1241
1241
|
try {
|
|
1242
1242
|
const { getClient } = await import("./lib/database.js");
|
|
1243
|
-
const { sessionScopeFilter } = await import("./task-scope-
|
|
1243
|
+
const { sessionScopeFilter } = await import("./task-scope-Q4GALTXQ.js");
|
|
1244
1244
|
const client = getClient();
|
|
1245
1245
|
const scope = sessionScopeFilter(task.sessionScope || callerRoot || exeSession || null);
|
|
1246
1246
|
const existing = await client.execute({
|
|
@@ -265,7 +265,7 @@ async function persistMemoryBatch(client, rows) {
|
|
|
265
265
|
}
|
|
266
266
|
const hygieneIds = inserted.filter((row) => row.supersedes_id).map((row) => row.id);
|
|
267
267
|
if (hygieneIds.length > 0) {
|
|
268
|
-
const { scheduleSupersessionHygiene } = await import("./memory-maintenance-
|
|
268
|
+
const { scheduleSupersessionHygiene } = await import("./memory-maintenance-BF6DEY23.js");
|
|
269
269
|
scheduleSupersessionHygiene(hygieneIds);
|
|
270
270
|
}
|
|
271
271
|
return { outcomes, inserted };
|
|
@@ -4,18 +4,18 @@ import {
|
|
|
4
4
|
} from "./chunk-NEHOQ3P2.js";
|
|
5
5
|
import {
|
|
6
6
|
isCrdtSyncEnabled
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-CTMEIRJQ.js";
|
|
8
8
|
import {
|
|
9
9
|
orgMembershipsPath,
|
|
10
10
|
orgModeActive
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-XMQE5IBD.js";
|
|
12
12
|
import {
|
|
13
13
|
activeRecipientPubKeys,
|
|
14
14
|
grantsPath,
|
|
15
15
|
isGrantsMacPrimed,
|
|
16
16
|
primeGrantsMacKey,
|
|
17
17
|
warnActiveMonitoringOnce
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-KUJODN4N.js";
|
|
19
19
|
import {
|
|
20
20
|
assertGateAndGrantsColocated
|
|
21
21
|
} from "./chunk-NPXIS2RY.js";
|
|
@@ -25,7 +25,7 @@ import {
|
|
|
25
25
|
import {
|
|
26
26
|
GHOST_BEHAVIOR_SQL,
|
|
27
27
|
isGhostBehaviorRow
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-Q7YT7RGZ.js";
|
|
29
29
|
import {
|
|
30
30
|
isTransientDaemonTransportError,
|
|
31
31
|
retryOnDaemonTransportError
|
|
@@ -36,17 +36,17 @@ import {
|
|
|
36
36
|
encryptSyncBlob,
|
|
37
37
|
initSyncCrypto,
|
|
38
38
|
isSyncCryptoInitialized
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-B4OZKTIS.js";
|
|
40
40
|
import {
|
|
41
41
|
getClient,
|
|
42
42
|
isGenuineCorruptionError,
|
|
43
43
|
loadEmployees,
|
|
44
44
|
registerBinSymlinks,
|
|
45
45
|
saveEmployees
|
|
46
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-UYU25KCR.js";
|
|
47
47
|
import {
|
|
48
48
|
loadDeviceId
|
|
49
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-VX7I5XT6.js";
|
|
50
50
|
import {
|
|
51
51
|
EXE_AI_DIR
|
|
52
52
|
} from "./chunk-MMS2HBRT.js";
|
|
@@ -72,7 +72,7 @@ var _lastSealOrgMode = null;
|
|
|
72
72
|
async function getSyncCipher() {
|
|
73
73
|
if (_resolved) return _resolved;
|
|
74
74
|
if (!orgModeActive()) {
|
|
75
|
-
const mod = await import("./founder-monitor-envelope-
|
|
75
|
+
const mod = await import("./founder-monitor-envelope-KZCFNWMB.js");
|
|
76
76
|
_monitoredWriter = mod.encryptMonitoredSyncBlob;
|
|
77
77
|
_founderModuleLinked = true;
|
|
78
78
|
}
|
|
@@ -1283,7 +1283,7 @@ async function cloudSync(config, options) {
|
|
|
1283
1283
|
})
|
|
1284
1284
|
};
|
|
1285
1285
|
if (shouldUseCrdtMergeForCloudSync()) {
|
|
1286
|
-
const { initCrdtDoc, importExistingMemories, readAllMemories } = await import("./crdt-sync-
|
|
1286
|
+
const { initCrdtDoc, importExistingMemories, readAllMemories } = await import("./crdt-sync-MKLAGQ44.js");
|
|
1287
1287
|
initCrdtDoc();
|
|
1288
1288
|
importExistingMemories(
|
|
1289
1289
|
pullResult.records.map((rec) => ({
|
|
@@ -1844,7 +1844,7 @@ async function cloudSync(config, options) {
|
|
|
1844
1844
|
const artifactResult = { pushed: 0, frozen: false, remaining: 0 };
|
|
1845
1845
|
if (!shouldSkip("artifacts")) {
|
|
1846
1846
|
try {
|
|
1847
|
-
const { flushArtifactBackups } = await import("./artifact-backup-
|
|
1847
|
+
const { flushArtifactBackups } = await import("./artifact-backup-VWQ6EYNO.js");
|
|
1848
1848
|
const flushed = await flushArtifactBackups(cloudArtifactTransport(config));
|
|
1849
1849
|
artifactResult.pushed = flushed.pushed;
|
|
1850
1850
|
artifactResult.frozen = flushed.frozen;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
deactivateBehavior
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-Q7YT7RGZ.js";
|
|
4
4
|
import {
|
|
5
5
|
getActiveAgent
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-LGP67CBT.js";
|
|
7
7
|
import {
|
|
8
8
|
canCoordinate,
|
|
9
9
|
getClient
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-UYU25KCR.js";
|
|
11
11
|
|
|
12
12
|
// src/mcp/tools/deactivate-behavior.ts
|
|
13
13
|
import { z } from "zod";
|
|
@@ -24,7 +24,7 @@ function registerDeactivateBehavior(server) {
|
|
|
24
24
|
async ({ behavior_id }) => {
|
|
25
25
|
const caller = getActiveAgent();
|
|
26
26
|
try {
|
|
27
|
-
const { StewardGate } = await import("./steward-gate-
|
|
27
|
+
const { StewardGate } = await import("./steward-gate-BY7R6PJI.js");
|
|
28
28
|
const steward = new StewardGate();
|
|
29
29
|
const gateDecision = await steward.checkAuthority(caller.agentId || "unknown", "deactivate_behavior", behavior_id);
|
|
30
30
|
if (!gateDecision.allowed) {
|