nolo-cli 0.52.0-alpha.1 → 0.54.0-alpha.1

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 (72) hide show
  1. package/{_executeModel-4BPV4B2U.js → _executeModel-IVEOJ7L6.js} +20 -20
  2. package/{agentDeleteCommand-KZSETRE3.js → agentDeleteCommand-D7AFLKQN.js} +10 -10
  3. package/{agentEmailCommands-3AGHYFVG.js → agentEmailCommands-MXFZGF54.js} +24 -24
  4. package/{agentListCommands-KVLURCS7.js → agentListCommands-MP732Q23.js} +12 -12
  5. package/{agentMachineCommands-KUB2M4KB.js → agentMachineCommands-352JFJX4.js} +11 -11
  6. package/{agentRecordCommands-XDMCGNPQ.js → agentRecordCommands-G6EFHU3G.js} +23 -23
  7. package/{agentRunCommand-MXZGNSA3.js → agentRunCommand-UUWJMH7J.js} +23 -23
  8. package/{agentRuntimeLocal-SIQYQGSK.js → agentRuntimeLocal-KWBPJ53H.js} +10 -10
  9. package/{agentSlice-VD3BAJAU.js → agentSlice-V742SNKC.js} +1 -1
  10. package/{appDeleteCommands-LSIIQFYN.js → appDeleteCommands-GV4TF52A.js} +10 -10
  11. package/{appDeployCommands-VYGKN7HU.js → appDeployCommands-EZMUPNSW.js} +10 -10
  12. package/{appDeployStatusCommands-ODFHFUR7.js → appDeployStatusCommands-AAGELKAN.js} +10 -10
  13. package/{appGetCommands-DPQY67UZ.js → appGetCommands-W37KDAON.js} +10 -10
  14. package/{appListCommands-EFXENXWX.js → appListCommands-IFDWBBNV.js} +10 -10
  15. package/{authCommand-WLWOEVYI.js → authCommand-5HM57KPL.js} +7 -7
  16. package/{chatQueueReduxAdapter-N5432EP2.js → chatQueueReduxAdapter-ZXXP6E4O.js} +8 -8
  17. package/{chunk-VKSBVRGP.js → chunk-2T6XO4PK.js} +1 -1
  18. package/{chunk-3YVCM5PE.js → chunk-45E65JER.js} +1 -1
  19. package/{chunk-4YAMAMNA.js → chunk-5SXS7T5Q.js} +11 -10
  20. package/{chunk-JBL24PK6.js → chunk-5Y5G76BJ.js} +2 -2
  21. package/{chunk-BO3YFOZR.js → chunk-7UFH6THF.js} +1 -1
  22. package/{chunk-6L6UPZNH.js → chunk-ALMVQQPG.js} +8 -8
  23. package/{chunk-MCX2LX27.js → chunk-BKPUPZ6W.js} +12 -12
  24. package/{chunk-4ZL2KBI7.js → chunk-CULR4XB4.js} +1 -1
  25. package/{chunk-HMMOAG2I.js → chunk-DMCFF4KE.js} +7 -4
  26. package/{chunk-AV4Z57LV.js → chunk-ET7BXWAW.js} +2 -2
  27. package/{chunk-W3RZLXMA.js → chunk-FZMM2KZC.js} +2 -2
  28. package/{chunk-C2WF2OY7.js → chunk-GBXR3CSM.js} +1 -1
  29. package/{chunk-S3HB4CQY.js → chunk-J4Z6UI4C.js} +106 -18
  30. package/{chunk-VFN256RI.js → chunk-J7KVJAUQ.js} +26 -0
  31. package/{chunk-5JXRVJAC.js → chunk-K7CNV7GI.js} +3 -3
  32. package/{chunk-EVBFYPDC.js → chunk-M2CGG6VJ.js} +1 -1
  33. package/{chunk-IERBSHMR.js → chunk-MC66ASS6.js} +3 -3
  34. package/{chunk-Z2OCOUGR.js → chunk-OU7NGN5Y.js} +1 -1
  35. package/{chunk-QDNFRWAX.js → chunk-PEMGYJNS.js} +2 -2
  36. package/{chunk-F22JQTSX.js → chunk-PTHLNXGY.js} +2 -2
  37. package/{chunk-LQXYIEDC.js → chunk-R63FNYSI.js} +87 -45
  38. package/{chunk-5UVEQ7GT.js → chunk-RBJD33HM.js} +3 -3
  39. package/{chunk-7M72YPM2.js → chunk-RVHPY5PC.js} +2 -2
  40. package/{chunk-72COHDZR.js → chunk-SUFDWBLV.js} +13 -13
  41. package/{chunk-RPO6WAZV.js → chunk-VM7K5EJL.js} +2 -2
  42. package/{chunk-W3GYW6NZ.js → chunk-W6N3GLUU.js} +80 -25
  43. package/{chunk-Y7TGWSUN.js → chunk-WJV3G7BM.js} +1 -1
  44. package/{chunk-XB7ACJFH.js → chunk-WUMYQ2FE.js} +2 -2
  45. package/{chunk-OZ4JNDIL.js → chunk-XXZULHJ7.js} +1 -1
  46. package/{chunk-Z7A54NFZ.js → chunk-YFHUQLJF.js} +1 -1
  47. package/{chunk-AZ6DT2UD.js → chunk-ZMV5PCRS.js} +1 -1
  48. package/{createAgentAutomationAction-IHKV53QC.js → createAgentAutomationAction-LE3ZYDT6.js} +9 -9
  49. package/{createDialogAction-4ARDCKPP.js → createDialogAction-2C6SR62D.js} +10 -10
  50. package/{createPageAction-GQOCPICU.js → createPageAction-X4C7K3OD.js} +9 -9
  51. package/{dialogCommands-YOTCP26N.js → dialogCommands-CP2U44A7.js} +10 -10
  52. package/{dialogSlice-NX26W623.js → dialogSlice-2SH5636X.js} +8 -8
  53. package/{docCreateCommands-JVAMHES4.js → docCreateCommands-A2KIJSF7.js} +10 -10
  54. package/{docDeleteCommands-LW5DWICT.js → docDeleteCommands-NZ7XO4Z4.js} +10 -10
  55. package/{docReadCommands-AQOZS3I5.js → docReadCommands-VWVK4ZAR.js} +10 -10
  56. package/{docStore-YAE7GYHZ.js → docStore-J6GQYKHS.js} +10 -10
  57. package/{docUpdateCommands-FFGGX5RG.js → docUpdateCommands-YTUEC6PN.js} +10 -10
  58. package/{getPricing-JNOCWYDH.js → getPricing-I53UFOPH.js} +3 -3
  59. package/{handleSendMessageAction-7YKH4UBI.js → handleSendMessageAction-MD325XZS.js} +8 -8
  60. package/index.js +47 -47
  61. package/{machineCommands-JZVC7JEX.js → machineCommands-TCNZV2DC.js} +23 -23
  62. package/{machineWsRunDispatch-GUYB43AQ.js → machineWsRunDispatch-QSX5IWPH.js} +23 -23
  63. package/{models-N4NXQ44D.js → models-E2CYP4IB.js} +2 -2
  64. package/package.json +1 -1
  65. package/{readlineWorkspace-76MBPA5B.js → readlineWorkspace-N3RGX7EK.js} +67 -31
  66. package/{runAgentClientLoop-6NCW5AS6.js → runAgentClientLoop-R3NTOERA.js} +18 -18
  67. package/{spaceCommands-7MJVL4XR.js → spaceCommands-RC7XMYQ7.js} +10 -10
  68. package/{spaceSlice-JVVDCGA3.js → spaceSlice-KBVKKO3M.js} +9 -9
  69. package/{streamAgentChatTurn-UAKCHWFN.js → streamAgentChatTurn-WLWEBWSF.js} +21 -21
  70. package/{tools-ROUITGAR.js → tools-LSLDSUWU.js} +13 -13
  71. package/{tuiSummaryLlmCaller-U4EGD2SX.js → tuiSummaryLlmCaller-TPBL4BV2.js} +6 -6
  72. package/{updateDialogTitleAction-R4M6ZXCX.js → updateDialogTitleAction-4HJEARM7.js} +9 -9
@@ -11,7 +11,7 @@ import {
11
11
  PLATFORM_HOSTED_KIMI_K3_MODEL,
12
12
  isFireworksKimiModel,
13
13
  isNoloHostedProvider
14
- } from "./chunk-VFN256RI.js";
14
+ } from "./chunk-J7KVJAUQ.js";
15
15
  import {
16
16
  asTrimmedLowercaseString
17
17
  } from "./chunk-QSJ3HFEF.js";
@@ -156,9 +156,11 @@ var MENU_USAGE_INSTRUCTIONS = `--- \u4EA4\u4E92\u8BF4\u660E ---
156
156
  \u6240\u6709\u7528\u6237\u8F93\u5165\u5747\u4E3A\u7EAF\u6587\u672C\u6D88\u606F\uFF0C\u76F4\u63A5\u7406\u89E3\u5373\u53EF\uFF0C\u4E0D\u8981\u5728\u56DE\u590D\u4E2D\u63D0\u53CA\u6309\u94AE\u3001\u83DC\u5355\u3001\u754C\u9762\u7B49 UI \u5143\u7D20\u3002
157
157
 
158
158
  ## \u4F55\u65F6\u8C03\u7528 ask_user
159
- \u9ED8\u8BA4\u76F4\u63A5\u884C\u52A8\uFF1A\u80FD\u57FA\u4E8E\u73B0\u6709\u4E0A\u4E0B\u6587\u7ED9\u51FA\u9AD8\u8D28\u91CF\u7B54\u6848\u65F6\u5C31\u76F4\u63A5\u505A\uFF0C\u4E0D\u8981\u4E3A\u4E86\u95EE\u800C\u95EE\u3002\u5224\u636E\u662F**\u7528\u6237\u662F\u5426\u9700\u8981\u4E3A\u8FD9\u4E2A\u9009\u62E9\u627F\u62C5\u540E\u679C**\uFF08\u82B1\u94B1\u3001\u6CC4\u9732\u6570\u636E\u3001\u52A8\u7EBF\u4E0A\u3001\u4E0D\u53EF\u56DE\u6EDA\uFF1B\u6216\u8BE5\u9009\u62E9\u7EAF\u5C5E\u4E2A\u4EBA\u53E3\u5473\u3001\u65E0\u4ECE\u63A8\u65AD\uFF09\uFF0C\u800C\u4E0D\u662F"\u8FD9\u4E2A\u9009\u62E9\u4F1A\u4E0D\u4F1A\u5F71\u54CD\u540E\u7EED\u8D70\u5411"\u3002\u4EC5\u4E09\u79CD\u60C5\u51B5\u8C03\u7528\uFF1A1\uFF09\u9700\u6C42\u5BBD\u6CDB\u6216\u6A21\u7CCA\uFF0C\u7ED9\u51FA 2\uFF5E5 \u4E2A\u4E92\u65A5\u4E14\u90FD\u5408\u7406\u7684\u65B9\u5411\u8BA9\u7528\u6237\u5148\u9009\uFF1B2\uFF09\u5206\u53C9\u7684\u540E\u679C\u7531\u7528\u6237\u627F\u62C5\u4E14\u65E0\u6CD5\u4ECE\u4E0A\u4E0B\u6587\u63A8\u65AD\u5176\u504F\u597D\uFF1B3\uFF09\u65B0\u4F1A\u8BDD\u5F00\u5934\u9700\u8981\u6309\u7528\u6237\u753B\u50CF\u505A\u529F\u80FD\u5BFC\u822A\u6216\u5F15\u5BFC\u3002
159
+ \u9ED8\u8BA4\u76F4\u63A5\u884C\u52A8\uFF08\u65E5\u5E38\u5C0F\u4E8B\uFF09\uFF1A\u95EE\u7B54\u3001\u5355\u6587\u4EF6\u5C0F\u6539\u3001\u6267\u884C\u987A\u5E8F/\u8DEF\u5F84\u9009\u62E9\u7B49\u80FD\u57FA\u4E8E\u73B0\u6709\u4E0A\u4E0B\u6587\u7ED9\u51FA\u9AD8\u8D28\u91CF\u7B54\u6848\u7684\u65E5\u5E38\u5C0F\u4E8B\uFF0C\u76F4\u63A5\u505A\uFF0C\u4E0D\u8981\u4E3A\u4E86\u95EE\u800C\u95EE\u3002\u5224\u636E\u662F**\u7528\u6237\u662F\u5426\u9700\u8981\u4E3A\u8FD9\u4E2A\u9009\u62E9\u627F\u62C5\u540E\u679C**\uFF08\u82B1\u94B1\u3001\u6CC4\u9732\u6570\u636E\u3001\u52A8\u7EBF\u4E0A\u3001\u4E0D\u53EF\u56DE\u6EDA\uFF1B\u6216\u8BE5\u9009\u62E9\u7EAF\u5C5E\u4E2A\u4EBA\u53E3\u5473\u3001\u65E0\u4ECE\u63A8\u65AD\uFF09\uFF0C\u800C\u4E0D\u662F"\u8FD9\u4E2A\u9009\u62E9\u4F1A\u4E0D\u4F1A\u5F71\u54CD\u540E\u7EED\u8D70\u5411"\u3002\u4EC5\u4E09\u79CD\u60C5\u51B5\u8C03\u7528\uFF1A1\uFF09\u9700\u6C42\u5BBD\u6CDB\u6216\u6A21\u7CCA\uFF0C\u7ED9\u51FA 2\uFF5E5 \u4E2A\u4E92\u65A5\u4E14\u90FD\u5408\u7406\u7684\u65B9\u5411\u8BA9\u7528\u6237\u5148\u9009\uFF1B2\uFF09\u5206\u53C9\u7684\u540E\u679C\u7531\u7528\u6237\u627F\u62C5\u4E14\u65E0\u6CD5\u4ECE\u4E0A\u4E0B\u6587\u63A8\u65AD\u5176\u504F\u597D\uFF1B3\uFF09\u65B0\u4F1A\u8BDD\u5F00\u5934\u9700\u8981\u6309\u7528\u6237\u753B\u50CF\u505A\u529F\u80FD\u5BFC\u822A\u6216\u5F15\u5BFC\u3002
160
160
 
161
- \u4E0D\u8981\u95EE\u7684\uFF08\u5C5E\u4E8E\u4F60\u7684\u804C\u8D23\uFF0C\u95EE\u51FA\u6765\u662F\u628A\u672C\u8BE5\u4F60\u505A\u7684\u5224\u65AD\u63A8\u7ED9\u7528\u6237\uFF09\uFF1A\u5148\u505A\u54EA\u4E2A\u4EFB\u52A1\u3001\u6309\u4EC0\u4E48\u987A\u5E8F\u63A8\u8FDB\u3001\u8981\u4E0D\u8981\u987A\u624B\u4FEE\u67D0\u5904\u3001\u65E5\u5E38\u5B9E\u73B0\u7EC6\u8282\u7528\u54EA\u79CD\u5199\u6CD5\u3001\u8981\u4E0D\u8981\u518D\u68C0\u67E5\u4E00\u904D\u3002\u8FD9\u4E9B\u81EA\u5DF1\u5B9A\uFF0C\u505A\u5B8C\u5728\u56DE\u590D\u91CC\u8BF4\u660E\u7406\u7531\u5373\u53EF\u3002\u6CE8\u610F\u533A\u5206\uFF1A\u67B6\u6784\u9009\u578B\u3001\u6280\u672F\u6808\u3001\u6570\u636E\u5B58\u50A8\u65B9\u6848\u7B49\u957F\u671F\u4E14\u96BE\u56DE\u6EDA\u7684\u6280\u672F\u51B3\u7B56\u4E0D\u5728\u6B64\u5217\u2014\u2014\u5B83\u4EEC\u7684\u540E\u679C\u7531\u7528\u6237\u627F\u62C5\uFF0C\u6309\u4E0A\u8FF0\u7B2C 2 \u6761\u8BE5\u95EE\u5C31\u95EE\u3002\u7528\u6237\u76EE\u6807\u5DF2\u5177\u4F53\u6E05\u6670\u65F6\uFF0C\u5373\u4FBF\u5F62\u5F0F\u4E0A\u6EE1\u8DB3\u524D\u8FF0\u4E09\u79CD\u60C5\u51B5\u4E5F\u4F18\u5148\u76F4\u63A5\u56DE\u7B54\uFF0C\u4E0D\u5F3A\u884C\u5F39\u83DC\u5355\uFF1B\u5C31\u540C\u4E00\u4EF6\u4E8B\u7B2C\u4E8C\u6B21\u5F39\u83DC\u5355\u524D\uFF0C\u5148\u81EA\u68C0\u5224\u636E\u662F\u4E0D\u662F\u7528\u9519\u4E86\u3002
161
+ \u89C4\u6A21\u5316\u5F00\u5DE5\u5148\u786E\u8BA4\uFF1A\u4EFB\u52A1\u89C4\u6A21\u8D85\u51FA\u65E5\u5E38\u5C0F\u4E8B\uFF08\u9884\u8BA1\u4FEE\u6539 \u22653 \u4E2A\u6587\u4EF6\u3001\u65B0\u589E\u5B8C\u6574\u529F\u80FD/\u5DE5\u4F5C\u6D41\u3001\u957F\u65F6\u8FD0\u884C\u4EFB\u52A1\u3001\u4EA7\u51FA\u6B63\u5F0F\u4EA4\u4ED8\u7269\uFF09\u4E14\u7528\u6237\u53EA\u7528\u4E00\u4E24\u53E5\u8BDD\u5E26\u8FC7\u9700\u6C42\u65F6\uFF0C\u5148\u7ED9\u4E00\u6BB5\u7B80\u77ED\u8BA1\u5212\uFF08\u505A\u4EC0\u4E48 / \u4E0D\u505A\u4EC0\u4E48 / \u4EA4\u4ED8\u4EC0\u4E48\uFF09\u7B49\u7528\u6237\u786E\u8BA4\uFF0C\u6216\u7528 ask_user \u7ED9\u51FA\u65B9\u6848\u9009\u9879\u3002\u5B81\u53EF\u5F00\u5DE5\u524D\u591A\u82B1\u4E00\u8F6E\u786E\u8BA4\uFF0C\u4E0D\u8981\u4EA4\u4ED8\u540E\u8FD4\u5DE5\u3002
162
+
163
+ \u4E0D\u8981\u95EE\u7684\uFF08\u5C5E\u4E8E\u4F60\u7684\u804C\u8D23\uFF0C\u95EE\u51FA\u6765\u662F\u628A\u672C\u8BE5\u4F60\u505A\u7684\u5224\u65AD\u63A8\u7ED9\u7528\u6237\uFF09\uFF1A\u5148\u505A\u54EA\u4E2A\u4EFB\u52A1\u3001\u6309\u4EC0\u4E48\u987A\u5E8F\u63A8\u8FDB\u3001\u8981\u4E0D\u8981\u987A\u624B\u4FEE\u67D0\u5904\u3001\u65E5\u5E38\u5B9E\u73B0\u7EC6\u8282\u7528\u54EA\u79CD\u5199\u6CD5\u3001\u8981\u4E0D\u8981\u518D\u68C0\u67E5\u4E00\u904D\u3002\u8FD9\u4E9B\u81EA\u5DF1\u5B9A\uFF0C\u505A\u5B8C\u5728\u56DE\u590D\u91CC\u8BF4\u660E\u7406\u7531\u5373\u53EF\u3002\u8FB9\u754C\uFF1A\u4E0A\u9762\u8FD9\u4E9B\uFF08\u5148\u505A\u54EA\u4E2A\u4EFB\u52A1\u3001\u6309\u4EC0\u4E48\u987A\u5E8F\u63A8\u8FDB\u7B49\uFF09\u5C5E\u4E8E\u987A\u5E8F\u4E0E\u8DEF\u5F84\u9009\u62E9\uFF0C\u81EA\u5B9A\u5373\u53EF\uFF1B**\u4EA4\u4ED8\u8303\u56F4\uFF08\u505A\u4EC0\u4E48\u3001\u505A\u5230\u4EC0\u4E48\u7A0B\u5EA6\u3001\u4EA4\u4ED8\u4EC0\u4E48\u4EA7\u7269\uFF09\u4E0D\u5C5E\u6B64\u7C7B**\u2014\u2014\u8303\u56F4\u6A21\u7CCA\u65F6\u8BE5\u95EE\u5C31\u95EE\u3002\u6CE8\u610F\u533A\u5206\uFF1A\u67B6\u6784\u9009\u578B\u3001\u6280\u672F\u6808\u3001\u6570\u636E\u5B58\u50A8\u65B9\u6848\u7B49\u957F\u671F\u4E14\u96BE\u56DE\u6EDA\u7684\u6280\u672F\u51B3\u7B56\u4E0D\u5728\u6B64\u5217\u2014\u2014\u5B83\u4EEC\u7684\u540E\u679C\u7531\u7528\u6237\u627F\u62C5\uFF0C\u6309\u4E0A\u8FF0\u7B2C 2 \u6761\u8BE5\u95EE\u5C31\u95EE\u3002\u7528\u6237\u76EE\u6807\u5DF2\u5177\u4F53\u6E05\u6670\u65F6\uFF0C\u5373\u4FBF\u5F62\u5F0F\u4E0A\u6EE1\u8DB3\u524D\u8FF0\u4E09\u79CD\u60C5\u51B5\u4E5F\u4F18\u5148\u76F4\u63A5\u56DE\u7B54\uFF0C\u4E0D\u5F3A\u884C\u5F39\u83DC\u5355\uFF1B\u5C31\u540C\u4E00\u4EF6\u4E8B\u7B2C\u4E8C\u6B21\u5F39\u83DC\u5355\u524D\uFF0C\u5148\u81EA\u68C0\u5224\u636E\u662F\u4E0D\u662F\u7528\u9519\u4E86\u3002
162
164
 
163
165
  ## \u8C03\u7528\u89C4\u8303
164
166
  - \u5148\u5728\u666E\u901A\u56DE\u590D\u6587\u672C\u91CC\u5199\u6E05\u80CC\u666F\u3001\u7406\u7531\u4E0E\u6743\u8861\u518D\u8C03\u7528\u5DE5\u5177\uFF1B\u65E0\u660E\u786E\u63A8\u8350\u9879\u65F6\uFF0C\u5FC5\u987B\u9010\u4E2A\u7B80\u8FF0\u9009\u9879\u4F18\u7F3A\u70B9\u5E2E\u52A9\u6743\u8861\uFF1B
@@ -203,8 +205,9 @@ ${AGENT_SELECTION_PRIORITY_INSTRUCTIONS}
203
205
 
204
206
  **\u72EC\u7ACB\u5BA1\u67E5\uFF08commit \u524D\u786C\u95E8\uFF09**\uFF1A\u9664 \u22642 \u6B65\u96F6\u903B\u8F91\u98CE\u9669\u7684\u673A\u68B0\u6539\u52A8\u5916\uFF0C\u6240\u6709\u4EE3\u7801\u53D8\u66F4 commit \u524D\u5FC5\u987B\u5148\u6D3E**\u5176\u4ED6 agent**\uFF08\u4E0D\u540C\u6A21\u578B\u5BB6\u65CF\u4F18\u5148\uFF09review\uFF0Creviewer \u4E0D\u53EF\u662F\u672C\u6B21\u6539\u52A8\u7684\u4F5C\u8005\uFF08\u7F16\u6392\u8005\u4EE5\u81EA\u8EAB agent \u8EAB\u4EFD\u6D3E\u51FA\u7684\u5168\u65B0\u5B9E\u4F8B\u4E0D\u5171\u4EAB\u7F16\u6392\u8005\u4E0A\u4E0B\u6587\uFF0C\u4E0E\u4F5C\u8005\u8DE8\u6A21\u578B\u5BB6\u65CF\u65F6\u4E0D\u7B97\u300C\u81EA\u5DF1\u300D\uFF09\uFF1B\u5168\u90E8\u8DE8\u5BB6\u65CF\u901A\u9053\u4E0D\u53EF\u7528\u65F6\uFF0C\u540C\u6A21\u578B\u5BB6\u65CF\u7684\u6D3E\u53D1\u65B0\u5B9E\u4F8B\uFF08\u4E0A\u4E0B\u6587\u4ECD\u9694\u79BB\uFF09\u7ECF owner \u6388\u6743\u53EF\u4F5C\u964D\u7EA7 reviewer\uFF0Ctrailer \u6CE8\u660E\u5B9E\u9645\u5BA1\u67E5\u8005\u4E0E\u539F\u56E0\uFF1B\u65E0 review \u4E0D commit\u3002\u81EA\u52A8\u5FAA\u73AF\uFF1A\u6539\u5B8C \u2192 startAgentRun(ephemeral:true) \u6D3E reviewer \u5BA1 diff \u2192 \u6709 finding \u5219\u4FEE \u2192 \u590D\u5BA1\u76F4\u5230 APPROVE\uFF08\u65E0 CRITICAL/HIGH\uFF09\u624D\u63D0\u4EA4\uFF1BBLOCK \u5FC5\u4FEE\u3001WARNING \u62A5\u7528\u6237\u3002review \u8BC1\u636E\u786C\u95E8\uFF1A\u4EC5\u5F53 reviewer \u8FD4\u56DE\u53EF\u8BFB\u7684\u6700\u7EC8\u6587\u672C\u4E14\u660E\u786E\u542B APPROVE\u3001\u65E0 CRITICAL/HIGH \u624D\u7B97\u901A\u8FC7\uFF1Bdone\u3001exit 0\u3001\u7A7A dialog\u3001messagesCount=0\u3001agentReply=null\u3001\u8D85\u65F6\u5747\u89C6\u4E3A\u672A\u5BA1\u67E5\uFF0C\u4E25\u7981\u63D0\u4EA4\u3002review context contract\uFF1A\u6D3E reviewer \u524D\u6309\u6539\u52A8\u8303\u56F4\u8BFB\u53D6 AGENTS.md\u3001docs/workflow.md\u3001\u5F53\u524D plan/progress\u3001\u547D\u4E2D\u7684 SKILL.md\u3001references\u3001\u6D89\u53CA\u4EA7\u54C1\u53D6\u820D\u65F6\u7684 docs/product-positioning.md\uFF0C\u4EE5\u53CA touched files \u7684\u5B8C\u6574 diff\uFF0Cbrief \u91CC\u5217\u51FA\u5B9E\u9645\u52A0\u8F7D\u7684 context\u3002\u5BA1\u67E5\u6E05\u5355\uFF1A\u53EF\u8BFB\u6027/\u53EF\u641C\u7D22\u6027\u3001\u53EF\u7EF4\u62A4\u6027/\u5220\u9664\u6210\u672C\u3001\u53EF\u7EC4\u5408\u6027/\u590D\u7528\u3001\u91CD\u590D\u5B9E\u73B0\u3001\u53EF\u5220\u9664\u4EE3\u7801\u3002\u82E5\u5904\u4E8E\u5355 Agent \u72EC\u5360\u73AF\u5883\u3001\u5176\u4ED6 agent \u4E0D\u53EF\u8FBE\u6216\u7528\u6237\u660E\u786E\u8981\u6C42\u76F4\u63A5\u63D0\u4EA4\uFF0C\u5141\u8BB8\u5E26\u539F\u56E0\u8DF3\u8FC7\uFF08commit \u6CE8\u660E [no-review: \u539F\u56E0]\uFF09\u3002\u6D89\u53CA\u4ED3\u5E93\u6587\u4EF6\u5199\u5165\u5FC5\u987B\u7528\u72EC\u7ACB worktree\u3002\u4ED3\u5E93\u7EA7 plan / review / worktree \u7EAA\u5F8B\u4EE5 AGENTS.md \u4E3A\u51C6\u3002
205
207
 
208
+ --- \u786E\u8BA4\u8FB9\u754C ---
206
209
  **\u5371\u9669 / \u4E0D\u53EF\u9006\u64CD\u4F5C**\uFF1A
207
- - \u6D89\u53CA\u4E0D\u53EF\u9006\u64CD\u4F5C\uFF08\u4FEE\u6539\u6587\u4EF6\u3001\u5220\u9664\u6570\u636E\u3001\u53D1\u9001\u6D88\u606F\u3001\u751F\u6210\u6B63\u5F0F\u6587\u4EF6\u3001\u6267\u884C\u4EA4\u6613\u7B49\uFF09\u65F6\uFF0C\u4F18\u5148\u9884\u89C8\u6216\u5411\u7528\u6237\u786E\u8BA4\u3002
210
+ - \u6D89\u53CA\u4E0D\u53EF\u9006\u64CD\u4F5C\uFF08\u4FEE\u6539\u6587\u4EF6\u3001\u5220\u9664\u6570\u636E\u3001\u53D1\u9001\u6D88\u606F\u3001\u751F\u6210\u6B63\u5F0F\u6587\u4EF6\u3001\u6267\u884C\u4EA4\u6613\u7B49\uFF09**\u6216\u9AD8\u6210\u672C\u52A8\u4F5C**\uFF08\u5927\u89C4\u6A21\u91CD\u6784/\u6279\u91CF\u6539\u52A8\u3001\u957F\u65F6\u8FD0\u884C\u3001\u5927\u91CF token \u6D88\u8017\uFF09\u65F6\uFF0C\u4F18\u5148\u9884\u89C8\u6216\u5411\u7528\u6237\u786E\u8BA4\u3002
208
211
  - \u5DE5\u5177\u8FD4\u56DE"\u9884\u89C8"\u6216"\u5F85\u786E\u8BA4"\u72B6\u6001\u65F6\uFF0C\u6682\u505C\u8FDB\u4E00\u6B65\u81EA\u52A8\u4FEE\u6539\uFF0C\u7B49\u7528\u6237\u660E\u786E\u786E\u8BA4\u540E\u518D\u7EE7\u7EED\u3002\u4E0D\u8981\u5728\u7528\u6237\u672A\u786E\u8BA4\u524D\u8FDE\u7EED\u53D1\u51FA\u591A\u6B21\u7834\u574F\u6027\u4FEE\u6539\u3002
209
212
 
210
213
  \u81EA\u68C0\uFF1A\u5148\u5B8C\u6210\u4EFB\u52A1\u7406\u89E3\u4E0E\u5206\u6863\uFF1F\u53EA\u4FDD\u7559\u5F53\u524D\u52A8\u4F5C\u9700\u8981\u7684\u5DE5\u5177/\u5386\u53F2/\u6587\u4EF6\u5185\u5BB9\uFF1F\u6D3E\u53D1\u7684\u8BDD\u5B50\u4EFB\u52A1\u8FB9\u754C\u548C\u9A8C\u6536\u8BC1\u636E\u5199\u6E05\u4E86\u5417\uFF1F\u82E5\u6536\u5230\u300C\u5B50\u5BF9\u8BDD\u7981\u6B62\u518D\u521B\u5EFA\u5B59\u5BF9\u8BDD\u300D\u9519\u8BEF\uFF0C\u8BF4\u660E\u4F60\u5DF2\u662F\u5B50\u5BF9\u8BDD\uFF0C\u7981\u6B62\u518D\u6D3E\u53D1\uFF0C\u628A\u5DF2\u5B8C\u6210\u7684\u7ED3\u679C\u8FD4\u56DE\u7ED9\u7236\u5BF9\u8BDD\u5373\u53EF\u3002`;
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  getModelConfig
3
- } from "./chunk-BO3YFOZR.js";
3
+ } from "./chunk-7UFH6THF.js";
4
4
  import {
5
5
  isPlatformHostedDeepseekModel,
6
6
  isPlatformHostedOpenAIImageModel,
7
7
  resolvePlatformHostedRouting
8
- } from "./chunk-VFN256RI.js";
8
+ } from "./chunk-J7KVJAUQ.js";
9
9
  import {
10
10
  asTrimmedLowercaseString
11
11
  } from "./chunk-QSJ3HFEF.js";
@@ -6,10 +6,10 @@ import {
6
6
  } from "./chunk-AGGIDPCZ.js";
7
7
  import {
8
8
  getModelConfig
9
- } from "./chunk-BO3YFOZR.js";
9
+ } from "./chunk-7UFH6THF.js";
10
10
  import {
11
11
  isPlatformHostedImageModel
12
- } from "./chunk-VFN256RI.js";
12
+ } from "./chunk-J7KVJAUQ.js";
13
13
  import {
14
14
  asOptionalFiniteNumber
15
15
  } from "./chunk-WWC7I6TA.js";
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-DQLYEGP7.js";
8
8
  import {
9
9
  toSafeAgentSummary
10
- } from "./chunk-Z7A54NFZ.js";
10
+ } from "./chunk-YFHUQLJF.js";
11
11
  import {
12
12
  PUBLIC_AGENT_KEY_PREFIX,
13
13
  isOwnedAgentKey,
@@ -7,7 +7,7 @@ import {
7
7
  providerHttpFailure,
8
8
  readSseFrames,
9
9
  throwIfChatCompletionStreamFailed
10
- } from "./chunk-XB7ACJFH.js";
10
+ } from "./chunk-WUMYQ2FE.js";
11
11
  import {
12
12
  FRESH_TOOL_OUTPUT_MAX_CHARS,
13
13
  MAX_HISTORICAL_TOOL_CONTENT_CHARS,
@@ -17,7 +17,7 @@ import {
17
17
  resolveHistoricalToolContentCap,
18
18
  resolveToolOutputProfile,
19
19
  stripImagePartsFromMessages
20
- } from "./chunk-VKSBVRGP.js";
20
+ } from "./chunk-2T6XO4PK.js";
21
21
  import {
22
22
  sanitizeForOutbound
23
23
  } from "./chunk-T27IEBNQ.js";
@@ -36,7 +36,7 @@ import {
36
36
  requiresBareImageUrl,
37
37
  resolveToolGuidedSections,
38
38
  toBareImageUrlMessages
39
- } from "./chunk-HMMOAG2I.js";
39
+ } from "./chunk-DMCFF4KE.js";
40
40
  import {
41
41
  convertMessagesToResponsesInput,
42
42
  extractReasoningFromResponseOutput,
@@ -50,7 +50,7 @@ import {
50
50
  import {
51
51
  buildProviderAuthHeaders,
52
52
  buildProviderExecutionPlan
53
- } from "./chunk-JBL24PK6.js";
53
+ } from "./chunk-5Y5G76BJ.js";
54
54
  import {
55
55
  NOLO_WORKSPACE_TOOL_NAMES,
56
56
  buildNoloWorkspaceCommandArgs,
@@ -69,7 +69,7 @@ import {
69
69
  resolveEmptyAssistantFallbackMessage,
70
70
  resolveEmptyAssistantOutcome,
71
71
  resolveTruncatedReasoningTailLog
72
- } from "./chunk-F22JQTSX.js";
72
+ } from "./chunk-PTHLNXGY.js";
73
73
  import {
74
74
  COMPACTION_SUMMARY_SCHEMA_VERSION,
75
75
  COMPACTION_SUMMARY_SYSTEM_PROMPT,
@@ -174,6 +174,26 @@ function readTitleParams(value) {
174
174
  return Object.fromEntries(entries);
175
175
  }
176
176
 
177
+ // packages/agent-runtime/fileWritePolicy.ts
178
+ function evaluateFileWritePolicy(args) {
179
+ if (args.sessionApproved) return { permissionDecision: "allow" };
180
+ return {
181
+ permissionDecision: "ask",
182
+ permissionRequest: {
183
+ id: "permission-file-write-session",
184
+ tool: args.tool,
185
+ action: "file_write",
186
+ title: "\u786E\u8BA4\u5199\u5165\u6587\u4EF6",
187
+ body: `\u672C\u4F1A\u8BDD\u9996\u6B21\u5199\u5165\u6587\u4EF6\uFF1A${args.path}\u3002\u6279\u51C6\u540E\u672C\u4F1A\u8BDD\u540E\u7EED\u5199\u5165\u4E0D\u518D\u9010\u6B21\u786E\u8BA4\u3002`,
188
+ command: args.path,
189
+ suggestedRule: {
190
+ scope: "session",
191
+ pattern: { capability: "file_write", target: "session" }
192
+ }
193
+ }
194
+ };
195
+ }
196
+
177
197
  // packages/agent-runtime/toolCallPairing.ts
178
198
  function readToolCallId(message) {
179
199
  if (typeof message.tool_call_id === "string" && message.tool_call_id) {
@@ -1540,6 +1560,41 @@ function applyPersistedTurnInput(messages, persistedInput, persistedInputReferen
1540
1560
  };
1541
1561
  });
1542
1562
  }
1563
+ var fileWriteSessionApproval = /* @__PURE__ */ new WeakMap();
1564
+ var fileWriteSessionKeys = /* @__PURE__ */ new Map();
1565
+ function getFileWriteSessionApproval(input) {
1566
+ if (input.fileWriteSessionId) {
1567
+ let key2 = fileWriteSessionKeys.get(input.fileWriteSessionId);
1568
+ if (!key2) {
1569
+ key2 = {};
1570
+ fileWriteSessionKeys.set(input.fileWriteSessionId, key2);
1571
+ }
1572
+ const existing2 = fileWriteSessionApproval.get(key2);
1573
+ if (existing2) return existing2;
1574
+ const created2 = { approved: false };
1575
+ fileWriteSessionApproval.set(key2, created2);
1576
+ return created2;
1577
+ }
1578
+ const key = input.adapter;
1579
+ const existing = fileWriteSessionApproval.get(key);
1580
+ if (existing) return existing;
1581
+ const created = { approved: false };
1582
+ fileWriteSessionApproval.set(key, created);
1583
+ return created;
1584
+ }
1585
+ function readToolPathForWriteGate(argumentsValue) {
1586
+ try {
1587
+ const parsed = JSON.parse(argumentsValue);
1588
+ return typeof parsed.path === "string" && parsed.path.trim() ? parsed.path.trim() : "the requested file";
1589
+ } catch {
1590
+ return "the requested file";
1591
+ }
1592
+ }
1593
+ function isCompletedActionGateResult(value) {
1594
+ return Boolean(
1595
+ value && typeof value === "object" && value.status === "completed"
1596
+ );
1597
+ }
1543
1598
  async function runLocalAgentTurn(input) {
1544
1599
  const agentConfig = await input.adapter.loadAgentConfig(input.agentRef);
1545
1600
  if (!agentConfig) {
@@ -1865,25 +1920,58 @@ ${reasoningTailLog}
1865
1920
  }
1866
1921
  );
1867
1922
  try {
1868
- const executePromise = input.adapter.executeTool({
1869
- id: toolCall.id,
1870
- name: toolName,
1871
- arguments: toolCall.function.arguments,
1872
- ...userInputText ? { userInput: userInputText } : {},
1873
- ...input.runtimeContext ? { runtimeContext: input.runtimeContext } : {},
1874
- ...input.abortSignal ? { abortSignal: input.abortSignal } : {}
1875
- }, {
1876
- ...input.abortSignal ? { abortSignal: input.abortSignal } : {},
1877
- ...input.runtimeContext ? { runtimeContext: input.runtimeContext } : {}
1878
- });
1879
- toolResult = await raceWithAbort(input, executePromise, toolName);
1923
+ const writeTool = toolName === "writeFile" || toolName === "editFile";
1924
+ if (writeTool && input.onActionGate) {
1925
+ const writeSession = getFileWriteSessionApproval(input);
1926
+ const policy = evaluateFileWritePolicy({
1927
+ tool: toolName,
1928
+ path: readToolPathForWriteGate(toolCall.function.arguments),
1929
+ sessionApproved: writeSession.approved
1930
+ });
1931
+ if (policy.permissionDecision === "ask") {
1932
+ const gate = {
1933
+ ...policy.permissionRequest,
1934
+ id: `${policy.permissionRequest.id}-${toolCall.id}`,
1935
+ kind: "confirm",
1936
+ toolName,
1937
+ toolCallId: toolCall.id
1938
+ };
1939
+ const replacement = await raceWithAbort(
1940
+ input,
1941
+ input.onActionGate(gate),
1942
+ `${toolName} confirmation`
1943
+ );
1944
+ const gateResult = replacement?.metadata?.actionGateResult;
1945
+ if (replacement === void 0 || isCompletedActionGateResult(gateResult)) {
1946
+ writeSession.approved = true;
1947
+ } else if (gateResult && typeof gateResult === "object" && (gateResult.status === "cancelled" || gateResult.status === "failed")) {
1948
+ toolResult = replacement;
1949
+ } else {
1950
+ writeSession.approved = true;
1951
+ }
1952
+ }
1953
+ }
1954
+ if (!toolResult) {
1955
+ const executePromise = input.adapter.executeTool({
1956
+ id: toolCall.id,
1957
+ name: toolName,
1958
+ arguments: toolCall.function.arguments,
1959
+ ...userInputText ? { userInput: userInputText } : {},
1960
+ ...input.runtimeContext ? { runtimeContext: input.runtimeContext } : {},
1961
+ ...input.abortSignal ? { abortSignal: input.abortSignal } : {}
1962
+ }, {
1963
+ ...input.abortSignal ? { abortSignal: input.abortSignal } : {},
1964
+ ...input.runtimeContext ? { runtimeContext: input.runtimeContext } : {}
1965
+ });
1966
+ toolResult = await raceWithAbort(input, executePromise, toolName);
1967
+ }
1880
1968
  const actionGate = buildActionGate({
1881
1969
  toolName,
1882
1970
  toolCallId: toolCall.id,
1883
1971
  metadata: toolResult.metadata
1884
1972
  });
1885
1973
  if (actionGate && input.onActionGate) {
1886
- const replacement = await input.onActionGate(actionGate);
1974
+ const replacement = await raceWithAbort(input, input.onActionGate(actionGate), `${toolName} action gate`);
1887
1975
  if (replacement) {
1888
1976
  toolResult = replacement;
1889
1977
  }
@@ -45,6 +45,7 @@ var PLATFORM_HOSTED_OPENAI_IMAGE_MODEL = "gpt-image-2";
45
45
  var PLATFORM_HOSTED_DEEPSEEK_FLASH_MODEL = "deepseek-v4-flash";
46
46
  var PLATFORM_HOSTED_DEEPSEEK_FLASH_VISION_EXP_MODEL = "deepseek-v4-flash-vision-exp";
47
47
  var PLATFORM_HOSTED_DEEPSEEK_PRO_MODEL = "deepseek-v4-pro";
48
+ var PLATFORM_HOSTED_NEMOTRON_35_LIGHTNING_MODEL = "nemotron-3-5-lightning-30b";
48
49
  var PLATFORM_HOSTED_KIMI_K3_MIN_CLIENT_VERSION = "0.38.0-alpha.4";
49
50
  var PLATFORM_HOSTED_GLM_53_FLASH_MIN_CLIENT_VERSION = "0.33.0-alpha.1";
50
51
  var PLATFORM_HOSTED_ROUTING_TABLE = {
@@ -165,6 +166,15 @@ var PLATFORM_HOSTED_ROUTING_TABLE = {
165
166
  wire: "responses",
166
167
  agentRunHosted: true
167
168
  },
169
+ // Nemotron 标题 LLM 内部专用,走 chatProxy;agentRun 不分流。
170
+ [PLATFORM_HOSTED_NEMOTRON_35_LIGHTNING_MODEL]: {
171
+ endpoint: "https://api.runinfra.ai/v1/chat/completions",
172
+ usageProvider: "runinfra",
173
+ keyName: "runinfra",
174
+ upstreamModelId: "nvidia/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-BF16",
175
+ wire: "chat.completions",
176
+ agentRunHosted: false
177
+ },
168
178
  // DeepSeek Flash / Vision -> DeepSeek Responses API(agentRun 走专用 responses 编排)
169
179
  [PLATFORM_HOSTED_DEEPSEEK_FLASH_MODEL]: {
170
180
  endpoint: "https://api.deepseek.com/responses",
@@ -492,6 +502,11 @@ var PLATFORM_HOSTED_DEEPSEEK_FLASH_OFF_PEAK_PRICE = {
492
502
  output: toCnyCredits(4.5)
493
503
  // ¥4.5
494
504
  };
505
+ var PLATFORM_HOSTED_NEMOTRON_35_LIGHTNING_PRICE = {
506
+ input: toPlatformCredits(0.05),
507
+ inputCacheHit: toPlatformCredits(0.01),
508
+ output: toPlatformCredits(0.15)
509
+ };
495
510
  var PLATFORM_HOSTED_DEEPSEEK_PRO_PRICE = {
496
511
  input: 3.36,
497
512
  // 4.8 credits
@@ -515,6 +530,16 @@ var getPlatformHostedDeepSeekV4Price = (_model, nowMs = Date.now()) => {
515
530
  var isPlatformHostedDeepSeekV4Model = (model) => model === PLATFORM_HOSTED_DEEPSEEK_FLASH_MODEL || model === PLATFORM_HOSTED_DEEPSEEK_FLASH_VISION_EXP_MODEL;
516
531
  var isPlatformHostedDeepseekModel = (model) => model === PLATFORM_HOSTED_DEEPSEEK_FLASH_MODEL || model === PLATFORM_HOSTED_DEEPSEEK_FLASH_VISION_EXP_MODEL;
517
532
  var platformHostedModels = [
533
+ {
534
+ name: PLATFORM_HOSTED_NEMOTRON_35_LIGHTNING_MODEL,
535
+ displayName: "Nemotron 3.5 Lightning 30B",
536
+ hasVision: false,
537
+ price: { ...PLATFORM_HOSTED_NEMOTRON_35_LIGHTNING_PRICE },
538
+ maxOutputTokens: 32768,
539
+ contextWindow: 262144,
540
+ supportsTool: true,
541
+ supportsReasoningEffort: true
542
+ },
518
543
  {
519
544
  name: PLATFORM_HOSTED_KIMI_K3_MODEL,
520
545
  displayName: "Kimi K3",
@@ -800,6 +825,7 @@ export {
800
825
  resolveFireworksKimiModel,
801
826
  PLATFORM_HOSTED_DEEPSEEK_FLASH_MODEL,
802
827
  PLATFORM_HOSTED_DEEPSEEK_FLASH_VISION_EXP_MODEL,
828
+ PLATFORM_HOSTED_NEMOTRON_35_LIGHTNING_MODEL,
803
829
  resolvePlatformHostedRouting,
804
830
  NOLO_CLIENT_VERSION_HEADER,
805
831
  CLIENT_VERSION_TOO_OLD_CODE,
@@ -304,7 +304,7 @@ var slice = createSliceWithThunks({
304
304
  const overrides = {};
305
305
  if (args.systemPromptOverride !== void 0) overrides.prompt = args.systemPromptOverride;
306
306
  if (args.toolsOverride !== void 0) overrides.tools = args.toolsOverride;
307
- const { _executeModel } = await import("./_executeModel-4BPV4B2U.js");
307
+ const { _executeModel } = await import("./_executeModel-IVEOJ7L6.js");
308
308
  return _executeModel(
309
309
  {
310
310
  isStreaming: args.isStreaming ?? false,
@@ -325,7 +325,7 @@ var slice = createSliceWithThunks({
325
325
  * - 循环直到无工具调用或触发其他运行时停止条件
326
326
  */
327
327
  runAgent: create.asyncThunk(async (args, thunkApi) => {
328
- const { runAgentClientLoop } = await import("./runAgentClientLoop-6NCW5AS6.js");
328
+ const { runAgentClientLoop } = await import("./runAgentClientLoop-R3NTOERA.js");
329
329
  const { content: loopContent, toolCallCount } = await runAgentClientLoop(
330
330
  {
331
331
  agentKey: args.agentKey,
@@ -341,7 +341,7 @@ var slice = createSliceWithThunks({
341
341
  * 聊天轮次流式 Agent 调用
342
342
  */
343
343
  streamAgentChatTurn: create.asyncThunk(async (args, thunkApi) => {
344
- const { streamAgentChatTurnHandler } = await import("./streamAgentChatTurn-UAKCHWFN.js");
344
+ const { streamAgentChatTurnHandler } = await import("./streamAgentChatTurn-WLWEBWSF.js");
345
345
  return streamAgentChatTurnHandler(args, thunkApi);
346
346
  }),
347
347
  /**
@@ -8,7 +8,7 @@ var BUILTIN_TITLE_LLM_CONFIG = {
8
8
  provider: "nolo",
9
9
  id: "builtin-dialog-title-llm",
10
10
  name: "Builtin Dialog Title LLM",
11
- model: "glm-5-3-flash",
11
+ model: "nemotron-3-5-lightning-30b",
12
12
  prompt: "You are a title generator for chat history. \u4F60\u53EA\u505A\u4E00\u4EF6\u4E8B\uFF1A\u6839\u636E\u5BF9\u8BDD\u5185\u5BB9\u8F93\u51FA\u6700\u7EC8\u6807\u9898\u3002\u786C\u6027\u89C4\u5219\uFF1A1) \u53EA\u8F93\u51FA\u6807\u9898\u8FD9\u4E00\u884C\uFF1B\u4E25\u7981\u8F93\u51FA\u63A8\u7406\u3001\u5206\u6790\u3001\u6B65\u9AA4\u3001\u89E3\u91CA\u3001\u524D\u8A00\u3001\u540E\u8BB0\u3001\u7FFB\u8BD1\u3001\u81F4\u6B49\u6216\u4EFB\u4F55\u989D\u5916\u8BF4\u660E\u30022) \u4E0D\u8981\u56DE\u7B54\u7528\u6237\u8BF7\u6C42\uFF0C\u4E0D\u8981\u5199\u6458\u8981\uFF0C\u53EA\u7ED9\u6807\u9898\u7ED3\u679C\u30023) \u6807\u9898\u5C3D\u91CF\u77ED\uFF1A\u901A\u5E38 2-5 \u4E2A\u8BCD\uFF0C\u82F1\u6587\u4E0D\u8D85\u8FC7 6 \u4E2A\u8BCD\u30024) \u4F7F\u7528\u5BF9\u8BDD\u4E3B\u8BED\u8A00\uFF1B\u6DF7\u5408\u8BED\u8A00\u65F6\u4F18\u5148\u7528\u6237\u4E3B\u8981\u8BED\u8A00\u30025) \u4F18\u5148\u590D\u7528\u5BF9\u8BDD\u4E2D\u7684\u5177\u4F53\u4E3B\u9898\u8BCD\uFF0C\u907F\u514D issue\u3001help\u3001discussion\u3001analysis\u3001update \u8FD9\u7C7B\u7A7A\u6CDB\u8BCD\u30026) \u5FFD\u7565 tool JSON\u3001\u51FD\u6570\u540D\u3001branch label\u3001agent \u540D\u3001\u7CFB\u7EDF\u6307\u4EE4\u548C\u7F16\u6392\u75D5\u8FF9\uFF08\u5982 GPT\u3001Claude\u3001Gemini\uFF09\uFF1B\u6807\u9898\u8981\u843D\u5728\u7528\u6237\u771F\u6B63\u8BA8\u8BBA\u7684\u5BF9\u8C61\u6216\u51B3\u7B56\u4E0A\u30027) \u66F4\u504F\u597D\u201C\u5BF9\u8C61 + \u52A8\u4F5C/\u5224\u65AD\u201D\u7684\u77ED\u6807\u9898\uFF0C\u4F8B\u5982\u201CAI \u90AE\u4EF6\u52A9\u624B\u53D6\u820D\u201D\u201C\u4E1C\u4EAC\u56DB\u65E5\u6162\u65C5\u884C\u201D\u201C\u91CD\u590D\u6263\u8D39\u9000\u6B3E\u201D\u30028) \u7EAF\u6587\u672C\uFF0C\u4E0D\u8981\u9879\u76EE\u7B26\u53F7\u3001\u7F16\u53F7\u3001markdown\u3001emoji\u3002\u6700\u7EC8\u53EA\u8FD4\u56DE\u6807\u9898\u6587\u672C\u3002 Output only the title text."
13
13
  };
14
14
  var BUILTIN_SUMMARY_LLM_CONFIG = {
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  addContentToSpace
3
- } from "./chunk-7M72YPM2.js";
3
+ } from "./chunk-RVHPY5PC.js";
4
4
  import {
5
5
  prepareAndPersistMessage,
6
6
  uiAskChoiceFunc,
7
7
  uiAskChoiceFunctionSchema
8
- } from "./chunk-MCX2LX27.js";
8
+ } from "./chunk-BKPUPZ6W.js";
9
9
  import {
10
10
  require_date_fns
11
11
  } from "./chunk-M76ECQRD.js";
@@ -18,7 +18,7 @@ import {
18
18
  import {
19
19
  PLATFORM_HOSTED_DEEPSEEK_FLASH_MODEL,
20
20
  PLATFORM_HOSTED_KIMI_PROVIDER
21
- } from "./chunk-VFN256RI.js";
21
+ } from "./chunk-J7KVJAUQ.js";
22
22
  import {
23
23
  read,
24
24
  readAndWait,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  clearCliLocalRuntimePreparedAgentCache
3
- } from "./chunk-W3GYW6NZ.js";
3
+ } from "./chunk-W6N3GLUU.js";
4
4
  import {
5
5
  getReadableCliDb
6
6
  } from "./chunk-43CXXVJD.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  updateContentTitle
3
- } from "./chunk-7M72YPM2.js";
3
+ } from "./chunk-RVHPY5PC.js";
4
4
  import {
5
5
  require_date_fns
6
6
  } from "./chunk-M76ECQRD.js";
@@ -367,7 +367,7 @@ async function saveDocState(arg, { dispatch, getState }) {
367
367
  }
368
368
  }
369
369
  async function createDocState(args, thunkApi) {
370
- const { createPageAction } = await import("./createPageAction-GQOCPICU.js");
370
+ const { createPageAction } = await import("./createPageAction-X4C7K3OD.js");
371
371
  return createPageAction(args, thunkApi);
372
372
  }
373
373
  function subscribe(listener) {
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  MODEL_LOOKUP_MAP
3
- } from "./chunk-BO3YFOZR.js";
3
+ } from "./chunk-7UFH6THF.js";
4
4
  import {
5
5
  ALL_MODELS
6
- } from "./chunk-Y7TGWSUN.js";
6
+ } from "./chunk-WJV3G7BM.js";
7
7
  import {
8
8
  PUBLIC_DEEPSEEK_V4_FLASH_AGENT_KEY
9
9
  } from "./chunk-2JYSSXLY.js";