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.
Files changed (191) hide show
  1. package/CHANGELOG.md +116 -0
  2. package/dist/core/a2a.d.ts +6 -0
  3. package/dist/core/a2a.d.ts.map +1 -1
  4. package/dist/core/a2a.js +5 -0
  5. package/dist/core/a2a.js.map +1 -1
  6. package/dist/core/live-config.d.ts.map +1 -1
  7. package/dist/core/live-config.js +8 -0
  8. package/dist/core/live-config.js.map +1 -1
  9. package/dist/core/llm/imhub-dispatcher.d.ts +22 -0
  10. package/dist/core/llm/imhub-dispatcher.d.ts.map +1 -1
  11. package/dist/core/llm/imhub-dispatcher.js +154 -24
  12. package/dist/core/llm/imhub-dispatcher.js.map +1 -1
  13. package/dist/plugins/agents/native/index.d.ts.map +1 -1
  14. package/dist/plugins/agents/native/index.js +9 -1
  15. package/dist/plugins/agents/native/index.js.map +1 -1
  16. package/dist/web/public/assets/{a2a-COCxV3Cc.js → a2a-DczMMkbl.js} +2 -2
  17. package/dist/web/public/assets/{a2a-COCxV3Cc.js.map → a2a-DczMMkbl.js.map} +1 -1
  18. package/dist/web/public/assets/{activity-lssr7XnJ.js → activity-cbLHkzca.js} +2 -2
  19. package/dist/web/public/assets/{activity-lssr7XnJ.js.map → activity-cbLHkzca.js.map} +1 -1
  20. package/dist/web/public/assets/{admins-DSW8IUl9.js → admins-C-YsGMj7.js} +2 -2
  21. package/dist/web/public/assets/{admins-DSW8IUl9.js.map → admins-C-YsGMj7.js.map} +1 -1
  22. package/dist/web/public/assets/agents-BWfov_1-.js +7 -0
  23. package/dist/web/public/assets/agents-BWfov_1-.js.map +1 -0
  24. package/dist/web/public/assets/{approvals-ClzA_Sl1.js → approvals-HSssmXKS.js} +2 -2
  25. package/dist/web/public/assets/{approvals-ClzA_Sl1.js.map → approvals-HSssmXKS.js.map} +1 -1
  26. package/dist/web/public/assets/{arrow-down-B6b32UC0.js → arrow-down-BXvC8Al2.js} +2 -2
  27. package/dist/web/public/assets/{arrow-down-B6b32UC0.js.map → arrow-down-BXvC8Al2.js.map} +1 -1
  28. package/dist/web/public/assets/{arrow-up-B-nP5kYY.js → arrow-up-63xELY5Q.js} +2 -2
  29. package/dist/web/public/assets/{arrow-up-B-nP5kYY.js.map → arrow-up-63xELY5Q.js.map} +1 -1
  30. package/dist/web/public/assets/{asks-DyXhQTTK.js → asks-COLEFOvK.js} +2 -2
  31. package/dist/web/public/assets/{asks-DyXhQTTK.js.map → asks-COLEFOvK.js.map} +1 -1
  32. package/dist/web/public/assets/{audit-BI7SCouF.js → audit-D4ZEiZub.js} +2 -2
  33. package/dist/web/public/assets/{audit-BI7SCouF.js.map → audit-D4ZEiZub.js.map} +1 -1
  34. package/dist/web/public/assets/{bell-B3N02OLo.js → bell-Cg2Bvv06.js} +2 -2
  35. package/dist/web/public/assets/{bell-B3N02OLo.js.map → bell-Cg2Bvv06.js.map} +1 -1
  36. package/dist/web/public/assets/{bgjobs-CicZiNip.js → bgjobs-CEjCzwtd.js} +2 -2
  37. package/dist/web/public/assets/{bgjobs-CicZiNip.js.map → bgjobs-CEjCzwtd.js.map} +1 -1
  38. package/dist/web/public/assets/{brain-C6ukvGuf.js → brain-euvl6F6C.js} +2 -2
  39. package/dist/web/public/assets/{brain-C6ukvGuf.js.map → brain-euvl6F6C.js.map} +1 -1
  40. package/dist/web/public/assets/{briefcase-hn1X3B5h.js → briefcase-DPWLbCnA.js} +2 -2
  41. package/dist/web/public/assets/{briefcase-hn1X3B5h.js.map → briefcase-DPWLbCnA.js.map} +1 -1
  42. package/dist/web/public/assets/{chat-BDQj16Vz.js → chat-Dz9kfaxH.js} +2 -2
  43. package/dist/web/public/assets/{chat-BDQj16Vz.js.map → chat-Dz9kfaxH.js.map} +1 -1
  44. package/dist/web/public/assets/{chevron-left-RxNVjq1Y.js → chevron-left-BeIh5thq.js} +2 -2
  45. package/dist/web/public/assets/{chevron-left-RxNVjq1Y.js.map → chevron-left-BeIh5thq.js.map} +1 -1
  46. package/dist/web/public/assets/{chevron-right-BUp0DVnl.js → chevron-right-uP_l9MMb.js} +2 -2
  47. package/dist/web/public/assets/{chevron-right-BUp0DVnl.js.map → chevron-right-uP_l9MMb.js.map} +1 -1
  48. package/dist/web/public/assets/{circle-check-Bm4WZ21u.js → circle-check-CewnjFgv.js} +2 -2
  49. package/dist/web/public/assets/{circle-check-Bm4WZ21u.js.map → circle-check-CewnjFgv.js.map} +1 -1
  50. package/dist/web/public/assets/{circle-check-big-BIrgy-jJ.js → circle-check-big-C2RTc48c.js} +2 -2
  51. package/dist/web/public/assets/{circle-check-big-BIrgy-jJ.js.map → circle-check-big-C2RTc48c.js.map} +1 -1
  52. package/dist/web/public/assets/{circle-x-D3x0-M6I.js → circle-x-Ccg1HyV-.js} +2 -2
  53. package/dist/web/public/assets/{circle-x-D3x0-M6I.js.map → circle-x-Ccg1HyV-.js.map} +1 -1
  54. package/dist/web/public/assets/{clock-DS7DQ1w2.js → clock-qxbYSynv.js} +2 -2
  55. package/dist/web/public/assets/{clock-DS7DQ1w2.js.map → clock-qxbYSynv.js.map} +1 -1
  56. package/dist/web/public/assets/{confirm-dialog-C68_XUSd.js → confirm-dialog-DmJq4Td9.js} +2 -2
  57. package/dist/web/public/assets/{confirm-dialog-C68_XUSd.js.map → confirm-dialog-DmJq4Td9.js.map} +1 -1
  58. package/dist/web/public/assets/{copy-Bzjhsg1p.js → copy-DxSHRdbc.js} +2 -2
  59. package/dist/web/public/assets/{copy-Bzjhsg1p.js.map → copy-DxSHRdbc.js.map} +1 -1
  60. package/dist/web/public/assets/{data-table-DEXi61Ud.js → data-table-S7rIjwdO.js} +2 -2
  61. package/dist/web/public/assets/{data-table-DEXi61Ud.js.map → data-table-S7rIjwdO.js.map} +1 -1
  62. package/dist/web/public/assets/{dialog-gd2B3olO.js → dialog-bAIDaO-6.js} +2 -2
  63. package/dist/web/public/assets/{dialog-gd2B3olO.js.map → dialog-bAIDaO-6.js.map} +1 -1
  64. package/dist/web/public/assets/{download-DCcaTdc6.js → download-OhsGtnO-.js} +2 -2
  65. package/dist/web/public/assets/{download-DCcaTdc6.js.map → download-OhsGtnO-.js.map} +1 -1
  66. package/dist/web/public/assets/{email-Bp4hAFCc.js → email-C1-HxWLF.js} +2 -2
  67. package/dist/web/public/assets/{email-Bp4hAFCc.js.map → email-C1-HxWLF.js.map} +1 -1
  68. package/dist/web/public/assets/{empty-state-Bzkp-ADK.js → empty-state-C-qjOHyu.js} +2 -2
  69. package/dist/web/public/assets/{empty-state-Bzkp-ADK.js.map → empty-state-C-qjOHyu.js.map} +1 -1
  70. package/dist/web/public/assets/{external-link-Deer-Lh8.js → external-link-DRVp9-lb.js} +2 -2
  71. package/dist/web/public/assets/{external-link-Deer-Lh8.js.map → external-link-DRVp9-lb.js.map} +1 -1
  72. package/dist/web/public/assets/{eye-aJAK4qYW.js → eye-CFhg5BTa.js} +2 -2
  73. package/dist/web/public/assets/{eye-aJAK4qYW.js.map → eye-CFhg5BTa.js.map} +1 -1
  74. package/dist/web/public/assets/{facts-CX8Slc_J.js → facts-CGaLWhzi.js} +2 -2
  75. package/dist/web/public/assets/{facts-CX8Slc_J.js.map → facts-CGaLWhzi.js.map} +1 -1
  76. package/dist/web/public/assets/{goals-CoO5qR3l.js → goals-C-dJANmn.js} +2 -2
  77. package/dist/web/public/assets/{goals-CoO5qR3l.js.map → goals-C-dJANmn.js.map} +1 -1
  78. package/dist/web/public/assets/{health-QRL6KLLZ.js → health-CWcti5h3.js} +2 -2
  79. package/dist/web/public/assets/{health-QRL6KLLZ.js.map → health-CWcti5h3.js.map} +1 -1
  80. package/dist/web/public/assets/{heart-pulse-DTuy4Tma.js → heart-pulse-DmGhKR2W.js} +2 -2
  81. package/dist/web/public/assets/{heart-pulse-DTuy4Tma.js.map → heart-pulse-DmGhKR2W.js.map} +1 -1
  82. package/dist/web/public/assets/{heartbeat-BLutWB3t.js → heartbeat-kLoGBNCo.js} +2 -2
  83. package/dist/web/public/assets/{heartbeat-BLutWB3t.js.map → heartbeat-kLoGBNCo.js.map} +1 -1
  84. package/dist/web/public/assets/{hot-B96_1Z-G.js → hot-BITDoax1.js} +2 -2
  85. package/dist/web/public/assets/{hot-B96_1Z-G.js.map → hot-BITDoax1.js.map} +1 -1
  86. package/dist/web/public/assets/{index-wVLKSZpI.js → index-O0BQoyzo.js} +22 -22
  87. package/dist/web/public/assets/{index-wVLKSZpI.js.map → index-O0BQoyzo.js.map} +1 -1
  88. package/dist/web/public/assets/{installed-5bpbtNzF.js → installed-Co9WrtQ7.js} +2 -2
  89. package/dist/web/public/assets/{installed-5bpbtNzF.js.map → installed-Co9WrtQ7.js.map} +1 -1
  90. package/dist/web/public/assets/{jobs-CPLjCaI5.js → jobs-hdHhBEvi.js} +2 -2
  91. package/dist/web/public/assets/{jobs-CPLjCaI5.js.map → jobs-hdHhBEvi.js.map} +1 -1
  92. package/dist/web/public/assets/{layout-Cdi09rZy.js → layout-BMXC1Uh1.js} +2 -2
  93. package/dist/web/public/assets/{layout-Cdi09rZy.js.map → layout-BMXC1Uh1.js.map} +1 -1
  94. package/dist/web/public/assets/{layout-CN-hNeUX.js → layout-CQtbOBag.js} +2 -2
  95. package/dist/web/public/assets/{layout-CN-hNeUX.js.map → layout-CQtbOBag.js.map} +1 -1
  96. package/dist/web/public/assets/{layout-nYKX1VY4.js → layout-CyBGneZ9.js} +2 -2
  97. package/dist/web/public/assets/{layout-nYKX1VY4.js.map → layout-CyBGneZ9.js.map} +1 -1
  98. package/dist/web/public/assets/{layout-DOvroJYL.js → layout-CysVsySh.js} +2 -2
  99. package/dist/web/public/assets/{layout-DOvroJYL.js.map → layout-CysVsySh.js.map} +1 -1
  100. package/dist/web/public/assets/{layout-K_oWND8q.js → layout-bDMXIKIR.js} +2 -2
  101. package/dist/web/public/assets/{layout-K_oWND8q.js.map → layout-bDMXIKIR.js.map} +1 -1
  102. package/dist/web/public/assets/{llm-BDW-Xpvk.js → llm-CPIRNQU2.js} +2 -2
  103. package/dist/web/public/assets/{llm-BDW-Xpvk.js.map → llm-CPIRNQU2.js.map} +1 -1
  104. package/dist/web/public/assets/{loader-circle-DPc6botW.js → loader-circle-9VUMGitw.js} +2 -2
  105. package/dist/web/public/assets/{loader-circle-DPc6botW.js.map → loader-circle-9VUMGitw.js.map} +1 -1
  106. package/dist/web/public/assets/{map-pin-ECh-25H3.js → map-pin-BXYvvHry.js} +2 -2
  107. package/dist/web/public/assets/{map-pin-ECh-25H3.js.map → map-pin-BXYvvHry.js.map} +1 -1
  108. package/dist/web/public/assets/{mcp-BV-k5VFD.js → mcp-BgLdlwSn.js} +2 -2
  109. package/dist/web/public/assets/{mcp-BV-k5VFD.js.map → mcp-BgLdlwSn.js.map} +1 -1
  110. package/dist/web/public/assets/{memos-BTsHVXah.js → memos-CfneX9DH.js} +2 -2
  111. package/dist/web/public/assets/{memos-BTsHVXah.js.map → memos-CfneX9DH.js.map} +1 -1
  112. package/dist/web/public/assets/{messengers-fyjNQwDX.js → messengers-7Phqea62.js} +2 -2
  113. package/dist/web/public/assets/{messengers-fyjNQwDX.js.map → messengers-7Phqea62.js.map} +1 -1
  114. package/dist/web/public/assets/{mobile-CeRuQZ-W.js → mobile-CV5b6D2W.js} +2 -2
  115. package/dist/web/public/assets/{mobile-CeRuQZ-W.js.map → mobile-CV5b6D2W.js.map} +1 -1
  116. package/dist/web/public/assets/{native-agent-Cg-Sab4t.js → native-agent-QvIa6LjE.js} +2 -2
  117. package/dist/web/public/assets/{native-agent-Cg-Sab4t.js.map → native-agent-QvIa6LjE.js.map} +1 -1
  118. package/dist/web/public/assets/{network-FK3KNI1a.js → network-BXhEjGhE.js} +2 -2
  119. package/dist/web/public/assets/{network-FK3KNI1a.js.map → network-BXhEjGhE.js.map} +1 -1
  120. package/dist/web/public/assets/{outbox-DhlxB8l0.js → outbox-DHQL7TQb.js} +2 -2
  121. package/dist/web/public/assets/{outbox-DhlxB8l0.js.map → outbox-DHQL7TQb.js.map} +1 -1
  122. package/dist/web/public/assets/{pagination-DzNnFLlI.js → pagination-VKuPb1Ot.js} +2 -2
  123. package/dist/web/public/assets/{pagination-DzNnFLlI.js.map → pagination-VKuPb1Ot.js.map} +1 -1
  124. package/dist/web/public/assets/{persona-B_EkauQB.js → persona-CWug2GLR.js} +2 -2
  125. package/dist/web/public/assets/{persona-B_EkauQB.js.map → persona-CWug2GLR.js.map} +1 -1
  126. package/dist/web/public/assets/{plans-D4aczyt4.js → plans-CZoEs5SY.js} +2 -2
  127. package/dist/web/public/assets/{plans-D4aczyt4.js.map → plans-CZoEs5SY.js.map} +1 -1
  128. package/dist/web/public/assets/{play-BdTIFReu.js → play-CfSn5Vdl.js} +2 -2
  129. package/dist/web/public/assets/{play-BdTIFReu.js.map → play-CfSn5Vdl.js.map} +1 -1
  130. package/dist/web/public/assets/{plus-CjK8x5Ta.js → plus-Z8l4CiqJ.js} +2 -2
  131. package/dist/web/public/assets/{plus-CjK8x5Ta.js.map → plus-Z8l4CiqJ.js.map} +1 -1
  132. package/dist/web/public/assets/{policy-D7vnZQeQ.js → policy-CutDSEPW.js} +2 -2
  133. package/dist/web/public/assets/{policy-D7vnZQeQ.js.map → policy-CutDSEPW.js.map} +1 -1
  134. package/dist/web/public/assets/{qr-code-CpmzdYE3.js → qr-code-DgU5aiM6.js} +2 -2
  135. package/dist/web/public/assets/{qr-code-CpmzdYE3.js.map → qr-code-DgU5aiM6.js.map} +1 -1
  136. package/dist/web/public/assets/{refresh-ccw-C2Q06LWj.js → refresh-ccw-D2CWiyU_.js} +2 -2
  137. package/dist/web/public/assets/{refresh-ccw-C2Q06LWj.js.map → refresh-ccw-D2CWiyU_.js.map} +1 -1
  138. package/dist/web/public/assets/{reminders-BW3VfYCD.js → reminders-Cb6Izedg.js} +2 -2
  139. package/dist/web/public/assets/{reminders-BW3VfYCD.js.map → reminders-Cb6Izedg.js.map} +1 -1
  140. package/dist/web/public/assets/{save-3XXDgdfD.js → save-DB0BDYTs.js} +2 -2
  141. package/dist/web/public/assets/{save-3XXDgdfD.js.map → save-DB0BDYTs.js.map} +1 -1
  142. package/dist/web/public/assets/{schedules-Bg5oBl6i.js → schedules-8mSjE14D.js} +2 -2
  143. package/dist/web/public/assets/{schedules-Bg5oBl6i.js.map → schedules-8mSjE14D.js.map} +1 -1
  144. package/dist/web/public/assets/{search-oQrctQNZ.js → search-B4fHilZ0.js} +2 -2
  145. package/dist/web/public/assets/{search-oQrctQNZ.js.map → search-B4fHilZ0.js.map} +1 -1
  146. package/dist/web/public/assets/{search-BjW_KGfJ.js → search-Con69NhG.js} +2 -2
  147. package/dist/web/public/assets/{search-BjW_KGfJ.js.map → search-Con69NhG.js.map} +1 -1
  148. package/dist/web/public/assets/{security-ongR2bsH.js → security-BTe3zUg8.js} +2 -2
  149. package/dist/web/public/assets/{security-ongR2bsH.js.map → security-BTe3zUg8.js.map} +1 -1
  150. package/dist/web/public/assets/{service-CNTTFkAV.js → service-C7SqcwfL.js} +2 -2
  151. package/dist/web/public/assets/{service-CNTTFkAV.js.map → service-C7SqcwfL.js.map} +1 -1
  152. package/dist/web/public/assets/{shield-alert-DW0flso9.js → shield-alert-CKFVsGgI.js} +2 -2
  153. package/dist/web/public/assets/{shield-alert-DW0flso9.js.map → shield-alert-CKFVsGgI.js.map} +1 -1
  154. package/dist/web/public/assets/{status-badge-CnqMu-7R.js → status-badge-BSkpyN4D.js} +2 -2
  155. package/dist/web/public/assets/{status-badge-CnqMu-7R.js.map → status-badge-BSkpyN4D.js.map} +1 -1
  156. package/dist/web/public/assets/{subtasks-ChtI7jpP.js → subtasks-Bel-I1Sk.js} +2 -2
  157. package/dist/web/public/assets/{subtasks-ChtI7jpP.js.map → subtasks-Bel-I1Sk.js.map} +1 -1
  158. package/dist/web/public/assets/{table-DVQPjWsi.js → table-CPn1MRcy.js} +2 -2
  159. package/dist/web/public/assets/{table-DVQPjWsi.js.map → table-CPn1MRcy.js.map} +1 -1
  160. package/dist/web/public/assets/{topn-Cs-wP6Tf.js → topn-Ba3RjcK1.js} +2 -2
  161. package/dist/web/public/assets/{topn-Cs-wP6Tf.js.map → topn-Ba3RjcK1.js.map} +1 -1
  162. package/dist/web/public/assets/{trash-2-BXhBc6TL.js → trash-2-Dfov8aHD.js} +2 -2
  163. package/dist/web/public/assets/{trash-2-BXhBc6TL.js.map → trash-2-Dfov8aHD.js.map} +1 -1
  164. package/dist/web/public/assets/{use-background-tasks-DWe_iYgk.js → use-background-tasks-BQrEeUwY.js} +2 -2
  165. package/dist/web/public/assets/{use-background-tasks-DWe_iYgk.js.map → use-background-tasks-BQrEeUwY.js.map} +1 -1
  166. package/dist/web/public/assets/{use-llm-admin-SE-2iSIe.js → use-llm-admin-DYekqogG.js} +2 -2
  167. package/dist/web/public/assets/{use-llm-admin-SE-2iSIe.js.map → use-llm-admin-DYekqogG.js.map} +1 -1
  168. package/dist/web/public/assets/{use-memory-tCgpqYla.js → use-memory-DbJ4pP2Z.js} +2 -2
  169. package/dist/web/public/assets/{use-memory-tCgpqYla.js.map → use-memory-DbJ4pP2Z.js.map} +1 -1
  170. package/dist/web/public/assets/{use-observability-CMUSiy5z.js → use-observability-C2M6WZ9W.js} +2 -2
  171. package/dist/web/public/assets/{use-observability-CMUSiy5z.js.map → use-observability-C2M6WZ9W.js.map} +1 -1
  172. package/dist/web/public/assets/{use-settings-BUM0BmtA.js → use-settings-DMdaoWsB.js} +2 -2
  173. package/dist/web/public/assets/{use-settings-BUM0BmtA.js.map → use-settings-DMdaoWsB.js.map} +1 -1
  174. package/dist/web/public/assets/{use-workspace-BOUxEbaB.js → use-workspace-BHG7h3jQ.js} +2 -2
  175. package/dist/web/public/assets/{use-workspace-BOUxEbaB.js.map → use-workspace-BHG7h3jQ.js.map} +1 -1
  176. package/dist/web/public/assets/{useQuery-II-YwTUw.js → useQuery-PdiC7-sY.js} +2 -2
  177. package/dist/web/public/assets/{useQuery-II-YwTUw.js.map → useQuery-PdiC7-sY.js.map} +1 -1
  178. package/dist/web/public/assets/{vector-C83bHtEW.js → vector-DnZM3OXU.js} +2 -2
  179. package/dist/web/public/assets/{vector-C83bHtEW.js.map → vector-DnZM3OXU.js.map} +1 -1
  180. package/dist/web/public/assets/{viewer-rMDo9pIb.js → viewer-Dz6k0YKp.js} +2 -2
  181. package/dist/web/public/assets/{viewer-rMDo9pIb.js.map → viewer-Dz6k0YKp.js.map} +1 -1
  182. package/dist/web/public/assets/{workspace-tVixiuWJ.js → workspace-BnXrWS3j.js} +2 -2
  183. package/dist/web/public/assets/{workspace-tVixiuWJ.js.map → workspace-BnXrWS3j.js.map} +1 -1
  184. package/dist/web/public/assets/{workspaces-CsLKDstm.js → workspaces-CSS_UBEi.js} +2 -2
  185. package/dist/web/public/assets/{workspaces-CsLKDstm.js.map → workspaces-CSS_UBEi.js.map} +1 -1
  186. package/dist/web/public/assets/{x-B0lqsHGi.js → x-DG-JKVw_.js} +2 -2
  187. package/dist/web/public/assets/{x-B0lqsHGi.js.map → x-DG-JKVw_.js.map} +1 -1
  188. package/dist/web/public/index.html +1 -1
  189. package/package.json +1 -1
  190. package/dist/web/public/assets/agents-0IMyFVui.js +0 -7
  191. 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 重试)
@@ -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;
@@ -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;CACzB;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,CAiO1B"}
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);
@@ -1 +1 @@
1
- {"version":3,"file":"a2a.js","sourceRoot":"","sources":["../../src/core/a2a.ts"],"names":[],"mappings":"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"}
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,CAepD;AAED;;gBAEgB;AAChB,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C"}
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"}
@@ -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;AA4BjD;;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;CACrB;AA4BD;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,OAAO,EAAE,CA8OzC;AAED,+DAA+D;AAC/D,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,kBAAkB,GAAG,cAAc,CAwS5E"}
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
- let callAgentCount = 0;
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 && callAgentCount >= callAgentMaxPerTurn) {
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: callAgentCount,
482
+ count: callAgentHistory.length,
402
483
  cap: callAgentMaxPerTurn,
484
+ history: callAgentHistory,
403
485
  threadId: ctx.threadId,
404
- }, `call_agent cap exceeded (${callAgentCount}/${callAgentMaxPerTurn}) — refusing further delegation`);
405
- return err(`call_agent refused: you have already delegated ${callAgentCount} time(s) this turn ` +
406
- `(cap=${callAgentMaxPerTurn}). Use your own tools (native_read_file, native_grep, ` +
407
- `native_list_dir, mcp__imhub__* …) to finish the task. If you genuinely need a CLI ` +
408
- `agent for the rest, tell the user to /cc, /oc, or /cs to switch don't keep ` +
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
- callAgentCount += 1;
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: callAgentCount,
498
+ attempt: callAgentHistory.length + 1,
417
499
  cap: callAgentMaxPerTurn,
500
+ callerPlanMode: ctx.callerPlanMode ?? false,
418
501
  threadId: ctx.threadId,
419
- }, `delegating to ${agentName} (attempt ${callAgentCount}/${callAgentMaxPerTurn || '∞'})`);
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
- try {
452
- // Dynamic import to avoid the circular dep — native
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 ok(parts.join(''));
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 result = await callAgentByName(agentName, prompt, routeCtx, {
606
+ const baseOpts = {
502
607
  callerDepth: ctx.callerDepth ?? 0,
503
608
  callerAgent: ctx.callerAgent,
504
- });
505
- if (!result.ok)
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
- return ok(typeof result.result === 'string' ? result.result : safeJson(result));
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': {