nolo-cli 0.49.1 → 0.50.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.
Files changed (131) hide show
  1. package/{_executeModel-KE4PQSZ3.js → _executeModel-JKEH7ACW.js} +48 -42
  2. package/{action-IU6ON7ZB.js → action-VSG2IYP3.js} +8 -8
  3. package/{addContentAction-5V5CCI3I.js → addContentAction-2HJJITDI.js} +8 -7
  4. package/{addDialogAgentAction-KF3KZZNZ.js → addDialogAgentAction-7BSQVVL5.js} +10 -9
  5. package/{agentDeleteCommand-Z67TJG3W.js → agentDeleteCommand-SVXKS5SC.js} +30 -28
  6. package/{agentEmailCommands-7LPIK7JE.js → agentEmailCommands-WN7QBTP3.js} +57 -52
  7. package/{agentListCommands-5J2IM3IT.js → agentListCommands-2BEBOQIG.js} +42 -33
  8. package/{agentMachineCommands-YXH6FXUQ.js → agentMachineCommands-WALP3ONU.js} +30 -28
  9. package/{agentRecordCommands-GZLCDVUS.js → agentRecordCommands-E652SW57.js} +55 -50
  10. package/{agentRunCommand-WYH5Q54Q.js → agentRunCommand-6VXWXKCS.js} +60 -53
  11. package/{agentRunControl-4GHHSXFZ.js → agentRunControl-LJVFDJGU.js} +3 -1
  12. package/{agentRuntimeLocal-A6EF3RUY.js → agentRuntimeLocal-SBG7BDFQ.js} +30 -26
  13. package/{agentSlice-ARTDF6VD.js → agentSlice-3WYXIGEO.js} +8 -8
  14. package/{agentSuperviseCommands-VB6BUS5H.js → agentSuperviseCommands-F3RFAL7K.js} +2 -2
  15. package/{appDeleteCommands-V2B7ZCLC.js → appDeleteCommands-NTUNMEXY.js} +31 -29
  16. package/{appDeployCommands-AXQU44RD.js → appDeployCommands-DISWXRTL.js} +31 -29
  17. package/{appDeployStatusCommands-FWGSC2UM.js → appDeployStatusCommands-IKRA6B6F.js} +31 -29
  18. package/{appGetCommands-67R3RFZK.js → appGetCommands-UMOP2DFV.js} +31 -29
  19. package/{appListCommands-TTASJPGV.js → appListCommands-ZKFD2AKS.js} +31 -29
  20. package/{authCommand-QOPOEYEK.js → authCommand-BS3CQC6I.js} +11 -11
  21. package/{chatQueueReduxAdapter-6CAHUQ4O.js → chatQueueReduxAdapter-A3YH4MT4.js} +24 -21
  22. package/{chunk-76UA7376.js → chunk-273FJUYI.js} +6 -6
  23. package/{chunk-7CH6U3FL.js → chunk-2GRGFCF6.js} +2 -4
  24. package/{chunk-T27IEBNQ.js → chunk-2QDDKFG5.js} +74 -1
  25. package/{chunk-IRJVFYOH.js → chunk-2TLYVDTN.js} +321 -1100
  26. package/{chunk-6BYAXNH5.js → chunk-3QOCS5IF.js} +11 -2
  27. package/chunk-6IGD47IC.js +19 -0
  28. package/{chunk-GFD7TIZU.js → chunk-6TUT5ZJD.js} +4 -6
  29. package/chunk-6YTOJY35.js +352 -0
  30. package/{chunk-B54WOZ77.js → chunk-7H7GQL6V.js} +2 -2
  31. package/{chunk-OYNDYVSE.js → chunk-B45YNDAE.js} +1 -1
  32. package/{chunk-UQWFIWHX.js → chunk-BKIDF5LV.js} +1 -1
  33. package/{chunk-5XCW6RQG.js → chunk-BUBPRCIU.js} +1 -1
  34. package/chunk-BYXBJQAS.js +0 -0
  35. package/{chunk-X7S7OFUX.js → chunk-CEVCRRHU.js} +4 -4
  36. package/{chunk-SP3DPVBH.js → chunk-DEIGUGP6.js} +2 -2
  37. package/{chunk-V2IPBG5U.js → chunk-DGEPT6FH.js} +1 -1
  38. package/{chunk-3AOLVADY.js → chunk-DVINR3PL.js} +1 -1
  39. package/{chunk-NN3AMBY3.js → chunk-DXOELY7S.js} +64 -69
  40. package/{chunk-OFZPJ3NT.js → chunk-E4MARS3Q.js} +1 -1
  41. package/{chunk-QUCSAM43.js → chunk-EAYBPWHX.js} +87 -66
  42. package/{chunk-DQLYEGP7.js → chunk-EGVY3GMT.js} +1 -1
  43. package/{chunk-2JYSSXLY.js → chunk-EJFW7TRP.js} +5 -26
  44. package/{chunk-HPZL4IBN.js → chunk-FGRCSLPV.js} +34 -45
  45. package/{chunk-WL3UOGYO.js → chunk-G4WSLTQF.js} +31 -97
  46. package/{chunk-HR5XDXYM.js → chunk-G5SQVIFZ.js} +3 -3
  47. package/{chunk-J3UALFHL.js → chunk-GHE5XMVR.js} +1 -1
  48. package/{chunk-6SMMK7MD.js → chunk-GKB4AZKV.js} +440 -2981
  49. package/{chunk-IKSFDJXB.js → chunk-GKNGRBE6.js} +150 -27
  50. package/{chunk-Q24S4NDF.js → chunk-HQTK2SFT.js} +1 -1
  51. package/{chunk-GDGIEGHV.js → chunk-IPTZ5TVU.js} +7 -6
  52. package/{chunk-4RXXP6WD.js → chunk-J7KDNHUO.js} +5 -64
  53. package/{chunk-QDHZCAH3.js → chunk-KNQ5LYVZ.js} +57 -2
  54. package/{chunk-VRJUIUIY.js → chunk-KVVNC5V3.js} +2 -2
  55. package/{chunk-CVT7L2WZ.js → chunk-LVCAWHI5.js} +4 -4
  56. package/{chunk-WX5E6HZS.js → chunk-N6SLQMSA.js} +6 -6
  57. package/{chunk-SQTVMYMU.js → chunk-NTZO3KX2.js} +3 -3
  58. package/{chunk-LGUQHYAL.js → chunk-O5FLGN2L.js} +3 -2
  59. package/{chunk-WKOEOQCI.js → chunk-OSUZKICS.js} +1600 -190
  60. package/{chunk-EXDR5D6X.js → chunk-Q2QN2RHG.js} +7 -7
  61. package/{chunk-L3JWI7WX.js → chunk-QOKAKDPE.js} +15 -11
  62. package/{chunk-757BGY6Y.js → chunk-RFYXK6KI.js} +1 -1
  63. package/chunk-RQSN75DW.js +1766 -0
  64. package/{chunk-HCMFFI2G.js → chunk-S3JNURSO.js} +2 -2
  65. package/{chunk-YZ2WE6CW.js → chunk-SAJSBPI2.js} +2 -2
  66. package/{chunk-WHVQA7PJ.js → chunk-SCBBGS2N.js} +23 -5
  67. package/chunk-SGSJBBKP.js +297 -0
  68. package/{chunk-GFUOVFQA.js → chunk-TUBNQ3OF.js} +2 -2
  69. package/{chunk-BANYWEYY.js → chunk-TY3ADTX5.js} +1 -1
  70. package/chunk-UAD2WT54.js +64 -0
  71. package/{chunk-SW7RCUGA.js → chunk-UEV5WVQV.js} +3 -3
  72. package/{chunk-EURF2SV6.js → chunk-UMCMW5R3.js} +51 -34
  73. package/{chunk-K524MUQC.js → chunk-VFDRZHPM.js} +16 -16
  74. package/{chunk-5WADL4O7.js → chunk-W22UTILW.js} +3 -3
  75. package/{chunk-IKTHA3JH.js → chunk-WERPP2S7.js} +2 -2
  76. package/{chunk-GBADO3SM.js → chunk-WSUHBABG.js} +1 -1
  77. package/{chunk-U5Z7LFZF.js → chunk-X3OGKR5Q.js} +4 -4
  78. package/{chunk-AVKUDHJO.js → chunk-X5LRMXTS.js} +10 -10
  79. package/{chunk-DIQCV4FR.js → chunk-X665UCNM.js} +1 -1
  80. package/{chunk-HCBQVVFZ.js → chunk-X7P6EJUY.js} +4 -4
  81. package/{chunk-HHBXCRJS.js → chunk-XOJRZUPF.js} +4 -4
  82. package/{chunk-MRWGHF56.js → chunk-YDH3FDFQ.js} +12 -356
  83. package/{chunk-TNPCQNGQ.js → chunk-YEFRCO5N.js} +4 -9
  84. package/{chunk-RO2IUWZE.js → chunk-YUKTCDVN.js} +1 -1
  85. package/{chunk-56W233KG.js → chunk-YWY25N4V.js} +1 -1
  86. package/{chunk-RU5D3B22.js → chunk-ZDS63Y4O.js} +2 -2
  87. package/chunk-ZJ7UHBJS.js +89 -0
  88. package/{chunk-SG65C33A.js → chunk-ZLMG6NRV.js} +4 -4
  89. package/{codingSkills-BYQI6EPT.js → codingSkills-FQPCEIWL.js} +2 -2
  90. package/contentThunks-J33BZB3E.js +71 -0
  91. package/{createAgentAutomationAction-7BBF5YXN.js → createAgentAutomationAction-HTMTGX6Q.js} +25 -21
  92. package/{createDialogAction-B5URPHP4.js → createDialogAction-WYQBSN6A.js} +27 -23
  93. package/{createPageAction-ISJKM5Q3.js → createPageAction-ICRRK3SA.js} +27 -22
  94. package/{dbSlice-FWF5F4L7.js → dbSlice-YORO4VL4.js} +6 -6
  95. package/{deleteFile-NPZ64DFN.js → deleteFile-JYKRT7C3.js} +4 -4
  96. package/{dialogCommands-XHH4MVA4.js → dialogCommands-FRSIAPKY.js} +31 -29
  97. package/{dialogSlice-NRAN5X7F.js → dialogSlice-5KPVIAWH.js} +24 -21
  98. package/{docCreateCommands-FUN2Z7HQ.js → docCreateCommands-DBRJMPDX.js} +30 -28
  99. package/{docDeleteCommands-OZDPFXPF.js → docDeleteCommands-BCYPLWXN.js} +31 -29
  100. package/{docReadCommands-FIPK7LE3.js → docReadCommands-L5JX4Q7G.js} +30 -28
  101. package/{docStore-LUS7SWC3.js → docStore-34NXLCEO.js} +8 -33
  102. package/{docUpdateCommands-BZ5GKAN4.js → docUpdateCommands-RELG7XJD.js} +30 -28
  103. package/fetchMessages-KZQVBXKY.js +1 -1
  104. package/{getPricing-HAU62AFM.js → getPricing-FM7TJZFV.js} +4 -4
  105. package/{handleSendMessageAction-RA4OD2ZH.js → handleSendMessageAction-MEYK7RPD.js} +25 -22
  106. package/index.js +64 -64
  107. package/{machineCommands-WDAYEFBE.js → machineCommands-YSXTOWHQ.js} +59 -54
  108. package/{machineWsRunDispatch-TPQ2FQVS.js → machineWsRunDispatch-DNAYOPQT.js} +54 -49
  109. package/memberThunks-KVPBG4V7.js +638 -0
  110. package/{models-4QF4BJVY.js → models-CW5EL6Z7.js} +2 -2
  111. package/package.json +2 -3
  112. package/{read-J7RVVCHH.js → read-NIOV5F7W.js} +4 -4
  113. package/{readDocTool-G2WBM4IH.js → readDocTool-ULKJ5BEM.js} +1 -1
  114. package/{readlineWorkspace-HN44KGIF.js → readlineWorkspace-KZ3LPQG2.js} +829 -393
  115. package/{removeDialogAgentAction-RMPISD42.js → removeDialogAgentAction-JGSCPML3.js} +12 -11
  116. package/{runAgentClientLoop-ZYUI22EA.js → runAgentClientLoop-O2AUHIJT.js} +46 -40
  117. package/{setDialogExtraReferencesAction-7BUTHDAL.js → setDialogExtraReferencesAction-CORU64NM.js} +9 -8
  118. package/{setPrimaryDialogAgentAction-WCYIBGZ4.js → setPrimaryDialogAgentAction-5VS2VKLZ.js} +12 -11
  119. package/{settingSlice-7NN2MI6Y.js → settingSlice-3GNGTC2T.js} +7 -7
  120. package/{skillDiscovery-COX56OBO.js → skillDiscovery-CYUCJMAG.js} +3 -3
  121. package/{spaceCommands-OJ2567D4.js → spaceCommands-OI7RIB2T.js} +30 -28
  122. package/{streamAgentChatTurn-FNFMMGNN.js → streamAgentChatTurn-TA3PGS6C.js} +61 -54
  123. package/{switchDialogAgentAction-WGMMQHDI.js → switchDialogAgentAction-LP433X4D.js} +10 -9
  124. package/{tableCommands-P2TXJ3CF.js → tableCommands-R6WFRDYF.js} +1 -1
  125. package/{toolApiClient-B2MFXMEG.js → toolApiClient-53U4UDFF.js} +3 -2
  126. package/{tools-QCDR3UMD.js → tools-6ZPQ75XA.js} +37 -32
  127. package/{tuiSummaryLlmCaller-LCGT62QC.js → tuiSummaryLlmCaller-YKYQB4ZL.js} +17 -15
  128. package/{updateDialogTitleAction-Y3OGJWDB.js → updateDialogTitleAction-LRJ7NSOS.js} +26 -22
  129. package/chunk-EUG45QJR.js +0 -6104
  130. package/spaceSlice-F7JCOZEF.js +0 -127
  131. package/{chunk-NQ4N4IGO.js → chunk-CS6TCJ7E.js} +3 -3
@@ -6,7 +6,8 @@ import {
6
6
  parseFlagWithOptionalValue,
7
7
  runCloudflareOAuthLogin,
8
8
  upsertEnvVariable
9
- } from "./chunk-GBADO3SM.js";
9
+ } from "./chunk-WSUHBABG.js";
10
+ import "./chunk-ESHYE7WU.js";
10
11
  import {
11
12
  ANTHROPIC_OAUTH_AUTHORIZE_URL,
12
13
  ANTHROPIC_OAUTH_CALLBACK_PORT,
@@ -45,18 +46,17 @@ import {
45
46
  startCallbackServer,
46
47
  validateXAIEndpoint,
47
48
  xaiOAuthDiscovery
48
- } from "./chunk-U5Z7LFZF.js";
49
- import "./chunk-ESHYE7WU.js";
49
+ } from "./chunk-X3OGKR5Q.js";
50
50
  import "./chunk-JBTJAPUF.js";
51
- import "./chunk-757BGY6Y.js";
51
+ import "./chunk-RFYXK6KI.js";
52
52
  import "./chunk-IA3A5373.js";
53
53
  import "./chunk-GLKOYSRU.js";
54
- import "./chunk-SP3DPVBH.js";
55
- import "./chunk-VRJUIUIY.js";
54
+ import "./chunk-DEIGUGP6.js";
55
+ import "./chunk-KVVNC5V3.js";
56
+ import "./chunk-KNQ5LYVZ.js";
56
57
  import {
57
58
  createOAuthTokenStore
58
59
  } from "./chunk-FD36SCCD.js";
59
- import "./chunk-QDHZCAH3.js";
60
60
  import "./chunk-ZHXJ6M7T.js";
61
61
  import {
62
62
  toErrorMessage
@@ -67,20 +67,20 @@ import {
67
67
  } from "./chunk-UNZDCI3O.js";
68
68
  import "./chunk-A7GB5UGH.js";
69
69
  import "./chunk-OLZBQWZU.js";
70
- import "./chunk-WL3UOGYO.js";
70
+ import "./chunk-G4WSLTQF.js";
71
71
  import "./chunk-SVEUG45B.js";
72
72
  import {
73
73
  asOptionalFiniteNumber
74
74
  } from "./chunk-WWC7I6TA.js";
75
75
  import "./chunk-I42VC5KR.js";
76
76
  import "./chunk-QSJ3HFEF.js";
77
- import {
78
- isRecord
79
- } from "./chunk-KUG52IAP.js";
80
77
  import {
81
78
  asTrimmedString
82
79
  } from "./chunk-3EUW3WEO.js";
83
80
  import "./chunk-U6VC4MU4.js";
81
+ import {
82
+ isRecord
83
+ } from "./chunk-KUG52IAP.js";
84
84
  import "./chunk-LCBAMY2M.js";
85
85
  import "./chunk-4SN6J65J.js";
86
86
  import "./chunk-CF7PE763.js";
@@ -4,54 +4,57 @@ import {
4
4
  } from "./chunk-YPREESF4.js";
5
5
  import {
6
6
  handleSendMessage
7
- } from "./chunk-EURF2SV6.js";
7
+ } from "./chunk-UMCMW5R3.js";
8
8
  import "./chunk-EVBFYPDC.js";
9
9
  import "./chunk-H2G6JXTR.js";
10
10
  import "./chunk-YYLHWIW6.js";
11
- import "./chunk-WX5E6HZS.js";
12
11
  import "./chunk-AGGIDPCZ.js";
13
- import "./chunk-SG65C33A.js";
12
+ import "./chunk-N6SLQMSA.js";
13
+ import "./chunk-ZLMG6NRV.js";
14
14
  import "./chunk-5RGU3J7P.js";
15
- import "./chunk-M76ECQRD.js";
16
15
  import {
17
16
  clearPendingUserInputQueue,
18
17
  dequeueUserInput,
19
18
  enqueueUserInput,
20
19
  getLoopStopReason,
21
20
  getPendingUserInputQueue
22
- } from "./chunk-MRWGHF56.js";
23
- import "./chunk-SW7RCUGA.js";
24
- import "./chunk-HR5XDXYM.js";
25
- import "./chunk-VRJUIUIY.js";
26
- import "./chunk-NQ4N4IGO.js";
27
- import "./chunk-FD36SCCD.js";
28
- import "./chunk-QDHZCAH3.js";
21
+ } from "./chunk-6YTOJY35.js";
22
+ import "./chunk-M76ECQRD.js";
23
+ import "./chunk-YDH3FDFQ.js";
24
+ import "./chunk-UEV5WVQV.js";
25
+ import "./chunk-G5SQVIFZ.js";
26
+ import "./chunk-KVVNC5V3.js";
27
+ import "./chunk-BYXBJQAS.js";
28
+ import "./chunk-KNQ5LYVZ.js";
29
29
  import "./chunk-DWLEOOGR.js";
30
+ import "./chunk-CS6TCJ7E.js";
31
+ import "./chunk-FD36SCCD.js";
30
32
  import "./chunk-ZHXJ6M7T.js";
31
33
  import "./chunk-HNMXYYJR.js";
32
34
  import "./chunk-FA4SY4F5.js";
33
- import "./chunk-56W233KG.js";
34
- import "./chunk-WL3UOGYO.js";
35
- import "./chunk-X7S7OFUX.js";
35
+ import "./chunk-YWY25N4V.js";
36
+ import "./chunk-G4WSLTQF.js";
37
+ import "./chunk-CEVCRRHU.js";
36
38
  import "./chunk-Y5GCAMGP.js";
37
39
  import "./chunk-UZ6XXCVR.js";
38
40
  import "./chunk-KX6YBIHG.js";
39
- import "./chunk-4RXXP6WD.js";
40
- import "./chunk-76UA7376.js";
41
+ import "./chunk-J7KDNHUO.js";
42
+ import "./chunk-UAD2WT54.js";
43
+ import "./chunk-273FJUYI.js";
41
44
  import "./chunk-SVEUG45B.js";
42
45
  import "./chunk-WWC7I6TA.js";
43
46
  import "./chunk-I42VC5KR.js";
44
- import "./chunk-YZ2WE6CW.js";
47
+ import "./chunk-SAJSBPI2.js";
45
48
  import "./chunk-QSJ3HFEF.js";
46
- import "./chunk-2JYSSXLY.js";
49
+ import "./chunk-EJFW7TRP.js";
47
50
  import "./chunk-BJIRLHJR.js";
48
- import "./chunk-HHBXCRJS.js";
49
- import "./chunk-L3JWI7WX.js";
51
+ import "./chunk-XOJRZUPF.js";
52
+ import "./chunk-QOKAKDPE.js";
50
53
  import "./chunk-OW765XBU.js";
51
54
  import "./chunk-GBRG75BQ.js";
52
- import "./chunk-KUG52IAP.js";
53
55
  import "./chunk-3EUW3WEO.js";
54
56
  import "./chunk-U6VC4MU4.js";
57
+ import "./chunk-KUG52IAP.js";
55
58
  import "./chunk-LCBAMY2M.js";
56
59
  import "./chunk-4SN6J65J.js";
57
60
  import "./chunk-CF7PE763.js";
@@ -8,12 +8,12 @@ import {
8
8
  loadFileFromIndexedDb,
9
9
  removeAction,
10
10
  saveFileToIndexedDb
11
- } from "./chunk-YZ2WE6CW.js";
11
+ } from "./chunk-SAJSBPI2.js";
12
12
  import {
13
13
  readAction,
14
14
  readRequestManager,
15
15
  resolveAgentReadServers
16
- } from "./chunk-2JYSSXLY.js";
16
+ } from "./chunk-EJFW7TRP.js";
17
17
  import {
18
18
  asyncThunkCreator,
19
19
  buildCreateSlice,
@@ -33,13 +33,13 @@ import {
33
33
  shouldReplaceLocalWithRemoteRecord,
34
34
  shouldReplicateLocalRecord,
35
35
  uploadToCurrentServer
36
- } from "./chunk-HHBXCRJS.js";
36
+ } from "./chunk-XOJRZUPF.js";
37
37
  import {
38
38
  fetchFromClientDb,
39
39
  fetchFromServer,
40
40
  logger,
41
41
  normalizeTimeFields
42
- } from "./chunk-L3JWI7WX.js";
42
+ } from "./chunk-QOKAKDPE.js";
43
43
  import {
44
44
  isTombstoneRecord
45
45
  } from "./chunk-GBRG75BQ.js";
@@ -707,7 +707,7 @@ var dbSlice = createSliceWithThunks({
707
707
  // 动态 import 在调用期解析,避开 TDZ/求值顺序问题(同下方 share)。
708
708
  read: create.asyncThunk(
709
709
  async (payload, thunkApi) => {
710
- const { readAction: readAction2 } = await import("./read-J7RVVCHH.js");
710
+ const { readAction: readAction2 } = await import("./read-NIOV5F7W.js");
711
711
  return readAction2(payload, thunkApi);
712
712
  },
713
713
  {
@@ -781,7 +781,7 @@ var dbSlice = createSliceWithThunks({
781
781
  // 这里改成动态 import,运行期才解析,彻底断开这条边。
782
782
  share: create.asyncThunk(
783
783
  async (config, thunkApi) => {
784
- const { shareResourceAction } = await import("./action-IU6ON7ZB.js");
784
+ const { shareResourceAction } = await import("./action-VSG2IYP3.js");
785
785
  return shareResourceAction(config, thunkApi);
786
786
  }
787
787
  ),
@@ -78,10 +78,8 @@ var MEMORY_USE_GUIDANCE = `--- \u8BB0\u5FC6\u4F7F\u7528\u65B9\u5F0F ---
78
78
  - \u8BB0\u5FC6\u662F\u4E2A\u6027\u5316\u589E\u5F3A\u5C42\uFF1B\u5F53\u524D\u8F93\u5165/\u5BF9\u8BDD/\u7CFB\u7EDF\u89C4\u5219/Agent prompt/skill/\u7528\u6237\u5168\u5C40\u504F\u597D\u90FD\u4F18\u5148\u4E8E\u5B83\u3002\u5F53\u524D\u8F93\u5165\u7ED9\u51FA\u65B0\u8BED\u8A00\u3001\u6280\u672F\u6808\u3001\u6570\u503C\u3001\u7EA6\u675F\u6216\u660E\u786E\u8986\u76D6\u65E7\u504F\u597D\u65F6\uFF0C\u91C7\u7528\u5F53\u524D\u8F93\u5165\uFF0C\u4E0D\u8981\u628A\u65E7\u8BB0\u5FC6\u5F53\u66F4\u9AD8\u771F\u503C\u3002
79
79
  - \u8BB0\u5FC6\u542B\u7528\u6237\u8EAB\u4EFD/\u79F0\u547C/\u5173\u7CFB/\u957F\u671F\u504F\u597D/\u9879\u76EE\u80CC\u666F\u65F6\uFF0C\u76F8\u5173\u5904\u81EA\u7136\u4F53\u73B0\uFF08\u5F00\u573A\u79F0\u547C\u3001\u4E0A\u4E0B\u6587\u786E\u8BA4\u3001\u56DE\u7B54\u7ED3\u6784\u3001\u53D6\u820D\u6807\u51C6\uFF09\uFF0C\u4E0D\u8981\u6BCF\u53E5\u673A\u68B0\u79F0\u547C\u7528\u6237\u3002
80
80
  - \u201C\u4E0A\u6B21/\u7EE7\u7EED/\u8FD9\u4E2A\u9879\u76EE\u201D\u7B49\u6307\u4EE3\u4F18\u5148\u6309\u5F53\u524D dialog/space/project/agent/sourceDialog \u7B49 KV \u8DEF\u5F84\u548C\u65F6\u95F4\u7EBF\u5B9A\u4F4D\uFF0C\u4E0D\u8981\u53EA\u6309\u8BED\u4E49\u76F8\u4F3C\u5EA6\u635E\u4E00\u6761\u3002
81
- - \u63A8\u65AD\u578B\u8BB0\u5FC6\uFF08inferred\uFF09\u53EA\u7528\u4E8E\u628A\u63E1\u8BED\u6C14\u3001\u72B6\u6001\u548C\u672A\u5B8C\u6210\u4E8B\u9879\uFF0C\u4E0D\u8981\u8BF4\u6210\u201C\u4F60\u660E\u786E\u544A\u8BC9\u8FC7\u6211\u201D\u6216\u5F53\u6210\u7528\u6237\u5DF2\u6388\u6743\u4FDD\u5B58\u7684\u4E8B\u5B9E\u3002\u51B2\u7A81\u6216\u573A\u666F\u4E0D\u660E\u65F6\u8BF4\u660E\u4F9D\u636E\u6216\u7B80\u77ED\u786E\u8BA4\uFF0C\u4E0D\u8981\u786C\u5957\u3002
82
- - \u3010\u7F6E\u4FE1\u5EA6\u6765\u6E90\u3011\u6BCF\u6761\u8BB0\u5FC6\u6709\u6765\u6E90\uFF1Averified\uFF08\u5B9E\u6D4B\u9A8C\u8BC1\uFF0C\u9AD8\u7F6E\u4FE1\u5EA6\uFF09\u3001stated\uFF08\u7528\u6237\u9648\u8FF0\uFF0C\u4E2D\u9AD8\uFF09\u3001inferred\uFF08\u6A21\u578B\u63A8\u65AD\uFF0C\u4F4E\u2014\u2014\u5BB9\u6613\u7F16\u9020\uFF0C\u4F18\u5148\u5B58\u7591\uFF09\u3002\u53EC\u56DE\u65F6\u4F18\u5148\u4F7F\u7528 verified/stated\uFF0Cinferred \u9700\u9A8C\u8BC1\u540E\u518D\u91C7\u7EB3\u3002
83
- - \u3010\u53EC\u56DE\u89C4\u5219\u3011\u53EC\u56DE\u8BB0\u5FC6\u5FC5\u987B\u5E26\u5B8C\u6574\u5386\u53F2\u4E0A\u4E0B\u6587\uFF08\u6765\u6E90\u3001\u7F6E\u4FE1\u5EA6\u3001\u53D8\u66F4\u8BB0\u5F55\uFF09\uFF0C\u7981\u6B62\u81EA\u884C\u63A8\u7406\u586B\u8865\u3002\u4E0D\u8981\u51ED\u5370\u8C61\u62FC\u51FA\u672A\u9A8C\u8BC1\u7684\u4FE1\u606F\u3002
84
- - \u3010\u964D\u6743\u4E0E\u5220\u9664\u3011\u65E5\u5E38\u9519\u8BEF\u8BB0\u5FC6\u4F18\u5148\u964D\u6743/\u5F52\u6863\u4E0E\u8986\u76D6\uFF08\u964D\u4F4E\u7F6E\u4FE1\u5EA6\uFF09\uFF0C\u4FDD\u7559\u6863\u6848\u4F9B\u5BA1\u8BA1\uFF1B\u82E5\u7528\u6237\u660E\u786E/\u5F3A\u5236\u8981\u6C42\u5220\u9664\uFF0C\u4E14\u5728\u7528\u6237\u81EA\u8EAB\u6743\u9650\u8303\u56F4\u5185\uFF0C\u5141\u8BB8\u7269\u7406\u5220\u9664\uFF08\u4EC5\u9650\u4E8E\u5F53\u524D\u7528\u6237\u62E5\u6709\u7684\u8BB0\u5FC6\uFF0C\u4E25\u7981\u8D8A\u6743\uFF09\u3002`;
81
+ - \u63A8\u65AD\u578B\u8BB0\u5FC6\uFF08inferred\uFF09\u53EA\u7528\u4E8E\u628A\u63E1\u8BED\u6C14\u3001\u72B6\u6001\u548C\u672A\u5B8C\u6210\u4E8B\u9879\uFF0C\u4E0D\u8981\u8BF4\u6210\u201C\u4F60\u660E\u786E\u544A\u8BC9\u8FC7\u6211\u201D\u6216\u5F53\u6210\u7528\u6237\u5DF2\u6388\u6743\u4FDD\u5B58\u7684\u4E8B\u5B9E\uFF1B\u51B2\u7A81\u6216\u573A\u666F\u4E0D\u660E\u65F6\u8BF4\u660E\u4F9D\u636E\u6216\u7B80\u77ED\u786E\u8BA4\uFF0C\u4E0D\u8981\u786C\u5957\u3002
82
+ - \u7F6E\u4FE1\u5EA6\uFF08verified/stated/inferred\uFF09\u3001\u53EC\u56DE\u4E0A\u4E0B\u6587\u8981\u6C42\u4E0E\u964D\u6743/\u5220\u9664\u8FB9\u754C\u4EE5\u8BB0\u5FC6\u5DE5\u5177\uFF08rememberMemory / queryMemory / deleteMemory\uFF09schema \u4E3A\u51C6\u3002`;
85
83
 
86
84
  export {
87
85
  buildUserResponseLanguageContext,
@@ -70,6 +70,9 @@ function sanitizeOutboundHistory(messages, options) {
70
70
  const name = call?.function?.name;
71
71
  const declaredAllows = !declared || isString(name) && declared.has(name);
72
72
  if (!declaredAllows) return;
73
+ if (!hasParsableObjectArguments(call?.function?.arguments)) {
74
+ return;
75
+ }
73
76
  const id = isNonEmptyString(call?.id) ? call.id : stableToolCallId(i, callIndex);
74
77
  candidateCallIds.add(id);
75
78
  });
@@ -143,7 +146,77 @@ ${extra}` : extra;
143
146
  }
144
147
  return extra;
145
148
  }
149
+ function hasParsableObjectArguments(raw) {
150
+ if (raw === void 0) return true;
151
+ if (raw === null || typeof raw === "number" || typeof raw === "boolean") {
152
+ return false;
153
+ }
154
+ if (typeof raw !== "string") return true;
155
+ if (raw.trim() === "") return true;
156
+ try {
157
+ const parsed = JSON.parse(raw);
158
+ return parsed !== null && typeof parsed === "object";
159
+ } catch {
160
+ return false;
161
+ }
162
+ }
163
+ function downgradeUnparsableToolCalls(messages) {
164
+ if (!Array.isArray(messages) || messages.length === 0) {
165
+ return { messages, downgraded: 0 };
166
+ }
167
+ const poisonIds = /* @__PURE__ */ new Set();
168
+ for (let i = 0; i < messages.length; i++) {
169
+ const m = messages[i];
170
+ if (m.role !== "assistant" || !Array.isArray(m.tool_calls)) continue;
171
+ m.tool_calls.forEach((call, callIndex) => {
172
+ if (!hasParsableObjectArguments(call?.function?.arguments)) {
173
+ const id = isNonEmptyString(call?.id) ? call.id : stableToolCallId(i, callIndex);
174
+ poisonIds.add(id);
175
+ }
176
+ });
177
+ }
178
+ if (poisonIds.size === 0) return { messages, downgraded: 0 };
179
+ let downgraded = 0;
180
+ const out = [];
181
+ for (const m of messages) {
182
+ if (m.role === "assistant" && Array.isArray(m.tool_calls) && m.tool_calls.length > 0) {
183
+ const kept = [];
184
+ const lines = [];
185
+ for (const call of m.tool_calls) {
186
+ if (!hasParsableObjectArguments(call?.function?.arguments)) {
187
+ lines.push(renderToolCallAsText(call));
188
+ downgraded++;
189
+ } else {
190
+ kept.push(call);
191
+ }
192
+ }
193
+ if (lines.length === 0) {
194
+ out.push(m);
195
+ continue;
196
+ }
197
+ const sanitized = {
198
+ ...m,
199
+ content: combineContentWithText(m.content, joinLines(...lines)),
200
+ tool_calls: kept.length > 0 ? kept : void 0
201
+ };
202
+ if (kept.length === 0) delete sanitized.tool_calls;
203
+ out.push(sanitized);
204
+ continue;
205
+ }
206
+ if (m.role === "tool") {
207
+ const id = isNonEmptyString(m.tool_call_id) ? m.tool_call_id : "";
208
+ if (id && poisonIds.has(id)) {
209
+ out.push({ role: "assistant", content: renderToolResultAsText(m) });
210
+ continue;
211
+ }
212
+ }
213
+ out.push(m);
214
+ }
215
+ return { messages: out, downgraded };
216
+ }
146
217
 
147
218
  export {
148
- sanitizeForOutbound
219
+ sanitizeForOutbound,
220
+ hasParsableObjectArguments,
221
+ downgradeUnparsableToolCalls
149
222
  };