agim-cli 1.2.138 → 1.2.140
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/CHANGELOG.md +116 -0
- package/dist/core/a2a.d.ts +6 -0
- package/dist/core/a2a.d.ts.map +1 -1
- package/dist/core/a2a.js +5 -0
- package/dist/core/a2a.js.map +1 -1
- package/dist/core/live-config.d.ts.map +1 -1
- package/dist/core/live-config.js +8 -0
- package/dist/core/live-config.js.map +1 -1
- package/dist/core/llm/imhub-dispatcher.d.ts +22 -0
- package/dist/core/llm/imhub-dispatcher.d.ts.map +1 -1
- package/dist/core/llm/imhub-dispatcher.js +154 -24
- package/dist/core/llm/imhub-dispatcher.js.map +1 -1
- package/dist/plugins/agents/native/index.d.ts.map +1 -1
- package/dist/plugins/agents/native/index.js +9 -1
- package/dist/plugins/agents/native/index.js.map +1 -1
- package/dist/web/public/assets/{a2a-COCxV3Cc.js → a2a-DczMMkbl.js} +2 -2
- package/dist/web/public/assets/{a2a-COCxV3Cc.js.map → a2a-DczMMkbl.js.map} +1 -1
- package/dist/web/public/assets/{activity-lssr7XnJ.js → activity-cbLHkzca.js} +2 -2
- package/dist/web/public/assets/{activity-lssr7XnJ.js.map → activity-cbLHkzca.js.map} +1 -1
- package/dist/web/public/assets/{admins-DSW8IUl9.js → admins-C-YsGMj7.js} +2 -2
- package/dist/web/public/assets/{admins-DSW8IUl9.js.map → admins-C-YsGMj7.js.map} +1 -1
- package/dist/web/public/assets/agents-BWfov_1-.js +7 -0
- package/dist/web/public/assets/agents-BWfov_1-.js.map +1 -0
- package/dist/web/public/assets/{approvals-ClzA_Sl1.js → approvals-HSssmXKS.js} +2 -2
- package/dist/web/public/assets/{approvals-ClzA_Sl1.js.map → approvals-HSssmXKS.js.map} +1 -1
- package/dist/web/public/assets/{arrow-down-B6b32UC0.js → arrow-down-BXvC8Al2.js} +2 -2
- package/dist/web/public/assets/{arrow-down-B6b32UC0.js.map → arrow-down-BXvC8Al2.js.map} +1 -1
- package/dist/web/public/assets/{arrow-up-B-nP5kYY.js → arrow-up-63xELY5Q.js} +2 -2
- package/dist/web/public/assets/{arrow-up-B-nP5kYY.js.map → arrow-up-63xELY5Q.js.map} +1 -1
- package/dist/web/public/assets/{asks-DyXhQTTK.js → asks-COLEFOvK.js} +2 -2
- package/dist/web/public/assets/{asks-DyXhQTTK.js.map → asks-COLEFOvK.js.map} +1 -1
- package/dist/web/public/assets/{audit-BI7SCouF.js → audit-D4ZEiZub.js} +2 -2
- package/dist/web/public/assets/{audit-BI7SCouF.js.map → audit-D4ZEiZub.js.map} +1 -1
- package/dist/web/public/assets/{bell-B3N02OLo.js → bell-Cg2Bvv06.js} +2 -2
- package/dist/web/public/assets/{bell-B3N02OLo.js.map → bell-Cg2Bvv06.js.map} +1 -1
- package/dist/web/public/assets/{bgjobs-CicZiNip.js → bgjobs-CEjCzwtd.js} +2 -2
- package/dist/web/public/assets/{bgjobs-CicZiNip.js.map → bgjobs-CEjCzwtd.js.map} +1 -1
- package/dist/web/public/assets/{brain-C6ukvGuf.js → brain-euvl6F6C.js} +2 -2
- package/dist/web/public/assets/{brain-C6ukvGuf.js.map → brain-euvl6F6C.js.map} +1 -1
- package/dist/web/public/assets/{briefcase-hn1X3B5h.js → briefcase-DPWLbCnA.js} +2 -2
- package/dist/web/public/assets/{briefcase-hn1X3B5h.js.map → briefcase-DPWLbCnA.js.map} +1 -1
- package/dist/web/public/assets/{chat-BDQj16Vz.js → chat-Dz9kfaxH.js} +2 -2
- package/dist/web/public/assets/{chat-BDQj16Vz.js.map → chat-Dz9kfaxH.js.map} +1 -1
- package/dist/web/public/assets/{chevron-left-RxNVjq1Y.js → chevron-left-BeIh5thq.js} +2 -2
- package/dist/web/public/assets/{chevron-left-RxNVjq1Y.js.map → chevron-left-BeIh5thq.js.map} +1 -1
- package/dist/web/public/assets/{chevron-right-BUp0DVnl.js → chevron-right-uP_l9MMb.js} +2 -2
- package/dist/web/public/assets/{chevron-right-BUp0DVnl.js.map → chevron-right-uP_l9MMb.js.map} +1 -1
- package/dist/web/public/assets/{circle-check-Bm4WZ21u.js → circle-check-CewnjFgv.js} +2 -2
- package/dist/web/public/assets/{circle-check-Bm4WZ21u.js.map → circle-check-CewnjFgv.js.map} +1 -1
- package/dist/web/public/assets/{circle-check-big-BIrgy-jJ.js → circle-check-big-C2RTc48c.js} +2 -2
- package/dist/web/public/assets/{circle-check-big-BIrgy-jJ.js.map → circle-check-big-C2RTc48c.js.map} +1 -1
- package/dist/web/public/assets/{circle-x-D3x0-M6I.js → circle-x-Ccg1HyV-.js} +2 -2
- package/dist/web/public/assets/{circle-x-D3x0-M6I.js.map → circle-x-Ccg1HyV-.js.map} +1 -1
- package/dist/web/public/assets/{clock-DS7DQ1w2.js → clock-qxbYSynv.js} +2 -2
- package/dist/web/public/assets/{clock-DS7DQ1w2.js.map → clock-qxbYSynv.js.map} +1 -1
- package/dist/web/public/assets/{confirm-dialog-C68_XUSd.js → confirm-dialog-DmJq4Td9.js} +2 -2
- package/dist/web/public/assets/{confirm-dialog-C68_XUSd.js.map → confirm-dialog-DmJq4Td9.js.map} +1 -1
- package/dist/web/public/assets/{copy-Bzjhsg1p.js → copy-DxSHRdbc.js} +2 -2
- package/dist/web/public/assets/{copy-Bzjhsg1p.js.map → copy-DxSHRdbc.js.map} +1 -1
- package/dist/web/public/assets/{data-table-DEXi61Ud.js → data-table-S7rIjwdO.js} +2 -2
- package/dist/web/public/assets/{data-table-DEXi61Ud.js.map → data-table-S7rIjwdO.js.map} +1 -1
- package/dist/web/public/assets/{dialog-gd2B3olO.js → dialog-bAIDaO-6.js} +2 -2
- package/dist/web/public/assets/{dialog-gd2B3olO.js.map → dialog-bAIDaO-6.js.map} +1 -1
- package/dist/web/public/assets/{download-DCcaTdc6.js → download-OhsGtnO-.js} +2 -2
- package/dist/web/public/assets/{download-DCcaTdc6.js.map → download-OhsGtnO-.js.map} +1 -1
- package/dist/web/public/assets/{email-Bp4hAFCc.js → email-C1-HxWLF.js} +2 -2
- package/dist/web/public/assets/{email-Bp4hAFCc.js.map → email-C1-HxWLF.js.map} +1 -1
- package/dist/web/public/assets/{empty-state-Bzkp-ADK.js → empty-state-C-qjOHyu.js} +2 -2
- package/dist/web/public/assets/{empty-state-Bzkp-ADK.js.map → empty-state-C-qjOHyu.js.map} +1 -1
- package/dist/web/public/assets/{external-link-Deer-Lh8.js → external-link-DRVp9-lb.js} +2 -2
- package/dist/web/public/assets/{external-link-Deer-Lh8.js.map → external-link-DRVp9-lb.js.map} +1 -1
- package/dist/web/public/assets/{eye-aJAK4qYW.js → eye-CFhg5BTa.js} +2 -2
- package/dist/web/public/assets/{eye-aJAK4qYW.js.map → eye-CFhg5BTa.js.map} +1 -1
- package/dist/web/public/assets/{facts-CX8Slc_J.js → facts-CGaLWhzi.js} +2 -2
- package/dist/web/public/assets/{facts-CX8Slc_J.js.map → facts-CGaLWhzi.js.map} +1 -1
- package/dist/web/public/assets/{goals-CoO5qR3l.js → goals-C-dJANmn.js} +2 -2
- package/dist/web/public/assets/{goals-CoO5qR3l.js.map → goals-C-dJANmn.js.map} +1 -1
- package/dist/web/public/assets/{health-QRL6KLLZ.js → health-CWcti5h3.js} +2 -2
- package/dist/web/public/assets/{health-QRL6KLLZ.js.map → health-CWcti5h3.js.map} +1 -1
- package/dist/web/public/assets/{heart-pulse-DTuy4Tma.js → heart-pulse-DmGhKR2W.js} +2 -2
- package/dist/web/public/assets/{heart-pulse-DTuy4Tma.js.map → heart-pulse-DmGhKR2W.js.map} +1 -1
- package/dist/web/public/assets/{heartbeat-BLutWB3t.js → heartbeat-kLoGBNCo.js} +2 -2
- package/dist/web/public/assets/{heartbeat-BLutWB3t.js.map → heartbeat-kLoGBNCo.js.map} +1 -1
- package/dist/web/public/assets/{hot-B96_1Z-G.js → hot-BITDoax1.js} +2 -2
- package/dist/web/public/assets/{hot-B96_1Z-G.js.map → hot-BITDoax1.js.map} +1 -1
- package/dist/web/public/assets/{index-wVLKSZpI.js → index-O0BQoyzo.js} +22 -22
- package/dist/web/public/assets/{index-wVLKSZpI.js.map → index-O0BQoyzo.js.map} +1 -1
- package/dist/web/public/assets/{installed-5bpbtNzF.js → installed-Co9WrtQ7.js} +2 -2
- package/dist/web/public/assets/{installed-5bpbtNzF.js.map → installed-Co9WrtQ7.js.map} +1 -1
- package/dist/web/public/assets/{jobs-CPLjCaI5.js → jobs-hdHhBEvi.js} +2 -2
- package/dist/web/public/assets/{jobs-CPLjCaI5.js.map → jobs-hdHhBEvi.js.map} +1 -1
- package/dist/web/public/assets/{layout-Cdi09rZy.js → layout-BMXC1Uh1.js} +2 -2
- package/dist/web/public/assets/{layout-Cdi09rZy.js.map → layout-BMXC1Uh1.js.map} +1 -1
- package/dist/web/public/assets/{layout-CN-hNeUX.js → layout-CQtbOBag.js} +2 -2
- package/dist/web/public/assets/{layout-CN-hNeUX.js.map → layout-CQtbOBag.js.map} +1 -1
- package/dist/web/public/assets/{layout-nYKX1VY4.js → layout-CyBGneZ9.js} +2 -2
- package/dist/web/public/assets/{layout-nYKX1VY4.js.map → layout-CyBGneZ9.js.map} +1 -1
- package/dist/web/public/assets/{layout-DOvroJYL.js → layout-CysVsySh.js} +2 -2
- package/dist/web/public/assets/{layout-DOvroJYL.js.map → layout-CysVsySh.js.map} +1 -1
- package/dist/web/public/assets/{layout-K_oWND8q.js → layout-bDMXIKIR.js} +2 -2
- package/dist/web/public/assets/{layout-K_oWND8q.js.map → layout-bDMXIKIR.js.map} +1 -1
- package/dist/web/public/assets/{llm-BDW-Xpvk.js → llm-CPIRNQU2.js} +2 -2
- package/dist/web/public/assets/{llm-BDW-Xpvk.js.map → llm-CPIRNQU2.js.map} +1 -1
- package/dist/web/public/assets/{loader-circle-DPc6botW.js → loader-circle-9VUMGitw.js} +2 -2
- package/dist/web/public/assets/{loader-circle-DPc6botW.js.map → loader-circle-9VUMGitw.js.map} +1 -1
- package/dist/web/public/assets/{map-pin-ECh-25H3.js → map-pin-BXYvvHry.js} +2 -2
- package/dist/web/public/assets/{map-pin-ECh-25H3.js.map → map-pin-BXYvvHry.js.map} +1 -1
- package/dist/web/public/assets/{mcp-BV-k5VFD.js → mcp-BgLdlwSn.js} +2 -2
- package/dist/web/public/assets/{mcp-BV-k5VFD.js.map → mcp-BgLdlwSn.js.map} +1 -1
- package/dist/web/public/assets/{memos-BTsHVXah.js → memos-CfneX9DH.js} +2 -2
- package/dist/web/public/assets/{memos-BTsHVXah.js.map → memos-CfneX9DH.js.map} +1 -1
- package/dist/web/public/assets/{messengers-fyjNQwDX.js → messengers-7Phqea62.js} +2 -2
- package/dist/web/public/assets/{messengers-fyjNQwDX.js.map → messengers-7Phqea62.js.map} +1 -1
- package/dist/web/public/assets/{mobile-CeRuQZ-W.js → mobile-CV5b6D2W.js} +2 -2
- package/dist/web/public/assets/{mobile-CeRuQZ-W.js.map → mobile-CV5b6D2W.js.map} +1 -1
- package/dist/web/public/assets/{native-agent-Cg-Sab4t.js → native-agent-QvIa6LjE.js} +2 -2
- package/dist/web/public/assets/{native-agent-Cg-Sab4t.js.map → native-agent-QvIa6LjE.js.map} +1 -1
- package/dist/web/public/assets/{network-FK3KNI1a.js → network-BXhEjGhE.js} +2 -2
- package/dist/web/public/assets/{network-FK3KNI1a.js.map → network-BXhEjGhE.js.map} +1 -1
- package/dist/web/public/assets/{outbox-DhlxB8l0.js → outbox-DHQL7TQb.js} +2 -2
- package/dist/web/public/assets/{outbox-DhlxB8l0.js.map → outbox-DHQL7TQb.js.map} +1 -1
- package/dist/web/public/assets/{pagination-DzNnFLlI.js → pagination-VKuPb1Ot.js} +2 -2
- package/dist/web/public/assets/{pagination-DzNnFLlI.js.map → pagination-VKuPb1Ot.js.map} +1 -1
- package/dist/web/public/assets/{persona-B_EkauQB.js → persona-CWug2GLR.js} +2 -2
- package/dist/web/public/assets/{persona-B_EkauQB.js.map → persona-CWug2GLR.js.map} +1 -1
- package/dist/web/public/assets/{plans-D4aczyt4.js → plans-CZoEs5SY.js} +2 -2
- package/dist/web/public/assets/{plans-D4aczyt4.js.map → plans-CZoEs5SY.js.map} +1 -1
- package/dist/web/public/assets/{play-BdTIFReu.js → play-CfSn5Vdl.js} +2 -2
- package/dist/web/public/assets/{play-BdTIFReu.js.map → play-CfSn5Vdl.js.map} +1 -1
- package/dist/web/public/assets/{plus-CjK8x5Ta.js → plus-Z8l4CiqJ.js} +2 -2
- package/dist/web/public/assets/{plus-CjK8x5Ta.js.map → plus-Z8l4CiqJ.js.map} +1 -1
- package/dist/web/public/assets/{policy-D7vnZQeQ.js → policy-CutDSEPW.js} +2 -2
- package/dist/web/public/assets/{policy-D7vnZQeQ.js.map → policy-CutDSEPW.js.map} +1 -1
- package/dist/web/public/assets/{qr-code-CpmzdYE3.js → qr-code-DgU5aiM6.js} +2 -2
- package/dist/web/public/assets/{qr-code-CpmzdYE3.js.map → qr-code-DgU5aiM6.js.map} +1 -1
- package/dist/web/public/assets/{refresh-ccw-C2Q06LWj.js → refresh-ccw-D2CWiyU_.js} +2 -2
- package/dist/web/public/assets/{refresh-ccw-C2Q06LWj.js.map → refresh-ccw-D2CWiyU_.js.map} +1 -1
- package/dist/web/public/assets/{reminders-BW3VfYCD.js → reminders-Cb6Izedg.js} +2 -2
- package/dist/web/public/assets/{reminders-BW3VfYCD.js.map → reminders-Cb6Izedg.js.map} +1 -1
- package/dist/web/public/assets/{save-3XXDgdfD.js → save-DB0BDYTs.js} +2 -2
- package/dist/web/public/assets/{save-3XXDgdfD.js.map → save-DB0BDYTs.js.map} +1 -1
- package/dist/web/public/assets/{schedules-Bg5oBl6i.js → schedules-8mSjE14D.js} +2 -2
- package/dist/web/public/assets/{schedules-Bg5oBl6i.js.map → schedules-8mSjE14D.js.map} +1 -1
- package/dist/web/public/assets/{search-oQrctQNZ.js → search-B4fHilZ0.js} +2 -2
- package/dist/web/public/assets/{search-oQrctQNZ.js.map → search-B4fHilZ0.js.map} +1 -1
- package/dist/web/public/assets/{search-BjW_KGfJ.js → search-Con69NhG.js} +2 -2
- package/dist/web/public/assets/{search-BjW_KGfJ.js.map → search-Con69NhG.js.map} +1 -1
- package/dist/web/public/assets/{security-ongR2bsH.js → security-BTe3zUg8.js} +2 -2
- package/dist/web/public/assets/{security-ongR2bsH.js.map → security-BTe3zUg8.js.map} +1 -1
- package/dist/web/public/assets/{service-CNTTFkAV.js → service-C7SqcwfL.js} +2 -2
- package/dist/web/public/assets/{service-CNTTFkAV.js.map → service-C7SqcwfL.js.map} +1 -1
- package/dist/web/public/assets/{shield-alert-DW0flso9.js → shield-alert-CKFVsGgI.js} +2 -2
- package/dist/web/public/assets/{shield-alert-DW0flso9.js.map → shield-alert-CKFVsGgI.js.map} +1 -1
- package/dist/web/public/assets/{status-badge-CnqMu-7R.js → status-badge-BSkpyN4D.js} +2 -2
- package/dist/web/public/assets/{status-badge-CnqMu-7R.js.map → status-badge-BSkpyN4D.js.map} +1 -1
- package/dist/web/public/assets/{subtasks-ChtI7jpP.js → subtasks-Bel-I1Sk.js} +2 -2
- package/dist/web/public/assets/{subtasks-ChtI7jpP.js.map → subtasks-Bel-I1Sk.js.map} +1 -1
- package/dist/web/public/assets/{table-DVQPjWsi.js → table-CPn1MRcy.js} +2 -2
- package/dist/web/public/assets/{table-DVQPjWsi.js.map → table-CPn1MRcy.js.map} +1 -1
- package/dist/web/public/assets/{topn-Cs-wP6Tf.js → topn-Ba3RjcK1.js} +2 -2
- package/dist/web/public/assets/{topn-Cs-wP6Tf.js.map → topn-Ba3RjcK1.js.map} +1 -1
- package/dist/web/public/assets/{trash-2-BXhBc6TL.js → trash-2-Dfov8aHD.js} +2 -2
- package/dist/web/public/assets/{trash-2-BXhBc6TL.js.map → trash-2-Dfov8aHD.js.map} +1 -1
- package/dist/web/public/assets/{use-background-tasks-DWe_iYgk.js → use-background-tasks-BQrEeUwY.js} +2 -2
- package/dist/web/public/assets/{use-background-tasks-DWe_iYgk.js.map → use-background-tasks-BQrEeUwY.js.map} +1 -1
- package/dist/web/public/assets/{use-llm-admin-SE-2iSIe.js → use-llm-admin-DYekqogG.js} +2 -2
- package/dist/web/public/assets/{use-llm-admin-SE-2iSIe.js.map → use-llm-admin-DYekqogG.js.map} +1 -1
- package/dist/web/public/assets/{use-memory-tCgpqYla.js → use-memory-DbJ4pP2Z.js} +2 -2
- package/dist/web/public/assets/{use-memory-tCgpqYla.js.map → use-memory-DbJ4pP2Z.js.map} +1 -1
- package/dist/web/public/assets/{use-observability-CMUSiy5z.js → use-observability-C2M6WZ9W.js} +2 -2
- package/dist/web/public/assets/{use-observability-CMUSiy5z.js.map → use-observability-C2M6WZ9W.js.map} +1 -1
- package/dist/web/public/assets/{use-settings-BUM0BmtA.js → use-settings-DMdaoWsB.js} +2 -2
- package/dist/web/public/assets/{use-settings-BUM0BmtA.js.map → use-settings-DMdaoWsB.js.map} +1 -1
- package/dist/web/public/assets/{use-workspace-BOUxEbaB.js → use-workspace-BHG7h3jQ.js} +2 -2
- package/dist/web/public/assets/{use-workspace-BOUxEbaB.js.map → use-workspace-BHG7h3jQ.js.map} +1 -1
- package/dist/web/public/assets/{useQuery-II-YwTUw.js → useQuery-PdiC7-sY.js} +2 -2
- package/dist/web/public/assets/{useQuery-II-YwTUw.js.map → useQuery-PdiC7-sY.js.map} +1 -1
- package/dist/web/public/assets/{vector-C83bHtEW.js → vector-DnZM3OXU.js} +2 -2
- package/dist/web/public/assets/{vector-C83bHtEW.js.map → vector-DnZM3OXU.js.map} +1 -1
- package/dist/web/public/assets/{viewer-rMDo9pIb.js → viewer-Dz6k0YKp.js} +2 -2
- package/dist/web/public/assets/{viewer-rMDo9pIb.js.map → viewer-Dz6k0YKp.js.map} +1 -1
- package/dist/web/public/assets/{workspace-tVixiuWJ.js → workspace-BnXrWS3j.js} +2 -2
- package/dist/web/public/assets/{workspace-tVixiuWJ.js.map → workspace-BnXrWS3j.js.map} +1 -1
- package/dist/web/public/assets/{workspaces-CsLKDstm.js → workspaces-CSS_UBEi.js} +2 -2
- package/dist/web/public/assets/{workspaces-CsLKDstm.js.map → workspaces-CSS_UBEi.js.map} +1 -1
- package/dist/web/public/assets/{x-B0lqsHGi.js → x-DG-JKVw_.js} +2 -2
- package/dist/web/public/assets/{x-B0lqsHGi.js.map → x-DG-JKVw_.js.map} +1 -1
- package/dist/web/public/index.html +1 -1
- package/package.json +1 -1
- package/dist/web/public/assets/agents-0IMyFVui.js +0 -7
- package/dist/web/public/assets/agents-0IMyFVui.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,122 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [1.2.140] - 2026-06-04
|
|
8
|
+
|
|
9
|
+
### Fixed (admin SPA: native agent 加入 /settings/agents 清单)
|
|
10
|
+
|
|
11
|
+
用户反馈:后台 Agent 管理页(`/settings/agents`)不显示 native 智能体,
|
|
12
|
+
只能通过 IM 内的 `/na` slash 用,操作不便。
|
|
13
|
+
|
|
14
|
+
诊断:
|
|
15
|
+
- 后端 native 早就在 registry 里**无条件注册**,`isAgentEnabled('native')`
|
|
16
|
+
也**永远返回 true**(v1.2.103 兜底);
|
|
17
|
+
- 但 SPA 的 `BUILTIN_AGENTS` 是写死的 4 个 CLI agent
|
|
18
|
+
(claude-code / codex / opencode / cursor),native 没纳入;
|
|
19
|
+
- 后果:管理员看不到 native,无法当默认 Agent,也没办法在 UI 上看它的健康状态。
|
|
20
|
+
|
|
21
|
+
修复(纯 UI,零后端语义变化):
|
|
22
|
+
- `BUILTIN_AGENTS` 加 native 条目,标 `kind: 'in-process'`,别名
|
|
23
|
+
`na / llm / native-llm`;
|
|
24
|
+
- 默认 Agent 下拉的 eligibility 检查对 in-process 类豁免
|
|
25
|
+
「必须在 enabled 列表中」的硬约束——和运行时 `isAgentEnabled` 一致;
|
|
26
|
+
- AgentRow 新加 `kind` prop:
|
|
27
|
+
- 在线/未就绪徽标旁多一个「内置」徽标,hover 提示 in-process 含义;
|
|
28
|
+
- 「未就绪」时不再显示 `npm install -g`(不适用),改成
|
|
29
|
+
「未配置 LLM 后端。前往 设置 → Native Agent 选项卡,配置 OpenAI /
|
|
30
|
+
DeepSeek / Anthropic 等任一即可」;
|
|
31
|
+
- 子标题文案补一句「`native` 是内置 in-process 智能体,无需安装」;
|
|
32
|
+
- `live-config.ts` 注释加 v1.2.140 段落,解释「toggle 是用户偏好不是路由
|
|
33
|
+
kill-switch」——native 即使 toggle 未勾也走得通,避免下次有人删那行
|
|
34
|
+
hardcoded 兜底而忘了对存量配置做迁移。
|
|
35
|
+
|
|
36
|
+
i18n:zh / en 各加 3 个新 key(`nativeInstallHint` / `inProcessBadge` /
|
|
37
|
+
`inProcessHint`),并微调 `subtitle`。
|
|
38
|
+
|
|
39
|
+
### 文件
|
|
40
|
+
- `src/web-app/src/routes/settings/agents.tsx` — BUILTIN_AGENTS 加 native +
|
|
41
|
+
AgentRow 加 kind 分支 + eligibleDefaults 豁免 in-process
|
|
42
|
+
- `src/web-app/src/i18n/locales/zh/settings.json` — 3 新 key + subtitle
|
|
43
|
+
- `src/web-app/src/i18n/locales/en/settings.json` — 同上
|
|
44
|
+
- `src/core/live-config.ts` — 注释补 v1.2.140 段落
|
|
45
|
+
|
|
46
|
+
### 不在范围
|
|
47
|
+
- 不动 `isAgentEnabled('native') === true` 兜底——拆它需要给存量配置加迁移,
|
|
48
|
+
风险/收益不划算
|
|
49
|
+
- 没改后端 `/api/config` schema:native 仍然不强制写进 `config.agents`
|
|
50
|
+
|
|
51
|
+
## [1.2.139] - 2026-06-03
|
|
52
|
+
|
|
53
|
+
### Fixed (子代理派生:P0 安全 + P1 上下文 + 文案/重试)
|
|
54
|
+
|
|
55
|
+
对 native agent 派生子代理(call_agent)链路做了一轮审计,发现并修了 4 类问题:
|
|
56
|
+
|
|
57
|
+
**P0 — Plan Mode 不传递到子代理**(安全)
|
|
58
|
+
|
|
59
|
+
父线程 `/plan on` 后,模型仍能用 call_agent 把"写代码"任务交给
|
|
60
|
+
claude-code / opencode / 子 native——子代理拉起来时**没拿到 planMode
|
|
61
|
+
标志**,是按完全写权限跑的。等于用户开了 plan-mode 防护、模型一句
|
|
62
|
+
delegate 就绕过了。
|
|
63
|
+
|
|
64
|
+
修复:
|
|
65
|
+
|
|
66
|
+
- `CallAgentOpts` 加 `planMode?: boolean` 字段
|
|
67
|
+
- `a2a.ts` 把 opts.planMode 透传到 `target.sendPrompt({...planMode})`
|
|
68
|
+
——所有 adapter 都已经认识 AgentSendOpts.planMode(claude-code 翻
|
|
69
|
+
`--permission-mode plan`,opencode 走 `--agent plan`,native 进
|
|
70
|
+
policy gate 拦写工具)
|
|
71
|
+
- `ImhubDispatcherCtx` 加 `callerPlanMode?: boolean`
|
|
72
|
+
- native/index.ts 通过 `effectivePlanModeOn(planThreadKey)` 求值后
|
|
73
|
+
注入 imhubCtx
|
|
74
|
+
- 派发 call_agent 时(in-process self-spawn 和正式 A2A 两条路)都
|
|
75
|
+
把这个标志透传出去
|
|
76
|
+
|
|
77
|
+
**P1a — 子代理返回值整段塞回父上下文**(context bloat)
|
|
78
|
+
|
|
79
|
+
call_agent 返回的文本默认整段进父对话历史,链 2-3 个就把 native 的
|
|
80
|
+
context 撑爆了。新增 `IMHUB_NATIVE_CALL_AGENT_OUTPUT_MAX_CHARS`
|
|
81
|
+
(默认 8000):
|
|
82
|
+
|
|
83
|
+
- 超过阈值 → 70/30 截首尾 + 中间放截断标记
|
|
84
|
+
- 全文写入 viewer-paste(沿用 `savePaste` 通道,配置了 publicBaseUrl
|
|
85
|
+
/ 隧道 / 远端 paste 就给个可点开的链接),模型还能引用
|
|
86
|
+
- savePaste 不可用(bun test runner 没 better-sqlite3)→ 跳过 paste
|
|
87
|
+
hint,截断本身仍然生效
|
|
88
|
+
- 设为 0 完全禁用
|
|
89
|
+
|
|
90
|
+
**P1b — 子代理瞬态错误不重试**
|
|
91
|
+
|
|
92
|
+
claude-code 子代理调起来时偶发 5xx / socket reset,整次 call_agent
|
|
93
|
+
就直接失败、父代理只能告诉用户重来。和 v1.2.138 的 first-token retry
|
|
94
|
+
对齐:
|
|
95
|
+
|
|
96
|
+
- in-process self-spawn 和正式 A2A 两路都加了"一发瞬态错就重试一次"
|
|
97
|
+
- 瞬态判定:`\b(5\d\d|408)\b | timeout | ECONN | ETIMEDOUT | fetch failed | socket hang up | network | ENETUNREACH`
|
|
98
|
+
- 4xx / 鉴权 / 工作区 ACL / depth exceeded 等永久性错误不触发重试
|
|
99
|
+
|
|
100
|
+
**其他 — cap_exceeded 文案 + 正向 prompt 框架**
|
|
101
|
+
|
|
102
|
+
- per-turn cap 触发时,refusal 文本现在带"你这一轮已经叫过 哪些
|
|
103
|
+
agent、它们各自的成败"列表(promptHead 60 字预览)。空 count
|
|
104
|
+
改成 history 数组,模型自我纠正更快
|
|
105
|
+
- 系统 prompt 多 1 段 "When to USE call_agent" 正向引导(前提仍是
|
|
106
|
+
HARD RULE — 文件读 / 列目录 / 抓页禁止 delegate),帮模型理清"什
|
|
107
|
+
么时候应该 delegate"
|
|
108
|
+
|
|
109
|
+
### 文件
|
|
110
|
+
|
|
111
|
+
- `src/core/a2a.ts` — `CallAgentOpts.planMode` + 透传到 sendPrompt
|
|
112
|
+
- `src/core/llm/imhub-dispatcher.ts` — `callerPlanMode` + output cap +
|
|
113
|
+
retry + history-aware cap_exceeded
|
|
114
|
+
- `src/plugins/agents/native/index.ts` — imhubCtx 注入 callerPlanMode +
|
|
115
|
+
system prompt 加 "when to delegate" 段落
|
|
116
|
+
|
|
117
|
+
### 不在范围
|
|
118
|
+
|
|
119
|
+
- P1a 中"call_agent 并行 fan-out"先放——approval-bus 共享状态、子
|
|
120
|
+
代理审批卡片并发可能造成 UI 困惑,等单独立项做并设计正交。当下
|
|
121
|
+
call_agent 仍走串行。
|
|
122
|
+
|
|
7
123
|
## [1.2.138] - 2026-06-03
|
|
8
124
|
|
|
9
125
|
### Added (transient stream 错误首-token 重试)
|
package/dist/core/a2a.d.ts
CHANGED
|
@@ -38,6 +38,12 @@ export interface CallAgentOpts {
|
|
|
38
38
|
* hard failure — the callee is still allowed to do what it deems
|
|
39
39
|
* best. */
|
|
40
40
|
expectOutputs?: string[];
|
|
41
|
+
/** v1.2.139 — when the caller is currently in Plan Mode, propagate
|
|
42
|
+
* the flag to the callee so the sub-agent also runs read-only. Without
|
|
43
|
+
* this, a parent that hit /plan on would happily delegate write tasks
|
|
44
|
+
* to e.g. claude-code, which would launch with full write access and
|
|
45
|
+
* bypass the user's intent. */
|
|
46
|
+
planMode?: boolean;
|
|
41
47
|
}
|
|
42
48
|
export type CallAgentResult = {
|
|
43
49
|
ok: true;
|
package/dist/core/a2a.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"a2a.d.ts","sourceRoot":"","sources":["../../src/core/a2a.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAY/C,OAAO,EAML,KAAK,WAAW,EAChB,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAA;AAuBvB,eAAO,MAAM,qBAAqB,IAAI,CAAA;AAItC,eAAO,MAAM,sBAAsB,QAAiB,CAAA;AACpD;;uDAEuD;AACvD,eAAO,MAAM,kBAAkB,QAAiB,CAAA;AAEhD,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED,wBAAgB,cAAc,IAAI,MAAM,CAOvC;AAED,wBAAgB,eAAe,CAAC,GAAG,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAY1G;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAO3C;AAED,MAAM,WAAW,aAAa;IAC5B,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;4EAGwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;sDAKkD;IAClD,MAAM,CAAC,EAAE,WAAW,EAAE,CAAA;IACtB;;;gBAGY;IACZ,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"a2a.d.ts","sourceRoot":"","sources":["../../src/core/a2a.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAY/C,OAAO,EAML,KAAK,WAAW,EAChB,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAA;AAuBvB,eAAO,MAAM,qBAAqB,IAAI,CAAA;AAItC,eAAO,MAAM,sBAAsB,QAAiB,CAAA;AACpD;;uDAEuD;AACvD,eAAO,MAAM,kBAAkB,QAAiB,CAAA;AAEhD,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED,wBAAgB,cAAc,IAAI,MAAM,CAOvC;AAED,wBAAgB,eAAe,CAAC,GAAG,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAY1G;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAO3C;AAED,MAAM,WAAW,aAAa;IAC5B,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;4EAGwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;sDAKkD;IAClD,MAAM,CAAC,EAAE,WAAW,EAAE,CAAA;IACtB;;;gBAGY;IACZ,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB;;;;oCAIgC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,MAAM,eAAe,GACvB;IACE,EAAE,EAAE,IAAI,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;IAC3E,iEAAiE;IACjE,YAAY,EAAE,MAAM,CAAA;IACpB,qDAAqD;IACrD,OAAO,EAAE,UAAU,EAAE,CAAA;IACrB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CACpB,GACD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAEjE;;wDAEwD;AACxD,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,YAAY,EACjB,IAAI,GAAE,aAAkB,GACvB,OAAO,CAAC,eAAe,CAAC,CAsO1B"}
|
package/dist/core/a2a.js
CHANGED
|
@@ -219,6 +219,11 @@ export async function callAgentByName(agentName, prompt, ctx, opts = {}) {
|
|
|
219
219
|
// parent_id = jobId (our callee row).
|
|
220
220
|
parentJobId: jobId,
|
|
221
221
|
callDepth: nextDepth,
|
|
222
|
+
// v1.2.139 — propagate parent's plan-mode state so the callee runs
|
|
223
|
+
// read-only too. Without this, a parent under /plan on could delegate
|
|
224
|
+
// a write task to claude-code and the child would launch with full
|
|
225
|
+
// write access, bypassing the user's intent.
|
|
226
|
+
...(opts.planMode ? { planMode: true } : {}),
|
|
222
227
|
signal: abortController.signal,
|
|
223
228
|
});
|
|
224
229
|
result = await accumulateWithTimeout(gen, timeoutMs);
|
package/dist/core/a2a.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"a2a.js","sourceRoot":"","sources":["../../src/core/a2a.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,EAAE;AACF,yEAAyE;AACzE,sEAAsE;AACtE,aAAa;AACb,EAAE;AACF,kCAAkC;AAClC,uEAAuE;AACvE,6EAA6E;AAC7E,6DAA6D;AAC7D,yDAAyD;AACzD,0CAA0C;AAC1C,4CAA4C;AAC5C,wCAAwC;AACxC,oDAAoD;AACpD,EAAE;AACF,gCAAgC;AAChC,yEAAyE;AACzE,uEAAuE;AACvE,sEAAsE;AACtE,yEAAyE;AACzE,4DAA4D;AAC5D,wEAAwE;AACxE,iEAAiE;AAGjE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,EACL,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,aAAa,GACd,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,EACL,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,eAAe,EACf,WAAW,GAGZ,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,cAAc,GACf,MAAM,iBAAiB,CAAA;AAExB,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAA;AAElD,kEAAkE;AAClE,uEAAuE;AACvE,qEAAqE;AACrE,qEAAqE;AACrE,qEAAqE;AACrE,oBAAoB;AACpB,EAAE;AACF,kEAAkE;AAClE,kEAAkE;AAClE,qEAAqE;AACrE,qEAAqE;AACrE,sBAAsB;AACtB,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAA;AACtC,6EAA6E;AAC7E,4EAA4E;AAC5E,2EAA2E;AAC3E,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA,CAAE,SAAS;AAC/D;;uDAEuD;AACvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA,CAAE,MAAM;AAExD,MAAM,UAAU,YAAY;IAC1B,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,GAAG,CAAA;AAC9C,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAA;IAC3C,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;QAC3B,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,CAAC,CAAA;IAC5C,CAAC;IACD,OAAO,qBAAqB,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAkE;IAChG,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAA;IACpD,IAAI,IAAI,GAAG,sBAAsB,CAAA;IACjC,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;QAC3B,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAA;IAC3E,CAAC;IACD,oEAAoE;IACpE,oDAAoD;IACpD,mEAAmE;IACnE,IAAI,GAAG;QAAE,IAAI,GAAG,qBAAqB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAChD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAA;IAChD,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;QAC3B,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,CAAA;IAC3C,CAAC;IACD,OAAO,kBAAkB,CAAA;AAC3B,CAAC;AAwCD;;wDAEwD;AACxD,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,SAAiB,EACjB,MAAc,EACd,GAAiB,EACjB,OAAsB,EAAE;IAExB,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;QACpB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,oCAAoC,EAAE,CAAA;IACnE,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,CAAA;IACzC,MAAM,SAAS,GAAG,WAAW,GAAG,CAAC,CAAA;IACjC,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAA;IACjC,IAAI,SAAS,GAAG,QAAQ,EAAE,CAAC;QACzB,GAAG,CAAC,IAAI,CAAC;YACP,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ;SACtF,EAAE,8BAA8B,SAAS,UAAU,QAAQ,EAAE,CAAC,CAAA;QAC/D,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,4BAA4B,QAAQ,GAAG,EAAE,CAAA;IACtE,CAAC;IAED,yEAAyE;IACzE,sEAAsE;IACtE,yEAAyE;IACzE,iCAAiC;IACjC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACvD,GAAG,CAAC,IAAI,CAAC;YACP,KAAK,EAAE,wBAAwB,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ;SACnE,EAAE,+CAA+C,CAAC,CAAA;QACnD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAqB,SAAS,GAAG,EAAE,CAAA;IAChE,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;IAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,oBAAoB,SAAS,EAAE,EAAE,CAAA;IAC9D,CAAC;IAED,0EAA0E;IAC1E,oEAAoE;IACpE,uCAAuC;IACvC,MAAM,EAAE,GAAG,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,SAAS,CAAC,CAAA;IAC7D,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,OAAO;YACL,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI;YAC7B,KAAK,EAAE,UAAU,MAAM,CAAC,IAAI,uBAAuB,EAAE,CAAC,IAAI,aAAa;SACxE,CAAA;IACH,CAAC;IAED,MAAM,SAAS,GAAG,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAA;IACpE,MAAM,KAAK,GAAG,eAAe,CAAC;QAC5B,KAAK,EAAE,MAAM,CAAC,IAAI;QAClB,MAAM;QACN,SAAS;QACT,SAAS,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE;QAC3B,WAAW,EAAE,EAAE,CAAC,EAAE;QAClB,QAAQ,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI;QAClC,SAAS,EAAE,SAAS;KACrB,CAAC,CAAA;IACF,cAAc,CAAC,KAAK,CAAC,CAAA;IAErB,iEAAiE;IACjE,sEAAsE;IACtE,uEAAuE;IACvE,oEAAoE;IACpE,gBAAgB;IAChB,IAAI,YAAY,GAA2C,EAAE,CAAA;IAC7D,IAAI,kBAAkB,GAAG,MAAM,CAAA;IAC/B,IAAI,CAAC;QACH,MAAM,kBAAkB,CAAC,KAAK,CAAC,CAAA;QAC/B,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,YAAY,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC,CAAA;QACpF,CAAC;QACD,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC;eACvC,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QAC1D,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,QAAQ,GAAG,aAAa,CAAC;gBAC7B,KAAK;gBACL,MAAM,EAAE,YAAY;gBACpB,aAAa,EAAE,IAAI,CAAC,aAAa;aAClC,CAAC,CAAA;YACF,kBAAkB,GAAG,GAAG,QAAQ,KAAK,MAAM,EAAE,CAAA;QAC/C,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC5D,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,4BAA4B,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAC/D,+BAA+B,GAAG,EAAE,CAAC,CAAA;QACvC,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;QACzB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAA;IAC7D,CAAC;IAED,uEAAuE;IACvE,iEAAiE;IACjE,mEAAmE;IACnE,oEAAoE;IACpE,kEAAkE;IAClE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CACxB,IAAI,CAAC,SAAS,IAAI,eAAe,CAAC;QAChC,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,QAAQ,EAAE,GAAG,CAAC,QAAQ;KACvB,CAAC,EACF,kBAAkB,EAAE,CACrB,CAAA;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAC1B,GAAG,CAAC,IAAI,CAAC;QACP,KAAK,EAAE,kBAAkB;QACzB,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,IAAI,MAAM;QACvD,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI;QAC5C,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACvD,UAAU,EAAE,YAAY,CAAC,MAAM;QAC/B,iBAAiB,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC;KACnD,EAAE,SAAS,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;IAE1B,uEAAuE;IACvE,wEAAwE;IACxE,iDAAiD;IACjD,KAAK,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE;QAClC,KAAK;QACL,MAAM,EAAE,MAAM,CAAC,IAAI;QACnB,UAAU,EAAE,YAAY,CAAC,MAAM;QAC/B,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,WAAW,EAAE,IAAI,CAAC,WAAW;KAC9B,CAAC,CAAA;IACF,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;IAEpE,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,IAAI,OAAO,GAAuC,WAAW,CAAA;IAC7D,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,uEAAuE;IACvE,wEAAwE;IACxE,sEAAsE;IACtE,mDAAmD;IACnD,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;IAC7C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,KAAK,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE;YACpE,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,oEAAoE;YACpE,wDAAwD;YACxD,wDAAwD;YACxD,2DAA2D;YAC3D,sCAAsC;YACtC,WAAW,EAAE,KAAK;YAClB,SAAS,EAAE,SAAS;YACpB,MAAM,EAAE,eAAe,CAAC,MAAM;SAC/B,CAAC,CAAA;QACF,MAAM,GAAG,MAAM,qBAAqB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;IACtD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,GAAG,GAAG,YAAY,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAA;QAC5D,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACzD,oEAAoE;QACpE,sEAAsE;QACtE,IAAI,CAAC;YAAC,eAAe,CAAC,KAAK,EAAE,CAAA;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;IACtD,CAAC;IAED,4DAA4D;IAC5D,SAAS,CAAC,IAAI,EAAE,CAAA;IAEhB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAA;IAEvC,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;QAC5B,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IACjC,CAAC;SAAM,CAAC;QACN,aAAa,CAAC,KAAK,EAAE,MAAM,IAAI,OAAO,CAAC,CAAA;IACzC,CAAC;IAED,sEAAsE;IACtE,gEAAgE;IAChE,2CAA2C;IAC3C,IAAI,CAAC;QACH,aAAa,CAAC;YACZ,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE;YAC1B,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE;YACxB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,KAAK,EAAE,MAAM,CAAC,IAAI;YAClB,MAAM,EAAE,KAAK;YACb,SAAS,EAAE,MAAM,CAAC,MAAM;YACxB,WAAW,EAAE,MAAM,CAAC,MAAM;YAC1B,UAAU;YACV,IAAI,EAAE,CAAC;YACP,OAAO,EAAE,OAAO,KAAK,WAAW;YAChC,KAAK,EAAE,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC;SACjE,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,iCAAiC,CAAC,CAAA;IAC/F,CAAC;IAED,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;QAC5B,GAAG,CAAC,IAAI,CAAC;YACP,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM;SACtF,EAAE,SAAS,MAAM,CAAC,IAAI,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC,CAAA;QAChD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,KAAK,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAA;QACnF,CAAC;aAAM,CAAC;YACN,KAAK,eAAe,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,IAAI,OAAO,EAAE,CAAC,CAAA;QAC5G,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,IAAI,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAA;IAC3E,CAAC;IAED,oEAAoE;IACpE,iEAAiE;IACjE,gEAAgE;IAChE,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,CAAA;IACxC,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QACpD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAC1C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,QAAQ,CAAC,IAAI,CAAC,iCAAiC,QAAQ,EAAE,CAAC,CAAA;YAC5D,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,SAAS,CAAA;IAErD,GAAG,CAAC,IAAI,CAAC;QACP,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI;QAC9E,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,MAAM;KACrF,EAAE,SAAS,MAAM,CAAC,IAAI,QAAQ,MAAM,CAAC,MAAM,WAAW,OAAO,CAAC,MAAM,gBAAgB,UAAU,KAAK,CAAC,CAAA;IACrG,KAAK,iBAAiB,CAAC,GAAG,EAAE,SAAS,EAAE;QACrC,KAAK;QACL,MAAM,EAAE,MAAM,CAAC,IAAI;QACnB,UAAU;QACV,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;KAChE,CAAC,CAAA;IACF,OAAO;QACL,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,UAAU;QACvD,YAAY,EAAE,OAAO;QACrB,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7C,CAAA;AACH,CAAC;AAED,yEAAyE;AAEzE,MAAM,YAAa,SAAQ,KAAK;IAC9B,YAAY,EAAU,IAAI,KAAK,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAA,CAAC,CAAC;CACjE;AAED,KAAK,UAAU,qBAAqB,CAClC,GAA2B,EAC3B,EAAU;IAEV,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAA;IAChC,qEAAqE;IACrE,uEAAuE;IACvE,sEAAsE;IACtE,mEAAmE;IACnE,uEAAuE;IACvE,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ;YAAE,MAAM,IAAI,YAAY,CAAC,EAAE,CAAC,CAAA;QACtD,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;QACxB,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAmC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;YAC3E,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;YAC5F,mDAAmD;YACnD,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAiB,CAAC,CAAC,CAAA;QACrE,CAAC,CAAC,CAAA;QACF,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,CAA2B,CAAA;QAC5E,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO,GAAG,CAAA;QACzB,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;YAAE,GAAG,IAAI,IAAI,CAAC,KAAK,CAAA;IACvD,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"a2a.js","sourceRoot":"","sources":["../../src/core/a2a.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"live-config.d.ts","sourceRoot":"","sources":["../../src/core/live-config.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAIxC;kCACkC;AAClC,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAE/C;AAED;sEACsE;AACtE,wBAAgB,aAAa,IAAI,MAAM,GAAG,IAAI,CAE7C;AAED;mEACmE;AACnE,wBAAgB,eAAe,CAAC,QAAQ,SAAgB,GAAG,MAAM,CAEhE;AAED;;4CAE4C;AAC5C,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"live-config.d.ts","sourceRoot":"","sources":["../../src/core/live-config.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAIxC;kCACkC;AAClC,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAE/C;AAED;sEACsE;AACtE,wBAAgB,aAAa,IAAI,MAAM,GAAG,IAAI,CAE7C;AAED;mEACmE;AACnE,wBAAgB,eAAe,CAAC,QAAQ,SAAgB,GAAG,MAAM,CAEhE;AAED;;4CAE4C;AAC5C,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAuBpD;AAED;;gBAEgB;AAChB,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C"}
|
package/dist/core/live-config.js
CHANGED
|
@@ -53,6 +53,14 @@ export function isAgentEnabled(name) {
|
|
|
53
53
|
// required to appear in config.agents. Filtering it (v1.2.103
|
|
54
54
|
// regression) broke `/na` and default routing for installs whose
|
|
55
55
|
// enabled list predates native. Never filter it.
|
|
56
|
+
//
|
|
57
|
+
// v1.2.140 — the admin SPA now shows native in /settings/agents with
|
|
58
|
+
// a working toggle. That toggle is a "user preference / default-picker
|
|
59
|
+
// eligibility" signal, NOT a routing kill-switch: native stays
|
|
60
|
+
// reachable via `/na` even with the box unchecked. If a future change
|
|
61
|
+
// wants to honour the toggle as a hard disable, drop this short-
|
|
62
|
+
// circuit AND ship a migration that adds 'native' to existing configs
|
|
63
|
+
// missing the entry.
|
|
56
64
|
if (name === 'native')
|
|
57
65
|
return true;
|
|
58
66
|
if (!current)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"live-config.js","sourceRoot":"","sources":["../../src/core/live-config.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,EAAE;AACF,8BAA8B;AAC9B,wEAAwE;AACxE,sCAAsC;AACtC,6CAA6C;AAC7C,6CAA6C;AAC7C,uEAAuE;AACvE,qEAAqE;AACrE,wEAAwE;AACxE,8CAA8C;AAC9C,EAAE;AACF,wEAAwE;AACxE,8DAA8D;AAC9D,kEAAkE;AAClE,sEAAsE;AACtE,2BAA2B;AAC3B,EAAE;AACF,YAAY;AACZ,oEAAoE;AACpE,qEAAqE;AACrE,qEAAqE;AACrE,oEAAoE;AACpE,qEAAqE;AACrE,uEAAuE;AACvE,6CAA6C;AAC7C,EAAE;AACF,wEAAwE;AACxE,wEAAwE;AACxE,qCAAqC;AAIrC,IAAI,OAAO,GAAkB,IAAI,CAAA;AAEjC;kCACkC;AAClC,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,OAAO,GAAG,GAAG,CAAA;AACf,CAAC;AAED;sEACsE;AACtE,MAAM,UAAU,aAAa;IAC3B,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;mEACmE;AACnE,MAAM,UAAU,eAAe,CAAC,QAAQ,GAAG,aAAa;IACtD,OAAO,OAAO,EAAE,YAAY,IAAI,QAAQ,CAAA;AAC1C,CAAC;AAED;;4CAE4C;AAC5C,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,iEAAiE;IACjE,qEAAqE;IACrE,8DAA8D;IAC9D,iEAAiE;IACjE,iDAAiD;IACjD,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IAClC,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAA;IACzB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAA;IAC3B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAC3C,uEAAuE;IACvE,sEAAsE;IACtE,qDAAqD;IACrD,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;QAAE,OAAO,IAAI,CAAA;IACtD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;AAC5B,CAAC;AAED;;gBAEgB;AAChB,MAAM,UAAU,wBAAwB;IACtC,OAAO,GAAG,IAAI,CAAA;AAChB,CAAC"}
|
|
1
|
+
{"version":3,"file":"live-config.js","sourceRoot":"","sources":["../../src/core/live-config.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,EAAE;AACF,8BAA8B;AAC9B,wEAAwE;AACxE,sCAAsC;AACtC,6CAA6C;AAC7C,6CAA6C;AAC7C,uEAAuE;AACvE,qEAAqE;AACrE,wEAAwE;AACxE,8CAA8C;AAC9C,EAAE;AACF,wEAAwE;AACxE,8DAA8D;AAC9D,kEAAkE;AAClE,sEAAsE;AACtE,2BAA2B;AAC3B,EAAE;AACF,YAAY;AACZ,oEAAoE;AACpE,qEAAqE;AACrE,qEAAqE;AACrE,oEAAoE;AACpE,qEAAqE;AACrE,uEAAuE;AACvE,6CAA6C;AAC7C,EAAE;AACF,wEAAwE;AACxE,wEAAwE;AACxE,qCAAqC;AAIrC,IAAI,OAAO,GAAkB,IAAI,CAAA;AAEjC;kCACkC;AAClC,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,OAAO,GAAG,GAAG,CAAA;AACf,CAAC;AAED;sEACsE;AACtE,MAAM,UAAU,aAAa;IAC3B,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;mEACmE;AACnE,MAAM,UAAU,eAAe,CAAC,QAAQ,GAAG,aAAa;IACtD,OAAO,OAAO,EAAE,YAAY,IAAI,QAAQ,CAAA;AAC1C,CAAC;AAED;;4CAE4C;AAC5C,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,iEAAiE;IACjE,qEAAqE;IACrE,8DAA8D;IAC9D,iEAAiE;IACjE,iDAAiD;IACjD,EAAE;IACF,qEAAqE;IACrE,uEAAuE;IACvE,+DAA+D;IAC/D,sEAAsE;IACtE,iEAAiE;IACjE,sEAAsE;IACtE,qBAAqB;IACrB,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IAClC,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAA;IACzB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAA;IAC3B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAC3C,uEAAuE;IACvE,sEAAsE;IACtE,qDAAqD;IACrD,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;QAAE,OAAO,IAAI,CAAA;IACtD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;AAC5B,CAAC;AAED;;gBAEgB;AAChB,MAAM,UAAU,wBAAwB;IACtC,OAAO,GAAG,IAAI,CAAA;AAChB,CAAC"}
|
|
@@ -15,7 +15,29 @@ export interface ImhubDispatcherCtx {
|
|
|
15
15
|
logger?: typeof rootLogger;
|
|
16
16
|
/** Optional A2A depth — defaults to 0 for native-originated calls. */
|
|
17
17
|
callerDepth?: number;
|
|
18
|
+
/** v1.2.139 — caller's PlanMode flag at dispatch time. When true the
|
|
19
|
+
* parent thread has `/plan on`, so any sub-agent we spawn MUST also
|
|
20
|
+
* run read-only. Resolved by native/index.ts via
|
|
21
|
+
* effectivePlanModeOn(planThreadKey) before building the dispatcher. */
|
|
22
|
+
callerPlanMode?: boolean;
|
|
18
23
|
}
|
|
24
|
+
/** v1.2.139 — env-driven output cap. When a sub-agent's reply exceeds
|
|
25
|
+
* this, the dispatcher returns a short head + tail and stashes the full
|
|
26
|
+
* text into viewer-paste (when configured) so the model can still cite
|
|
27
|
+
* it. Default 8 KB: enough for typical CR reports / research summaries,
|
|
28
|
+
* small enough that 2-3 stacked sub-agents don't blow the parent's
|
|
29
|
+
* context budget. Set 0 to disable truncation. */
|
|
30
|
+
export declare function resolveSubAgentOutputCap(): number;
|
|
31
|
+
/** v1.2.139 — one-shot transient retry. Mirrors the streamWithFirstTokenRetry
|
|
32
|
+
* pattern: if the underlying provider/CLI tripped a 5xx / socket reset / quick
|
|
33
|
+
* timeout, retry exactly once. Permanent errors (4xx, schema fail, model
|
|
34
|
+
* refusals) keep the original behaviour (no retry). */
|
|
35
|
+
export declare function isTransientSubAgentError(msg: string): boolean;
|
|
36
|
+
/** v1.2.139 — apply the byte cap to a sub-agent reply, optionally
|
|
37
|
+
* spilling the full text into viewer-paste so the model can reference
|
|
38
|
+
* the spill URL. Returns the (possibly truncated) text the dispatcher
|
|
39
|
+
* should hand to the agent loop. */
|
|
40
|
+
export declare function applyOutputCap(raw: string, agentName: string, jobId: number | null): string;
|
|
19
41
|
/**
|
|
20
42
|
* Tool roster the LLM sees. JSON Schemas are kept terse — they match
|
|
21
43
|
* the RPC handlers' real expectations without copying claude-code's
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imhub-dispatcher.d.ts","sourceRoot":"","sources":["../../../src/core/llm/imhub-dispatcher.ts"],"names":[],"mappings":"AAoCA,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,KAAK,EAAE,cAAc,EAAoB,MAAM,sBAAsB,CAAA;AAC5E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"imhub-dispatcher.d.ts","sourceRoot":"","sources":["../../../src/core/llm/imhub-dispatcher.ts"],"names":[],"mappings":"AAoCA,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,KAAK,EAAE,cAAc,EAAoB,MAAM,sBAAsB,CAAA;AAC5E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AA8BjD;;iBAEiB;AACjB,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,8DAA8D;IAC9D,WAAW,EAAE,MAAM,CAAA;IACnB,sEAAsE;IACtE,MAAM,CAAC,EAAE,OAAO,UAAU,CAAA;IAC1B,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;6EAGyE;IACzE,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAED;;;;;mDAKmD;AACnD,wBAAgB,wBAAwB,IAAI,MAAM,CAMjD;AAED;;;wDAGwD;AACxD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAG7D;AASD;;;qCAGqC;AACrC,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GAAG,IAAI,GACnB,MAAM,CAmCR;AA4BD;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,OAAO,EAAE,CA8OzC;AAED,+DAA+D;AAC/D,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,kBAAkB,GAAG,cAAc,CAoW5E"}
|
|
@@ -40,6 +40,8 @@ import { handlePushOp } from '../push-rpc.js';
|
|
|
40
40
|
import { handleAskOp } from '../ask-user-rpc.js';
|
|
41
41
|
import { callAgentByName } from '../a2a.js';
|
|
42
42
|
import { createReminder, listReminders, cancelReminder, snoozeReminder, parseDuration, ReminderError, } from '../reminders.js';
|
|
43
|
+
import { savePaste } from '../viewer-local.js';
|
|
44
|
+
import { buildPasteUrl } from '../viewer-config.js';
|
|
43
45
|
const log = rootLogger.child({ component: 'imhub-dispatcher' });
|
|
44
46
|
/** v1.2.121 — kill switch for in-process native self-spawn. When set to
|
|
45
47
|
* 'off' (or '0' / 'no'), call_agent('native', …) falls back to the
|
|
@@ -49,6 +51,73 @@ function isInProcessSpawnDisabled() {
|
|
|
49
51
|
const raw = (process.env.IMHUB_NATIVE_CALL_AGENT_IN_PROCESS ?? '').toLowerCase().trim();
|
|
50
52
|
return raw === 'off' || raw === '0' || raw === 'no' || raw === 'false';
|
|
51
53
|
}
|
|
54
|
+
/** v1.2.139 — env-driven output cap. When a sub-agent's reply exceeds
|
|
55
|
+
* this, the dispatcher returns a short head + tail and stashes the full
|
|
56
|
+
* text into viewer-paste (when configured) so the model can still cite
|
|
57
|
+
* it. Default 8 KB: enough for typical CR reports / research summaries,
|
|
58
|
+
* small enough that 2-3 stacked sub-agents don't blow the parent's
|
|
59
|
+
* context budget. Set 0 to disable truncation. */
|
|
60
|
+
export function resolveSubAgentOutputCap() {
|
|
61
|
+
const raw = process.env.IMHUB_NATIVE_CALL_AGENT_OUTPUT_MAX_CHARS;
|
|
62
|
+
if (raw === undefined)
|
|
63
|
+
return 8000;
|
|
64
|
+
const n = parseInt(raw, 10);
|
|
65
|
+
if (!Number.isFinite(n) || n < 0)
|
|
66
|
+
return 8000;
|
|
67
|
+
return n;
|
|
68
|
+
}
|
|
69
|
+
/** v1.2.139 — one-shot transient retry. Mirrors the streamWithFirstTokenRetry
|
|
70
|
+
* pattern: if the underlying provider/CLI tripped a 5xx / socket reset / quick
|
|
71
|
+
* timeout, retry exactly once. Permanent errors (4xx, schema fail, model
|
|
72
|
+
* refusals) keep the original behaviour (no retry). */
|
|
73
|
+
export function isTransientSubAgentError(msg) {
|
|
74
|
+
if (!msg)
|
|
75
|
+
return false;
|
|
76
|
+
return /\b(5\d\d|408)\b|timeout|ECONN|ETIMEDOUT|fetch failed|socket hang up|network|ENETUNREACH/i.test(msg);
|
|
77
|
+
}
|
|
78
|
+
/** v1.2.139 — apply the byte cap to a sub-agent reply, optionally
|
|
79
|
+
* spilling the full text into viewer-paste so the model can reference
|
|
80
|
+
* the spill URL. Returns the (possibly truncated) text the dispatcher
|
|
81
|
+
* should hand to the agent loop. */
|
|
82
|
+
export function applyOutputCap(raw, agentName, jobId) {
|
|
83
|
+
const cap = resolveSubAgentOutputCap();
|
|
84
|
+
if (cap === 0 || raw.length <= cap)
|
|
85
|
+
return raw;
|
|
86
|
+
// Split roughly 70/30 head vs tail — the conclusion of a sub-agent
|
|
87
|
+
// reply is usually as important as the lede.
|
|
88
|
+
const headBudget = Math.floor(cap * 0.7);
|
|
89
|
+
const tailBudget = Math.max(cap - headBudget - 200, 0); // 200 reserved for marker
|
|
90
|
+
const head = raw.slice(0, headBudget);
|
|
91
|
+
const tail = tailBudget > 0 ? raw.slice(raw.length - tailBudget) : '';
|
|
92
|
+
let pasteHint = '';
|
|
93
|
+
try {
|
|
94
|
+
// savePaste fail-softs when better-sqlite3 is unavailable (bun
|
|
95
|
+
// test runner / fresh install) — it returns null and we just
|
|
96
|
+
// skip the URL hint.
|
|
97
|
+
const id = savePaste({
|
|
98
|
+
content: raw,
|
|
99
|
+
content_type: 'markdown',
|
|
100
|
+
title: `call_agent(${agentName}) full reply`,
|
|
101
|
+
source: 'a2a',
|
|
102
|
+
job_id: jobId ?? undefined,
|
|
103
|
+
});
|
|
104
|
+
if (id) {
|
|
105
|
+
const url = buildPasteUrl(id);
|
|
106
|
+
if (url)
|
|
107
|
+
pasteHint = `\n\n[full reply spilled to ${url}]`;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
// best-effort; the truncation itself is still the safety net
|
|
112
|
+
}
|
|
113
|
+
return [
|
|
114
|
+
head,
|
|
115
|
+
`\n\n[…truncated ${raw.length - headBudget - tailBudget} of ${raw.length} chars; ` +
|
|
116
|
+
`cap=IMHUB_NATIVE_CALL_AGENT_OUTPUT_MAX_CHARS=${cap}…]\n\n`,
|
|
117
|
+
tail,
|
|
118
|
+
pasteHint,
|
|
119
|
+
].join('');
|
|
120
|
+
}
|
|
52
121
|
function safeJson(v) {
|
|
53
122
|
try {
|
|
54
123
|
return JSON.stringify(v, null, 2);
|
|
@@ -322,7 +391,11 @@ export function buildImhubDispatcher(ctx) {
|
|
|
322
391
|
const n = Number(raw);
|
|
323
392
|
return Number.isFinite(n) && n >= 0 ? Math.floor(n) : 2;
|
|
324
393
|
})();
|
|
325
|
-
|
|
394
|
+
// v1.2.139 — track call history (not just count) so the cap_exceeded
|
|
395
|
+
// refusal can name which agents the model already invoked and whether
|
|
396
|
+
// they succeeded — model self-corrects faster when it can see "you
|
|
397
|
+
// already asked claude-code, it returned OK; don't ask it again".
|
|
398
|
+
const callAgentHistory = [];
|
|
326
399
|
return async (call, signal, toolCtx) => {
|
|
327
400
|
if (!call.name.startsWith('mcp__imhub__'))
|
|
328
401
|
return unknown(call.name);
|
|
@@ -393,30 +466,41 @@ export function buildImhubDispatcher(ctx) {
|
|
|
393
466
|
// 8 chained calls in one wechat turn before the user had to
|
|
394
467
|
// /abort. The cap is also visible in the deny message so the
|
|
395
468
|
// model self-corrects on its next iteration.
|
|
396
|
-
if (callAgentMaxPerTurn > 0 &&
|
|
469
|
+
if (callAgentMaxPerTurn > 0 && callAgentHistory.length >= callAgentMaxPerTurn) {
|
|
470
|
+
// v1.2.139 — include the history so the model can see what it
|
|
471
|
+
// has already tried (and whether those calls succeeded). A
|
|
472
|
+
// model that sees "you already called claude-code and got an
|
|
473
|
+
// OK 4k-char reply" stops re-delegating much faster than one
|
|
474
|
+
// that just sees a bare count.
|
|
475
|
+
const summary = callAgentHistory
|
|
476
|
+
.map((h, i) => ` ${i + 1}. ${h.agent} ${h.ok ? '✓' : '✗'}: "${h.promptHead}…"`)
|
|
477
|
+
.join('\n');
|
|
397
478
|
log.warn({
|
|
398
479
|
event: 'native.call_agent.cap_exceeded',
|
|
399
480
|
callerAgent: ctx.callerAgent,
|
|
400
481
|
calleeAgent: agentName,
|
|
401
|
-
count:
|
|
482
|
+
count: callAgentHistory.length,
|
|
402
483
|
cap: callAgentMaxPerTurn,
|
|
484
|
+
history: callAgentHistory,
|
|
403
485
|
threadId: ctx.threadId,
|
|
404
|
-
}, `call_agent cap exceeded (${
|
|
405
|
-
return err(`call_agent refused: you have already delegated ${
|
|
406
|
-
`(cap=${callAgentMaxPerTurn}).
|
|
407
|
-
`native_list_dir, mcp__imhub__* …) to
|
|
408
|
-
`
|
|
409
|
-
`chaining call_agent.`);
|
|
486
|
+
}, `call_agent cap exceeded (${callAgentHistory.length}/${callAgentMaxPerTurn}) — refusing further delegation`);
|
|
487
|
+
return err(`call_agent refused: you have already delegated ${callAgentHistory.length} time(s) this turn ` +
|
|
488
|
+
`(cap=${callAgentMaxPerTurn}). Prior delegations:\n${summary}\n\n` +
|
|
489
|
+
`Use your own tools (native_read_file, native_grep, native_list_dir, mcp__imhub__* …) to ` +
|
|
490
|
+
`finish the task with the information you already gathered. If you genuinely need a CLI ` +
|
|
491
|
+
`agent for the rest, tell the user to /cc, /oc, or /cs to switch — don't keep chaining call_agent.`);
|
|
410
492
|
}
|
|
411
|
-
|
|
493
|
+
const promptHead = prompt.slice(0, 60).replace(/\s+/g, ' ');
|
|
412
494
|
log.info({
|
|
413
495
|
event: 'native.call_agent.delegated',
|
|
414
496
|
callerAgent: ctx.callerAgent,
|
|
415
497
|
calleeAgent: agentName,
|
|
416
|
-
attempt:
|
|
498
|
+
attempt: callAgentHistory.length + 1,
|
|
417
499
|
cap: callAgentMaxPerTurn,
|
|
500
|
+
callerPlanMode: ctx.callerPlanMode ?? false,
|
|
418
501
|
threadId: ctx.threadId,
|
|
419
|
-
}, `delegating to ${agentName} (attempt ${
|
|
502
|
+
}, `delegating to ${agentName} (attempt ${callAgentHistory.length + 1}/${callAgentMaxPerTurn || '∞'}` +
|
|
503
|
+
`${ctx.callerPlanMode ? ', plan-mode propagated' : ''})`);
|
|
420
504
|
// v1.2.121 — in-process self-spawn fast path.
|
|
421
505
|
//
|
|
422
506
|
// When the target is `native` (i.e. caller wants to fan-out
|
|
@@ -432,6 +516,7 @@ export function buildImhubDispatcher(ctx) {
|
|
|
432
516
|
if (agentName === 'native' && !isInProcessSpawnDisabled()) {
|
|
433
517
|
const { getA2AMaxDepth, isA2AEnabled } = await import('../a2a.js');
|
|
434
518
|
if (!isA2AEnabled()) {
|
|
519
|
+
callAgentHistory.push({ agent: agentName, promptHead, ok: false });
|
|
435
520
|
return err('call_agent refused: A2A disabled (IMHUB_A2A_ENABLED=0)');
|
|
436
521
|
}
|
|
437
522
|
const callerDepth = ctx.callerDepth ?? 0;
|
|
@@ -442,20 +527,17 @@ export function buildImhubDispatcher(ctx) {
|
|
|
442
527
|
event: 'native.call_agent.in_process_depth_exceeded',
|
|
443
528
|
callerDepth, nextDepth, maxDepth, threadId: ctx.threadId,
|
|
444
529
|
}, `in-process self-spawn refused: depth ${nextDepth} > max ${maxDepth}`);
|
|
530
|
+
callAgentHistory.push({ agent: agentName, promptHead, ok: false });
|
|
445
531
|
return err(`call_agent refused: depth ${nextDepth} > max ${maxDepth}`);
|
|
446
532
|
}
|
|
447
533
|
log.info({
|
|
448
534
|
event: 'native.call_agent.in_process_spawn',
|
|
449
535
|
callerDepth, nextDepth, threadId: ctx.threadId, subTurnCallId: call.id,
|
|
536
|
+
callerPlanMode: ctx.callerPlanMode ?? false,
|
|
450
537
|
}, `in-process native self-spawn (depth ${nextDepth}); skipping subprocess boot`);
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
// index.ts depends on this dispatcher module.
|
|
538
|
+
// v1.2.139 — one-shot transient retry on the in-process path.
|
|
539
|
+
const runOnce = async () => {
|
|
454
540
|
const native = await import('../../plugins/agents/native/index.js');
|
|
455
|
-
// Fresh sub-session id so the child doesn't pollute
|
|
456
|
-
// the parent's session history but shares the thread
|
|
457
|
-
// context (platform/channelId/threadId/userId) so
|
|
458
|
-
// tools resolve the same workspace, MCP fleet, etc.
|
|
459
541
|
const subSessionId = `${ctx.threadId}-spawn-${call.id}`;
|
|
460
542
|
const parts = [];
|
|
461
543
|
for await (const chunk of native.nativeAgentAdapter.sendPrompt(subSessionId, prompt, [], {
|
|
@@ -464,15 +546,38 @@ export function buildImhubDispatcher(ctx) {
|
|
|
464
546
|
threadId: ctx.threadId,
|
|
465
547
|
userId: ctx.userId,
|
|
466
548
|
callDepth: nextDepth,
|
|
549
|
+
// v1.2.139 — propagate parent's plan-mode to the child.
|
|
550
|
+
// Without this a parent in /plan on could delegate write
|
|
551
|
+
// work to the in-process child and bypass user intent.
|
|
552
|
+
...(ctx.callerPlanMode ? { planMode: true } : {}),
|
|
467
553
|
signal,
|
|
468
554
|
})) {
|
|
469
555
|
parts.push(chunk);
|
|
470
556
|
}
|
|
471
|
-
return
|
|
557
|
+
return parts.join('');
|
|
558
|
+
};
|
|
559
|
+
try {
|
|
560
|
+
let raw;
|
|
561
|
+
try {
|
|
562
|
+
raw = await runOnce();
|
|
563
|
+
}
|
|
564
|
+
catch (e) {
|
|
565
|
+
const msg = e instanceof Error ? e.message : String(e);
|
|
566
|
+
if (!isTransientSubAgentError(msg))
|
|
567
|
+
throw e;
|
|
568
|
+
log.warn({
|
|
569
|
+
event: 'native.call_agent.in_process_retry',
|
|
570
|
+
err: msg, threadId: ctx.threadId,
|
|
571
|
+
}, 'in-process self-spawn transient-failed; retrying once');
|
|
572
|
+
raw = await runOnce();
|
|
573
|
+
}
|
|
574
|
+
callAgentHistory.push({ agent: agentName, promptHead, ok: true });
|
|
575
|
+
return ok(applyOutputCap(raw, agentName, null));
|
|
472
576
|
}
|
|
473
577
|
catch (e) {
|
|
474
578
|
const msg = e instanceof Error ? e.message : String(e);
|
|
475
579
|
log.warn({ event: 'native.call_agent.in_process_failed', err: msg }, 'in-process self-spawn threw; surfacing error to caller');
|
|
580
|
+
callAgentHistory.push({ agent: agentName, promptHead, ok: false });
|
|
476
581
|
return err(`call_agent (in-process native) failed: ${msg}`);
|
|
477
582
|
}
|
|
478
583
|
}
|
|
@@ -498,17 +603,42 @@ export function buildImhubDispatcher(ctx) {
|
|
|
498
603
|
traceId: a2aTrace,
|
|
499
604
|
logger: (ctx.logger ?? rootLogger).child({ component: 'a2a-from-native', threadId: ctx.threadId }),
|
|
500
605
|
};
|
|
501
|
-
const
|
|
606
|
+
const baseOpts = {
|
|
502
607
|
callerDepth: ctx.callerDepth ?? 0,
|
|
503
608
|
callerAgent: ctx.callerAgent,
|
|
504
|
-
|
|
505
|
-
|
|
609
|
+
// v1.2.139 — propagate parent's plan-mode to the sub-agent.
|
|
610
|
+
...(ctx.callerPlanMode ? { planMode: true } : {}),
|
|
611
|
+
};
|
|
612
|
+
// v1.2.139 — one-shot transient retry. callAgentByName already
|
|
613
|
+
// wraps its own audit + notify lifecycle; we just retry the
|
|
614
|
+
// whole call when the first attempt looks like a 5xx / socket
|
|
615
|
+
// reset / quick timeout. Permanent failures (workspace ACL,
|
|
616
|
+
// depth exceeded, model refusal) skip the retry.
|
|
617
|
+
let result = await callAgentByName(agentName, prompt, routeCtx, baseOpts);
|
|
618
|
+
if (!result.ok && isTransientSubAgentError(result.error || '')) {
|
|
619
|
+
log.warn({
|
|
620
|
+
event: 'native.call_agent.retry',
|
|
621
|
+
calleeAgent: agentName,
|
|
622
|
+
err: result.error,
|
|
623
|
+
threadId: ctx.threadId,
|
|
624
|
+
}, `call_agent transient-failed; retrying once`);
|
|
625
|
+
result = await callAgentByName(agentName, prompt, routeCtx, baseOpts);
|
|
626
|
+
}
|
|
627
|
+
if (!result.ok) {
|
|
628
|
+
callAgentHistory.push({ agent: agentName, promptHead, ok: false });
|
|
506
629
|
return err(`call_agent failed: ${result.error}`);
|
|
630
|
+
}
|
|
631
|
+
callAgentHistory.push({ agent: agentName, promptHead, ok: true });
|
|
507
632
|
// CallAgentResult exposes the callee's final text as `result`.
|
|
508
633
|
// Outputs, jobId, durationMs etc. are returned as a JSON
|
|
509
634
|
// sidecar so the model can reference produced artifacts if
|
|
510
635
|
// it asks for them — keeps the main payload terse.
|
|
511
|
-
|
|
636
|
+
// v1.2.139 — apply output cap so a chatty sub-agent doesn't
|
|
637
|
+
// blow the parent's context budget. The full text is spilled
|
|
638
|
+
// into viewer-paste (when configured) so the model can still
|
|
639
|
+
// cite the link.
|
|
640
|
+
const raw = typeof result.result === 'string' ? result.result : safeJson(result);
|
|
641
|
+
return ok(applyOutputCap(raw, agentName, result.jobId ?? null));
|
|
512
642
|
}
|
|
513
643
|
case 'long_task':
|
|
514
644
|
case 'complete_goal': {
|