@symerian/symi 2.6.41 → 2.7.0
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/{accounts-DDuIpcln.js → accounts-Cd816n6l.js} +7 -7
- package/dist/{accounts-bK-Yqdwx.js → accounts-CokRskCl.js} +1 -1
- package/dist/{accounts-DyJN4_vR.js → accounts-mN_EcgxC.js} +1 -1
- package/dist/{acp-cli-CrEIx-c7.js → acp-cli-COzlJi3B.js} +6 -6
- package/dist/{agent-scope-CgUHAtCo.js → agent-scope-BRwEc2pG.js} +18 -18
- package/dist/{agents-B4RNdKQ3.js → agents-Cu2bthAX.js} +4 -4
- package/dist/{agents.config-CA31c0kN.js → agents.config-5PTwsijs.js} +1 -1
- package/dist/{agents.config-CG2klYOg.js → agents.config-Dib8Uo2P.js} +2 -2
- package/dist/{api-key-rotation-CzuPlV2t.js → api-key-rotation-CEr3lKih.js} +1 -1
- package/dist/{audio-preflight-K-s65jbB.js → audio-preflight-COaFw917.js} +4 -4
- package/dist/{audio-preflight-CIiS5cfP.js → audio-preflight-mj-z_vQ6.js} +28 -28
- package/dist/{audit-DB9YkTVX.js → audit-Djfdh06o.js} +23 -23
- package/dist/{auth-choice-CCGIgXvF.js → auth-choice-5gul6jy2.js} +1 -1
- package/dist/{auth-choice-CiMf3Pjp.js → auth-choice-CmSUU3t8.js} +8 -8
- package/dist/{auth-token-Cay2jwzn.js → auth-token-83A2btbE.js} +1 -1
- package/dist/{banner-BNsB_A87.js → banner-B4vQpMIJ.js} +1 -1
- package/dist/{bindings-DFaVVCsf.js → bindings-ChzePa8q.js} +1 -1
- package/dist/{browser-cli-Ctn9do4z.js → browser-cli-BTD0NlrA.js} +9 -9
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +6 -6
- package/dist/bundled/session-memory/handler.js +6 -6
- package/dist/{call-DwpGquzW.js → call-tmHtVCkn.js} +9 -9
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-BMQlkUDX.js → channel-options-DVf4CJIu.js} +1 -1
- package/dist/{channel-options-pAH4A-xX.js → channel-options-DsWGc55A.js} +2 -2
- package/dist/{channel-selection-V2xDgw16.js → channel-selection-DaJDux-Q.js} +1 -1
- package/dist/{channel-web-Dwuj48T5.js → channel-web-vGC-WJXi.js} +17 -17
- package/dist/{channels-cli-rmDzxb0W.js → channels-cli-COayA28A.js} +76 -76
- package/dist/{channels-cli-CuExxB0U.js → channels-cli-CSv05N3q.js} +4 -4
- package/dist/{channels-status-issues-CJ0Vb_9z.js → channels-status-issues-B_PI3nEE.js} +1 -1
- package/dist/{chrome-DU2ZysN3.js → chrome-CSJzpT9Z.js} +2 -2
- package/dist/{chrome-BYOhnxTr.js → chrome-CbA-qnhp.js} +7 -7
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-Mcq2pPI0.js → cli-B-g79xPe.js} +1 -1
- package/dist/{cli-BPGZalMg.js → cli-DJjOxip6.js} +63 -63
- package/dist/{client-jI1oE0_k.js → client-Bj_vTpri.js} +1 -1
- package/dist/{command-registry-BoEw2RzH.js → command-registry-BvpLfzl7.js} +9 -9
- package/dist/{commands-BNLCWX6e.js → commands-CtocZ4Lg.js} +1 -1
- package/dist/{commands-registry-BT0-zzs3.js → commands-registry-BZ0ZSQpM.js} +3 -3
- package/dist/{completion-cli-CQVZGJPg.js → completion-cli-CfRZ-7QF.js} +2 -2
- package/dist/{completion-cli-CE9Xqlyx.js → completion-cli-DtQcXg1N.js} +12 -12
- package/dist/{config-cli-mU_ckD4l.js → config-cli-D9Z78raJ.js} +4 -4
- package/dist/{config-cli-BucNvr-c.js → config-cli-DL2RdfLM.js} +1 -1
- package/dist/{config-guard-CEkSg4hl.js → config-guard-4oRmpR0a.js} +12 -12
- package/dist/{config-Dz95lSBW.js → config-tNauHpdq.js} +2 -2
- package/dist/{config-validation-HDVDlMSV.js → config-validation-BoDWiwe3.js} +1 -1
- package/dist/{configure-CxnBcN95.js → configure-Dq4f8WPa.js} +3 -3
- package/dist/{configure-CDOF87Fk.js → configure-jDpF8lmx.js} +15 -15
- package/dist/{control-service-BYKXzY4f.js → control-service-BBnhN7aZ.js} +4 -4
- package/dist/control-ui/css/style.css +51 -0
- package/dist/control-ui/js/app.js +39 -0
- package/dist/control-ui/js/gateway.js +2 -0
- package/dist/control-ui/js/settings.js +71 -8
- package/dist/{control-ui-assets-B7moDVHX.js → control-ui-assets-6n-YayeS.js} +1 -1
- package/dist/{cron-cli-DCpsXkrw.js → cron-cli-D165ecaj.js} +10 -10
- package/dist/{daemon-cli-DSDcmWOi.js → daemon-cli-BccZzUb0.js} +11 -11
- package/dist/{daemon-runtime-mE1b-Q48.js → daemon-runtime-u01h46bE.js} +10 -10
- package/dist/{deliver-B4KZ6-oZ.js → deliver-BYdNAEqj.js} +7 -7
- package/dist/{deliver-C1HRkzPJ.js → deliver-C7NePF9Z.js} +1 -1
- package/dist/{devices-cli-x3jIP4Ih.js → devices-cli-D0N71nqX.js} +6 -6
- package/dist/{diagnostics-BRwihzJG.js → diagnostics-BrUo0gqs.js} +5 -5
- package/dist/{directory-cli-KgsAVTA0.js → directory-cli-aj7aXIBM.js} +7 -7
- package/dist/{dm-policy-shared-DlDAGtZL.js → dm-policy-shared-epgkayyq.js} +2 -2
- package/dist/{dns-cli-Cwr92Aiq.js → dns-cli-Dit09wbu.js} +3 -3
- package/dist/{dock-BhS32F6E.js → dock-BYiRZSgZ.js} +4 -4
- package/dist/{docs-cli-qE-blOLC.js → docs-cli-CyWGMA-e.js} +1 -1
- package/dist/{doctor-completion-CoftKlUX.js → doctor-completion-Ccb83Wl5.js} +2 -2
- package/dist/{doctor-completion-CHF_TwGQ.js → doctor-completion-oQemZItC.js} +1 -1
- package/dist/{doctor-config-flow-iIzSEQxb.js → doctor-config-flow-BXmHd2bb.js} +10 -10
- package/dist/entry.js +1 -1
- package/dist/{exec-approvals-cli-BSgxsdMt.js → exec-approvals-cli-CZ-iTtNO.js} +13 -13
- package/dist/extensionAPI.js +1 -1
- package/dist/{fs-safe-CUjO1ca2.js → fs-safe-CTDvb1DF.js} +6 -6
- package/dist/{gateway-cli-SNaqDM7f.js → gateway-cli-C1zPKZ7B.js} +137 -121
- package/dist/{gateway-cli-G7fiXsQ6.js → gateway-cli-zbVm1MBQ.js} +32 -16
- package/dist/{gateway-rpc-5fREQe9Q.js → gateway-rpc-B1Wzoj99.js} +1 -1
- package/dist/{glass-ui-ws-CF0__vuO.js → glass-ui-ws-CvUFd4C6.js} +28 -9
- package/dist/{glass-ui-ws-he25wGFt.js → glass-ui-ws-D3tAmqKX.js} +104 -85
- package/dist/{health-q7706M36.js → health-DQEqLYg1.js} +1 -1
- package/dist/{health-en2N_Kqc.js → health-o847FIt1.js} +13 -13
- package/dist/{hooks-cli-ChQbBpyb.js → hooks-cli-D_UW9fc8.js} +2 -2
- package/dist/{hooks-cli-C4rVaLzZ.js → hooks-cli-sYjbF4I6.js} +77 -77
- package/dist/{image-CbyTdMd5.js → image-C3ugMkb5.js} +1 -1
- package/dist/{image-BWmcNF8N.js → image-lCS3o9xj.js} +3 -3
- package/dist/{image-ops-1OJMSAUX.js → image-ops-DYbDWaIA.js} +10 -10
- package/dist/index.js +73 -73
- package/dist/{inspect-CvbbCuoa.js → inspect-CNYyHVfH.js} +4 -4
- package/dist/{install-safe-path-D3Uz77u7.js → install-safe-path-D3mg1DMG.js} +11 -11
- package/dist/{installs-DQcRVF1U.js → installs-CYTVYWH_.js} +10 -10
- package/dist/{ir-DZam9q5M.js → ir-Dt4hOzxG.js} +6 -6
- package/dist/{lifecycle-core-C4HzGXA1.js → lifecycle-core-DxmxQdhS.js} +5 -5
- package/dist/llm-slug-generator.js +6 -6
- package/dist/{local-roots-aAFLQGkY.js → local-roots-BBeKX7PX.js} +2 -2
- package/dist/{login-DODfJ3Dn.js → login-CnjdNmGD.js} +3 -3
- package/dist/{login-qr-CBRxijIg.js → login-qr-DUf6CM0M.js} +5 -5
- package/dist/{logs-cli-CfGj-dOg.js → logs-cli-BVd6h2-Q.js} +7 -7
- package/dist/{manager-D4LJSRyZ.js → manager-C1CfGzZ2.js} +13 -13
- package/dist/{markdown-tables-CEbN0fEm.js → markdown-tables-ZwP14ydw.js} +1 -1
- package/dist/{memory-cli-DDumUksr.js → memory-cli-DhkRAIdT.js} +14 -14
- package/dist/{model-tWhwnFf8.js → model-CeeOcylL.js} +1 -1
- package/dist/{model-catalog-8Son0J4O.js → model-catalog-CvbwxWuC.js} +4 -4
- package/dist/{model-picker-CAm2Bftd.js → model-picker-C2MqloOs.js} +3 -3
- package/dist/{model-selection-CyFvYcRt.js → model-selection-X1oLh3CE.js} +9 -9
- package/dist/{models-DOTpfa7b.js → models-Zol34e73.js} +2 -2
- package/dist/{models-cli-MJAY_Wg4.js → models-cli-BzcEA9oa.js} +3 -3
- package/dist/{models-cli-CBl45f7R.js → models-cli-DnMUzr15.js} +72 -72
- package/dist/{models-config-CFFjJPe7.js → models-config-CEMioDUi.js} +7 -7
- package/dist/{node-cli-DnfDOh1d.js → node-cli-BVJid4L_.js} +28 -28
- package/dist/{node-service-CD47Qpf1.js → node-service-CXzMs782.js} +1 -1
- package/dist/{nodes-cli-Ci3oxw8k.js → nodes-cli-BN2Nslim.js} +10 -10
- package/dist/{nodes-screen-8Bq7DiSa.js → nodes-screen-Cd49cSPb.js} +4 -4
- package/dist/{npm-registry-spec-C0CPT3vr.js → npm-registry-spec-DchndI6P.js} +9 -9
- package/dist/{onboard-DQdGJ1lE.js → onboard-CSseK0Co.js} +13 -13
- package/dist/{onboard-Bx02XPb1.js → onboard-CxOT_xD4.js} +2 -2
- package/dist/{onboard-channels-Bp89ZT6Q.js → onboard-channels-CUlITipG.js} +5 -5
- package/dist/{onboard-channels-Ct2eNYUC.js → onboard-channels-D-lh_Vh1.js} +1 -1
- package/dist/{onboard-custom-XiomtQr7.js → onboard-custom-DTcLdtA9.js} +3 -3
- package/dist/{onboard-helpers-DFvWPFhU.js → onboard-helpers-CdPNw25E.js} +8 -8
- package/dist/{onboard-hooks-C3ok8kqB.js → onboard-hooks-C_2_jpWg.js} +1 -1
- package/dist/{onboard-remote-BURDxwoE.js → onboard-remote-v6QMnyJD.js} +1 -1
- package/dist/{onboard-skills-CbzgBT1W.js → onboard-skills-CQtkRP20.js} +4 -4
- package/dist/{onboarding-Dnn_0VTy.js → onboarding-DktESmTv.js} +3 -3
- package/dist/{onboarding-DxUcsrKV.js → onboarding-Dn5agNG_.js} +13 -13
- package/dist/{onboarding.finalize-1kzzMLFM.js → onboarding.finalize-Bm-1Kdnh.js} +6 -6
- package/dist/{onboarding.finalize-Dwr-jEtL.js → onboarding.finalize-CTIZ1zvV.js} +75 -75
- package/dist/{onboarding.gateway-config-DKwJ5bWd.js → onboarding.gateway-config-CwnQkyO0.js} +14 -14
- package/dist/{openai-model-default-WqcGxyFM.js → openai-model-default-4kBA1_78.js} +2 -2
- package/dist/{outbound-wnv03tb3.js → outbound-_Ir3M05f.js} +4 -4
- package/dist/{outbound-attachment-Bw-c5Cdp.js → outbound-attachment-Qfh5dlsg.js} +2 -2
- package/dist/{pairing-cli-DSM82gJG.js → pairing-cli-C8UXBJ_A.js} +8 -8
- package/dist/{pairing-labels-DyXoD1DS.js → pairing-labels-Dxb898X5.js} +1 -1
- package/dist/{pairing-store-CK726Dzq.js → pairing-store-B8ktu-6j.js} +2 -2
- package/dist/{pairing-token-CX3NN_qj.js → pairing-token-AV-MMfVE.js} +7 -7
- package/dist/{paths-BBm9fwuG.js → paths-CT6jsi4E.js} +1 -1
- package/dist/{pi-auth-json-zHckislA.js → pi-auth-json-FpfHyEcu.js} +5 -5
- package/dist/{pi-embedded-BfEg6Wwb.js → pi-embedded-CYDMb5q0.js} +79 -3
- package/dist/{pi-embedded-helpers-GaCyI2oH.js → pi-embedded-helpers-BgRcgoC9.js} +4 -4
- package/dist/{pi-embedded-helpers-BgdB5kvy.js → pi-embedded-helpers-Bs4eMaNo.js} +6 -6
- package/dist/{pi-tools.policy-DRWb_Cax.js → pi-tools.policy-BBxnqCay.js} +4 -4
- package/dist/{plugin-auto-enable-CP0nONRL.js → plugin-auto-enable-DwIrzVOA.js} +2 -2
- package/dist/{plugin-registry-BMFEJ4FA.js → plugin-registry-CJGPW1-k.js} +1 -1
- package/dist/{plugin-registry-wAQeBSeD.js → plugin-registry-d0oZLl6y.js} +3 -3
- package/dist/plugin-sdk/agents/pi-embedded-runner/long-task-prompt.d.ts +5 -0
- package/dist/plugin-sdk/{channel-web-Ba27v-Om.js → channel-web-Dm-CzA1O.js} +1 -1
- package/dist/plugin-sdk/index.js +2 -2
- package/dist/plugin-sdk/{reply-Bok_WQGW.js → reply-4HEU7aDS.js} +79 -3
- package/dist/plugin-sdk/{web-BoOAa0Xn.js → web-Cclb7FTq.js} +2 -2
- package/dist/{plugins-DKDeQZF0.js → plugins-BAyxWQSz.js} +2 -2
- package/dist/{plugins-cli-B36YKKla.js → plugins-cli-BWgjIJQL.js} +72 -72
- package/dist/{plugins-cli-DoJbbST7.js → plugins-cli-CL0tzkMo.js} +2 -2
- package/dist/{ports-BOmtxoTv.js → ports-OZQlocB7.js} +2 -2
- package/dist/{ports-DtW62rqS.js → ports-u9lWy2Jt.js} +1 -1
- package/dist/{program-4f7W2RMs.js → program-BHjH97Q_.js} +7 -7
- package/dist/{program-context-Y4KnAKNT.js → program-context-CXZHSZ4D.js} +39 -39
- package/dist/{prompt-select-styled-D0sLJ4TD.js → prompt-select-styled-BUFEoSlM.js} +38 -38
- package/dist/{prompt-select-styled-Dql_0SI0.js → prompt-select-styled-D8LXSUR7.js} +4 -4
- package/dist/{provider-auth-helpers-GSv3namf.js → provider-auth-helpers-BFHctF2f.js} +1 -1
- package/dist/{provider-auth-helpers-CJbHC_mv.js → provider-auth-helpers-CeAbh3lv.js} +5 -5
- package/dist/{push-apns-giplY7u-.js → push-apns-BylbQyP9.js} +1 -1
- package/dist/{push-apns-sxB8QxSj.js → push-apns-DqFdzIkc.js} +4 -4
- package/dist/{pw-ai-pQoxTh-a.js → pw-ai--LDjnyuN.js} +1 -1
- package/dist/{pw-ai-DQohWnzT.js → pw-ai-CfrnAHwA.js} +7 -7
- package/dist/{qmd-manager-CCUK1xoc.js → qmd-manager-DUNbG4Qr.js} +18 -18
- package/dist/{qr-cli-CejYwqsj.js → qr-cli-BZYa2gvF.js} +3 -3
- package/dist/{register.agent-_2tVQLMK.js → register.agent-DxAqRAt3.js} +6 -6
- package/dist/{register.agent-vd2BSsyE.js → register.agent-bzSGKS-l.js} +82 -82
- package/dist/register.configure-Boyfir72.js +148 -0
- package/dist/{register.configure-BVKwTrz8.js → register.configure-WS1nlSp8.js} +6 -6
- package/dist/{register.maintenance-XySU31jf.js → register.maintenance-B1QcUr38.js} +85 -85
- package/dist/{register.maintenance-BqYR2fop.js → register.maintenance-D_qMTrgD.js} +8 -8
- package/dist/{register.message-CCfWNWs3.js → register.message-CJF8gLAN.js} +64 -64
- package/dist/{register.message-DOyREWdG.js → register.message-zu3HGGff.js} +2 -2
- package/dist/{register.onboard-Dy_D_uMj.js → register.onboard-9dwNqCe6.js} +4 -4
- package/dist/{register.onboard-zmF-euog.js → register.onboard-CswoaT7q.js} +75 -75
- package/dist/{register.setup-DiGPa1Fw.js → register.setup-CvomtGGu.js} +78 -78
- package/dist/{register.setup-cE7gPp2m.js → register.setup-TcjUu6HC.js} +4 -4
- package/dist/{register.status-health-sessions-ksv1WnIs.js → register.status-health-sessions-CM1SX81r.js} +3 -3
- package/dist/{register.status-health-sessions-DWKL1rkz.js → register.status-health-sessions-CQMvbwr6.js} +76 -76
- package/dist/{register.subclis-Crt_IYK0.js → register.subclis-CVQASXaL.js} +9 -9
- package/dist/{replies-BMqtgBhh.js → replies-Dy92jzrz.js} +1 -1
- package/dist/{reply-CjYJHt_H.js → reply-CpNWtuU4.js} +216 -140
- package/dist/{reply-prefix-CE2YmmsD.js → reply-prefix-BLOOs1aW.js} +1 -1
- package/dist/{resolve-route-BMoTaVAH.js → resolve-route-BcnaXYvh.js} +2 -2
- package/dist/{routes-BAZTZNuQ.js → routes-CVwRcA9D.js} +8 -8
- package/dist/{rpc-Co5PQ3IJ.js → rpc-CZFfee1J.js} +1 -1
- package/dist/{run-main-bOlPbL7t.js → run-main-Dq6tfDry.js} +14 -14
- package/dist/{runner-DRv0uCK_.js → runner-BAVs-p6Z.js} +20 -20
- package/dist/{runner-B0AbN8wV.js → runner-cJ3m-bxK.js} +1 -1
- package/dist/{sandbox-B6N8cV4d.js → sandbox-HZ_uilsn.js} +18 -18
- package/dist/{sandbox-cli-DwzaNjIJ.js → sandbox-cli-wZtiyo8g.js} +20 -20
- package/dist/{security-cli-D5BWzqEJ.js → security-cli-BESmRIrl.js} +36 -36
- package/dist/{send-CQVnyJyF.js → send-BVBCh27_.js} +13 -13
- package/dist/{send-DVm0du0_.js → send-CXFTeD_J.js} +4 -4
- package/dist/{send-B3RdXvjC.js → send-DT-5buW5.js} +6 -6
- package/dist/{send-9SapUCg7.js → send-DsSI8z3F.js} +6 -6
- package/dist/{send-Bm4ULEzh.js → send-JWV62VbW.js} +6 -6
- package/dist/{server-context-CCBZN8a0.js → server-context-VlF1_hYj.js} +5 -5
- package/dist/{server-methods-VimYvcpY.js → server-methods-B0pdetGJ.js} +130 -64
- package/dist/{server-methods-CiwWwj6K.js → server-methods-IBEaQXPX.js} +177 -111
- package/dist/{server-node-events-DYC45lKC.js → server-node-events-BACmfyjo.js} +64 -64
- package/dist/{server-node-events-CHmLiFNV.js → server-node-events-CyDj7Txd.js} +2 -2
- package/dist/{service-osK70kTZ.js → service-D80PyJxB.js} +15 -15
- package/dist/{session-DsJGtM7g.js → session-6Qyc4cBQ.js} +2 -2
- package/dist/{session-dirs-Dgz7kkUM.js → session-dirs-DPzjjra2.js} +2 -2
- package/dist/{sessions-Cpgnq0pA.js → sessions-jTAGYjWl.js} +13 -13
- package/dist/{shared-DnmJ0ABB.js → shared-BV7WhIkY.js} +1 -1
- package/dist/{shared-73T9fyuK.js → shared-BfhtOZAz.js} +3 -3
- package/dist/{skill-commands-Cxw-jNxU.js → skill-commands-ZXbEITKi.js} +5 -5
- package/dist/{skill-scanner-hMtQbWPV.js → skill-scanner-w3DJvw1Q.js} +5 -5
- package/dist/{skills-6jdJQ5ZL.js → skills-DqQUtOph.js} +4 -4
- package/dist/{skills-cli-DXkx4vNV.js → skills-cli-D3lePXkf.js} +7 -7
- package/dist/{skills-install-CWVdJkLn.js → skills-install-HGYidhrv.js} +3 -3
- package/dist/{skills-status-C3ptXwnh.js → skills-status-Cjsh8we0.js} +1 -1
- package/dist/{sqlite-Dx3J_aSE.js → sqlite-BV5ILFtC.js} +12 -12
- package/dist/{status-DxhtJtzE.js → status-BJtbD-cG.js} +2 -2
- package/dist/{status-Dt_MXoNa.js → status-DUeTrQSz.js} +1 -1
- package/dist/{status-CA5wJHMj.js → status-DzHL-eVu.js} +3 -3
- package/dist/{status-DEpM69Pd.js → status-nzJEZmNT.js} +25 -25
- package/dist/{status.update-CG0ciGaf.js → status.update-TlYwuzTa.js} +3 -3
- package/dist/{store-r1DJSDq-.js → store-DvtcmOKj.js} +5 -5
- package/dist/{subagent-registry-BPwn3Qm7.js → subagent-registry-CzS4CfnV.js} +79 -3
- package/dist/{symi-root-CrGJbkzf.js → symi-root-MF6_6SCS.js} +2 -2
- package/dist/{system-cli-DFZNGx0i.js → system-cli-C2yhGP4C.js} +7 -7
- package/dist/{systemd-DT6SbCim.js → systemd-CevHlgD4.js} +5 -5
- package/dist/{systemd-hints-xYZbFny_.js → systemd-hints-DmgRnw1L.js} +6 -6
- package/dist/{systemd-linger-DCskIKcx.js → systemd-linger-ScxQ1_H4.js} +1 -1
- package/dist/{tables-BEzT0Da4.js → tables-C38rzF6E.js} +1 -1
- package/dist/{target-errors-7AvoVa10.js → target-errors-CCz79CmV.js} +4 -4
- package/dist/{tool-images-DvUBlqjX.js → tool-images-B-pqX3nX.js} +1 -1
- package/dist/{tui-DjPsMdL6.js → tui-D2MOx3Kx.js} +7 -7
- package/dist/{tui-cli-pWD_NrUR.js → tui-cli-B2ii7u23.js} +28 -28
- package/dist/{unified-runner-CVkyzT1I.js → unified-runner-BtO3UQSd.js} +93 -17
- package/dist/{update-Ya0e-JnM.js → update-Don6XTH9.js} +3 -3
- package/dist/{update-check-7EzEjSzb.js → update-check-DCo5RtKp.js} +5 -5
- package/dist/{update-cli-Dh_dfprI.js → update-cli-DRODEMSI.js} +8 -8
- package/dist/{update-cli-Dv4c5Gup.js → update-cli-gKtjyXlD.js} +95 -95
- package/dist/{update-runner-MMFI1UZ0.js → update-runner-AsKAxe31.js} +15 -15
- package/dist/{update-runner-CG_kbbGR.js → update-runner-JcdOHr71.js} +1 -1
- package/dist/{web-DCBOD-Vj.js → web-BIzWZFiN.js} +1 -1
- package/dist/{web-BUc-ts5b.js → web-DGo16lWn.js} +6 -6
- package/dist/{web-CJk-lv93.js → web-DKwOxo8E.js} +1 -1
- package/dist/web-sefqR11J.js +110 -0
- package/dist/{webhooks-cli-BRxe4uCg.js → webhooks-cli-DbnQ2BVE.js} +4 -4
- package/dist/{whatsapp-actions-ChO_shrk.js → whatsapp-actions-CqXxtCoj.js} +15 -15
- package/dist/{with-timeout-CtVdu_1U.js → with-timeout-Cm5EhxG_.js} +1 -1
- package/dist/{workspace-dirs-GpkFi6Kw.js → workspace-dirs-DKu48umx.js} +1 -1
- package/dist/{wsl-q8spwrME.js → wsl-xNOi_Ch8.js} +2 -2
- package/extensions/bluebubbles/package.json +1 -1
- package/extensions/copilot-proxy/package.json +1 -1
- package/extensions/diagnostics-otel/package.json +1 -1
- package/extensions/discord/package.json +1 -1
- package/extensions/feishu/package.json +1 -1
- package/extensions/google-antigravity-auth/package.json +1 -1
- package/extensions/google-gemini-cli-auth/package.json +1 -1
- package/extensions/googlechat/package.json +1 -1
- package/extensions/imessage/package.json +1 -1
- package/extensions/irc/package.json +1 -1
- package/extensions/learning-loop/package.json +1 -1
- package/extensions/line/package.json +1 -1
- package/extensions/llm-task/package.json +1 -1
- package/extensions/matrix/CHANGELOG.md +12 -0
- package/extensions/matrix/package.json +1 -1
- package/extensions/mattermost/package.json +1 -1
- package/extensions/memory-core/package.json +1 -1
- package/extensions/memory-lancedb/package.json +1 -1
- package/extensions/minimax-portal-auth/package.json +1 -1
- package/extensions/msteams/CHANGELOG.md +12 -0
- package/extensions/msteams/package.json +1 -1
- package/extensions/nextcloud-talk/package.json +1 -1
- package/extensions/nostr/CHANGELOG.md +12 -0
- package/extensions/nostr/package.json +1 -1
- package/extensions/open-prose/package.json +1 -1
- package/extensions/outlook/package.json +1 -1
- package/extensions/pipeline/package.json +1 -1
- package/extensions/signal/package.json +1 -1
- package/extensions/slack/package.json +1 -1
- package/extensions/telegram/package.json +1 -1
- package/extensions/tlon/package.json +1 -1
- package/extensions/twitch/CHANGELOG.md +12 -0
- package/extensions/twitch/package.json +1 -1
- package/extensions/voice-call/CHANGELOG.md +12 -0
- package/extensions/voice-call/package.json +1 -1
- package/extensions/whatsapp/package.json +1 -1
- package/extensions/zalo/CHANGELOG.md +12 -0
- package/extensions/zalo/package.json +1 -1
- package/extensions/zalouser/CHANGELOG.md +12 -0
- package/extensions/zalouser/package.json +1 -1
- package/package.json +1 -1
- package/skills/long-task/SKILL.md +57 -0
- package/skills/long-task/scripts/detach-task.sh +135 -0
- package/dist/register.configure-D-XV6_Nb.js +0 -148
- package/dist/web-CfVd3Mhp.js +0 -110
|
@@ -1,58 +1,58 @@
|
|
|
1
1
|
import { g as resolveStateDir, t as CONFIG_PATH } from "./paths-Cqn-zk3M.js";
|
|
2
2
|
import { D as isPlainObject, U as getResolvedLoggerSettings, r as clamp, y as resolveUserPath } from "./utils-B-0b9bGM.js";
|
|
3
3
|
import { a as normalizeElevatedLevel, c as normalizeUsageDisplay, d as supportsXHighThinking, n as formatXHighModelHint, o as normalizeReasoningLevel, s as normalizeThinkLevel, t as formatThinkingLevels } from "./thinking-EAliFiVK.js";
|
|
4
|
-
import { $n as OPENAI_TTS_MODELS, Bn as registerAgentRunContext, Bt as abortEmbeddedPiRun, C as ensureOutboundSessionEntry, Et as agentCommand, Ft as normalizeSendPolicy, G as normalizeCronJobPatch, Gn as resolveTtsApiKey, H as writeRestartSentinel, Hn as getTtsProvider, Ht as waitForEmbeddedPiRunEnd, It as resolveSendPolicy, Jn as resolveTtsPrefsPath, Kn as resolveTtsAutoMode, L as formatDoctorNonInteractiveHint, Mn as listSubagentRunsForRequester, Mt as resolveOutboundTarget, N as scheduleGatewaySigusr1Restart, Ot as resolveAgentDeliveryPlan, Pr as resolveAgentTimeoutMs, Qn as textToSpeech, Rt as createOutboundSendDeps, Sr as isSystemEventContextChanged, Tn as stopSubagentsForRequester, Un as isTtsEnabled, Vn as resolveUserTimezone, W as normalizeCronJobCreate, Wn as isTtsProviderConfigured, Xn as setTtsEnabled, Yn as resolveTtsProviderOrder, Zn as setTtsProvider, _ as loadCombinedSessionStoreForGateway, at as persistBrowserProxyFiles, b as resolveGatewaySessionStoreTarget, br as parseVerboseOverride, c as clearSessionQueues, er as OPENAI_TTS_VOICES, ft as loadSymiPlugins, g as listSessionsFromStore, gt as loadProviderUsageSummary, h as listAgentsForGateway, in as unbindThreadBindingsBySessionKey, it as applyBrowserProxyPaths, jn as listDescendantRunsForRequester, kt as resolveAgentOutboundTarget, mn as createReplyDispatcher, mt as normalizeGroupActivation, n as BARE_SESSION_RESET_PROMPT, p as canonicalizeSpawnedByForAgent, pn as dispatchInboundMessage, qn as resolveTtsConfig, v as loadSessionEntry, vr as applyModelOverrideToSessionEntry, w as resolveOutboundSessionRoute, wn as isAbortTrigger, x as resolveSessionModelRef, xn as formatZonedTimestamp, xr as enqueueSystemEvent, y as pruneLegacyStoreKeys, yr as applyVerboseOverride, zn as onAgentEvent } from "./reply-
|
|
4
|
+
import { $n as OPENAI_TTS_MODELS, Bn as registerAgentRunContext, Bt as abortEmbeddedPiRun, C as ensureOutboundSessionEntry, Et as agentCommand, Ft as normalizeSendPolicy, G as normalizeCronJobPatch, Gn as resolveTtsApiKey, H as writeRestartSentinel, Hn as getTtsProvider, Ht as waitForEmbeddedPiRunEnd, It as resolveSendPolicy, Jn as resolveTtsPrefsPath, Kn as resolveTtsAutoMode, L as formatDoctorNonInteractiveHint, Mn as listSubagentRunsForRequester, Mt as resolveOutboundTarget, N as scheduleGatewaySigusr1Restart, Ot as resolveAgentDeliveryPlan, Pr as resolveAgentTimeoutMs, Qn as textToSpeech, Rt as createOutboundSendDeps, Sr as isSystemEventContextChanged, Tn as stopSubagentsForRequester, Un as isTtsEnabled, Vn as resolveUserTimezone, W as normalizeCronJobCreate, Wn as isTtsProviderConfigured, Xn as setTtsEnabled, Yn as resolveTtsProviderOrder, Zn as setTtsProvider, _ as loadCombinedSessionStoreForGateway, at as persistBrowserProxyFiles, b as resolveGatewaySessionStoreTarget, br as parseVerboseOverride, c as clearSessionQueues, er as OPENAI_TTS_VOICES, ft as loadSymiPlugins, g as listSessionsFromStore, gt as loadProviderUsageSummary, h as listAgentsForGateway, in as unbindThreadBindingsBySessionKey, it as applyBrowserProxyPaths, jn as listDescendantRunsForRequester, kt as resolveAgentOutboundTarget, mn as createReplyDispatcher, mt as normalizeGroupActivation, n as BARE_SESSION_RESET_PROMPT, p as canonicalizeSpawnedByForAgent, pn as dispatchInboundMessage, qn as resolveTtsConfig, v as loadSessionEntry, vr as applyModelOverrideToSessionEntry, w as resolveOutboundSessionRoute, wn as isAbortTrigger, x as resolveSessionModelRef, xn as formatZonedTimestamp, xr as enqueueSystemEvent, y as pruneLegacyStoreKeys, yr as applyVerboseOverride, zn as onAgentEvent } from "./reply-CpNWtuU4.js";
|
|
5
5
|
import { S as parseAgentSessionKey, l as resolveAgentIdFromSessionKey, m as DEFAULT_ACCOUNT_ID, o as classifySessionKeyShape, s as normalizeAgentId, t as DEFAULT_AGENT_ID, x as isSubagentSessionKey } from "./session-key-DCt45XZa.js";
|
|
6
|
-
import { t as resolveSymiPackageRoot } from "./symi-root-
|
|
6
|
+
import { t as resolveSymiPackageRoot } from "./symi-root-MF6_6SCS.js";
|
|
7
7
|
import { C as createInternalHookEvent, T as triggerInternalHook, d as getActivePluginRegistry, r as DEFAULT_CHAT_CHANNEL, t as CHANNEL_IDS } from "./registry-Cja8eT7G.js";
|
|
8
8
|
import { f as defaultRuntime, t as createSubsystemLogger } from "./subsystem-D9vIQve0.js";
|
|
9
|
-
import { C as ensureAgentWorkspace, S as DEFAULT_USER_FILENAME, T as isWorkspaceOnboardingCompleted, _ as DEFAULT_MEMORY_ALT_FILENAME, b as DEFAULT_SYMIPULSE_FILENAME, c as resolveAgentWorkspaceDir, d as resolveSessionAgentId, g as DEFAULT_IDENTITY_FILENAME, h as DEFAULT_BOOTSTRAP_FILENAME, i as resolveAgentDir, l as resolveDefaultAgentId, n as listAgentIds, p as DEFAULT_AGENTS_FILENAME, t as listAgentEntries, v as DEFAULT_MEMORY_FILENAME, x as DEFAULT_TOOLS_FILENAME, y as DEFAULT_SYMICORE_FILENAME } from "./agent-scope-
|
|
10
|
-
import { Bt as normalizeSecretInput, _ as resolveSubagentConfiguredModelSelection, d as resolveAllowedModelRef, m as resolveDefaultModelForAgent, y as resolveThinkingDefault } from "./model-selection-
|
|
9
|
+
import { C as ensureAgentWorkspace, S as DEFAULT_USER_FILENAME, T as isWorkspaceOnboardingCompleted, _ as DEFAULT_MEMORY_ALT_FILENAME, b as DEFAULT_SYMIPULSE_FILENAME, c as resolveAgentWorkspaceDir, d as resolveSessionAgentId, g as DEFAULT_IDENTITY_FILENAME, h as DEFAULT_BOOTSTRAP_FILENAME, i as resolveAgentDir, l as resolveDefaultAgentId, n as listAgentIds, p as DEFAULT_AGENTS_FILENAME, t as listAgentEntries, v as DEFAULT_MEMORY_FILENAME, x as DEFAULT_TOOLS_FILENAME, y as DEFAULT_SYMICORE_FILENAME } from "./agent-scope-BRwEc2pG.js";
|
|
10
|
+
import { Bt as normalizeSecretInput, _ as resolveSubagentConfiguredModelSelection, d as resolveAllowedModelRef, m as resolveDefaultModelForAgent, y as resolveThinkingDefault } from "./model-selection-X1oLh3CE.js";
|
|
11
11
|
import { f as GATEWAY_CLIENT_CAPS, g as hasGatewayClientCap, i as isGatewayMessageChannel, l as normalizeMessageChannel, n as isDeliverableMessageChannel, t as INTERNAL_MESSAGE_CHANNEL } from "./message-channel-aT-I_DTX.js";
|
|
12
|
-
import { H as VERSION, N as applyMergePatch, P as applyLegacyMigrations, S as sensitive, U as resolveRuntimeServiceVersion, a as parseConfigJson5, c as resolveConfigSnapshotHash, d as SymiSchema, i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot, s as readConfigFileSnapshotForWrite, u as validateConfigObjectWithPlugins } from "./config-
|
|
12
|
+
import { H as VERSION, N as applyMergePatch, P as applyLegacyMigrations, S as sensitive, U as resolveRuntimeServiceVersion, a as parseConfigJson5, c as resolveConfigSnapshotHash, d as SymiSchema, i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot, s as readConfigFileSnapshotForWrite, u as validateConfigObjectWithPlugins } from "./config-tNauHpdq.js";
|
|
13
13
|
import { c as pickPrimaryLanIPv4 } from "./ws-C7EXRv8z.js";
|
|
14
|
-
import { i as loadWorkspaceSkillEntries } from "./skills-
|
|
14
|
+
import { i as loadWorkspaceSkillEntries } from "./skills-DqQUtOph.js";
|
|
15
15
|
import { t as movePathToTrash } from "./trash-DcMh1i4B.js";
|
|
16
|
-
import { B as resolveAgentMainSessionKey, C as capArrayByJsonBytes, D as resolveSessionTranscriptCandidates, G as snapshotSessionOrigin, H as resolveMainSessionKey, O as stripEnvelopeFromMessages, S as archiveSessionTranscripts, T as readSessionPreviewItemsFromTranscript, U as resolveMainSessionKeyFromConfig, V as resolveExplicitAgentSessionKey, d as updateSessionStore, o as loadSessionStore, t as extractDeliveryInfo, w as readSessionMessages, x as archiveFileOnDisk, y as normalizeSessionDeliveryFields } from "./sessions-
|
|
17
|
-
import { n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-
|
|
16
|
+
import { B as resolveAgentMainSessionKey, C as capArrayByJsonBytes, D as resolveSessionTranscriptCandidates, G as snapshotSessionOrigin, H as resolveMainSessionKey, O as stripEnvelopeFromMessages, S as archiveSessionTranscripts, T as readSessionPreviewItemsFromTranscript, U as resolveMainSessionKeyFromConfig, V as resolveExplicitAgentSessionKey, d as updateSessionStore, o as loadSessionStore, t as extractDeliveryInfo, w as readSessionMessages, x as archiveFileOnDisk, y as normalizeSessionDeliveryFields } from "./sessions-jTAGYjWl.js";
|
|
17
|
+
import { n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-BAyxWQSz.js";
|
|
18
18
|
import { n as resolveSessionFilePath, r as resolveSessionFilePathOptions, s as resolveSessionTranscriptsDirForAgent } from "./paths-CyhzMxFA.js";
|
|
19
19
|
import { i as normalizeInputProvenance } from "./input-provenance-BzbXHcaD.js";
|
|
20
|
-
import { n as createBrowserRouteDispatcher } from "./with-timeout-
|
|
21
|
-
import { C as getGlobalHookRunner, o as normalizeReplyPayloadsForDelivery, t as deliverOutboundPayloads } from "./deliver-
|
|
22
|
-
import { a as resolveAgentIdentity, t as createReplyPrefixOptions } from "./reply-prefix-
|
|
23
|
-
import { $ as validateNodePairRejectParams, A as validateCronStatusParams, B as validateExecApprovalsGetParams, Bt as rejectDevicePairing, C as validateConfigSetParams, Ct as validateWakeParams, D as validateCronRemoveParams, Dt as validateWizardNextParams, E as validateCronListParams, Et as validateWizardCancelParams, F as validateDevicePairRemoveParams, G as validateModelsListParams, Gt as summarizeDeviceTokens, H as validateExecApprovalsNodeSetParams, I as validateDeviceTokenRevokeParams, It as approveDevicePairing, J as validateNodeInvokeParams, K as validateNodeDescribeParams, L as validateDeviceTokenRotateParams, M as validateDevicePairApproveParams, Mt as errorShape, N as validateDevicePairListParams, O as validateCronRunParams, Ot as validateWizardStartParams, P as validateDevicePairRejectParams, Pt as parseSessionLabel, Q as validateNodePairListParams, S as validateConfigSchemaParams, St as validateUpdateRunParams, T as validateCronAddParams, Tt as validateWebLoginWaitParams, U as validateExecApprovalsSetParams, Ut as revokeDeviceToken, V as validateExecApprovalsNodeGetParams, Vt as removePairedDevice, W as validateLogsTailParams, Wt as rotateDeviceToken, X as validateNodeListParams, Y as validateNodeInvokeResultParams, Z as validateNodePairApproveParams, _ as validateChatInjectParams, _t as validateSkillsInstallParams, a as validateAgentWaitParams, b as validateConfigGetParams, bt as validateTalkConfigParams, c as validateAgentsFilesGetParams, ct as validateSessionsDeleteParams, d as validateAgentsListParams, dt as validateSessionsPreviewParams, et as validateNodePairRequestParams, f as validateAgentsUpdateParams, ft as validateSessionsResetParams, g as validateChatHistoryParams, gt as validateSkillsBinsParams, h as validateChatAbortParams, ht as validateSessionsUsageParams, i as validateAgentParams, it as validatePushTestParams, j as validateCronUpdateParams, jt as ErrorCodes, k as validateCronRunsParams, kt as validateWizardStatusParams, l as validateAgentsFilesListParams, lt as validateSessionsListParams, m as validateChannelsStatusParams, mt as validateSessionsRestoreParams, n as formatValidationErrors, nt as validateNodeRenameParams, o as validateAgentsCreateParams, ot as validateSendParams, p as validateChannelsLogoutParams, pt as validateSessionsResolveParams, q as validateNodeEventParams, r as validateAgentIdentityParams, rt as validatePollParams, s as validateAgentsDeleteParams, st as validateSessionsCompactParams, tt as validateNodePairVerifyParams, u as validateAgentsFilesSetParams, ut as validateSessionsPatchParams, v as validateChatSendParams, vt as validateSkillsStatusParams, wt as validateWebLoginStartParams, x as validateConfigPatchParams, xt as validateTalkModeParams, y as validateConfigApplyParams, yt as validateSkillsUpdateParams, zt as listDevicePairing } from "./client-
|
|
24
|
-
import { l as authorizeOperatorScopesForMethod, s as ADMIN_SCOPE$2, u as isNodeRoleMethod } from "./call-
|
|
25
|
-
import { c as writeJsonAtomic, o as createAsyncLock, s as readJsonFile } from "./pairing-token-
|
|
20
|
+
import { n as createBrowserRouteDispatcher } from "./with-timeout-Cm5EhxG_.js";
|
|
21
|
+
import { C as getGlobalHookRunner, o as normalizeReplyPayloadsForDelivery, t as deliverOutboundPayloads } from "./deliver-BYdNAEqj.js";
|
|
22
|
+
import { a as resolveAgentIdentity, t as createReplyPrefixOptions } from "./reply-prefix-BLOOs1aW.js";
|
|
23
|
+
import { $ as validateNodePairRejectParams, A as validateCronStatusParams, B as validateExecApprovalsGetParams, Bt as rejectDevicePairing, C as validateConfigSetParams, Ct as validateWakeParams, D as validateCronRemoveParams, Dt as validateWizardNextParams, E as validateCronListParams, Et as validateWizardCancelParams, F as validateDevicePairRemoveParams, G as validateModelsListParams, Gt as summarizeDeviceTokens, H as validateExecApprovalsNodeSetParams, I as validateDeviceTokenRevokeParams, It as approveDevicePairing, J as validateNodeInvokeParams, K as validateNodeDescribeParams, L as validateDeviceTokenRotateParams, M as validateDevicePairApproveParams, Mt as errorShape, N as validateDevicePairListParams, O as validateCronRunParams, Ot as validateWizardStartParams, P as validateDevicePairRejectParams, Pt as parseSessionLabel, Q as validateNodePairListParams, S as validateConfigSchemaParams, St as validateUpdateRunParams, T as validateCronAddParams, Tt as validateWebLoginWaitParams, U as validateExecApprovalsSetParams, Ut as revokeDeviceToken, V as validateExecApprovalsNodeGetParams, Vt as removePairedDevice, W as validateLogsTailParams, Wt as rotateDeviceToken, X as validateNodeListParams, Y as validateNodeInvokeResultParams, Z as validateNodePairApproveParams, _ as validateChatInjectParams, _t as validateSkillsInstallParams, a as validateAgentWaitParams, b as validateConfigGetParams, bt as validateTalkConfigParams, c as validateAgentsFilesGetParams, ct as validateSessionsDeleteParams, d as validateAgentsListParams, dt as validateSessionsPreviewParams, et as validateNodePairRequestParams, f as validateAgentsUpdateParams, ft as validateSessionsResetParams, g as validateChatHistoryParams, gt as validateSkillsBinsParams, h as validateChatAbortParams, ht as validateSessionsUsageParams, i as validateAgentParams, it as validatePushTestParams, j as validateCronUpdateParams, jt as ErrorCodes, k as validateCronRunsParams, kt as validateWizardStatusParams, l as validateAgentsFilesListParams, lt as validateSessionsListParams, m as validateChannelsStatusParams, mt as validateSessionsRestoreParams, n as formatValidationErrors, nt as validateNodeRenameParams, o as validateAgentsCreateParams, ot as validateSendParams, p as validateChannelsLogoutParams, pt as validateSessionsResolveParams, q as validateNodeEventParams, r as validateAgentIdentityParams, rt as validatePollParams, s as validateAgentsDeleteParams, st as validateSessionsCompactParams, tt as validateNodePairVerifyParams, u as validateAgentsFilesSetParams, ut as validateSessionsPatchParams, v as validateChatSendParams, vt as validateSkillsStatusParams, wt as validateWebLoginStartParams, x as validateConfigPatchParams, xt as validateTalkModeParams, y as validateConfigApplyParams, yt as validateSkillsUpdateParams, zt as listDevicePairing } from "./client-Bj_vTpri.js";
|
|
24
|
+
import { l as authorizeOperatorScopesForMethod, s as ADMIN_SCOPE$2, u as isNodeRoleMethod } from "./call-tmHtVCkn.js";
|
|
25
|
+
import { c as writeJsonAtomic, o as createAsyncLock, s as readJsonFile } from "./pairing-token-AV-MMfVE.js";
|
|
26
26
|
import { n as normalizePollInput } from "./polls-DhH5YkzN.js";
|
|
27
27
|
import { t as getChannelActivity } from "./channel-activity-BOiuJS3t.js";
|
|
28
|
-
import { _ as requestNodePairing, g as renamePairedNode, h as rejectNodePairing, m as listNodePairing, o as getRemoteSkillEligibility, p as approveNodePairing, y as verifyNodeToken } from "./skill-commands-
|
|
29
|
-
import { t as listAgentWorkspaceDirs } from "./workspace-dirs-
|
|
28
|
+
import { _ as requestNodePairing, g as renamePairedNode, h as rejectNodePairing, m as listNodePairing, o as getRemoteSkillEligibility, p as approveNodePairing, y as verifyNodeToken } from "./skill-commands-ZXbEITKi.js";
|
|
29
|
+
import { t as listAgentWorkspaceDirs } from "./workspace-dirs-DKu48umx.js";
|
|
30
30
|
import { i as loadSessionUsageTimeSeries, n as loadCostUsageSummary, r as loadSessionCostSummary, t as discoverAllSessions } from "./session-cost-usage-BXAI7CNH.js";
|
|
31
|
-
import { w as resolveAssistantAvatarUrl } from "./onboard-helpers-
|
|
31
|
+
import { w as resolveAssistantAvatarUrl } from "./onboard-helpers-CdPNw25E.js";
|
|
32
32
|
import { a as mergeExecApprovalsSocketDefaults, c as readExecApprovalsSnapshot, p as saveExecApprovals, r as ensureExecApprovals, s as normalizeExecApprovals } from "./exec-approvals-DXM2pQYL.js";
|
|
33
|
-
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-
|
|
33
|
+
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-BBnhN7aZ.js";
|
|
34
34
|
import { i as parseAbsoluteTimeMs } from "./stagger-CvFURHzt.js";
|
|
35
35
|
import { r as getLastHeartbeatEvent } from "./heartbeat-visibility-ChEo5Zvk.js";
|
|
36
36
|
import { t as buildChannelUiCatalog } from "./catalog-NQ4pj9RI.js";
|
|
37
|
-
import { t as buildWorkspaceSkillStatus } from "./skills-status-
|
|
37
|
+
import { t as buildWorkspaceSkillStatus } from "./skills-status-Cjsh8we0.js";
|
|
38
38
|
import { t as WizardCancelledError } from "./prompts-CfOu9uZi.js";
|
|
39
39
|
import { t as resolveChannelDefaultAccountId } from "./helpers-DnjQ73f_.js";
|
|
40
40
|
import { t as buildChannelAccountSnapshot } from "./status-klsFDD3M.js";
|
|
41
|
-
import { o as isNodeCommandAllowed, s as resolveNodeCommandAllowlist } from "./audit-
|
|
42
|
-
import { n as getStatusSummary } from "./status-
|
|
43
|
-
import { s as setHeartbeatsEnabled } from "./health-
|
|
44
|
-
import { m as normalizeUpdateChannel } from "./update-check-
|
|
45
|
-
import { a as sendApnsAlert, c as parseMessageWithAttachments, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration } from "./push-apns-
|
|
46
|
-
import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-
|
|
41
|
+
import { o as isNodeCommandAllowed, s as resolveNodeCommandAllowlist } from "./audit-Djfdh06o.js";
|
|
42
|
+
import { n as getStatusSummary } from "./status-nzJEZmNT.js";
|
|
43
|
+
import { s as setHeartbeatsEnabled } from "./health-o847FIt1.js";
|
|
44
|
+
import { m as normalizeUpdateChannel } from "./update-check-DCo5RtKp.js";
|
|
45
|
+
import { a as sendApnsAlert, c as parseMessageWithAttachments, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration } from "./push-apns-DqFdzIkc.js";
|
|
46
|
+
import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-Dib8Uo2P.js";
|
|
47
47
|
import { t as resolveSystemRunCommand } from "./system-run-command-B_qw8CXP.js";
|
|
48
|
-
import { t as installSkill } from "./skills-install-
|
|
49
|
-
import { t as runGatewayUpdate } from "./update-runner-
|
|
50
|
-
import * as fs$
|
|
48
|
+
import { t as installSkill } from "./skills-install-HGYidhrv.js";
|
|
49
|
+
import { t as runGatewayUpdate } from "./update-runner-AsKAxe31.js";
|
|
50
|
+
import * as fs$1 from "node:fs";
|
|
51
51
|
import fs from "node:fs";
|
|
52
52
|
import * as os$1 from "node:os";
|
|
53
53
|
import os from "node:os";
|
|
54
54
|
import path from "node:path";
|
|
55
|
-
import
|
|
55
|
+
import fsPromises from "node:fs/promises";
|
|
56
56
|
import { spawnSync } from "node:child_process";
|
|
57
57
|
import crypto, { randomUUID } from "node:crypto";
|
|
58
58
|
import { z } from "zod";
|
|
@@ -414,20 +414,20 @@ function resolveCronRunLogPath(params) {
|
|
|
414
414
|
}
|
|
415
415
|
const writesByPath = /* @__PURE__ */ new Map();
|
|
416
416
|
async function pruneIfNeeded(filePath, opts) {
|
|
417
|
-
const stat = await
|
|
417
|
+
const stat = await fsPromises.stat(filePath).catch(() => null);
|
|
418
418
|
if (!stat || stat.size <= opts.maxBytes) return;
|
|
419
|
-
const lines = (await
|
|
419
|
+
const lines = (await fsPromises.readFile(filePath, "utf-8").catch(() => "")).split("\n").map((l) => l.trim()).filter(Boolean);
|
|
420
420
|
const kept = lines.slice(Math.max(0, lines.length - opts.keepLines));
|
|
421
421
|
const { randomBytes } = await import("node:crypto");
|
|
422
422
|
const tmp = `${filePath}.${process.pid}.${randomBytes(8).toString("hex")}.tmp`;
|
|
423
|
-
await
|
|
424
|
-
await
|
|
423
|
+
await fsPromises.writeFile(tmp, `${kept.join("\n")}\n`, "utf-8");
|
|
424
|
+
await fsPromises.rename(tmp, filePath);
|
|
425
425
|
}
|
|
426
426
|
async function appendCronRunLog(filePath, entry, opts) {
|
|
427
427
|
const resolved = path.resolve(filePath);
|
|
428
428
|
const next = (writesByPath.get(resolved) ?? Promise.resolve()).catch(() => void 0).then(async () => {
|
|
429
|
-
await
|
|
430
|
-
await
|
|
429
|
+
await fsPromises.mkdir(path.dirname(resolved), { recursive: true });
|
|
430
|
+
await fsPromises.appendFile(resolved, `${JSON.stringify(entry)}\n`, "utf-8");
|
|
431
431
|
await pruneIfNeeded(resolved, {
|
|
432
432
|
maxBytes: opts?.maxBytes ?? 2e6,
|
|
433
433
|
keepLines: opts?.keepLines ?? 2e3
|
|
@@ -439,7 +439,7 @@ async function appendCronRunLog(filePath, entry, opts) {
|
|
|
439
439
|
async function readCronRunLogEntries(filePath, opts) {
|
|
440
440
|
const limit = Math.max(1, Math.min(5e3, Math.floor(opts?.limit ?? 200)));
|
|
441
441
|
const jobId = opts?.jobId?.trim() || void 0;
|
|
442
|
-
const raw = await
|
|
442
|
+
const raw = await fsPromises.readFile(path.resolve(filePath), "utf-8").catch(() => "");
|
|
443
443
|
if (!raw.trim()) return [];
|
|
444
444
|
const parsed = [];
|
|
445
445
|
const lines = raw.split("\n");
|
|
@@ -1611,6 +1611,33 @@ async function emitSessionUnboundLifecycleEvent(params) {
|
|
|
1611
1611
|
outcome: params.reason === "session-reset" ? "reset" : "deleted"
|
|
1612
1612
|
}, { childSessionKey: params.targetSessionKey });
|
|
1613
1613
|
}
|
|
1614
|
+
/**
|
|
1615
|
+
* Per-session in-flight lock for sessions.restore. Prevents two concurrent
|
|
1616
|
+
* restore calls for the same session from corrupting each other (e.g. one
|
|
1617
|
+
* archives the active transcript while the other is mid-rename).
|
|
1618
|
+
*/
|
|
1619
|
+
const restoreInFlight = /* @__PURE__ */ new Set();
|
|
1620
|
+
/**
|
|
1621
|
+
* Best-effort inverse of `archiveFileOnDisk(file, "reset")` — renames
|
|
1622
|
+
* `<file>.reset.<timestamp>` back to `<file>`. Used by the sessions.restore
|
|
1623
|
+
* rollback path when a later step fails after the current transcript was
|
|
1624
|
+
* archived. Swallows all errors and logs; the goal is to recover as much
|
|
1625
|
+
* state as possible, not to guarantee success.
|
|
1626
|
+
*/
|
|
1627
|
+
function renameArchivedBackToOriginal(archivedPath, reason) {
|
|
1628
|
+
const marker = `.${reason}.`;
|
|
1629
|
+
const idx = archivedPath.lastIndexOf(marker);
|
|
1630
|
+
if (idx <= 0) {
|
|
1631
|
+
console.warn(`[sessions.restore] cannot parse archived path for rollback: ${archivedPath}`);
|
|
1632
|
+
return;
|
|
1633
|
+
}
|
|
1634
|
+
const originalPath = archivedPath.slice(0, idx);
|
|
1635
|
+
try {
|
|
1636
|
+
fs.renameSync(archivedPath, originalPath);
|
|
1637
|
+
} catch (err) {
|
|
1638
|
+
console.warn(`[sessions.restore] rollback failed: could not rename ${archivedPath} back to ${originalPath}: ${String(err)}`);
|
|
1639
|
+
}
|
|
1640
|
+
}
|
|
1614
1641
|
async function ensureSessionRuntimeCleanup(params) {
|
|
1615
1642
|
const queueKeys = new Set(params.target.storeKeys);
|
|
1616
1643
|
queueKeys.add(params.target.canonicalKey);
|
|
@@ -1859,69 +1886,108 @@ const sessionsHandlers = {
|
|
|
1859
1886
|
respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, "Target file is not a valid session transcript."));
|
|
1860
1887
|
return;
|
|
1861
1888
|
}
|
|
1862
|
-
const
|
|
1863
|
-
|
|
1864
|
-
|
|
1865
|
-
cfg,
|
|
1866
|
-
key,
|
|
1867
|
-
target,
|
|
1868
|
-
sessionId
|
|
1869
|
-
});
|
|
1870
|
-
if (cleanupError) {
|
|
1871
|
-
respond(false, void 0, cleanupError);
|
|
1889
|
+
const lockKey = target.canonicalKey ?? key;
|
|
1890
|
+
if (restoreInFlight.has(lockKey)) {
|
|
1891
|
+
respond(false, void 0, errorShape(ErrorCodes.UNAVAILABLE, `Restore already in progress for session ${lockKey}; try again in a moment.`));
|
|
1872
1892
|
return;
|
|
1873
1893
|
}
|
|
1874
|
-
|
|
1875
|
-
const
|
|
1876
|
-
|
|
1877
|
-
|
|
1878
|
-
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
reason: "reset"
|
|
1882
|
-
});
|
|
1883
|
-
const restoredFileName = `${restoredSessionId}.jsonl`;
|
|
1884
|
-
const restoredPath = path.join(sessionsDir, restoredFileName);
|
|
1885
|
-
if (targetPath !== restoredPath) fs.renameSync(targetPath, restoredPath);
|
|
1886
|
-
const next = await updateSessionStore(storePath, (store) => {
|
|
1887
|
-
const { primaryKey } = migrateAndPruneSessionStoreKey({
|
|
1894
|
+
restoreInFlight.add(lockKey);
|
|
1895
|
+
const rollback = [];
|
|
1896
|
+
let responded = false;
|
|
1897
|
+
try {
|
|
1898
|
+
const { entry } = loadSessionEntry(key);
|
|
1899
|
+
const sessionId = entry?.sessionId;
|
|
1900
|
+
const cleanupError = await ensureSessionRuntimeCleanup({
|
|
1888
1901
|
cfg,
|
|
1889
1902
|
key,
|
|
1890
|
-
|
|
1903
|
+
target,
|
|
1904
|
+
sessionId
|
|
1891
1905
|
});
|
|
1892
|
-
|
|
1893
|
-
|
|
1906
|
+
if (cleanupError) {
|
|
1907
|
+
respond(false, void 0, cleanupError);
|
|
1908
|
+
responded = true;
|
|
1909
|
+
return;
|
|
1910
|
+
}
|
|
1911
|
+
const archivedPaths = archiveSessionTranscriptsForSession({
|
|
1912
|
+
sessionId: entry?.sessionId,
|
|
1913
|
+
storePath,
|
|
1914
|
+
sessionFile: entry?.sessionFile,
|
|
1915
|
+
agentId: target.agentId,
|
|
1916
|
+
reason: "reset"
|
|
1917
|
+
});
|
|
1918
|
+
for (const archived of archivedPaths) rollback.push({
|
|
1919
|
+
desc: `un-archive ${archived}`,
|
|
1920
|
+
fn: () => renameArchivedBackToOriginal(archived, "reset")
|
|
1921
|
+
});
|
|
1922
|
+
const restoredFileName = `${restoredSessionId}.jsonl`;
|
|
1923
|
+
const restoredPath = path.join(sessionsDir, restoredFileName);
|
|
1924
|
+
if (targetPath !== restoredPath) {
|
|
1925
|
+
fs.renameSync(targetPath, restoredPath);
|
|
1926
|
+
rollback.push({
|
|
1927
|
+
desc: `re-archive ${restoredPath} to ${targetPath}`,
|
|
1928
|
+
fn: () => {
|
|
1929
|
+
try {
|
|
1930
|
+
fs.renameSync(restoredPath, targetPath);
|
|
1931
|
+
} catch (err) {
|
|
1932
|
+
console.warn(`[sessions.restore] rollback failed: could not rename ${restoredPath} back to ${targetPath}: ${String(err)}`);
|
|
1933
|
+
}
|
|
1934
|
+
}
|
|
1935
|
+
});
|
|
1936
|
+
}
|
|
1937
|
+
const next = await updateSessionStore(storePath, (store) => {
|
|
1938
|
+
const { primaryKey } = migrateAndPruneSessionStoreKey({
|
|
1939
|
+
cfg,
|
|
1940
|
+
key,
|
|
1941
|
+
store
|
|
1942
|
+
});
|
|
1943
|
+
const existingEntry = store[primaryKey];
|
|
1944
|
+
const nextEntry = {
|
|
1945
|
+
sessionId: restoredSessionId,
|
|
1946
|
+
sessionFile: restoredPath,
|
|
1947
|
+
updatedAt: Date.now(),
|
|
1948
|
+
systemSent: false,
|
|
1949
|
+
abortedLastRun: false,
|
|
1950
|
+
thinkingLevel: existingEntry?.thinkingLevel,
|
|
1951
|
+
verboseLevel: existingEntry?.verboseLevel,
|
|
1952
|
+
reasoningLevel: existingEntry?.reasoningLevel,
|
|
1953
|
+
responseUsage: existingEntry?.responseUsage,
|
|
1954
|
+
model: existingEntry?.model,
|
|
1955
|
+
contextTokens: existingEntry?.contextTokens,
|
|
1956
|
+
sendPolicy: existingEntry?.sendPolicy,
|
|
1957
|
+
label: existingEntry?.label,
|
|
1958
|
+
origin: snapshotSessionOrigin(existingEntry),
|
|
1959
|
+
lastChannel: existingEntry?.lastChannel,
|
|
1960
|
+
lastTo: existingEntry?.lastTo,
|
|
1961
|
+
skillsSnapshot: existingEntry?.skillsSnapshot,
|
|
1962
|
+
inputTokens: 0,
|
|
1963
|
+
outputTokens: 0,
|
|
1964
|
+
totalTokens: 0,
|
|
1965
|
+
totalTokensFresh: true
|
|
1966
|
+
};
|
|
1967
|
+
store[primaryKey] = nextEntry;
|
|
1968
|
+
return nextEntry;
|
|
1969
|
+
});
|
|
1970
|
+
rollback.length = 0;
|
|
1971
|
+
respond(true, {
|
|
1972
|
+
ok: true,
|
|
1973
|
+
key: target.canonicalKey,
|
|
1894
1974
|
sessionId: restoredSessionId,
|
|
1895
|
-
|
|
1896
|
-
|
|
1897
|
-
|
|
1898
|
-
|
|
1899
|
-
|
|
1900
|
-
|
|
1901
|
-
|
|
1902
|
-
|
|
1903
|
-
|
|
1904
|
-
|
|
1905
|
-
|
|
1906
|
-
|
|
1907
|
-
|
|
1908
|
-
|
|
1909
|
-
|
|
1910
|
-
|
|
1911
|
-
inputTokens: 0,
|
|
1912
|
-
outputTokens: 0,
|
|
1913
|
-
totalTokens: 0,
|
|
1914
|
-
totalTokensFresh: true
|
|
1915
|
-
};
|
|
1916
|
-
store[primaryKey] = nextEntry;
|
|
1917
|
-
return nextEntry;
|
|
1918
|
-
});
|
|
1919
|
-
respond(true, {
|
|
1920
|
-
ok: true,
|
|
1921
|
-
key: target.canonicalKey,
|
|
1922
|
-
sessionId: restoredSessionId,
|
|
1923
|
-
entry: next
|
|
1924
|
-
}, void 0);
|
|
1975
|
+
entry: next
|
|
1976
|
+
}, void 0);
|
|
1977
|
+
responded = true;
|
|
1978
|
+
} catch (err) {
|
|
1979
|
+
console.warn(`[sessions.restore] failed for ${lockKey}; running ${rollback.length} rollback step(s): ${String(err)}`);
|
|
1980
|
+
for (let i = rollback.length - 1; i >= 0; i--) {
|
|
1981
|
+
const step = rollback[i];
|
|
1982
|
+
if (step) step.fn();
|
|
1983
|
+
}
|
|
1984
|
+
if (!responded) {
|
|
1985
|
+
respond(false, void 0, errorShape(ErrorCodes.UNAVAILABLE, `Restore failed: ${err instanceof Error ? err.message : String(err)}`));
|
|
1986
|
+
responded = true;
|
|
1987
|
+
}
|
|
1988
|
+
} finally {
|
|
1989
|
+
restoreInFlight.delete(lockKey);
|
|
1990
|
+
}
|
|
1925
1991
|
},
|
|
1926
1992
|
"sessions.delete": async ({ params, respond, client, isWebchatConnect }) => {
|
|
1927
1993
|
if (!assertValidParams(params, validateSessionsDeleteParams, "sessions.delete", respond)) return;
|
|
@@ -2514,7 +2580,7 @@ function resolveAgentWorkspaceFileOrRespondError(params, respond) {
|
|
|
2514
2580
|
}
|
|
2515
2581
|
async function statFile(filePath) {
|
|
2516
2582
|
try {
|
|
2517
|
-
const stat = await
|
|
2583
|
+
const stat = await fsPromises.stat(filePath);
|
|
2518
2584
|
if (!stat.isFile()) return null;
|
|
2519
2585
|
return {
|
|
2520
2586
|
size: stat.size,
|
|
@@ -2584,7 +2650,7 @@ function resolveOptionalStringParam(value) {
|
|
|
2584
2650
|
async function moveToTrashBestEffort(pathname) {
|
|
2585
2651
|
if (!pathname) return;
|
|
2586
2652
|
try {
|
|
2587
|
-
await
|
|
2653
|
+
await fsPromises.access(pathname);
|
|
2588
2654
|
} catch {
|
|
2589
2655
|
return;
|
|
2590
2656
|
}
|
|
@@ -2631,7 +2697,7 @@ const agentsHandlers = {
|
|
|
2631
2697
|
dir: workspaceDir,
|
|
2632
2698
|
ensureBootstrapFiles: !Boolean(nextConfig.agents?.defaults?.skipBootstrap)
|
|
2633
2699
|
});
|
|
2634
|
-
await
|
|
2700
|
+
await fsPromises.mkdir(resolveSessionTranscriptsDirForAgent(agentId), { recursive: true });
|
|
2635
2701
|
await writeConfigFile(nextConfig);
|
|
2636
2702
|
const safeName = sanitizeIdentityLine(rawName);
|
|
2637
2703
|
const emoji = resolveOptionalStringParam(params.emoji);
|
|
@@ -2644,7 +2710,7 @@ const agentsHandlers = {
|
|
|
2644
2710
|
...avatar ? [`- Avatar: ${sanitizeIdentityLine(avatar)}`] : [],
|
|
2645
2711
|
""
|
|
2646
2712
|
];
|
|
2647
|
-
await
|
|
2713
|
+
await fsPromises.appendFile(identityPath, lines.join("\n"), "utf-8");
|
|
2648
2714
|
respond(true, {
|
|
2649
2715
|
ok: true,
|
|
2650
2716
|
agentId,
|
|
@@ -2679,9 +2745,9 @@ const agentsHandlers = {
|
|
|
2679
2745
|
});
|
|
2680
2746
|
if (avatar) {
|
|
2681
2747
|
const workspace = workspaceDir ?? resolveAgentWorkspaceDir(nextConfig, agentId);
|
|
2682
|
-
await
|
|
2748
|
+
await fsPromises.mkdir(workspace, { recursive: true });
|
|
2683
2749
|
const identityPath = path.join(workspace, DEFAULT_IDENTITY_FILENAME);
|
|
2684
|
-
await
|
|
2750
|
+
await fsPromises.appendFile(identityPath, `\n- Avatar: ${sanitizeIdentityLine(avatar)}\n`, "utf-8");
|
|
2685
2751
|
}
|
|
2686
2752
|
respond(true, {
|
|
2687
2753
|
ok: true,
|
|
@@ -2764,7 +2830,7 @@ const agentsHandlers = {
|
|
|
2764
2830
|
}, void 0);
|
|
2765
2831
|
return;
|
|
2766
2832
|
}
|
|
2767
|
-
const content = await
|
|
2833
|
+
const content = await fsPromises.readFile(filePath, "utf-8");
|
|
2768
2834
|
respond(true, {
|
|
2769
2835
|
agentId,
|
|
2770
2836
|
workspace: workspaceDir,
|
|
@@ -2786,10 +2852,10 @@ const agentsHandlers = {
|
|
|
2786
2852
|
const resolved = resolveAgentWorkspaceFileOrRespondError(params, respond);
|
|
2787
2853
|
if (!resolved) return;
|
|
2788
2854
|
const { agentId, workspaceDir, name } = resolved;
|
|
2789
|
-
await
|
|
2855
|
+
await fsPromises.mkdir(workspaceDir, { recursive: true });
|
|
2790
2856
|
const filePath = path.join(workspaceDir, name);
|
|
2791
2857
|
const content = String(params.content ?? "");
|
|
2792
|
-
await
|
|
2858
|
+
await fsPromises.writeFile(filePath, content, "utf-8");
|
|
2793
2859
|
const meta = await statFile(filePath);
|
|
2794
2860
|
respond(true, {
|
|
2795
2861
|
ok: true,
|
|
@@ -6090,14 +6156,14 @@ function isRollingLogFile(file) {
|
|
|
6090
6156
|
return ROLLING_LOG_RE.test(path.basename(file));
|
|
6091
6157
|
}
|
|
6092
6158
|
async function resolveLogFile(file) {
|
|
6093
|
-
if (await
|
|
6159
|
+
if (await fsPromises.stat(file).catch(() => null)) return file;
|
|
6094
6160
|
if (!isRollingLogFile(file)) return file;
|
|
6095
6161
|
const dir = path.dirname(file);
|
|
6096
|
-
const entries = await
|
|
6162
|
+
const entries = await fsPromises.readdir(dir, { withFileTypes: true }).catch(() => null);
|
|
6097
6163
|
if (!entries) return file;
|
|
6098
6164
|
return (await Promise.all(entries.filter((entry) => entry.isFile() && ROLLING_LOG_RE.test(entry.name)).map(async (entry) => {
|
|
6099
6165
|
const fullPath = path.join(dir, entry.name);
|
|
6100
|
-
const fileStat = await
|
|
6166
|
+
const fileStat = await fsPromises.stat(fullPath).catch(() => null);
|
|
6101
6167
|
return fileStat ? {
|
|
6102
6168
|
path: fullPath,
|
|
6103
6169
|
mtimeMs: fileStat.mtimeMs
|
|
@@ -6105,7 +6171,7 @@ async function resolveLogFile(file) {
|
|
|
6105
6171
|
}))).filter((entry) => Boolean(entry)).toSorted((a, b) => b.mtimeMs - a.mtimeMs)[0]?.path ?? file;
|
|
6106
6172
|
}
|
|
6107
6173
|
async function readLogSlice(params) {
|
|
6108
|
-
const stat = await
|
|
6174
|
+
const stat = await fsPromises.stat(params.file).catch(() => null);
|
|
6109
6175
|
if (!stat) return {
|
|
6110
6176
|
cursor: 0,
|
|
6111
6177
|
size: 0,
|
|
@@ -6143,7 +6209,7 @@ async function readLogSlice(params) {
|
|
|
6143
6209
|
truncated,
|
|
6144
6210
|
reset
|
|
6145
6211
|
};
|
|
6146
|
-
const handle = await
|
|
6212
|
+
const handle = await fsPromises.open(params.file, "r");
|
|
6147
6213
|
try {
|
|
6148
6214
|
let prefix = "";
|
|
6149
6215
|
if (start > 0) {
|
|
@@ -6944,7 +7010,7 @@ const nodeHandlers = {
|
|
|
6944
7010
|
const p = params;
|
|
6945
7011
|
const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
|
|
6946
7012
|
await respondUnavailableOnThrow(respond, async () => {
|
|
6947
|
-
const { handleNodeEvent } = await import("./server-node-events-
|
|
7013
|
+
const { handleNodeEvent } = await import("./server-node-events-BACmfyjo.js");
|
|
6948
7014
|
const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
|
|
6949
7015
|
await handleNodeEvent({
|
|
6950
7016
|
deps: context.deps,
|
|
@@ -7463,7 +7529,7 @@ function broadcastPresenceSnapshot(params) {
|
|
|
7463
7529
|
let _prevCpu = null;
|
|
7464
7530
|
function getCpuPercent() {
|
|
7465
7531
|
try {
|
|
7466
|
-
const parts = fs$
|
|
7532
|
+
const parts = fs$1.readFileSync("/proc/stat", "utf8").split("\n")[0].trim().split(/\s+/).slice(1).map(Number);
|
|
7467
7533
|
const [user, nice, sys, idle, iowait] = parts;
|
|
7468
7534
|
const total = parts.reduce((a, b) => a + b, 0);
|
|
7469
7535
|
const active = total - idle - (iowait || 0);
|
|
@@ -7487,7 +7553,7 @@ function getCpuPercent() {
|
|
|
7487
7553
|
}
|
|
7488
7554
|
function getMemInfo() {
|
|
7489
7555
|
try {
|
|
7490
|
-
const text = fs$
|
|
7556
|
+
const text = fs$1.readFileSync("/proc/meminfo", "utf8");
|
|
7491
7557
|
const get = (key) => parseInt(text.match(new RegExp(`${key}:\\s+(\\d+)`))?.[1] ?? "0", 10) * 1024;
|
|
7492
7558
|
const total = get("MemTotal");
|
|
7493
7559
|
const used = total - get("MemAvailable");
|
|
@@ -7506,7 +7572,7 @@ function getMemInfo() {
|
|
|
7506
7572
|
}
|
|
7507
7573
|
function getDiskInfo() {
|
|
7508
7574
|
try {
|
|
7509
|
-
const stats = fs$
|
|
7575
|
+
const stats = fs$1.statfsSync("/");
|
|
7510
7576
|
const total = stats.blocks * stats.bsize;
|
|
7511
7577
|
const used = total - stats.bfree * stats.bsize;
|
|
7512
7578
|
return {
|