@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,11 +1,11 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
2
|
import { T as toWhatsappJid, V as getChildLogger, l as escapeRegExp } from "./utils-B-0b9bGM.js";
|
|
3
3
|
import { t as createSubsystemLogger } from "./subsystem-D9vIQve0.js";
|
|
4
|
-
import { i as loadConfig } from "./config-
|
|
5
|
-
import { n as resolveMarkdownTableMode } from "./markdown-tables-
|
|
6
|
-
import { a as loadWebMedia } from "./ir-
|
|
4
|
+
import { i as loadConfig } from "./config-tNauHpdq.js";
|
|
5
|
+
import { n as resolveMarkdownTableMode } from "./markdown-tables-ZwP14ydw.js";
|
|
6
|
+
import { a as loadWebMedia } from "./ir-Dt4hOzxG.js";
|
|
7
7
|
import { n as normalizePollInput } from "./polls-DhH5YkzN.js";
|
|
8
|
-
import { t as convertMarkdownTables } from "./tables-
|
|
8
|
+
import { t as convertMarkdownTables } from "./tables-C38rzF6E.js";
|
|
9
9
|
import { n as requireActiveWebListener } from "./active-listener-SKkHHqlN.js";
|
|
10
10
|
import { randomUUID } from "node:crypto";
|
|
11
11
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { r as saveMediaBuffer } from "./store-
|
|
2
|
-
import { a as loadWebMedia } from "./ir-
|
|
1
|
+
import { r as saveMediaBuffer } from "./store-DvtcmOKj.js";
|
|
2
|
+
import { a as loadWebMedia } from "./ir-Dt4hOzxG.js";
|
|
3
3
|
|
|
4
4
|
//#region src/media/outbound-attachment.ts
|
|
5
5
|
async function resolveOutboundAttachmentFromUrl(mediaUrl, maxBytes, options) {
|
|
@@ -3,21 +3,21 @@ import { B as theme } from "./utils-B-0b9bGM.js";
|
|
|
3
3
|
import "./registry-Cja8eT7G.js";
|
|
4
4
|
import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
|
|
5
5
|
import "./exec-CWkblSrI.js";
|
|
6
|
-
import "./agent-scope-
|
|
7
|
-
import "./model-selection-
|
|
6
|
+
import "./agent-scope-BRwEc2pG.js";
|
|
7
|
+
import "./model-selection-X1oLh3CE.js";
|
|
8
8
|
import "./github-copilot-token-DAu1a6BX.js";
|
|
9
9
|
import { t as formatCliCommand } from "./command-format-COaS-S7B.js";
|
|
10
10
|
import "./boolean-BsqeuxE6.js";
|
|
11
11
|
import "./env-DPCHYPeH.js";
|
|
12
|
-
import { i as loadConfig } from "./config-
|
|
12
|
+
import { i as loadConfig } from "./config-tNauHpdq.js";
|
|
13
13
|
import "./manifest-registry-C4BxOMWX.js";
|
|
14
|
-
import { r as normalizeChannelId } from "./plugins-
|
|
15
|
-
import "./accounts-
|
|
16
|
-
import "./bindings-
|
|
14
|
+
import { r as normalizeChannelId } from "./plugins-BAyxWQSz.js";
|
|
15
|
+
import "./accounts-Cd816n6l.js";
|
|
16
|
+
import "./bindings-ChzePa8q.js";
|
|
17
17
|
import "./logging-w5jq5901.js";
|
|
18
|
-
import { l as listPairingChannels, n as approveChannelPairingCode, r as listChannelPairingRequests, u as notifyPairingApproved } from "./pairing-store-
|
|
18
|
+
import { l as listPairingChannels, n as approveChannelPairingCode, r as listChannelPairingRequests, u as notifyPairingApproved } from "./pairing-store-B8ktu-6j.js";
|
|
19
19
|
import { t as formatDocsLink } from "./links-3i1eUga4.js";
|
|
20
|
-
import { t as resolvePairingIdLabel } from "./pairing-labels-
|
|
20
|
+
import { t as resolvePairingIdLabel } from "./pairing-labels-Dxb898X5.js";
|
|
21
21
|
import { t as renderTable } from "./table-BKlH0YlA.js";
|
|
22
22
|
|
|
23
23
|
//#region src/cli/pairing-cli.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { g as resolveStateDir, m as resolveOAuthDir, y as resolveRequiredHomeDir } from "./paths-Cqn-zk3M.js";
|
|
2
2
|
import { b as safeParseJson } from "./utils-B-0b9bGM.js";
|
|
3
|
-
import { It as withFileLock$1 } from "./model-selection-
|
|
4
|
-
import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-
|
|
3
|
+
import { It as withFileLock$1 } from "./model-selection-X1oLh3CE.js";
|
|
4
|
+
import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-BAyxWQSz.js";
|
|
5
5
|
import fs from "node:fs";
|
|
6
6
|
import os from "node:os";
|
|
7
7
|
import path from "node:path";
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { g as resolveStateDir } from "./paths-Cqn-zk3M.js";
|
|
2
2
|
import { t as safeEqualSecret } from "./secret-equal-D7A3Bol7.js";
|
|
3
3
|
import path from "node:path";
|
|
4
|
-
import
|
|
4
|
+
import fsPromises from "node:fs/promises";
|
|
5
5
|
import { randomBytes, randomUUID } from "node:crypto";
|
|
6
6
|
|
|
7
7
|
//#region src/infra/json-files.ts
|
|
8
8
|
async function readJsonFile(filePath) {
|
|
9
9
|
try {
|
|
10
|
-
const raw = await
|
|
10
|
+
const raw = await fsPromises.readFile(filePath, "utf8");
|
|
11
11
|
return JSON.parse(raw);
|
|
12
12
|
} catch {
|
|
13
13
|
return null;
|
|
@@ -16,15 +16,15 @@ async function readJsonFile(filePath) {
|
|
|
16
16
|
async function writeJsonAtomic(filePath, value, options) {
|
|
17
17
|
const mode = options?.mode ?? 384;
|
|
18
18
|
const dir = path.dirname(filePath);
|
|
19
|
-
await
|
|
19
|
+
await fsPromises.mkdir(dir, { recursive: true });
|
|
20
20
|
const tmp = `${filePath}.${randomUUID()}.tmp`;
|
|
21
|
-
await
|
|
21
|
+
await fsPromises.writeFile(tmp, JSON.stringify(value, null, 2), "utf8");
|
|
22
22
|
try {
|
|
23
|
-
await
|
|
23
|
+
await fsPromises.chmod(tmp, mode);
|
|
24
24
|
} catch {}
|
|
25
|
-
await
|
|
25
|
+
await fsPromises.rename(tmp, filePath);
|
|
26
26
|
try {
|
|
27
|
-
await
|
|
27
|
+
await fsPromises.chmod(filePath, mode);
|
|
28
28
|
} catch {}
|
|
29
29
|
}
|
|
30
30
|
function createAsyncLock() {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { X as resolvePreferredSymiTmpDir } from "./utils-B-0b9bGM.js";
|
|
2
|
-
import { n as openFileWithinRoot, t as SafeOpenError } from "./fs-safe-
|
|
2
|
+
import { n as openFileWithinRoot, t as SafeOpenError } from "./fs-safe-CTDvb1DF.js";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
|
|
5
5
|
//#region src/browser/paths.ts
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
|
-
import { At as ensureAuthProfileStore, l as normalizeProviderId, zt as normalizeOptionalSecretInput } from "./model-selection-
|
|
2
|
+
import { At as ensureAuthProfileStore, l as normalizeProviderId, zt as normalizeOptionalSecretInput } from "./model-selection-X1oLh3CE.js";
|
|
3
3
|
import path from "node:path";
|
|
4
|
-
import
|
|
4
|
+
import fsPromises from "node:fs/promises";
|
|
5
5
|
|
|
6
6
|
//#region src/agents/pi-auth-json.ts
|
|
7
7
|
var pi_auth_json_exports = /* @__PURE__ */ __exportAll({ ensurePiAuthJsonFromAuthProfiles: () => ensurePiAuthJsonFromAuthProfiles });
|
|
8
8
|
async function readAuthJson(filePath) {
|
|
9
9
|
try {
|
|
10
|
-
const raw = await
|
|
10
|
+
const raw = await fsPromises.readFile(filePath, "utf8");
|
|
11
11
|
const parsed = JSON.parse(raw);
|
|
12
12
|
if (!parsed || typeof parsed !== "object") return {};
|
|
13
13
|
return parsed;
|
|
@@ -118,11 +118,11 @@ async function ensurePiAuthJsonFromAuthProfiles(agentDir, options) {
|
|
|
118
118
|
wrote: false,
|
|
119
119
|
authPath
|
|
120
120
|
};
|
|
121
|
-
await
|
|
121
|
+
await fsPromises.mkdir(agentDir, {
|
|
122
122
|
recursive: true,
|
|
123
123
|
mode: 448
|
|
124
124
|
});
|
|
125
|
-
await
|
|
125
|
+
await fsPromises.writeFile(authPath, `${JSON.stringify(existing, null, 2)}\n`, { mode: 384 });
|
|
126
126
|
return {
|
|
127
127
|
wrote: true,
|
|
128
128
|
authPath
|
|
@@ -45582,6 +45582,77 @@ function getHistoryLimitFromSessionKey(sessionKey, config) {
|
|
|
45582
45582
|
*/
|
|
45583
45583
|
const getDmHistoryLimitFromSessionKey = getHistoryLimitFromSessionKey;
|
|
45584
45584
|
|
|
45585
|
+
//#endregion
|
|
45586
|
+
//#region src/agents/pi-embedded-runner/long-task-prompt.ts
|
|
45587
|
+
const SCRIPT_REL_PATH = "skills/long-task/scripts/detach-task.sh";
|
|
45588
|
+
let cachedScriptPath;
|
|
45589
|
+
function isExecutable(candidatePath) {
|
|
45590
|
+
try {
|
|
45591
|
+
fs.accessSync(candidatePath, fs.constants.X_OK);
|
|
45592
|
+
return true;
|
|
45593
|
+
} catch {
|
|
45594
|
+
return false;
|
|
45595
|
+
}
|
|
45596
|
+
}
|
|
45597
|
+
/**
|
|
45598
|
+
* Ensure the script is present AND has the exec bit. npm usually preserves
|
|
45599
|
+
* mode 100755 on pack/install, but a subset of filesystems (FAT32, some
|
|
45600
|
+
* container mounts) silently drop it. If the bit is missing, we try to set
|
|
45601
|
+
* it; on failure we return null rather than emit a prompt that would break
|
|
45602
|
+
* when the model tries to exec the script.
|
|
45603
|
+
*/
|
|
45604
|
+
async function resolveDetachScriptPath(params) {
|
|
45605
|
+
if (cachedScriptPath !== void 0) return cachedScriptPath;
|
|
45606
|
+
const packageRoot = await resolveSymiPackageRoot({
|
|
45607
|
+
cwd: params.cwd,
|
|
45608
|
+
argv1: params.argv1,
|
|
45609
|
+
moduleUrl: params.moduleUrl
|
|
45610
|
+
});
|
|
45611
|
+
if (!packageRoot) {
|
|
45612
|
+
cachedScriptPath = null;
|
|
45613
|
+
return null;
|
|
45614
|
+
}
|
|
45615
|
+
const candidate = path.join(packageRoot, SCRIPT_REL_PATH);
|
|
45616
|
+
if (!fs.existsSync(candidate)) {
|
|
45617
|
+
cachedScriptPath = null;
|
|
45618
|
+
return null;
|
|
45619
|
+
}
|
|
45620
|
+
if (!isExecutable(candidate)) try {
|
|
45621
|
+
fs.chmodSync(candidate, 493);
|
|
45622
|
+
} catch {
|
|
45623
|
+
cachedScriptPath = null;
|
|
45624
|
+
return null;
|
|
45625
|
+
}
|
|
45626
|
+
cachedScriptPath = candidate;
|
|
45627
|
+
return cachedScriptPath;
|
|
45628
|
+
}
|
|
45629
|
+
async function buildLongTaskPromptSuffix(params) {
|
|
45630
|
+
const scriptPath = await resolveDetachScriptPath(params);
|
|
45631
|
+
if (!scriptPath) return "";
|
|
45632
|
+
return "\n\n" + [
|
|
45633
|
+
"LONG-RUNNING TASK PATTERN:",
|
|
45634
|
+
"- Applies ONLY when a command is expected to take longer than about 15 minutes (deep nmap scans of /24 or larger, full brute-force sweeps, long builds, exhaustive enumeration). For anything shorter, use the normal exec tool — detaching short tasks creates pointless cron noise.",
|
|
45635
|
+
"- Foreground-blocking the exec tool for the full duration will fail: the agent turn will hit its timeout and the process will be SIGTERMed mid-run. Detach instead.",
|
|
45636
|
+
`- Detach pattern: exec \`${scriptPath} <task-id> <workdir> <command...>\`.`,
|
|
45637
|
+
" • task-id: alphanumeric + dot/dash/underscore, 1–60 chars, must not start with '.' or '-'.",
|
|
45638
|
+
" • workdir: absolute path you own (e.g. the agent workspace).",
|
|
45639
|
+
" • Script spawns under setsid+nohup+disown, writes task-<id>.{pid,cmd,started,log,status} files.",
|
|
45640
|
+
"- Immediately after detaching, respond to the user with: task id, PID, log file path, your ETA estimate, and that a cron monitor has been scheduled.",
|
|
45641
|
+
"- Register a cron monitor using the `cron` tool with action=add. Required fields:",
|
|
45642
|
+
" • schedule: { kind: \"interval\", ms: 180000 } (every 3 minutes; minimum 60000)",
|
|
45643
|
+
" • payload: { kind: \"agent\", sessionTarget: \"isolated\", text: <job prompt> }",
|
|
45644
|
+
" The job prompt must literally contain the task-id, PID, log path, and status path so the future turn has enough context without re-deriving them.",
|
|
45645
|
+
"- Safe status read (inside the monitor turn):",
|
|
45646
|
+
" `status=$(cat \"<workdir>/task-<id>.status\" 2>/dev/null || echo missing)`",
|
|
45647
|
+
" Possible values: `running pid=<N> started=<ISO>`, `complete rc=<N> ended=<ISO>`, `aborted rc=<N> signal=<TERM|INT|HUP> ended=<ISO>`, or `missing` if the file was cleaned up.",
|
|
45648
|
+
"- Monitor responsibilities each tick:",
|
|
45649
|
+
" • If status begins with `running`: tail -n 20 <log>, post a one-sentence progress line.",
|
|
45650
|
+
" • If status begins with `complete`: post a final summary with rc and tail, then call cron action=remove on this job id.",
|
|
45651
|
+
" • If status begins with `aborted`: post a failure summary with signal and tail, then call cron action=remove.",
|
|
45652
|
+
" • Never leave stale monitors running after the task finishes."
|
|
45653
|
+
].join("\n");
|
|
45654
|
+
}
|
|
45655
|
+
|
|
45585
45656
|
//#endregion
|
|
45586
45657
|
//#region src/agents/pi-embedded-runner/runs.ts
|
|
45587
45658
|
const ACTIVE_EMBEDDED_RUNS = /* @__PURE__ */ new Map();
|
|
@@ -46632,7 +46703,12 @@ async function runEmbeddedAttempt(params) {
|
|
|
46632
46703
|
const profileModelKey = params.modelId ?? "";
|
|
46633
46704
|
const modelProfile = resolveModelProfile(profileModelKey, params.config?.models?.profiles);
|
|
46634
46705
|
log$5.debug(`[profile] resolved: modelId=${profileModelKey} → profile=${modelProfile.label} validateToolArgs=${modelProfile.filters?.validateToolArgs ?? false}`);
|
|
46635
|
-
const
|
|
46706
|
+
const profilePromptSuffix = modelProfile.promptAdditions.length > 0 ? "\n\n" + modelProfile.promptAdditions.join("\n") : "";
|
|
46707
|
+
const systemPromptText = createSystemPromptOverride(appendPrompt + await buildLongTaskPromptSuffix({
|
|
46708
|
+
argv1: process.argv[1],
|
|
46709
|
+
cwd: process.cwd(),
|
|
46710
|
+
moduleUrl: import.meta.url
|
|
46711
|
+
}) + profilePromptSuffix)();
|
|
46636
46712
|
const sessionLock = await acquireSessionWriteLock({
|
|
46637
46713
|
sessionFile: params.sessionFile,
|
|
46638
46714
|
maxHoldMs: resolveSessionLockMaxHoldFromTimeout({ timeoutMs: params.timeoutMs })
|
|
@@ -60912,7 +60988,7 @@ function isVoiceChannelType(type) {
|
|
|
60912
60988
|
function createDefaultDeps() {
|
|
60913
60989
|
return {
|
|
60914
60990
|
sendMessageWhatsApp: async (...args) => {
|
|
60915
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
60991
|
+
const { sendMessageWhatsApp } = await import("./web-DKwOxo8E.js");
|
|
60916
60992
|
return await sendMessageWhatsApp(...args);
|
|
60917
60993
|
},
|
|
60918
60994
|
sendMessageTelegram: async (...args) => {
|
|
@@ -76192,7 +76268,7 @@ function loadWebLoginQr() {
|
|
|
76192
76268
|
return webLoginQrPromise;
|
|
76193
76269
|
}
|
|
76194
76270
|
function loadWebChannel() {
|
|
76195
|
-
webChannelPromise ??= import("./web-
|
|
76271
|
+
webChannelPromise ??= import("./web-DKwOxo8E.js");
|
|
76196
76272
|
return webChannelPromise;
|
|
76197
76273
|
}
|
|
76198
76274
|
function loadWhatsAppActions() {
|
|
@@ -9,7 +9,7 @@ import { h as isPidAlive, m as resolveProcessScopedMap } from "./auth-profiles-q
|
|
|
9
9
|
import { n as formatCliCommand } from "./env-BDXYbTKj.js";
|
|
10
10
|
import { t as parseBooleanValue } from "./boolean-CE7i9tBR.js";
|
|
11
11
|
import { _ as parseDurationMs, a as writeConfigFile, n as loadConfig, s as parseByteSize, t as createConfigIO } from "./config-B6OxYMgn.js";
|
|
12
|
-
import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_SYMI_BROWSER_ENABLED, N as DEFAULT_SYMI_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, j as DEFAULT_SYMI_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-
|
|
12
|
+
import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_SYMI_BROWSER_ENABLED, N as DEFAULT_SYMI_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, j as DEFAULT_SYMI_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-CbA-qnhp.js";
|
|
13
13
|
import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-Bs0AW1g3.js";
|
|
14
14
|
import { n as formatErrorMessage, t as extractErrorCode } from "./errors-XIsvXeC-.js";
|
|
15
15
|
import { b as openFileWithinRoot, i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS, y as SafeOpenError } from "./image-ops-C7CauEK8.js";
|
|
@@ -933,7 +933,7 @@ function isModuleNotFoundError(err) {
|
|
|
933
933
|
}
|
|
934
934
|
async function loadPwAiModule(mode) {
|
|
935
935
|
try {
|
|
936
|
-
return await import("./pw-ai
|
|
936
|
+
return await import("./pw-ai--LDjnyuN.js");
|
|
937
937
|
} catch (err) {
|
|
938
938
|
if (mode === "soft") return null;
|
|
939
939
|
if (isModuleNotFoundError(err)) return null;
|
|
@@ -3473,11 +3473,11 @@ function createProfileContext(opts, profile) {
|
|
|
3473
3473
|
const userDataDir = resolveSymiUserDataDir(profile.name);
|
|
3474
3474
|
const profileState = getProfileState();
|
|
3475
3475
|
if (await isHttpReachable(300) && !profileState.running) try {
|
|
3476
|
-
await (await import("./pw-ai
|
|
3476
|
+
await (await import("./pw-ai--LDjnyuN.js")).closePlaywrightBrowserConnection();
|
|
3477
3477
|
} catch {}
|
|
3478
3478
|
if (profileState.running) await stopRunningBrowser();
|
|
3479
3479
|
try {
|
|
3480
|
-
await (await import("./pw-ai
|
|
3480
|
+
await (await import("./pw-ai--LDjnyuN.js")).closePlaywrightBrowserConnection();
|
|
3481
3481
|
} catch {}
|
|
3482
3482
|
if (!fs.existsSync(userDataDir)) return {
|
|
3483
3483
|
moved: false,
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { E as truncateUtf16Safe } from "./utils-B-0b9bGM.js";
|
|
2
2
|
import { s as normalizeThinkLevel } from "./thinking-EAliFiVK.js";
|
|
3
|
-
import { s as formatSandboxToolPolicyBlockedMessage } from "./sandbox-
|
|
4
|
-
import { t as sanitizeContentBlocksImages } from "./tool-images-
|
|
3
|
+
import { s as formatSandboxToolPolicyBlockedMessage } from "./sandbox-HZ_uilsn.js";
|
|
4
|
+
import { t as sanitizeContentBlocksImages } from "./tool-images-B-pqX3nX.js";
|
|
5
5
|
import path from "node:path";
|
|
6
|
-
import
|
|
6
|
+
import fsPromises from "node:fs/promises";
|
|
7
7
|
import { createHash } from "node:crypto";
|
|
8
8
|
|
|
9
9
|
//#region src/agents/pi-embedded-helpers/bootstrap.ts
|
|
@@ -101,10 +101,10 @@ function clampToBudget(content, budget) {
|
|
|
101
101
|
async function ensureSessionHeader(params) {
|
|
102
102
|
const file = params.sessionFile;
|
|
103
103
|
try {
|
|
104
|
-
await
|
|
104
|
+
await fsPromises.stat(file);
|
|
105
105
|
return;
|
|
106
106
|
} catch {}
|
|
107
|
-
await
|
|
107
|
+
await fsPromises.mkdir(path.dirname(file), { recursive: true });
|
|
108
108
|
const entry = {
|
|
109
109
|
type: "session",
|
|
110
110
|
version: 2,
|
|
@@ -112,7 +112,7 @@ async function ensureSessionHeader(params) {
|
|
|
112
112
|
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
113
113
|
cwd: params.cwd
|
|
114
114
|
};
|
|
115
|
-
await
|
|
115
|
+
await fsPromises.writeFile(file, `${JSON.stringify(entry)}\n`, "utf-8");
|
|
116
116
|
}
|
|
117
117
|
function buildBootstrapContextFiles(files, opts) {
|
|
118
118
|
const maxChars = opts?.maxChars ?? DEFAULT_BOOTSTRAP_MAX_CHARS;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { C as resolveThreadParentSessionKey, l as resolveAgentIdFromSessionKey } from "./session-key-DCt45XZa.js";
|
|
2
|
-
import { r as resolveAgentConfig } from "./agent-scope-
|
|
2
|
+
import { r as resolveAgentConfig } from "./agent-scope-BRwEc2pG.js";
|
|
3
3
|
import { l as normalizeMessageChannel } from "./message-channel-aT-I_DTX.js";
|
|
4
|
-
import { z as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./config-
|
|
5
|
-
import { T as matchesAnyGlobPattern, w as compileGlobPatterns, x as normalizeToolName, y as expandToolGroups } from "./sandbox-
|
|
6
|
-
import { o as resolveChannelGroupToolsPolicy, t as getChannelDock } from "./dock-
|
|
4
|
+
import { z as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./config-tNauHpdq.js";
|
|
5
|
+
import { T as matchesAnyGlobPattern, w as compileGlobPatterns, x as normalizeToolName, y as expandToolGroups } from "./sandbox-HZ_uilsn.js";
|
|
6
|
+
import { o as resolveChannelGroupToolsPolicy, t as getChannelDock } from "./dock-BYiRZSgZ.js";
|
|
7
7
|
|
|
8
8
|
//#region src/agents/sandbox-tool-policy.ts
|
|
9
9
|
function unionAllow(base, extra) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { d as isRecord } from "./utils-B-0b9bGM.js";
|
|
2
2
|
import { o as getChatChannelMeta, s as listChatChannels, u as normalizeChatChannelId } from "./registry-Cja8eT7G.js";
|
|
3
|
-
import { l as normalizeProviderId } from "./model-selection-
|
|
4
|
-
import { t as hasAnyWhatsAppAuth } from "./accounts-
|
|
3
|
+
import { l as normalizeProviderId } from "./model-selection-X1oLh3CE.js";
|
|
4
|
+
import { t as hasAnyWhatsAppAuth } from "./accounts-Cd816n6l.js";
|
|
5
5
|
import { n as getChannelPluginCatalogEntry, r as listChannelPluginCatalogEntries } from "./catalog-NQ4pj9RI.js";
|
|
6
6
|
import { t as ensurePluginAllowlisted } from "./plugins-allowlist-BjKJrQ0e.js";
|
|
7
7
|
|
|
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
|
2
2
|
import { M as getActivePluginRegistry, o as createSubsystemLogger } from "./entry.js";
|
|
3
3
|
import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-D-jRCY0d.js";
|
|
4
4
|
import { i as loadConfig } from "./config-BNTB6qj8.js";
|
|
5
|
-
import { m as loadSymiPlugins } from "./subagent-registry-
|
|
5
|
+
import { m as loadSymiPlugins } from "./subagent-registry-CzS4CfnV.js";
|
|
6
6
|
|
|
7
7
|
//#region src/cli/plugin-registry.ts
|
|
8
8
|
var plugin_registry_exports = /* @__PURE__ */ __exportAll({ ensurePluginRegistryLoaded: () => ensurePluginRegistryLoaded });
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
|
-
import { ft as loadSymiPlugins } from "./reply-
|
|
2
|
+
import { ft as loadSymiPlugins } from "./reply-CpNWtuU4.js";
|
|
3
3
|
import { d as getActivePluginRegistry } from "./registry-Cja8eT7G.js";
|
|
4
4
|
import { t as createSubsystemLogger } from "./subsystem-D9vIQve0.js";
|
|
5
|
-
import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-
|
|
6
|
-
import { i as loadConfig } from "./config-
|
|
5
|
+
import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-BRwEc2pG.js";
|
|
6
|
+
import { i as loadConfig } from "./config-tNauHpdq.js";
|
|
7
7
|
|
|
8
8
|
//#region src/cli/plugin-registry.ts
|
|
9
9
|
var plugin_registry_exports = /* @__PURE__ */ __exportAll({ ensurePluginRegistryLoaded: () => ensurePluginRegistryLoaded });
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { a as buildGroupHistoryKey, n as DEFAULT_MAIN_KEY, r as buildAgentMainSessionKey, s as normalizeAgentId } from "./session-key-C_0eELjb.js";
|
|
2
2
|
import { f as readWebSelfId, o as getWebAuthAgeMs, r as resolveWhatsAppAccount } from "./accounts-D9zGZU5t.js";
|
|
3
|
-
import { E as enqueueSystemEvent, G as resolveMentionGating, W as shouldAckReactionForWhatsApp, X as buildHistoryContextFromEntries, Y as DEFAULT_GROUP_HISTORY_LIMIT, _ as resolveEnvelopeFormatOptions, c as computeBackoff, d as formatDurationPrecise, f as dispatchReplyWithBufferedBlockDispatcher, g as formatInboundEnvelope, h as resolveInboundDebounceMs, ht as createDedupeCache, l as sleepWithAbort, m as createInboundDebouncer, n as normalizeGroupActivation, nt as buildMentionRegexes, r as parseActivationCommand, rt as normalizeMentionText, t as getReplyFromConfig, tt as recordPendingHistoryEntryIfEnabled, u as buildPairingReply, v as hasControlCommand, y as shouldComputeCommandAuthorized } from "./reply-
|
|
3
|
+
import { E as enqueueSystemEvent, G as resolveMentionGating, W as shouldAckReactionForWhatsApp, X as buildHistoryContextFromEntries, Y as DEFAULT_GROUP_HISTORY_LIMIT, _ as resolveEnvelopeFormatOptions, c as computeBackoff, d as formatDurationPrecise, f as dispatchReplyWithBufferedBlockDispatcher, g as formatInboundEnvelope, h as resolveInboundDebounceMs, ht as createDedupeCache, l as sleepWithAbort, m as createInboundDebouncer, n as normalizeGroupActivation, nt as buildMentionRegexes, r as parseActivationCommand, rt as normalizeMentionText, t as getReplyFromConfig, tt as recordPendingHistoryEntryIfEnabled, u as buildPairingReply, v as hasControlCommand, y as shouldComputeCommandAuthorized } from "./reply-4HEU7aDS.js";
|
|
4
4
|
import { A as normalizeE164, B as toWhatsappJid, K as logVerbose, N as resolveJidToE164, O as isSelfChatMode, R as sleep, Y as shouldLogVerbose, k as jidToE164, s as normalizeChatChannelId, tt as getChildLogger, x as clamp } from "./registry--_pGht6S.js";
|
|
5
5
|
import { n as loadConfig } from "./config-DdA6JiyD.js";
|
|
6
6
|
import { i as defaultRuntime, t as createSubsystemLogger } from "./subsystem-Coz2AgU8.js";
|
package/dist/plugin-sdk/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { f as DEFAULT_ACCOUNT_ID, p as normalizeAccountId } from "./session-key-C_0eELjb.js";
|
|
2
2
|
import { _ as createAccountListHelpers, i as resolveWhatsAppAuthDir, n as resolveDefaultWhatsAppAccountId, r as resolveWhatsAppAccount, t as listWhatsAppAccountIds } from "./accounts-D9zGZU5t.js";
|
|
3
|
-
import { $ as clearHistoryEntriesIfEnabled, A as resolveDiscordUserAllowlist, B as logTypingFailure, C as stripMarkdown, Ct as unbindThreadBindingsBySessionKey, D as resolveSlackUserAllowlist, Dt as BLUEBUBBLES_ACTION_NAMES, Et as BLUEBUBBLES_ACTIONS, F as stringEnum, G as resolveMentionGating, H as removeAckReactionAfterReply, I as recordInboundSession, J as summarizeMapping, K as resolveMentionGatingWithBypass, L as resolveControlCommandGate, M as collectDiscordAuditChannelIds, N as formatDocsLink, O as resolveSlackChannelAllowlist, Ot as BLUEBUBBLES_GROUP_ACTIONS, P as optionalStringEnum, Q as clearHistoryEntries, R as logAckFailure, S as processLineMessage, St as listThreadBindingsBySessionKey, T as attachFooterText, Tt as resolveAllowlistMatchSimple, U as shouldAckReaction, V as createTypingCallbacks, W as shouldAckReactionForWhatsApp, Y as DEFAULT_GROUP_HISTORY_LIMIT, Z as buildPendingHistoryContextFromMap, _t as listDevicePairing, a as normalizeAccountId$1, at as isWSLEnv, bt as registerPluginHttpRoute, ct as DEFAULT_WEBHOOK_MAX_BODY_BYTES, dt as isRequestBodyLimitError, et as recordPendingHistoryEntry, ft as readJsonBodyWithLimit, gt as approveDevicePairing, ht as createDedupeCache, i as listLineAccountIds, it as isWSL2Sync, j as resolveDiscordChannelAllowlist, k as detectBinary, kt as CHANNEL_MESSAGE_ACTION_NAMES, lt as RequestBodyLimitError, mt as requestBodyErrorToText, o as resolveDefaultLineAccountId, ot as isWSLSync, pt as readRequestBodyWithLimit, q as mergeAllowlist, s as resolveLineAccount, st as DEFAULT_WEBHOOK_BODY_TIMEOUT_MS, tt as recordPendingHistoryEntryIfEnabled, ut as installRequestBodyLimitGuard, vt as rejectDevicePairing, w as createReceiptCard, wt as formatAllowlistMatchMeta, x as hasMarkdownToConvert, xt as autoBindSpawnedDiscordSubagent, yt as extractToolSend, z as logInboundDrop } from "./reply-
|
|
3
|
+
import { $ as clearHistoryEntriesIfEnabled, A as resolveDiscordUserAllowlist, B as logTypingFailure, C as stripMarkdown, Ct as unbindThreadBindingsBySessionKey, D as resolveSlackUserAllowlist, Dt as BLUEBUBBLES_ACTION_NAMES, Et as BLUEBUBBLES_ACTIONS, F as stringEnum, G as resolveMentionGating, H as removeAckReactionAfterReply, I as recordInboundSession, J as summarizeMapping, K as resolveMentionGatingWithBypass, L as resolveControlCommandGate, M as collectDiscordAuditChannelIds, N as formatDocsLink, O as resolveSlackChannelAllowlist, Ot as BLUEBUBBLES_GROUP_ACTIONS, P as optionalStringEnum, Q as clearHistoryEntries, R as logAckFailure, S as processLineMessage, St as listThreadBindingsBySessionKey, T as attachFooterText, Tt as resolveAllowlistMatchSimple, U as shouldAckReaction, V as createTypingCallbacks, W as shouldAckReactionForWhatsApp, Y as DEFAULT_GROUP_HISTORY_LIMIT, Z as buildPendingHistoryContextFromMap, _t as listDevicePairing, a as normalizeAccountId$1, at as isWSLEnv, bt as registerPluginHttpRoute, ct as DEFAULT_WEBHOOK_MAX_BODY_BYTES, dt as isRequestBodyLimitError, et as recordPendingHistoryEntry, ft as readJsonBodyWithLimit, gt as approveDevicePairing, ht as createDedupeCache, i as listLineAccountIds, it as isWSL2Sync, j as resolveDiscordChannelAllowlist, k as detectBinary, kt as CHANNEL_MESSAGE_ACTION_NAMES, lt as RequestBodyLimitError, mt as requestBodyErrorToText, o as resolveDefaultLineAccountId, ot as isWSLSync, pt as readRequestBodyWithLimit, q as mergeAllowlist, s as resolveLineAccount, st as DEFAULT_WEBHOOK_BODY_TIMEOUT_MS, tt as recordPendingHistoryEntryIfEnabled, ut as installRequestBodyLimitGuard, vt as rejectDevicePairing, w as createReceiptCard, wt as formatAllowlistMatchMeta, x as hasMarkdownToConvert, xt as autoBindSpawnedDiscordSubagent, yt as extractToolSend, z as logInboundDrop } from "./reply-4HEU7aDS.js";
|
|
4
4
|
import "./paths-DR2yt_mP.js";
|
|
5
5
|
import "./github-copilot-token-D9X2phUj.js";
|
|
6
6
|
import { D as resolveSlackAccount, E as resolveDefaultSlackAccountId, F as resolveDiscordAccount, M as listDiscordAccountIds, O as resolveSlackReplyToMode, P as resolveDefaultDiscordAccountId, S as resolveTelegramAccount, T as listSlackAccountIds, _ as normalizeWhatsAppTarget, a as listDiscordDirectoryPeersFromConfig, b as listTelegramAccountIds, c as listTelegramDirectoryGroupsFromConfig, d as listWhatsAppDirectoryPeersFromConfig, f as looksLikeSlackTargetId, g as isWhatsAppGroupJid, i as listDiscordDirectoryGroupsFromConfig, l as listTelegramDirectoryPeersFromConfig, o as listSlackDirectoryGroupsFromConfig, p as normalizeSlackMessagingTarget, s as listSlackDirectoryPeersFromConfig, u as listWhatsAppDirectoryGroupsFromConfig, w as listEnabledSlackAccounts, x as resolveDefaultTelegramAccountId } from "./plugins-BbAvhC25.js";
|
|
@@ -47,7 +47,7 @@ import "./paths-A0xdf3yk.js";
|
|
|
47
47
|
import { h as onDiagnosticEvent, m as isDiagnosticsEnabled, p as emitDiagnosticEvent } from "./diagnostic-EyuCSUXO.js";
|
|
48
48
|
import { n as extractOriginalFilename } from "./store-Do3t33-c.js";
|
|
49
49
|
import { t as resolveWhatsAppOutboundTarget } from "./resolve-outbound-target-BkCUbYGV.js";
|
|
50
|
-
import { r as resolveWhatsAppHeartbeatRecipients } from "./channel-web-
|
|
50
|
+
import { r as resolveWhatsAppHeartbeatRecipients } from "./channel-web-Dm-CzA1O.js";
|
|
51
51
|
import "./image-aq-JAobP.js";
|
|
52
52
|
import "./pi-model-discovery-LbcEa65a.js";
|
|
53
53
|
import "./api-key-rotation-LTEeykrm.js";
|
|
@@ -33636,6 +33636,77 @@ function getHistoryLimitFromSessionKey(sessionKey, config) {
|
|
|
33636
33636
|
*/
|
|
33637
33637
|
const getDmHistoryLimitFromSessionKey = getHistoryLimitFromSessionKey;
|
|
33638
33638
|
|
|
33639
|
+
//#endregion
|
|
33640
|
+
//#region src/agents/pi-embedded-runner/long-task-prompt.ts
|
|
33641
|
+
const SCRIPT_REL_PATH = "skills/long-task/scripts/detach-task.sh";
|
|
33642
|
+
let cachedScriptPath;
|
|
33643
|
+
function isExecutable(candidatePath) {
|
|
33644
|
+
try {
|
|
33645
|
+
fs.accessSync(candidatePath, fs.constants.X_OK);
|
|
33646
|
+
return true;
|
|
33647
|
+
} catch {
|
|
33648
|
+
return false;
|
|
33649
|
+
}
|
|
33650
|
+
}
|
|
33651
|
+
/**
|
|
33652
|
+
* Ensure the script is present AND has the exec bit. npm usually preserves
|
|
33653
|
+
* mode 100755 on pack/install, but a subset of filesystems (FAT32, some
|
|
33654
|
+
* container mounts) silently drop it. If the bit is missing, we try to set
|
|
33655
|
+
* it; on failure we return null rather than emit a prompt that would break
|
|
33656
|
+
* when the model tries to exec the script.
|
|
33657
|
+
*/
|
|
33658
|
+
async function resolveDetachScriptPath(params) {
|
|
33659
|
+
if (cachedScriptPath !== void 0) return cachedScriptPath;
|
|
33660
|
+
const packageRoot = await resolveSymiPackageRoot({
|
|
33661
|
+
cwd: params.cwd,
|
|
33662
|
+
argv1: params.argv1,
|
|
33663
|
+
moduleUrl: params.moduleUrl
|
|
33664
|
+
});
|
|
33665
|
+
if (!packageRoot) {
|
|
33666
|
+
cachedScriptPath = null;
|
|
33667
|
+
return null;
|
|
33668
|
+
}
|
|
33669
|
+
const candidate = path.join(packageRoot, SCRIPT_REL_PATH);
|
|
33670
|
+
if (!fs.existsSync(candidate)) {
|
|
33671
|
+
cachedScriptPath = null;
|
|
33672
|
+
return null;
|
|
33673
|
+
}
|
|
33674
|
+
if (!isExecutable(candidate)) try {
|
|
33675
|
+
fs.chmodSync(candidate, 493);
|
|
33676
|
+
} catch {
|
|
33677
|
+
cachedScriptPath = null;
|
|
33678
|
+
return null;
|
|
33679
|
+
}
|
|
33680
|
+
cachedScriptPath = candidate;
|
|
33681
|
+
return cachedScriptPath;
|
|
33682
|
+
}
|
|
33683
|
+
async function buildLongTaskPromptSuffix(params) {
|
|
33684
|
+
const scriptPath = await resolveDetachScriptPath(params);
|
|
33685
|
+
if (!scriptPath) return "";
|
|
33686
|
+
return "\n\n" + [
|
|
33687
|
+
"LONG-RUNNING TASK PATTERN:",
|
|
33688
|
+
"- Applies ONLY when a command is expected to take longer than about 15 minutes (deep nmap scans of /24 or larger, full brute-force sweeps, long builds, exhaustive enumeration). For anything shorter, use the normal exec tool — detaching short tasks creates pointless cron noise.",
|
|
33689
|
+
"- Foreground-blocking the exec tool for the full duration will fail: the agent turn will hit its timeout and the process will be SIGTERMed mid-run. Detach instead.",
|
|
33690
|
+
`- Detach pattern: exec \`${scriptPath} <task-id> <workdir> <command...>\`.`,
|
|
33691
|
+
" • task-id: alphanumeric + dot/dash/underscore, 1–60 chars, must not start with '.' or '-'.",
|
|
33692
|
+
" • workdir: absolute path you own (e.g. the agent workspace).",
|
|
33693
|
+
" • Script spawns under setsid+nohup+disown, writes task-<id>.{pid,cmd,started,log,status} files.",
|
|
33694
|
+
"- Immediately after detaching, respond to the user with: task id, PID, log file path, your ETA estimate, and that a cron monitor has been scheduled.",
|
|
33695
|
+
"- Register a cron monitor using the `cron` tool with action=add. Required fields:",
|
|
33696
|
+
" • schedule: { kind: \"interval\", ms: 180000 } (every 3 minutes; minimum 60000)",
|
|
33697
|
+
" • payload: { kind: \"agent\", sessionTarget: \"isolated\", text: <job prompt> }",
|
|
33698
|
+
" The job prompt must literally contain the task-id, PID, log path, and status path so the future turn has enough context without re-deriving them.",
|
|
33699
|
+
"- Safe status read (inside the monitor turn):",
|
|
33700
|
+
" `status=$(cat \"<workdir>/task-<id>.status\" 2>/dev/null || echo missing)`",
|
|
33701
|
+
" Possible values: `running pid=<N> started=<ISO>`, `complete rc=<N> ended=<ISO>`, `aborted rc=<N> signal=<TERM|INT|HUP> ended=<ISO>`, or `missing` if the file was cleaned up.",
|
|
33702
|
+
"- Monitor responsibilities each tick:",
|
|
33703
|
+
" • If status begins with `running`: tail -n 20 <log>, post a one-sentence progress line.",
|
|
33704
|
+
" • If status begins with `complete`: post a final summary with rc and tail, then call cron action=remove on this job id.",
|
|
33705
|
+
" • If status begins with `aborted`: post a failure summary with signal and tail, then call cron action=remove.",
|
|
33706
|
+
" • Never leave stale monitors running after the task finishes."
|
|
33707
|
+
].join("\n");
|
|
33708
|
+
}
|
|
33709
|
+
|
|
33639
33710
|
//#endregion
|
|
33640
33711
|
//#region src/agents/pi-embedded-runner/runs.ts
|
|
33641
33712
|
const ACTIVE_EMBEDDED_RUNS = /* @__PURE__ */ new Map();
|
|
@@ -34698,7 +34769,12 @@ async function runEmbeddedAttempt(params) {
|
|
|
34698
34769
|
const profileModelKey = params.modelId ?? "";
|
|
34699
34770
|
const modelProfile = resolveModelProfile(profileModelKey, params.config?.models?.profiles);
|
|
34700
34771
|
log$7.debug(`[profile] resolved: modelId=${profileModelKey} → profile=${modelProfile.label} validateToolArgs=${modelProfile.filters?.validateToolArgs ?? false}`);
|
|
34701
|
-
const
|
|
34772
|
+
const profilePromptSuffix = modelProfile.promptAdditions.length > 0 ? "\n\n" + modelProfile.promptAdditions.join("\n") : "";
|
|
34773
|
+
const systemPromptText = createSystemPromptOverride(appendPrompt + await buildLongTaskPromptSuffix({
|
|
34774
|
+
argv1: process.argv[1],
|
|
34775
|
+
cwd: process.cwd(),
|
|
34776
|
+
moduleUrl: import.meta.url
|
|
34777
|
+
}) + profilePromptSuffix)();
|
|
34702
34778
|
const sessionLock = await acquireSessionWriteLock({
|
|
34703
34779
|
sessionFile: params.sessionFile,
|
|
34704
34780
|
maxHoldMs: resolveSessionLockMaxHoldFromTimeout({ timeoutMs: params.timeoutMs })
|
|
@@ -36507,7 +36583,7 @@ async function runAgentTurn(params) {
|
|
|
36507
36583
|
function createDefaultDeps() {
|
|
36508
36584
|
return {
|
|
36509
36585
|
sendMessageWhatsApp: async (...args) => {
|
|
36510
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
36586
|
+
const { sendMessageWhatsApp } = await import("./web-Cclb7FTq.js");
|
|
36511
36587
|
return await sendMessageWhatsApp(...args);
|
|
36512
36588
|
},
|
|
36513
36589
|
sendMessageTelegram: async (...args) => {
|
|
@@ -53945,7 +54021,7 @@ function loadWebLoginQr() {
|
|
|
53945
54021
|
return webLoginQrPromise;
|
|
53946
54022
|
}
|
|
53947
54023
|
function loadWebChannel() {
|
|
53948
|
-
webChannelPromise ??= import("./web-
|
|
54024
|
+
webChannelPromise ??= import("./web-Cclb7FTq.js");
|
|
53949
54025
|
return webChannelPromise;
|
|
53950
54026
|
}
|
|
53951
54027
|
function loadWhatsAppActions() {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as WA_WEB_AUTH_DIR, g as webAuthExists, s as logWebSelfId, u as pickWebChannel } from "./accounts-D9zGZU5t.js";
|
|
2
|
-
import "./reply-
|
|
2
|
+
import "./reply-4HEU7aDS.js";
|
|
3
3
|
import "./paths-DR2yt_mP.js";
|
|
4
4
|
import "./github-copilot-token-D9X2phUj.js";
|
|
5
5
|
import "./plugins-BbAvhC25.js";
|
|
@@ -45,7 +45,7 @@ import "./pi-embedded-helpers-BPvzgLtj.js";
|
|
|
45
45
|
import "./paths-A0xdf3yk.js";
|
|
46
46
|
import "./diagnostic-EyuCSUXO.js";
|
|
47
47
|
import "./store-Do3t33-c.js";
|
|
48
|
-
import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-
|
|
48
|
+
import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-Dm-CzA1O.js";
|
|
49
49
|
import "./image-aq-JAobP.js";
|
|
50
50
|
import "./pi-model-discovery-LbcEa65a.js";
|
|
51
51
|
import "./api-key-rotation-LTEeykrm.js";
|
|
@@ -4,8 +4,8 @@ import { h as normalizeAccountId, m as DEFAULT_ACCOUNT_ID } from "./session-key-
|
|
|
4
4
|
import { c as normalizeAnyChannelId, f as requireActivePluginRegistry, n as CHAT_CHANNEL_ORDER } from "./registry-Cja8eT7G.js";
|
|
5
5
|
import { t as isTruthyEnvValue } from "./env-DPCHYPeH.js";
|
|
6
6
|
import { t as normalizeChatType } from "./chat-type-DyovJwCt.js";
|
|
7
|
-
import { h as createAccountListHelpers } from "./accounts-
|
|
8
|
-
import { i as resolveDefaultAgentBoundAccountId, r as listBoundAccountIds } from "./bindings-
|
|
7
|
+
import { h as createAccountListHelpers } from "./accounts-Cd816n6l.js";
|
|
8
|
+
import { i as resolveDefaultAgentBoundAccountId, r as listBoundAccountIds } from "./bindings-ChzePa8q.js";
|
|
9
9
|
import fs from "node:fs";
|
|
10
10
|
|
|
11
11
|
//#region src/channels/plugins/account-action-gate.ts
|