@symerian/symi 3.5.17 → 3.5.18
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/{agent-RWZSPbLw.js → agent-C5i1IOSH.js} +4 -4
- package/dist/{agent-Za31LZ2H.js → agent-DAgNFk7s.js} +6 -6
- package/dist/{agents-CulBOE6L.js → agents-D6vcHu1f.js} +10 -10
- package/dist/{audit-B1fVD2bA.js → audit-BkXjUIB4.js} +7 -7
- package/dist/{audit-BQnxE5w6.js → audit-KLVrIL2o.js} +7 -7
- package/dist/{auth-choice-B8n3tJtT.js → auth-choice-BAWjJhdA.js} +6 -6
- package/dist/{auth-choice-C8ElO44A.js → auth-choice-CYIdNu5I.js} +6 -6
- package/dist/{auth-choice-options-DmXqtnP9.js → auth-choice-options-2Kq8GdIR.js} +1 -1
- package/dist/{auth-choice-options-od_KpHe8.js → auth-choice-options-DpwzCJa5.js} +1 -1
- package/dist/{auth-choice-prompt-BnvC700A.js → auth-choice-prompt-BAFfYZeR.js} +1 -1
- package/dist/{auth-choice-prompt-kt2FcieM.js → auth-choice-prompt-D6A5uuj3.js} +1 -1
- package/dist/{banner-B91SPus6.js → banner-fe7EgXbN.js} +1 -1
- package/dist/{bonjour-discovery-CyLfNUkJ.js → bonjour-discovery-CWTnBKX8.js} +1 -1
- package/dist/{bonjour-discovery-DuObXMh2.js → bonjour-discovery-XbH0AYJ4.js} +1 -1
- package/dist/{browser-cli-BvOz7txM.js → browser-cli-T0M4dRjm.js} +7 -7
- package/dist/{browser-cli-CXDzGAN7.js → browser-cli-djgni0MZ.js} +7 -7
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +4 -4
- package/dist/bundled/session-memory/handler.js +4 -4
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-CsyyC4uc.js → channel-options-D6G_F3eF.js} +2 -2
- package/dist/{channel-options-1G5HGFpn.js → channel-options-EXtSsJf6.js} +2 -2
- package/dist/{channels-cli-R3TK9Jwf.js → channels-cli-Cqq_mzfB.js} +40 -40
- package/dist/{channels-cli-aF7d6Af9.js → channels-cli-JOUMlq_F.js} +41 -41
- package/dist/{chrome-3jl2ulOE.js → chrome-DNssqQJs.js} +7 -7
- package/dist/{chrome-CmQwGAuL.js → chrome-OTJg3QKn.js} +7 -7
- package/dist/{clack-prompter-_kEnSVz4.js → clack-prompter-BMQT37oC.js} +4 -4
- package/dist/{clack-prompter-v9MYo-5u.js → clack-prompter-BpcKjPIh.js} +4 -4
- package/dist/{cli-Bguq-s8o.js → cli-B8UZj63C.js} +22 -22
- package/dist/{cli-CFaH6TRI.js → cli-mps-KWqp.js} +23 -23
- package/dist/{command-registry-Bmzf59Qv.js → command-registry-BamL-8ni.js} +11 -11
- package/dist/{completion-cli-CtUZzw-P.js → completion-cli-BE3hVsai.js} +1 -1
- package/dist/{completion-cli-BM4kZs0m.js → completion-cli-CcPYX9ML.js} +3 -3
- package/dist/{config-cli-Cvylxp-R.js → config-cli-BQtaSYis.js} +2 -2
- package/dist/{config-cli-D6vpEtzB.js → config-cli-thmRhEXK.js} +2 -2
- package/dist/{config-guard-D58THqAB.js → config-guard-BRm3RiOi.js} +6 -6
- package/dist/{config-guard-CLfXzB_z.js → config-guard-CCLLHbZ3.js} +1 -1
- package/dist/{configure-BMRfSJ5h.js → configure-BYjDOt22.js} +21 -21
- package/dist/{configure-DRDyxmMR.js → configure-CldmyPrd.js} +21 -21
- package/dist/{control-service-DPzhv357.js → control-service-CG6l_Yap.js} +2 -2
- package/dist/{control-service-DOGU9T2P.js → control-service-D8kKOts5.js} +2 -2
- package/dist/{cron-cli-DlxcZT7g.js → cron-cli-CULf3dmR.js} +4 -4
- package/dist/{cron-cli-DVEdIAaa.js → cron-cli-DKsbgF-x.js} +4 -4
- package/dist/{daemon-cli-DqJhEk3T.js → daemon-cli-BNjzVjLA.js} +12 -12
- package/dist/{daemon-cli-6ZV3jmTp.js → daemon-cli-C5WZasB0.js} +12 -12
- package/dist/{daemon-runtime-DaJ4Tf2a.js → daemon-runtime-AkgOtHR6.js} +1 -1
- package/dist/{daemon-runtime-7YBz5otm.js → daemon-runtime-DlQla_dA.js} +1 -1
- package/dist/{deliver-B04yNX82.js → deliver-BiWlR84Y.js} +4 -4
- package/dist/{deliver-0nDhDdKd.js → deliver-DIK2emIV.js} +1 -1
- package/dist/{deliver-C81eqdrP.js → deliver-lTZLIQqf.js} +1 -1
- package/dist/{deliver-f3cIWxXT.js → deliver-q23ar_Pm.js} +4 -4
- package/dist/{devices-cli-C4rLpzkl.js → devices-cli-CZKVVOJl.js} +2 -2
- package/dist/{devices-cli-C6EdHL_5.js → devices-cli-rR11xT7v.js} +2 -2
- package/dist/{diagnostics-BZH08r5U.js → diagnostics-D2oNwzue.js} +1 -1
- package/dist/{diagnostics-CdawaB0U.js → diagnostics-DlZODdRf.js} +1 -1
- package/dist/{directory-cli-BQrGwwjf.js → directory-cli-Bm5QYEo-.js} +5 -5
- package/dist/{directory-cli-FR_KoYon.js → directory-cli-DAGG_z_L.js} +5 -5
- package/dist/{dns-cli-CH2QMf70.js → dns-cli-CubLq4j9.js} +3 -3
- package/dist/{dns-cli-Cua_RGWw.js → dns-cli-yj_xgcmZ.js} +3 -3
- package/dist/{docs-cli-DwrSCuWF.js → docs-cli-ABJdcZAr.js} +2 -2
- package/dist/{docs-cli-9yu6OeWj.js → docs-cli-PS8m1er7.js} +2 -2
- package/dist/{doctor-completion-Df7Hv_IA.js → doctor-completion-BNg17v6i.js} +2 -2
- package/dist/{doctor-completion-Do20Q4ZM.js → doctor-completion-XdRobzWG.js} +2 -2
- package/dist/{doctor-config-flow-CKJlpwtv.js → doctor-config-flow-BIBJeoRl.js} +3 -3
- package/dist/{doctor-config-flow-CcwEh3WQ.js → doctor-config-flow-C52W1uUK.js} +3 -3
- package/dist/{enable-BI6rQ1Fb.js → enable-B8TbkmWU.js} +1 -1
- package/dist/{enable-xfczksnk.js → enable-BIMBTSRy.js} +1 -1
- package/dist/entry.js +1 -1
- package/dist/{exec-approvals-cli-Ca54uWdL.js → exec-approvals-cli-C4HEY0eG.js} +8 -8
- package/dist/{exec-approvals-cli-bu1S7v6i.js → exec-approvals-cli-DS6ZEPKH.js} +8 -8
- package/dist/extensionAPI.js +4 -4
- package/dist/{gateway-cli-CKlpsjYJ.js → gateway-cli-CAc-uivv.js} +77 -69
- package/dist/{gateway-cli-CwuURJSh.js → gateway-cli-CGXvamVN.js} +80 -72
- package/dist/{gateway-rpc-vivTzTCq.js → gateway-rpc-BmYtSmmM.js} +1 -1
- package/dist/{gateway-rpc-DMSsr0Xn.js → gateway-rpc-DJ2ZjQmX.js} +1 -1
- package/dist/{glass-ui-ws-Bzs3ALoN.js → glass-ui-ws-Bha2cLkY.js} +50 -50
- package/dist/{glass-ui-ws-C88aJslb.js → glass-ui-ws-DCCEkdBr.js} +48 -48
- package/dist/{health-D0jGdk53.js → health-Ba5X7a38.js} +3 -3
- package/dist/{health--v-C6lSf.js → health-Ct-lDCmK.js} +3 -3
- package/dist/{hooks-cli-CZ_pSdXS.js → hooks-cli-D2iAnwfW.js} +28 -28
- package/dist/{hooks-cli-CrZvzan1.js → hooks-cli-DUL_PDOH.js} +29 -29
- package/dist/{hooks-status-CQ33gaVT.js → hooks-status-CvKe3Bfk.js} +2 -2
- package/dist/{hooks-status-B5vDwm19.js → hooks-status-DoeoPJbZ.js} +1 -1
- package/dist/index.js +34 -34
- package/dist/{inspect-D_lN8pwg.js → inspect-CGKsaVZ4.js} +1 -1
- package/dist/{inspect-C3_zr-N9.js → inspect-CRa8Af7f.js} +1 -1
- package/dist/{install-safe-path-BBe6qFNr.js → install-safe-path-B2JrFspY.js} +1 -1
- package/dist/{install-safe-path-79R0iPyC.js → install-safe-path-BdxXJux8.js} +1 -1
- package/dist/{installs-Bb1phV9x.js → installs-D890uIIW.js} +3 -3
- package/dist/{installs-BVJQl3Tj.js → installs-Dunp9UFl.js} +3 -3
- package/dist/{lifecycle-core-O50xtu5c.js → lifecycle-core-YmWzkN43.js} +5 -5
- package/dist/{lifecycle-core-DdbL6ELJ.js → lifecycle-core-wFwnK_mD.js} +5 -5
- package/dist/llm-slug-generator.js +4 -4
- package/dist/{logs-cli-Dde2Dp2w.js → logs-cli-CgMlVSvI.js} +4 -4
- package/dist/{logs-cli-vIxaNVmF.js → logs-cli-N1bMTcij.js} +4 -4
- package/dist/{manager--GmDbwza.js → manager-B8q57Pg2.js} +1 -1
- package/dist/{manager-B-wPs7cb.js → manager-BAcrpGcR.js} +1 -1
- package/dist/{manager-BMA3iRMq.js → manager-BUyQ1gFU.js} +1 -1
- package/dist/{manager-S5d36_EM.js → manager-BcWElKHq.js} +1 -1
- package/dist/{memory-BcdI7NSs.js → memory-By9GyX8z.js} +3 -3
- package/dist/{memory-DBx1wEvf.js → memory-CHSa0jVf.js} +3 -3
- package/dist/{memory-cli-jNf_SaXU.js → memory-cli-JTWldzg5.js} +6 -6
- package/dist/{memory-cli-CQSVrNAK.js → memory-cli-e5KEX6Ql.js} +6 -6
- package/dist/{model-picker-DN-co6Oy.js → model-picker-Cf6UgQEh.js} +1 -1
- package/dist/{model-picker-CS_h9RHv.js → model-picker-DvP8ViSf.js} +1 -1
- package/dist/{models-cli-CiL6wDtk.js → models-cli-B-u1KOUo.js} +35 -35
- package/dist/{models-cli-6tdy2DaI.js → models-cli-DJnRAEsb.js} +32 -32
- package/dist/{models-BgZWEpSL.js → models-dVS6tcNK.js} +12 -12
- package/dist/{node-cli-BTXwMEJE.js → node-cli-BqvgYrlJ.js} +17 -17
- package/dist/{node-cli-ClniLggz.js → node-cli-CKuOdw5j.js} +17 -17
- package/dist/{node-service-CfHbECCi.js → node-service-BH08wY5j.js} +1 -1
- package/dist/{node-service-D44noKnR.js → node-service-CZlyWmxa.js} +1 -1
- package/dist/{nodes-cli-DrhMUDXx.js → nodes-cli-BrV7Xpf_.js} +7 -7
- package/dist/{nodes-cli-DLaX4pgX.js → nodes-cli-C6kDpXS_.js} +7 -7
- package/dist/{note-Cltpxj6i.js → note-BIAQpZxi.js} +1 -1
- package/dist/{note-ytwb4wwn.js → note-D9FXI2qW.js} +1 -1
- package/dist/{npm-registry-spec-CONWlhd6.js → npm-registry-spec-BPgK9EL7.js} +1 -1
- package/dist/{npm-registry-spec-DPqOMFd9.js → npm-registry-spec-DTqn-NXZ.js} +1 -1
- package/dist/{onboard-DFbgAa-t.js → onboard-BoKwKol7.js} +17 -17
- package/dist/{onboard-3FdfkbGm.js → onboard-CHOoD7jN.js} +17 -17
- package/dist/{onboard-channels-DeRg97iI.js → onboard-channels-C4_2V9uU.js} +7 -7
- package/dist/{onboard-channels-BN00--TD.js → onboard-channels-CfzUCh7p.js} +7 -7
- package/dist/{onboard-custom-BCcuL4Uq.js → onboard-custom-BcRYreNG.js} +2 -2
- package/dist/{onboard-custom-C-wfNtOM.js → onboard-custom-CfKvdcJ5.js} +2 -2
- package/dist/{onboard-helpers-Cv6fL8Vq.js → onboard-helpers-DI-HmD7F.js} +2 -2
- package/dist/{onboard-helpers-CAAZ0RDq.js → onboard-helpers-Dpb3-BZm.js} +2 -2
- package/dist/{onboard-hooks-D5-mtFUY.js → onboard-hooks-2SCajRKc.js} +2 -2
- package/dist/{onboard-hooks-CxJRzS5z.js → onboard-hooks-BpyxMXOj.js} +2 -2
- package/dist/{onboard-remote-pucDu-pH.js → onboard-remote-B8wiom2Y.js} +3 -3
- package/dist/{onboard-remote-CXRFa8AU.js → onboard-remote-Bs5NP5sK.js} +3 -3
- package/dist/{onboard-skills-BVTCfqlg.js → onboard-skills-B6CZay_w.js} +3 -3
- package/dist/{onboard-skills-C_93kjju.js → onboard-skills-BaprraLV.js} +2 -2
- package/dist/{onboarding-BigIUHoh.js → onboarding-B2BOb2RZ.js} +15 -15
- package/dist/{onboarding-fq_-89Jc.js → onboarding-DsxU2nSf.js} +15 -15
- package/dist/{onboarding.finalize-C2Dt95Rn.js → onboarding.finalize-BE7BU0jr.js} +21 -21
- package/dist/{onboarding.finalize-BGDBP9G7.js → onboarding.finalize-C-kW49Ut.js} +23 -23
- package/dist/{onboarding.gateway-config-eFJnSC-S.js → onboarding.gateway-config-Bs46b6Gz.js} +3 -3
- package/dist/{onboarding.gateway-config-wB3ShGU4.js → onboarding.gateway-config-DqFBlQ06.js} +3 -3
- package/dist/{openai-model-default-CKfNKTZD.js → openai-model-default-BkuuK-Di.js} +1 -1
- package/dist/{openai-model-default-ChdgeMqX.js → openai-model-default-Cx6qbnBw.js} +1 -1
- package/dist/{pairing-cli-D7_UlTsI.js → pairing-cli-CC0YyYGs.js} +2 -2
- package/dist/{pairing-cli-UgiAsygW.js → pairing-cli-Rsae0KnN.js} +2 -2
- package/dist/{path-env-BAyW1s3c.js → path-env-BY88zbPR.js} +1 -1
- package/dist/{path-env-C1hgM8gP.js → path-env-SUrcTSJ-.js} +1 -1
- package/dist/{pi-embedded-BAgVs8XC.js → pi-embedded-DEoacZlB.js} +145 -14
- package/dist/{pi-embedded-helpers-BBiyNXkS.js → pi-embedded-helpers-BQjRftRI.js} +1 -1
- package/dist/{pi-embedded-helpers-CDzBxa-P.js → pi-embedded-helpers-D-OFjhdI.js} +1 -1
- package/dist/{pi-tools.policy-CU8U7--z.js → pi-tools.policy-BeD_scvO.js} +1 -1
- package/dist/{pi-tools.policy-WaLKhqJQ.js → pi-tools.policy-CIw6PZ9e.js} +1 -1
- package/dist/{plugin-auto-enable-Bt2sVz8w.js → plugin-auto-enable-DJBhDIMq.js} +2 -2
- package/dist/{plugin-auto-enable-PBDcVF_-.js → plugin-auto-enable-DaR6Z6BC.js} +2 -2
- package/dist/{plugin-registry-2DU3g0AT.js → plugin-registry-D1BIaht5.js} +1 -1
- package/dist/{plugin-registry-CubHLj0v.js → plugin-registry-DeslTmEa.js} +1 -1
- package/dist/plugin-sdk/agents/tools/display-artifact-tool.d.ts +2 -0
- package/dist/plugin-sdk/index.js +6 -6
- package/dist/plugin-sdk/infra/symframe-broadcast.d.ts +8 -0
- package/dist/{plugins-cli-CIYGRkKI.js → plugins-cli-DJIjgG5p.js} +29 -29
- package/dist/{plugins-cli-Dpj76E3-.js → plugins-cli-tWL29ean.js} +30 -30
- package/dist/{program-FBDhJLrg.js → program-C_ecACg4.js} +32 -32
- package/dist/{program-context-CZYb4zB2.js → program-context-DhXsfGWA.js} +41 -41
- package/dist/{prompt-select-styled-DQyZ6VHH.js → prompt-select-styled-5mNa_JDe.js} +27 -27
- package/dist/{prompt-select-styled-C3LUG3Be.js → prompt-select-styled-B0UbChI2.js} +26 -26
- package/dist/{provider-auth-helpers-B_gA1eP9.js → provider-auth-helpers-BikwPxIZ.js} +6 -6
- package/dist/{provider-auth-helpers-LpT83BSS.js → provider-auth-helpers-c3gQEsiU.js} +6 -6
- package/dist/{push-apns-CLngpXwL.js → push-apns-COFa30nz.js} +1 -1
- package/dist/{push-apns-BWeNJb15.js → push-apns-DAYwWXpM.js} +1 -1
- package/dist/{pw-ai-DLsdzdgc.js → pw-ai-DY_6l11g.js} +1 -1
- package/dist/{pw-ai-DOAsQ5NX.js → pw-ai-v__CyAlM.js} +1 -1
- package/dist/{register.agent-pWEv9TC7.js → register.agent-B6pZEY8i.js} +47 -47
- package/dist/{register.agent-Dz24Zz7t.js → register.agent-D_zWbLp4.js} +50 -50
- package/dist/{register.configure-DQWtFNGt.js → register.configure-qpAPaUf1.js} +57 -57
- package/dist/{register.configure-BMLA-3Mt.js → register.configure-z9G70eYJ.js} +55 -55
- package/dist/{register.maintenance-81d4KKmA.js → register.maintenance-DLaTTsm9.js} +50 -50
- package/dist/{register.maintenance-FWHasNw7.js → register.maintenance-Ds0ujl3V.js} +50 -50
- package/dist/{register.message-vUwGF3E9.js → register.message-0N5-oUQ2.js} +28 -28
- package/dist/{register.message-C-p-GZ8z.js → register.message-ChR97uym.js} +26 -26
- package/dist/{register.onboard-COyX1xSR.js → register.onboard-B7mbI-9F.js} +23 -23
- package/dist/{register.onboard-BjPPudfS.js → register.onboard-D5S1tP0K.js} +23 -23
- package/dist/{register.setup-C_ds_5fl.js → register.setup-CJ9hldNi.js} +23 -23
- package/dist/{register.setup-DDMtRxcF.js → register.setup-CaA-JN2n.js} +23 -23
- package/dist/{register.status-health-sessions-Dn2gy0gi.js → register.status-health-sessions-BUgIBm_S.js} +29 -29
- package/dist/{register.status-health-sessions-C9Zdn1ai.js → register.status-health-sessions-CkZTuaL-.js} +29 -29
- package/dist/{register.subclis-B16w8wxz.js → register.subclis-Ca8FmJFy.js} +30 -30
- package/dist/{resolve-route-D0NrCHnr.js → resolve-route-BVJ4-d9c.js} +1 -1
- package/dist/{resolve-route-CnTdHVgw.js → resolve-route-C1IIA6kH.js} +1 -1
- package/dist/{routes-DIyAmLYR.js → routes-ivqbutvM.js} +1 -1
- package/dist/{routes-CPMVuvoz.js → routes-wLkmjLj9.js} +1 -1
- package/dist/{rpc-KjYXUeLD.js → rpc-BWgqz86j.js} +1 -1
- package/dist/{rpc-DP3AhcZq.js → rpc-D4d4nLSU.js} +1 -1
- package/dist/{run-main-CUMiBvgm.js → run-main-DMrkCeK2.js} +46 -46
- package/dist/{sandbox-61-kshSF.js → sandbox-BkznAPKO.js} +2 -2
- package/dist/{sandbox-J92UBQK8.js → sandbox-DjKcZavm.js} +2 -2
- package/dist/{sandbox-cli-D9v0jhBb.js → sandbox-cli-Bb9cBtBH.js} +5 -5
- package/dist/{sandbox-cli-DJgF-r8G.js → sandbox-cli-DmgpJLlJ.js} +5 -5
- package/dist/{security-cli-hTCYStCU.js → security-cli-C_KMIhS2.js} +9 -9
- package/dist/{security-cli-CGLnA_ni.js → security-cli-McZcuPWz.js} +9 -9
- package/dist/{server-context-SbbjNkPL.js → server-context-ChcbJgNo.js} +3 -3
- package/dist/{server-context-D-82OTsT.js → server-context-DrAh6Cgw.js} +3 -3
- package/dist/{server-methods-D_zGEWNK.js → server-methods-BygKI0kw.js} +32 -29
- package/dist/{server-methods-C3_JU-DI.js → server-methods-szCGOyyf.js} +31 -28
- package/dist/{server-node-events-CRYzL3TY.js → server-node-events-CbR5rq2-.js} +25 -25
- package/dist/{server-node-events-CW5ilXPN.js → server-node-events-y9KRPn6N.js} +27 -27
- package/dist/{service-Ccv3Zi5_.js → service-DYpU1ajf.js} +1 -1
- package/dist/{service-BF50XyKr.js → service-e6MzlLCd.js} +1 -1
- package/dist/{shared-BmjlTHYU.js → shared-1xPo9ygd.js} +1 -1
- package/dist/{shared-BJRsBGGr.js → shared-Dl4ZrOve.js} +1 -1
- package/dist/{skills-cli-BZF5mcG5.js → skills-cli-B-7TY-vS.js} +6 -6
- package/dist/{skills-cli-C9F-zLWe.js → skills-cli-jQ-M3ToK.js} +2 -2
- package/dist/{skills-install-QOHQrX6P.js → skills-install-CZE8W7lV.js} +4 -4
- package/dist/{skills-install-X12kifP1.js → skills-install-Dwzsjoc8.js} +4 -4
- package/dist/{skills-status-6LVKpabC.js → skills-status-BKX1PjCc.js} +1 -1
- package/dist/{status-C_K3wapX.js → status-BZ9FL5l4.js} +1 -1
- package/dist/{status-DbIBRkrV.js → status-Cthysi1v.js} +16 -16
- package/dist/{status-NK8EUhIy.js → status-lqzeb_Td.js} +1 -1
- package/dist/{status-1ACP62Xm.js → status-uRIajsvi.js} +15 -15
- package/dist/{status.update-CdTtmVpp.js → status.update-DGJi0OLl.js} +1 -1
- package/dist/{status.update-_3qHPt0O.js → status.update-DW6VHYmK.js} +1 -1
- package/dist/{subagent-registry-SZbZfkbr.js → subagent-registry-DwvGle7T.js} +144 -21
- package/dist/symframe-broadcast-BVxModY5.js +22 -0
- package/dist/symframe-broadcast-CXo2qoxy.js +22 -0
- package/dist/{symframe-cli-DLbhzXNU.js → symframe-cli-0tRARGnc.js} +3 -3
- package/dist/{symframe-cli-OqTUw6Mt.js → symframe-cli-D00zI8yK.js} +3 -3
- package/dist/{synthesis-BLRsy_PZ.js → synthesis-BKLx13A_.js} +22 -22
- package/dist/{synthesis-CG0rRaLA.js → synthesis-CzKaWpzb.js} +4 -4
- package/dist/{synthesis-CA2zGGNE.js → synthesis-DwAlX75N.js} +23 -23
- package/dist/{synthesis-CUbz4CaL.js → synthesis-P09ozKOL.js} +4 -4
- package/dist/{system-cli-CYgTroZA.js → system-cli-D18NNk54.js} +3 -3
- package/dist/{system-cli-BoxTfo1R.js → system-cli-OzNqTgb2.js} +3 -3
- package/dist/{systemd-hints-DmDUq9JT.js → systemd-hints-BoFy3-m1.js} +4 -4
- package/dist/{systemd-hints-bP8dBJ78.js → systemd-hints-CsrzMCTD.js} +4 -4
- package/dist/{systemd-linger-DjoQVcOq.js → systemd-linger-BzYk7A6M.js} +2 -2
- package/dist/{systemd-linger-BBxRNFXz.js → systemd-linger-CctFkWNE.js} +2 -2
- package/dist/{tui-BdtfeKft.js → tui-CDovUd2Z.js} +1 -1
- package/dist/{tui-cli-CcSS08na.js → tui-cli--wAWyd-U.js} +7 -7
- package/dist/{tui-cli-_WzJLbOA.js → tui-cli-COLpBx2w.js} +7 -7
- package/dist/{tui-CO7OA9ZO.js → tui-mmN0hLk6.js} +1 -1
- package/dist/{unified-runner-B0cMr4If.js → unified-runner-CSqDmSWt.js} +145 -22
- package/dist/{unified-runner-ChkYfsxy.js → unified-runner-CuhQvmLZ.js} +145 -14
- package/dist/{update-BDo7wxMf.js → update-B7qKOIqP.js} +1 -1
- package/dist/{update-check-oEbS0voJ.js → update-check-BCL_K7kx.js} +1 -1
- package/dist/{update-check-A86nJKtZ.js → update-check-DLOnLuop.js} +1 -1
- package/dist/{update-cli-BhI88CVk.js → update-cli-BsfG48ZS.js} +59 -59
- package/dist/{update-cli-jxM3sFLP.js → update-cli-Df_HQi-p.js} +59 -59
- package/dist/{update-runner-DHi359Tb.js → update-runner-BLV8SI96.js} +2 -2
- package/dist/{update-runner-CQMv-ibM.js → update-runner-Cext3X8r.js} +2 -2
- package/dist/{update-CcacbR32.js → update-yYduAjKd.js} +1 -1
- package/dist/{webhooks-cli-BUWSS_ve.js → webhooks-cli-CkSbVFZl.js} +2 -2
- package/dist/{webhooks-cli-BrDeMswO.js → webhooks-cli-D5k-Y2A8.js} +2 -2
- package/dist/{with-timeout-B0ZJa7f2.js → with-timeout-B9GM8DPj.js} +1 -1
- package/dist/{with-timeout-GbJ1Yzsh.js → with-timeout-DPR4A2dx.js} +1 -1
- package/package.json +1 -1
- /package/dist/{agents.config-DK6nN-Qh.js → agents.config-B7sNDvhz.js} +0 -0
- /package/dist/{agents.config-Cyc_RegL.js → agents.config-CqfMQEiy.js} +0 -0
- /package/dist/{argv-Bl0th4dq.js → argv-D6PT4jl6.js} +0 -0
- /package/dist/{auth-choice-legacy-BZWIpO92.js → auth-choice-legacy-CsL_9IlL.js} +0 -0
- /package/dist/{auth-choice-legacy-iEyARXI2.js → auth-choice-legacy-D9d98wkI.js} +0 -0
- /package/dist/{auth-token-DyhvQgv4.js → auth-token-Cr28IDKY.js} +0 -0
- /package/dist/{auth-token-lPWiklDD.js → auth-token-YTHu2ftn.js} +0 -0
- /package/dist/{bindings-c7qLJdIA.js → bindings-BRZBH7eX.js} +0 -0
- /package/dist/{bindings-BAOPW5eK.js → bindings-DIhsYGa_.js} +0 -0
- /package/dist/{brew-B4FH-mEH.js → brew-Clk21D21.js} +0 -0
- /package/dist/{brew-CI00FKf8.js → brew-DD55iLUe.js} +0 -0
- /package/dist/{catalog-BaM8d1-T.js → catalog-BQgWCFTH.js} +0 -0
- /package/dist/{catalog-BnLcGVie.js → catalog-BptA-dUv.js} +0 -0
- /package/dist/{channel-selection-BrFl0vVK.js → channel-selection-CmU8iVio.js} +0 -0
- /package/dist/{channel-selection-DjrS6oiz.js → channel-selection-H1qOf0q-.js} +0 -0
- /package/dist/{channels-status-issues-BwbA2OBt.js → channels-status-issues-BTvrA4nx.js} +0 -0
- /package/dist/{channels-status-issues-iWQDGUQe.js → channels-status-issues-DLIzUsjR.js} +0 -0
- /package/dist/{cli-utils-Ca0KE-dW.js → cli-utils-CuyGL3rq.js} +0 -0
- /package/dist/{cli-utils-CbnnSB38.js → cli-utils-DXfA5936.js} +0 -0
- /package/dist/{clipboard-BSTxQ2tO.js → clipboard-BGveOWXP.js} +0 -0
- /package/dist/{clipboard-CHn5r7Kj.js → clipboard-v8OffNHk.js} +0 -0
- /package/dist/{command-options-DgcCGXMQ.js → command-options-BFvvecvU.js} +0 -0
- /package/dist/{command-options-Vxb4M7Aj.js → command-options-DDDwkB9t.js} +0 -0
- /package/dist/{config-validation-DQ-lm2Qx.js → config-validation-Cdyg1BZB.js} +0 -0
- /package/dist/{config-validation-DhsYEtLL.js → config-validation-CeEJcuMJ.js} +0 -0
- /package/dist/{consolidate-BoM9cz9L.js → consolidate-BNTNdxdL.js} +0 -0
- /package/dist/{consolidate-nNhnUpNj.js → consolidate-DymnvvYm.js} +0 -0
- /package/dist/{control-ui-assets-CnX0W3vy.js → control-ui-assets-CJQ97d4u.js} +0 -0
- /package/dist/{control-ui-assets-DfBRXG5y.js → control-ui-assets-Dnz69KRU.js} +0 -0
- /package/dist/{cost-cli-CmfkZsmZ.js → cost-cli-BfcKmCc4.js} +0 -0
- /package/dist/{cost-cli-C9LvOtGz.js → cost-cli-DWiVCOCx.js} +0 -0
- /package/dist/{delivery-queue-CIwn40ej.js → delivery-queue-B2oigbh4.js} +0 -0
- /package/dist/{delivery-queue-duM0RT18.js → delivery-queue-OAc7hsIs.js} +0 -0
- /package/dist/{deps-D5me2CAW.js → deps-Bf9dt2UO.js} +0 -0
- /package/dist/{dm-policy-shared-EuuPwRNE.js → dm-policy-shared-BtrdvOIT.js} +0 -0
- /package/dist/{dm-policy-shared-BUwZ6Ajx.js → dm-policy-shared-CeFt0nch.js} +0 -0
- /package/dist/{entry-status-D0BSpWt_.js → entry-status-DnvpZhUd.js} +0 -0
- /package/dist/{format-BFJAwjeA.js → format-CZeGyu83.js} +0 -0
- /package/dist/{gmail-setup-utils-_TEJA4pL.js → gmail-setup-utils-BYBwPfuu.js} +0 -0
- /package/dist/{gmail-setup-utils-DJgxyDTX.js → gmail-setup-utils-CGaQ7-Vb.js} +0 -0
- /package/dist/{health-format-Li703vy6.js → health-format-6tfMqkNX.js} +0 -0
- /package/dist/{health-format-Dp4xmTKn.js → health-format-Bxg84_f4.js} +0 -0
- /package/dist/{help-format-8IYCRvx1.js → help-format-7hFcsqss.js} +0 -0
- /package/dist/{help-format-BTNd5kFC.js → help-format-Dbp8yEhl.js} +0 -0
- /package/dist/{helpers-DGBa5iKd.js → helpers-B_p8ul9t.js} +0 -0
- /package/dist/{helpers-CoScWBmD.js → helpers-CBCZwlBW.js} +0 -0
- /package/dist/{helpers-lLtg0Hgi.js → helpers-CKQ7JYPP.js} +0 -0
- /package/dist/{helpers-BnXDQL2q.js → helpers-G6zuddmF.js} +0 -0
- /package/dist/{ipv4-CCdAVmwu.js → ipv4-C_NtZ3JP.js} +0 -0
- /package/dist/{ipv4-DFUXU3PT.js → ipv4-qGjACkoi.js} +0 -0
- /package/dist/{links-CQZxjjCO.js → links-Bqr0FxXx.js} +0 -0
- /package/dist/{links-B9CbwY46.js → links-Dnmd-RS-.js} +0 -0
- /package/dist/{logging-CLWZ3KQI.js → logging-BWknayJl.js} +0 -0
- /package/dist/{logging-BmJ5ky59.js → logging-DDnP1BTp.js} +0 -0
- /package/dist/{logging-BRejMykf.js → logging-Ev3fNJEG.js} +0 -0
- /package/dist/{logging-uD67RPtO.js → logging-UO6tk8Em.js} +0 -0
- /package/dist/{model-BMFj7NXy.js → model-MUMSB_7d.js} +0 -0
- /package/dist/{model-param-b-DieX_ZxM.js → model-param-b-BQFczpbd.js} +0 -0
- /package/dist/{onboard-config-B9Iy9-4f.js → onboard-config-DrMJycgG.js} +0 -0
- /package/dist/{onboard-config-DwsP5yz1.js → onboard-config-yFJq4mEu.js} +0 -0
- /package/dist/{outbound-send-deps-DpyxnI3f.js → outbound-send-deps--SpwgFhS.js} +0 -0
- /package/dist/{outbound-send-deps-JQjmNLPx.js → outbound-send-deps-BCyarBRf.js} +0 -0
- /package/dist/{parse-log-line-BQPvB6cZ.js → parse-log-line-DfH8ycNl.js} +0 -0
- /package/dist/{parse-log-line-Cg7e_EO6.js → parse-log-line-Vp8N7lak.js} +0 -0
- /package/dist/{parse-port-CLBKavYE.js → parse-port-Bi7Gqqv0.js} +0 -0
- /package/dist/{parse-port-dzRz6QnZ.js → parse-port-CMRD6fhd.js} +0 -0
- /package/dist/{parse-timeout-CuYdP9TL.js → parse-timeout-DmEcHIsV.js} +0 -0
- /package/dist/{parse-timeout-DUdeaMqF.js → parse-timeout-widuTpq9.js} +0 -0
- /package/dist/{path-safety-ZDtSDPro.js → path-safety-CV-2z0JS.js} +0 -0
- /package/dist/{path-safety-cWA8NpOb.js → path-safety-CkXjT453.js} +0 -0
- /package/dist/{plugins-allowlist-C5r7biDp.js → plugins-allowlist-CAXiY1du.js} +0 -0
- /package/dist/{plugins-allowlist-CD4oIJNk.js → plugins-allowlist-DV-EyqWq.js} +0 -0
- /package/dist/{ports-C2swmreL.js → ports-gFlaMWtN.js} +0 -0
- /package/dist/{ports-BE4iY9ho.js → ports-r7LBic2V.js} +0 -0
- /package/dist/{program-context-CGKRxOBU.js → program-context-B_0V80zV.js} +0 -0
- /package/dist/{progress-BOQ0hkeM.js → progress-CI19Xh3z.js} +0 -0
- /package/dist/{progress-DQTvTiEg.js → progress-swt2y17x.js} +0 -0
- /package/dist/{prompt-style-CzRuIYtp.js → prompt-style-CZGg35Py.js} +0 -0
- /package/dist/{prompt-style-pphr4yLK.js → prompt-style-olk5zI5k.js} +0 -0
- /package/dist/{prompts-B98rp78m.js → prompts-CNzp9M83.js} +0 -0
- /package/dist/{prompts-CqJkfsHC.js → prompts-D4yOwSll.js} +0 -0
- /package/dist/{pw-ai-DQZa9DUQ.js → pw-ai-BiBvIJzd.js} +0 -0
- /package/dist/{pw-ai-DBAtSFTB.js → pw-ai-C0Jie9u9.js} +0 -0
- /package/dist/{qmd-manager-C1levE0a.js → qmd-manager-4tXuJfLY.js} +0 -0
- /package/dist/{qmd-manager-CR71XjjR.js → qmd-manager-C8-M4Pru.js} +0 -0
- /package/dist/{qr-cli-DHpiebkG.js → qr-cli-1sCVaPcF.js} +0 -0
- /package/dist/{qr-cli-D2A-IU0Y.js → qr-cli-BnNm-DMY.js} +0 -0
- /package/dist/{replies-_DV8VSSj.js → replies-CLREUzzB.js} +0 -0
- /package/dist/{replies-C5CBlnFS.js → replies-CbXXjn9X.js} +0 -0
- /package/dist/{runtime-guard-Bgv3O9s4.js → runtime-guard-CWA00ZXa.js} +0 -0
- /package/dist/{runtime-guard-ofQGcCUc.js → runtime-guard-LRRZ73eX.js} +0 -0
- /package/dist/{runtime-status-B-PXkhrX.js → runtime-status-BgZqic8M.js} +0 -0
- /package/dist/{runtime-status-Zb9OQ0VK.js → runtime-status-DV2uMNRb.js} +0 -0
- /package/dist/{session-dirs-BsQ-g02q.js → session-dirs-C9E2G0yZ.js} +0 -0
- /package/dist/{session-dirs-DpiMgw4q.js → session-dirs-pNE-WE2a.js} +0 -0
- /package/dist/{sessions-BSmT7vGX.js → sessions-C2vCAjTZ.js} +0 -0
- /package/dist/{shared-Ck6cf10x.js → shared-COtpr3Ad.js} +0 -0
- /package/dist/{shared-Crfo8y70.js → shared-DHJR5_SP.js} +0 -0
- /package/dist/{skill-scanner-EhsZUzzk.js → skill-scanner-BC3PyNso.js} +0 -0
- /package/dist/{skill-scanner-D5p8L-xO.js → skill-scanner-BCgVcIwi.js} +0 -0
- /package/dist/{status-DtyqId3v.js → status-Bah7VY4i.js} +0 -0
- /package/dist/{status-dOhj12u0.js → status-BzmfZaEV.js} +0 -0
- /package/dist/{system-run-command-2oJPKfVr.js → system-run-command-CYEDiFm7.js} +0 -0
- /package/dist/{system-run-command-D_OmCQOL.js → system-run-command-olPQqEUJ.js} +0 -0
- /package/dist/{systemd-Dtydk5-z.js → systemd-CNnW7Chw.js} +0 -0
- /package/dist/{systemd-Dic80Qni.js → systemd-CUIM0n5P.js} +0 -0
- /package/dist/{table-Ds5CZCyv.js → table-0A3xKJVC.js} +0 -0
- /package/dist/{table-Dm8jYqmW.js → table-D0JXlEhQ.js} +0 -0
- /package/dist/{tool-loop-detection-2Mxxm8YE.js → tool-loop-detection-BFFEnLXH.js} +0 -0
- /package/dist/{tool-loop-detection-Bk07vuCX.js → tool-loop-detection-CyaMgdb1.js} +0 -0
- /package/dist/{widearea-dns-BwIBBqZo.js → widearea-dns-CKKGWxWC.js} +0 -0
- /package/dist/{widearea-dns-DA_m7oeT.js → widearea-dns-DHO-Mc6G.js} +0 -0
- /package/dist/{workspace-DD9pYbiv.js → workspace-BEOJvHML.js} +0 -0
- /package/dist/{workspace-Wkr6wXcS.js → workspace-dN7eNg6n.js} +0 -0
- /package/dist/{wsl-Ci3VOaSK.js → wsl-CglTdtlb.js} +0 -0
- /package/dist/{wsl-S50RbgL8.js → wsl-DMA0sTvh.js} +0 -0
|
@@ -6,7 +6,7 @@ import { t as GatewayClient, zt as PROTOCOL_VERSION } from "./client-CdiymIXS.js
|
|
|
6
6
|
import { i as ensureExplicitGatewayAuth, o as resolveExplicitGatewayAuth, t as buildGatewayConnectionDetails } from "./call-A18kwyah.js";
|
|
7
7
|
import { f as GATEWAY_CLIENT_CAPS, h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-DXToSaWK.js";
|
|
8
8
|
import { C as stripLeadingInboundMetadata } from "./sessions-Dn6VXn4p.js";
|
|
9
|
-
import { y as formatRawAssistantErrorForUi } from "./pi-embedded-helpers-
|
|
9
|
+
import { y as formatRawAssistantErrorForUi } from "./pi-embedded-helpers-BQjRftRI.js";
|
|
10
10
|
import { c as normalizeUsageDisplay, r as listThinkingLevelLabels, t as formatThinkingLevels, u as resolveResponseUsageMode } from "./thinking-BZDIJMl_.js";
|
|
11
11
|
import { n as listChatCommands, r as listChatCommandsForConfig } from "./commands-registry-D8LQ9fss.js";
|
|
12
12
|
import { n as resolveToolDisplay, t as formatToolDetail } from "./tool-display-DxbOx1Kx.js";
|
|
@@ -13,13 +13,13 @@ import "./message-channel-DXToSaWK.js";
|
|
|
13
13
|
import "./pairing-token-B-OTYROz.js";
|
|
14
14
|
import "./sessions-Dn6VXn4p.js";
|
|
15
15
|
import "./plugins-BsEhWvLn.js";
|
|
16
|
-
import "./pi-embedded-helpers-
|
|
17
|
-
import "./sandbox-
|
|
16
|
+
import "./pi-embedded-helpers-BQjRftRI.js";
|
|
17
|
+
import "./sandbox-DjKcZavm.js";
|
|
18
18
|
import "./chrome-D1eO2jfe.js";
|
|
19
19
|
import "./tailscale-FeJ1M0mP.js";
|
|
20
20
|
import "./auth-pHRwjgkx.js";
|
|
21
|
-
import "./server-context-
|
|
22
|
-
import "./routes-
|
|
21
|
+
import "./server-context-DrAh6Cgw.js";
|
|
22
|
+
import "./routes-wLkmjLj9.js";
|
|
23
23
|
import "./redact-Dj3r1_tS.js";
|
|
24
24
|
import "./errors-BmdGLmRC.js";
|
|
25
25
|
import "./fs-safe-D0xrTzGw.js";
|
|
@@ -34,9 +34,9 @@ import "./thinking-BZDIJMl_.js";
|
|
|
34
34
|
import "./commands-BiW8npr7.js";
|
|
35
35
|
import "./commands-registry-D8LQ9fss.js";
|
|
36
36
|
import "./tool-display-DxbOx1Kx.js";
|
|
37
|
-
import { t as parseTimeoutMs } from "./parse-timeout-
|
|
38
|
-
import { t as formatDocsLink } from "./links-
|
|
39
|
-
import { t as runTui } from "./tui-
|
|
37
|
+
import { t as parseTimeoutMs } from "./parse-timeout-widuTpq9.js";
|
|
38
|
+
import { t as formatDocsLink } from "./links-Dnmd-RS-.js";
|
|
39
|
+
import { t as runTui } from "./tui-CDovUd2Z.js";
|
|
40
40
|
|
|
41
41
|
//#region src/cli/tui-cli.ts
|
|
42
42
|
function registerTuiCli(program) {
|
|
@@ -5,20 +5,20 @@ import { f as defaultRuntime } from "./subsystem-CHbO_DkH.js";
|
|
|
5
5
|
import "./exec-DuYbft0z.js";
|
|
6
6
|
import "./agent-scope-DOrZjOnW.js";
|
|
7
7
|
import "./model-selection-7wdmO-Iw.js";
|
|
8
|
-
import "./pi-embedded-helpers-
|
|
8
|
+
import "./pi-embedded-helpers-D-OFjhdI.js";
|
|
9
9
|
import "./config-B4jkreCN.js";
|
|
10
10
|
import "./boolean-CbZoNRMn.js";
|
|
11
11
|
import "./env-BRnPI9sO.js";
|
|
12
12
|
import "./shell-env-Dc3iU7HK.js";
|
|
13
13
|
import "./manifest-registry-D1MLZEjS.js";
|
|
14
|
-
import "./sandbox-
|
|
14
|
+
import "./sandbox-BkznAPKO.js";
|
|
15
15
|
import "./chrome-DJChpTwP.js";
|
|
16
16
|
import "./tailscale-DpKBMIvx.js";
|
|
17
17
|
import "./auth-Bkx-QuRN.js";
|
|
18
|
-
import "./server-context-
|
|
18
|
+
import "./server-context-ChcbJgNo.js";
|
|
19
19
|
import "./frontmatter-B_jqcova.js";
|
|
20
20
|
import "./skills-BwDmcZdt.js";
|
|
21
|
-
import "./routes-
|
|
21
|
+
import "./routes-ivqbutvM.js";
|
|
22
22
|
import "./redact-B3O-RBO1.js";
|
|
23
23
|
import "./errors-bI7Tdx75.js";
|
|
24
24
|
import "./fs-safe-BdejYjW8.js";
|
|
@@ -39,9 +39,9 @@ import "./client-DDqXo-cF.js";
|
|
|
39
39
|
import "./call-PpGwcPn-.js";
|
|
40
40
|
import "./pairing-token-Dcy37-4s.js";
|
|
41
41
|
import "./tool-display-DFOL6UQ9.js";
|
|
42
|
-
import { t as parseTimeoutMs } from "./parse-timeout-
|
|
43
|
-
import { t as formatDocsLink } from "./links-
|
|
44
|
-
import { t as runTui } from "./tui-
|
|
42
|
+
import { t as parseTimeoutMs } from "./parse-timeout-DmEcHIsV.js";
|
|
43
|
+
import { t as formatDocsLink } from "./links-Bqr0FxXx.js";
|
|
44
|
+
import { t as runTui } from "./tui-mmN0hLk6.js";
|
|
45
45
|
|
|
46
46
|
//#region src/cli/tui-cli.ts
|
|
47
47
|
function registerTuiCli(program) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { l as stripAnsi, u as visibleWidth } from "./subsystem-CHbO_DkH.js";
|
|
2
2
|
import { o as normalizeAgentId, r as buildAgentMainSessionKey, s as normalizeMainKey, x as parseAgentSessionKey } from "./session-key-DUSb7CCb.js";
|
|
3
3
|
import { l as resolveDefaultAgentId } from "./agent-scope-DOrZjOnW.js";
|
|
4
|
-
import { y as formatRawAssistantErrorForUi } from "./pi-embedded-helpers-
|
|
4
|
+
import { y as formatRawAssistantErrorForUi } from "./pi-embedded-helpers-D-OFjhdI.js";
|
|
5
5
|
import { N as VERSION, i as loadConfig } from "./config-B4jkreCN.js";
|
|
6
6
|
import { k as stripLeadingInboundMetadata } from "./sessions-Dxf5Kjig.js";
|
|
7
7
|
import { f as GATEWAY_CLIENT_CAPS, h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-DgjXWzf-.js";
|
|
@@ -13,19 +13,19 @@ import { C as DEFAULT_MODEL, S as DEFAULT_CONTEXT_TOKENS, _ as resolveModelRefFr
|
|
|
13
13
|
import { n as normalizeSecretInput } from "./normalize-secret-input-DjGU5EXe.js";
|
|
14
14
|
import { n as saveJsonFile, t as loadJsonFile } from "./json-file-CNp4GTiH.js";
|
|
15
15
|
import { t as resolveSymiAgentDir } from "./agent-paths-BbZSGrUA.js";
|
|
16
|
-
import { A as isRawApiErrorPayload, B as sanitizeGoogleTurnOrdering, C as isCloudCodeAssistFormatError, D as isFailoverErrorMessage, E as isFailoverAssistantError, F as sanitizeUserFacingText, I as buildBootstrapContextFiles, L as ensureSessionHeader, M as isTransientHttpError, N as parseImageDimensionError, O as isLikelyContextOverflowError, P as parseImageSizeError, R as resolveBootstrapMaxChars, S as isBillingAssistantError, T as isContextOverflowError, _ as formatAssistantErrorText, a as normalizeTextForComparison, b as getApiErrorPayloadFingerprint, c as sanitizeToolResultImages, d as extractToolResultId, f as downgradeOpenAIReasoningBlocks, g as classifyFailoverReason, h as BILLING_ERROR_USER_MESSAGE, i as isMessagingToolDuplicateNormalized, j as isTimeoutErrorMessage, k as isRateLimitAssistantError, l as resolveImageSanitizationLimits, m as isGoogleModelApi, n as validateGeminiTurns, o as sanitizeSessionMessagesImages, p as isAntigravityClaude, r as pickFallbackThinkingLevel, s as sanitizeImageBlocks, t as validateAnthropicTurns, u as extractToolCallsFromAssistant, v as formatBillingErrorMessage, w as isCompactionFailureError, x as isAuthAssistantError, y as formatRawAssistantErrorForUi, z as resolveBootstrapTotalMaxChars } from "./pi-embedded-helpers-
|
|
16
|
+
import { A as isRawApiErrorPayload, B as sanitizeGoogleTurnOrdering, C as isCloudCodeAssistFormatError, D as isFailoverErrorMessage, E as isFailoverAssistantError, F as sanitizeUserFacingText, I as buildBootstrapContextFiles, L as ensureSessionHeader, M as isTransientHttpError, N as parseImageDimensionError, O as isLikelyContextOverflowError, P as parseImageSizeError, R as resolveBootstrapMaxChars, S as isBillingAssistantError, T as isContextOverflowError, _ as formatAssistantErrorText, a as normalizeTextForComparison, b as getApiErrorPayloadFingerprint, c as sanitizeToolResultImages, d as extractToolResultId, f as downgradeOpenAIReasoningBlocks, g as classifyFailoverReason, h as BILLING_ERROR_USER_MESSAGE, i as isMessagingToolDuplicateNormalized, j as isTimeoutErrorMessage, k as isRateLimitAssistantError, l as resolveImageSanitizationLimits, m as isGoogleModelApi, n as validateGeminiTurns, o as sanitizeSessionMessagesImages, p as isAntigravityClaude, r as pickFallbackThinkingLevel, s as sanitizeImageBlocks, t as validateAnthropicTurns, u as extractToolCallsFromAssistant, v as formatBillingErrorMessage, w as isCompactionFailureError, x as isAuthAssistantError, y as formatRawAssistantErrorForUi, z as resolveBootstrapTotalMaxChars } from "./pi-embedded-helpers-D-OFjhdI.js";
|
|
17
17
|
import { A as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, C as unsetConfigValueAtPath, N as VERSION, S as setConfigValueAtPath, _ as resetConfigOverrides, b as getConfigValueAtPath, c as resolveConfigSnapshotHash, f as parseDurationMs, g as getConfigOverrides, h as validateJsonSchemaValue, i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot, u as validateConfigObjectWithPlugins, v as setConfigOverride, x as parseConfigPath, y as unsetConfigOverride } from "./config-B4jkreCN.js";
|
|
18
18
|
import { t as parseBooleanValue } from "./boolean-CbZoNRMn.js";
|
|
19
19
|
import { t as isTruthyEnvValue } from "./env-BRnPI9sO.js";
|
|
20
20
|
import { i as resolveShellEnvFallbackTimeoutMs, n as getShellPathFromLoginShell } from "./shell-env-Dc3iU7HK.js";
|
|
21
21
|
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-D1MLZEjS.js";
|
|
22
22
|
import { a as isPathInsideWithRealpath } from "./legacy-names-BQ9vKISY.js";
|
|
23
|
-
import { C as stripPluginOnlyAllowlist, S as resolveToolProfilePolicy, T as matchesAnyGlobPattern, _ as collectExplicitAllowlist, a as ensureSandboxWorkspaceForSession, b as mergeAlsoAllowPolicy, c as resolveSandboxRuntimeStatus, d as getBridgeAuthForPort, g as buildPluginToolGroups, h as applyOwnerOnlyToolPolicy, o as resolveSandboxContext, v as expandPolicyWithPluginGroups, w as compileGlobPatterns, x as normalizeToolName } from "./sandbox-
|
|
23
|
+
import { C as stripPluginOnlyAllowlist, S as resolveToolProfilePolicy, T as matchesAnyGlobPattern, _ as collectExplicitAllowlist, a as ensureSandboxWorkspaceForSession, b as mergeAlsoAllowPolicy, c as resolveSandboxRuntimeStatus, d as getBridgeAuthForPort, g as buildPluginToolGroups, h as applyOwnerOnlyToolPolicy, o as resolveSandboxContext, v as expandPolicyWithPluginGroups, w as compileGlobPatterns, x as normalizeToolName } from "./sandbox-BkznAPKO.js";
|
|
24
24
|
import { T as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-DJChpTwP.js";
|
|
25
|
-
import { i as resolveBrowserConfig, m as resolveBrowserControlAuth } from "./server-context-
|
|
25
|
+
import { i as resolveBrowserConfig, m as resolveBrowserControlAuth } from "./server-context-ChcbJgNo.js";
|
|
26
26
|
import { l as parseFrontmatterBlock } from "./frontmatter-B_jqcova.js";
|
|
27
27
|
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-BwDmcZdt.js";
|
|
28
|
-
import { n as getMediaDir, r as saveMediaBuffer } from "./routes-
|
|
28
|
+
import { n as getMediaDir, r as saveMediaBuffer } from "./routes-ivqbutvM.js";
|
|
29
29
|
import { n as formatErrorMessage, r as formatUncaughtError, t as extractErrorCode } from "./errors-bI7Tdx75.js";
|
|
30
30
|
import { i as resolveExistingPathsWithinRoot, r as DEFAULT_UPLOAD_DIR } from "./paths-DObzwe08.js";
|
|
31
31
|
import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-DOZRI5XH.js";
|
|
@@ -42,7 +42,7 @@ import { i as normalizeInputProvenance, n as applyInputProvenanceToUserMessage,
|
|
|
42
42
|
import { t as emitSessionTranscriptUpdate } from "./transcript-events-x1D4Vniz.js";
|
|
43
43
|
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-COroyVA5.js";
|
|
44
44
|
import { n as isSilentReplyText, t as SILENT_REPLY_TOKEN } from "./tokens-0yh2UnJq.js";
|
|
45
|
-
import { c as normalizeChannelTargetInput, d as parseReplyDirectives, f as MEDIA_TOKEN_RE, g as initializeGlobalHookRunner, h as getGlobalHookRunner, l as normalizeTargetForProvider, m as parseInlineDirectives$1, o as normalizeReplyPayloadsForDelivery, p as splitMediaFromOutput, s as buildTargetResolverSignature, t as deliverOutboundPayloads, u as throwIfAborted } from "./deliver-
|
|
45
|
+
import { c as normalizeChannelTargetInput, d as parseReplyDirectives, f as MEDIA_TOKEN_RE, g as initializeGlobalHookRunner, h as getGlobalHookRunner, l as normalizeTargetForProvider, m as parseInlineDirectives$1, o as normalizeReplyPayloadsForDelivery, p as splitMediaFromOutput, s as buildTargetResolverSignature, t as deliverOutboundPayloads, u as throwIfAborted } from "./deliver-lTZLIQqf.js";
|
|
46
46
|
import { a as logMessageProcessed, i as logLaneEnqueue, o as logMessageQueued, r as logLaneDequeue, s as logSessionStateChange, t as diag } from "./diagnostic-DbT9t0Sh.js";
|
|
47
47
|
import { r as getDiagnosticSessionState } from "./diagnostic-session-state-DnkpMfCl.js";
|
|
48
48
|
import { i as resolveApiKeyForProvider, n as getCustomProviderApiKey, o as resolveEnvApiKey, r as requireApiKey, s as resolveModelAuthMode, t as getApiKeyForModel } from "./model-auth-1EAQvYRv.js";
|
|
@@ -50,10 +50,10 @@ import { b as OLLAMA_NATIVE_BASE_URL, c as normalizeGoogleModelId, t as ensureSy
|
|
|
50
50
|
import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-Db8XJVGL.js";
|
|
51
51
|
import { c as hasNonzeroUsage, l as normalizeUsage, n as loadCostUsageSummary, o as derivePromptTokens, r as loadSessionCostSummary } from "./session-cost-usage-D3mgssM_.js";
|
|
52
52
|
import { C as enqueueSystemEvent, E as buildChannelSummary, S as drainSystemEventEntries, _ as loadProviderUsageSummary, a as loadCombinedSessionStoreForGateway, b as resolveUsageProviderId, d as formatDoctorNonInteractiveHint, g as writeRestartSentinel, k as redactIdentifier, x as lookupContextTokens, y as formatUsageWindowSummary } from "./session-utils-Cs1jlD-q.js";
|
|
53
|
-
import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$2 } from "./with-timeout-
|
|
53
|
+
import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$2 } from "./with-timeout-DPR4A2dx.js";
|
|
54
54
|
import { i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-BFNeXT65.js";
|
|
55
|
-
import { n as resolveMemoryBackendConfig, t as getMemorySearchManager } from "./memory-
|
|
56
|
-
import { a as parseGeminiAuth, c as resolveMemorySearchConfig, n as retryAsync, o as collectProviderApiKeysForExecution, s as executeWithApiKeyRotation } from "./manager-
|
|
55
|
+
import { n as resolveMemoryBackendConfig, t as getMemorySearchManager } from "./memory-CHSa0jVf.js";
|
|
56
|
+
import { a as parseGeminiAuth, c as resolveMemorySearchConfig, n as retryAsync, o as collectProviderApiKeysForExecution, s as executeWithApiKeyRotation } from "./manager-BcWElKHq.js";
|
|
57
57
|
import { f as runTasksWithConcurrency } from "./internal-DVCddhhN.js";
|
|
58
58
|
import { a as chunkText, c as resolveChunkMode, d as isSafeFenceBreak, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, o as chunkTextWithMode, r as chunkMarkdownText, t as chunkByNewline, u as findFenceSpanAt } from "./chunk-BxfKjCUx.js";
|
|
59
59
|
import { n as resolveMarkdownTableMode } from "./markdown-tables-CS1Tvb3z.js";
|
|
@@ -80,15 +80,16 @@ import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-po
|
|
|
80
80
|
import { i as resolveModelCostConfig, n as formatTokenCount$2, r as formatUsd, t as estimateUsageCost } from "./usage-format-DeczTGI-.js";
|
|
81
81
|
import { i as resolveWindow, n as formatSummaryReport, r as loadCostBenchmarkSummary, t as buildCostBreakdown } from "./breakdown-B_Dhhm3K.js";
|
|
82
82
|
import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName } from "./constants-BLIhifCJ.js";
|
|
83
|
-
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-
|
|
83
|
+
import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-D8kKOts5.js";
|
|
84
84
|
import { i as parseAbsoluteTimeMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-DQs772BN.js";
|
|
85
|
-
import {
|
|
86
|
-
import { n as
|
|
87
|
-
import { t as
|
|
88
|
-
import {
|
|
89
|
-
import {
|
|
90
|
-
import {
|
|
91
|
-
import { a as
|
|
85
|
+
import { t as emitSymframePush } from "./symframe-broadcast-CXo2qoxy.js";
|
|
86
|
+
import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-H1qOf0q-.js";
|
|
87
|
+
import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-C1IIA6kH.js";
|
|
88
|
+
import { t as parseTimeoutMs } from "./parse-timeout-DmEcHIsV.js";
|
|
89
|
+
import { n as registerMemoryCli } from "./memory-cli-JTWldzg5.js";
|
|
90
|
+
import { i as resolveSlackThreadTs, n as deliverReplies, t as createSlackReplyDeliveryPlan } from "./replies-CbXXjn9X.js";
|
|
91
|
+
import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-CIw6PZ9e.js";
|
|
92
|
+
import { a as buildModelAliasLines, n as resolveModel$2 } from "./model-MUMSB_7d.js";
|
|
92
93
|
import { createRequire } from "node:module";
|
|
93
94
|
import process$1 from "node:process";
|
|
94
95
|
import { fileURLToPath } from "node:url";
|
|
@@ -4677,6 +4678,12 @@ function buildAgentSystemPrompt(params) {
|
|
|
4677
4678
|
" Correct: call exec with command=\"echo hi\", then summarise the actual stdout you received.",
|
|
4678
4679
|
" Wrong: emit \"hi\" as text without calling exec — that's fabrication.",
|
|
4679
4680
|
"",
|
|
4681
|
+
"## Symframe (artifact display)",
|
|
4682
|
+
"When you produce content that doesn't fit naturally in chat — long-form drafts, structured documents, generated emails, code blocks the user will copy, file links, audio/video — call the `display_artifact` tool instead of pasting into your reply.",
|
|
4683
|
+
"The card appears at the top of the user's right-column symframe panel; chat stays clean for the conversation.",
|
|
4684
|
+
"Types: `text` · `markdown` · `code` (use `language` for hljs hint) · `email-draft` (use `email: { from?, to, cc?, bcc?, subject, body }`) · `pdf` · `audio` · `video` (the last three take `url` + optional `mimeType`).",
|
|
4685
|
+
"After pushing, briefly tell the user what's in the panel (e.g. \"Drafted the email — shown in your panel above.\"). Don't repeat the full content in chat.",
|
|
4686
|
+
"",
|
|
4680
4687
|
...compactMode ? [] : [
|
|
4681
4688
|
"## Tool Call Style",
|
|
4682
4689
|
"Default: do not narrate routine, low-risk tool calls (just call the tool).",
|
|
@@ -4922,7 +4929,7 @@ async function recordLoopOutcome(args) {
|
|
|
4922
4929
|
if (!args.ctx?.sessionKey) return;
|
|
4923
4930
|
try {
|
|
4924
4931
|
const { getDiagnosticSessionState } = await import("./diagnostic-session-state-DnkpMfCl.js").then((n) => n.n);
|
|
4925
|
-
const { recordToolCallOutcome } = await import("./tool-loop-detection-
|
|
4932
|
+
const { recordToolCallOutcome } = await import("./tool-loop-detection-BFFEnLXH.js");
|
|
4926
4933
|
recordToolCallOutcome(getDiagnosticSessionState({
|
|
4927
4934
|
sessionKey: args.ctx.sessionKey,
|
|
4928
4935
|
sessionId: args.ctx?.agentId
|
|
@@ -4944,7 +4951,7 @@ async function runBeforeToolCallHook(args) {
|
|
|
4944
4951
|
if (args.ctx?.sessionKey) {
|
|
4945
4952
|
const { getDiagnosticSessionState } = await import("./diagnostic-session-state-DnkpMfCl.js").then((n) => n.n);
|
|
4946
4953
|
const { logToolLoopAction } = await import("./diagnostic-DbT9t0Sh.js").then((n) => n.n);
|
|
4947
|
-
const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-
|
|
4954
|
+
const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-BFFEnLXH.js");
|
|
4948
4955
|
const sessionState = getDiagnosticSessionState({
|
|
4949
4956
|
sessionKey: args.ctx.sessionKey,
|
|
4950
4957
|
sessionId: args.ctx?.agentId
|
|
@@ -5808,7 +5815,7 @@ async function routeReply(params) {
|
|
|
5808
5815
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
5809
5816
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
5810
5817
|
try {
|
|
5811
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
5818
|
+
const { deliverOutboundPayloads } = await import("./deliver-lTZLIQqf.js").then((n) => n.n);
|
|
5812
5819
|
return {
|
|
5813
5820
|
ok: true,
|
|
5814
5821
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -25901,6 +25908,121 @@ Use jobId as the canonical identifier; id is accepted for compatibility. Use con
|
|
|
25901
25908
|
};
|
|
25902
25909
|
}
|
|
25903
25910
|
|
|
25911
|
+
//#endregion
|
|
25912
|
+
//#region src/agents/tools/display-artifact-tool.ts
|
|
25913
|
+
const ARTIFACT_TYPES = [
|
|
25914
|
+
"text",
|
|
25915
|
+
"markdown",
|
|
25916
|
+
"code",
|
|
25917
|
+
"email-draft",
|
|
25918
|
+
"pdf",
|
|
25919
|
+
"audio",
|
|
25920
|
+
"video"
|
|
25921
|
+
];
|
|
25922
|
+
const ARTIFACT_ACTIONS = [
|
|
25923
|
+
"add",
|
|
25924
|
+
"update",
|
|
25925
|
+
"remove"
|
|
25926
|
+
];
|
|
25927
|
+
const ActionSchema = Type.Object({
|
|
25928
|
+
label: Type.String(),
|
|
25929
|
+
kind: Type.Optional(stringEnum(["primary", "secondary"])),
|
|
25930
|
+
rpc: Type.Optional(Type.String()),
|
|
25931
|
+
params: Type.Optional(Type.Record(Type.String(), Type.Unknown()))
|
|
25932
|
+
});
|
|
25933
|
+
const EmailFieldsSchema = Type.Object({
|
|
25934
|
+
from: Type.Optional(Type.String()),
|
|
25935
|
+
to: Type.Optional(Type.String()),
|
|
25936
|
+
cc: Type.Optional(Type.String()),
|
|
25937
|
+
bcc: Type.Optional(Type.String()),
|
|
25938
|
+
subject: Type.Optional(Type.String()),
|
|
25939
|
+
body: Type.Optional(Type.String())
|
|
25940
|
+
});
|
|
25941
|
+
const DisplayArtifactSchema = Type.Object({
|
|
25942
|
+
action: Type.Optional(stringEnum(ARTIFACT_ACTIONS)),
|
|
25943
|
+
id: Type.Optional(Type.String()),
|
|
25944
|
+
type: Type.Optional(stringEnum(ARTIFACT_TYPES)),
|
|
25945
|
+
title: Type.Optional(Type.String()),
|
|
25946
|
+
body: Type.Optional(Type.String()),
|
|
25947
|
+
language: Type.Optional(Type.String()),
|
|
25948
|
+
url: Type.Optional(Type.String()),
|
|
25949
|
+
mimeType: Type.Optional(Type.String()),
|
|
25950
|
+
downloadName: Type.Optional(Type.String()),
|
|
25951
|
+
poster: Type.Optional(Type.String()),
|
|
25952
|
+
email: Type.Optional(EmailFieldsSchema),
|
|
25953
|
+
actions: Type.Optional(Type.Array(ActionSchema)),
|
|
25954
|
+
sticky: Type.Optional(Type.Boolean())
|
|
25955
|
+
});
|
|
25956
|
+
function genCardId() {
|
|
25957
|
+
return `sf-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 8)}`;
|
|
25958
|
+
}
|
|
25959
|
+
function createDisplayArtifactTool() {
|
|
25960
|
+
return {
|
|
25961
|
+
label: "Display Artifact",
|
|
25962
|
+
name: "display_artifact",
|
|
25963
|
+
description: "Push a card into the Glass UI symframe (right-column dynamic display). Use for content that doesn't belong in chat — drafts, generated documents, code snippets the user will copy, structured data, file links. Types: text | markdown | code | email-draft | pdf | audio | video. Returns the card id; pass action=update with the same id to revise the card, or action=remove to dismiss.",
|
|
25964
|
+
parameters: DisplayArtifactSchema,
|
|
25965
|
+
execute: async (_toolCallId, args) => {
|
|
25966
|
+
const params = args;
|
|
25967
|
+
const actionRaw = readStringParam(params, "action");
|
|
25968
|
+
const action = actionRaw === "update" || actionRaw === "remove" ? actionRaw : "add";
|
|
25969
|
+
const id = readStringParam(params, "id") || (action === "add" ? genCardId() : void 0);
|
|
25970
|
+
if (action !== "add" && !id) return jsonResult({
|
|
25971
|
+
ok: false,
|
|
25972
|
+
error: `${action} requires an id`
|
|
25973
|
+
});
|
|
25974
|
+
if (action === "remove") {
|
|
25975
|
+
emitSymframePush({
|
|
25976
|
+
action,
|
|
25977
|
+
id
|
|
25978
|
+
});
|
|
25979
|
+
return jsonResult({
|
|
25980
|
+
ok: true,
|
|
25981
|
+
action,
|
|
25982
|
+
id
|
|
25983
|
+
});
|
|
25984
|
+
}
|
|
25985
|
+
const card = { id };
|
|
25986
|
+
for (const key of [
|
|
25987
|
+
"type",
|
|
25988
|
+
"title",
|
|
25989
|
+
"body",
|
|
25990
|
+
"language",
|
|
25991
|
+
"url",
|
|
25992
|
+
"mimeType",
|
|
25993
|
+
"downloadName",
|
|
25994
|
+
"poster",
|
|
25995
|
+
"email",
|
|
25996
|
+
"actions",
|
|
25997
|
+
"sticky"
|
|
25998
|
+
]) {
|
|
25999
|
+
const value = params[key];
|
|
26000
|
+
if (value !== void 0 && value !== null) card[key] = value;
|
|
26001
|
+
}
|
|
26002
|
+
if (action === "add") {
|
|
26003
|
+
const hasContent = typeof card.title === "string" ? Boolean(card.title.trim()) : false;
|
|
26004
|
+
const hasBody = typeof card.body === "string" ? Boolean(card.body.trim()) : false;
|
|
26005
|
+
const hasUrl = typeof card.url === "string" && Boolean(card.url.trim());
|
|
26006
|
+
const hasEmail = card.email && typeof card.email === "object";
|
|
26007
|
+
if (!hasContent && !hasBody && !hasUrl && !hasEmail) return jsonResult({
|
|
26008
|
+
ok: false,
|
|
26009
|
+
error: "add requires at least title, body, url, or email"
|
|
26010
|
+
});
|
|
26011
|
+
}
|
|
26012
|
+
emitSymframePush({
|
|
26013
|
+
action,
|
|
26014
|
+
id,
|
|
26015
|
+
card
|
|
26016
|
+
});
|
|
26017
|
+
return jsonResult({
|
|
26018
|
+
ok: true,
|
|
26019
|
+
action,
|
|
26020
|
+
id
|
|
26021
|
+
});
|
|
26022
|
+
}
|
|
26023
|
+
};
|
|
26024
|
+
}
|
|
26025
|
+
|
|
25904
26026
|
//#endregion
|
|
25905
26027
|
//#region src/agents/tools/gateway-tool.ts
|
|
25906
26028
|
const DEFAULT_UPDATE_TIMEOUT_MS = 20 * 6e4;
|
|
@@ -32746,6 +32868,7 @@ function createSymiTools(options) {
|
|
|
32746
32868
|
allowHostControl: options?.allowHostBrowserControl
|
|
32747
32869
|
}),
|
|
32748
32870
|
createCanvasTool({ config: options?.config }),
|
|
32871
|
+
createDisplayArtifactTool(),
|
|
32749
32872
|
createNodesTool({
|
|
32750
32873
|
agentSessionKey: options?.agentSessionKey,
|
|
32751
32874
|
config: options?.config
|
|
@@ -33288,7 +33411,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
33288
33411
|
return;
|
|
33289
33412
|
}
|
|
33290
33413
|
try {
|
|
33291
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
33414
|
+
const { deliverOutboundPayloads } = await import("./deliver-lTZLIQqf.js").then((n) => n.n);
|
|
33292
33415
|
await deliverOutboundPayloads({
|
|
33293
33416
|
cfg: params.cfg,
|
|
33294
33417
|
channel,
|
|
@@ -39416,7 +39539,7 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
39416
39539
|
const channelName = channelInfo?.name;
|
|
39417
39540
|
const roomLabel = channelName ? `#${channelName}` : `#${command.channel_id}`;
|
|
39418
39541
|
const [{ resolveAgentRoute }, { finalizeInboundContext }, { dispatchReplyWithDispatcher }] = await Promise.all([
|
|
39419
|
-
import("./resolve-route-
|
|
39542
|
+
import("./resolve-route-C1IIA6kH.js").then((n) => n.r),
|
|
39420
39543
|
import("./inbound-context-B7Rvs8pK.js").then((n) => n.n),
|
|
39421
39544
|
Promise.resolve().then(() => provider_dispatcher_exports)
|
|
39422
39545
|
]);
|
|
@@ -39477,7 +39600,7 @@ async function registerSlackMonitorSlashCommands(params) {
|
|
|
39477
39600
|
});
|
|
39478
39601
|
const deliverSlashPayloads = async (replies) => {
|
|
39479
39602
|
const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
|
|
39480
|
-
import("./replies-
|
|
39603
|
+
import("./replies-CbXXjn9X.js").then((n) => n.r),
|
|
39481
39604
|
import("./chunk-BxfKjCUx.js").then((n) => n.s),
|
|
39482
39605
|
import("./markdown-tables-CS1Tvb3z.js").then((n) => n.t)
|
|
39483
39606
|
]);
|
|
@@ -9,12 +9,12 @@ import { _ as resolveAuthProfileDisplayLabel, a as markAuthProfileFailure, c as
|
|
|
9
9
|
import { n as resolveCliName, t as formatCliCommand } from "./command-format-BrrHNE8r.js";
|
|
10
10
|
import { _ as DEFAULT_MODEL, c as normalizeProviderId, d as resolveDefaultModelForAgent, f as resolveModelRefFromString, g as DEFAULT_CONTEXT_TOKENS, h as getProviderAdapter, i as findNormalizedProviderValue, m as resolveThinkingDefault, n as buildConfiguredAllowlistKeys, o as modelKey, p as resolveSubagentSpawnModelSelection, r as buildModelAliasIndex, s as normalizeModelRef$1, t as buildAllowedModelSet, u as resolveConfiguredModelRef, v as DEFAULT_PROVIDER } from "./model-selection-BqshlIZc.js";
|
|
11
11
|
import { n as saveJsonFile, t as loadJsonFile } from "./json-file-CZ3ssFR9.js";
|
|
12
|
-
import { $ as resolveSandboxContext, $t as resolveBrowserControlAuth, A as isGoogleModelApi, At as resolveSessionResetPolicy, B as isCompactionFailureError, Bt as resolveGroupSessionKey, C as sanitizeImageBlocks, Ct as INPUT_PROVENANCE_KIND_VALUES, D as extractToolResultId, Dt as resolveSessionKey, E as extractToolCallsFromAssistant, Et as normalizeInputProvenance, F as formatRawAssistantErrorForUi, Ft as canonicalizeMainSessionAlias, G as isRateLimitAssistantError, Gt as resolveBrowserConfig, H as isFailoverAssistantError, Ht as resolveSessionLockMaxHoldFromTimeout, I as getApiErrorPayloadFingerprint, J as isTransientHttpError, Jt as saveMediaBuffer, K as isRawApiErrorPayload, Kt as resolveProfile, L as isAuthAssistantError, M as classifyFailoverReason, Mt as resolveThreadFlag, N as formatAssistantErrorText, Nt as DEFAULT_RESET_TRIGGERS, O as downgradeOpenAIReasoningBlocks, Ot as evaluateSessionFreshness, P as formatBillingErrorMessage, Pt as resolveFreshSessionTotalTokens, Q as ensureSandboxWorkspaceForSession, Qt as ensureBrowserControlAuth, R as isBillingAssistantError, Rt as resolveMainSessionKey, S as sanitizeSessionMessagesImages, St as extractToolCallNames, T as resolveImageSanitizationLimits, Tt as hasInterSessionUserProvenance, U as isFailoverErrorMessage, Ut as createBrowserRouteContext, V as isContextOverflowError, Vt as acquireSessionWriteLock, W as isLikelyContextOverflowError, Wt as registerBrowserRoutes, X as parseImageSizeError, Xt as resolveExistingPathsWithinRoot, Y as parseImageDimensionError, Yt as DEFAULT_UPLOAD_DIR, Z as sanitizeUserFacingText, Zt as getBridgeAuthForPort, _ as validateAnthropicTurns, _t as normalizeSessionDeliveryFields, an as mergeAlsoAllowPolicy, at as loadSessionStore, b as isMessagingToolDuplicateNormalized, bt as capArrayByJsonBytes, c as normalizeChannelTargetInput, cn as stripPluginOnlyAllowlist, ct as updateLastRoute, d as parseReplyDirectives, dn as buildBootstrapContextFiles, dt as isCacheEnabled, en as applyOwnerOnlyToolPolicy, et as resolveSandboxRuntimeStatus, f as MEDIA_TOKEN_RE, fn as ensureSessionHeader, ft as resolveCacheTtlMs$1, g as initializeGlobalHookRunner, gt as normalizeDeliveryContext, h as getGlobalHookRunner, hn as sanitizeGoogleTurnOrdering, ht as mergeDeliveryContext, in as expandToolGroups, it as resolveAndPersistSessionFile, j as BILLING_ERROR_USER_MESSAGE, jt as resolveSessionResetType, k as isAntigravityClaude, kt as resolveChannelResetConfig, l as normalizeTargetForProvider, ln as compileGlobPatterns, lt as updateSessionStore, m as parseInlineDirectives$1, mn as resolveBootstrapTotalMaxChars, mt as deliveryContextKey, nn as collectExplicitAllowlist, o as normalizeReplyPayloadsForDelivery, on as normalizeToolName$1, ot as readSessionUpdatedAt, p as splitMediaFromOutput, pn as resolveBootstrapMaxChars, pt as deliveryContextFromSession, q as isTimeoutErrorMessage, qt as getMediaDir, rn as expandPolicyWithPluginGroups, rt as appendAssistantMessageToSessionTranscript, s as buildTargetResolverSignature, sn as resolveToolProfilePolicy, st as recordSessionMetaFromInbound, t as deliverOutboundPayloads, tn as buildPluginToolGroups, tt as extractDeliveryInfo, u as throwIfAborted, un as matchesAnyGlobPattern, ut as updateSessionStoreEntry, v as validateGeminiTurns, w as sanitizeToolResultImages, wt as applyInputProvenanceToUserMessage, x as normalizeTextForComparison, xt as countToolResults, y as pickFallbackThinkingLevel, yt as archiveSessionTranscripts, z as isCloudCodeAssistFormatError, zt as deriveSessionMetaPatch } from "./deliver-
|
|
12
|
+
import { $ as resolveSandboxContext, $t as resolveBrowserControlAuth, A as isGoogleModelApi, At as resolveSessionResetPolicy, B as isCompactionFailureError, Bt as resolveGroupSessionKey, C as sanitizeImageBlocks, Ct as INPUT_PROVENANCE_KIND_VALUES, D as extractToolResultId, Dt as resolveSessionKey, E as extractToolCallsFromAssistant, Et as normalizeInputProvenance, F as formatRawAssistantErrorForUi, Ft as canonicalizeMainSessionAlias, G as isRateLimitAssistantError, Gt as resolveBrowserConfig, H as isFailoverAssistantError, Ht as resolveSessionLockMaxHoldFromTimeout, I as getApiErrorPayloadFingerprint, J as isTransientHttpError, Jt as saveMediaBuffer, K as isRawApiErrorPayload, Kt as resolveProfile, L as isAuthAssistantError, M as classifyFailoverReason, Mt as resolveThreadFlag, N as formatAssistantErrorText, Nt as DEFAULT_RESET_TRIGGERS, O as downgradeOpenAIReasoningBlocks, Ot as evaluateSessionFreshness, P as formatBillingErrorMessage, Pt as resolveFreshSessionTotalTokens, Q as ensureSandboxWorkspaceForSession, Qt as ensureBrowserControlAuth, R as isBillingAssistantError, Rt as resolveMainSessionKey, S as sanitizeSessionMessagesImages, St as extractToolCallNames, T as resolveImageSanitizationLimits, Tt as hasInterSessionUserProvenance, U as isFailoverErrorMessage, Ut as createBrowserRouteContext, V as isContextOverflowError, Vt as acquireSessionWriteLock, W as isLikelyContextOverflowError, Wt as registerBrowserRoutes, X as parseImageSizeError, Xt as resolveExistingPathsWithinRoot, Y as parseImageDimensionError, Yt as DEFAULT_UPLOAD_DIR, Z as sanitizeUserFacingText, Zt as getBridgeAuthForPort, _ as validateAnthropicTurns, _t as normalizeSessionDeliveryFields, an as mergeAlsoAllowPolicy, at as loadSessionStore, b as isMessagingToolDuplicateNormalized, bt as capArrayByJsonBytes, c as normalizeChannelTargetInput, cn as stripPluginOnlyAllowlist, ct as updateLastRoute, d as parseReplyDirectives, dn as buildBootstrapContextFiles, dt as isCacheEnabled, en as applyOwnerOnlyToolPolicy, et as resolveSandboxRuntimeStatus, f as MEDIA_TOKEN_RE, fn as ensureSessionHeader, ft as resolveCacheTtlMs$1, g as initializeGlobalHookRunner, gt as normalizeDeliveryContext, h as getGlobalHookRunner, hn as sanitizeGoogleTurnOrdering, ht as mergeDeliveryContext, in as expandToolGroups, it as resolveAndPersistSessionFile, j as BILLING_ERROR_USER_MESSAGE, jt as resolveSessionResetType, k as isAntigravityClaude, kt as resolveChannelResetConfig, l as normalizeTargetForProvider, ln as compileGlobPatterns, lt as updateSessionStore, m as parseInlineDirectives$1, mn as resolveBootstrapTotalMaxChars, mt as deliveryContextKey, nn as collectExplicitAllowlist, o as normalizeReplyPayloadsForDelivery, on as normalizeToolName$1, ot as readSessionUpdatedAt, p as splitMediaFromOutput, pn as resolveBootstrapMaxChars, pt as deliveryContextFromSession, q as isTimeoutErrorMessage, qt as getMediaDir, rn as expandPolicyWithPluginGroups, rt as appendAssistantMessageToSessionTranscript, s as buildTargetResolverSignature, sn as resolveToolProfilePolicy, st as recordSessionMetaFromInbound, t as deliverOutboundPayloads, tn as buildPluginToolGroups, tt as extractDeliveryInfo, u as throwIfAborted, un as matchesAnyGlobPattern, ut as updateSessionStoreEntry, v as validateGeminiTurns, w as sanitizeToolResultImages, wt as applyInputProvenanceToUserMessage, x as normalizeTextForComparison, xt as countToolResults, y as pickFallbackThinkingLevel, yt as archiveSessionTranscripts, z as isCloudCodeAssistFormatError, zt as deriveSessionMetaPatch } from "./deliver-BiWlR84Y.js";
|
|
13
13
|
import { C as unsetConfigValueAtPath, S as setConfigValueAtPath, T as VERSION, _ as resetConfigOverrides, b as getConfigValueAtPath, c as loadConfig, d as writeConfigFile, f as validateConfigObjectWithPlugins, g as getConfigOverrides, h as validateJsonSchemaValue, i as isBlockedHostnameOrIp, l as readConfigFileSnapshot, o as normalizeHostname, p as parseDurationMs, t as SsrFBlockedError, u as resolveConfigSnapshotHash, v as setConfigOverride, w as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, x as parseConfigPath, y as unsetConfigOverride } from "./ssrf-DNhyFMRW.js";
|
|
14
14
|
import { t as parseBooleanValue } from "./boolean-BsqeuxE6.js";
|
|
15
15
|
import { i as resolveShellEnvFallbackTimeoutMs, n as getShellPathFromLoginShell, s as isTruthyEnvValue } from "./shell-env-B1lDWz4t.js";
|
|
16
16
|
import { a as applyTestPluginDefaults, c as resolveMemorySlotDecision, d as isDangerousHostEnvVarName, i as safeStatSync, n as discoverSymiPlugins, o as normalizePluginsConfig, r as isPathInside, s as resolveEnableState, t as loadPluginManifestRegistry, u as isPathInsideWithRealpath } from "./manifest-registry-BGJu2aC-.js";
|
|
17
|
-
import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-
|
|
17
|
+
import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-OTJg3QKn.js";
|
|
18
18
|
import { l as parseFrontmatterBlock } from "./frontmatter-CJEX1BrH.js";
|
|
19
19
|
import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-Dm4gX4Tl.js";
|
|
20
20
|
import { n as redactToolDetail } from "./redact-CSGZUFxa.js";
|
|
@@ -31,7 +31,7 @@ import { t as emitSessionTranscriptUpdate } from "./transcript-events-ChU6IQwp.j
|
|
|
31
31
|
import { n as isSilentReplyText, t as SILENT_REPLY_TOKEN } from "./tokens-D_vCJSzF.js";
|
|
32
32
|
import { a as logMessageProcessed, i as logLaneEnqueue, o as logMessageQueued, r as logLaneDequeue, s as logSessionStateChange, t as diag } from "./diagnostic-BALvP9wI.js";
|
|
33
33
|
import { n as getDiagnosticSessionState } from "./diagnostic-session-state-BDfanaOY.js";
|
|
34
|
-
import { a as parseGeminiAuth, c as resolveMemorySearchConfig, d as requireApiKey, f as resolveApiKeyForProvider, h as resolveModelAuthMode, i as resolveOllamaBaseUrl, l as getApiKeyForModel, m as resolveEnvApiKey, n as retryAsync, o as collectProviderApiKeysForExecution, p as resolveAwsSdkEnvVarName, r as probeOllamaEmbeddingModels, s as executeWithApiKeyRotation, u as getCustomProviderApiKey } from "./manager-
|
|
34
|
+
import { a as parseGeminiAuth, c as resolveMemorySearchConfig, d as requireApiKey, f as resolveApiKeyForProvider, h as resolveModelAuthMode, i as resolveOllamaBaseUrl, l as getApiKeyForModel, m as resolveEnvApiKey, n as retryAsync, o as collectProviderApiKeysForExecution, p as resolveAwsSdkEnvVarName, r as probeOllamaEmbeddingModels, s as executeWithApiKeyRotation, u as getCustomProviderApiKey } from "./manager-BAcrpGcR.js";
|
|
35
35
|
import { r as resolveCopilotApiToken, t as DEFAULT_COPILOT_API_BASE_URL } from "./github-copilot-token-uhEBNQfj.js";
|
|
36
36
|
import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-DCGR3yfh.js";
|
|
37
37
|
import { a as resolveEffectiveMessagesConfig, i as resolveAckReaction, o as resolveHumanDelayConfig, r as resolveResponsePrefixTemplate, t as createReplyPrefixOptions } from "./reply-prefix-D0NzzC4I.js";
|
|
@@ -58,7 +58,7 @@ import crypto, { X509Certificate, createHash, createHmac, randomBytes, randomUUI
|
|
|
58
58
|
import { complete, createAssistantMessageEventStream, streamSimple } from "@mariozechner/pi-ai";
|
|
59
59
|
import AjvPkg from "ajv";
|
|
60
60
|
import { CURRENT_SESSION_VERSION, DefaultResourceLoader, SessionManager, SettingsManager, codingTools, createAgentSession, createEditTool, createReadTool, createWriteTool, estimateTokens, generateSummary, readTool } from "@mariozechner/pi-coding-agent";
|
|
61
|
-
import { WebSocket
|
|
61
|
+
import { WebSocket } from "ws";
|
|
62
62
|
import { Buffer as Buffer$1 } from "node:buffer";
|
|
63
63
|
import { BedrockClient, ListFoundationModelsCommand } from "@aws-sdk/client-bedrock";
|
|
64
64
|
import { createJiti } from "jiti";
|
|
@@ -4460,7 +4460,7 @@ async function getMemorySearchManager(params) {
|
|
|
4460
4460
|
const wrapper = new FallbackMemoryManager({
|
|
4461
4461
|
primary,
|
|
4462
4462
|
fallbackFactory: async () => {
|
|
4463
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
4463
|
+
const { MemoryIndexManager } = await import("./manager-BAcrpGcR.js").then((n) => n.t);
|
|
4464
4464
|
return await MemoryIndexManager.get(params);
|
|
4465
4465
|
}
|
|
4466
4466
|
}, () => QMD_MANAGER_CACHE.delete(cacheKey));
|
|
@@ -4473,7 +4473,7 @@ async function getMemorySearchManager(params) {
|
|
|
4473
4473
|
}
|
|
4474
4474
|
}
|
|
4475
4475
|
try {
|
|
4476
|
-
const { MemoryIndexManager } = await import("./manager-
|
|
4476
|
+
const { MemoryIndexManager } = await import("./manager-BAcrpGcR.js").then((n) => n.t);
|
|
4477
4477
|
return { manager: await MemoryIndexManager.get(params) };
|
|
4478
4478
|
} catch (err) {
|
|
4479
4479
|
return {
|
|
@@ -7447,6 +7447,12 @@ function buildAgentSystemPrompt(params) {
|
|
|
7447
7447
|
" Correct: call exec with command=\"echo hi\", then summarise the actual stdout you received.",
|
|
7448
7448
|
" Wrong: emit \"hi\" as text without calling exec — that's fabrication.",
|
|
7449
7449
|
"",
|
|
7450
|
+
"## Symframe (artifact display)",
|
|
7451
|
+
"When you produce content that doesn't fit naturally in chat — long-form drafts, structured documents, generated emails, code blocks the user will copy, file links, audio/video — call the `display_artifact` tool instead of pasting into your reply.",
|
|
7452
|
+
"The card appears at the top of the user's right-column symframe panel; chat stays clean for the conversation.",
|
|
7453
|
+
"Types: `text` · `markdown` · `code` (use `language` for hljs hint) · `email-draft` (use `email: { from?, to, cc?, bcc?, subject, body }`) · `pdf` · `audio` · `video` (the last three take `url` + optional `mimeType`).",
|
|
7454
|
+
"After pushing, briefly tell the user what's in the panel (e.g. \"Drafted the email — shown in your panel above.\"). Don't repeat the full content in chat.",
|
|
7455
|
+
"",
|
|
7450
7456
|
...compactMode ? [] : [
|
|
7451
7457
|
"## Tool Call Style",
|
|
7452
7458
|
"Default: do not narrate routine, low-risk tool calls (just call the tool).",
|
|
@@ -9654,7 +9660,7 @@ var GatewayClient = class {
|
|
|
9654
9660
|
if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
|
|
9655
9661
|
});
|
|
9656
9662
|
}
|
|
9657
|
-
this.ws = new WebSocket
|
|
9663
|
+
this.ws = new WebSocket(url, wsOptions);
|
|
9658
9664
|
this.ws.on("open", () => {
|
|
9659
9665
|
if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
|
|
9660
9666
|
const tlsError = this.validateTlsFingerprint();
|
|
@@ -9873,7 +9879,7 @@ var GatewayClient = class {
|
|
|
9873
9879
|
return null;
|
|
9874
9880
|
}
|
|
9875
9881
|
async request(method, params, opts) {
|
|
9876
|
-
if (!this.ws || this.ws.readyState !== WebSocket
|
|
9882
|
+
if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
|
|
9877
9883
|
const id = randomUUID();
|
|
9878
9884
|
const frame = {
|
|
9879
9885
|
type: "req",
|
|
@@ -10259,7 +10265,7 @@ function randomIdempotencyKey() {
|
|
|
10259
10265
|
//#endregion
|
|
10260
10266
|
//#region src/infra/agent-events.ts
|
|
10261
10267
|
const seqByRun = /* @__PURE__ */ new Map();
|
|
10262
|
-
const listeners = /* @__PURE__ */ new Set();
|
|
10268
|
+
const listeners$1 = /* @__PURE__ */ new Set();
|
|
10263
10269
|
const runContextById = /* @__PURE__ */ new Map();
|
|
10264
10270
|
function registerAgentRunContext(runId, context) {
|
|
10265
10271
|
if (!runId) return;
|
|
@@ -10285,13 +10291,13 @@ function emitAgentEvent(event) {
|
|
|
10285
10291
|
seq: nextSeq,
|
|
10286
10292
|
ts: Date.now()
|
|
10287
10293
|
};
|
|
10288
|
-
for (const listener of listeners) try {
|
|
10294
|
+
for (const listener of listeners$1) try {
|
|
10289
10295
|
listener(enriched);
|
|
10290
10296
|
} catch {}
|
|
10291
10297
|
}
|
|
10292
10298
|
function onAgentEvent(listener) {
|
|
10293
|
-
listeners.add(listener);
|
|
10294
|
-
return () => listeners.delete(listener);
|
|
10299
|
+
listeners$1.add(listener);
|
|
10300
|
+
return () => listeners$1.delete(listener);
|
|
10295
10301
|
}
|
|
10296
10302
|
|
|
10297
10303
|
//#endregion
|
|
@@ -10836,7 +10842,7 @@ async function routeReply(params) {
|
|
|
10836
10842
|
const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
|
|
10837
10843
|
const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
|
|
10838
10844
|
try {
|
|
10839
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
10845
|
+
const { deliverOutboundPayloads } = await import("./deliver-BiWlR84Y.js").then((n) => n.n);
|
|
10840
10846
|
return {
|
|
10841
10847
|
ok: true,
|
|
10842
10848
|
messageId: (await deliverOutboundPayloads({
|
|
@@ -37001,6 +37007,130 @@ Use jobId as the canonical identifier; id is accepted for compatibility. Use con
|
|
|
37001
37007
|
};
|
|
37002
37008
|
}
|
|
37003
37009
|
|
|
37010
|
+
//#endregion
|
|
37011
|
+
//#region src/infra/symframe-broadcast.ts
|
|
37012
|
+
const listeners = /* @__PURE__ */ new Set();
|
|
37013
|
+
function emitSymframePush(payload) {
|
|
37014
|
+
for (const listener of listeners) try {
|
|
37015
|
+
listener(payload);
|
|
37016
|
+
} catch {}
|
|
37017
|
+
}
|
|
37018
|
+
|
|
37019
|
+
//#endregion
|
|
37020
|
+
//#region src/agents/tools/display-artifact-tool.ts
|
|
37021
|
+
const ARTIFACT_TYPES = [
|
|
37022
|
+
"text",
|
|
37023
|
+
"markdown",
|
|
37024
|
+
"code",
|
|
37025
|
+
"email-draft",
|
|
37026
|
+
"pdf",
|
|
37027
|
+
"audio",
|
|
37028
|
+
"video"
|
|
37029
|
+
];
|
|
37030
|
+
const ARTIFACT_ACTIONS = [
|
|
37031
|
+
"add",
|
|
37032
|
+
"update",
|
|
37033
|
+
"remove"
|
|
37034
|
+
];
|
|
37035
|
+
const ActionSchema = Type.Object({
|
|
37036
|
+
label: Type.String(),
|
|
37037
|
+
kind: Type.Optional(stringEnum(["primary", "secondary"])),
|
|
37038
|
+
rpc: Type.Optional(Type.String()),
|
|
37039
|
+
params: Type.Optional(Type.Record(Type.String(), Type.Unknown()))
|
|
37040
|
+
});
|
|
37041
|
+
const EmailFieldsSchema = Type.Object({
|
|
37042
|
+
from: Type.Optional(Type.String()),
|
|
37043
|
+
to: Type.Optional(Type.String()),
|
|
37044
|
+
cc: Type.Optional(Type.String()),
|
|
37045
|
+
bcc: Type.Optional(Type.String()),
|
|
37046
|
+
subject: Type.Optional(Type.String()),
|
|
37047
|
+
body: Type.Optional(Type.String())
|
|
37048
|
+
});
|
|
37049
|
+
const DisplayArtifactSchema = Type.Object({
|
|
37050
|
+
action: Type.Optional(stringEnum(ARTIFACT_ACTIONS)),
|
|
37051
|
+
id: Type.Optional(Type.String()),
|
|
37052
|
+
type: Type.Optional(stringEnum(ARTIFACT_TYPES)),
|
|
37053
|
+
title: Type.Optional(Type.String()),
|
|
37054
|
+
body: Type.Optional(Type.String()),
|
|
37055
|
+
language: Type.Optional(Type.String()),
|
|
37056
|
+
url: Type.Optional(Type.String()),
|
|
37057
|
+
mimeType: Type.Optional(Type.String()),
|
|
37058
|
+
downloadName: Type.Optional(Type.String()),
|
|
37059
|
+
poster: Type.Optional(Type.String()),
|
|
37060
|
+
email: Type.Optional(EmailFieldsSchema),
|
|
37061
|
+
actions: Type.Optional(Type.Array(ActionSchema)),
|
|
37062
|
+
sticky: Type.Optional(Type.Boolean())
|
|
37063
|
+
});
|
|
37064
|
+
function genCardId() {
|
|
37065
|
+
return `sf-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 8)}`;
|
|
37066
|
+
}
|
|
37067
|
+
function createDisplayArtifactTool() {
|
|
37068
|
+
return {
|
|
37069
|
+
label: "Display Artifact",
|
|
37070
|
+
name: "display_artifact",
|
|
37071
|
+
description: "Push a card into the Glass UI symframe (right-column dynamic display). Use for content that doesn't belong in chat — drafts, generated documents, code snippets the user will copy, structured data, file links. Types: text | markdown | code | email-draft | pdf | audio | video. Returns the card id; pass action=update with the same id to revise the card, or action=remove to dismiss.",
|
|
37072
|
+
parameters: DisplayArtifactSchema,
|
|
37073
|
+
execute: async (_toolCallId, args) => {
|
|
37074
|
+
const params = args;
|
|
37075
|
+
const actionRaw = readStringParam(params, "action");
|
|
37076
|
+
const action = actionRaw === "update" || actionRaw === "remove" ? actionRaw : "add";
|
|
37077
|
+
const id = readStringParam(params, "id") || (action === "add" ? genCardId() : void 0);
|
|
37078
|
+
if (action !== "add" && !id) return jsonResult({
|
|
37079
|
+
ok: false,
|
|
37080
|
+
error: `${action} requires an id`
|
|
37081
|
+
});
|
|
37082
|
+
if (action === "remove") {
|
|
37083
|
+
emitSymframePush({
|
|
37084
|
+
action,
|
|
37085
|
+
id
|
|
37086
|
+
});
|
|
37087
|
+
return jsonResult({
|
|
37088
|
+
ok: true,
|
|
37089
|
+
action,
|
|
37090
|
+
id
|
|
37091
|
+
});
|
|
37092
|
+
}
|
|
37093
|
+
const card = { id };
|
|
37094
|
+
for (const key of [
|
|
37095
|
+
"type",
|
|
37096
|
+
"title",
|
|
37097
|
+
"body",
|
|
37098
|
+
"language",
|
|
37099
|
+
"url",
|
|
37100
|
+
"mimeType",
|
|
37101
|
+
"downloadName",
|
|
37102
|
+
"poster",
|
|
37103
|
+
"email",
|
|
37104
|
+
"actions",
|
|
37105
|
+
"sticky"
|
|
37106
|
+
]) {
|
|
37107
|
+
const value = params[key];
|
|
37108
|
+
if (value !== void 0 && value !== null) card[key] = value;
|
|
37109
|
+
}
|
|
37110
|
+
if (action === "add") {
|
|
37111
|
+
const hasContent = typeof card.title === "string" ? Boolean(card.title.trim()) : false;
|
|
37112
|
+
const hasBody = typeof card.body === "string" ? Boolean(card.body.trim()) : false;
|
|
37113
|
+
const hasUrl = typeof card.url === "string" && Boolean(card.url.trim());
|
|
37114
|
+
const hasEmail = card.email && typeof card.email === "object";
|
|
37115
|
+
if (!hasContent && !hasBody && !hasUrl && !hasEmail) return jsonResult({
|
|
37116
|
+
ok: false,
|
|
37117
|
+
error: "add requires at least title, body, url, or email"
|
|
37118
|
+
});
|
|
37119
|
+
}
|
|
37120
|
+
emitSymframePush({
|
|
37121
|
+
action,
|
|
37122
|
+
id,
|
|
37123
|
+
card
|
|
37124
|
+
});
|
|
37125
|
+
return jsonResult({
|
|
37126
|
+
ok: true,
|
|
37127
|
+
action,
|
|
37128
|
+
id
|
|
37129
|
+
});
|
|
37130
|
+
}
|
|
37131
|
+
};
|
|
37132
|
+
}
|
|
37133
|
+
|
|
37004
37134
|
//#endregion
|
|
37005
37135
|
//#region src/infra/restart-sentinel.ts
|
|
37006
37136
|
const SENTINEL_FILENAME = "restart-sentinel.json";
|
|
@@ -44062,6 +44192,7 @@ function createSymiTools(options) {
|
|
|
44062
44192
|
allowHostControl: options?.allowHostBrowserControl
|
|
44063
44193
|
}),
|
|
44064
44194
|
createCanvasTool({ config: options?.config }),
|
|
44195
|
+
createDisplayArtifactTool(),
|
|
44065
44196
|
createNodesTool({
|
|
44066
44197
|
agentSessionKey: options?.agentSessionKey,
|
|
44067
44198
|
config: options?.config
|
|
@@ -44604,7 +44735,7 @@ async function deliverSessionMaintenanceWarning(params) {
|
|
|
44604
44735
|
return;
|
|
44605
44736
|
}
|
|
44606
44737
|
try {
|
|
44607
|
-
const { deliverOutboundPayloads } = await import("./deliver-
|
|
44738
|
+
const { deliverOutboundPayloads } = await import("./deliver-BiWlR84Y.js").then((n) => n.n);
|
|
44608
44739
|
await deliverOutboundPayloads({
|
|
44609
44740
|
cfg: params.cfg,
|
|
44610
44741
|
channel,
|