@symerian/symi 2.8.11 → 2.8.13
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/{agents-BbVxJTp2.js → agents-CgCg4syn.js} +4 -4
- package/dist/{agents.config-LE2JxgiS.js → agents.config-BnPC7uct.js} +1 -1
- package/dist/{agents.config-DckCExUX.js → agents.config-DqWxpgkX.js} +1 -1
- package/dist/{audio-preflight-rjCWpcfE.js → audio-preflight-Cb-T0r6e.js} +4 -4
- package/dist/{audit-CNU0I_UT.js → audit-Bi9Je9FZ.js} +1 -1
- package/dist/{audit-F5zQ_Wk9.js → audit-Oa5dsn5p.js} +1 -1
- package/dist/{auth-choice-DnKOB8Gs.js → auth-choice-BIlBt2d0.js} +1 -1
- package/dist/{auth-choice-j1FEYnxv.js → auth-choice-BKwypsnS.js} +1 -1
- package/dist/{banner-BFr8n0of.js → banner-CX5CuLWQ.js} +1 -1
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +7 -7
- package/dist/bundled/session-memory/handler.js +7 -7
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-BtmFCQOB.js → channel-options-7y9EuPLO.js} +1 -1
- package/dist/{channel-options-DrBxsMlw.js → channel-options-mUKQVJQl.js} +1 -1
- package/dist/{channel-web-YgdajAXX.js → channel-web-Dldh4zVI.js} +1 -1
- package/dist/{channels-cli-ChS_nQcP.js → channels-cli-Dz9vV1KL.js} +7 -7
- package/dist/{channels-cli-fYbw-4gz.js → channels-cli-Q6Q8LokG.js} +7 -7
- package/dist/{chrome-C08Z0XAa.js → chrome-ROtrXlNs.js} +7 -7
- package/dist/{cli-NfoZJEPh.js → cli-D4WYEtu4.js} +4 -4
- package/dist/{cli-CA4qcSFY.js → cli-DMsLCQbO.js} +4 -4
- package/dist/{command-registry-BZfKQQev.js → command-registry-cEqGIx4b.js} +10 -10
- package/dist/{completion-cli-B4YP0Otu.js → completion-cli-Bw0jbNaG.js} +1 -1
- package/dist/{completion-cli-B1JkGibL.js → completion-cli-C5GCKfKT.js} +2 -2
- package/dist/{config-cli-Dm2QMcwn.js → config-cli-DP0hP7WR.js} +1 -1
- package/dist/{config-cli-CgC3xSoL.js → config-cli-DgHooQ4_.js} +1 -1
- package/dist/{configure-DiDXmX3E.js → configure-BQUkaPdS.js} +3 -3
- package/dist/{configure-COCCg2tV.js → configure-OUiXvgMg.js} +3 -3
- package/dist/{deliver-qUx-eLKt.js → deliver-B0OUq6RP.js} +1 -1
- package/dist/{doctor-completion-CophMO9P.js → doctor-completion-BSMAyCq_.js} +1 -1
- package/dist/{doctor-completion-CjlRDZow.js → doctor-completion-DlKvncR9.js} +1 -1
- package/dist/entry.js +1 -1
- package/dist/extensionAPI.js +2 -2
- package/dist/{gateway-cli-Dlcx0rsS.js → gateway-cli-BlRNLVfU.js} +182 -13
- package/dist/{gateway-cli-CAPtJ_VJ.js → gateway-cli-NI7W2QxR.js} +182 -13
- package/dist/{glass-ui-ws-hIgOh0Ub.js → glass-ui-ws-BBkFBsKB.js} +11 -11
- package/dist/{glass-ui-ws-GEiZsdru.js → glass-ui-ws-DxrESDzy.js} +11 -11
- package/dist/{health-BAjSATWA.js → health-D4vU-wV-.js} +1 -1
- package/dist/{health-D-0xOxV8.js → health-fOu0S75U.js} +1 -1
- package/dist/{hooks-cli-ZZaM2xfC.js → hooks-cli-BdgnXYmw.js} +5 -5
- package/dist/{hooks-cli-BaoCFIbQ.js → hooks-cli-DdSggQYs.js} +5 -5
- package/dist/{image-C6rCON9L.js → image-BuVL0jHI.js} +1 -1
- package/dist/index.js +9 -9
- package/dist/llm-slug-generator.js +7 -7
- package/dist/{manager-B5JWZL0E.js → manager-DRrGn88w.js} +1 -1
- package/dist/{manager-BpvcDr-7.js → manager-TOeH0D8K.js} +1 -1
- package/dist/{manager-DUuPE1N1.js → manager-_RGWWymD.js} +1 -1
- package/dist/{manager-BxJ9BhQe.js → manager-syNf_ZrI.js} +1 -1
- package/dist/{memory-cli-BQZ0rTKC.js → memory-cli-0jm-n36m.js} +3 -3
- package/dist/{memory-cli-r-ulsUBa.js → memory-cli-BSOOwpt1.js} +3 -3
- package/dist/{models-cli-BGpB4PAp.js → models-cli-CtkoEyh3.js} +5 -5
- package/dist/{models-cli-Ch-4PBud.js → models-cli-DV-J1cm0.js} +6 -6
- package/dist/{models-B1__62Qo.js → models-sGeWQOmg.js} +2 -2
- package/dist/{onboard-CNiwcGJT.js → onboard-CWBYuaCm.js} +2 -2
- package/dist/{onboard-Bub0X2iR.js → onboard-FeTHeA1y.js} +2 -2
- package/dist/{onboard-channels-CYlZtWF6.js → onboard-channels-D8bDJYPc.js} +1 -1
- package/dist/{onboard-channels-BgA4i9TU.js → onboard-channels-DpZkjldS.js} +1 -1
- package/dist/{onboarding-CvK25SU5.js → onboarding-BsPnnH5g.js} +3 -3
- package/dist/{onboarding-DFNiU6QZ.js → onboarding-c2qhwP0x.js} +3 -3
- package/dist/{onboarding.finalize-CvXSAjuU.js → onboarding.finalize-7St3fmk2.js} +9 -9
- package/dist/{onboarding.finalize-_r8l4FJ1.js → onboarding.finalize-id9EHg1P.js} +8 -8
- package/dist/{pi-embedded-HSRJqesT.js → pi-embedded-DCBB1_SC.js} +14 -10
- package/dist/{pi-embedded-helpers-P13adotN.js → pi-embedded-helpers-D1_Sab0M.js} +4 -4
- package/dist/{pi-tools.policy-BPVIDK7o.js → pi-tools.policy-BZrM6a-w.js} +8 -1
- package/dist/{pi-tools.policy-dbCkhLDL.js → pi-tools.policy-QIVWAVVI.js} +8 -1
- package/dist/{plugin-registry-DEKq3ti3.js → plugin-registry-BJSfTT8c.js} +1 -1
- package/dist/{plugin-registry-Chvg6kT0.js → plugin-registry-Cy1kfzAy.js} +1 -1
- package/dist/plugin-sdk/{accounts-BToL3HlP.js → accounts-BtaOa4z_.js} +1 -1
- package/dist/plugin-sdk/{accounts-D9zGZU5t.js → accounts-Ddm33hQm.js} +3 -3
- package/dist/plugin-sdk/{accounts-Dtszw3Zn.js → accounts-s-AdhXVR.js} +1 -1
- package/dist/plugin-sdk/{active-listener-CJuvR4C2.js → active-listener-DYjn3fML.js} +1 -1
- package/dist/plugin-sdk/{agent-scope-C3gMMKCU.js → agent-scope-CYYpcO9W.js} +2 -2
- package/dist/plugin-sdk/{api-key-rotation-CBsLb_4V.js → api-key-rotation-DGJZ8SVa.js} +1 -1
- package/dist/plugin-sdk/{audio-preflight-DucGa8w7.js → audio-preflight-CiVw8470.js} +24 -24
- package/dist/plugin-sdk/{bindings-BbwoUGPx.js → bindings-C7hRtgYW.js} +2 -2
- package/dist/plugin-sdk/{channel-activity-Ji7f0gqq.js → channel-activity-DoC1xtDu.js} +1 -1
- package/dist/plugin-sdk/{channel-web-CfaamthT.js → channel-web-BSDjZSwm.js} +22 -22
- package/dist/plugin-sdk/{chrome-D9kN9org.js → chrome-CEqfiEs0.js} +3 -3
- package/dist/plugin-sdk/{chunk-jvk9axTQ.js → chunk-Dw2XBYXv.js} +1 -1
- package/dist/plugin-sdk/{command-format-DSdvQ_M5.js → command-format-GKSevep4.js} +1 -1
- package/dist/plugin-sdk/{commands-registry-BuYpmEx-.js → commands-registry-BhW_oGNt.js} +4 -4
- package/dist/plugin-sdk/{config-BzupW6LN.js → config-Ckum15iC.js} +9 -9
- package/dist/plugin-sdk/{consolidate-CafShdsH.js → consolidate-COuTEt4Z.js} +2 -2
- package/dist/plugin-sdk/{deliver-CKgFosI5.js → deliver-B8Y2t-RH.js} +10 -10
- package/dist/plugin-sdk/{diagnostic-_oc91gNi.js → diagnostic-BR07buTm.js} +1 -1
- package/dist/plugin-sdk/{image-DFyINnvE.js → image-CCmNHDV0.js} +4 -4
- package/dist/plugin-sdk/{image-ops-Bnp6LXEx.js → image-ops-BlQR__MN.js} +1 -1
- package/dist/plugin-sdk/index.js +54 -54
- package/dist/plugin-sdk/{ir-Fb3qpcis.js → ir-BJ6BHE5b.js} +4 -4
- package/dist/plugin-sdk/{local-roots-Ckk1QfzI.js → local-roots-BHLNSI8U.js} +3 -3
- package/dist/plugin-sdk/{login-K1YB_7-t.js → login-g_rQAcuM.js} +7 -7
- package/dist/plugin-sdk/{login-qr-lMl_OqDj.js → login-qr-BOUmLSY3.js} +9 -9
- package/dist/plugin-sdk/{manager-B3jEviU1.js → manager-B9GigLWj.js} +9 -9
- package/dist/plugin-sdk/{manifest-registry-hy3Bn-r9.js → manifest-registry-BRx4JDK0.js} +1 -1
- package/dist/plugin-sdk/{markdown-tables-Dfaqilz6.js → markdown-tables-BoYFajMu.js} +1 -1
- package/dist/plugin-sdk/{message-channel-BdI5Ra9S.js → message-channel-COTAJzHd.js} +1 -1
- package/dist/plugin-sdk/{model-selection-CtVwtb6y.js → model-selection-Bbs4XGPG.js} +4 -4
- package/dist/plugin-sdk/{outbound-DW3cqlQW.js → outbound-BVhSNFy0.js} +7 -7
- package/dist/plugin-sdk/{outbound-attachment-D7ME_Kib.js → outbound-attachment-B56R1Wi4.js} +2 -2
- package/dist/plugin-sdk/{pi-auth-json-DiyK6bgV.js → pi-auth-json-CB2bV0Jd.js} +1 -1
- package/dist/plugin-sdk/{pi-embedded-helpers-BL7ZRhGv.js → pi-embedded-helpers-dd3G9Hfi.js} +17 -17
- package/dist/plugin-sdk/{plugins-BbAvhC25.js → plugins-BNByVCIH.js} +4 -4
- package/dist/plugin-sdk/{pw-ai-B3T0mTHr.js → pw-ai-BXeOYCz_.js} +8 -8
- package/dist/plugin-sdk/{qmd-manager-BlUikj9s.js → qmd-manager-wIr8qz2n.js} +4 -4
- package/dist/plugin-sdk/{registry--_pGht6S.js → registry-D0xTnUWt.js} +2 -2
- package/dist/plugin-sdk/{replies-BR2TPTVW.js → replies-CQ4szNhV.js} +3 -3
- package/dist/plugin-sdk/{reply-DWwxgBtH.js → reply-DD8z_dUW.js} +87 -83
- package/dist/plugin-sdk/{reply-prefix-BHuV5t70.js → reply-prefix-uxfMZW4p.js} +1 -1
- package/dist/plugin-sdk/{resolve-outbound-target-BkCUbYGV.js → resolve-outbound-target-BiyAyTWz.js} +2 -2
- package/dist/plugin-sdk/{resolve-route-CHQ7BTlU.js → resolve-route-CWfcnhza.js} +3 -3
- package/dist/plugin-sdk/{retry-ilSJqnz9.js → retry-CwQ_iIj8.js} +1 -1
- package/dist/plugin-sdk/{runner-BhifC1J_.js → runner-BuxCHv_O.js} +9 -9
- package/dist/plugin-sdk/{send-CGhw9mO3.js → send-BtO-7fHs.js} +6 -6
- package/dist/plugin-sdk/{send-DLO_yV5_.js → send-CKXzQuXo.js} +10 -10
- package/dist/plugin-sdk/{send-ZhAe1nXO.js → send-Djq5IPRa.js} +10 -10
- package/dist/plugin-sdk/{send-jsofmTfJ.js → send-XSuwT1PC.js} +7 -7
- package/dist/plugin-sdk/{send-BP5pSPaZ.js → send-fNRDT21N.js} +6 -6
- package/dist/plugin-sdk/{session-BfyK_04G.js → session-ARbcLHE9.js} +4 -4
- package/dist/plugin-sdk/{skill-commands-DEfqC_kJ.js → skill-commands-yzJVuTIW.js} +5 -5
- package/dist/plugin-sdk/{skills-C9DbB-Kp.js → skills-BfsaS1F9.js} +7 -7
- package/dist/plugin-sdk/{sqlite-CmVrFEYD.js → sqlite-A3wGzttn.js} +1 -1
- package/dist/plugin-sdk/{store-Do3t33-c.js → store-BdrNabcU.js} +2 -2
- package/dist/plugin-sdk/{subsystem-Coz2AgU8.js → subsystem-B2uDN3TV.js} +1 -1
- package/dist/plugin-sdk/{synthesis-C_u94H_P.js → synthesis-Dv5GwSky.js} +49 -49
- package/dist/plugin-sdk/{tables-DR0NmBeH.js → tables-DNwXwNFa.js} +1 -1
- package/dist/plugin-sdk/{target-errors-B7YyMnIi.js → target-errors-Paro1BjP.js} +2 -2
- package/dist/plugin-sdk/{thinking-DCNUIAHY.js → thinking-CXqf7WTe.js} +5 -5
- package/dist/plugin-sdk/{tokens-CWMflosr.js → tokens-bC3UVmVH.js} +1 -1
- package/dist/plugin-sdk/{tool-images-D7Lno-TE.js → tool-images-HJ2sfZDV.js} +2 -2
- package/dist/plugin-sdk/{tool-loop-detection-DseOlBug.js → tool-loop-detection-gmtzSlNZ.js} +2 -2
- package/dist/plugin-sdk/web-CmKqZEsX.js +66 -0
- package/dist/plugin-sdk/{whatsapp-actions-eTefsWhW.js → whatsapp-actions-B_1l8JMU.js} +21 -21
- package/dist/{plugins-cli-QZlpLtva.js → plugins-cli-6UYkZBH0.js} +5 -5
- package/dist/{plugins-cli-Cd99p333.js → plugins-cli-DPetEhfv.js} +5 -5
- package/dist/{program-DtyqJT55.js → program-CVy9LVoS.js} +10 -10
- package/dist/{program-context-D0rHgaWi.js → program-context-CBI6gIf-.js} +19 -19
- package/dist/{prompt-select-styled-Dw0GkMPo.js → prompt-select-styled-BlXl_Qf7.js} +6 -6
- package/dist/{prompt-select-styled-DqjIswKp.js → prompt-select-styled-Bv675D48.js} +6 -6
- package/dist/{provider-auth-helpers-DCEiDG3X.js → provider-auth-helpers-BB1lhCy5.js} +1 -1
- package/dist/{provider-auth-helpers-KFQclkJT.js → provider-auth-helpers-RUQD5XAm.js} +1 -1
- package/dist/{push-apns-CB_8WzQ9.js → push-apns-Cr-a1KBt.js} +1 -1
- package/dist/{push-apns-tfhjtI57.js → push-apns-rPetW5cI.js} +1 -1
- package/dist/{pw-ai-CeWN4iD9.js → pw-ai-DWkC5eGA.js} +1 -1
- package/dist/{register.agent-i2wi1-vo.js → register.agent-DKDwNHQi.js} +9 -9
- package/dist/{register.agent--QTUjLu9.js → register.agent-j6OlKEU-.js} +8 -8
- package/dist/{register.configure-B9JysEK8.js → register.configure-BgIXIq9d.js} +9 -9
- package/dist/{register.configure-ByJcC9t4.js → register.configure-CopgSygi.js} +9 -9
- package/dist/{register.maintenance-TB5RRHQv.js → register.maintenance-BKsCM6NG.js} +11 -11
- package/dist/{register.maintenance-D67PVhC5.js → register.maintenance-DjaGkVtr.js} +10 -10
- package/dist/{register.message-DT_TqsFl.js → register.message-C3oHvmdl.js} +5 -5
- package/dist/{register.message-G6-UeGON.js → register.message-bxhUcSyj.js} +5 -5
- package/dist/{register.onboard-BPcP1dJD.js → register.onboard-D0DHcb20.js} +7 -7
- package/dist/{register.onboard-jbp1Eeea.js → register.onboard-DijWH8Vd.js} +7 -7
- package/dist/{register.setup-Le3LEqeh.js → register.setup-CrFzd94c.js} +7 -7
- package/dist/{register.setup-D4QeCLuQ.js → register.setup-XlCTnTm_.js} +7 -7
- package/dist/{register.status-health-sessions-BACExyrd.js → register.status-health-sessions-AWCg_uLf.js} +7 -7
- package/dist/{register.status-health-sessions-B03EDfwZ.js → register.status-health-sessions-VwvDWUxZ.js} +7 -7
- package/dist/{register.subclis-CTnvwrsP.js → register.subclis-Bw8k5Z5C.js} +10 -10
- package/dist/{reply-C5VU6T-F.js → reply-D7_t00Jt.js} +6 -9
- package/dist/{run-main-DmgESA-W.js → run-main-7BEaNeDG.js} +18 -18
- package/dist/{runner-D633VT13.js → runner-ecX1WzDt.js} +1 -1
- package/dist/{security-cli-ChPAyhec.js → security-cli-BpnzAB5_.js} +2 -2
- package/dist/{security-cli-Cq56CAVI.js → security-cli-D9WEiEjD.js} +2 -2
- package/dist/{server-methods-EJZ_r3g7.js → server-methods-CTeJHJSZ.js} +8 -8
- package/dist/{server-methods-kM6zF8qf.js → server-methods-FQ-PqiVC.js} +8 -8
- package/dist/{server-node-events-ZgCh4sCg.js → server-node-events-BqvcHbuK.js} +5 -5
- package/dist/{server-node-events-BM-APRHy.js → server-node-events-Z7epDloV.js} +5 -5
- package/dist/{status-Nf53o222.js → status-CKROJwI2.js} +1 -1
- package/dist/{status-C_gwgMp4.js → status-DLFbpd9v.js} +4 -4
- package/dist/{status-WMQ2CpbK.js → status-DMigoL7q.js} +4 -4
- package/dist/{status-BhQk3JSz.js → status-x7WCSVhG.js} +1 -1
- package/dist/{subagent-registry-BCWbFTGF.js → subagent-registry-BvP8AGdE.js} +6 -9
- package/dist/{synthesis-DIKBPZgB.js → synthesis-By7KPUAm.js} +4 -4
- package/dist/{synthesis-CJIAYDoU.js → synthesis-DDId6n26.js} +4 -4
- package/dist/{synthesis-CWsrtigA.js → synthesis-DgQz6kPf.js} +2 -2
- package/dist/{synthesis-VfWtSYrv.js → synthesis-E4flT91F.js} +7 -7
- package/dist/{unified-runner-yPBTU4xt.js → unified-runner-DaSb-TsZ.js} +28 -24
- package/dist/{update-cli-sTB4AuZ6.js → update-cli-C5H6DkNM.js} +10 -10
- package/dist/{update-cli-NRTVUdGw.js → update-cli-D0relAZw.js} +11 -11
- package/dist/{update-runner-BQJSshFU.js → update-runner-B_yVOk8Z.js} +1 -1
- package/dist/{update-runner-DG5x7t--.js → update-runner-D99V_zHX.js} +1 -1
- package/dist/{web-D9_FatXM.js → web-BBz1kF_9.js} +7 -7
- package/dist/{web-Dpfsnk-b.js → web-BQh2S6oq.js} +4 -4
- package/dist/{web-TVVa5EDS.js → web-Bdebat5l.js} +5 -5
- package/dist/{web-eJWNRwV5.js → web-CiYoJfrl.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/index.ts +12 -2
- 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/scripts/detach-task.sh +57 -5
- package/dist/plugin-sdk/web-DFvYfej5.js +0 -66
|
@@ -55,7 +55,17 @@ const outlookPlugin = {
|
|
|
55
55
|
})();
|
|
56
56
|
|
|
57
57
|
// -------------------------------------------------------------------------
|
|
58
|
-
// Agent tools —
|
|
58
|
+
// Agent tools — registered unconditionally (not { optional: true }). The
|
|
59
|
+
// plugin is BUNDLED_ENABLED_BY_DEFAULT (see §32.11), so its tools should
|
|
60
|
+
// appear in the agent palette by default too. Previously {optional:true}
|
|
61
|
+
// gated the tools behind the user's tool-allowlist — which created a
|
|
62
|
+
// silent-failure footgun: the `before_prompt_build` hook claimed "you
|
|
63
|
+
// have email tools" while the actual palette filtered them out unless
|
|
64
|
+
// the user had hand-added `outlook` / `group:plugins` to their allowlist.
|
|
65
|
+
// Users opt OUT via `plugins.entries.outlook.enabled: false` or by
|
|
66
|
+
// denying the tool names in their agent's tools.deny — same escape
|
|
67
|
+
// hatches as any other bundled capability. Subagent gating is handled
|
|
68
|
+
// separately in pi-tools.policy.ts:SUBAGENT_TOOL_DENY_ALWAYS.
|
|
59
69
|
// -------------------------------------------------------------------------
|
|
60
70
|
const tools = [
|
|
61
71
|
createOutlookListTool,
|
|
@@ -68,7 +78,7 @@ const outlookPlugin = {
|
|
|
68
78
|
];
|
|
69
79
|
|
|
70
80
|
for (const createTool of tools) {
|
|
71
|
-
api.registerTool(createTool() as unknown as AnyAgentTool
|
|
81
|
+
api.registerTool(createTool() as unknown as AnyAgentTool);
|
|
72
82
|
}
|
|
73
83
|
|
|
74
84
|
// -------------------------------------------------------------------------
|
package/package.json
CHANGED
|
@@ -15,7 +15,8 @@
|
|
|
15
15
|
# → "aborted rc=<N> signal=<NAME>" on SIGTERM/INT/HUP
|
|
16
16
|
#
|
|
17
17
|
# Exit code: 0 on successful spawn, 1 on missing args, 2 on invalid args,
|
|
18
|
-
# 3 on workdir creation failure
|
|
18
|
+
# 3 on workdir creation failure, 4 on task-id collision (a task
|
|
19
|
+
# with the same id is already running).
|
|
19
20
|
#
|
|
20
21
|
# Hardening notes (2.7.0):
|
|
21
22
|
# - task-id is validated against an allow-list ([a-zA-Z0-9._-], 1–60 chars,
|
|
@@ -27,6 +28,14 @@
|
|
|
27
28
|
# - Child shell has a TERM/INT/HUP trap that records an "aborted" status
|
|
28
29
|
# before exiting, so external kill signals leave a deterministic record.
|
|
29
30
|
#
|
|
31
|
+
# Hardening notes (post-2.8.12):
|
|
32
|
+
# - Pre-flight collision check: refuses to overwrite the state files of a
|
|
33
|
+
# task-id whose recorded PID is still alive (exit code 4).
|
|
34
|
+
# - Log file is bounded by LONG_TASK_LOG_MAX_BYTES (default 104857600 =
|
|
35
|
+
# 100 MiB; override via env). Once exceeded, a single marker line is
|
|
36
|
+
# written and further output is silently discarded — the producer keeps
|
|
37
|
+
# running, never gets SIGPIPE.
|
|
38
|
+
#
|
|
30
39
|
# Design notes:
|
|
31
40
|
# - setsid + nohup + disown: triple-armor against SIGHUP when the parent
|
|
32
41
|
# shell exits. The subprocess gets its own session.
|
|
@@ -75,12 +84,31 @@ if ! mkdir -p "$workdir"; then
|
|
|
75
84
|
exit 3
|
|
76
85
|
fi
|
|
77
86
|
|
|
87
|
+
# --- log size cap -----------------------------------------------------------
|
|
88
|
+
log_max_bytes="${LONG_TASK_LOG_MAX_BYTES:-104857600}"
|
|
89
|
+
if ! [[ "$log_max_bytes" =~ ^[0-9]+$ ]] || (( log_max_bytes < 1 )); then
|
|
90
|
+
echo "detach-task: LONG_TASK_LOG_MAX_BYTES must be a positive integer (got: $log_max_bytes)" >&2
|
|
91
|
+
exit 2
|
|
92
|
+
fi
|
|
93
|
+
|
|
78
94
|
pid_file="$workdir/task-${task_id}.pid"
|
|
79
95
|
cmd_file="$workdir/task-${task_id}.cmd"
|
|
80
96
|
started_file="$workdir/task-${task_id}.started"
|
|
81
97
|
log_file="$workdir/task-${task_id}.log"
|
|
82
98
|
status_file="$workdir/task-${task_id}.status"
|
|
83
99
|
|
|
100
|
+
# --- collision check --------------------------------------------------------
|
|
101
|
+
# If a pid file exists and the recorded PID is still alive, a prior task with
|
|
102
|
+
# this id is already running. Refuse to clobber its log/status files.
|
|
103
|
+
# Stale pid files (process already dead) are silently overwritten below.
|
|
104
|
+
if [[ -f "$pid_file" ]]; then
|
|
105
|
+
prior_pid="$(tr -dc '0-9' < "$pid_file" 2>/dev/null || true)"
|
|
106
|
+
if [[ -n "$prior_pid" ]] && kill -0 "$prior_pid" 2>/dev/null; then
|
|
107
|
+
echo "detach-task: task-id '$task_id' is already running (pid=$prior_pid). Pick a different id or wait for it to finish." >&2
|
|
108
|
+
exit 4
|
|
109
|
+
fi
|
|
110
|
+
fi
|
|
111
|
+
|
|
84
112
|
# --- atomic status writer (parent) -----------------------------------------
|
|
85
113
|
write_status_atomic() {
|
|
86
114
|
local _payload="$1"
|
|
@@ -104,7 +132,8 @@ setsid nohup bash -c '
|
|
|
104
132
|
set -u
|
|
105
133
|
_status="$1"
|
|
106
134
|
_log="$2"
|
|
107
|
-
|
|
135
|
+
_max="$3"
|
|
136
|
+
shift 3
|
|
108
137
|
_write() {
|
|
109
138
|
local _tmp="${_status}.$$.${RANDOM}.tmp"
|
|
110
139
|
printf "%s\n" "$1" > "$_tmp" && mv -f "$_tmp" "$_status"
|
|
@@ -115,13 +144,36 @@ setsid nohup bash -c '
|
|
|
115
144
|
_write "aborted rc=$_rc signal=$_sig ended=$(date -u -Iseconds)" 2>/dev/null || true
|
|
116
145
|
exit "$_rc"
|
|
117
146
|
}
|
|
147
|
+
# Reads stdin line-by-line, prints to its stdout (which the caller
|
|
148
|
+
# redirects to the log file) up to _max total bytes, then writes one
|
|
149
|
+
# cap marker and silently discards the rest. Reading continues until
|
|
150
|
+
# EOF so the producing pipe never receives SIGPIPE.
|
|
151
|
+
_log_capper() {
|
|
152
|
+
local _total=0
|
|
153
|
+
local _capped=0
|
|
154
|
+
local _line
|
|
155
|
+
local _ls
|
|
156
|
+
while IFS= read -r _line; do
|
|
157
|
+
if (( _capped )); then
|
|
158
|
+
continue
|
|
159
|
+
fi
|
|
160
|
+
_ls=$(( ${#_line} + 1 ))
|
|
161
|
+
if (( _total + _ls > _max )); then
|
|
162
|
+
printf "[long-task: log capped at %s bytes; further output discarded]\n" "$_max"
|
|
163
|
+
_capped=1
|
|
164
|
+
continue
|
|
165
|
+
fi
|
|
166
|
+
printf "%s\n" "$_line"
|
|
167
|
+
_total=$(( _total + _ls ))
|
|
168
|
+
done
|
|
169
|
+
}
|
|
118
170
|
trap "_on_signal TERM" TERM
|
|
119
171
|
trap "_on_signal INT" INT
|
|
120
172
|
trap "_on_signal HUP" HUP
|
|
121
|
-
"$@"
|
|
122
|
-
rc
|
|
173
|
+
"$@" 2>&1 | _log_capper >> "$_log"
|
|
174
|
+
rc=${PIPESTATUS[0]}
|
|
123
175
|
_write "complete rc=$rc ended=$(date -u -Iseconds)"
|
|
124
|
-
' -- "$status_file" "$log_file" "$@" < /dev/null > /dev/null 2>&1 &
|
|
176
|
+
' -- "$status_file" "$log_file" "$log_max_bytes" "$@" < /dev/null > /dev/null 2>&1 &
|
|
125
177
|
|
|
126
178
|
pid=$!
|
|
127
179
|
disown "$pid" 2>/dev/null || true
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { a as WA_WEB_AUTH_DIR, g as webAuthExists, s as logWebSelfId, u as pickWebChannel } from "./accounts-D9zGZU5t.js";
|
|
2
|
-
import "./reply-DWwxgBtH.js";
|
|
3
|
-
import "./paths-DR2yt_mP.js";
|
|
4
|
-
import "./github-copilot-token-D9X2phUj.js";
|
|
5
|
-
import "./plugins-BbAvhC25.js";
|
|
6
|
-
import "./fetch-CUNoPTKm.js";
|
|
7
|
-
import "./registry--_pGht6S.js";
|
|
8
|
-
import "./retry-ilSJqnz9.js";
|
|
9
|
-
import "./send-ZhAe1nXO.js";
|
|
10
|
-
import "./config-BzupW6LN.js";
|
|
11
|
-
import "./subsystem-Coz2AgU8.js";
|
|
12
|
-
import "./command-format-DSdvQ_M5.js";
|
|
13
|
-
import "./model-selection-CtVwtb6y.js";
|
|
14
|
-
import "./agent-scope-C3gMMKCU.js";
|
|
15
|
-
import "./manifest-registry-hy3Bn-r9.js";
|
|
16
|
-
import "./redact-DPnDWsnT.js";
|
|
17
|
-
import "./errors-Bv8oZiTO.js";
|
|
18
|
-
import "./channel-activity-Ji7f0gqq.js";
|
|
19
|
-
import "./image-ops-Bnp6LXEx.js";
|
|
20
|
-
import "./ssrf-DKZ8eBrk.js";
|
|
21
|
-
import "./local-roots-Ckk1QfzI.js";
|
|
22
|
-
import "./ir-Fb3qpcis.js";
|
|
23
|
-
import "./chunk-jvk9axTQ.js";
|
|
24
|
-
import "./message-channel-BdI5Ra9S.js";
|
|
25
|
-
import "./bindings-BbwoUGPx.js";
|
|
26
|
-
import "./markdown-tables-Dfaqilz6.js";
|
|
27
|
-
import "./render-BiJZ5W4Z.js";
|
|
28
|
-
import "./tables-DR0NmBeH.js";
|
|
29
|
-
import "./send-jsofmTfJ.js";
|
|
30
|
-
import "./tool-images-D7Lno-TE.js";
|
|
31
|
-
import "./target-errors-B7YyMnIi.js";
|
|
32
|
-
import "./send-BP5pSPaZ.js";
|
|
33
|
-
import "./send-DLO_yV5_.js";
|
|
34
|
-
import "./runner-BhifC1J_.js";
|
|
35
|
-
import "./reply-prefix-BHuV5t70.js";
|
|
36
|
-
import "./tokens-CWMflosr.js";
|
|
37
|
-
import "./skill-commands-DEfqC_kJ.js";
|
|
38
|
-
import "./skills-C9DbB-Kp.js";
|
|
39
|
-
import "./chrome-D9kN9org.js";
|
|
40
|
-
import "./thinking-DCNUIAHY.js";
|
|
41
|
-
import "./accounts-Dtszw3Zn.js";
|
|
42
|
-
import "./accounts-BToL3HlP.js";
|
|
43
|
-
import "./deliver-CKgFosI5.js";
|
|
44
|
-
import "./pi-embedded-helpers-BL7ZRhGv.js";
|
|
45
|
-
import "./paths-A0xdf3yk.js";
|
|
46
|
-
import "./diagnostic-_oc91gNi.js";
|
|
47
|
-
import "./store-Do3t33-c.js";
|
|
48
|
-
import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-CfaamthT.js";
|
|
49
|
-
import "./image-DFyINnvE.js";
|
|
50
|
-
import "./pi-model-discovery-LbcEa65a.js";
|
|
51
|
-
import "./api-key-rotation-CBsLb_4V.js";
|
|
52
|
-
import "./diagnostic-session-state-Wd5tNeQG.js";
|
|
53
|
-
import "./manager-B3jEviU1.js";
|
|
54
|
-
import "./sqlite-CmVrFEYD.js";
|
|
55
|
-
import "./commands-registry-BuYpmEx-.js";
|
|
56
|
-
import "./send-CGhw9mO3.js";
|
|
57
|
-
import "./proxy-D27OUbrW.js";
|
|
58
|
-
import "./resolve-route-CHQ7BTlU.js";
|
|
59
|
-
import "./replies-BR2TPTVW.js";
|
|
60
|
-
import "./pi-auth-json-DiyK6bgV.js";
|
|
61
|
-
import "./outbound-attachment-D7ME_Kib.js";
|
|
62
|
-
import { n as sendMessageWhatsApp } from "./outbound-DW3cqlQW.js";
|
|
63
|
-
import { i as waitForWaConnection, t as createWaSocket } from "./session-BfyK_04G.js";
|
|
64
|
-
import { t as loginWeb } from "./login-K1YB_7-t.js";
|
|
65
|
-
|
|
66
|
-
export { WA_WEB_AUTH_DIR, createWaSocket, logWebSelfId, loginWeb, monitorWebChannel, monitorWebInbox, pickWebChannel, sendMessageWhatsApp, waitForWaConnection, webAuthExists };
|