@symerian/symi 2.8.14 → 2.8.16
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-wWWkC0JH.js → accounts-3dCrO3oZ.js} +1 -1
- package/dist/{accounts-BsgY6sda.js → accounts-BRw8yhIW.js} +21 -21
- package/dist/{accounts-Bsg6r6H7.js → accounts-BuZxOb3B.js} +1 -1
- package/dist/{acp-cli-D7uCUCr8.js → acp-cli-BgR7mxTS.js} +2 -2
- package/dist/{acp-cli-CAU8UW9I.js → acp-cli-D1JYg9c1.js} +2 -2
- package/dist/{active-listener-AVNn5_U9.js → active-listener-BVZOh2T1.js} +1 -1
- package/dist/{agent-scope-Cpm7a9ss.js → agent-scope-CpEJ0B88.js} +3 -3
- package/dist/{agents-DlAvDWxz.js → agents-D6V12K_e.js} +5 -5
- package/dist/{agents.config-Dd-11klq.js → agents.config-BIIkG8rN.js} +1 -1
- package/dist/{agents.config-BKKMbeeE.js → agents.config-C0iGGY9q.js} +1 -1
- package/dist/{audio-preflight-rrz8KyHd.js → audio-preflight-rjCWpcfE.js} +29 -29
- package/dist/{audit-CB97BqHJ.js → audit-Dr_8rC6G.js} +2 -2
- package/dist/{audit-BhCJV2l6.js → audit-xiwEIT96.js} +2 -2
- package/dist/{auth-choice-CRQRPwQt.js → auth-choice-BcCUgEa4.js} +2 -2
- package/dist/{auth-choice-C6woT6k2.js → auth-choice-jyLLyEpy.js} +2 -2
- package/dist/{auth-profiles-BzB_Exeq.js → auth-profiles-C2vj6htZ.js} +17 -17
- package/dist/{banner-DrNha2_N.js → banner-DSRsscTp.js} +1 -1
- package/dist/{bindings-xcRox9xM.js → bindings-BsHoBLIE.js} +2 -2
- package/dist/{browser-cli-5ME9iiC3.js → browser-cli-BQeCPbES.js} +3 -3
- package/dist/{browser-cli-BTci35qB.js → browser-cli-IXepRCZR.js} +3 -3
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +54 -54
- package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
- package/dist/bundled/command-logger/handler.js +1 -1
- package/dist/bundled/session-memory/handler.js +54 -54
- package/dist/{call-Cmb04dff.js → call-BkJK3eYP.js} +2 -1
- package/dist/{call-BrRWr7Lj.js → call-CAGvQYXj.js} +2 -1
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-activity-CzHaIUAp.js → channel-activity-D8QD7GoV.js} +1 -1
- package/dist/{channel-options-D8q9En4T.js → channel-options-BSdsxwj0.js} +1 -1
- package/dist/{channel-options-DYy2sCfN.js → channel-options-Cr_if7it.js} +1 -1
- package/dist/{channel-web-CRBU4eZk.js → channel-web-C3gcPe4C.js} +1 -1
- package/dist/{channels-cli-Dk3kUw9A.js → channels-cli-Bn6mTlYq.js} +9 -9
- package/dist/{channels-cli-BUk43hHR.js → channels-cli-O7MxdB1l.js} +9 -9
- package/dist/{chrome-DwXnykXR.js → chrome-C08Z0XAa.js} +21 -21
- package/dist/{chunk-BcxcL1U3.js → chunk-BRe1o4Af.js} +1 -1
- package/dist/cli/daemon-cli.js +1 -1
- package/dist/{cli-5gWsnsB7.js → cli-CLOf6U-k.js} +6 -6
- package/dist/{cli-DjZzJy3t.js → cli-RIwsXnB-.js} +6 -6
- package/dist/{client-C7AOOnKZ.js → client-CYsBIR3j.js} +27 -1
- package/dist/{client-qUlxXXVJ.js → client-Cmq13-uF.js} +27 -1
- package/dist/{command-registry-LjFltTU9.js → command-registry-BiznuVYK.js} +11 -11
- package/dist/{commands-registry-ByGkL6hs.js → commands-registry-DxbSTLNQ.js} +4 -4
- package/dist/{completion-cli-Cf6fYZWL.js → completion-cli-BVG9ZtBG.js} +2 -2
- package/dist/{completion-cli-BVTGy8th.js → completion-cli-D-xVtDhj.js} +1 -1
- package/dist/{config-C4WnAd-c.js → config-BkZ9HOKT.js} +17 -17
- package/dist/{config-cli-EgWrCemi.js → config-cli-CDTQQFyj.js} +1 -1
- package/dist/{config-cli-C7DIbGxx.js → config-cli-zd2upqe_.js} +1 -1
- package/dist/{configure-B67uIawm.js → configure-BHdczngQ.js} +6 -6
- package/dist/{configure-Bk-snuxh.js → configure-Cu4CiLWY.js} +6 -6
- package/dist/{consolidate-DRtVvG2U.js → consolidate-07QMweFF.js} +4 -4
- package/dist/control-ui/index.html +7 -0
- package/dist/control-ui/js/menu.js +2 -0
- package/dist/control-ui/js/settings.js +1 -0
- package/dist/{cron-cli-CGJveo7P.js → cron-cli-CZCm3aLt.js} +3 -3
- package/dist/{cron-cli-Crh_r2aK.js → cron-cli-Dq2FEfK1.js} +3 -3
- package/dist/{daemon-cli-Cq-IaYw4.js → daemon-cli-B2_uIgDM.js} +2 -2
- package/dist/{daemon-cli-CAIg9sMo.js → daemon-cli-CweMes2K.js} +2 -2
- package/dist/daemon-cli.js +27 -0
- package/dist/{deliver-SLYAWE19.js → deliver-qUx-eLKt.js} +20 -20
- package/dist/{devices-cli-CUT_8CuJ.js → devices-cli-3ui-Wcaj.js} +2 -2
- package/dist/{devices-cli-hSn5vjJZ.js → devices-cli-DeoPyzAd.js} +2 -2
- package/dist/{diagnostic-DTkZsRNM.js → diagnostic-BUcR3Meg.js} +1 -1
- package/dist/{doctor-completion-lE_33xaY.js → doctor-completion-ClveVbW_.js} +1 -1
- package/dist/{doctor-completion-By066O3p.js → doctor-completion-e-Ke-FnA.js} +1 -1
- package/dist/entry.js +1 -1
- package/dist/{env-CB65jmJQ.js → env-BDXYbTKj.js} +1 -1
- package/dist/{exec-approvals-cli-BTfZiH6z.js → exec-approvals-cli-Bx9loYnQ.js} +4 -4
- package/dist/{exec-approvals-cli-DTad2Zi_.js → exec-approvals-cli-CTEn_Eu_.js} +4 -4
- package/dist/extensionAPI.js +2 -2
- package/dist/{frontmatter-CT1M0pRK.js → frontmatter-CTR5f_Ez.js} +4 -4
- package/dist/{gateway-cli-DqEgqVKC.js → gateway-cli-CBseg7zA.js} +34 -16
- package/dist/{gateway-cli-C6uT2x34.js → gateway-cli-DGMuMxMT.js} +34 -16
- package/dist/{gateway-rpc-BKJyAcQd.js → gateway-rpc-DbSbyIcL.js} +1 -1
- package/dist/{gateway-rpc-DActF8Qj.js → gateway-rpc-QsFn5Zr1.js} +1 -1
- package/dist/{gemini-auth-D80BsXr2.js → gemini-auth-BefM10YB.js} +1 -1
- package/dist/{github-copilot-token-B8B2pmph.js → github-copilot-token-cCYzSU9h.js} +7 -7
- package/dist/{glass-ui-ws-CLAUHeZR.js → glass-ui-ws-B0WonpHP.js} +13 -13
- package/dist/{glass-ui-ws-77TY57IO.js → glass-ui-ws-BU6qyCvM.js} +13 -13
- package/dist/{health-2jkjZxY8.js → health-BrpUi4qW.js} +2 -2
- package/dist/{health-CvMHgR-L.js → health-d4gqJJCY.js} +2 -2
- package/dist/{hooks-cli-CRZySOiz.js → hooks-cli-CBStbWME.js} +7 -7
- package/dist/{hooks-cli-DSaezFsD.js → hooks-cli-Dm2SU8AY.js} +7 -7
- package/dist/{image-BHF_fnIp.js → image-C6rCON9L.js} +4 -4
- package/dist/{image-ops-CY7v6vvp.js → image-ops-C7CauEK8.js} +16 -16
- package/dist/index.js +11 -11
- package/dist/{internal-FNqguZSK.js → internal-DjnxpF_K.js} +11 -11
- package/dist/{ir-D6MiJpAy.js → ir-7tMVY7D_.js} +4 -4
- package/dist/llm-slug-generator.js +54 -54
- package/dist/{local-roots-tcdaIEhh.js → local-roots-ClipCZ9s.js} +5 -5
- package/dist/{login-D4ZkmSrY.js → login-D4rZWBXe.js} +7 -7
- package/dist/{login-qr-C9ftIq3n.js → login-qr-DdAVHOEC.js} +12 -12
- package/dist/{logs-cli-BPnrAg0W.js → logs-cli-1hn28HCu.js} +3 -3
- package/dist/{logs-cli-DiDesnnp.js → logs-cli-R4WwQvR2.js} +3 -3
- package/dist/{manager-DxCmjSfP.js → manager-B-5p7UGu.js} +25 -25
- package/dist/{manager-DrmlegR2.js → manager-BOvfAdfG.js} +2 -2
- package/dist/{manager-BtWtmpxN.js → manager-CtwApSQo.js} +2 -2
- package/dist/{manager-DDELj5o9.js → manager-DDboJTtn.js} +2 -2
- package/dist/{manifest-registry-BvGv6lp9.js → manifest-registry-CBCGTsIb.js} +19 -19
- package/dist/{markdown-tables-CE-qSMGB.js → markdown-tables-x2Xe2UXh.js} +1 -1
- package/dist/{memory-cli-ENCASZJk.js → memory-cli-BOxWccJu.js} +3 -3
- package/dist/{memory-cli-Qgbcxvuf.js → memory-cli-D2QHGsxh.js} +3 -3
- package/dist/{message-channel-lwVT8QjK.js → message-channel-OlFBYAw8.js} +1 -1
- package/dist/{models-COhUz7M9.js → models-Cn1cbmce.js} +3 -3
- package/dist/{models-cli-CYvXBvmZ.js → models-cli-CXW-3Zot.js} +8 -8
- package/dist/{models-cli-CCxYcF4R.js → models-cli-Cdkkr4--.js} +7 -7
- package/dist/{node-cli-DwDQpTW5.js → node-cli-BBN6PoOG.js} +1 -1
- package/dist/{node-cli-DEcCM2p0.js → node-cli-BsAzTrAx.js} +1 -1
- package/dist/{nodes-cli-CqBLemeB.js → nodes-cli-DE60dv81.js} +3 -3
- package/dist/{nodes-cli-u8k6TPmF.js → nodes-cli-t3azniiS.js} +3 -3
- package/dist/{onboard-CQNUYBIp.js → onboard-BJ9vVhFw.js} +3 -3
- package/dist/{onboard-fVpLVnwg.js → onboard-UB4D1vwP.js} +3 -3
- package/dist/{onboard-channels-CWw8G-6n.js → onboard-channels-Cfc9EhLj.js} +1 -1
- package/dist/{onboard-channels-9erx07qe.js → onboard-channels-Gfgyvx9N.js} +1 -1
- package/dist/{onboard-helpers-C8f_xi6R.js → onboard-helpers-B7jBYbCU.js} +1 -1
- package/dist/{onboard-helpers-CF0Cp3OB.js → onboard-helpers-DjlGq6iG.js} +1 -1
- package/dist/{onboard-remote-DgGH0dTe.js → onboard-remote-CXuHbtrT.js} +1 -1
- package/dist/{onboard-remote-CWal5_aZ.js → onboard-remote-D7wGqONm.js} +1 -1
- package/dist/{onboard-skills-DnzJLU2H.js → onboard-skills-BDhqz3te.js} +1 -1
- package/dist/{onboard-skills-CO2TjuO3.js → onboard-skills-ChQnpMi-.js} +1 -1
- package/dist/{onboarding-D-OIkDwZ.js → onboarding-BfSg5GnT.js} +7 -7
- package/dist/{onboarding-CtEiH9WG.js → onboarding-Bv89FLSZ.js} +7 -7
- package/dist/{onboarding.finalize-BY3HNjX4.js → onboarding.finalize-B8MFYp8E.js} +12 -12
- package/dist/{onboarding.finalize-DTbpLV-T.js → onboarding.finalize-DMJTZPb_.js} +11 -11
- package/dist/{onboarding.gateway-config-DlV0vso8.js → onboarding.gateway-config-Cm5jIfRz.js} +3 -3
- package/dist/{onboarding.gateway-config-D4rQoPRi.js → onboarding.gateway-config-wAyLcGRu.js} +3 -3
- package/dist/{outbound-C6Gm22UF.js → outbound-Zmd7UyQH.js} +7 -7
- package/dist/{outbound-attachment-BWyKV1Gy.js → outbound-attachment-DeCnZT-8.js} +2 -2
- package/dist/{paths-DEuVuViW.js → paths-CbQV9WEg.js} +1 -1
- package/dist/{pi-auth-json-Bv1NzJdR.js → pi-auth-json-RXOlh8ar.js} +1 -1
- package/dist/{pi-embedded-CdOdQw2i.js → pi-embedded-CzKPTG9K.js} +149 -75
- package/dist/{pi-embedded-helpers-DwQ9wJeT.js → pi-embedded-helpers-P13adotN.js} +73 -73
- package/dist/{plugin-registry-BrJ0-qlu.js → plugin-registry-CQAtbgft.js} +1 -1
- package/dist/{plugin-registry-Cuc8ORuR.js → plugin-registry-R7nyNT_4.js} +1 -1
- package/dist/plugin-sdk/{channel-web-t8UOP6Zu.js → channel-web-D1qaoERA.js} +1 -1
- package/dist/plugin-sdk/gateway/protocol/index.d.ts +6 -3
- package/dist/plugin-sdk/gateway/protocol/schema/tasks.d.ts +40 -0
- package/dist/plugin-sdk/gateway/protocol/schema/types.d.ts +3 -0
- package/dist/plugin-sdk/gateway/protocol/schema.d.ts +1 -0
- package/dist/plugin-sdk/index.js +3 -3
- package/dist/plugin-sdk/infra/long-task-state.d.ts +34 -0
- package/dist/plugin-sdk/{manager-BPm5oefC.js → manager-CVuMChKq.js} +2 -2
- package/dist/plugin-sdk/{reply-BKAHTugL.js → reply-LZax-i7K.js} +149 -75
- package/dist/plugin-sdk/{synthesis-CVF7Fwhd.js → synthesis-DnknLqQP.js} +2 -2
- package/dist/plugin-sdk/{web-D0DsmFvw.js → web-DGGSyBgc.js} +3 -3
- package/dist/{plugins-v8k1XVOy.js → plugins-BzmbgY7s.js} +9 -9
- package/dist/{plugins-cli-DFmriy-c.js → plugins-cli-CyaM2yPX.js} +7 -7
- package/dist/{plugins-cli-BDalhI46.js → plugins-cli-DGWVBlc8.js} +7 -7
- package/dist/{program-DKh41c2a.js → program-2jsiC85C.js} +12 -12
- package/dist/{program-context-Cq7pqOrw.js → program-context-DQg-ZH6A.js} +30 -30
- package/dist/{prompt-select-styled-DvvSE_ni.js → prompt-select-styled-CQJkA--o.js} +8 -8
- package/dist/{prompt-select-styled-BFCAZLwK.js → prompt-select-styled-Csj7D4id.js} +8 -8
- package/dist/{provider-auth-helpers-DXppgV1l.js → provider-auth-helpers-C1rUolDI.js} +1 -1
- package/dist/{provider-auth-helpers-B-LkDxxi.js → provider-auth-helpers-DSq3qfws.js} +1 -1
- package/dist/{push-apns-DCA47WA5.js → push-apns-Dv3XQClG.js} +1 -1
- package/dist/{push-apns-DvudhEAb.js → push-apns-FvyXV3Um.js} +1 -1
- package/dist/{pw-ai-XGqnSWju.js → pw-ai-CeWN4iD9.js} +11 -11
- package/dist/{qmd-manager-CbRJhonG.js → qmd-manager-BXkbA8Y9.js} +8 -8
- package/dist/{register.agent-_BV5KyFb.js → register.agent-Cs5QU2Cd.js} +11 -11
- package/dist/{register.agent-aFj_SMi3.js → register.agent-DCIdzwFG.js} +10 -10
- package/dist/{register.configure-Dx0Uhmlz.js → register.configure-BBKyd--9.js} +13 -13
- package/dist/{register.configure-CvOoD5gE.js → register.configure-C64fHXoT.js} +13 -13
- package/dist/{register.maintenance-CMeJR7DG.js → register.maintenance-D99fy4mM.js} +13 -13
- package/dist/{register.maintenance-BuZpoSik.js → register.maintenance-DRUMeCun.js} +12 -12
- package/dist/{register.message-xxGePuRC.js → register.message-BL30Nofx.js} +7 -7
- package/dist/{register.message-qysZPg3G.js → register.message-CelO3y3f.js} +7 -7
- package/dist/{register.onboard-1MP2I0q4.js → register.onboard-Cb9K2U81.js} +9 -9
- package/dist/{register.onboard-D4Aow7Gc.js → register.onboard-j6fg7rSF.js} +9 -9
- package/dist/{register.setup-BT74aXzA.js → register.setup-BfbJZE5C.js} +9 -9
- package/dist/{register.setup-DzliKkWh.js → register.setup-xyGsh3Fi.js} +9 -9
- package/dist/{register.status-health-sessions-D7VYZlrU.js → register.status-health-sessions-BE4TcJ1J.js} +9 -9
- package/dist/{register.status-health-sessions-B3K2gZ72.js → register.status-health-sessions-CpnBFwbx.js} +9 -9
- package/dist/{register.subclis-BCy0IDRv.js → register.subclis-8cGjLTmN.js} +20 -20
- package/dist/{registry-X6fUE0K7.js → registry-DYq1AYOv.js} +19 -19
- package/dist/{replies-86F3PldM.js → replies-CUWXgyx2.js} +3 -3
- package/dist/{reply-Dg1ZU3DZ.js → reply-CaGCmutq.js} +125 -78
- package/dist/{reply-prefix-CI_IdwqH.js → reply-prefix-CvEIl6_d.js} +1 -1
- package/dist/{resolve-route-BgSuN9c6.js → resolve-route-Jy5dFY67.js} +4 -4
- package/dist/{retry-4oEAHckB.js → retry-B-y5suGA.js} +1 -1
- package/dist/{rpc-DYHXLh0P.js → rpc-C3ZUAjXK.js} +1 -1
- package/dist/{rpc-DdlEeEXT.js → rpc-St4eAsjR.js} +1 -1
- package/dist/{run-main-OS2aFAJ2.js → run-main-BzZuJeMa.js} +20 -20
- package/dist/{runner-B5oNTtgf.js → runner-D633VT13.js} +22 -22
- package/dist/{security-cli-BadXDWTh.js → security-cli-B8gavsuQ.js} +3 -3
- package/dist/{security-cli-D5y28-RH.js → security-cli-BSvxNP9m.js} +3 -3
- package/dist/{send-cCTQjuOZ.js → send-BKo1T3HF.js} +6 -6
- package/dist/{send-BTfqlrYd.js → send-Bb4it0te.js} +18 -18
- package/dist/{send-CSydU49L.js → send-C0QjmPaf.js} +10 -10
- package/dist/{send-Du-IfSne.js → send-Cpk3Ti6-.js} +6 -6
- package/dist/{send-ASDB3AzC.js → send-DFtnbzqy.js} +7 -7
- package/dist/{server-methods-BszFAkbJ.js → server-methods-BKlZejQC.js} +57 -13
- package/dist/{server-methods-D_iKJ-sj.js → server-methods-DEV38b_O.js} +57 -13
- package/dist/{server-node-events-CENHuAVz.js → server-node-events-3FL5gBKp.js} +7 -7
- package/dist/{server-node-events-uBu3XOjd.js → server-node-events-BX5JLPyV.js} +7 -7
- package/dist/{session-D8qLj_xN.js → session-BTeY6Gn2.js} +8 -8
- package/dist/{skill-commands-BcOduw6G.js → skill-commands-DG2lcozb.js} +16 -16
- package/dist/{skills-BrYDT4Jr.js → skills-CXxrn_e2.js} +24 -24
- package/dist/{sqlite-P-gMg7fi.js → sqlite-BN_hIcmu.js} +3 -3
- package/dist/{status-CBnCPUMG.js → status-L76LBY6B.js} +6 -6
- package/dist/{status-BvbJavmh.js → status-h7VP4Vpq.js} +1 -1
- package/dist/{status-DJAeKN4G.js → status-uBCH1pzQ.js} +1 -1
- package/dist/{status-CA0mUJld.js → status-zNfi0s3F.js} +6 -6
- package/dist/{store-Ceagbc4L.js → store-01F_JM7O.js} +6 -6
- package/dist/{subagent-registry-C1OyZl-M.js → subagent-registry-DlIPWOrx.js} +125 -78
- package/dist/{subsystem-CzXhCdeY.js → subsystem-BjyjJF-d.js} +1 -1
- package/dist/{synthesis-brHrnNF2.js → synthesis-1XabTYcd.js} +6 -6
- package/dist/{synthesis-z5B41p_r.js → synthesis-BfB-Lbjy.js} +6 -6
- package/dist/{synthesis-DuqSkHEr.js → synthesis-D1xCmGZi.js} +54 -54
- package/dist/{synthesis-DNTyB7JY.js → synthesis-D3EObLPS.js} +2 -2
- package/dist/{system-cli-BFopJ_xI.js → system-cli-BN9MXNk7.js} +3 -3
- package/dist/{system-cli-DryauSOX.js → system-cli-CD5latLh.js} +3 -3
- package/dist/{tables-qbCoZrYA.js → tables-DoG-pFrf.js} +1 -1
- package/dist/{target-errors-uNitqCCT.js → target-errors-DeJTztcq.js} +2 -2
- package/dist/{thinking-BV7SCNJP.js → thinking-BprCy23Z.js} +5 -5
- package/dist/{tokens-Bl5R3wPD.js → tokens-W0JzCJJM.js} +1 -1
- package/dist/{tool-images-JxNglLSr.js → tool-images-SqqWIT22.js} +2 -2
- package/dist/{tool-loop-detection-dfE771kg.js → tool-loop-detection-Dj9h1ogr.js} +3 -3
- package/dist/{tui-CvHbwJ3G.js → tui-Cu4TZK3I.js} +2 -2
- package/dist/{tui-BiBFm_RY.js → tui-DLkE0D7e.js} +2 -2
- package/dist/{tui-cli-CmyT9ctV.js → tui-cli-BfuEq3Q-.js} +3 -3
- package/dist/{tui-cli-CU6A8Bu2.js → tui-cli-DC9Bq-N_.js} +3 -3
- package/dist/{unified-runner-Czg3pdBc.js → unified-runner-KFxqPxWe.js} +378 -304
- package/dist/{update-cli-0lyGyl31.js → update-cli-CwtAWyeY.js} +14 -14
- package/dist/{update-cli-CIzkVfmj.js → update-cli-bTfRfI4b.js} +13 -13
- package/dist/{update-runner-D7-LDziQ.js → update-runner-BixvbAbN.js} +1 -1
- package/dist/{update-runner-aYPcKYAN.js → update-runner-DeT8NIX6.js} +1 -1
- package/dist/{web-Wk1ay1eQ.js → web-Bwrtjkmy.js} +2 -2
- package/dist/{web-CN7wnU7w.js → web-CO0AUYgu.js} +6 -6
- package/dist/{web-BJ5dUZso.js → web-N4FG6nyF.js} +7 -7
- package/dist/{web-B90A99YU.js → web-YSRcfzpP.js} +58 -58
- package/dist/{whatsapp-actions-llk0IUn2.js → whatsapp-actions-DmVpLXmh.js} +23 -23
- package/dist/{workspace-CywO4ayZ.js → workspace-DscDraUb.js} +27 -27
- 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/dist/paths-CYmyCDsE.js +0 -212
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { I as resolveUserPath, S as CONFIG_DIR } from "./registry-
|
|
2
|
-
import { f as normalizeSkillFilter } from "./agent-scope-
|
|
3
|
-
import { t as createSubsystemLogger } from "./subsystem-
|
|
4
|
-
import { h as resolveSymiPackageRootSync } from "./workspace-
|
|
5
|
-
import { c as resolveMemorySlotDecision, d as isDangerousHostEnvVarName, o as normalizePluginsConfig, s as resolveEnableState, t as loadPluginManifestRegistry } from "./manifest-registry-
|
|
6
|
-
import { a as resolveSymiManifestBlock, c as resolveSymiManifestRequires, d as hasBinary, f as isConfigPathTruthyWithDefaults, i as parseSymiManifestInstallBase, l as parseFrontmatterBlock, n as normalizeStringList, o as resolveSymiManifestInstall, p as resolveRuntimePlatform, r as parseFrontmatterBool, s as resolveSymiManifestOs, t as getFrontmatterString, u as evaluateRuntimeRequires } from "./frontmatter-
|
|
1
|
+
import { I as resolveUserPath, S as CONFIG_DIR } from "./registry-DYq1AYOv.js";
|
|
2
|
+
import { f as normalizeSkillFilter } from "./agent-scope-CpEJ0B88.js";
|
|
3
|
+
import { t as createSubsystemLogger } from "./subsystem-BjyjJF-d.js";
|
|
4
|
+
import { h as resolveSymiPackageRootSync } from "./workspace-DscDraUb.js";
|
|
5
|
+
import { c as resolveMemorySlotDecision, d as isDangerousHostEnvVarName, o as normalizePluginsConfig, s as resolveEnableState, t as loadPluginManifestRegistry } from "./manifest-registry-CBCGTsIb.js";
|
|
6
|
+
import { a as resolveSymiManifestBlock, c as resolveSymiManifestRequires, d as hasBinary, f as isConfigPathTruthyWithDefaults, i as parseSymiManifestInstallBase, l as parseFrontmatterBlock, n as normalizeStringList, o as resolveSymiManifestInstall, p as resolveRuntimePlatform, r as parseFrontmatterBool, s as resolveSymiManifestOs, t as getFrontmatterString, u as evaluateRuntimeRequires } from "./frontmatter-CTR5f_Ez.js";
|
|
7
7
|
import path from "node:path";
|
|
8
|
-
import
|
|
8
|
+
import fs from "node:fs";
|
|
9
9
|
import os from "node:os";
|
|
10
|
-
import fs from "node:fs/promises";
|
|
10
|
+
import fs$1 from "node:fs/promises";
|
|
11
11
|
import { fileURLToPath } from "node:url";
|
|
12
12
|
import { formatSkillsForPrompt, loadSkillsFromDir } from "@mariozechner/pi-coding-agent";
|
|
13
13
|
|
|
@@ -391,7 +391,7 @@ async function assertNoSymlinkEscape(relative, root, options) {
|
|
|
391
391
|
const isLast = idx === parts.length - 1;
|
|
392
392
|
current = path.join(current, part);
|
|
393
393
|
try {
|
|
394
|
-
if ((await fs.lstat(current)).isSymbolicLink()) {
|
|
394
|
+
if ((await fs$1.lstat(current)).isSymbolicLink()) {
|
|
395
395
|
if (options?.allowFinalSymlink && isLast) return;
|
|
396
396
|
const target = await tryRealpath(current);
|
|
397
397
|
if (!isPathInside(rootReal, target)) throw new Error(`Symlink escapes sandbox root (${shortPath(rootReal)}): ${shortPath(current)}`);
|
|
@@ -405,7 +405,7 @@ async function assertNoSymlinkEscape(relative, root, options) {
|
|
|
405
405
|
}
|
|
406
406
|
async function tryRealpath(value) {
|
|
407
407
|
try {
|
|
408
|
-
return await fs.realpath(value);
|
|
408
|
+
return await fs$1.realpath(value);
|
|
409
409
|
} catch {
|
|
410
410
|
return path.resolve(value);
|
|
411
411
|
}
|
|
@@ -424,13 +424,13 @@ function shortPath(value) {
|
|
|
424
424
|
//#region src/agents/skills/bundled-dir.ts
|
|
425
425
|
function looksLikeSkillsDir(dir) {
|
|
426
426
|
try {
|
|
427
|
-
const entries =
|
|
427
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
428
428
|
for (const entry of entries) {
|
|
429
429
|
if (entry.name.startsWith(".")) continue;
|
|
430
430
|
const fullPath = path.join(dir, entry.name);
|
|
431
431
|
if (entry.isFile() && entry.name.endsWith(".md")) return true;
|
|
432
432
|
if (entry.isDirectory()) {
|
|
433
|
-
if (
|
|
433
|
+
if (fs.existsSync(path.join(fullPath, "SKILL.md"))) return true;
|
|
434
434
|
}
|
|
435
435
|
}
|
|
436
436
|
} catch {
|
|
@@ -445,7 +445,7 @@ function resolveBundledSkillsDir(opts = {}) {
|
|
|
445
445
|
const execPath = opts.execPath ?? process.execPath;
|
|
446
446
|
const execDir = path.dirname(execPath);
|
|
447
447
|
const sibling = path.join(execDir, "skills");
|
|
448
|
-
if (
|
|
448
|
+
if (fs.existsSync(sibling)) return sibling;
|
|
449
449
|
} catch {}
|
|
450
450
|
try {
|
|
451
451
|
const moduleUrl = opts.moduleUrl ?? import.meta.url;
|
|
@@ -501,7 +501,7 @@ function resolvePluginSkillDirs(params) {
|
|
|
501
501
|
const trimmed = raw.trim();
|
|
502
502
|
if (!trimmed) continue;
|
|
503
503
|
const candidate = path.resolve(record.rootDir, trimmed);
|
|
504
|
-
if (!
|
|
504
|
+
if (!fs.existsSync(candidate)) {
|
|
505
505
|
log.warn(`plugin skill path not found (${record.id}): ${candidate}`);
|
|
506
506
|
continue;
|
|
507
507
|
}
|
|
@@ -528,7 +528,7 @@ async function serializeByKey(key, task) {
|
|
|
528
528
|
|
|
529
529
|
//#endregion
|
|
530
530
|
//#region src/agents/skills/workspace.ts
|
|
531
|
-
const fsp =
|
|
531
|
+
const fsp = fs.promises;
|
|
532
532
|
const skillsLogger = createSubsystemLogger("skills");
|
|
533
533
|
const skillCommandDebugOnce = /* @__PURE__ */ new Set();
|
|
534
534
|
/**
|
|
@@ -605,7 +605,7 @@ function resolveSkillsLimits(config) {
|
|
|
605
605
|
}
|
|
606
606
|
function listChildDirectories(dir) {
|
|
607
607
|
try {
|
|
608
|
-
const entries =
|
|
608
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
609
609
|
const dirs = [];
|
|
610
610
|
for (const entry of entries) {
|
|
611
611
|
if (entry.name.startsWith(".")) continue;
|
|
@@ -616,7 +616,7 @@ function listChildDirectories(dir) {
|
|
|
616
616
|
continue;
|
|
617
617
|
}
|
|
618
618
|
if (entry.isSymbolicLink()) try {
|
|
619
|
-
if (
|
|
619
|
+
if (fs.statSync(fullPath).isDirectory()) dirs.push(entry.name);
|
|
620
620
|
} catch {}
|
|
621
621
|
}
|
|
622
622
|
return dirs;
|
|
@@ -627,7 +627,7 @@ function listChildDirectories(dir) {
|
|
|
627
627
|
function resolveNestedSkillsRoot(dir, opts) {
|
|
628
628
|
const nested = path.join(dir, "skills");
|
|
629
629
|
try {
|
|
630
|
-
if (!
|
|
630
|
+
if (!fs.existsSync(nested) || !fs.statSync(nested).isDirectory()) return { baseDir: dir };
|
|
631
631
|
} catch {
|
|
632
632
|
return { baseDir: dir };
|
|
633
633
|
}
|
|
@@ -636,7 +636,7 @@ function resolveNestedSkillsRoot(dir, opts) {
|
|
|
636
636
|
const toScan = scanLimit === 0 ? [] : nestedDirs.slice(0, Math.min(nestedDirs.length, scanLimit));
|
|
637
637
|
for (const name of toScan) {
|
|
638
638
|
const skillMd = path.join(nested, name, "SKILL.md");
|
|
639
|
-
if (
|
|
639
|
+
if (fs.existsSync(skillMd)) return {
|
|
640
640
|
baseDir: nested,
|
|
641
641
|
note: `Detected nested skills root at ${nested}`
|
|
642
642
|
};
|
|
@@ -656,9 +656,9 @@ function loadSkillEntries(workspaceDir, opts) {
|
|
|
656
656
|
const loadSkills = (params) => {
|
|
657
657
|
const baseDir = resolveNestedSkillsRoot(params.dir, { maxEntriesToScan: limits.maxCandidatesPerRoot }).baseDir;
|
|
658
658
|
const rootSkillMd = path.join(baseDir, "SKILL.md");
|
|
659
|
-
if (
|
|
659
|
+
if (fs.existsSync(rootSkillMd)) {
|
|
660
660
|
try {
|
|
661
|
-
const size =
|
|
661
|
+
const size = fs.statSync(rootSkillMd).size;
|
|
662
662
|
if (size > limits.maxSkillFileBytes) {
|
|
663
663
|
skillsLogger.warn("Skipping skills root due to oversized SKILL.md.", {
|
|
664
664
|
dir: baseDir,
|
|
@@ -697,9 +697,9 @@ function loadSkillEntries(workspaceDir, opts) {
|
|
|
697
697
|
for (const name of limitedChildren) {
|
|
698
698
|
const skillDir = path.join(baseDir, name);
|
|
699
699
|
const skillMd = path.join(skillDir, "SKILL.md");
|
|
700
|
-
if (!
|
|
700
|
+
if (!fs.existsSync(skillMd)) continue;
|
|
701
701
|
try {
|
|
702
|
-
const size =
|
|
702
|
+
const size = fs.statSync(skillMd).size;
|
|
703
703
|
if (size > limits.maxSkillFileBytes) {
|
|
704
704
|
skillsLogger.warn("Skipping skill due to oversized SKILL.md.", {
|
|
705
705
|
skill: name,
|
|
@@ -767,7 +767,7 @@ function loadSkillEntries(workspaceDir, opts) {
|
|
|
767
767
|
return Array.from(merged.values()).map((skill) => {
|
|
768
768
|
let frontmatter = {};
|
|
769
769
|
try {
|
|
770
|
-
frontmatter = parseFrontmatter(
|
|
770
|
+
frontmatter = parseFrontmatter(fs.readFileSync(skill.filePath, "utf-8"));
|
|
771
771
|
} catch {}
|
|
772
772
|
return {
|
|
773
773
|
skill,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { t as createSubsystemLogger } from "./subsystem-
|
|
2
|
-
import { o as resolveSessionTranscriptsDirForAgent } from "./paths-
|
|
1
|
+
import { t as createSubsystemLogger } from "./subsystem-BjyjJF-d.js";
|
|
2
|
+
import { o as resolveSessionTranscriptsDirForAgent } from "./paths-CbQV9WEg.js";
|
|
3
3
|
import { t as redactSensitiveText } from "./redact-BDMXB06K.js";
|
|
4
|
-
import { a as hashText } from "./internal-
|
|
4
|
+
import { a as hashText } from "./internal-DjnxpF_K.js";
|
|
5
5
|
import { createRequire } from "node:module";
|
|
6
6
|
import path from "node:path";
|
|
7
7
|
import fs from "node:fs/promises";
|
|
@@ -8,28 +8,28 @@ import { n as runExec } from "./exec-CBKBIMpA.js";
|
|
|
8
8
|
import { c as resolveAgentWorkspaceDir } from "./agent-scope-D-jRCY0d.js";
|
|
9
9
|
import { t as buildWorkspaceSkillStatus } from "./skills-status-DODCG6UU.js";
|
|
10
10
|
import { H as VERSION, i as loadConfig, o as readConfigFileSnapshot } from "./config-DXt3pc08.js";
|
|
11
|
-
import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-
|
|
12
|
-
import {
|
|
11
|
+
import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-CAGvQYXj.js";
|
|
12
|
+
import { Ct as summarizeRestartSentinel, Dn as peekSystemEvents, St as readRestartSentinel, an as formatUsageReportLines, cn as buildChannelSummary, in as loadProviderUsageSummary, ln as buildChannelAccountSnapshot, nt as sha256HexPrefix, un as formatChannelAllowFrom } from "./subagent-registry-DlIPWOrx.js";
|
|
13
13
|
import { F as resolveMainSessionKey, j as resolveFreshSessionTotalTokens, o as loadSessionStore } from "./sessions-BPD85pWA.js";
|
|
14
14
|
import { n as listChannelPlugins } from "./plugins-CwSlLxM8.js";
|
|
15
15
|
import { o as getTailnetHostname, s as readTailscaleStatusJson } from "./tailscale-CbbvYNVw.js";
|
|
16
16
|
import { i as formatPortDiagnostics, n as inspectPortUsage } from "./ports-2xFXbwLq.js";
|
|
17
17
|
import { c as resolveStorePath } from "./paths-DNdWAq7b.js";
|
|
18
|
-
import { r as getMemorySearchManager } from "./memory-cli-
|
|
18
|
+
import { r as getMemorySearchManager } from "./memory-cli-D2QHGsxh.js";
|
|
19
19
|
import { n as formatTimeAgo } from "./format-relative-BDwAggS5.js";
|
|
20
20
|
import { l as resolveSessionModelRef, n as classifySessionKey, r as listAgentsForGateway, u as lookupContextTokens } from "./session-utils-DaBIs243.js";
|
|
21
21
|
import { o as getRemoteSkillEligibility } from "./skill-commands-DrX4xCNq.js";
|
|
22
22
|
import { r as formatDurationPrecise } from "./format-duration-Bb9uCG1L.js";
|
|
23
23
|
import { n as withProgress } from "./progress-HK2tT7Yf.js";
|
|
24
|
-
import { C as normalizeControlUiBasePath, g as resolveControlUiLinks } from "./onboard-helpers-
|
|
24
|
+
import { C as normalizeControlUiBasePath, g as resolveControlUiLinks } from "./onboard-helpers-DjlGq6iG.js";
|
|
25
25
|
import { t as resolveChannelDefaultAccountId } from "./helpers-gWnZ9zWR.js";
|
|
26
26
|
import { t as collectChannelStatusIssues } from "./channels-status-issues-B-ssmZ8E.js";
|
|
27
27
|
import { s as resolveGatewayLogPaths, t as resolveGatewayService } from "./service-RxN7lQKN.js";
|
|
28
28
|
import { t as formatRuntimeStatusWithDetails } from "./runtime-status-DJYthOLz.js";
|
|
29
29
|
import { t as readLastGatewayErrorLine } from "./diagnostics-C6xPE2ln.js";
|
|
30
30
|
import { t as renderTable } from "./table-Bka4fasy.js";
|
|
31
|
-
import { a as resolveGatewayProbeAuth$1, c as probeGateway, t as runSecurityAudit } from "./audit-
|
|
32
|
-
import { o as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-
|
|
31
|
+
import { a as resolveGatewayProbeAuth$1, c as probeGateway, t as runSecurityAudit } from "./audit-Dr_8rC6G.js";
|
|
32
|
+
import { o as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-BrpUi4qW.js";
|
|
33
33
|
import { g as resolveUpdateChannelDisplay, i as formatGitInstallLabel, m as normalizeUpdateChannel, t as checkUpdateStatus } from "./update-check-BNjupSIM.js";
|
|
34
34
|
import { t as resolveNodeService } from "./node-service-B-qdOCNb.js";
|
|
35
35
|
import { n as redactSecrets, t as formatGatewayAuthUsed } from "./format-yQZNwAF2.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ft as createPluginLoaderLogger, pt as loadSymiPlugins } from "./reply-CaGCmutq.js";
|
|
2
2
|
import { t as createSubsystemLogger } from "./subsystem-D9vIQve0.js";
|
|
3
3
|
import { D as resolveDefaultAgentWorkspaceDir, c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-CgUHAtCo.js";
|
|
4
4
|
import { i as loadConfig } from "./config-PXAJCHa5.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { o as createSubsystemLogger } from "./entry.js";
|
|
2
2
|
import { D as resolveDefaultAgentWorkspaceDir, c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-D-jRCY0d.js";
|
|
3
3
|
import { i as loadConfig } from "./config-DXt3pc08.js";
|
|
4
|
-
import { m as loadSymiPlugins, p as createPluginLoaderLogger } from "./subagent-registry-
|
|
4
|
+
import { m as loadSymiPlugins, p as createPluginLoaderLogger } from "./subagent-registry-DlIPWOrx.js";
|
|
5
5
|
|
|
6
6
|
//#region src/plugins/status.ts
|
|
7
7
|
const log = createSubsystemLogger("plugins");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { u as resolveGatewayPort } from "./paths-Cqn-zk3M.js";
|
|
2
2
|
import { B as theme, k as info, z as isRich } from "./utils-B-0b9bGM.js";
|
|
3
|
-
import { B as
|
|
3
|
+
import { B as readRestartSentinel, S as resolveSessionModelRef, Tr as peekSystemEvents, V as summarizeRestartSentinel, Yt as sha256HexPrefix, _t as loadProviderUsageSummary, a as buildChannelSummary, g as listAgentsForGateway, h as classifySessionKey, mr as lookupContextTokens, o as buildChannelAccountSnapshot, s as formatChannelAllowFrom, vt as formatUsageReportLines } from "./reply-CaGCmutq.js";
|
|
4
4
|
import { S as parseAgentSessionKey } from "./session-key-DCt45XZa.js";
|
|
5
5
|
import { t as resolveSymiPackageRoot } from "./symi-root-CrGJbkzf.js";
|
|
6
6
|
import { n as runExec } from "./exec-CWkblSrI.js";
|
|
@@ -13,13 +13,13 @@ import { a as inspectPortUsage, s as formatPortDiagnostics } from "./ports-BOmtx
|
|
|
13
13
|
import { H as resolveMainSessionKey, R as resolveFreshSessionTotalTokens, o as loadSessionStore } from "./sessions-BeYHj0gr.js";
|
|
14
14
|
import { n as listChannelPlugins } from "./plugins-DKDeQZF0.js";
|
|
15
15
|
import { c as resolveStorePath } from "./paths-CyhzMxFA.js";
|
|
16
|
-
import { r as getMemorySearchManager } from "./memory-cli-
|
|
17
|
-
import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-
|
|
16
|
+
import { r as getMemorySearchManager } from "./memory-cli-BOxWccJu.js";
|
|
17
|
+
import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-BkJK3eYP.js";
|
|
18
18
|
import { n as formatTimeAgo } from "./format-relative-CviDPm2s.js";
|
|
19
19
|
import { n as withProgress } from "./progress-WhkkDU0H.js";
|
|
20
20
|
import { r as formatDurationPrecise } from "./format-duration-DeLiQNNv.js";
|
|
21
21
|
import { o as getRemoteSkillEligibility } from "./skill-commands-Bz5sreu5.js";
|
|
22
|
-
import { C as normalizeControlUiBasePath, g as resolveControlUiLinks } from "./onboard-helpers-
|
|
22
|
+
import { C as normalizeControlUiBasePath, g as resolveControlUiLinks } from "./onboard-helpers-B7jBYbCU.js";
|
|
23
23
|
import { t as buildWorkspaceSkillStatus } from "./skills-status-D1IW8MhS.js";
|
|
24
24
|
import { t as resolveChannelDefaultAccountId } from "./helpers-D-MrrYmt.js";
|
|
25
25
|
import { t as collectChannelStatusIssues } from "./channels-status-issues-BVpj6wWd.js";
|
|
@@ -27,8 +27,8 @@ import { s as resolveGatewayLogPaths, t as resolveGatewayService } from "./servi
|
|
|
27
27
|
import { t as formatRuntimeStatusWithDetails } from "./runtime-status-D0P5lDGf.js";
|
|
28
28
|
import { t as readLastGatewayErrorLine } from "./diagnostics-1uBuB9IE.js";
|
|
29
29
|
import { t as renderTable } from "./table-BWuvjnmY.js";
|
|
30
|
-
import { a as resolveGatewayProbeAuth$1, c as probeGateway, t as runSecurityAudit } from "./audit-
|
|
31
|
-
import { a as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-
|
|
30
|
+
import { a as resolveGatewayProbeAuth$1, c as probeGateway, t as runSecurityAudit } from "./audit-xiwEIT96.js";
|
|
31
|
+
import { a as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-d4gqJJCY.js";
|
|
32
32
|
import { g as resolveUpdateChannelDisplay, i as formatGitInstallLabel, m as normalizeUpdateChannel, t as checkUpdateStatus } from "./update-check-Bbvpax6u.js";
|
|
33
33
|
import { t as resolveNodeService } from "./node-service-DxPZ_ZFk.js";
|
|
34
34
|
import { n as redactSecrets, t as formatGatewayAuthUsed } from "./format-DNqZrSx7.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { P as resolveConfigDir } from "./registry-
|
|
2
|
-
import { c as detectMime, l as extensionForMime } from "./image-ops-
|
|
1
|
+
import { P as resolveConfigDir } from "./registry-DYq1AYOv.js";
|
|
2
|
+
import { c as detectMime, l as extensionForMime } from "./image-ops-C7CauEK8.js";
|
|
3
3
|
import path from "node:path";
|
|
4
|
-
import fs from "node:fs/promises";
|
|
4
|
+
import fs$1 from "node:fs/promises";
|
|
5
5
|
import crypto from "node:crypto";
|
|
6
6
|
|
|
7
7
|
//#region src/media/store.ts
|
|
@@ -24,7 +24,7 @@ function getMediaDir() {
|
|
|
24
24
|
}
|
|
25
25
|
async function ensureMediaDir() {
|
|
26
26
|
const mediaDir = resolveMediaDir();
|
|
27
|
-
await fs.mkdir(mediaDir, {
|
|
27
|
+
await fs$1.mkdir(mediaDir, {
|
|
28
28
|
recursive: true,
|
|
29
29
|
mode: 448
|
|
30
30
|
});
|
|
@@ -33,7 +33,7 @@ async function ensureMediaDir() {
|
|
|
33
33
|
async function saveMediaBuffer(buffer, contentType, subdir = "inbound", maxBytes = MAX_BYTES, originalFilename) {
|
|
34
34
|
if (buffer.byteLength > maxBytes) throw new Error(`Media exceeds ${(maxBytes / (1024 * 1024)).toFixed(0)}MB limit`);
|
|
35
35
|
const dir = path.join(resolveMediaDir(), subdir);
|
|
36
|
-
await fs.mkdir(dir, {
|
|
36
|
+
await fs$1.mkdir(dir, {
|
|
37
37
|
recursive: true,
|
|
38
38
|
mode: 448
|
|
39
39
|
});
|
|
@@ -51,7 +51,7 @@ async function saveMediaBuffer(buffer, contentType, subdir = "inbound", maxBytes
|
|
|
51
51
|
id = sanitized ? `${sanitized}---${uuid}${ext}` : `${uuid}${ext}`;
|
|
52
52
|
} else id = ext ? `${uuid}${ext}` : uuid;
|
|
53
53
|
const dest = path.join(dir, id);
|
|
54
|
-
await fs.writeFile(dest, buffer, { mode: 384 });
|
|
54
|
+
await fs$1.writeFile(dest, buffer, { mode: 384 });
|
|
55
55
|
return {
|
|
56
56
|
id,
|
|
57
57
|
path: dest,
|
|
@@ -15,8 +15,8 @@ import { r as isPathInsideWithRealpath } from "./scan-paths-ppKrtZ9U.js";
|
|
|
15
15
|
import { a as resolveSkillsPromptForRun, d as resolveSandboxInputPath, h as applySkillEnvOverridesFromSnapshot, i as loadWorkspaceSkillEntries, l as assertMediaNotDataUrl, m as applySkillEnvOverrides, p as resolveSandboxedMediaSource, r as buildWorkspaceSkillSnapshot, u as assertSandboxPath } from "./skills-D_oCiaQn.js";
|
|
16
16
|
import { a as safeStatSync, c as applyTestPluginDefaults, d as resolveEnableState, f as resolveMemorySlotDecision, h as isDangerousHostEnvVarName, i as isPathInside, n as loadPluginManifestRegistry, r as discoverSymiPlugins, u as normalizePluginsConfig } from "./manifest-registry-D5bnO5uA.js";
|
|
17
17
|
import { A as parseConfigPath, B as resolveAgentMaxConcurrent, C as parseDurationMs, D as setConfigOverride, E as resetConfigOverrides, H as VERSION, M as unsetConfigValueAtPath, O as unsetConfigOverride, T as getConfigOverrides, _ as isInboundPathAllowed, b as resolveIMessageRemoteAttachmentRoots, c as resolveConfigSnapshotHash, h as resolveTelegramCustomCommands, i as loadConfig, j as setConfigValueAtPath, k as getConfigValueAtPath, l as writeConfigFile, m as normalizeTelegramCommandName, o as readConfigFileSnapshot, p as TELEGRAM_COMMAND_NAME_PATTERN, u as validateConfigObjectWithPlugins, w as validateJsonSchemaValue, x as normalizeScpRemoteHost, y as resolveIMessageAttachmentRoots, z as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./config-DXt3pc08.js";
|
|
18
|
-
import {
|
|
19
|
-
import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-
|
|
18
|
+
import { Lt as SESSION_LABEL_MAX_LENGTH, t as GatewayClient } from "./client-Cmq13-uF.js";
|
|
19
|
+
import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-CAGvQYXj.js";
|
|
20
20
|
import { a as isInternalMessageChannel, c as listDeliverableMessageChannels, d as resolveMessageChannel, h as GATEWAY_CLIENT_NAMES, i as isGatewayMessageChannel, l as normalizeMessageChannel, m as GATEWAY_CLIENT_MODES, n as isDeliverableMessageChannel, o as isMarkdownCapableMessageChannel, p as GATEWAY_CLIENT_IDS, t as INTERNAL_MESSAGE_CHANNEL, u as resolveGatewayMessageChannel } from "./message-channel-C9dERklz.js";
|
|
21
21
|
import { i as normalizeInputProvenance, n as applyInputProvenanceToUserMessage, r as hasInterSessionUserProvenance } from "./input-provenance-D0lNkCf6.js";
|
|
22
22
|
import { A as DEFAULT_RESET_TRIGGERS, B as resolveGroupSessionKey, D as resolveSessionResetPolicy, E as resolveChannelResetConfig, F as resolveMainSessionKey, G as deliveryContextKey, J as normalizeSessionDeliveryFields, K as mergeDeliveryContext, L as deriveSessionMetaPatch, O as resolveSessionResetType, P as resolveExplicitAgentSessionKey, T as evaluateSessionFreshness, U as resolveSessionLockMaxHoldFromTimeout, V as acquireSessionWriteLock, W as deliveryContextFromSession, Y as normalizeAccountId$3, _ as capArrayByJsonBytes, a as resolveAndPersistSessionFile, c as recordSessionMetaFromInbound, d as updateSessionStore, f as updateSessionStoreEntry, g as archiveSessionTranscripts, j as resolveFreshSessionTotalTokens, k as resolveThreadFlag, m as resolveCacheTtlMs$1, n as parseSessionThreadInfo, o as loadSessionStore, p as isCacheEnabled, q as normalizeDeliveryContext, r as appendAssistantMessageToSessionTranscript, s as readSessionUpdatedAt, t as extractDeliveryInfo, u as updateLastRoute, w as resolveSessionKey } from "./sessions-BPD85pWA.js";
|
|
@@ -50,8 +50,8 @@ import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as san
|
|
|
50
50
|
import { a as normalizeElevatedLevel, c as normalizeUsageDisplay, d as supportsXHighThinking, l as normalizeVerboseLevel, n as formatXHighModelHint, o as normalizeReasoningLevel, s as normalizeThinkLevel, t as formatThinkingLevels, u as resolveResponseUsageMode } from "./thinking-8sKPnzpp.js";
|
|
51
51
|
import { t as ensureSymiModelsJson } from "./models-config-J1x_DaPn.js";
|
|
52
52
|
import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-BUN71nd5.js";
|
|
53
|
-
import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-
|
|
54
|
-
import { a as resolveMemorySearchConfig, t as MemoryIndexManager } from "./manager-
|
|
53
|
+
import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-D2QHGsxh.js";
|
|
54
|
+
import { a as resolveMemorySearchConfig, t as MemoryIndexManager } from "./manager-DDboJTtn.js";
|
|
55
55
|
import { f as runTasksWithConcurrency } from "./internal-C2jxeHS9.js";
|
|
56
56
|
import { n as retryAsync } from "./retry-C4Q_VPOo.js";
|
|
57
57
|
import { c as imageResultFromFile, d as readNumberParam, f as readReactionParams, h as readStringParam, l as jsonResult, m as readStringOrNumberParam, n as missingTargetError, o as createActionGate, p as readStringArrayParam, r as unknownTargetError, s as imageResult, t as ambiguousTargetError, u as parseAvailableTags } from "./target-errors-Co0LcWKH.js";
|
|
@@ -92,7 +92,7 @@ import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-rou
|
|
|
92
92
|
import { t as parseTimeoutMs } from "./parse-timeout-FUO1ff14.js";
|
|
93
93
|
import { t as makeProxyFetch } from "./proxy-GY5xhMp0.js";
|
|
94
94
|
import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-Sxbew659.js";
|
|
95
|
-
import { r as detectBinary } from "./onboard-helpers-
|
|
95
|
+
import { r as detectBinary } from "./onboard-helpers-DjlGq6iG.js";
|
|
96
96
|
import { t as resolvePairingIdLabel } from "./pairing-labels-BHx_CdbP.js";
|
|
97
97
|
import { t as getActiveWebListener } from "./active-listener-DEi7sEFa.js";
|
|
98
98
|
import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-o0ytjRqu.js";
|
|
@@ -29913,6 +29913,103 @@ function createSubagentsTool(opts) {
|
|
|
29913
29913
|
};
|
|
29914
29914
|
}
|
|
29915
29915
|
|
|
29916
|
+
//#endregion
|
|
29917
|
+
//#region src/infra/long-task-state.ts
|
|
29918
|
+
/**
|
|
29919
|
+
* Shared helpers for reading the on-disk state files written by
|
|
29920
|
+
* skills/long-task/scripts/detach-task.sh:
|
|
29921
|
+
*
|
|
29922
|
+
* task-<id>.pid — PID of the detached process
|
|
29923
|
+
* task-<id>.cmd — literal command line
|
|
29924
|
+
* task-<id>.started — ISO-8601 start timestamp
|
|
29925
|
+
* task-<id>.log — combined stdout + stderr
|
|
29926
|
+
* task-<id>.status — current state line
|
|
29927
|
+
* task-<id>.archived — tombstone written by the janitor when it sweeps
|
|
29928
|
+
* a finished task more than 7 days old
|
|
29929
|
+
*
|
|
29930
|
+
* Both the agent-facing tools (task_list / task_cancel) and the gateway's
|
|
29931
|
+
* tasks.list RPC consume this helper so the two views stay in sync.
|
|
29932
|
+
*/
|
|
29933
|
+
const TASK_FILE_PREFIX = "task-";
|
|
29934
|
+
const TASK_ID_RE = /^[a-zA-Z0-9_][a-zA-Z0-9._-]{0,59}$/;
|
|
29935
|
+
const TASK_FILE_SUFFIXES = [
|
|
29936
|
+
".pid",
|
|
29937
|
+
".status",
|
|
29938
|
+
".started",
|
|
29939
|
+
".cmd",
|
|
29940
|
+
".log",
|
|
29941
|
+
".archived"
|
|
29942
|
+
];
|
|
29943
|
+
function defaultIsPidAlive(pid) {
|
|
29944
|
+
try {
|
|
29945
|
+
process.kill(pid, 0);
|
|
29946
|
+
return true;
|
|
29947
|
+
} catch (err) {
|
|
29948
|
+
if (err.code === "EPERM") return true;
|
|
29949
|
+
return false;
|
|
29950
|
+
}
|
|
29951
|
+
}
|
|
29952
|
+
async function safeRead(filePath) {
|
|
29953
|
+
try {
|
|
29954
|
+
return (await fs.promises.readFile(filePath, "utf8")).trim();
|
|
29955
|
+
} catch {
|
|
29956
|
+
return null;
|
|
29957
|
+
}
|
|
29958
|
+
}
|
|
29959
|
+
async function readTaskInfo(workdir, id, isPidAlive = defaultIsPidAlive) {
|
|
29960
|
+
const pidPath = path.join(workdir, `${TASK_FILE_PREFIX}${id}.pid`);
|
|
29961
|
+
const statusPath = path.join(workdir, `${TASK_FILE_PREFIX}${id}.status`);
|
|
29962
|
+
const archivedPath = path.join(workdir, `${TASK_FILE_PREFIX}${id}.archived`);
|
|
29963
|
+
const logPath = path.join(workdir, `${TASK_FILE_PREFIX}${id}.log`);
|
|
29964
|
+
const [pidText, status, started, cmd, archived] = await Promise.all([
|
|
29965
|
+
safeRead(pidPath),
|
|
29966
|
+
safeRead(statusPath),
|
|
29967
|
+
safeRead(path.join(workdir, `${TASK_FILE_PREFIX}${id}.started`)),
|
|
29968
|
+
safeRead(path.join(workdir, `${TASK_FILE_PREFIX}${id}.cmd`)),
|
|
29969
|
+
safeRead(archivedPath)
|
|
29970
|
+
]);
|
|
29971
|
+
let pid = null;
|
|
29972
|
+
if (pidText) {
|
|
29973
|
+
const parsed = Number.parseInt(pidText, 10);
|
|
29974
|
+
if (Number.isFinite(parsed) && parsed > 0) pid = parsed;
|
|
29975
|
+
}
|
|
29976
|
+
let resolvedStatus;
|
|
29977
|
+
if (status) resolvedStatus = status;
|
|
29978
|
+
else if (archived) resolvedStatus = archived;
|
|
29979
|
+
else resolvedStatus = "missing";
|
|
29980
|
+
return {
|
|
29981
|
+
id,
|
|
29982
|
+
pid,
|
|
29983
|
+
alive: pid !== null && isPidAlive(pid),
|
|
29984
|
+
archived: archived !== null,
|
|
29985
|
+
status: resolvedStatus,
|
|
29986
|
+
started,
|
|
29987
|
+
cmd,
|
|
29988
|
+
pidPath,
|
|
29989
|
+
statusPath,
|
|
29990
|
+
archivedPath,
|
|
29991
|
+
logPath
|
|
29992
|
+
};
|
|
29993
|
+
}
|
|
29994
|
+
async function listTasksInWorkdir(workdir, isPidAlive = defaultIsPidAlive) {
|
|
29995
|
+
let entries;
|
|
29996
|
+
try {
|
|
29997
|
+
entries = await fs.promises.readdir(workdir);
|
|
29998
|
+
} catch {
|
|
29999
|
+
return [];
|
|
30000
|
+
}
|
|
30001
|
+
const taskIds = /* @__PURE__ */ new Set();
|
|
30002
|
+
for (const entry of entries) {
|
|
30003
|
+
if (!entry.startsWith(TASK_FILE_PREFIX)) continue;
|
|
30004
|
+
for (const suffix of TASK_FILE_SUFFIXES) if (entry.endsWith(suffix)) {
|
|
30005
|
+
const id = entry.slice(5, -suffix.length);
|
|
30006
|
+
if (id.length > 0 && TASK_ID_RE.test(id)) taskIds.add(id);
|
|
30007
|
+
break;
|
|
30008
|
+
}
|
|
30009
|
+
}
|
|
30010
|
+
return await Promise.all([...taskIds].toSorted().map((id) => readTaskInfo(workdir, id, isPidAlive)));
|
|
30011
|
+
}
|
|
30012
|
+
|
|
29916
30013
|
//#endregion
|
|
29917
30014
|
//#region src/agents/tools/task-tool.ts
|
|
29918
30015
|
/**
|
|
@@ -29922,21 +30019,14 @@ function createSubagentsTool(opts) {
|
|
|
29922
30019
|
* script writes task-<id>.{pid,cmd,started,log,status} state files into
|
|
29923
30020
|
* the agent's workspace; these tools read and act on those files so the
|
|
29924
30021
|
* agent can answer "what's running?" and kill a task without needing
|
|
29925
|
-
* shell access.
|
|
30022
|
+
* shell access. Shared scanning logic lives in
|
|
30023
|
+
* src/infra/long-task-state.ts so the gateway's tasks.list RPC and these
|
|
30024
|
+
* agent tools agree on every shape detail.
|
|
29926
30025
|
*
|
|
29927
30026
|
* task-id allow-list mirrors detach-task.sh: 1–60 chars from
|
|
29928
30027
|
* [a-zA-Z0-9._-], must not start with '.' or '-'. Diverging would let the
|
|
29929
30028
|
* agent kill processes it never spawned via path traversal.
|
|
29930
30029
|
*/
|
|
29931
|
-
const TASK_FILE_PREFIX = "task-";
|
|
29932
|
-
const TASK_ID_RE = /^[a-zA-Z0-9_][a-zA-Z0-9._-]{0,59}$/;
|
|
29933
|
-
const TASK_FILE_SUFFIXES = [
|
|
29934
|
-
".pid",
|
|
29935
|
-
".status",
|
|
29936
|
-
".started",
|
|
29937
|
-
".cmd",
|
|
29938
|
-
".log"
|
|
29939
|
-
];
|
|
29940
30030
|
const ALLOWED_SIGNALS = new Set([
|
|
29941
30031
|
"SIGTERM",
|
|
29942
30032
|
"SIGINT",
|
|
@@ -29968,58 +30058,30 @@ function isPidAlive(pid) {
|
|
|
29968
30058
|
return false;
|
|
29969
30059
|
}
|
|
29970
30060
|
}
|
|
29971
|
-
async function safeRead(filePath) {
|
|
29972
|
-
try {
|
|
29973
|
-
return (await fs.promises.readFile(filePath, "utf8")).trim();
|
|
29974
|
-
} catch {
|
|
29975
|
-
return null;
|
|
29976
|
-
}
|
|
29977
|
-
}
|
|
29978
30061
|
function resolveWorkdir(deps, override) {
|
|
29979
30062
|
const raw = override?.trim();
|
|
29980
30063
|
if (!raw) return deps.workspaceDir;
|
|
29981
30064
|
if (!path.isAbsolute(raw)) throw new Error(`workdir must be an absolute path (got: ${raw})`);
|
|
29982
30065
|
return raw;
|
|
29983
30066
|
}
|
|
29984
|
-
async function readTaskInfo(workdir, id) {
|
|
29985
|
-
const pidPath = path.join(workdir, `${TASK_FILE_PREFIX}${id}.pid`);
|
|
29986
|
-
const [pidText, status, started, cmd] = await Promise.all([
|
|
29987
|
-
safeRead(pidPath),
|
|
29988
|
-
safeRead(path.join(workdir, `${TASK_FILE_PREFIX}${id}.status`)),
|
|
29989
|
-
safeRead(path.join(workdir, `${TASK_FILE_PREFIX}${id}.started`)),
|
|
29990
|
-
safeRead(path.join(workdir, `${TASK_FILE_PREFIX}${id}.cmd`))
|
|
29991
|
-
]);
|
|
29992
|
-
let pid = null;
|
|
29993
|
-
if (pidText) {
|
|
29994
|
-
const parsed = Number.parseInt(pidText, 10);
|
|
29995
|
-
if (Number.isFinite(parsed) && parsed > 0) pid = parsed;
|
|
29996
|
-
}
|
|
29997
|
-
return {
|
|
29998
|
-
id,
|
|
29999
|
-
pid,
|
|
30000
|
-
alive: pid !== null && isPidAlive(pid),
|
|
30001
|
-
status: status ?? "missing",
|
|
30002
|
-
started,
|
|
30003
|
-
cmd,
|
|
30004
|
-
pidPath,
|
|
30005
|
-
statusPath: path.join(workdir, `${TASK_FILE_PREFIX}${id}.status`),
|
|
30006
|
-
logPath: path.join(workdir, `${TASK_FILE_PREFIX}${id}.log`)
|
|
30007
|
-
};
|
|
30008
|
-
}
|
|
30009
30067
|
function createTaskListTool(deps) {
|
|
30010
30068
|
return {
|
|
30011
30069
|
label: "Task List",
|
|
30012
30070
|
name: "task_list",
|
|
30013
30071
|
description: `List long-running detached tasks in the agent's workspace.
|
|
30014
30072
|
|
|
30015
|
-
Globs task-<id>.{pid,status,started,cmd,log} files, reads their
|
|
30016
|
-
checks each PID's liveness. Use this to find the task-id of a
|
|
30017
|
-
detach-task before calling task_cancel, or to answer "what's
|
|
30018
|
-
now?" without re-asking the user.
|
|
30019
|
-
|
|
30020
|
-
Returns: { workdir, tasks: [{ id, pid, alive, status, started, cmd, pidPath, statusPath, logPath }] }.
|
|
30021
|
-
|
|
30022
|
-
|
|
30073
|
+
Globs task-<id>.{pid,status,started,cmd,log,archived} files, reads their
|
|
30074
|
+
state, and checks each PID's liveness. Use this to find the task-id of a
|
|
30075
|
+
running detach-task before calling task_cancel, or to answer "what's
|
|
30076
|
+
running right now?" without re-asking the user.
|
|
30077
|
+
|
|
30078
|
+
Returns: { workdir, tasks: [{ id, pid, alive, status, archived, started, cmd, pidPath, statusPath, archivedPath, logPath }] }.
|
|
30079
|
+
- archived=true means the janitor swept this task's live state files (>7d
|
|
30080
|
+
dead) and replaced them with a tombstone. The canonical end status is
|
|
30081
|
+
preserved in the .archived file. Distinct from "missing" (no tombstone,
|
|
30082
|
+
no live files) which means the task crashed or its workdir was wiped.
|
|
30083
|
+
- Tasks whose .pid file is missing are still listed (alive=false, pid=null)
|
|
30084
|
+
so the agent can spot orphan state files.`,
|
|
30023
30085
|
parameters: TaskListSchema,
|
|
30024
30086
|
execute: async (_toolCallId, args) => {
|
|
30025
30087
|
const override = readStringParam(args, "workdir");
|
|
@@ -30033,34 +30095,19 @@ the agent can spot orphan state files.`,
|
|
|
30033
30095
|
error: err instanceof Error ? err.message : String(err)
|
|
30034
30096
|
});
|
|
30035
30097
|
}
|
|
30036
|
-
let entries;
|
|
30037
30098
|
try {
|
|
30038
|
-
|
|
30039
|
-
|
|
30040
|
-
if (err.code === "ENOENT") return jsonResult({
|
|
30099
|
+
const tasks = await listTasksInWorkdir(workdir, isPidAlive);
|
|
30100
|
+
return jsonResult({
|
|
30041
30101
|
workdir,
|
|
30042
|
-
tasks
|
|
30102
|
+
tasks
|
|
30043
30103
|
});
|
|
30104
|
+
} catch (err) {
|
|
30044
30105
|
return jsonResult({
|
|
30045
30106
|
workdir,
|
|
30046
30107
|
tasks: [],
|
|
30047
30108
|
error: err instanceof Error ? err.message : String(err)
|
|
30048
30109
|
});
|
|
30049
30110
|
}
|
|
30050
|
-
const taskIds = /* @__PURE__ */ new Set();
|
|
30051
|
-
for (const entry of entries) {
|
|
30052
|
-
if (!entry.startsWith(TASK_FILE_PREFIX)) continue;
|
|
30053
|
-
for (const suffix of TASK_FILE_SUFFIXES) if (entry.endsWith(suffix)) {
|
|
30054
|
-
const id = entry.slice(5, -suffix.length);
|
|
30055
|
-
if (id.length > 0 && TASK_ID_RE.test(id)) taskIds.add(id);
|
|
30056
|
-
break;
|
|
30057
|
-
}
|
|
30058
|
-
}
|
|
30059
|
-
const tasks = await Promise.all([...taskIds].toSorted().map((id) => readTaskInfo(workdir, id)));
|
|
30060
|
-
return jsonResult({
|
|
30061
|
-
workdir,
|
|
30062
|
-
tasks
|
|
30063
|
-
});
|
|
30064
30111
|
}
|
|
30065
30112
|
};
|
|
30066
30113
|
}
|
|
@@ -39278,7 +39325,7 @@ async function buildLongTaskPromptSuffix(params) {
|
|
|
39278
39325
|
"- Register a cron monitor via the `cron` tool's `add` action. Use the schema documented in that tool's own description for the exact field names — do NOT guess. The monitor should fire roughly every 3 minutes as an isolated agentTurn job, and its message must literally contain the task-id, PID, log path, and status path so the future turn has enough context without re-deriving them.",
|
|
39279
39326
|
"- Safe status read (inside the monitor turn):",
|
|
39280
39327
|
" `status=$(cat \"<workdir>/task-<id>.status\" 2>/dev/null || echo missing)`",
|
|
39281
|
-
" Possible values: `running pid=<N> started=<ISO>`, `complete rc=<N> ended=<ISO>`, `aborted rc=<N> signal=<TERM|INT|HUP> ended=<ISO>`, or `missing`
|
|
39328
|
+
" Possible values: `running pid=<N> started=<ISO>`, `complete rc=<N> ended=<ISO>`, `aborted rc=<N> signal=<TERM|INT|HUP> ended=<ISO>`, `archived swept-from=… at=<ISO>` if the janitor archived an old finished task, or `missing` only when neither `.status` nor `.archived` exists (task crashed or workdir was wiped).",
|
|
39282
39329
|
"- Monitor responsibilities each tick:",
|
|
39283
39330
|
" • If status begins with `running`: tail -n 20 <log>, post a one-sentence progress line.",
|
|
39284
39331
|
" • If status begins with `complete`: post a final summary with rc and tail, then call cron action=remove on this job id.",
|
|
@@ -53835,7 +53882,7 @@ function isVoiceChannelType(type) {
|
|
|
53835
53882
|
function createDefaultDeps() {
|
|
53836
53883
|
return {
|
|
53837
53884
|
sendMessageWhatsApp: async (...args) => {
|
|
53838
|
-
const { sendMessageWhatsApp } = await import("./web-
|
|
53885
|
+
const { sendMessageWhatsApp } = await import("./web-CO0AUYgu.js");
|
|
53839
53886
|
return await sendMessageWhatsApp(...args);
|
|
53840
53887
|
},
|
|
53841
53888
|
sendMessageTelegram: async (...args) => {
|
|
@@ -69149,7 +69196,7 @@ function loadWebLoginQr() {
|
|
|
69149
69196
|
return webLoginQrPromise;
|
|
69150
69197
|
}
|
|
69151
69198
|
function loadWebChannel() {
|
|
69152
|
-
webChannelPromise ??= import("./web-
|
|
69199
|
+
webChannelPromise ??= import("./web-CO0AUYgu.js");
|
|
69153
69200
|
return webChannelPromise;
|
|
69154
69201
|
}
|
|
69155
69202
|
function loadWhatsAppActions() {
|
|
@@ -73490,4 +73537,4 @@ function initSubagentRegistry() {
|
|
|
73490
73537
|
}
|
|
73491
73538
|
|
|
73492
73539
|
//#endregion
|
|
73493
|
-
export { getCliSessionId as $,
|
|
73540
|
+
export { getCliSessionId as $, resolveTtsApiKey as $n, setGatewaySigusr1RestartPolicy as $t, loadAgentIdentityFromWorkspace as A, DEFAULT_INPUT_MAX_REDIRECTS as An, normalizeOptionalAgentId as At, dispatchInboundMessage as B, formatInboundEnvelope as Bn, CHANNEL_TARGET_DESCRIPTION as Bt, resolveAgentDeliveryPlan as C, parseVerboseOverride as Cn, getAgentRunContext as Cr, summarizeRestartSentinel as Ct, createOutboundSendDeps$1 as D, peekSystemEvents as Dn, normalizeCronJobCreate as Dt, createDefaultDeps as E, peekSystemEventEntries as En, normalizeHttpWebhookUrl as Et, buildHistoryContextFromEntries as F, resolveInputFileLimits as Fn, migrateLegacyCronPayload as Ft, BARE_SESSION_RESET_PROMPT as G, isAbortTrigger as Gn, applyBrowserProxyPaths as Gt, getTotalPendingReplies as H, formatZonedTimestamp as Hn, detectSuspiciousPatterns as Ht, recordPendingHistoryEntryIfEnabled as I, estimateBase64DecodedBytes as In, buildDeliveryFromLegacyPayload as It, runAgentTurn as J, normalizeMentionText as Jn, deferGatewayRestartUntilIdle as Jt, appendCronStyleCurrentTimeLine as K, stopSubagentsForRequester as Kn, persistBrowserProxyFiles as Kt, shouldAckReactionForWhatsApp as L, resolveAgentTimeoutMs as Ln, hasLegacyDeliveryHints as Lt, buildPairingReply as M, extractFileContentFromSource as Mn, normalizeOptionalText as Mt, resolveMentionGating as N, extractImageContentFromSource as Nn, normalizePayloadToSystemText as Nt, resolveAgentAvatar as O, DEFAULT_INPUT_IMAGE_MAX_BYTES as On, normalizeCronJobPatch as Ot, DEFAULT_GROUP_HISTORY_LIMIT as P, normalizeMimeList as Pn, normalizeRequiredName as Pt, resolveModelProfile as Q, isTtsProviderConfigured as Qn, scheduleGatewaySigusr1Restart as Qt, dispatchReplyWithBufferedBlockDispatcher as R, createInboundDebouncer as Rn, stripLegacyDeliveryFields as Rt, resolveSessionKeyForRequest as S, applyVerboseOverride as Sn, emitAgentEvent as Sr, readRestartSentinel as St, createOutboundSendDeps as T, isSystemEventContextChanged as Tn, registerAgentRunContext as Tr, writeRestartSentinel as Tt, createDedupeCache as U, hasControlCommand as Un, getHookType as Ut, createReplyDispatcher as V, resolveEnvelopeFormatOptions as Vn, buildSafeExternalPrompt as Vt, getReplyFromConfig as W, shouldComputeCommandAuthorized as Wn, isExternalHookSession as Wt, getActiveEmbeddedRunCount as X, getTtsProvider as Xn, isGatewaySigusr1RestartExternallyAllowed as Xt, abortEmbeddedPiRun as Y, resolveUserTimezone as Yn, emitGatewayRestart as Yt, waitForEmbeddedPiRunEnd as Z, isTtsEnabled as Zn, markGatewaySigusr1RestartHandled as Zt, readJsonBodyWithLimit as _, maskApiKey as _n, DEFAULT_HEARTBEAT_EVERY as _r, runWithModelFallback as _t, listSubagentRunsForRequester as a, formatUsageReportLines as an, setTtsProvider as ar, readLatestAssistantReply as at, sleepWithAbort as b, formatRemainingShort as bn, stripHeartbeatToken as br, formatDoctorNonInteractiveHint as bt, clearSessionQueues as c, buildChannelSummary as cn, OPENAI_TTS_VOICES as cr, ensureOutboundSessionEntry as ct, sniffMimeFromBase64 as d, resolveCommitHash as dn, getTotalQueueSize as dr, resolveHeartbeatSenderContext as dt, setPreRestartDeferralCheck as en, resolveTtsAutoMode as er, setCliSessionId as et, getPluginToolMeta as f, requestHeartbeatNow as fn, resetAllLanes as fr, resolveOutboundTarget as ft, handleSlackHttpRequest as g, resolveSendPolicy as gn, DEFAULT_HEARTBEAT_ACK_MAX_CHARS as gr, CHANNEL_MESSAGE_ACTION_NAMES as gt, deleteTelegramUpdateOffset as h, normalizeSendPolicy as hn, CommandLane as hr, resetDirectoryCache as ht, listDescendantRunsForRequester as i, loadProviderUsageSummary as in, setTtsEnabled as ir, listTasksInWorkdir as it, parseIdentityMarkdown as j, DEFAULT_INPUT_TIMEOUT_MS as jn, normalizeOptionalSessionKey as jt, identityHasValues as k, DEFAULT_INPUT_IMAGE_MIMES as kn, inferLegacyName as kt, applyToolPolicyPipeline as l, buildChannelAccountSnapshot as ln, getActiveTaskCount as lr, resolveOutboundSessionRoute as lt, loadSymiPlugins as m, resolveHeartbeatReasonKind as mn, waitForActiveTasks as mr, formatTargetDisplay as mt, countActiveRunsForSession as n, normalizeGroupActivation as nn, resolveTtsPrefsPath as nr, sha256HexPrefix as nt, subagent_registry_exports as o, formatUsageWindowSummary as on, textToSpeech as or, resolveAnnounceTargetFromKey as ot, createPluginLoaderLogger as p, setHeartbeatWakeHandler as pn, setCommandLaneConcurrency as pr, resolveSessionDeliveryTarget as pt, resolveCronStyleNow as q, buildMentionRegexes as qn, consumeGatewaySigusr1RestartAuthorization as qt, initSubagentRegistry as r, parseActivationCommand as rn, resolveTtsProviderOrder as rr, createSymiTools as rt, runSubagentAnnounceFlow as s, resolveUsageProviderId as sn, OPENAI_TTS_MODELS as sr, runMessageAction as st, countActiveDescendantRuns as t, unbindThreadBindingsBySessionKey as tn, resolveTtsConfig as tr, runCliAgent as tt, buildDefaultToolPolicyPipelineSteps as u, formatChannelAllowFrom as un, getQueueSize as ur, resolveHeartbeatDeliveryTarget as ut, requestBodyErrorToText as v, DEFAULT_OAUTH_WARN_MS as vn, isHeartbeatContentEffectivelyEmpty as vr, describeFailoverError as vt, resolveAgentOutboundTarget as w, enqueueSystemEvent as wn, onAgentEvent as wr, trimLogTail as wt, agentCommand as x, applyModelOverrideToSessionEntry as xn, clearAgentRunContext as xr, formatRestartSentinelMessage as xt, computeBackoff as y, buildAuthHealthSummary as yn, resolveHeartbeatPrompt as yr, consumeRestartSentinel as yt, provider_dispatcher_exports as z, resolveInboundDebounceMs as zn, CHANNEL_TARGETS_DESCRIPTION as zt };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { at as isFileLogLevelEnabled, ct as levelToMinLevel, lt as normalizeLogLevel, n as CHAT_CHANNEL_ORDER, q as isVerbose, rt as getChildLogger, st as loggingState, ut as readLoggingConfig } from "./registry-
|
|
1
|
+
import { at as isFileLogLevelEnabled, ct as levelToMinLevel, lt as normalizeLogLevel, n as CHAT_CHANNEL_ORDER, q as isVerbose, rt as getChildLogger, st as loggingState, ut as readLoggingConfig } from "./registry-DYq1AYOv.js";
|
|
2
2
|
import { Chalk } from "chalk";
|
|
3
3
|
|
|
4
4
|
//#region src/terminal/progress-line.ts
|