nolo-cli 0.82.0-alpha.6 → 0.82.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 (161) hide show
  1. package/README.md +2 -2
  2. package/{_executeModel-225YRU52.js → _executeModel-MA3D2J4W.js} +48 -48
  3. package/{action-D22U6CTH.js → action-YVYQEAAV.js} +11 -11
  4. package/{addContentAction-XAPUTGL4.js → addContentAction-O7R66HEX.js} +9 -9
  5. package/{addDialogAgentAction-M7VLLBZM.js → addDialogAgentAction-74OA7KYP.js} +8 -8
  6. package/{agentDeleteCommand-ZJNQGVR2.js → agentDeleteCommand-FHUJH5X4.js} +31 -29
  7. package/{agentEmailCommands-VLVWFWX2.js → agentEmailCommands-KNYBWNMA.js} +67 -63
  8. package/{agentGrantCommands-R3VQEZJR.js → agentGrantCommands-M3XFO6EN.js} +2 -2
  9. package/{agentListCommands-GHQGLAUU.js → agentListCommands-GATRXEMT.js} +40 -32
  10. package/{agentMachineCommands-QDXYENZJ.js → agentMachineCommands-N62I3D5Q.js} +31 -29
  11. package/{agentProviderCommands-65ZC2WB4.js → agentProviderCommands-GNPTL5XR.js} +87 -0
  12. package/{agentPullCommand-N7L2CT7L.js → agentPullCommand-O5MPVJ5E.js} +3 -3
  13. package/agentRecordCommands-GOC5K27T.js +128 -0
  14. package/{agentRunCommand-YSCD65HH.js → agentRunCommand-JP2U3MQF.js} +65 -61
  15. package/{agentRunControl-T44MESII.js → agentRunControl-AVJR4JW4.js} +2 -2
  16. package/{agentRuntimeLocal-ZOHB7OOO.js → agentRuntimeLocal-VXZSDIGT.js} +27 -25
  17. package/{agentSlice-O2SBU5TK.js → agentSlice-65ETD734.js} +10 -10
  18. package/{appDeleteCommands-PRT6K5N2.js → appDeleteCommands-PDZ7HQYH.js} +31 -29
  19. package/{appDeployCommands-63ZONFAN.js → appDeployCommands-KLLW32YA.js} +31 -29
  20. package/{appDeployStatusCommands-AFAYCVR3.js → appDeployStatusCommands-IPNJ445T.js} +31 -29
  21. package/{appGetCommands-TNZDZE36.js → appGetCommands-QA57XGXS.js} +31 -29
  22. package/{appListCommands-IA4SPG2X.js → appListCommands-YBTAUFZS.js} +31 -29
  23. package/{authCommand-EVGFLAHO.js → authCommand-F4EFRRX6.js} +164 -24
  24. package/{authCommands-ILTBI6JV.js → authCommands-RGOGCPP6.js} +4 -5
  25. package/builtinSkillRegistry-FUAVTRVZ.js +33 -0
  26. package/{chatQueueReduxAdapter-4SM3DAWX.js → chatQueueReduxAdapter-5QOW43T4.js} +24 -24
  27. package/{chromeCommands-VOIRNJBL.js → chromeCommands-FZYAU75D.js} +1 -1
  28. package/{chromeOpsCommands-M7DPCX2T.js → chromeOpsCommands-62P2Q2YB.js} +31 -1
  29. package/{chunk-C3FZR5EC.js → chunk-2F7RJC6L.js} +1 -1
  30. package/{chunk-A3NNC2LA.js → chunk-2FA3ITSX.js} +1235 -59
  31. package/{chunk-HQUORJTM.js → chunk-3BMYXEUW.js} +1 -1
  32. package/{chunk-3QPYFHAH.js → chunk-3DII57IT.js} +1 -1
  33. package/{chunk-NTW5GWDM.js → chunk-3VNWWVKB.js} +2 -0
  34. package/{chunk-DWUCB2A3.js → chunk-42V6BK2E.js} +1 -1
  35. package/{chunk-DSRXPQWA.js → chunk-4OEFYTWL.js} +43 -43
  36. package/{chunk-GBPZKFYK.js → chunk-53HEEOTT.js} +4 -4
  37. package/{chunk-KIS76A2P.js → chunk-5H7KJX7J.js} +38 -4
  38. package/{chunk-5XTOKQLW.js → chunk-5UTFL4QJ.js} +6 -2
  39. package/chunk-5ZUL4CUO.js +10 -0
  40. package/{chunk-E6RGHPDR.js → chunk-6D6VBVEW.js} +4 -6
  41. package/{chunk-CMH2SYHX.js → chunk-6OZ36FXI.js} +2 -2
  42. package/{chunk-HHLTFENG.js → chunk-6VFARHZW.js} +907 -317
  43. package/{chunk-NRALD3CC.js → chunk-76WEAXJB.js} +49 -10
  44. package/{chunk-BYEJ7K2Z.js → chunk-7S4YWN7P.js} +1 -1
  45. package/{chunk-SREASRV5.js → chunk-ABQYVJBJ.js} +1 -1
  46. package/chunk-ACTMNVHM.js +93 -0
  47. package/{chunk-3W2JJOH3.js → chunk-AD2L6YCC.js} +3 -3
  48. package/{chunk-XWNRAIUL.js → chunk-AFUORTY4.js} +6 -16
  49. package/{chunk-WL2RKIBF.js → chunk-BLJWCTRL.js} +1 -1
  50. package/chunk-BNGW5ASC.js +344 -0
  51. package/{chunk-SZLVDREM.js → chunk-BP4XNZRM.js} +3 -3
  52. package/{chunk-2KDR4CWE.js → chunk-BYMV6QZG.js} +24 -1
  53. package/{chunk-5LSS6MFZ.js → chunk-D2QT5FW4.js} +13 -15
  54. package/{chunk-MYU3MJCF.js → chunk-DHDMC6FO.js} +175 -7
  55. package/{chunk-SO7B7NW3.js → chunk-DHDVZFNC.js} +413 -62
  56. package/{chunk-E36HZARC.js → chunk-DNCEALKX.js} +93 -17
  57. package/{chunk-EXMHJN7C.js → chunk-EYAQT56M.js} +4 -3
  58. package/{chunk-CJCJF5XB.js → chunk-FDTR4QJ6.js} +4 -2
  59. package/{chunk-YSKEOTPH.js → chunk-FSX24MR3.js} +155 -795
  60. package/{chunk-NJ6WLAPS.js → chunk-FUUHG5LT.js} +1 -1
  61. package/{chunk-EM6MPSEI.js → chunk-GABFWSOQ.js} +52 -30
  62. package/{chunk-PYXL2CJL.js → chunk-GPCZ7UXG.js} +1 -1
  63. package/{chunk-K7AG465Q.js → chunk-GQBOR3G6.js} +4 -2
  64. package/{chunk-FP27MNSX.js → chunk-GZBATRJA.js} +3 -3
  65. package/{chunk-YFADVSZE.js → chunk-H62HCIUP.js} +6 -6
  66. package/{chunk-PZM3EENV.js → chunk-HJUYAD4A.js} +1 -1
  67. package/{chunk-3JQ2NRYU.js → chunk-HVURBGF3.js} +4 -4
  68. package/{chunk-HH65VA5U.js → chunk-I3TQJXQ7.js} +109 -6
  69. package/{chunk-ZVN6I33J.js → chunk-IIVGDG4I.js} +6 -5
  70. package/{chunk-UDQWGU7F.js → chunk-J4MOO56S.js} +1 -1
  71. package/{chunk-KC5FAHVS.js → chunk-JEDZAO7L.js} +1 -1
  72. package/{chunk-6XIE5ZGI.js → chunk-JPGCXHNM.js} +1 -1
  73. package/chunk-JRQFUXY7.js +1625 -0
  74. package/chunk-KQ4ONNQD.js +677 -0
  75. package/{chunk-CPSZJBLK.js → chunk-L5UXH3B2.js} +105 -26
  76. package/{chunk-RXX4GDIH.js → chunk-LS2ZANRJ.js} +1 -1
  77. package/{chunk-BJIRLHJR.js → chunk-M2EJHDJP.js} +4 -0
  78. package/{chunk-EVBFYPDC.js → chunk-MC4XLIJ7.js} +6 -2
  79. package/{chunk-6SD5OPQ4.js → chunk-N2WELJE7.js} +11 -173
  80. package/{chunk-UJ63UXGE.js → chunk-OIVSQH2O.js} +1006 -801
  81. package/{chunk-4UW2LDVA.js → chunk-PELKTR62.js} +15 -15
  82. package/{chunk-AETZ7AD6.js → chunk-Q554LLSI.js} +1 -1
  83. package/chunk-Q5FJJ6XI.js +103 -0
  84. package/{chunk-AJHEFRGJ.js → chunk-Q67DOFOO.js} +214 -5
  85. package/{chunk-UZ6XXCVR.js → chunk-QDSINZM3.js} +15 -2
  86. package/{chunk-D6XYLSOS.js → chunk-QIAVMDHY.js} +1 -1
  87. package/{chunk-YWG6EMH3.js → chunk-RG6JBBX5.js} +10 -6
  88. package/{chunk-QCZX4FTW.js → chunk-SH43IESU.js} +173 -15
  89. package/{chunk-FNGAF7C4.js → chunk-SNPMM7H3.js} +137 -12
  90. package/{chunk-SPAQ4PVV.js → chunk-SV5IJK6K.js} +1 -1
  91. package/{chunk-KVDUCO4Q.js → chunk-TDRTS7QW.js} +16 -12
  92. package/{chunk-BJCWNHVU.js → chunk-TOP2VXOR.js} +2 -2
  93. package/{chunk-Q46HQOW3.js → chunk-TVYSVSA2.js} +7 -7
  94. package/{chunk-4EJ5QYB5.js → chunk-UKZDAFYT.js} +1 -1
  95. package/{chunk-YXLXHIT2.js → chunk-UY2NBS4V.js} +6 -6
  96. package/{chunk-PGSKWZCB.js → chunk-UZGQNTVW.js} +1 -1
  97. package/{chunk-73IOJLK2.js → chunk-V4I3A7DR.js} +10 -10
  98. package/{chunk-ZZCJUXUI.js → chunk-V4MJDUSR.js} +2 -2
  99. package/{chunk-JYYZCK2Z.js → chunk-V7E4PXQD.js} +1 -1
  100. package/{chunk-OZX2IPKM.js → chunk-VLTIYV3X.js} +1 -1
  101. package/{chunk-NHRQCXIQ.js → chunk-VMFTFOWF.js} +13 -3
  102. package/{chunk-5J7W2VWW.js → chunk-WV42OMV7.js} +6 -265
  103. package/{chunk-DUJWWUGV.js → chunk-YQTQQX2H.js} +1 -1
  104. package/{chunk-BOYUESO7.js → chunk-Z77CRGTW.js} +1 -1
  105. package/{chunk-QC5LGHYP.js → chunk-ZCYXJSTU.js} +10 -5
  106. package/{chunk-LSZXYE64.js → chunk-ZMD2CQFC.js} +759 -80
  107. package/{contentThunks-ENAVF2YU.js → contentThunks-Y6FA2TCW.js} +25 -25
  108. package/{cooldownCommands-BSCH2W7P.js → cooldownCommands-REAWYVTY.js} +2 -2
  109. package/{createAgentAutomationAction-CH6BYC7K.js → createAgentAutomationAction-JXAFQO5V.js} +25 -25
  110. package/{createDialogAction-23UDOXSO.js → createDialogAction-O2QABXZF.js} +28 -28
  111. package/{createPageAction-J6AEMLHK.js → createPageAction-GUQDPKO5.js} +26 -26
  112. package/{dbSlice-GKGGFNOB.js → dbSlice-XVWBAGYN.js} +8 -8
  113. package/{deleteFile-LWSR674W.js → deleteFile-YG6QMJLU.js} +3 -3
  114. package/{dialogCommands-BJJGCCQR.js → dialogCommands-JJDASFIL.js} +35 -31
  115. package/{dialogSlice-F7RD6PUY.js → dialogSlice-J2YJNE6E.js} +24 -24
  116. package/{docCreateCommands-53GB2FU3.js → docCreateCommands-OB3X3EQM.js} +32 -30
  117. package/{docDeleteCommands-TAW5JEBU.js → docDeleteCommands-WMHRGF22.js} +33 -31
  118. package/{docReadCommands-F5N7N5E3.js → docReadCommands-NWGGLIAZ.js} +32 -30
  119. package/{docStore-WX4YBGXC.js → docStore-6KKYKAGQ.js} +9 -9
  120. package/{docUpdateCommands-YQ7TRT35.js → docUpdateCommands-3DDSOLPS.js} +32 -30
  121. package/{fetchMessages-DRABNDPZ.js → fetchMessages-EIU7UFFK.js} +3 -4
  122. package/{getPricing-HRMSOF3E.js → getPricing-LUSEABA6.js} +4 -4
  123. package/{handleSendMessageAction-CW4LULIR.js → handleSendMessageAction-A4XLEEPU.js} +24 -24
  124. package/index.js +102 -85
  125. package/{localDialogRead-PUQKFI73.js → localDialogRead-BTFJ4V2I.js} +2 -2
  126. package/{localRuntimeDb-P37ZTX55.js → localRuntimeDb-SYQGUF4U.js} +1 -1
  127. package/{machineCommands-FIYWY5EU.js → machineCommands-Y64KAIRW.js} +64 -60
  128. package/{machineWsRunDispatch-KQ4OFFNR.js → machineWsRunDispatch-M366L2LJ.js} +62 -58
  129. package/{memberThunks-KATHH3F4.js → memberThunks-QGFLFVCI.js} +9 -9
  130. package/{models-GS72DVJS.js → models-T3SG6MJ5.js} +2 -2
  131. package/{offlineMarxistsAgentCommand-GEH6SNNA.js → offlineMarxistsAgentCommand-HGXZV4XJ.js} +1 -1
  132. package/package.json +1 -1
  133. package/providerPresetApply-FG6NZ57W.js +214 -0
  134. package/providerRegistry-757OWH3O.js +31 -0
  135. package/{read-LC6HVYBN.js → read-COE3ZYR6.js} +5 -4
  136. package/{readDocTool-N3ERJHHF.js → readDocTool-5USN4A6V.js} +1 -1
  137. package/{readlineWorkspace-QYI6BRNA.js → readlineWorkspace-45XNHFXU.js} +144 -108
  138. package/{removeDialogAgentAction-F5GPTALR.js → removeDialogAgentAction-IX3MN2ZO.js} +11 -11
  139. package/{runAgentClientLoop-GZ5VUGAW.js → runAgentClientLoop-ADZRHNG6.js} +47 -47
  140. package/{runtimeDoctorCommands-CROTMULY.js → runtimeDoctorCommands-X6WDBEQX.js} +2 -2
  141. package/{setDialogExtraReferencesAction-AY4ZCF3A.js → setDialogExtraReferencesAction-X4HCPNZL.js} +9 -9
  142. package/{setPrimaryDialogAgentAction-HPMG7V3R.js → setPrimaryDialogAgentAction-4GMIQLOD.js} +11 -11
  143. package/{settingSlice-OEJA4NQO.js → settingSlice-ZQZVUPKK.js} +10 -10
  144. package/{spaceCommands-IYMIXCMC.js → spaceCommands-E7MQ4VU2.js} +30 -28
  145. package/{streamAgentChatTurn-EAXIUJTK.js → streamAgentChatTurn-TUP7YO3H.js} +59 -58
  146. package/{switchDialogAgentAction-HMDZTZ4I.js → switchDialogAgentAction-N52LRPA3.js} +8 -8
  147. package/{tableCommands-SUNTHAYX.js → tableCommands-O6NWHFKV.js} +1 -1
  148. package/{toolApiClient-VGYUB4P5.js → toolApiClient-QVJ6HDNN.js} +2 -2
  149. package/{tools-QWQOW6J4.js → tools-2VDNDFET.js} +43 -43
  150. package/tuiSummaryLlmCaller-WFRWERGK.js +127 -0
  151. package/{updateCommands-Y363MC3L.js → updateCommands-2M74UL7P.js} +2 -2
  152. package/{updateDialogTitleAction-2HCE2M7S.js → updateDialogTitleAction-KSWXWWFT.js} +45 -28
  153. package/agentRecordCommands-AQFYM5HS.js +0 -124
  154. package/chunk-3IT2PFHL.js +0 -611
  155. package/chunk-I42VC5KR.js +0 -15
  156. package/chunk-NG4UT4K4.js +0 -79
  157. package/codingSkills-E6KSDNSJ.js +0 -48
  158. package/tuiSummaryLlmCaller-3Z24VUWM.js +0 -116
  159. package/{chunk-3RAG2NAD.js → chunk-UKWGR5SS.js} +3 -3
  160. package/{db-VQSAOWAO.js → db-WK5MDZVN.js} +1 -1
  161. package/{localRuntimeAuthority-R5UBODT3.js → localRuntimeAuthority-6IR6BBXE.js} +3 -3
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  fetchReferenceContents,
3
3
  resolveReferenceAssets
4
- } from "./chunk-EM6MPSEI.js";
4
+ } from "./chunk-GABFWSOQ.js";
5
5
 
6
6
  // packages/ai/agent/fetchAgentContexts.ts
7
7
  async function fetchAgentContexts(references, dispatch) {
@@ -6,9 +6,8 @@ import {
6
6
  } from "./chunk-HS7MLR74.js";
7
7
  import {
8
8
  clipMultilineText,
9
- fetchAndSerializeTable,
10
- resolveBuiltinSkillPage
11
- } from "./chunk-YSKEOTPH.js";
9
+ fetchAndSerializeTable
10
+ } from "./chunk-FSX24MR3.js";
12
11
  import {
13
12
  isGatewayHttpStatus
14
13
  } from "./chunk-NF64D32W.js";
@@ -20,7 +19,7 @@ import {
20
19
  } from "./chunk-3L2WKC3W.js";
21
20
  import {
22
21
  slateToSimplifiedMarkdown
23
- } from "./chunk-UDQWGU7F.js";
22
+ } from "./chunk-J4MOO56S.js";
24
23
  import {
25
24
  waitForAbortableDelay
26
25
  } from "./chunk-N4G4PKQ6.js";
@@ -29,25 +28,27 @@ import {
29
28
  } from "./chunk-MEYIRKDN.js";
30
29
  import {
31
30
  fetchAndCacheMessages
32
- } from "./chunk-SO7B7NW3.js";
31
+ } from "./chunk-DHDVZFNC.js";
33
32
  import {
34
33
  shouldUseServerProxy
35
34
  } from "./chunk-YYLHWIW6.js";
36
35
  import {
37
36
  fetchServerSyncedCredential
38
- } from "./chunk-Q46HQOW3.js";
37
+ } from "./chunk-TVYSVSA2.js";
39
38
  import {
40
39
  buildSkillGuidancePromptBlock,
41
40
  extractRuntimePageCapabilities,
41
+ resolveBuiltinSkillPage,
42
42
  resolveSkillGraphFromRoots
43
- } from "./chunk-3IT2PFHL.js";
43
+ } from "./chunk-JRQFUXY7.js";
44
44
  import {
45
45
  buildIdentityBlock,
46
46
  buildRuntimeGuidanceBlocks,
47
47
  compileContextLayers,
48
+ detectDispatchIntentFromMessages,
48
49
  normalizeChatCompletionsBodyForProvider,
49
50
  resolveToolGuidedSections
50
- } from "./chunk-CPSZJBLK.js";
51
+ } from "./chunk-L5UXH3B2.js";
51
52
  import {
52
53
  convertMessagesToResponsesInput,
53
54
  getUsageRequestOptions,
@@ -57,26 +58,26 @@ import {
57
58
  import {
58
59
  ANTIGRAVITY_CLOUD_CODE_BASE_URL,
59
60
  isAntigravityOAuthAgent
60
- } from "./chunk-PGSKWZCB.js";
61
+ } from "./chunk-UZGQNTVW.js";
61
62
  import {
62
63
  buildProviderAuthHeaders
63
- } from "./chunk-CMH2SYHX.js";
64
+ } from "./chunk-6OZ36FXI.js";
65
+ import {
66
+ estimateTokenCount
67
+ } from "./chunk-PSCNXBYA.js";
64
68
  import {
65
69
  isOpenAiResponsesModel,
66
70
  resolvePlatformChatCompletionsEndpoint,
67
71
  resolvePlatformResponsesEndpoint
68
- } from "./chunk-K7AG465Q.js";
69
- import {
70
- estimateTokenCount
71
- } from "./chunk-PSCNXBYA.js";
72
+ } from "./chunk-GQBOR3G6.js";
72
73
  import {
73
74
  clampReasoningEffort,
74
75
  getModelConfig,
75
76
  isModelSupportReasoningEffort
76
- } from "./chunk-UJ63UXGE.js";
77
+ } from "./chunk-OIVSQH2O.js";
77
78
  import {
78
79
  createFileCredentialBroker
79
- } from "./chunk-3JQ2NRYU.js";
80
+ } from "./chunk-HVURBGF3.js";
80
81
  import {
81
82
  toErrorMessage
82
83
  } from "./chunk-HNMXYYJR.js";
@@ -91,32 +92,33 @@ import {
91
92
  import {
92
93
  isDeepInfraKimiModel,
93
94
  isFireworksKimiModel,
95
+ isPlatformMimoProviderModel,
94
96
  resolveFireworksKimiModel
95
- } from "./chunk-AJHEFRGJ.js";
97
+ } from "./chunk-Q67DOFOO.js";
96
98
  import {
97
99
  createSpaceKey
98
100
  } from "./chunk-UAD2WT54.js";
99
101
  import {
100
102
  read
101
- } from "./chunk-YFADVSZE.js";
103
+ } from "./chunk-H62HCIUP.js";
102
104
  import {
103
105
  asTrimmedLowercaseString
104
106
  } from "./chunk-QSJ3HFEF.js";
105
107
  import {
106
108
  extractCustomId
107
- } from "./chunk-BJIRLHJR.js";
109
+ } from "./chunk-M2EJHDJP.js";
108
110
  import {
109
111
  getRuntimeServerContext
110
- } from "./chunk-3RAG2NAD.js";
112
+ } from "./chunk-UKWGR5SS.js";
111
113
  import {
112
114
  isAbortError
113
115
  } from "./chunk-QOKAKDPE.js";
114
- import {
115
- asTrimmedString
116
- } from "./chunk-3EUW3WEO.js";
117
116
  import {
118
117
  isRecord
119
118
  } from "./chunk-KUG52IAP.js";
119
+ import {
120
+ asTrimmedString
121
+ } from "./chunk-3EUW3WEO.js";
120
122
  import {
121
123
  API_ENDPOINTS
122
124
  } from "./chunk-LCBAMY2M.js";
@@ -367,10 +369,12 @@ function isResponsesConversationStateRejection(status, responseBody) {
367
369
  // packages/agent-runtime/agentCallPlan.ts
368
370
  var CODEX_RESPONSES_URL = "https://chatgpt.com/backend-api/codex/responses";
369
371
  var CURSOR_AGENT_URL = "https://api2.cursor.sh/agent.v1.AgentService/Run";
372
+ var DEVIN_CONNECT_URL = "https://server.codeium.com/exa.api_server_pb.ApiServerService/GetChatMessage";
370
373
  function resolveClientWire(plan) {
371
374
  if (plan.upstreamWire === "gemini-cca") return "chat.completions";
372
375
  if (plan.upstreamWire === "anthropic-messages") return "chat.completions";
373
376
  if (plan.upstreamWire === "cursor-connect") return "chat.completions";
377
+ if (plan.upstreamWire === "devin-connect") return "chat.completions";
374
378
  if (plan.upstreamWire === "responses" && plan.authMethod.kind === "oauth" && plan.authMethod.ref === "chatgpt") {
375
379
  return "chat.completions";
376
380
  }
@@ -450,6 +454,16 @@ function resolveAgentCallPlan(agentConfig, _env) {
450
454
  vendor: provider || "cursor"
451
455
  };
452
456
  }
457
+ if (apiKeyRef === "devin" || provider === "devin") {
458
+ return {
459
+ authMethod: { kind: "oauth", ref: "devin" },
460
+ transport: "server-proxy",
461
+ upstreamWire: "devin-connect",
462
+ endpoint: DEVIN_CONNECT_URL,
463
+ requiredHeaders: ["connect-protocol-version"],
464
+ vendor: provider || "devin"
465
+ };
466
+ }
453
467
  if (agentConfig.cliProvider || agentConfig.apiSource === "cli" || provider === "cli") {
454
468
  return {
455
469
  authMethod: { kind: "cli", provider: agentConfig.cliProvider || provider || "codex" },
@@ -606,7 +620,9 @@ var buildSystemPromptContext = (options) => {
606
620
  ${mainPrompt}` : "";
607
621
  const agentTools = canonicalizeToolNames(agentConfig.tools ?? []);
608
622
  const hasAskTool = agentTools.includes("ask_user");
609
- const toolSections = resolveToolGuidedSections(agentTools);
623
+ const toolSections = resolveToolGuidedSections(agentTools, {
624
+ dispatchIntent: options.dispatchIntent === true
625
+ });
610
626
  const {
611
627
  startupProtocol,
612
628
  contextLayerContract,
@@ -686,8 +702,9 @@ var applyClaudeCache = (stableContent, dynamicContent) => {
686
702
  var prependPromptMessage = (messages, agentConfig, resolvedModel, language, contexts, prependSystemPrompt = true) => {
687
703
  if (!prependSystemPrompt) return messages;
688
704
  if (!contexts && !agentConfig.prompt) return messages;
705
+ const dispatchIntent = detectDispatchIntentFromMessages(messages);
689
706
  if (isClaudeModel(resolvedModel)) {
690
- const compiled = buildSystemPromptContext({ agentConfig, language, contexts });
707
+ const compiled = buildSystemPromptContext({ agentConfig, language, contexts, dispatchIntent });
691
708
  if (!compiled.content.trim()) return messages;
692
709
  const content = applyClaudeCache(
693
710
  compiled.stablePrefixContent,
@@ -696,7 +713,7 @@ var prependPromptMessage = (messages, agentConfig, resolvedModel, language, cont
696
713
  const systemMessage2 = { role: "system", content };
697
714
  return [systemMessage2, ...messages];
698
715
  }
699
- const promptContent = buildSystemPrompt({ agentConfig, language, contexts });
716
+ const promptContent = buildSystemPrompt({ agentConfig, language, contexts, dispatchIntent });
700
717
  if (!promptContent.trim()) return messages;
701
718
  const systemMessage = { role: "system", content: promptContent };
702
719
  return [systemMessage, ...messages];
@@ -706,9 +723,12 @@ var shouldInjectLlamaCppThinkingToggle = (agentConfig) => {
706
723
  if (!isLoopbackUrl(agentConfig.customProviderUrl)) return false;
707
724
  return /qwen/i.test(agentConfig.model ?? "");
708
725
  };
709
- var shouldDisableMiMoThinking = (agentConfig) => {
726
+ var shouldDisableMiMoThinking = (agentConfig, resolvedModel) => {
710
727
  if (agentConfig.enableThinking === true) return false;
711
- return /xiaomimimo\.com/i.test(agentConfig.customProviderUrl ?? "") || (agentConfig.provider ?? "").toLowerCase() === "mimo";
728
+ if (/xiaomimimo\.com/i.test(agentConfig.customProviderUrl ?? "") || (agentConfig.provider ?? "").toLowerCase() === "mimo") {
729
+ return true;
730
+ }
731
+ return isPlatformMimoProviderModel(agentConfig.provider, resolvedModel);
712
732
  };
713
733
  var shouldDisableKimiThinking = (agentConfig, providerName, resolvedModel) => {
714
734
  if (agentConfig.enableThinking !== false) return false;
@@ -823,7 +843,7 @@ var generateOpenAIRequestBody = (agentConfig, providerName, messages, contexts,
823
843
  enable_thinking: agentConfig.enableThinking
824
844
  };
825
845
  }
826
- if (shouldDisableMiMoThinking(agentConfig)) {
846
+ if (shouldDisableMiMoThinking(agentConfig, resolvedModel)) {
827
847
  requestBody.thinking = { type: "disabled" };
828
848
  }
829
849
  if (shouldDisableKimiThinking(agentConfig, providerName, resolvedModel)) {
@@ -876,7 +896,9 @@ function generateResponseRequestBody(agentConfig, msgs, contexts, prependSystemP
876
896
  const promptContent = buildSystemPrompt({
877
897
  agentConfig,
878
898
  language,
879
- contexts
899
+ contexts,
900
+ // 按当前用户输入检测派发意图:无意图只注入最小派发协议(安全硬门常在)。
901
+ dispatchIntent: detectDispatchIntentFromMessages(msgs)
880
902
  });
881
903
  body.instructions = promptContent;
882
904
  }
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  generatePkcePair,
3
3
  startCallbackServer
4
- } from "./chunk-GBPZKFYK.js";
4
+ } from "./chunk-53HEEOTT.js";
5
5
  import {
6
6
  toErrorMessage
7
7
  } from "./chunk-HNMXYYJR.js";
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  getModelConfig
3
- } from "./chunk-UJ63UXGE.js";
3
+ } from "./chunk-OIVSQH2O.js";
4
4
  import {
5
5
  isPlatformHostedDeepseekModel,
6
6
  isPlatformHostedOpenAIImageModel,
7
7
  resolvePlatformHostedRouting
8
- } from "./chunk-AJHEFRGJ.js";
8
+ } from "./chunk-Q67DOFOO.js";
9
9
  import {
10
10
  asTrimmedLowercaseString
11
11
  } from "./chunk-QSJ3HFEF.js";
@@ -25,6 +25,8 @@ var PLATFORM_CHAT_COMPLETIONS_ENDPOINTS = {
25
25
  qwen: "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions",
26
26
  // Moonshot AI(月之暗面)开放平台 OpenAI 兼容模式(按量计费)
27
27
  moonshot: "https://api.moonshot.cn/v1/chat/completions",
28
+ // 阶跃星辰(StepFun)开放平台 OpenAI 兼容模式
29
+ stepfun: "https://api.stepfun.com/v1/chat/completions",
28
30
  // 平台托管 GLM 5.3 Flash 的实际上游(RunInfra 独家廉价快档)
29
31
  runinfra: "https://api.runinfra.ai/v1/chat/completions"
30
32
  // 无 nolo 默认上游:平台托管模型全部显式分流,未识别模型返回 undefined
@@ -10,7 +10,7 @@ import {
10
10
  import {
11
11
  patch,
12
12
  readAndWait
13
- } from "./chunk-YFADVSZE.js";
13
+ } from "./chunk-H62HCIUP.js";
14
14
  import {
15
15
  asOptionalTrimmedString
16
16
  } from "./chunk-G3SUCT4W.js";
@@ -326,7 +326,7 @@ async function saveDocState(arg, { dispatch, getState }) {
326
326
  ).unwrap();
327
327
  if (dbSpaceId) {
328
328
  try {
329
- const { updateContentTitle } = await import("./contentThunks-ENAVF2YU.js");
329
+ const { updateContentTitle } = await import("./contentThunks-Y6FA2TCW.js");
330
330
  await dispatch(
331
331
  updateContentTitle({
332
332
  spaceId: dbSpaceId,
@@ -365,7 +365,7 @@ async function saveDocState(arg, { dispatch, getState }) {
365
365
  }
366
366
  }
367
367
  async function createDocState(args, thunkApi) {
368
- const { createPageAction } = await import("./createPageAction-J6AEMLHK.js");
368
+ const { createPageAction } = await import("./createPageAction-GUQDPKO5.js");
369
369
  return createPageAction(args, thunkApi);
370
370
  }
371
371
  function subscribe(listener) {
@@ -2,17 +2,17 @@ import {
2
2
  fileKey,
3
3
  getFileIdFromKey,
4
4
  ulid
5
- } from "./chunk-NHRQCXIQ.js";
5
+ } from "./chunk-VMFTFOWF.js";
6
6
  import {
7
7
  loadFileFromIndexedDb,
8
8
  removeAction,
9
9
  saveFileToIndexedDb
10
- } from "./chunk-SREASRV5.js";
10
+ } from "./chunk-ABQYVJBJ.js";
11
11
  import {
12
12
  readAction,
13
13
  readRequestManager,
14
14
  resolveAgentReadServers
15
- } from "./chunk-5J7W2VWW.js";
15
+ } from "./chunk-WV42OMV7.js";
16
16
  import {
17
17
  asyncThunkCreator,
18
18
  buildCreateSlice,
@@ -32,7 +32,7 @@ import {
32
32
  shouldReplaceLocalWithRemoteRecord,
33
33
  shouldReplicateLocalRecord,
34
34
  uploadToCurrentServer
35
- } from "./chunk-3RAG2NAD.js";
35
+ } from "./chunk-UKWGR5SS.js";
36
36
  import {
37
37
  fetchFromClientDb,
38
38
  fetchFromServer,
@@ -712,7 +712,7 @@ var dbSlice = createSliceWithThunks({
712
712
  // 动态 import 在调用期解析,避开 TDZ/求值顺序问题(同下方 share)。
713
713
  read: create.asyncThunk(
714
714
  async (payload, thunkApi) => {
715
- const { readAction: readAction2 } = await import("./read-LC6HVYBN.js");
715
+ const { readAction: readAction2 } = await import("./read-COE3ZYR6.js");
716
716
  return readAction2(payload, thunkApi);
717
717
  },
718
718
  {
@@ -786,7 +786,7 @@ var dbSlice = createSliceWithThunks({
786
786
  // 这里改成动态 import,运行期才解析,彻底断开这条边。
787
787
  share: create.asyncThunk(
788
788
  async (config, thunkApi) => {
789
- const { shareResourceAction } = await import("./action-D22U6CTH.js");
789
+ const { shareResourceAction } = await import("./action-YVYQEAAV.js");
790
790
  return shareResourceAction(config, thunkApi);
791
791
  }
792
792
  ),
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-UAD2WT54.js";
8
8
  import {
9
9
  toTimestampMs
10
- } from "./chunk-YFADVSZE.js";
10
+ } from "./chunk-H62HCIUP.js";
11
11
  import {
12
12
  fetchFromServer,
13
13
  getAllServers
@@ -5,16 +5,16 @@ import {
5
5
  } from "./chunk-ONXOABJR.js";
6
6
  import {
7
7
  asNonEmptyStringArray
8
- } from "./chunk-I42VC5KR.js";
8
+ } from "./chunk-VMFTFOWF.js";
9
+ import {
10
+ isRecord
11
+ } from "./chunk-KUG52IAP.js";
9
12
  import {
10
13
  asTrimmedString
11
14
  } from "./chunk-3EUW3WEO.js";
12
15
  import {
13
16
  asOptionalPositiveFiniteNumber
14
17
  } from "./chunk-U6VC4MU4.js";
15
- import {
16
- isRecord
17
- } from "./chunk-KUG52IAP.js";
18
18
 
19
19
  // packages/agent-runtime/fileCredentialBroker.ts
20
20
  import {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  isAgentRunTerminalStatus
3
- } from "./chunk-NTW5GWDM.js";
3
+ } from "./chunk-3VNWWVKB.js";
4
4
  import {
5
5
  isCompiledBinary,
6
6
  resolveCliEntrypointPath
@@ -11,6 +11,60 @@ import { homedir as nodeHomedir } from "node:os";
11
11
  import { dirname, isAbsolute, join, resolve } from "node:path";
12
12
  import * as nodeFs from "node:fs";
13
13
  import { execFileSync as nodeExecFileSync, spawn as nodeSpawn } from "node:child_process";
14
+
15
+ // packages/ai/tools/agent/runFailureClass.ts
16
+ var RATE_LIMIT_PATTERN = /429|rate.?limit|quota|insufficient.?balance|UPSTREAM_402|cooling|冷却/i;
17
+ var PROVIDER_ERROR_PATTERN = /provider|upstream|5\d\d|bad.?gateway|service.?unavailable|overloaded/i;
18
+ var MALFORMED_PATTERN = /MALFORMED_FUNCTION_CALL|malformed|invalid.?function.?call|invalid.?tool.?call/i;
19
+ var STALLED_PATTERN = /stall|no.?progress|repetition|stagnant|无进展|卡死/i;
20
+ var TOOL_ERROR_PATTERN = /tool.?error|tool.?fail|工具/i;
21
+ function classifyRunFailure(input) {
22
+ const status = typeof input.status === "string" ? input.status : "";
23
+ if (status === "done" || status === "killed" || status === "cancelled") {
24
+ return void 0;
25
+ }
26
+ const reason = typeof input.failureReason === "string" ? input.failureReason : "";
27
+ const message = typeof input.errorMessage === "string" ? input.errorMessage : "";
28
+ switch (reason) {
29
+ case "provider_rate_limited":
30
+ return { failureClass: "rate_limited", retryable: true };
31
+ case "provider_error":
32
+ return MALFORMED_PATTERN.test(message) ? { failureClass: "provider_error", retryable: false } : { failureClass: "provider_error", retryable: true };
33
+ case "stalled":
34
+ return { failureClass: "stalled", retryable: false };
35
+ case "tool_error":
36
+ return { failureClass: "tool_error", retryable: false };
37
+ case "config_unresolved":
38
+ return { failureClass: "unknown", retryable: false };
39
+ case "cancelled":
40
+ return void 0;
41
+ default:
42
+ break;
43
+ }
44
+ if (message) {
45
+ if (RATE_LIMIT_PATTERN.test(message)) {
46
+ return { failureClass: "rate_limited", retryable: true };
47
+ }
48
+ if (MALFORMED_PATTERN.test(message)) {
49
+ return { failureClass: "provider_error", retryable: false };
50
+ }
51
+ if (STALLED_PATTERN.test(message)) {
52
+ return { failureClass: "stalled", retryable: false };
53
+ }
54
+ if (TOOL_ERROR_PATTERN.test(message)) {
55
+ return { failureClass: "tool_error", retryable: false };
56
+ }
57
+ if (PROVIDER_ERROR_PATTERN.test(message)) {
58
+ return { failureClass: "provider_error", retryable: true };
59
+ }
60
+ }
61
+ if (status === "failed" || status === "timeout" || status === "orphaned") {
62
+ return { failureClass: "unknown", retryable: false };
63
+ }
64
+ return void 0;
65
+ }
66
+
67
+ // packages/cli/agentRunControl.ts
14
68
  var RUN_TERMINAL_STATUSES = /* @__PURE__ */ new Set([
15
69
  "done",
16
70
  "failed",
@@ -405,6 +459,8 @@ function createRunActivityTracker(runId, deps = {}, options = {}) {
405
459
  const fs = deps.fs ?? nodeFs;
406
460
  const now = deps.now ?? (() => /* @__PURE__ */ new Date());
407
461
  const minWriteIntervalMs = options.minWriteIntervalMs ?? DEFAULT_ACTIVITY_WRITE_INTERVAL_MS;
462
+ const keepAlive = options.keepAlive ?? true;
463
+ let disposed = false;
408
464
  let lastEventAt = now().toISOString();
409
465
  let inFlight = null;
410
466
  const counters = { llmCalls: 0, toolCalls: 0, fileEdits: 0 };
@@ -425,7 +481,9 @@ function createRunActivityTracker(runId, deps = {}, options = {}) {
425
481
  };
426
482
  }
427
483
  function doWrite() {
484
+ if (disposed) return;
428
485
  writeTimer = void 0;
486
+ const attemptAt = now().getTime();
429
487
  withRunRecordLock(
430
488
  runId,
431
489
  deps,
@@ -438,7 +496,10 @@ function createRunActivityTracker(runId, deps = {}, options = {}) {
438
496
  },
439
497
  { strict: true }
440
498
  );
499
+ if (lastWriteAt < attemptAt) lastWriteAt = attemptAt;
500
+ if (keepAlive) scheduleWrite();
441
501
  }
502
+ scheduleWrite();
442
503
  function scheduleWrite() {
443
504
  if (writeTimer !== void 0) return;
444
505
  const elapsed = now().getTime() - lastWriteAt;
@@ -446,6 +507,7 @@ function createRunActivityTracker(runId, deps = {}, options = {}) {
446
507
  writeTimer = setTimeout(doWrite, delay);
447
508
  }
448
509
  function onLoopEvent(event) {
510
+ if (disposed) return;
449
511
  lastEventAt = new Date(event.atMs).toISOString();
450
512
  switch (event.kind) {
451
513
  case "llm-start":
@@ -480,6 +542,7 @@ function createRunActivityTracker(runId, deps = {}, options = {}) {
480
542
  doWrite();
481
543
  }
482
544
  function dispose() {
545
+ disposed = true;
483
546
  if (writeTimer !== void 0) {
484
547
  clearTimeout(writeTimer);
485
548
  writeTimer = void 0;
@@ -785,6 +848,7 @@ async function spawnLocalBackgroundRun(input, deps = {}) {
785
848
  logPath,
786
849
  queuePath,
787
850
  batchId,
851
+ ...typeof input.credentialGroup === "string" && input.credentialGroup.trim() ? { credentialGroup: input.credentialGroup.trim() } : {},
788
852
  ...typeof input.parentDialogId === "string" && input.parentDialogId.trim() ? { parentDialogId: input.parentDialogId.trim() } : {},
789
853
  ...dodCommands && dodCommands.length > 0 ? { dodCommands } : {},
790
854
  ...spawnHead ? { spawnHead } : {},
@@ -817,10 +881,13 @@ async function spawnLocalBackgroundRun(input, deps = {}) {
817
881
  });
818
882
  proc.unref();
819
883
  if (typeof proc.pid === "number") {
820
- record.pid = proc.pid;
821
884
  const processStartedAt = (deps.getProcessStartTime ?? defaultGetProcessStartTime)(proc.pid);
822
- if (processStartedAt) record.processStartedAt = processStartedAt.toISOString();
823
- writeRunRecord(record, deps);
885
+ withRunRecordLock(runId, deps, () => {
886
+ const latest = readRunRecord(runId, deps) ?? record;
887
+ latest.pid = proc.pid;
888
+ if (processStartedAt) latest.processStartedAt = processStartedAt.toISOString();
889
+ writeRunRecord(latest, deps);
890
+ });
824
891
  }
825
892
  return { runId, pid: proc.pid, logPath, queuePath, batchId };
826
893
  }
@@ -913,6 +980,15 @@ function transitionRunToTerminal(runId, update, deps = {}, options = {}) {
913
980
  } else if (update.status === "killed") {
914
981
  record2.failureReason = "cancelled";
915
982
  }
983
+ const classification = classifyRunFailure({
984
+ status: update.status,
985
+ failureReason: record2.failureReason,
986
+ errorMessage: update.note ?? record2.note
987
+ });
988
+ if (classification) {
989
+ record2.failureClass = classification.failureClass;
990
+ record2.retryable = classification.retryable;
991
+ }
916
992
  const resolvedToolCount = typeof update.toolCallCount === "number" ? update.toolCallCount : record2.activity?.counters?.toolCalls;
917
993
  if (typeof resolvedToolCount === "number") {
918
994
  record2.toolCallCount = resolvedToolCount;
@@ -1032,6 +1108,15 @@ function checkStaleRun(runId, deps = {}) {
1032
1108
  const at = now().toISOString();
1033
1109
  latest.status = "orphaned";
1034
1110
  latest.note = pidReused ? "orphaned: process gone (pid reused by another process)" : "orphaned: process gone without writing terminal status";
1111
+ const orphanClassification = classifyRunFailure({
1112
+ status: "orphaned",
1113
+ failureReason: latest.failureReason,
1114
+ errorMessage: latest.note
1115
+ });
1116
+ if (orphanClassification) {
1117
+ latest.failureClass = orphanClassification.failureClass;
1118
+ latest.retryable = orphanClassification.retryable;
1119
+ }
1035
1120
  latest.endedAt = at;
1036
1121
  latest.reconciledAt = at;
1037
1122
  latest.pid = void 0;
@@ -1247,6 +1332,18 @@ function printStatusOnce(record, deps) {
1247
1332
  }
1248
1333
  if (record.note) deps.output.write(`note: ${record.note}
1249
1334
  `);
1335
+ if (record.failureReason) deps.output.write(`failure: ${record.failureReason}
1336
+ `);
1337
+ if (record.failureClass) {
1338
+ deps.output.write(
1339
+ `class: ${record.failureClass}${typeof record.retryable === "boolean" ? ` (retryable=${record.retryable})` : ""}
1340
+ `
1341
+ );
1342
+ }
1343
+ if (record.credentialGroup) {
1344
+ deps.output.write(`credGroup: ${record.credentialGroup}
1345
+ `);
1346
+ }
1250
1347
  const activitySummary = formatActivitySummary(record.activity);
1251
1348
  if (activitySummary) deps.output.write(`${activitySummary}
1252
1349
  `);
@@ -1376,14 +1473,20 @@ async function terminateRunProcess(record, initialSignal, deps) {
1376
1473
  signalGroup(initialSignal);
1377
1474
  if (initialSignal === "SIGTERM") {
1378
1475
  const deadline = nowMs() + TERMINATE_GRACE_MS;
1379
- while (!isPidGone(pid, deps) && nowMs() < deadline) {
1476
+ const maxIterations = Math.ceil(TERMINATE_GRACE_MS / TERMINATE_POLL_MS) + 1;
1477
+ let iterations = 0;
1478
+ while (!isPidGone(pid, deps) && nowMs() < deadline && iterations < maxIterations) {
1479
+ iterations += 1;
1380
1480
  await sleep(TERMINATE_POLL_MS);
1381
1481
  }
1382
1482
  }
1383
1483
  if (!isPidGone(pid, deps)) {
1384
1484
  signalGroup("SIGKILL");
1385
1485
  const killDeadline = nowMs() + TERMINATE_KILL_GRACE_MS;
1386
- while (!isPidGone(pid, deps) && nowMs() < killDeadline) {
1486
+ const maxIterations = Math.ceil(TERMINATE_KILL_GRACE_MS / TERMINATE_POLL_MS) + 1;
1487
+ let iterations = 0;
1488
+ while (!isPidGone(pid, deps) && nowMs() < killDeadline && iterations < maxIterations) {
1489
+ iterations += 1;
1387
1490
  await sleep(TERMINATE_POLL_MS);
1388
1491
  }
1389
1492
  }
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  asRecordOrEmpty
3
3
  } from "./chunk-KX6YBIHG.js";
4
- import {
5
- asOptionalFiniteNumber
6
- } from "./chunk-WWC7I6TA.js";
7
4
  import {
8
5
  asNonEmptyStringArray,
9
6
  asTrimmedNonEmptyStringArray
10
- } from "./chunk-I42VC5KR.js";
7
+ } from "./chunk-VMFTFOWF.js";
8
+ import {
9
+ asOptionalFiniteNumber
10
+ } from "./chunk-WWC7I6TA.js";
11
11
  import {
12
12
  isOwnedAgentKey,
13
13
  ownedAgentKey,
14
14
  publicAgentKey
15
- } from "./chunk-BJIRLHJR.js";
15
+ } from "./chunk-M2EJHDJP.js";
16
16
  import {
17
17
  isRecord
18
18
  } from "./chunk-KUG52IAP.js";
@@ -25,6 +25,7 @@ var DEFAULT_PRIVATE_NOLO_WORKSPACE_TOOLS = [
25
25
  "listDialogs",
26
26
  "readDialog",
27
27
  "queryDialogsBySubjectRef",
28
+ "deleteDialogs",
28
29
  "listAgents",
29
30
  "readAgent",
30
31
  "listSpaces",
@@ -199,7 +199,7 @@ async function readDocFunc(args, thunkApi) {
199
199
  throw new Error(`\u65E0\u6548\u7684\u9875\u9762 ID: ${id}\u3002\u9875\u9762 ID \u901A\u5E38\u4EE5 "page-" \u5F00\u5934\u3002`);
200
200
  }
201
201
  try {
202
- const { readAction } = await import("./read-LC6HVYBN.js");
202
+ const { readAction } = await import("./read-COE3ZYR6.js");
203
203
  const pageData = await readAction({ dbKey: id }, thunkApi);
204
204
  if (!pageData) {
205
205
  throw new Error(`\u672A\u627E\u5230 ID \u4E3A ${id} \u7684\u9875\u9762\u3002`);
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  loadProfileConfig
3
- } from "./chunk-2KDR4CWE.js";
3
+ } from "./chunk-BYMV6QZG.js";
4
4
  import {
5
5
  resolveDefaultSpawn
6
6
  } from "./chunk-X7HHHIOZ.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  buildSkillDocMarkdown
3
- } from "./chunk-AETZ7AD6.js";
3
+ } from "./chunk-Q554LLSI.js";
4
4
 
5
5
  // packages/cli/docPageHelpers.ts
6
6
  import { readFileSync } from "node:fs";