nolo-cli 0.49.0-alpha.1 → 0.49.0
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/{_executeModel-4BPV4B2U.js → _executeModel-KE4PQSZ3.js} +19 -19
- package/{agentDeleteCommand-KZSETRE3.js → agentDeleteCommand-Z67TJG3W.js} +10 -10
- package/{agentEmailCommands-C33KPOFP.js → agentEmailCommands-7LPIK7JE.js} +23 -23
- package/{agentListCommands-KVLURCS7.js → agentListCommands-5J2IM3IT.js} +12 -12
- package/{agentMachineCommands-ICOLSVID.js → agentMachineCommands-YXH6FXUQ.js} +11 -11
- package/{agentRecordCommands-OWKWVY3Y.js → agentRecordCommands-GZLCDVUS.js} +22 -22
- package/{agentRunCommand-FINKBYUN.js → agentRunCommand-WYH5Q54Q.js} +22 -22
- package/{agentRuntimeLocal-SIQYQGSK.js → agentRuntimeLocal-A6EF3RUY.js} +10 -10
- package/{agentSlice-VD3BAJAU.js → agentSlice-ARTDF6VD.js} +1 -1
- package/{appDeleteCommands-LSIIQFYN.js → appDeleteCommands-V2B7ZCLC.js} +10 -10
- package/{appDeployCommands-VYGKN7HU.js → appDeployCommands-AXQU44RD.js} +10 -10
- package/{appDeployStatusCommands-ODFHFUR7.js → appDeployStatusCommands-FWGSC2UM.js} +10 -10
- package/{appGetCommands-DPQY67UZ.js → appGetCommands-67R3RFZK.js} +10 -10
- package/{appListCommands-EFXENXWX.js → appListCommands-TTASJPGV.js} +10 -10
- package/{authCommand-WLWOEVYI.js → authCommand-QOPOEYEK.js} +7 -7
- package/{chatQueueReduxAdapter-N5432EP2.js → chatQueueReduxAdapter-6CAHUQ4O.js} +7 -7
- package/{chunk-Y7TGWSUN.js → chunk-56W233KG.js} +1 -1
- package/{chunk-C2WF2OY7.js → chunk-5WADL4O7.js} +1 -1
- package/{chunk-7M72YPM2.js → chunk-6SMMK7MD.js} +2 -2
- package/{chunk-4ZL2KBI7.js → chunk-757BGY6Y.js} +1 -1
- package/{chunk-IERBSHMR.js → chunk-AVKUDHJO.js} +3 -3
- package/{chunk-VKSBVRGP.js → chunk-CVT7L2WZ.js} +1 -1
- package/{chunk-MCX2LX27.js → chunk-EURF2SV6.js} +11 -11
- package/{chunk-7GRFFW7R.js → chunk-EXDR5D6X.js} +3 -3
- package/{chunk-AZ6DT2UD.js → chunk-GBADO3SM.js} +1 -1
- package/{chunk-XB7ACJFH.js → chunk-GDGIEGHV.js} +2 -2
- package/{chunk-QDNFRWAX.js → chunk-GFD7TIZU.js} +2 -2
- package/{chunk-QAG4ZQZ7.js → chunk-GFUOVFQA.js} +1 -1
- package/{chunk-RPO6WAZV.js → chunk-HCMFFI2G.js} +2 -2
- package/{chunk-4YAMAMNA.js → chunk-HPZL4IBN.js} +11 -10
- package/{chunk-S3HB4CQY.js → chunk-IKSFDJXB.js} +112 -19
- package/{chunk-W3RZLXMA.js → chunk-IKTHA3JH.js} +2 -2
- package/{chunk-VZGLZTG7.js → chunk-IRJVFYOH.js} +255 -79
- package/{chunk-6L6UPZNH.js → chunk-K524MUQC.js} +8 -8
- package/{chunk-HMMOAG2I.js → chunk-NN3AMBY3.js} +7 -4
- package/{chunk-BO3YFOZR.js → chunk-QDHZCAH3.js} +1 -1
- package/{chunk-33BBDA67.js → chunk-QUCSAM43.js} +106 -34
- package/{chunk-Z7A54NFZ.js → chunk-RU5D3B22.js} +1 -1
- package/{chunk-JBL24PK6.js → chunk-SP3DPVBH.js} +2 -2
- package/{chunk-F22JQTSX.js → chunk-SW7RCUGA.js} +2 -2
- package/{chunk-3YVCM5PE.js → chunk-U5Z7LFZF.js} +1 -1
- package/{chunk-OZ4JNDIL.js → chunk-UQWFIWHX.js} +1 -1
- package/{chunk-AV4Z57LV.js → chunk-VRJUIUIY.js} +2 -2
- package/{chunk-72COHDZR.js → chunk-WKOEOQCI.js} +13 -13
- package/{chunk-VFN256RI.js → chunk-WL3UOGYO.js} +25 -0
- package/{chunk-5JXRVJAC.js → chunk-WX5E6HZS.js} +3 -3
- package/{createAgentAutomationAction-IHKV53QC.js → createAgentAutomationAction-7BBF5YXN.js} +8 -8
- package/{createDialogAction-4ARDCKPP.js → createDialogAction-B5URPHP4.js} +9 -9
- package/{createPageAction-GQOCPICU.js → createPageAction-ISJKM5Q3.js} +8 -8
- package/{dialogCommands-YOTCP26N.js → dialogCommands-XHH4MVA4.js} +10 -10
- package/{dialogSlice-NX26W623.js → dialogSlice-NRAN5X7F.js} +7 -7
- package/{docCreateCommands-JVAMHES4.js → docCreateCommands-FUN2Z7HQ.js} +10 -10
- package/{docDeleteCommands-LW5DWICT.js → docDeleteCommands-OZDPFXPF.js} +10 -10
- package/{docReadCommands-AQOZS3I5.js → docReadCommands-FIPK7LE3.js} +10 -10
- package/{docStore-YAE7GYHZ.js → docStore-LUS7SWC3.js} +9 -9
- package/{docUpdateCommands-FFGGX5RG.js → docUpdateCommands-BZ5GKAN4.js} +10 -10
- package/{getPricing-JNOCWYDH.js → getPricing-HAU62AFM.js} +3 -3
- package/{handleSendMessageAction-7YKH4UBI.js → handleSendMessageAction-RA4OD2ZH.js} +7 -7
- package/index.js +47 -47
- package/{machineCommands-X7YMGFMB.js → machineCommands-WDAYEFBE.js} +22 -22
- package/{machineWsRunDispatch-KWWJ4HTI.js → machineWsRunDispatch-TPQ2FQVS.js} +22 -22
- package/{models-N4NXQ44D.js → models-4QF4BJVY.js} +2 -2
- package/package.json +1 -1
- package/{readlineWorkspace-GEZVQ7IM.js → readlineWorkspace-HN44KGIF.js} +198 -96
- package/{runAgentClientLoop-6NCW5AS6.js → runAgentClientLoop-ZYUI22EA.js} +17 -17
- package/{spaceCommands-7MJVL4XR.js → spaceCommands-OJ2567D4.js} +10 -10
- package/{spaceSlice-JVVDCGA3.js → spaceSlice-F7JCOZEF.js} +8 -8
- package/{streamAgentChatTurn-UAKCHWFN.js → streamAgentChatTurn-FNFMMGNN.js} +20 -20
- package/{tools-ROUITGAR.js → tools-QCDR3UMD.js} +12 -12
- package/{tuiSummaryLlmCaller-U4EGD2SX.js → tuiSummaryLlmCaller-LCGT62QC.js} +5 -5
- package/{updateDialogTitleAction-R4M6ZXCX.js → updateDialogTitleAction-Y3OGJWDB.js} +8 -8
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
PLATFORM_HOSTED_KIMI_K3_MODEL,
|
|
12
12
|
isFireworksKimiModel,
|
|
13
13
|
isNoloHostedProvider
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-WL3UOGYO.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\
|
|
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
|
-
\
|
|
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`;
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
refreshAntigravityOAuthToken,
|
|
5
5
|
refreshOpenAiCodexToken,
|
|
6
6
|
xaiRefresh
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-U5Z7LFZF.js";
|
|
8
8
|
import {
|
|
9
9
|
defaultLoopbackRequest
|
|
10
10
|
} from "./chunk-EADNWBAZ.js";
|
|
@@ -56,7 +56,7 @@ import {
|
|
|
56
56
|
import {
|
|
57
57
|
inlineImageUrlsForCustomProvider,
|
|
58
58
|
prepareTools
|
|
59
|
-
} from "./chunk-
|
|
59
|
+
} from "./chunk-HCMFFI2G.js";
|
|
60
60
|
import {
|
|
61
61
|
getServerProviderSecret
|
|
62
62
|
} from "./chunk-HS7MLR74.js";
|
|
@@ -65,7 +65,7 @@ import {
|
|
|
65
65
|
isAntigravityOAuthAgent,
|
|
66
66
|
readAntigravityProjectId,
|
|
67
67
|
resolveAntigravityCloudCodeBaseUrl
|
|
68
|
-
} from "./chunk-
|
|
68
|
+
} from "./chunk-757BGY6Y.js";
|
|
69
69
|
import {
|
|
70
70
|
deleteMemoryFunctionSchema,
|
|
71
71
|
readXPostFunc,
|
|
@@ -75,7 +75,7 @@ import {
|
|
|
75
75
|
rememberMemoryFunctionSchema,
|
|
76
76
|
resolveAgentRequiredPackIds,
|
|
77
77
|
setTodoListFunc
|
|
78
|
-
} from "./chunk-
|
|
78
|
+
} from "./chunk-WKOEOQCI.js";
|
|
79
79
|
import {
|
|
80
80
|
fetchWithTransientRetry,
|
|
81
81
|
isTransientFetchError
|
|
@@ -98,13 +98,13 @@ import {
|
|
|
98
98
|
prepareTokenUsageData,
|
|
99
99
|
resolveBuiltinPlatformAgentConfig,
|
|
100
100
|
runKeyed
|
|
101
|
-
} from "./chunk-
|
|
101
|
+
} from "./chunk-EURF2SV6.js";
|
|
102
102
|
import {
|
|
103
103
|
BUILTIN_TITLE_LLM_CONFIG
|
|
104
104
|
} from "./chunk-EVBFYPDC.js";
|
|
105
105
|
import {
|
|
106
106
|
fetchServerSyncedCredential
|
|
107
|
-
} from "./chunk-
|
|
107
|
+
} from "./chunk-WX5E6HZS.js";
|
|
108
108
|
import {
|
|
109
109
|
require_date_fns
|
|
110
110
|
} from "./chunk-M76ECQRD.js";
|
|
@@ -131,6 +131,7 @@ import {
|
|
|
131
131
|
codexStreamFailureStatus,
|
|
132
132
|
createHybridRecordStore,
|
|
133
133
|
createLocalWorkspaceToolExecutors,
|
|
134
|
+
evaluateFileWritePolicy,
|
|
134
135
|
executeLocalToolWithPolicy,
|
|
135
136
|
executeOpenAiCompatibleChatCompletion,
|
|
136
137
|
filterRetainedLedgerRecords,
|
|
@@ -143,7 +144,7 @@ import {
|
|
|
143
144
|
parseSyncServersEnv,
|
|
144
145
|
resolveOpenAiCompatibleProviderConfig,
|
|
145
146
|
summarizeToolArguments
|
|
146
|
-
} from "./chunk-
|
|
147
|
+
} from "./chunk-IKSFDJXB.js";
|
|
147
148
|
import {
|
|
148
149
|
buildPlatformChatCompletionRequest,
|
|
149
150
|
canUsePlatformChatProvider,
|
|
@@ -155,18 +156,18 @@ import {
|
|
|
155
156
|
resolvePlatformChatProviderConfig,
|
|
156
157
|
shouldUsePlatformChatProvider,
|
|
157
158
|
streamSseDataValues
|
|
158
|
-
} from "./chunk-
|
|
159
|
+
} from "./chunk-GDGIEGHV.js";
|
|
159
160
|
import {
|
|
160
161
|
resolveAgentRuntimeConfigFromRecord,
|
|
161
162
|
resolveHistoricalToolContentCap
|
|
162
|
-
} from "./chunk-
|
|
163
|
+
} from "./chunk-CVT7L2WZ.js";
|
|
163
164
|
import {
|
|
164
165
|
convertMessagesToResponsesInput,
|
|
165
166
|
toResponsesTools
|
|
166
167
|
} from "./chunk-6BYAXNH5.js";
|
|
167
168
|
import {
|
|
168
169
|
resolvePlatformAuthToken
|
|
169
|
-
} from "./chunk-
|
|
170
|
+
} from "./chunk-SP3DPVBH.js";
|
|
170
171
|
import {
|
|
171
172
|
buildNoloWorkspaceOpenAiTools,
|
|
172
173
|
parseNoloWorkspaceToolArguments,
|
|
@@ -198,7 +199,7 @@ import {
|
|
|
198
199
|
} from "./chunk-FD36SCCD.js";
|
|
199
200
|
import {
|
|
200
201
|
isAdaptiveThinkingModelId
|
|
201
|
-
} from "./chunk-
|
|
202
|
+
} from "./chunk-QDHZCAH3.js";
|
|
202
203
|
import {
|
|
203
204
|
compactWhitespace
|
|
204
205
|
} from "./chunk-DWLEOOGR.js";
|
|
@@ -472,8 +473,12 @@ var STRINGS = {
|
|
|
472
473
|
zh: "[nolo] \u5F53\u524D agent \u4F3C\u4E4E\u989D\u5EA6/\u901F\u7387\u53D7\u9650\uFF08429\uFF09\u3002\n\u53EF\u4EE5\u7528 /agent \u5207\u6362\u5230\u5176\u4ED6 agent \u540E\u7EE7\u7EED\uFF0C\u540C\u4E00\u5BF9\u8BDD\u4F1A\u4FDD\u7559\u4E0A\u4E0B\u6587\u3002"
|
|
473
474
|
},
|
|
474
475
|
balanceExhaustedHint: {
|
|
475
|
-
en: '[nolo]
|
|
476
|
-
zh: "[nolo] \
|
|
476
|
+
en: '[nolo] Your message is saved in this dialog \u2014 top up, then send again or say "continue" to pick up where you left off.',
|
|
477
|
+
zh: "[nolo] \u4F60\u521A\u53D1\u7684\u8BDD\u5DF2\u4FDD\u5B58\u5728\u5F53\u524D\u5BF9\u8BDD\u91CC\u2014\u2014\u5145\u503C\u540E\u76F4\u63A5\u518D\u8BF4\u4E00\u53E5\u6216\u8BF4\u300C\u7EE7\u7EED\u300D\u5373\u53EF\u63A5\u7740\u804A\uFF0C\u4E0D\u4F1A\u4E22\u4E0A\u4E0B\u6587\u3002"
|
|
478
|
+
},
|
|
479
|
+
balanceInsufficientReason: {
|
|
480
|
+
en: "Insufficient balance: requires > {required}, current balance {current}.",
|
|
481
|
+
zh: "\u4F59\u989D\u4E0D\u8DB3\uFF1A\u9700\u8981\u4F59\u989D > {required}\uFF0C\u5F53\u524D {current}\u3002"
|
|
477
482
|
},
|
|
478
483
|
dialogPreservedHint: {
|
|
479
484
|
en: '[nolo] This turn failed, but the dialog is kept. Send another message (or say "continue") to keep going in the same conversation.',
|
|
@@ -635,6 +640,12 @@ var STRINGS = {
|
|
|
635
640
|
en: "Log tail:",
|
|
636
641
|
zh: "\u65E5\u5FD7\u5C3E\u90E8\uFF1A"
|
|
637
642
|
},
|
|
643
|
+
// Normal-mode safe projection: the raw errorMessage/logLines of a failed run
|
|
644
|
+
// stay in pro/verbose; normal mode names the failure and points at pro.
|
|
645
|
+
runDiagnosticsHidden: {
|
|
646
|
+
en: "run failed \u2014 full diagnostics in pro mode",
|
|
647
|
+
zh: "\u8FD0\u884C\u5931\u8D25\u2014\u2014\u5B8C\u6574\u8BCA\u65AD\u89C1 pro \u6A21\u5F0F"
|
|
648
|
+
},
|
|
638
649
|
runsListLabel: {
|
|
639
650
|
en: "Runs ({0})",
|
|
640
651
|
zh: "\u8FD0\u884C ({0})"
|
|
@@ -912,10 +923,10 @@ var STRINGS = {
|
|
|
912
923
|
runtimeUsage: { en: "Usage: /runtime <auto|local|server>", zh: "\u7528\u6CD5\uFF1A/runtime <auto|local|server>" },
|
|
913
924
|
runtimeSet: { en: "Runtime: {0}", zh: "\u8FD0\u884C\u6A21\u5F0F\uFF1A{0}" },
|
|
914
925
|
toolsCurrent: {
|
|
915
|
-
en: "Tool display: {0} (
|
|
916
|
-
zh: "\u5DE5\u5177\u663E\u793A\uFF1A{0}\
|
|
926
|
+
en: "Tool display: {0} (normal | pro | hide | verbose)",
|
|
927
|
+
zh: "\u5DE5\u5177\u663E\u793A\uFF1A{0}\uFF08\u666E\u901A normal | \u4E13\u4E1A pro | hide | verbose\uFF09"
|
|
917
928
|
},
|
|
918
|
-
toolsUsage: { en: "Usage: /tools <hide|
|
|
929
|
+
toolsUsage: { en: "Usage: /tools <normal|pro|hide|verbose>", zh: "\u7528\u6CD5\uFF1A/tools <normal|pro|hide|verbose>" },
|
|
919
930
|
toolsSet: { en: "Tool display: {0}", zh: "\u5DE5\u5177\u663E\u793A\uFF1A{0}" },
|
|
920
931
|
thinkingCurrent: {
|
|
921
932
|
en: "Thinking display: {0} (show | hide)",
|
|
@@ -1065,6 +1076,7 @@ Use /switch, /switch list, /switch minimax-m3, or a full agent key.`,
|
|
|
1065
1076
|
en: "Press Enter to run it now. Follow any prompts below, or Ctrl+C to cancel.",
|
|
1066
1077
|
zh: "\u6309 Enter \u7ACB\u5373\u6267\u884C\uFF0C\u6309\u4E0B\u65B9\u63D0\u793A\u64CD\u4F5C\uFF0C\u6216\u6309 Ctrl+C \u53D6\u6D88\u3002"
|
|
1067
1078
|
},
|
|
1079
|
+
actionGateConfirmHint: { en: "Enter=approve, n=cancel (or type y/yes).", zh: "Enter=\u6279\u51C6\uFF0Cn=\u53D6\u6D88\uFF08\u4E5F\u53EF\u8F93\u5165 y/yes\uFF09\u3002" },
|
|
1068
1080
|
actionGateInteractiveTitle: {
|
|
1069
1081
|
en: "This command requires an interactive terminal.",
|
|
1070
1082
|
zh: "\u8BE5\u547D\u4EE4\u9700\u8981\u4EA4\u4E92\u5F0F\u7EC8\u7AEF"
|
|
@@ -1090,8 +1102,9 @@ Use /switch, /switch list, /switch minimax-m3, or a full agent key.`,
|
|
|
1090
1102
|
function t(key, ...params) {
|
|
1091
1103
|
const text = STRINGS[key][currentLocale];
|
|
1092
1104
|
if (params.length === 0) return text;
|
|
1093
|
-
return text.replace(/\{(\d
|
|
1094
|
-
const
|
|
1105
|
+
return text.replace(/\{(\d+|required|current)\}/g, (match, name) => {
|
|
1106
|
+
const index = name === "required" ? 0 : name === "current" ? 1 : Number(name);
|
|
1107
|
+
const replacement = params[index];
|
|
1095
1108
|
return replacement === void 0 ? match : replacement;
|
|
1096
1109
|
});
|
|
1097
1110
|
}
|
|
@@ -7775,6 +7788,7 @@ async function streamCursorChat(messages, options) {
|
|
|
7775
7788
|
const execCtx = {
|
|
7776
7789
|
tools: buildMcpToolDefinitions(options.tools),
|
|
7777
7790
|
executeTool: options.executeTool,
|
|
7791
|
+
...options.onActionGate ? { onActionGate: options.onActionGate } : {},
|
|
7778
7792
|
...options.searchWorkspace ? { searchWorkspace: options.searchWorkspace } : {},
|
|
7779
7793
|
...options.listWorkspaceEntries ? { listWorkspaceEntries: options.listWorkspaceEntries } : {},
|
|
7780
7794
|
toolCalls,
|
|
@@ -8318,6 +8332,23 @@ function decodeMcpArgValue(value) {
|
|
|
8318
8332
|
}
|
|
8319
8333
|
}
|
|
8320
8334
|
}
|
|
8335
|
+
async function executeCursorTool(ctx, call) {
|
|
8336
|
+
if ((call.name === "writeFile" || call.name === "editFile") && ctx.onActionGate) {
|
|
8337
|
+
let path = "the requested file";
|
|
8338
|
+
try {
|
|
8339
|
+
const parsed = JSON.parse(call.arguments);
|
|
8340
|
+
if (typeof parsed.path === "string" && parsed.path.trim()) path = parsed.path.trim();
|
|
8341
|
+
} catch {
|
|
8342
|
+
}
|
|
8343
|
+
const policy = evaluateFileWritePolicy({ tool: call.name, path, sessionApproved: false });
|
|
8344
|
+
if (policy.permissionDecision !== "ask") return ctx.executeTool ? ctx.executeTool(call) : { content: "tool execution unavailable" };
|
|
8345
|
+
const gate = { ...policy.permissionRequest, kind: "confirm", toolName: call.name, toolCallId: call.id };
|
|
8346
|
+
const result = await ctx.onActionGate(gate);
|
|
8347
|
+
if (result?.metadata?.actionGateResult?.status !== "completed") return result ?? { content: `${call.name} cancelled: file write confirmation was not approved.`, metadata: { cancelled: true, actionGateResult: { gateId: gate.id, status: "cancelled" } } };
|
|
8348
|
+
ctx.onActionGate = void 0;
|
|
8349
|
+
}
|
|
8350
|
+
return ctx.executeTool ? ctx.executeTool(call) : { content: "tool execution unavailable" };
|
|
8351
|
+
}
|
|
8321
8352
|
async function handleExecServerMessage(execMsg, h2Request, ctx) {
|
|
8322
8353
|
const execCase = execMsg.message?.case;
|
|
8323
8354
|
if (execCase === "requestContextArgs") {
|
|
@@ -8358,7 +8389,7 @@ async function handleExecServerMessage(execMsg, h2Request, ctx) {
|
|
|
8358
8389
|
});
|
|
8359
8390
|
const startedAt = Date.now();
|
|
8360
8391
|
try {
|
|
8361
|
-
const toolResult = await ctx
|
|
8392
|
+
const toolResult = await executeCursorTool(ctx, {
|
|
8362
8393
|
id: args.toolCallId,
|
|
8363
8394
|
name: "readFile",
|
|
8364
8395
|
arguments: toolCallArgs
|
|
@@ -8428,7 +8459,7 @@ async function handleExecServerMessage(execMsg, h2Request, ctx) {
|
|
|
8428
8459
|
});
|
|
8429
8460
|
const startedAt = Date.now();
|
|
8430
8461
|
try {
|
|
8431
|
-
const toolResult = await ctx
|
|
8462
|
+
const toolResult = await executeCursorTool(ctx, {
|
|
8432
8463
|
id: args.toolCallId,
|
|
8433
8464
|
name: "execShell",
|
|
8434
8465
|
arguments: toolCallArgs
|
|
@@ -8586,7 +8617,7 @@ async function handleExecServerMessage(execMsg, h2Request, ctx) {
|
|
|
8586
8617
|
});
|
|
8587
8618
|
const startedAt = Date.now();
|
|
8588
8619
|
try {
|
|
8589
|
-
const toolResult = await ctx
|
|
8620
|
+
const toolResult = await executeCursorTool(ctx, {
|
|
8590
8621
|
id: args.toolCallId,
|
|
8591
8622
|
name: "writeFile",
|
|
8592
8623
|
arguments: toolCallArgs
|
|
@@ -8648,7 +8679,7 @@ async function handleExecServerMessage(execMsg, h2Request, ctx) {
|
|
|
8648
8679
|
});
|
|
8649
8680
|
const startedAt = Date.now();
|
|
8650
8681
|
try {
|
|
8651
|
-
const toolResult = await ctx
|
|
8682
|
+
const toolResult = await executeCursorTool(ctx, {
|
|
8652
8683
|
id: args.toolCallId,
|
|
8653
8684
|
name: "deleteFile",
|
|
8654
8685
|
arguments: toolCallArgs
|
|
@@ -8767,7 +8798,7 @@ async function handleExecServerMessage(execMsg, h2Request, ctx) {
|
|
|
8767
8798
|
});
|
|
8768
8799
|
const startedAt = Date.now();
|
|
8769
8800
|
try {
|
|
8770
|
-
const toolResult = await ctx
|
|
8801
|
+
const toolResult = await executeCursorTool(ctx, {
|
|
8771
8802
|
id: args.toolCallId,
|
|
8772
8803
|
name: toolName,
|
|
8773
8804
|
arguments: toolCallArgs
|
|
@@ -8876,6 +8907,7 @@ function createCursorProvider(config) {
|
|
|
8876
8907
|
...options?.onTextDelta ? { onTextDelta: options.onTextDelta } : {},
|
|
8877
8908
|
...options?.onReasoningDelta ? { onReasoningDelta: options.onReasoningDelta } : {},
|
|
8878
8909
|
...options?.onToolEvent ? { onToolEvent: options.onToolEvent } : {},
|
|
8910
|
+
...options?.onActionGate ? { onActionGate: options.onActionGate } : {},
|
|
8879
8911
|
...typeof options?.toolEventRound === "number" ? { toolEventRound: options.toolEventRound } : {}
|
|
8880
8912
|
});
|
|
8881
8913
|
}
|
|
@@ -11385,9 +11417,10 @@ async function generateLocalDialogTitle(input) {
|
|
|
11385
11417
|
const content = m.content.length > 500 ? `${m.content.slice(0, 500)}...` : m.content;
|
|
11386
11418
|
return { role: m.role, content };
|
|
11387
11419
|
});
|
|
11388
|
-
while (visibleMessages.length > 1 &&
|
|
11420
|
+
while (visibleMessages.length > 1 && transcriptLength(visibleMessages) > 4e3) {
|
|
11389
11421
|
visibleMessages.shift();
|
|
11390
11422
|
}
|
|
11423
|
+
const compactTranscript = buildTitleTranscript(visibleMessages);
|
|
11391
11424
|
if (visibleMessages.length === 0) {
|
|
11392
11425
|
return { title: fallbackTitle, source: "fallback" };
|
|
11393
11426
|
}
|
|
@@ -11403,11 +11436,11 @@ async function generateLocalDialogTitle(input) {
|
|
|
11403
11436
|
messages: [
|
|
11404
11437
|
{
|
|
11405
11438
|
role: "system",
|
|
11406
|
-
content:
|
|
11439
|
+
content: buildTitleSystemPrompt(input.existingTitle)
|
|
11407
11440
|
},
|
|
11408
11441
|
{
|
|
11409
11442
|
role: "user",
|
|
11410
|
-
content:
|
|
11443
|
+
content: compactTranscript
|
|
11411
11444
|
}
|
|
11412
11445
|
],
|
|
11413
11446
|
stream: false
|
|
@@ -11420,7 +11453,9 @@ async function generateLocalDialogTitle(input) {
|
|
|
11420
11453
|
}
|
|
11421
11454
|
const patchedBody = {
|
|
11422
11455
|
...parsedBody,
|
|
11423
|
-
reasoning_effort
|
|
11456
|
+
// response_format 与 reasoning_effort 同发会被 RunInfra 400 拒绝,
|
|
11457
|
+
// 标题路径统一走 json mode(跳过 thinking,实测 completion 个位数 tokens)。
|
|
11458
|
+
response_format: { type: "json_object" },
|
|
11424
11459
|
max_tokens: 512
|
|
11425
11460
|
};
|
|
11426
11461
|
const res = await input.fetchImpl(request.url, {
|
|
@@ -11433,7 +11468,9 @@ async function generateLocalDialogTitle(input) {
|
|
|
11433
11468
|
const data = safeParseJson(raw);
|
|
11434
11469
|
if (data) {
|
|
11435
11470
|
const parsed = input.parseResponse({ providerConfig, data });
|
|
11436
|
-
const generated = normalizeDialogTitle(
|
|
11471
|
+
const generated = normalizeDialogTitle(
|
|
11472
|
+
extractTitleFromLlmContent(parsed.content)
|
|
11473
|
+
);
|
|
11437
11474
|
if (generated) {
|
|
11438
11475
|
return { title: generated, source: "llm" };
|
|
11439
11476
|
}
|
|
@@ -11479,11 +11516,12 @@ async function generateLocalDialogTitle(input) {
|
|
|
11479
11516
|
body: JSON.stringify({
|
|
11480
11517
|
model: directConfig.model || input.agentConfig?.model || BUILTIN_TITLE_LLM_CONFIG.model,
|
|
11481
11518
|
messages: [
|
|
11482
|
-
{ role: "system", content:
|
|
11483
|
-
{ role: "user", content:
|
|
11519
|
+
{ role: "system", content: buildTitleSystemPrompt(input.existingTitle) },
|
|
11520
|
+
{ role: "user", content: compactTranscript }
|
|
11484
11521
|
],
|
|
11485
|
-
//
|
|
11486
|
-
reasoning_effort
|
|
11522
|
+
// 标题路径统一 json mode(跳过 thinking);response_format 与
|
|
11523
|
+
// reasoning_effort 同发会被 RunInfra 400 拒绝,故不发 reasoning_effort。
|
|
11524
|
+
response_format: { type: "json_object" },
|
|
11487
11525
|
max_tokens: 512,
|
|
11488
11526
|
stream: false
|
|
11489
11527
|
}),
|
|
@@ -11493,7 +11531,9 @@ async function generateLocalDialogTitle(input) {
|
|
|
11493
11531
|
const raw = await res.text().catch(() => "");
|
|
11494
11532
|
const data = safeParseJson(raw);
|
|
11495
11533
|
const rawContent = data?.choices?.[0]?.message?.content ?? "";
|
|
11496
|
-
const generated = normalizeDialogTitle(
|
|
11534
|
+
const generated = normalizeDialogTitle(
|
|
11535
|
+
extractTitleFromLlmContent(rawContent)
|
|
11536
|
+
);
|
|
11497
11537
|
if (generated) {
|
|
11498
11538
|
return { title: generated, source: "llm" };
|
|
11499
11539
|
}
|
|
@@ -11504,6 +11544,33 @@ async function generateLocalDialogTitle(input) {
|
|
|
11504
11544
|
}
|
|
11505
11545
|
return { title: fallbackTitle, source: "fallback" };
|
|
11506
11546
|
}
|
|
11547
|
+
function buildTitleTranscript(messages) {
|
|
11548
|
+
return messages.map((message) => `${message.role === "user" ? "User" : "Assistant"}: ${message.content}`).join("\n");
|
|
11549
|
+
}
|
|
11550
|
+
function transcriptLength(messages) {
|
|
11551
|
+
return buildTitleTranscript(messages).length;
|
|
11552
|
+
}
|
|
11553
|
+
function buildTitleSystemPrompt(existingTitle) {
|
|
11554
|
+
const title = existingTitle?.trim();
|
|
11555
|
+
const base = `${BUILTIN_TITLE_LLM_CONFIG.prompt}
|
|
11556
|
+
\u8F93\u51FA\u683C\u5F0F\uFF1A\u8FD4\u56DE JSON \u5BF9\u8C61 {"title": "<\u6807\u9898>"}\uFF0C\u9664\u6B64\u4E4B\u5916\u4E0D\u8981\u6709\u4EFB\u4F55\u5B57\u7B26\u3002`;
|
|
11557
|
+
return title ? `${base}
|
|
11558
|
+
\u5F53\u524D\u6807\u9898\uFF1A${title}\u3002\u5982\u679C\u5BF9\u8BDD\u4ECD\u5728\u8BA8\u8BBA\u540C\u4E00\u4E3B\u9898\uFF0C\u5FC5\u987B\u539F\u6837\u8F93\u51FA\u5F53\u524D\u6807\u9898\uFF0C\u4E0D\u8981\u6539\u5199\uFF1B\u53EA\u6709\u5F53\u5BF9\u8BDD\u660E\u786E\u8F6C\u5411\u4E86\u4E0D\u540C\u4E3B\u9898\u65F6\u624D\u751F\u6210\u65B0\u6807\u9898\u3002` : base;
|
|
11559
|
+
}
|
|
11560
|
+
function extractTitleFromLlmContent(raw) {
|
|
11561
|
+
if (raw.trim().startsWith("{")) {
|
|
11562
|
+
try {
|
|
11563
|
+
const parsed = JSON.parse(raw);
|
|
11564
|
+
if (typeof parsed?.title === "string" && parsed.title.trim()) {
|
|
11565
|
+
return parsed.title;
|
|
11566
|
+
}
|
|
11567
|
+
return "";
|
|
11568
|
+
} catch {
|
|
11569
|
+
return raw;
|
|
11570
|
+
}
|
|
11571
|
+
}
|
|
11572
|
+
return raw;
|
|
11573
|
+
}
|
|
11507
11574
|
function extractText(content) {
|
|
11508
11575
|
if (typeof content === "string") return content;
|
|
11509
11576
|
if (Array.isArray(content)) {
|
|
@@ -11575,6 +11642,7 @@ function createLocalDialogTitleGenerator(deps, ctx) {
|
|
|
11575
11642
|
return async (input) => {
|
|
11576
11643
|
const result = await generateLocalDialogTitle({
|
|
11577
11644
|
messages: input.messages,
|
|
11645
|
+
existingTitle: input.existingTitle,
|
|
11578
11646
|
env: deps.env,
|
|
11579
11647
|
fetchImpl: async (url, init) => fetchWithTransientRetry(
|
|
11580
11648
|
deps.fetchImpl ?? fetch,
|
|
@@ -11725,7 +11793,11 @@ async function writeDialog(args) {
|
|
|
11725
11793
|
if (needsTitleUpdate && args.titleGenerator) {
|
|
11726
11794
|
const rawLastUserText = extractLastUserText(args.input.messages);
|
|
11727
11795
|
const fallbackTitle = buildDialogFallbackTitleFromUserInput(rawLastUserText) || "Local agent run";
|
|
11728
|
-
titlePromise = args.titleGenerator({
|
|
11796
|
+
titlePromise = args.titleGenerator({
|
|
11797
|
+
messages: args.input.messages,
|
|
11798
|
+
fallbackTitle,
|
|
11799
|
+
existingTitle: existingTitle || void 0
|
|
11800
|
+
}).catch(() => null);
|
|
11729
11801
|
}
|
|
11730
11802
|
const plan = buildLocalDialogWritePlan({
|
|
11731
11803
|
input: args.input,
|
|
@@ -3,12 +3,12 @@ import {
|
|
|
3
3
|
resolvePlatformChatCompletionsEndpoint,
|
|
4
4
|
resolvePlatformHostedCredentialProvider,
|
|
5
5
|
resolvePlatformResponsesEndpoint
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-VRJUIUIY.js";
|
|
7
7
|
import {
|
|
8
8
|
CLIENT_VERSION_TOO_OLD_CODE,
|
|
9
9
|
buildClientVersionGateErrorDetail,
|
|
10
10
|
evaluatePlatformHostedClientVersionGate
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-WL3UOGYO.js";
|
|
12
12
|
import {
|
|
13
13
|
asTrimmedLowercaseString
|
|
14
14
|
} from "./chunk-QSJ3HFEF.js";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getModelConfig
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-QDHZCAH3.js";
|
|
4
4
|
import {
|
|
5
5
|
isPlatformHostedDeepseekModel,
|
|
6
6
|
isPlatformHostedOpenAIImageModel,
|
|
7
7
|
resolvePlatformHostedRouting
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-WL3UOGYO.js";
|
|
9
9
|
import {
|
|
10
10
|
asTrimmedLowercaseString
|
|
11
11
|
} from "./chunk-QSJ3HFEF.js";
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
toCompactAgentSummary,
|
|
18
18
|
toSafeAgentSummary,
|
|
19
19
|
toUnavailableAgentSummary
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-RU5D3B22.js";
|
|
21
21
|
import {
|
|
22
22
|
getUserDataItemTimestamp,
|
|
23
23
|
mergeAndDedupUserData
|
|
@@ -43,7 +43,7 @@ import {
|
|
|
43
43
|
} from "./chunk-INZZJSQF.js";
|
|
44
44
|
import {
|
|
45
45
|
createDocState
|
|
46
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-GFD7TIZU.js";
|
|
47
47
|
import {
|
|
48
48
|
ToolApiError,
|
|
49
49
|
buildToolRequestHeaders,
|
|
@@ -70,7 +70,7 @@ import {
|
|
|
70
70
|
buildBuiltinObjectSkillDbKey,
|
|
71
71
|
buildBuiltinObjectSkillPageContent,
|
|
72
72
|
createDialogAction
|
|
73
|
-
} from "./chunk-
|
|
73
|
+
} from "./chunk-AVKUDHJO.js";
|
|
74
74
|
import {
|
|
75
75
|
addCategory,
|
|
76
76
|
addContentToSpace,
|
|
@@ -90,7 +90,7 @@ import {
|
|
|
90
90
|
loadTableRows,
|
|
91
91
|
updateContentCategory,
|
|
92
92
|
updateContentTitle
|
|
93
|
-
} from "./chunk-
|
|
93
|
+
} from "./chunk-6SMMK7MD.js";
|
|
94
94
|
import {
|
|
95
95
|
normalizeAppRouteId,
|
|
96
96
|
resolveDialogRuntimeAgentKey,
|
|
@@ -100,13 +100,13 @@ import {
|
|
|
100
100
|
selectMsgById,
|
|
101
101
|
uiAskChoiceFunc,
|
|
102
102
|
uiAskChoiceFunctionSchema
|
|
103
|
-
} from "./chunk-
|
|
103
|
+
} from "./chunk-EURF2SV6.js";
|
|
104
104
|
import {
|
|
105
105
|
createAgent,
|
|
106
106
|
runLlm,
|
|
107
107
|
streamAgentChatTurn,
|
|
108
108
|
updateAgent
|
|
109
|
-
} from "./chunk-
|
|
109
|
+
} from "./chunk-WX5E6HZS.js";
|
|
110
110
|
import {
|
|
111
111
|
getActiveDialogKey,
|
|
112
112
|
require_react,
|
|
@@ -154,7 +154,7 @@ import {
|
|
|
154
154
|
} from "./chunk-HR5XDXYM.js";
|
|
155
155
|
import {
|
|
156
156
|
DEFAULT_MODEL
|
|
157
|
-
} from "./chunk-
|
|
157
|
+
} from "./chunk-QDHZCAH3.js";
|
|
158
158
|
import {
|
|
159
159
|
compactWhitespace
|
|
160
160
|
} from "./chunk-DWLEOOGR.js";
|
|
@@ -11830,7 +11830,7 @@ var HOSTED_EXEC_RUNTIME_TOOL_POLICY = {
|
|
|
11830
11830
|
workspace: { mode: "lease" }
|
|
11831
11831
|
};
|
|
11832
11832
|
var findModelConfig = async (modelName, provider) => {
|
|
11833
|
-
const { ALL_MODELS } = await import("./models-
|
|
11833
|
+
const { ALL_MODELS } = await import("./models-4QF4BJVY.js");
|
|
11834
11834
|
const name = toTrimmedString(modelName);
|
|
11835
11835
|
const prov = toTrimmedString(provider ?? "");
|
|
11836
11836
|
if (!name) return null;
|
|
@@ -12071,7 +12071,7 @@ var buildFormDataFromArgs = async (args) => {
|
|
|
12071
12071
|
const trimmedModel = toTrimmedString(model);
|
|
12072
12072
|
const trimmedProvider = toTrimmedString(provider);
|
|
12073
12073
|
const modelConfig = await findModelConfig(trimmedModel, trimmedProvider);
|
|
12074
|
-
const { getModelPricing } = await import("./getPricing-
|
|
12074
|
+
const { getModelPricing } = await import("./getPricing-HAU62AFM.js");
|
|
12075
12075
|
const normalizedTools = tools ?? [];
|
|
12076
12076
|
const resolvedRuntimeToolPolicy = runtimeToolPolicy ?? (normalizedTools.includes("execShell") ? HOSTED_EXEC_RUNTIME_TOOL_POLICY : void 0);
|
|
12077
12077
|
const formData = {
|
|
@@ -15385,7 +15385,7 @@ async function deleteDialogsFunc(args, thunkApi) {
|
|
|
15385
15385
|
const deletedDialogIds = [];
|
|
15386
15386
|
const deletedDialogKeys = [];
|
|
15387
15387
|
const failures = [];
|
|
15388
|
-
const { deleteDialog } = await import("./dialogSlice-
|
|
15388
|
+
const { deleteDialog } = await import("./dialogSlice-NRAN5X7F.js");
|
|
15389
15389
|
for (const target of targets) {
|
|
15390
15390
|
try {
|
|
15391
15391
|
await thunkApi.dispatch(deleteDialog(target.dbKey)).unwrap();
|
|
@@ -24957,7 +24957,7 @@ var executeToolRun = createAsyncThunk(
|
|
|
24957
24957
|
if (!executionInput) {
|
|
24958
24958
|
throw new Error(`ToolRun ${id} has no input to execute with.`);
|
|
24959
24959
|
}
|
|
24960
|
-
const { findToolExecutor: findToolExecutor2 } = await import("./tools-
|
|
24960
|
+
const { findToolExecutor: findToolExecutor2 } = await import("./tools-QCDR3UMD.js");
|
|
24961
24961
|
const { executor } = findToolExecutor2(run.toolName);
|
|
24962
24962
|
toolRunStarted({
|
|
24963
24963
|
id: run.id,
|
|
@@ -24981,7 +24981,7 @@ var executeToolRun = createAsyncThunk(
|
|
|
24981
24981
|
const latestState = thunkApi.getState();
|
|
24982
24982
|
const userId = latestState.auth?.currentUser?.userId;
|
|
24983
24983
|
if (userId) {
|
|
24984
|
-
const { fetchUserSpaceMemberships } = await import("./spaceSlice-
|
|
24984
|
+
const { fetchUserSpaceMemberships } = await import("./spaceSlice-F7JCOZEF.js");
|
|
24985
24985
|
await thunkApi.dispatch(fetchUserSpaceMemberships(userId));
|
|
24986
24986
|
}
|
|
24987
24987
|
}
|
|
@@ -27464,7 +27464,7 @@ async function updateDocFunc(args, thunkApi) {
|
|
|
27464
27464
|
updated_at: (/* @__PURE__ */ new Date()).toISOString()
|
|
27465
27465
|
};
|
|
27466
27466
|
await dispatch(write({ data: updatedPageData, customKey: id })).unwrap();
|
|
27467
|
-
const { getDocState, applyExternalDocUpdate } = await import("./docStore-
|
|
27467
|
+
const { getDocState, applyExternalDocUpdate } = await import("./docStore-LUS7SWC3.js");
|
|
27468
27468
|
if (getDocState().pageKey === id) {
|
|
27469
27469
|
applyExternalDocUpdate({
|
|
27470
27470
|
slateData: finalSlateData,
|