very-happy-cli 0.2.180 → 0.2.182
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/dist/{AcpBackend-B8Zi30Zh.mjs → AcpBackend-DLk3gMYH.mjs} +3 -3
- package/dist/{AcpBackend-DfRDtMcG.cjs → AcpBackend-JA5eu8Y0.cjs} +3 -3
- package/dist/{AcpSessionManager-CASKOnOj.cjs → AcpSessionManager-DjYidq4C.cjs} +1 -1
- package/dist/{AcpSessionManager-i8Rab0xT.mjs → AcpSessionManager-OrCww-Qv.mjs} +1 -1
- package/dist/{BasePermissionHandler-BlM_tfej.cjs → BasePermissionHandler-D3PMKLBS.cjs} +1 -1
- package/dist/{BasePermissionHandler-26fKbRCm.mjs → BasePermissionHandler-u-neo-iN.mjs} +1 -1
- package/dist/{acpSessionResume-CR5pmgVo.cjs → acpSessionResume-Dxo8222T.cjs} +1 -1
- package/dist/{acpSessionResume-B9l54P-X.mjs → acpSessionResume-u2TwX5Jd.mjs} +1 -1
- package/dist/{agentHome-C7Sb7-Tz.cjs → agentHome-CP1tCBXz.cjs} +4 -4
- package/dist/{agentHome-CmGy0NWv.mjs → agentHome-D3hNrnoA.mjs} +4 -4
- package/dist/{api-DM7b1OKj.cjs → api-CZWcG7uh.cjs} +10 -10
- package/dist/{api-Hov8p7CA.mjs → api-C_YSQnsi.mjs} +10 -10
- package/dist/{apiMachine-CwGEhQDT.mjs → apiMachine-C_GA5Bm-.mjs} +59 -32
- package/dist/{apiMachine-DkGRj-Ai.cjs → apiMachine-DPGrED5C.cjs} +60 -33
- package/dist/{attachmentContent-CIn4iPEk.mjs → attachmentContent-Ckzyb1Uy.mjs} +2 -2
- package/dist/{attachmentContent-CEm13_gF.cjs → attachmentContent-I_dJIevE.cjs} +2 -2
- package/dist/{auth-Dawj7pP5.cjs → auth-BKnE7uv7.cjs} +8 -8
- package/dist/{auth-BG1DY0gj.mjs → auth-CGgpiJ5-.mjs} +5 -5
- package/dist/{auth-rggxMpEE.mjs → auth-DOXMI-xp.mjs} +8 -8
- package/dist/{auth-CBXnm-Mj.cjs → auth-Lw_utSMV.cjs} +5 -5
- package/dist/{auto-CbYOfoPS.cjs → auto-CIgFHIyQ.cjs} +18 -18
- package/dist/{auto-CXXLXGeL.mjs → auto-Z56mMZnH.mjs} +18 -18
- package/dist/{bootstrap-Dt5I1SOl.mjs → bootstrap-D3vlOROj.mjs} +2 -2
- package/dist/{bootstrap-DoA7okld.cjs → bootstrap-DsXp74wv.cjs} +2 -2
- package/dist/{browser-DUNetFT4.mjs → browser-CUxGoATV.mjs} +1 -1
- package/dist/{browser-DZ6qRtfH.cjs → browser-CZlA9AkO.cjs} +1 -1
- package/dist/{claudeLocal-OHWQigCl.mjs → claudeLocal-FnTUgwCi.mjs} +6 -6
- package/dist/{claudeLocal--DNyMOSv.cjs → claudeLocal-oELvwiZL.cjs} +6 -6
- package/dist/{claudeLocalLauncher-BStvfa7M.mjs → claudeLocalLauncher-CO5YHCzi.mjs} +11 -11
- package/dist/{claudeLocalLauncher-BhvPbcyH.cjs → claudeLocalLauncher-QsVXEVdE.cjs} +11 -11
- package/dist/{claudeSessionFork-Be16vzGc.cjs → claudeSessionFork-BA4GE5AL.cjs} +1 -1
- package/dist/{claudeSessionFork-GAVWhiKG.mjs → claudeSessionFork-Cspr6QW0.mjs} +1 -1
- package/dist/{client-D4uPb1uu.mjs → client-BGfmSbWc.mjs} +44 -9
- package/dist/{client-BWjaHKtj.cjs → client-CDuW4MS9.cjs} +2 -2
- package/dist/{client-CnB7kRCT.mjs → client-Ctbw05Xj.mjs} +2 -2
- package/dist/{client-DJplzPjD.cjs → client-DK8CzUry.cjs} +2 -2
- package/dist/{client-Ca5Pcgy_.mjs → client-o-meK7-a.mjs} +2 -2
- package/dist/{client-D_loZ9IK.cjs → client-xnWiHqdb.cjs} +44 -8
- package/dist/codex/happyMcpStdioBridge.cjs +21 -20
- package/dist/codex/happyMcpStdioBridge.mjs +21 -20
- package/dist/{codexAppServerClient-CO4G6OS4.mjs → codexAppServerClient-BlsOZLul.mjs} +3 -3
- package/dist/{codexAppServerClient-PE-12AsW.cjs → codexAppServerClient-DhNDTU_i.cjs} +3 -3
- package/dist/{codexCommand-B_xUH79E.mjs → codexCommand-BGx5NMQR.mjs} +49 -46
- package/dist/{codexCommand-BNoD1t1C.cjs → codexCommand-DJDPfpIs.cjs} +49 -46
- package/dist/{codexTermination-Dx48ma6e.mjs → codexTermination-CVhhwHZU.mjs} +1 -1
- package/dist/{codexTermination-BmBbizFK.cjs → codexTermination-CqPMuokw.cjs} +1 -1
- package/dist/{config-CtwEUxUP.cjs → config-CHpxzXBL.cjs} +3 -3
- package/dist/{config-DSu0Blos.mjs → config-CWAe08-Q.mjs} +3 -3
- package/dist/{configuration-CYO-kPOS.cjs → configuration-B-CugKJ3.cjs} +1 -1
- package/dist/{configuration-PxzEJumr.mjs → configuration-YXw_Dcsb.mjs} +1 -1
- package/dist/{connect-Dq7wndzR.cjs → connect-BmHvMXH2.cjs} +13 -13
- package/dist/{connect-BQrg3TB6.mjs → connect-CPeJXHha.mjs} +13 -13
- package/dist/{context-6TP-iz_c.cjs → context-BtIVqHI5.cjs} +1 -1
- package/dist/{context-CJGRRGWW.mjs → context-Drzs_Z38.mjs} +1 -1
- package/dist/{controlClient-DoeYovwP.mjs → controlClient-BL4hb4l3.mjs} +3 -3
- package/dist/{controlClient-Bqv5v5OM.cjs → controlClient-D0kGwKYx.cjs} +3 -3
- package/dist/{createSessionMetadata-DDIChCx8.mjs → createSessionMetadata-DvGDsnsn.mjs} +2 -2
- package/dist/{createSessionMetadata-xz767pcG.cjs → createSessionMetadata-L499emJn.cjs} +2 -2
- package/dist/{defaultPermissionMode-i5KzdK09.mjs → defaultPermissionMode-BLfxu-Yz.mjs} +2 -2
- package/dist/{defaultPermissionMode-PkZGsQDk.cjs → defaultPermissionMode-MXpZlXud.cjs} +2 -2
- package/dist/{deterministicJson-CTEJDqtS.mjs → deterministicJson-B_UAbmQ4.mjs} +87 -24
- package/dist/{deterministicJson-xqA6DaOm.cjs → deterministicJson-CfLkBRvU.cjs} +87 -22
- package/dist/{doctor-BrgSlfXn.cjs → doctor-DMvlzmnE.cjs} +8 -7
- package/dist/{doctor-IctjVh9T.mjs → doctor-bKScPtZu.mjs} +8 -8
- package/dist/{downloadTarget-CEb9che-.cjs → downloadTarget-D33BFvew.cjs} +6 -6
- package/dist/{downloadTarget-jbOz1egC.mjs → downloadTarget-J9j37eFG.mjs} +6 -6
- package/dist/{ensureDaemonRunning-D-HyjGIX.cjs → ensureDaemonRunning-2IqWROJp.cjs} +5 -5
- package/dist/{ensureDaemonRunning-b1e8LCSM.mjs → ensureDaemonRunning-DLvwhpNg.mjs} +5 -5
- package/dist/fileStore-5qpetZS0.mjs +146 -0
- package/dist/fileStore-7qhnbs6N.cjs +152 -0
- package/dist/fsMkdir-0K3yENml.cjs +56 -0
- package/dist/fsMkdir-DumgLTzR.mjs +53 -0
- package/dist/{handleResumeCommand-DpaZvm2c.mjs → handleResumeCommand-CjtjQ_I7.mjs} +5 -5
- package/dist/{handleResumeCommand-BvWVuRwH.cjs → handleResumeCommand-Dp2Y-p6V.cjs} +5 -5
- package/dist/{index-C6Vn5Eac.mjs → index-BI0h2Zks.mjs} +54 -6
- package/dist/{index-CMf5VbzG.mjs → index-BOT0Tg5E.mjs} +4 -4
- package/dist/{index-C64Ufj4D.cjs → index-B_aNaW9w.cjs} +4 -4
- package/dist/{index-F2UejqYs.cjs → index-CZC7egJA.cjs} +3 -3
- package/dist/{index-Bsvbgh9e.mjs → index-Cllzqoes.mjs} +4 -4
- package/dist/{index-B2p2Mut7.cjs → index-DYVIbhAJ.cjs} +78 -60
- package/dist/{index-wCbtF4BK.mjs → index-D_LvOWUN.mjs} +3 -3
- package/dist/{index-DmTlDRSL.cjs → index-DymOv3kK.cjs} +4 -4
- package/dist/{index-BUNnpGFF.mjs → index-kA46KMxN.mjs} +79 -61
- package/dist/{index-Dv0Q48P3.cjs → index-oh8XEozJ.cjs} +57 -6
- package/dist/index.cjs +2 -2
- package/dist/index.mjs +2 -2
- package/dist/{install-C0ANcEAW.cjs → install-BAa_Xmof.cjs} +3 -3
- package/dist/{install-CdzSV7qO.mjs → install-C46mkr9a.mjs} +3 -3
- package/dist/{install-BX3lv3NO.mjs → install-D0inLCv-.mjs} +1 -1
- package/dist/{install-BXvf2E3o.cjs → install-D2NCbeJ-.cjs} +1 -1
- package/dist/lib.cjs +12 -12
- package/dist/lib.d.cts +40 -1
- package/dist/lib.d.mts +40 -1
- package/dist/lib.mjs +12 -12
- package/dist/{lidState-bBrmaQd2.mjs → lidState-D8Iuvjgl.mjs} +1 -1
- package/dist/{lidState-DWGnm2H4.cjs → lidState-DcPvwniz.cjs} +1 -1
- package/dist/{localHappyAgentAuth-Dn1jYDpt.mjs → localHappyAgentAuth-D3rQDRd9.mjs} +1 -1
- package/dist/{localHappyAgentAuth-DZHQnIW9.cjs → localHappyAgentAuth-SD6GM97y.cjs} +1 -1
- package/dist/{logger-CphW5nUE.cjs → logger-DK1ytCz6.cjs} +2 -2
- package/dist/{logger-BUngm5Xg.mjs → logger-DpqihN1f.mjs} +2 -2
- package/dist/{machineMetadata-BXN_bKU3.mjs → machineMetadata-D4E3qoIG.mjs} +13 -4
- package/dist/{machineMetadata-BQm9YTcI.cjs → machineMetadata-IJc6_iyx.cjs} +13 -3
- package/dist/{main-DGkdYfEq.mjs → main-CpUmw7hm.mjs} +45 -45
- package/dist/{main-B2UV51nK.cjs → main-DUXh2rgW.cjs} +45 -45
- package/dist/{mcp-CbTtbs0f.mjs → mcp-66g1TJ8P.mjs} +17 -15
- package/dist/{mcp-BFvAEIRz.cjs → mcp-D5f3Vd-z.cjs} +17 -15
- package/dist/{mirrorProtocol-HKPivs5o.cjs → mirrorProtocol-DkWOcZh9.cjs} +16 -153
- package/dist/{mirrorProtocol-BR4luBC0.mjs → mirrorProtocol-bsCUcaCY.mjs} +19 -151
- package/dist/{package-KhLqBDX9.cjs → package-BfeqAzyJ.cjs} +8 -8
- package/dist/{package-7Ld1YMhh.mjs → package-CKj8zndE.mjs} +8 -8
- package/dist/{panels-Njf6GelF.cjs → panels-2PXsw9-d.cjs} +5 -5
- package/dist/{panels-C7IVqpJk.mjs → panels-r8LmaBs6.mjs} +5 -5
- package/dist/{peerTools-DQNlrcqM.cjs → peerTools-BVp1z0T_.cjs} +5 -5
- package/dist/{peerTools-BOlDRyhi.mjs → peerTools-D_id4d41.mjs} +5 -5
- package/dist/{persistence-9BMYspxG.cjs → persistence-BdpwWXKh.cjs} +2 -2
- package/dist/{persistence-BFUOHW5h.mjs → persistence-jOEuAFTS.mjs} +2 -2
- package/dist/pi-CqyoZMjI.mjs +380 -0
- package/dist/pi-DlsrPCTa.cjs +400 -0
- package/dist/{piRunnerArgs-H2pgpA5z.mjs → piRunnerArgs-68I5F_M1.mjs} +1 -1
- package/dist/{piRunnerArgs-DGaq6VYM.cjs → piRunnerArgs-vxCHKnSA.cjs} +1 -1
- package/dist/{piRuntime-CT5xv_3h.cjs → piRuntime-C3Dg5uni.cjs} +2 -2
- package/dist/{piRuntime-CdN0JAsa.mjs → piRuntime-DgLIard1.mjs} +2 -2
- package/dist/{piTerminal-0FBtXTHK.cjs → piTerminal-C135BcLP.cjs} +20 -18
- package/dist/{piTerminal-C4m9YXAV.mjs → piTerminal-DJL0w-uA.mjs} +20 -18
- package/dist/{prompt-lgF9IE82.cjs → prompt-Bof2aQkI.cjs} +7 -2
- package/dist/{prompt-BOouDaTM.mjs → prompt-QHuFx9j6.mjs} +7 -2
- package/dist/{pushNotifications-DCiBEVeC.mjs → pushNotifications-CMmRsbKv.mjs} +12 -4
- package/dist/{pushNotifications-DI92havG.cjs → pushNotifications-CyQVDThC.cjs} +12 -4
- package/dist/{query-BETKBrnz.cjs → query-CK--1fbL.cjs} +1 -1
- package/dist/{query-ywZbQUzR.mjs → query-CPXnDURZ.mjs} +1 -1
- package/dist/{rateLimitWindows-BkfuUB1a.mjs → rateLimitWindows-Cqa4AGaB.mjs} +1 -1
- package/dist/{rateLimitWindows-YRIYVdo4.cjs → rateLimitWindows-DJxnNw-X.cjs} +1 -1
- package/dist/{registerCommonHandlers-C7a_dUWs.cjs → registerCommonHandlers-DbNoM39q.cjs} +2 -2
- package/dist/{registerCommonHandlers-CTkCvjxt.mjs → registerCommonHandlers-K8dICQO2.mjs} +2 -2
- package/dist/{registerKillSessionHandler-CIsvBrVe.cjs → registerKillSessionHandler-DiS_go8d.cjs} +6 -6
- package/dist/{registerKillSessionHandler-CaqqRYq6.mjs → registerKillSessionHandler-O1iriOMO.mjs} +6 -6
- package/dist/{remoteSessionClient-PP-mOKmw.mjs → remoteSessionClient-BlURPulk.mjs} +5 -5
- package/dist/{remoteSessionClient-D843fkzL.cjs → remoteSessionClient-CtV9mDko.cjs} +5 -5
- package/dist/{reportProgressTool-14AXr959.cjs → reportProgressTool-DlD_xjzU.cjs} +4 -4
- package/dist/{reportProgressTool-ZOCNjWHr.mjs → reportProgressTool-nCExrHZH.mjs} +4 -4
- package/dist/{resources-CvIlkzpP.cjs → resources-BPyN59Iv.cjs} +23 -2
- package/dist/{resources-y9jfyO-_.mjs → resources-CH1iP6Cv.mjs} +22 -3
- package/dist/{run-CAOCYYfT.cjs → run-BBNrcCfI.cjs} +621 -594
- package/dist/{run-Dajw2E5j.mjs → run-drtwHYkO.mjs} +557 -530
- package/dist/{runClaude-CRRKt-tm.cjs → runClaude-B3KSeby4.cjs} +23 -22
- package/dist/{runClaude-C6oxWYbp.mjs → runClaude-CFp27Tyi.mjs} +23 -22
- package/dist/{runClaudeDeps-B1ysqTvx.cjs → runClaudeDeps-C_C9TCI0.cjs} +43 -41
- package/dist/{runClaudeDeps-BcZ68cX3.mjs → runClaudeDeps-DMcv93lA.mjs} +48 -46
- package/dist/{runGemini-D7yKc4wD.mjs → runGemini-Bc6SY-hd.mjs} +40 -37
- package/dist/{runGemini-DtKFXqf-.cjs → runGemini-DzdSBAr9.cjs} +40 -37
- package/dist/{runOpenClaw-C8ilyLP9.mjs → runOpenClaw-DI0qMlgF.mjs} +19 -18
- package/dist/{runOpenClaw-Cq29mryb.cjs → runOpenClaw-DN6rEVqC.cjs} +19 -18
- package/dist/{sandbox-gIj-EuF4.cjs → sandbox-DtttPBMA.cjs} +4 -4
- package/dist/{sandbox-CbCutma4.mjs → sandbox-v-ffe8LR.mjs} +4 -4
- package/dist/{selfCheck-BTGBVthv.cjs → selfCheck-B-yy6bW3.cjs} +36 -36
- package/dist/selfCheck-BDfTwxqB.mjs +85 -0
- package/dist/{send-YZRMQvMJ.mjs → send-DpBwSZuj.mjs} +8 -8
- package/dist/{send-CZf5lLw_.cjs → send-ShzXYPRu.cjs} +8 -8
- package/dist/{server-CknFq6xG.cjs → server-CEzKrfKj.cjs} +6 -6
- package/dist/{server-BqwXRzFZ.mjs → server-DScgJXxa.mjs} +4 -4
- package/dist/{sessionLock-nBXdJxJm.mjs → sessionLock-B6K4SBZD.mjs} +3 -3
- package/dist/{sessionLock-DRZUcKHT.cjs → sessionLock-Dc0fadGG.cjs} +3 -3
- package/dist/{sessionOps-C58iDeD5.mjs → sessionOps-D0BPWPoh.mjs} +4 -4
- package/dist/{sessionOps-BrGiU9-s.cjs → sessionOps-Dx7wARjI.cjs} +4 -4
- package/dist/{sessionScanner-Bm57LEXe.mjs → sessionScanner-9Fpgaxtf.mjs} +3 -3
- package/dist/{sessionScanner-CaO8bLaG.cjs → sessionScanner-BJ35TVG6.cjs} +3 -3
- package/dist/{sessions-BXyBHo8n.mjs → sessions-CFtDlyZd.mjs} +10 -10
- package/dist/{sessions-uzqPCc37.cjs → sessions-TZGGAry1.cjs} +10 -10
- package/dist/{setupOfflineReconnection-DvvVX3TB.cjs → setupOfflineReconnection-B1GsVA8P.cjs} +2 -2
- package/dist/{setupOfflineReconnection-1Qlek3wl.mjs → setupOfflineReconnection-Biaus-0T.mjs} +2 -2
- package/dist/{spawn-DBkodJEO.cjs → spawn-BRTuypQ2.cjs} +14 -14
- package/dist/{spawn-vn93PhYL.mjs → spawn-CsoQ-Ecz.mjs} +14 -14
- package/dist/{spawnAgents-DLNMlhWJ.cjs → spawnAgents-CG211IW7.cjs} +1 -1
- package/dist/{spawnAgents-CgPMWexP.mjs → spawnAgents-Co-SLcx-.mjs} +1 -1
- package/dist/{spawnHappyCLI-BjFZc_7V.mjs → spawnHappyCLI-D1doCjkZ.mjs} +1 -1
- package/dist/{spawnHappyCLI-DnUZv0X2.cjs → spawnHappyCLI-D47kX6jg.cjs} +1 -1
- package/dist/{specialCommands-BRufxlqe.cjs → specialCommands-Ch-Gvy-i.cjs} +3 -3
- package/dist/{specialCommands-D3ND9bdg.mjs → specialCommands-xSmqT_Fu.mjs} +3 -3
- package/dist/{startFileWatcher-DXJ7yB5v.mjs → startFileWatcher-CCl2fFxT.mjs} +1 -1
- package/dist/{startFileWatcher-D9cYzZOq.cjs → startFileWatcher-gKQTstR6.cjs} +1 -1
- package/dist/{startupSessionCreate-kdr3m1uX.cjs → startupSessionCreate-BXqoUX30.cjs} +1 -1
- package/dist/{startupSessionCreate-uZ6BM0ty.mjs → startupSessionCreate-DlZc8yPl.mjs} +1 -1
- package/dist/{streamRelay-Dy6amlzx.cjs → streamRelay-B-J-4St1.cjs} +1 -1
- package/dist/{streamRelay-DnMCMMfV.mjs → streamRelay-DnJXsi36.mjs} +1 -1
- package/dist/{sync-BvVhDO40.mjs → sync-BbjMC3sR.mjs} +1 -1
- package/dist/{sync-Bn-idAoy.cjs → sync-BxMdnZzz.cjs} +1 -1
- package/dist/{systemPrompt-DlyEk35T.cjs → systemPrompt-C2KojRmK.cjs} +3 -3
- package/dist/{systemPrompt-CIZcJuJF.mjs → systemPrompt-CmSDAoIx.mjs} +3 -3
- package/dist/{teams-BLeRpDxv.cjs → teams-DESdalox.cjs} +13 -10
- package/dist/{teams-DLY3B5yi.mjs → teams-lRy1MS0Z.mjs} +13 -10
- package/dist/{time-D3ETL7Jb.mjs → time-Cfknl7xG.mjs} +1 -1
- package/dist/{time-Cjv0zxQO.cjs → time-DNLeIRgR.cjs} +1 -1
- package/dist/{titleGenerator-Uzbd4utr.mjs → titleGenerator-ClnMSzwC.mjs} +1 -1
- package/dist/{titleGenerator-Cgp5ihFb.cjs → titleGenerator-YNutaU88.cjs} +2 -2
- package/dist/{todo-pOMcEECE.cjs → todo-DS75Mboz.cjs} +6 -6
- package/dist/{todo-C9Ga-oEM.mjs → todo-DZbK5POc.mjs} +6 -6
- package/dist/{tools-Cho7iIWf.mjs → tools-BgdU0dWp.mjs} +3 -3
- package/dist/{tools-BL7Byl_x.cjs → tools-ClYcb1YQ.cjs} +3 -3
- package/dist/{uninstall-CbayEVoV.cjs → uninstall-Di1vPBLV.cjs} +3 -3
- package/dist/{uninstall-CvZHVY9C.mjs → uninstall-bXenFevR.mjs} +3 -3
- package/package.json +8 -8
- package/dist/selfCheck-Smt-5Xiq.mjs +0 -85
|
@@ -2,15 +2,15 @@ import { existsSync, readFileSync, mkdirSync, writeFileSync } from 'fs';
|
|
|
2
2
|
import { join } from 'path';
|
|
3
3
|
import { homedir } from 'os';
|
|
4
4
|
import { execSync } from 'child_process';
|
|
5
|
-
import { l as logger } from './logger-
|
|
5
|
+
import { l as logger } from './logger-DpqihN1f.mjs';
|
|
6
6
|
import { D as DEFAULT_GEMINI_MODEL, G as GEMINI_MODEL_ENV } from './constants-BC4St0xd.mjs';
|
|
7
7
|
import 'chalk';
|
|
8
8
|
import 'node:util';
|
|
9
|
-
import './configuration-
|
|
9
|
+
import './configuration-YXw_Dcsb.mjs';
|
|
10
10
|
import 'node:fs';
|
|
11
11
|
import 'node:os';
|
|
12
12
|
import 'node:path';
|
|
13
|
-
import './package-
|
|
13
|
+
import './package-CKj8zndE.mjs';
|
|
14
14
|
import 'node:fs/promises';
|
|
15
15
|
import './trimIdent-BAjmv_TG.mjs';
|
|
16
16
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var node_fs = require('node:fs');
|
|
4
4
|
var os = require('node:os');
|
|
5
5
|
var path = require('node:path');
|
|
6
|
-
var _package = require('./package-
|
|
6
|
+
var _package = require('./package-BfeqAzyJ.cjs');
|
|
7
7
|
var promises = require('node:fs/promises');
|
|
8
8
|
|
|
9
9
|
const PRIVATE_DIRECTORY_MODE = 448;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { mkdirSync, chmodSync, readdirSync, statSync, appendFileSync, writeFileSync, existsSync, readFileSync } from 'node:fs';
|
|
2
2
|
import { homedir } from 'node:os';
|
|
3
3
|
import { join } from 'node:path';
|
|
4
|
-
import { p as packageJson } from './package-
|
|
4
|
+
import { p as packageJson } from './package-CKj8zndE.mjs';
|
|
5
5
|
import { mkdir, chmod, writeFile } from 'node:fs/promises';
|
|
6
6
|
|
|
7
7
|
const PRIVATE_DIRECTORY_MODE = 448;
|
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
var chalk = require('chalk');
|
|
4
4
|
var os = require('os');
|
|
5
5
|
var require$$1 = require('path');
|
|
6
|
-
var persistence = require('./persistence-
|
|
7
|
-
var api = require('./api-
|
|
8
|
-
var configuration = require('./configuration-
|
|
6
|
+
var persistence = require('./persistence-BdpwWXKh.cjs');
|
|
7
|
+
var api = require('./api-CZWcG7uh.cjs');
|
|
8
|
+
var configuration = require('./configuration-B-CugKJ3.cjs');
|
|
9
9
|
var http = require('http');
|
|
10
10
|
var require$$3 = require('crypto');
|
|
11
|
-
var browser = require('./browser-
|
|
11
|
+
var browser = require('./browser-CZlA9AkO.cjs');
|
|
12
12
|
var child_process = require('child_process');
|
|
13
13
|
var util = require('util');
|
|
14
14
|
require('node:fs/promises');
|
|
@@ -17,29 +17,29 @@ require('zod');
|
|
|
17
17
|
require('./authRelay-Dy1qU9td.cjs');
|
|
18
18
|
require('node:crypto');
|
|
19
19
|
require('tweetnacl');
|
|
20
|
-
require('./logger-
|
|
20
|
+
require('./logger-DK1ytCz6.cjs');
|
|
21
21
|
require('node:util');
|
|
22
22
|
require('node:path');
|
|
23
23
|
require('axios');
|
|
24
|
-
require('./lidState-
|
|
24
|
+
require('./lidState-DcPvwniz.cjs');
|
|
25
25
|
require('node:events');
|
|
26
26
|
require('socket.io-client');
|
|
27
|
-
require('./pushNotifications-
|
|
28
|
-
require('./index-
|
|
27
|
+
require('./pushNotifications-CyQVDThC.cjs');
|
|
28
|
+
require('./index-oh8XEozJ.cjs');
|
|
29
29
|
require('@paralleldrive/cuid2');
|
|
30
30
|
require('./contentLogMetadata-ZSFk_NjQ.cjs');
|
|
31
31
|
require('./limits-C-a7gr04.cjs');
|
|
32
|
-
require('./time-
|
|
33
|
-
require('./registerCommonHandlers-
|
|
32
|
+
require('./time-DNLeIRgR.cjs');
|
|
33
|
+
require('./registerCommonHandlers-DbNoM39q.cjs');
|
|
34
34
|
require('fs/promises');
|
|
35
35
|
require('cross-spawn');
|
|
36
36
|
require('./projectPath-C3ioB4Bu.cjs');
|
|
37
37
|
require('url');
|
|
38
|
-
require('./sync-
|
|
38
|
+
require('./sync-BxMdnZzz.cjs');
|
|
39
39
|
require('./backgroundTaskActivity-CBvUdj39.cjs');
|
|
40
|
-
require('./controlClient-
|
|
40
|
+
require('./controlClient-D0kGwKYx.cjs');
|
|
41
41
|
require('node:os');
|
|
42
|
-
require('./package-
|
|
42
|
+
require('./package-BfeqAzyJ.cjs');
|
|
43
43
|
require('open');
|
|
44
44
|
|
|
45
45
|
const CLIENT_ID$2 = "app_EMoamEEZ73f0CkXaXp7hrann";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
2
|
import { homedir } from 'os';
|
|
3
3
|
import { join } from 'path';
|
|
4
|
-
import { b as readCredentialsForConfiguredRelay } from './persistence-
|
|
5
|
-
import { A as ApiClient } from './api-
|
|
6
|
-
import { f as ensurePrivateDirectorySync, w as writePrivateFileSync } from './configuration-
|
|
4
|
+
import { b as readCredentialsForConfiguredRelay } from './persistence-jOEuAFTS.mjs';
|
|
5
|
+
import { A as ApiClient } from './api-C_YSQnsi.mjs';
|
|
6
|
+
import { f as ensurePrivateDirectorySync, w as writePrivateFileSync } from './configuration-YXw_Dcsb.mjs';
|
|
7
7
|
import { createServer } from 'http';
|
|
8
8
|
import { randomBytes, createHash } from 'crypto';
|
|
9
|
-
import { o as openBrowser } from './browser-
|
|
9
|
+
import { o as openBrowser } from './browser-CUxGoATV.mjs';
|
|
10
10
|
import { exec } from 'child_process';
|
|
11
11
|
import { promisify } from 'util';
|
|
12
12
|
import 'node:fs/promises';
|
|
@@ -15,29 +15,29 @@ import 'zod';
|
|
|
15
15
|
import './authRelay-DhQhkBvX.mjs';
|
|
16
16
|
import 'node:crypto';
|
|
17
17
|
import 'tweetnacl';
|
|
18
|
-
import './logger-
|
|
18
|
+
import './logger-DpqihN1f.mjs';
|
|
19
19
|
import 'node:util';
|
|
20
20
|
import 'node:path';
|
|
21
21
|
import 'axios';
|
|
22
|
-
import './lidState-
|
|
22
|
+
import './lidState-D8Iuvjgl.mjs';
|
|
23
23
|
import 'node:events';
|
|
24
24
|
import 'socket.io-client';
|
|
25
|
-
import './pushNotifications-
|
|
26
|
-
import './index-
|
|
25
|
+
import './pushNotifications-CMmRsbKv.mjs';
|
|
26
|
+
import './index-BI0h2Zks.mjs';
|
|
27
27
|
import '@paralleldrive/cuid2';
|
|
28
28
|
import './contentLogMetadata-BlWI0egu.mjs';
|
|
29
29
|
import './limits-DIo7rEBR.mjs';
|
|
30
|
-
import './time-
|
|
31
|
-
import './registerCommonHandlers-
|
|
30
|
+
import './time-Cfknl7xG.mjs';
|
|
31
|
+
import './registerCommonHandlers-K8dICQO2.mjs';
|
|
32
32
|
import 'fs/promises';
|
|
33
33
|
import 'cross-spawn';
|
|
34
34
|
import './projectPath-BTBIMB57.mjs';
|
|
35
35
|
import 'url';
|
|
36
|
-
import './sync-
|
|
36
|
+
import './sync-BbjMC3sR.mjs';
|
|
37
37
|
import './backgroundTaskActivity-8PdPxrvy.mjs';
|
|
38
|
-
import './controlClient-
|
|
38
|
+
import './controlClient-BL4hb4l3.mjs';
|
|
39
39
|
import 'node:os';
|
|
40
|
-
import './package-
|
|
40
|
+
import './package-CKj8zndE.mjs';
|
|
41
41
|
import 'open';
|
|
42
42
|
|
|
43
43
|
const CLIENT_ID$2 = "app_EMoamEEZ73f0CkXaXp7hrann";
|
|
@@ -5,7 +5,7 @@ var node_fs = require('node:fs');
|
|
|
5
5
|
var path = require('node:path');
|
|
6
6
|
var node_crypto = require('node:crypto');
|
|
7
7
|
var z = require('zod');
|
|
8
|
-
var configuration = require('./configuration-
|
|
8
|
+
var configuration = require('./configuration-B-CugKJ3.cjs');
|
|
9
9
|
|
|
10
10
|
const TeamScopeSchema = z.z.object({
|
|
11
11
|
serverUrl: z.z.string(),
|
|
@@ -3,7 +3,7 @@ import { constants } from 'node:fs';
|
|
|
3
3
|
import { isAbsolute, join, dirname } from 'node:path';
|
|
4
4
|
import { randomUUID } from 'node:crypto';
|
|
5
5
|
import { z } from 'zod';
|
|
6
|
-
import { n as normalizeHttpEndpoint, c as configuration } from './configuration-
|
|
6
|
+
import { n as normalizeHttpEndpoint, c as configuration } from './configuration-YXw_Dcsb.mjs';
|
|
7
7
|
|
|
8
8
|
const TeamScopeSchema = z.object({
|
|
9
9
|
serverUrl: z.string(),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { l as logger } from './logger-
|
|
2
|
-
import { d as readDaemonState, f as clearDaemonState } from './persistence-
|
|
3
|
-
import { c as configuration } from './configuration-
|
|
1
|
+
import { l as logger } from './logger-DpqihN1f.mjs';
|
|
2
|
+
import { d as readDaemonState, f as clearDaemonState } from './persistence-jOEuAFTS.mjs';
|
|
3
|
+
import { c as configuration } from './configuration-YXw_Dcsb.mjs';
|
|
4
4
|
|
|
5
5
|
function daemonControlHeaders(controlToken) {
|
|
6
6
|
return {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var logger = require('./logger-
|
|
4
|
-
var persistence = require('./persistence-
|
|
5
|
-
var configuration = require('./configuration-
|
|
3
|
+
var logger = require('./logger-DK1ytCz6.cjs');
|
|
4
|
+
var persistence = require('./persistence-BdpwWXKh.cjs');
|
|
5
|
+
var configuration = require('./configuration-B-CugKJ3.cjs');
|
|
6
6
|
|
|
7
7
|
function daemonControlHeaders(controlToken) {
|
|
8
8
|
return {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import os from 'node:os';
|
|
2
2
|
import { resolve, isAbsolute, dirname } from 'node:path';
|
|
3
|
-
import { c as configuration } from './configuration-
|
|
3
|
+
import { c as configuration } from './configuration-YXw_Dcsb.mjs';
|
|
4
4
|
import { p as projectPath } from './projectPath-BTBIMB57.mjs';
|
|
5
|
-
import { p as packageJson } from './package-
|
|
5
|
+
import { p as packageJson } from './package-CKj8zndE.mjs';
|
|
6
6
|
import { existsSync, readFileSync, statSync } from 'node:fs';
|
|
7
7
|
|
|
8
8
|
const realFs = {
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
var os = require('node:os');
|
|
4
4
|
var path = require('node:path');
|
|
5
|
-
var configuration = require('./configuration-
|
|
5
|
+
var configuration = require('./configuration-B-CugKJ3.cjs');
|
|
6
6
|
var projectPath = require('./projectPath-C3ioB4Bu.cjs');
|
|
7
|
-
var _package = require('./package-
|
|
7
|
+
var _package = require('./package-BfeqAzyJ.cjs');
|
|
8
8
|
var node_fs = require('node:fs');
|
|
9
9
|
|
|
10
10
|
const realFs = {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { l as logger } from './logger-
|
|
2
|
-
import { e as evaluateWrapperIdle, j as HIBERNATION_UNSUPPORTED_BACKOFF_MS } from './persistence-
|
|
1
|
+
import { l as logger } from './logger-DpqihN1f.mjs';
|
|
2
|
+
import { e as evaluateWrapperIdle, j as HIBERNATION_UNSUPPORTED_BACKOFF_MS } from './persistence-jOEuAFTS.mjs';
|
|
3
3
|
|
|
4
4
|
const PRESENCE_SETTLE_MS = 6e3;
|
|
5
5
|
async function commitHibernation(deps) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var logger = require('./logger-
|
|
4
|
-
var persistence = require('./persistence-
|
|
3
|
+
var logger = require('./logger-DK1ytCz6.cjs');
|
|
4
|
+
var persistence = require('./persistence-BdpwWXKh.cjs');
|
|
5
5
|
|
|
6
6
|
const PRESENCE_SETTLE_MS = 6e3;
|
|
7
7
|
async function commitHibernation(deps) {
|
|
@@ -1,28 +1,29 @@
|
|
|
1
|
-
import { l as logger } from './logger-
|
|
2
|
-
import { p as prependToMessage, b as buildDigestLine, a as buildFirstTurnPrefix } from './prompt-
|
|
3
|
-
import { P as ProjectsUnsupportedError } from './client-
|
|
4
|
-
import { c as createSelfReportState, A as AUTOMATION_TOOL_NAMES, P as PROJECT_TOOL_NAMES, r as registerAutomationTools, a as registerProjectTools, d as createProjectToolExecutor, b as registerReportProgressTool, n as normalizeAttention, e as normalizePhase, f as normalizeProgress, s as shouldAcceptSelfReport } from './reportProgressTool-
|
|
5
|
-
import {
|
|
1
|
+
import { l as logger } from './logger-DpqihN1f.mjs';
|
|
2
|
+
import { p as prependToMessage, b as buildDigestLine, a as buildFirstTurnPrefix } from './prompt-QHuFx9j6.mjs';
|
|
3
|
+
import { P as ProjectsUnsupportedError } from './client-o-meK7-a.mjs';
|
|
4
|
+
import { c as createSelfReportState, A as AUTOMATION_TOOL_NAMES, P as PROJECT_TOOL_NAMES, r as registerAutomationTools, a as registerProjectTools, d as createProjectToolExecutor, b as registerReportProgressTool, n as normalizeAttention, e as normalizePhase, f as normalizeProgress, s as shouldAcceptSelfReport } from './reportProgressTool-nCExrHZH.mjs';
|
|
5
|
+
import { readFileSync, constants } from 'node:fs';
|
|
6
|
+
import { homedir } from 'node:os';
|
|
7
|
+
import { join, dirname } from 'node:path';
|
|
8
|
+
import { z } from 'zod';
|
|
9
|
+
import { p as piAgentDir } from './pi-CqyoZMjI.mjs';
|
|
6
10
|
import { unlink, mkdir, open, rename } from 'node:fs/promises';
|
|
7
11
|
import { randomUUID } from 'node:crypto';
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import { T as
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import { T as TEAM_SKILL } from './resources-y9jfyO-_.mjs';
|
|
15
|
-
import { T as TEAM_TOOL_NAMES, r as registerTeamsTools } from './tools-Cho7iIWf.mjs';
|
|
16
|
-
import { S as SESSION_PEER_TOOL_NAMES, r as registerSessionPeerTools, a as createSessionPeerToolExecutor } from './peerTools-BOlDRyhi.mjs';
|
|
12
|
+
import { T as TeamConnectionPreflightError, S as SessionInOtherTeamError, c as createTeamsClient } from './client-BGfmSbWc.mjs';
|
|
13
|
+
import { t as teamScopePath } from './context-Drzs_Z38.mjs';
|
|
14
|
+
import { g as waitForSessionKey, e as sendUserMessage } from './sessionOps-D0BPWPoh.mjs';
|
|
15
|
+
import { T as TEAM_SKILL, a as TEAM_LEAD_PLAYBOOK } from './resources-CH1iP6Cv.mjs';
|
|
16
|
+
import { T as TEAM_TOOL_NAMES, r as registerTeamsTools } from './tools-BgdU0dWp.mjs';
|
|
17
|
+
import { S as SESSION_PEER_TOOL_NAMES, r as registerSessionPeerTools, a as createSessionPeerToolExecutor } from './peerTools-D_id4d41.mjs';
|
|
17
18
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
18
19
|
import { createServer } from 'node:http';
|
|
19
20
|
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
20
21
|
import { C as CLIPBOARD_TOOL_NAME, a as CLIPBOARD_TOOL_TITLE, b as CLIPBOARD_TOOL_DESCRIPTION, c as CLIPBOARD_MAX_BYTES } from './limits-DIo7rEBR.mjs';
|
|
21
|
-
import { A as ASSISTANT_TOOL_NAMES, a as registerAssistantTools, c as checkDownloadTarget } from './downloadTarget-
|
|
22
|
+
import { A as ASSISTANT_TOOL_NAMES, a as registerAssistantTools, c as checkDownloadTarget } from './downloadTarget-J9j37eFG.mjs';
|
|
22
23
|
import { P as PREVIEW_TOOL_NAME, R as REPORT_PROGRESS_TOOL_NAME, a as PREVIEW_TOOL_TITLE, b as PREVIEW_TOOL_DESCRIPTION, c as PREVIEW_DOWNLOAD_PARAM_DESCRIPTION } from './agentGuidance-BDYt2Qy2.mjs';
|
|
23
24
|
import { n as normalizeWebPanels, w as webPanelPath } from './webPanels-B2_C2-3g.mjs';
|
|
24
|
-
import { r as readSettings } from './persistence-
|
|
25
|
-
import { g as getSessionNotificationBody } from './pushNotifications-
|
|
25
|
+
import { r as readSettings } from './persistence-jOEuAFTS.mjs';
|
|
26
|
+
import { g as getSessionNotificationBody } from './pushNotifications-CMmRsbKv.mjs';
|
|
26
27
|
import { c as checkPreviewPath } from './previewPath-CXN4Vag0.mjs';
|
|
27
28
|
import { createHash } from 'crypto';
|
|
28
29
|
|
|
@@ -119,11 +120,67 @@ function createProjectInjector(deps) {
|
|
|
119
120
|
};
|
|
120
121
|
}
|
|
121
122
|
|
|
123
|
+
const PiContextReportSchema = z.object({
|
|
124
|
+
source: z.literal("pi"),
|
|
125
|
+
tokens: z.number().finite().nonnegative().nullable(),
|
|
126
|
+
contextWindow: z.number().finite().positive(),
|
|
127
|
+
model: z.string().max(200).nullable().optional(),
|
|
128
|
+
provider: z.string().max(200).nullable().optional(),
|
|
129
|
+
/** The pi event that produced the report (`session_compact`, `turn_end`, …). */
|
|
130
|
+
event: z.string().max(64).nullable().optional(),
|
|
131
|
+
/** Other registry entries with the same model id. */
|
|
132
|
+
peers: z.array(z.object({ provider: z.string().max(200), contextWindow: z.number().finite().positive() })).max(8).optional()
|
|
133
|
+
});
|
|
134
|
+
const obj = (v) => v && typeof v === "object" && !Array.isArray(v) ? v : null;
|
|
135
|
+
const positive = (v) => typeof v === "number" && Number.isFinite(v) && v > 0;
|
|
136
|
+
function piWindowConfigured(modelsJson, provider, model) {
|
|
137
|
+
if (!modelsJson || !provider || !model) return true;
|
|
138
|
+
const config = obj(obj(modelsJson.providers)?.[provider]);
|
|
139
|
+
if (!config) return true;
|
|
140
|
+
if (positive(obj(obj(config.modelOverrides)?.[model])?.contextWindow)) return true;
|
|
141
|
+
const models = Array.isArray(config.models) ? config.models : [];
|
|
142
|
+
const entry = models.map(obj).find((m) => m?.id === model);
|
|
143
|
+
if (!entry) return true;
|
|
144
|
+
return positive(entry.contextWindow);
|
|
145
|
+
}
|
|
146
|
+
function resolvePiContextUsage(report, modelsJson, previous, now) {
|
|
147
|
+
let windowSource = "configured";
|
|
148
|
+
let contextWindow = report.contextWindow;
|
|
149
|
+
if (!piWindowConfigured(modelsJson, report.provider, report.model)) {
|
|
150
|
+
const known = new Set((report.peers ?? []).filter((p) => p.provider !== report.provider && piWindowConfigured(modelsJson, p.provider, report.model)).map((p) => p.contextWindow));
|
|
151
|
+
if (known.size === 1) {
|
|
152
|
+
windowSource = "inferred";
|
|
153
|
+
contextWindow = [...known][0];
|
|
154
|
+
} else {
|
|
155
|
+
windowSource = "unknown";
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
const compactedAt = report.event === "session_compact" ? now : report.tokens === null ? previous?.compactedAt ?? null : null;
|
|
159
|
+
return {
|
|
160
|
+
source: "pi",
|
|
161
|
+
tokens: report.tokens,
|
|
162
|
+
contextWindow,
|
|
163
|
+
updatedAt: now,
|
|
164
|
+
windowSource,
|
|
165
|
+
model: report.model ?? null,
|
|
166
|
+
compactedAt
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
function readPiModelsJson(env = process.env, home = homedir()) {
|
|
170
|
+
try {
|
|
171
|
+
return obj(JSON.parse(readFileSync(join(piAgentDir({ home, env }), "models.json"), "utf8")));
|
|
172
|
+
} catch {
|
|
173
|
+
return null;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
|
|
122
177
|
const TEAMS_ADOPT_CAPABILITY = "teams-adopt-v1";
|
|
123
178
|
const TeamAdoptSchema = z.object({
|
|
124
179
|
requestId: z.string().min(1).max(128),
|
|
125
180
|
name: z.string().trim().min(1).max(128),
|
|
126
|
-
teamId: z.string().min(1).max(128).optional()
|
|
181
|
+
teamId: z.string().min(1).max(128).optional(),
|
|
182
|
+
/** B-730: the owner confirmed moving this session out of the team it already belongs to. */
|
|
183
|
+
transfer: z.literal(true).optional()
|
|
127
184
|
}).strict();
|
|
128
185
|
async function retainIntent(path, input) {
|
|
129
186
|
await mkdir(dirname(path), { recursive: true, mode: 448 });
|
|
@@ -206,7 +263,9 @@ function createTeamAdoption(sessionId) {
|
|
|
206
263
|
const connected = await client.initialize(input, { resumeAdoption: true, expectedTeamId: intent.resolvedTeamId, onTeamResolved: (teamId) => retainTeam(path, input, teamId, intent?.guidanceDelivered) });
|
|
207
264
|
const instructions = `${TEAM_SKILL}
|
|
208
265
|
|
|
209
|
-
This session is now connected as the team lead. Call team_inspect to read the authoritative state before continuing the user's goal. Do not call team_create or team_join again
|
|
266
|
+
This session is now connected as the team lead. Call team_inspect to read the authoritative state before continuing the user's goal. Do not call team_create or team_join again.
|
|
267
|
+
|
|
268
|
+
${TEAM_LEAD_PLAYBOOK}`;
|
|
210
269
|
if (!intent.guidanceDelivered) {
|
|
211
270
|
const key = await waitForSessionKey(sessionId, 1e4);
|
|
212
271
|
await sendUserMessage(sessionId, key, instructions, "teams", { localId: `teams-adopt-${input.requestId}`, sentFrom: "team" });
|
|
@@ -219,7 +278,12 @@ This session is now connected as the team lead. Call team_inspect to read the au
|
|
|
219
278
|
});
|
|
220
279
|
operation.safeToChange = true;
|
|
221
280
|
}
|
|
222
|
-
operation.result = {
|
|
281
|
+
operation.result = {
|
|
282
|
+
error: error instanceof Error ? error.message : "Team connection failed; retry the same request",
|
|
283
|
+
...operation.safeToChange ? { safeToChange: true } : {},
|
|
284
|
+
// B-730: the Web asks the owner to confirm a transfer, then sends a new request with `transfer`.
|
|
285
|
+
...error instanceof SessionInOtherTeamError ? { code: error.code, teamId: error.teamId, teamName: error.teamName } : {}
|
|
286
|
+
};
|
|
223
287
|
}
|
|
224
288
|
})();
|
|
225
289
|
return { status: "pending", requestId: input.requestId };
|
|
@@ -534,13 +598,12 @@ async function startHappyServer(client, options) {
|
|
|
534
598
|
let body = "";
|
|
535
599
|
for await (const chunk of req) {
|
|
536
600
|
body += chunk.toString();
|
|
537
|
-
if (Buffer.byteLength(body) >
|
|
601
|
+
if (Buffer.byteLength(body) > 4096) {
|
|
538
602
|
res.writeHead(413).end();
|
|
539
603
|
return;
|
|
540
604
|
}
|
|
541
605
|
}
|
|
542
|
-
|
|
543
|
-
options.onContextUsage(usage);
|
|
606
|
+
options.onContextUsage(PiContextReportSchema.parse(JSON.parse(body)));
|
|
544
607
|
res.writeHead(204).end();
|
|
545
608
|
} catch {
|
|
546
609
|
if (!res.headersSent) res.writeHead(400).end();
|
|
@@ -688,4 +751,4 @@ function hashObject(obj, options, encoding = "hex") {
|
|
|
688
751
|
return createHash("sha256").update(jsonString).digest(encoding);
|
|
689
752
|
}
|
|
690
753
|
|
|
691
|
-
export { createProjectInjector as c, hashObject as h, startHappyServer as s };
|
|
754
|
+
export { resolvePiContextUsage as a, createProjectInjector as c, hashObject as h, readPiModelsJson as r, startHappyServer as s };
|
|
@@ -1,30 +1,31 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var logger = require('./logger-
|
|
4
|
-
var prompt = require('./prompt-
|
|
5
|
-
var client = require('./client-
|
|
6
|
-
var reportProgressTool = require('./reportProgressTool-
|
|
7
|
-
var index = require('./index-Dv0Q48P3.cjs');
|
|
8
|
-
var promises = require('node:fs/promises');
|
|
9
|
-
var node_crypto = require('node:crypto');
|
|
3
|
+
var logger = require('./logger-DK1ytCz6.cjs');
|
|
4
|
+
var prompt = require('./prompt-Bof2aQkI.cjs');
|
|
5
|
+
var client = require('./client-DK8CzUry.cjs');
|
|
6
|
+
var reportProgressTool = require('./reportProgressTool-DlD_xjzU.cjs');
|
|
10
7
|
var node_fs = require('node:fs');
|
|
8
|
+
var os = require('node:os');
|
|
11
9
|
var path = require('node:path');
|
|
12
10
|
var z = require('zod');
|
|
13
|
-
var
|
|
14
|
-
var
|
|
15
|
-
var
|
|
16
|
-
var
|
|
17
|
-
var
|
|
18
|
-
var
|
|
11
|
+
var pi = require('./pi-DlsrPCTa.cjs');
|
|
12
|
+
var promises = require('node:fs/promises');
|
|
13
|
+
var node_crypto = require('node:crypto');
|
|
14
|
+
var client$1 = require('./client-xnWiHqdb.cjs');
|
|
15
|
+
var context = require('./context-BtIVqHI5.cjs');
|
|
16
|
+
var sessionOps = require('./sessionOps-Dx7wARjI.cjs');
|
|
17
|
+
var resources = require('./resources-BPyN59Iv.cjs');
|
|
18
|
+
var tools = require('./tools-ClYcb1YQ.cjs');
|
|
19
|
+
var peerTools = require('./peerTools-BVp1z0T_.cjs');
|
|
19
20
|
var mcp_js = require('@modelcontextprotocol/sdk/server/mcp.js');
|
|
20
21
|
var node_http = require('node:http');
|
|
21
22
|
var streamableHttp_js = require('@modelcontextprotocol/sdk/server/streamableHttp.js');
|
|
22
23
|
var limits = require('./limits-C-a7gr04.cjs');
|
|
23
|
-
var downloadTarget = require('./downloadTarget-
|
|
24
|
+
var downloadTarget = require('./downloadTarget-D33BFvew.cjs');
|
|
24
25
|
var agentGuidance = require('./agentGuidance-BtBx2xxE.cjs');
|
|
25
26
|
var webPanels = require('./webPanels-FCgFKvVe.cjs');
|
|
26
|
-
var persistence = require('./persistence-
|
|
27
|
-
var pushNotifications = require('./pushNotifications-
|
|
27
|
+
var persistence = require('./persistence-BdpwWXKh.cjs');
|
|
28
|
+
var pushNotifications = require('./pushNotifications-CyQVDThC.cjs');
|
|
28
29
|
var previewPath = require('./previewPath-B0rBdhy1.cjs');
|
|
29
30
|
var require$$3 = require('crypto');
|
|
30
31
|
|
|
@@ -121,11 +122,67 @@ function createProjectInjector(deps) {
|
|
|
121
122
|
};
|
|
122
123
|
}
|
|
123
124
|
|
|
125
|
+
const PiContextReportSchema = z.z.object({
|
|
126
|
+
source: z.z.literal("pi"),
|
|
127
|
+
tokens: z.z.number().finite().nonnegative().nullable(),
|
|
128
|
+
contextWindow: z.z.number().finite().positive(),
|
|
129
|
+
model: z.z.string().max(200).nullable().optional(),
|
|
130
|
+
provider: z.z.string().max(200).nullable().optional(),
|
|
131
|
+
/** The pi event that produced the report (`session_compact`, `turn_end`, …). */
|
|
132
|
+
event: z.z.string().max(64).nullable().optional(),
|
|
133
|
+
/** Other registry entries with the same model id. */
|
|
134
|
+
peers: z.z.array(z.z.object({ provider: z.z.string().max(200), contextWindow: z.z.number().finite().positive() })).max(8).optional()
|
|
135
|
+
});
|
|
136
|
+
const obj = (v) => v && typeof v === "object" && !Array.isArray(v) ? v : null;
|
|
137
|
+
const positive = (v) => typeof v === "number" && Number.isFinite(v) && v > 0;
|
|
138
|
+
function piWindowConfigured(modelsJson, provider, model) {
|
|
139
|
+
if (!modelsJson || !provider || !model) return true;
|
|
140
|
+
const config = obj(obj(modelsJson.providers)?.[provider]);
|
|
141
|
+
if (!config) return true;
|
|
142
|
+
if (positive(obj(obj(config.modelOverrides)?.[model])?.contextWindow)) return true;
|
|
143
|
+
const models = Array.isArray(config.models) ? config.models : [];
|
|
144
|
+
const entry = models.map(obj).find((m) => m?.id === model);
|
|
145
|
+
if (!entry) return true;
|
|
146
|
+
return positive(entry.contextWindow);
|
|
147
|
+
}
|
|
148
|
+
function resolvePiContextUsage(report, modelsJson, previous, now) {
|
|
149
|
+
let windowSource = "configured";
|
|
150
|
+
let contextWindow = report.contextWindow;
|
|
151
|
+
if (!piWindowConfigured(modelsJson, report.provider, report.model)) {
|
|
152
|
+
const known = new Set((report.peers ?? []).filter((p) => p.provider !== report.provider && piWindowConfigured(modelsJson, p.provider, report.model)).map((p) => p.contextWindow));
|
|
153
|
+
if (known.size === 1) {
|
|
154
|
+
windowSource = "inferred";
|
|
155
|
+
contextWindow = [...known][0];
|
|
156
|
+
} else {
|
|
157
|
+
windowSource = "unknown";
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
const compactedAt = report.event === "session_compact" ? now : report.tokens === null ? previous?.compactedAt ?? null : null;
|
|
161
|
+
return {
|
|
162
|
+
source: "pi",
|
|
163
|
+
tokens: report.tokens,
|
|
164
|
+
contextWindow,
|
|
165
|
+
updatedAt: now,
|
|
166
|
+
windowSource,
|
|
167
|
+
model: report.model ?? null,
|
|
168
|
+
compactedAt
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
function readPiModelsJson(env = process.env, home = os.homedir()) {
|
|
172
|
+
try {
|
|
173
|
+
return obj(JSON.parse(node_fs.readFileSync(path.join(pi.piAgentDir({ home, env }), "models.json"), "utf8")));
|
|
174
|
+
} catch {
|
|
175
|
+
return null;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
|
|
124
179
|
const TEAMS_ADOPT_CAPABILITY = "teams-adopt-v1";
|
|
125
180
|
const TeamAdoptSchema = z.z.object({
|
|
126
181
|
requestId: z.z.string().min(1).max(128),
|
|
127
182
|
name: z.z.string().trim().min(1).max(128),
|
|
128
|
-
teamId: z.z.string().min(1).max(128).optional()
|
|
183
|
+
teamId: z.z.string().min(1).max(128).optional(),
|
|
184
|
+
/** B-730: the owner confirmed moving this session out of the team it already belongs to. */
|
|
185
|
+
transfer: z.z.literal(true).optional()
|
|
129
186
|
}).strict();
|
|
130
187
|
async function retainIntent(path$1, input) {
|
|
131
188
|
await promises.mkdir(path.dirname(path$1), { recursive: true, mode: 448 });
|
|
@@ -208,7 +265,9 @@ function createTeamAdoption(sessionId) {
|
|
|
208
265
|
const connected = await client.initialize(input, { resumeAdoption: true, expectedTeamId: intent.resolvedTeamId, onTeamResolved: (teamId) => retainTeam(path, input, teamId, intent?.guidanceDelivered) });
|
|
209
266
|
const instructions = `${resources.TEAM_SKILL}
|
|
210
267
|
|
|
211
|
-
This session is now connected as the team lead. Call team_inspect to read the authoritative state before continuing the user's goal. Do not call team_create or team_join again
|
|
268
|
+
This session is now connected as the team lead. Call team_inspect to read the authoritative state before continuing the user's goal. Do not call team_create or team_join again.
|
|
269
|
+
|
|
270
|
+
${resources.TEAM_LEAD_PLAYBOOK}`;
|
|
212
271
|
if (!intent.guidanceDelivered) {
|
|
213
272
|
const key = await sessionOps.waitForSessionKey(sessionId, 1e4);
|
|
214
273
|
await sessionOps.sendUserMessage(sessionId, key, instructions, "teams", { localId: `teams-adopt-${input.requestId}`, sentFrom: "team" });
|
|
@@ -221,7 +280,12 @@ This session is now connected as the team lead. Call team_inspect to read the au
|
|
|
221
280
|
});
|
|
222
281
|
operation.safeToChange = true;
|
|
223
282
|
}
|
|
224
|
-
operation.result = {
|
|
283
|
+
operation.result = {
|
|
284
|
+
error: error instanceof Error ? error.message : "Team connection failed; retry the same request",
|
|
285
|
+
...operation.safeToChange ? { safeToChange: true } : {},
|
|
286
|
+
// B-730: the Web asks the owner to confirm a transfer, then sends a new request with `transfer`.
|
|
287
|
+
...error instanceof client$1.SessionInOtherTeamError ? { code: error.code, teamId: error.teamId, teamName: error.teamName } : {}
|
|
288
|
+
};
|
|
225
289
|
}
|
|
226
290
|
})();
|
|
227
291
|
return { status: "pending", requestId: input.requestId };
|
|
@@ -536,13 +600,12 @@ async function startHappyServer(client, options) {
|
|
|
536
600
|
let body = "";
|
|
537
601
|
for await (const chunk of req) {
|
|
538
602
|
body += chunk.toString();
|
|
539
|
-
if (Buffer.byteLength(body) >
|
|
603
|
+
if (Buffer.byteLength(body) > 4096) {
|
|
540
604
|
res.writeHead(413).end();
|
|
541
605
|
return;
|
|
542
606
|
}
|
|
543
607
|
}
|
|
544
|
-
|
|
545
|
-
options.onContextUsage(usage);
|
|
608
|
+
options.onContextUsage(PiContextReportSchema.parse(JSON.parse(body)));
|
|
546
609
|
res.writeHead(204).end();
|
|
547
610
|
} catch {
|
|
548
611
|
if (!res.headersSent) res.writeHead(400).end();
|
|
@@ -692,4 +755,6 @@ function hashObject(obj, options, encoding = "hex") {
|
|
|
692
755
|
|
|
693
756
|
exports.createProjectInjector = createProjectInjector;
|
|
694
757
|
exports.hashObject = hashObject;
|
|
758
|
+
exports.readPiModelsJson = readPiModelsJson;
|
|
759
|
+
exports.resolvePiContextUsage = resolvePiContextUsage;
|
|
695
760
|
exports.startHappyServer = startHappyServer;
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chalk = require('chalk');
|
|
4
|
-
var configuration = require('./configuration-
|
|
5
|
-
var persistence = require('./persistence-
|
|
6
|
-
var controlClient = require('./controlClient-
|
|
4
|
+
var configuration = require('./configuration-B-CugKJ3.cjs');
|
|
5
|
+
var persistence = require('./persistence-BdpwWXKh.cjs');
|
|
6
|
+
var controlClient = require('./controlClient-D0kGwKYx.cjs');
|
|
7
7
|
var doctor$1 = require('./doctor-u46qYYKX.cjs');
|
|
8
8
|
var node_fs = require('node:fs');
|
|
9
9
|
var path = require('node:path');
|
|
10
10
|
var projectPath = require('./projectPath-C3ioB4Bu.cjs');
|
|
11
|
-
var _package = require('./package-
|
|
11
|
+
var _package = require('./package-BfeqAzyJ.cjs');
|
|
12
12
|
var doctorReadiness = require('./doctorReadiness-Dl6yRQCy.cjs');
|
|
13
13
|
var authRelay = require('./authRelay-Dy1qU9td.cjs');
|
|
14
14
|
var cliUpdate = require('./cliUpdate-DsKXPFYp.cjs');
|
|
15
15
|
var node_child_process = require('node:child_process');
|
|
16
|
-
var piRunnerArgs = require('./piRunnerArgs-
|
|
16
|
+
var piRunnerArgs = require('./piRunnerArgs-vxCHKnSA.cjs');
|
|
17
17
|
|
|
18
18
|
function shareSafeProcessLine(process2) {
|
|
19
19
|
return `PID ${process2.pid}: command arguments hidden for privacy`;
|
|
@@ -313,8 +313,8 @@ ${typeLabels[type] || type}:`));
|
|
|
313
313
|
}
|
|
314
314
|
console.log(chalk.gray(" An external claude command is only needed for native terminal/mirror use."));
|
|
315
315
|
try {
|
|
316
|
-
const { resolveAgentHomesForCli } = await Promise.resolve().then(function () { return require('./agentHome-
|
|
317
|
-
const { describeAgentHome } = await Promise.resolve().then(function () { return require('./index-
|
|
316
|
+
const { resolveAgentHomesForCli } = await Promise.resolve().then(function () { return require('./agentHome-CP1tCBXz.cjs'); });
|
|
317
|
+
const { describeAgentHome } = await Promise.resolve().then(function () { return require('./index-B_aNaW9w.cjs'); });
|
|
318
318
|
const homes = await resolveAgentHomesForCli();
|
|
319
319
|
console.log(chalk.green(`\u2713 Claude config dir: ${describeAgentHome(homes.claudeConfigDir)}`));
|
|
320
320
|
console.log(chalk.green(`\u2713 Codex home: ${describeAgentHome(homes.codexHome)}`));
|
|
@@ -391,6 +391,7 @@ var doctor = /*#__PURE__*/Object.freeze({
|
|
|
391
391
|
runDoctorDaemon: runDoctorDaemon
|
|
392
392
|
});
|
|
393
393
|
|
|
394
|
+
exports.NPM_SAFE_ARG = NPM_SAFE_ARG;
|
|
394
395
|
exports.doctor = doctor;
|
|
395
396
|
exports.getEnvironmentInfo = getEnvironmentInfo;
|
|
396
397
|
exports.globalPrefixForPackage = globalPrefixForPackage;
|