nolo-cli 0.191.0-alpha.2 → 0.191.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 (149) hide show
  1. package/{_executeModel-WQ2D4ZRH.js → _executeModel-4HQQXPN4.js} +44 -46
  2. package/{action-BHWB4MOK.js → action-HNG2JKWK.js} +3 -3
  3. package/{addContentAction-BY375D35.js → addContentAction-FEN3H2EE.js} +6 -6
  4. package/{addDialogAgentAction-HOZYOCWC.js → addDialogAgentAction-DDA6S3WS.js} +5 -5
  5. package/{agentDeleteCommand-TTCVC74A.js → agentDeleteCommand-HZFWSKED.js} +57 -59
  6. package/{agentEmailCommands-PTG35KER.js → agentEmailCommands-HRYMVHC7.js} +59 -61
  7. package/{agentListCommands-MAG736RU.js → agentListCommands-HE2CCZEW.js} +33 -31
  8. package/{agentMachineCommands-ATOZK3R5.js → agentMachineCommands-ISSULCRR.js} +23 -23
  9. package/{agentProviderCommands-XSZUCNIR.js → agentProviderCommands-4EAYN3ZY.js} +3 -3
  10. package/{agentRecordCommands-KGRPIJN5.js → agentRecordCommands-WGAMWQLA.js} +57 -59
  11. package/{agentRunCommand-75VVJTNU.js → agentRunCommand-7EQ64FIB.js} +59 -61
  12. package/{agentRunControl-6HHESKDB.js → agentRunControl-EJPBPVLU.js} +5 -5
  13. package/{agentRuntimeLocal-NAAYNHCW.js → agentRuntimeLocal-ONSIOOQB.js} +20 -20
  14. package/{agentSlice-UJPIKKKP.js → agentSlice-CHWNVAS5.js} +6 -6
  15. package/{appDeleteCommands-VDHCDVBF.js → appDeleteCommands-RNAF4V5C.js} +25 -25
  16. package/{appDeployCommands-V6UTKVXR.js → appDeployCommands-LTIZ4QH7.js} +25 -25
  17. package/{appDeployStatusCommands-4UIFSEPC.js → appDeployStatusCommands-OJJR4LDK.js} +25 -25
  18. package/{appGetCommands-XKDXLC3C.js → appGetCommands-UJZF6U4V.js} +25 -25
  19. package/{appListCommands-BELRVX2Y.js → appListCommands-M5C5BIDY.js} +25 -25
  20. package/{authCommand-RV5MQDWN.js → authCommand-RMUBRAXF.js} +11 -11
  21. package/{builtinSkillRegistry-7MBUY5EY.js → builtinSkillRegistry-XDBPVNY6.js} +3 -5
  22. package/{chromeOpsCommands-C46BXHEE.js → chromeOpsCommands-P4PFQDT7.js} +19 -4
  23. package/{chunk-7UODCAWW.js → chunk-32GANJHJ.js} +1 -1
  24. package/{chunk-G6OOUQWJ.js → chunk-4KB6WQUL.js} +2 -0
  25. package/{chunk-LHOR5MC2.js → chunk-4KYV2TAI.js} +164 -323
  26. package/{chunk-5EFNSNAV.js → chunk-6CFXWUYE.js} +7 -7
  27. package/{chunk-6XIE5ZGI.js → chunk-6HIGYUBQ.js} +1 -1
  28. package/{chunk-LBXUNNDS.js → chunk-6K2AKJAD.js} +1 -1
  29. package/{chunk-U5ZHUOLT.js → chunk-6OBTQSJ2.js} +2 -2
  30. package/{chunk-XPL63OIC.js → chunk-7SUYSFPG.js} +140 -66
  31. package/{chunk-53RSTB7T.js → chunk-7TMVGMM3.js} +26 -31
  32. package/{chunk-ZBCBFOWC.js → chunk-A2ZMIRLN.js} +2 -2
  33. package/{chunk-MJWUBTK7.js → chunk-AOYR4XOA.js} +1 -1
  34. package/{chunk-IIX6VWLW.js → chunk-AV6IE6NM.js} +224 -38
  35. package/{chunk-WFUIXNKC.js → chunk-BMXR7CFX.js} +3 -3
  36. package/{chunk-JIFYXQRD.js → chunk-BTYQAODF.js} +26 -8
  37. package/{chunk-VHGD6FHV.js → chunk-BZKBX5BO.js} +28 -5
  38. package/{chunk-Q6RMLYSA.js → chunk-CMLBKYEI.js} +4 -2
  39. package/chunk-CMTTXP5Y.js +291 -0
  40. package/{chunk-OHRDHS4N.js → chunk-CVCRAO6Q.js} +9 -4
  41. package/{chunk-SM56M7N7.js → chunk-DBRXPVWY.js} +39 -5
  42. package/{chunk-2KBNF477.js → chunk-DSVR6ZAV.js} +30 -21
  43. package/{chunk-ADTJJVDJ.js → chunk-DXDG4XLD.js} +2838 -2255
  44. package/{chunk-R5LJWMZE.js → chunk-EMXVOJDB.js} +3 -3
  45. package/{chunk-KHCLMKZZ.js → chunk-EY7V7REW.js} +280 -6
  46. package/{chunk-KGP7UTNN.js → chunk-FNXSQ7A3.js} +15 -15
  47. package/{chunk-BTBT2566.js → chunk-FSEGCTZQ.js} +1 -1
  48. package/{chunk-CNMQATUF.js → chunk-GL7W7TTR.js} +2 -2
  49. package/{chunk-5KTQVMCX.js → chunk-GOO6G4PY.js} +85 -0
  50. package/{chunk-HTLIKE5U.js → chunk-GVMF62PR.js} +2 -2
  51. package/{chunk-UZHYRBUB.js → chunk-H4CFODT7.js} +137 -61
  52. package/{chunk-R4BMKAR5.js → chunk-HAB2UDLT.js} +1 -1
  53. package/{chunk-3NPXGNSK.js → chunk-HVXL4VOO.js} +348 -87
  54. package/{chunk-32ZKZET7.js → chunk-HWZT5DKX.js} +1 -1
  55. package/{chunk-GYVLAHA4.js → chunk-IY7DGZSY.js} +10 -4
  56. package/{chunk-FEDJHD5X.js → chunk-J5Z2SSIY.js} +6 -6
  57. package/{chunk-UVWBGWBO.js → chunk-JA6WCCDO.js} +3 -3
  58. package/{chunk-YE6A72XL.js → chunk-JI5MQU5B.js} +35 -31
  59. package/{chunk-TFSMPRAY.js → chunk-JLOCKFSI.js} +4 -4
  60. package/{chunk-UBLITLAZ.js → chunk-K2GL335R.js} +13 -3
  61. package/{chunk-DS5DAOIY.js → chunk-KYQXW7DL.js} +3 -3
  62. package/{chunk-5HAPEKNH.js → chunk-LFJRTOUV.js} +158 -43
  63. package/{chunk-N7E3LQ4A.js → chunk-LGW6A7GK.js} +1 -1
  64. package/{chunk-UNOILAZP.js → chunk-M6AGLVV4.js} +74 -2
  65. package/{chunk-BA2FHPS4.js → chunk-MOCY5LJI.js} +1 -1
  66. package/{chunk-INFHX73M.js → chunk-MR6L6U46.js} +55 -3
  67. package/{chunk-CTPFBJAF.js → chunk-N7IBYQEC.js} +182 -91
  68. package/{chunk-QU3TLYBR.js → chunk-NHI3JZP4.js} +32 -8
  69. package/{chunk-B2N5GZBU.js → chunk-OHYCQKPW.js} +6 -6
  70. package/{chunk-WAZ6BTSC.js → chunk-OOERQPG5.js} +1 -1
  71. package/{chunk-EHB4CKUI.js → chunk-OTKNEZE3.js} +9 -9
  72. package/chunk-OVBUUU7L.js +2648 -0
  73. package/{chunk-PVD7CRYV.js → chunk-P7SUBTGZ.js} +3 -3
  74. package/{chunk-RJ3EYB5G.js → chunk-PRIROPK4.js} +1 -1
  75. package/chunk-PRJ473FK.js +63 -0
  76. package/{chunk-K6TZSON4.js → chunk-PXERKNSJ.js} +1 -1
  77. package/{chunk-B6EZB6DW.js → chunk-QAYCF4CH.js} +2 -2
  78. package/{chunk-5DPVRMSY.js → chunk-RBJASUX4.js} +1 -1
  79. package/{chunk-NVOYW6H4.js → chunk-RDKNGJ5M.js} +12 -8
  80. package/{chunk-GTP6VNWH.js → chunk-RQ22OZD7.js} +3 -3
  81. package/{chunk-2E5M3JVS.js → chunk-RWGIVUH3.js} +11 -5
  82. package/{chunk-DFF6B7P7.js → chunk-RXUKDHS5.js} +1 -1
  83. package/{chunk-JLR5NWP2.js → chunk-RXX262QX.js} +17 -3
  84. package/{chunk-GC64WGMD.js → chunk-SM3NSZJV.js} +16 -5
  85. package/{chunk-A5BLRE3G.js → chunk-T3U2KQF4.js} +2 -2
  86. package/{chunk-HLAL63BZ.js → chunk-T43B7LB2.js} +1 -1
  87. package/{chunk-LCSAJ5TJ.js → chunk-UDKNC3CV.js} +3 -3
  88. package/{chunk-VE3FEZIT.js → chunk-WKGOIXFV.js} +5 -5
  89. package/{chunk-4YMD7B4Y.js → chunk-WPOKOKZA.js} +2 -2
  90. package/{chunk-YIRADHSY.js → chunk-WYKMOZTW.js} +1 -1
  91. package/{chunk-WRCZXJ4N.js → chunk-X4F26D5K.js} +2 -0
  92. package/{chunk-4MYCKDSI.js → chunk-XUOF4MA7.js} +2 -2
  93. package/{chunk-PD2YRFAI.js → chunk-Y5ZEHS3F.js} +1 -1
  94. package/{chunk-4CEAZRZ4.js → chunk-YU2DGFKG.js} +1 -1
  95. package/{chunk-TVGX5QIN.js → chunk-YUA6OAH5.js} +2 -2
  96. package/{chunk-53PBXLID.js → chunk-Z3MQYKRN.js} +17 -17
  97. package/{chunk-I3HWJODB.js → chunk-ZHOKF4MY.js} +31 -26
  98. package/{chunk-2XUOREKD.js → chunk-ZI5MFQ42.js} +5 -4
  99. package/{chunk-DYQXB46J.js → chunk-ZSCIGIJS.js} +1 -1
  100. package/{commandRegistry-4JHVRMW7.js → commandRegistry-O2657YC7.js} +86 -66
  101. package/{contentThunks-HQBAAXNW.js → contentThunks-THWDEBJU.js} +17 -17
  102. package/{cooldownCommands-4XKJFEBW.js → cooldownCommands-V4EEBD55.js} +3 -3
  103. package/{createAgentAutomationAction-KELPOVMP.js → createAgentAutomationAction-2ZZTFGWG.js} +17 -17
  104. package/{createDialogAction-Z3SASMTM.js → createDialogAction-FCRKPKIT.js} +20 -22
  105. package/{createPageAction-PNHOIG44.js → createPageAction-EC25JTKW.js} +18 -19
  106. package/{dbSlice-QAUXABCC.js → dbSlice-JK7LWBDO.js} +5 -5
  107. package/{deleteFile-R5OBP7OM.js → deleteFile-CE24BROO.js} +3 -3
  108. package/{dialogCommands-4BGV6DPD.js → dialogCommands-QH7BJ3DJ.js} +26 -26
  109. package/{dialogSlice-QHV6I3OQ.js → dialogSlice-Z5E7POEN.js} +16 -16
  110. package/{docCreateCommands-3CW75UF2.js → docCreateCommands-KP42NGIF.js} +26 -27
  111. package/{docDeleteCommands-NL4ZYMN5.js → docDeleteCommands-7YOCX5GC.js} +27 -28
  112. package/{docReadCommands-HXCNVDPQ.js → docReadCommands-EJEIAOKQ.js} +26 -27
  113. package/{docStore-LVMUSECS.js → docStore-6MHLMMWO.js} +6 -6
  114. package/{docUpdateCommands-RMVBAMDE.js → docUpdateCommands-ACJLISGA.js} +26 -27
  115. package/{getPricing-E2PLNWCR.js → getPricing-3PQY3TGI.js} +3 -3
  116. package/{handleSendMessageAction-7TONIXHY.js → handleSendMessageAction-MTOPN4D3.js} +86 -42
  117. package/index.js +7 -7
  118. package/{lib-4YTWAGY7.js → lib-5KKIBFIT.js} +439 -272
  119. package/{localRuntimeAdapter-HRAB7P5E.js → localRuntimeAdapter-4USQ3EP7.js} +55 -57
  120. package/{machineCommands-OTXFRTDA.js → machineCommands-CJMSDSOO.js} +56 -58
  121. package/{machineWsRunDispatch-KWVWOHHG.js → machineWsRunDispatch-YIPO76QH.js} +56 -58
  122. package/{memberThunks-ZAE52VIP.js → memberThunks-WT2KVRP4.js} +158 -55
  123. package/{models-UUNO6DOL.js → models-PJBE6JDV.js} +2 -2
  124. package/package.json +1 -1
  125. package/{providerPresetApply-JGNMO2KX.js → providerPresetApply-ISA35424.js} +5 -5
  126. package/{providerRegistry-33J3ZYFJ.js → providerRegistry-QIQCHVNP.js} +5 -5
  127. package/{read-D6NEWSGG.js → read-ILTT75DW.js} +3 -3
  128. package/{readDocTool-NTAXO7SX.js → readDocTool-374CFJYO.js} +1 -1
  129. package/{readlineWorkspace-CEX5TXGM.js → readlineWorkspace-RORGDWZN.js} +291 -99
  130. package/{removeDialogAgentAction-YEPO5AYI.js → removeDialogAgentAction-BDLO7UC2.js} +7 -7
  131. package/{runAgentClientLoop-DCV4BD2W.js → runAgentClientLoop-CDCBSUWW.js} +41 -43
  132. package/{runtimeDoctorCommands-NYBOTA6D.js → runtimeDoctorCommands-AM2V5YVH.js} +5 -5
  133. package/{secretCommands-N6CMCJDZ.js → secretCommands-G5XYCXZB.js} +308 -1
  134. package/{setDialogExtraReferencesAction-EH5GWDAJ.js → setDialogExtraReferencesAction-GBIT7WAG.js} +6 -6
  135. package/{setPrimaryDialogAgentAction-PNWRK6IY.js → setPrimaryDialogAgentAction-PGBTR247.js} +7 -7
  136. package/{settingThunks-7VCWB6P7.js → settingThunks-XQJZVA4D.js} +38 -7
  137. package/{skillDiscovery-F3TMVQOJ.js → skillDiscovery-DO5372J5.js} +2 -3
  138. package/{spaceCommands-ZUI4CTSO.js → spaceCommands-BTSANKDH.js} +23 -23
  139. package/{streamAgentChatTurn-NKFKMFQ2.js → streamAgentChatTurn-VUF3EUMS.js} +66 -59
  140. package/{switchDialogAgentAction-23BFWJMV.js → switchDialogAgentAction-O7WTPLKG.js} +5 -5
  141. package/{tools-626VXEY7.js → tools-GAAYAIEW.js} +35 -37
  142. package/{tuiSummaryLlmCaller-FSOADMXK.js → tuiSummaryLlmCaller-MKOLOSH3.js} +11 -11
  143. package/{updateCommands-KE6LP3QX.js → updateCommands-W7TXEV7N.js} +3 -3
  144. package/{updateDialogTitleAction-RNNQAMXG.js → updateDialogTitleAction-LE2DBQDS.js} +17 -17
  145. package/{windowsSelfUpdate-26TSFXEZ.js → windowsSelfUpdate-575VQ6QO.js} +2 -2
  146. package/chunk-7KWPNGVJ.js +0 -150
  147. package/chunk-AETZ7AD6.js +0 -274
  148. package/chunk-EUGTFFO6.js +0 -42
  149. package/chunk-VYNMQ6HW.js +0 -138
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  resolveAgentCallPlan
3
- } from "./chunk-WFUIXNKC.js";
3
+ } from "./chunk-BMXR7CFX.js";
4
4
  import {
5
5
  SUBSCRIPTION_OAUTH_PROVIDERS
6
- } from "./chunk-QU3TLYBR.js";
6
+ } from "./chunk-NHI3JZP4.js";
7
7
  import {
8
8
  findModelConfig,
9
9
  getProviderByModelName
10
- } from "./chunk-GC64WGMD.js";
10
+ } from "./chunk-SM3NSZJV.js";
11
11
  import {
12
12
  asOptionalTrimmedString
13
13
  } from "./chunk-G3SUCT4W.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  buildAgentRuntimeAgentLookupKeys,
3
3
  shouldFetchAgentRuntimeRecordRemotely
4
- } from "./chunk-UBLITLAZ.js";
4
+ } from "./chunk-K2GL335R.js";
5
5
 
6
6
  // packages/agent-runtime/oauthProviderRefs.ts
7
7
  var OAUTH_PROVIDER_REFS = [
@@ -0,0 +1,63 @@
1
+ // packages/agent-runtime/skillSlashReference.ts
2
+ var DEFAULT_SKILL_SLASH_USER_PROMPT = "\u8BF7\u6309\u7167\u8BE5\u6280\u80FD\u7684\u6307\u793A\u6267\u884C\u3002";
3
+ function resolveSkillSlashUserPrompt(args) {
4
+ const trimmed = args.replace(/^\s+/, "");
5
+ return trimmed.length > 0 ? trimmed : DEFAULT_SKILL_SLASH_USER_PROMPT;
6
+ }
7
+ function isNonEmpty(value) {
8
+ return typeof value === "string" && value.trim().length > 0;
9
+ }
10
+ function formatSkillSlashReference(reference) {
11
+ let payload;
12
+ switch (reference.source) {
13
+ case "builtin":
14
+ if (!isNonEmpty(reference.id)) throw new TypeError("Empty builtin skill id");
15
+ payload = reference.id;
16
+ break;
17
+ case "space":
18
+ if (!isNonEmpty(reference.dbKey)) throw new TypeError("Empty space skill dbKey");
19
+ payload = reference.dbKey;
20
+ break;
21
+ case "project":
22
+ if (!isNonEmpty(reference.projectBinding) || !isNonEmpty(reference.relativePath)) {
23
+ throw new TypeError("Empty project skill binding or relative path");
24
+ }
25
+ payload = JSON.stringify([reference.projectBinding, reference.relativePath]);
26
+ break;
27
+ default:
28
+ throw new TypeError("Unknown skill source");
29
+ }
30
+ return `/skill@${reference.source}:${encodeURIComponent(payload)}`;
31
+ }
32
+ function parseSkillSlashReference(input) {
33
+ const match = /^\/skill@([^:\s]+):(\S+)([\s\S]*)$/.exec(input);
34
+ if (!match) return null;
35
+ const [, source, encoded, args] = match;
36
+ if (source !== "builtin" && source !== "space" && source !== "project") return null;
37
+ try {
38
+ const payload = decodeURIComponent(encoded);
39
+ if (!isNonEmpty(payload)) return null;
40
+ switch (source) {
41
+ case "builtin":
42
+ return { reference: { source, id: payload }, args };
43
+ case "space":
44
+ return { reference: { source, dbKey: payload }, args };
45
+ case "project": {
46
+ const pair = JSON.parse(payload);
47
+ if (!Array.isArray(pair) || pair.length !== 2 || !pair.every(isNonEmpty)) return null;
48
+ return {
49
+ reference: { source, projectBinding: pair[0], relativePath: pair[1] },
50
+ args
51
+ };
52
+ }
53
+ }
54
+ } catch {
55
+ return null;
56
+ }
57
+ }
58
+
59
+ export {
60
+ resolveSkillSlashUserPrompt,
61
+ formatSkillSlashReference,
62
+ parseSkillSlashReference
63
+ };
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-5ZUL4CUO.js";
4
4
  import {
5
5
  getModelContextWindow
6
- } from "./chunk-JIFYXQRD.js";
6
+ } from "./chunk-BTYQAODF.js";
7
7
  import {
8
8
  normalizeTimingMs
9
9
  } from "./chunk-H57T64RA.js";
@@ -4,11 +4,11 @@ import {
4
4
  import {
5
5
  patch,
6
6
  read
7
- } from "./chunk-B2N5GZBU.js";
7
+ } from "./chunk-OHYCQKPW.js";
8
8
  import {
9
9
  DEVICE_LOCAL_OWNER_ID,
10
10
  isDeviceLocalSpaceBody
11
- } from "./chunk-7UODCAWW.js";
11
+ } from "./chunk-32GANJHJ.js";
12
12
  import {
13
13
  selectIdentityUserId
14
14
  } from "./chunk-PXYBUFDB.js";
@@ -2,7 +2,7 @@ import {
2
2
  deleteDbRecord,
3
3
  queryUserRecords,
4
4
  readDbRecord
5
- } from "./chunk-GYVLAHA4.js";
5
+ } from "./chunk-IY7DGZSY.js";
6
6
  import {
7
7
  mergeAndDedupUserData
8
8
  } from "./chunk-OXME3PEE.js";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-HNUWUO75.js";
4
4
  import {
5
5
  resolveToolImagePolicy
6
- } from "./chunk-PVD7CRYV.js";
6
+ } from "./chunk-P7SUBTGZ.js";
7
7
  import {
8
8
  accumulateToolCallDelta,
9
9
  createThinkParserState,
@@ -30,7 +30,7 @@ import {
30
30
  stablePromptCacheKey,
31
31
  toOpenAiCompatibleMessages,
32
32
  toResponsesTools
33
- } from "./chunk-OHRDHS4N.js";
33
+ } from "./chunk-CVCRAO6Q.js";
34
34
  import {
35
35
  isMeaningfulChatCompletionOutput,
36
36
  isMeaningfulResponsesOutput
@@ -47,14 +47,14 @@ import {
47
47
  resolvePlatformAuthToken,
48
48
  resolvePlatformServerUrl,
49
49
  resolveProviderTransportDecision
50
- } from "./chunk-4YMD7B4Y.js";
50
+ } from "./chunk-WPOKOKZA.js";
51
51
  import {
52
52
  isRecord
53
53
  } from "./chunk-KUG52IAP.js";
54
54
  import {
55
55
  NOLO_CLIENT_VERSION_HEADER,
56
56
  isPlatformMimoProviderModel
57
- } from "./chunk-5KTQVMCX.js";
57
+ } from "./chunk-GOO6G4PY.js";
58
58
 
59
59
  // packages/ai/token/sseUsageExtract.ts
60
60
  var TOKEN_FIELDS = [
@@ -715,7 +715,7 @@ function processPlatformChatSseEvent(event, state) {
715
715
  if (!payload) continue;
716
716
  if (payload === "[DONE]") {
717
717
  state.sawDone = true;
718
- continue;
718
+ return;
719
719
  }
720
720
  let parsed;
721
721
  try {
@@ -782,8 +782,10 @@ function processPlatformChatSseEvent(event, state) {
782
782
  applyResponsesToolEvent(state.responsesToolCalls, parsed);
783
783
  continue;
784
784
  }
785
- if (eventType === "response.completed" && parsed?.response) {
785
+ if (eventType === "response.completed") {
786
+ state.sawResponseCompleted = true;
786
787
  state.completedResponsesPayload = parsed.response;
788
+ continue;
787
789
  }
788
790
  }
789
791
  }
@@ -807,12 +809,14 @@ async function readPlatformChatSseCompletion(args) {
807
809
  thinkState: createThinkParserState(),
808
810
  toolCallTextState: createToolCallTextParserState(),
809
811
  finishReason: void 0,
810
- sawDone: false
812
+ sawDone: false,
813
+ sawResponseCompleted: false
811
814
  };
812
815
  try {
813
816
  for await (const frame of readSseFrames(args.response)) {
814
817
  frameCount += 1;
815
818
  processPlatformChatSseEvent(frame, state);
819
+ if (state.sawDone) break;
816
820
  }
817
821
  } catch (cause) {
818
822
  if (cause instanceof PlatformStreamInterruptedError) {
@@ -853,7 +857,7 @@ async function readPlatformChatSseCompletion(args) {
853
857
  if (dsml.content) state.content += dsml.content;
854
858
  }
855
859
  throwIfChatCompletionStreamFailed(state);
856
- const streamComplete = state.sawDone || Boolean(state.usage) || Boolean(state.finishReason);
860
+ const streamComplete = state.sawDone || state.sawResponseCompleted || Boolean(state.usage) || Boolean(state.finishReason);
857
861
  const streamTruncated = !streamComplete;
858
862
  if (state.usesResponsesApi) {
859
863
  const response = state.completedResponsesPayload;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getModelPricing
3
- } from "./chunk-ZBCBFOWC.js";
3
+ } from "./chunk-A2ZMIRLN.js";
4
4
  import {
5
5
  PUBLIC_DEEPSEEK_V4_FLASH_AGENT_ID,
6
6
  PUBLIC_DEEPSEEK_V4_PRO_AGENT_ID,
@@ -23,14 +23,14 @@ import {
23
23
  } from "./chunk-M2EJHDJP.js";
24
24
  import {
25
25
  getModelConfig
26
- } from "./chunk-GC64WGMD.js";
26
+ } from "./chunk-SM3NSZJV.js";
27
27
  import {
28
28
  isRecord
29
29
  } from "./chunk-KUG52IAP.js";
30
30
  import {
31
31
  isNoloHostedProvider,
32
32
  isPlatformHostedImageModel
33
- } from "./chunk-5KTQVMCX.js";
33
+ } from "./chunk-GOO6G4PY.js";
34
34
 
35
35
  // packages/core/publicAgentSeeds.ts
36
36
  var AGENT_SEED_DEFAULTS = {
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  addContentToSpace
3
- } from "./chunk-5EFNSNAV.js";
3
+ } from "./chunk-6CFXWUYE.js";
4
4
  import {
5
5
  format,
6
6
  prepareAndPersistMessage,
7
7
  uiAskChoiceFunc,
8
8
  uiAskChoiceFunctionSchema
9
- } from "./chunk-YE6A72XL.js";
9
+ } from "./chunk-JI5MQU5B.js";
10
10
  import {
11
11
  formatISO
12
12
  } from "./chunk-ZRAU6T47.js";
@@ -16,7 +16,7 @@ import {
16
16
  removeCachedEntity,
17
17
  upsertSSREntity,
18
18
  write
19
- } from "./chunk-B2N5GZBU.js";
19
+ } from "./chunk-OHYCQKPW.js";
20
20
  import {
21
21
  isDevelopment
22
22
  } from "./chunk-6Q7UTJKR.js";
@@ -25,7 +25,7 @@ import {
25
25
  } from "./chunk-PXYBUFDB.js";
26
26
  import {
27
27
  buildBuiltinObjectSkillReference
28
- } from "./chunk-SM56M7N7.js";
28
+ } from "./chunk-DBRXPVWY.js";
29
29
  import {
30
30
  extractCustomId
31
31
  } from "./chunk-M2EJHDJP.js";
@@ -54,7 +54,7 @@ import {
54
54
  import {
55
55
  PLATFORM_HOSTED_DEEPSEEK_FLASH_MODEL,
56
56
  PLATFORM_HOSTED_KIMI_PROVIDER
57
- } from "./chunk-5KTQVMCX.js";
57
+ } from "./chunk-GOO6G4PY.js";
58
58
 
59
59
  // packages/chat/dialog/objectAssistantRegistry.ts
60
60
  var OBJECT_ASSISTANT_TO_SKILL = {
@@ -840,6 +840,11 @@ var createDialogAction = async (args, thunkApi) => {
840
840
  }
841
841
  }
842
842
  }
843
+ const runtimeBinding = args.runtimeBinding ? {
844
+ ...args.runtimeBinding,
845
+ runtimeAnchorDialogId: args.runtimeBinding.runtimeAnchorDialogId || dialogId,
846
+ agentKey: args.runtimeBinding.agentKey || agentKey || ""
847
+ } : void 0;
843
848
  const dialogData = {
844
849
  id: dialogId,
845
850
  dbKey: dialogPath,
@@ -854,6 +859,7 @@ var createDialogAction = async (args, thunkApi) => {
854
859
  ...spaceId && { spaceId },
855
860
  category,
856
861
  referenceKeys,
862
+ ...runtimeBinding ? { runtimeBinding } : {},
857
863
  ...args.extraReferences && args.extraReferences.length > 0 && { extraReferences: args.extraReferences },
858
864
  ...inheritedFromDialogKey && { inheritedFromDialogKey },
859
865
  ...inheritedFromDialogTitle && { inheritedFromDialogTitle },
@@ -7,7 +7,7 @@ import {
7
7
  import {
8
8
  patch,
9
9
  selectById
10
- } from "./chunk-B2N5GZBU.js";
10
+ } from "./chunk-OHYCQKPW.js";
11
11
 
12
12
  // packages/chat/dialog/actions/setDialogExtraReferencesAction.ts
13
13
  var setDialogExtraReferencesAction = async (extraReferences, thunkApi) => {
@@ -107,6 +107,10 @@ function isAdmissibleQuotaSnapshot(quota, now = Date.now()) {
107
107
  return now - observedAt <= QUOTA_SNAPSHOT_STALE_MS;
108
108
  }
109
109
  function resolveAgentAvailability(agent, now = Date.now()) {
110
+ const exhaustion = agent?.quotaExhaustion;
111
+ if (isAdmissibleQuotaSnapshot(exhaustion, now)) {
112
+ return { status: "quota_exhausted", reason: "quota_exhausted_response" };
113
+ }
110
114
  const quota = agent?.quota;
111
115
  const isAdmissible = isAdmissibleQuotaSnapshot(quota, now);
112
116
  const hasObservedAt = Boolean(quota) && typeof quota?.observedAt === "number" && Number.isFinite(quota.observedAt);
@@ -247,13 +251,14 @@ function parseExplicitAvailableAt(body, now, headers) {
247
251
  }
248
252
  return void 0;
249
253
  }
250
- var QUOTA_EXHAUSTED_TEXT_RE = /insufficient[_ ]?quota|quota\s*(?:(?:is|has|been|was|now|fully|completely|already|entirely)\s+)*(?:limit\s+)?(?:exhausted|depleted|used\s*up|reached|exceeded)|usage\s*limit\s*(?:reached|exceeded|exhausted)|(?:\b(?:weekly|monthly|5-?hour|5h|7-?day|7d)\s*(?:\([^)]*\)\s*)?limit\s*(?:reached|exceeded|exhausted|depleted)\b)|(?:reached|exceeded)\s+your\s+.*?(?:usage\s+)?limit|exceeded\s*your\s*(?:current\s*)?quota|insufficient[_\s-]?(?:balance|credits?)|balance\s*(?:is\s*)?(?:insufficient|too\s*low)|(?:额度|配额|用量)(?:已|已经|也)?(?:用尽|耗尽|用完|超限|不足)|(?:已达|已达到|超出|超过)[^。;,\n]{0,12}(?:用量上限|配额上限|额度上限)|余额(?:不足|不够|已用尽|已耗尽)/i;
254
+ var QUOTA_EXHAUSTED_TEXT_RE = /insufficient[_ ]?quota|quota\s*(?:(?:is|has|been|was|now|fully|completely|already|entirely)\s+)*(?:limit\s+)?(?:exhausted|depleted|used\s*up|reached|exceeded)|usage\s*limit\s*(?:reached|exceeded|exhausted)|(?:\b(?:weekly|monthly|5-?hour|5h|7-?day|7d)\s*(?:\([^)]*\)\s*)?limit\s*(?:reached|exceeded|exhausted|depleted)\b)|(?:reached|exceeded)\s+your\s+.*?(?:usage\s+)?limit|exceeded\s*your\s*(?:current\s*)?quota|insufficient[_\s-]?(?:balance|credits?)|balance\s*(?:is\s*)?(?:insufficient|too\s*low)|(?:额度|配额|用量)(?:已|已经|也)?(?:用尽|耗尽|用完|超限|不足)|(?:已达到|已达|超出|超过)[^。;,\n]{0,40}(?:用量上限|配额上限|额度上限)|余额(?:不足|不够|已用尽|已耗尽)/i;
251
255
  var NEGATED_QUOTA_TEXT_RE = /\b(?:not|no\s+longer|never|haven't|hasn't|isn't|aren't)\s+(?:(?:currently|really|actually|yet)\s+)?(?:quota\s+exhausted|limit\s+exhausted|exhausted|depleted|used\s*up|reached|exceeded|out\s+of\s+quota)\b/i;
252
256
  var CAPACITY_SATURATED_TEXT_RE = /\b(?:is\s+at\s+capacity|at\s+capacity|capacity\s*(?:is\s*)?(?:saturated|exceeded|unavailable)|overloaded|over\s*capacity)\b/i;
253
257
  var NEGATED_CAPACITY_TEXT_RE = /\b(?:not|no\s+longer|never)\s+(?:(?:currently|really|actually|yet)\s+)?(?:at\s+capacity|capacity\s*(?:is\s*)?(?:saturated|exceeded|unavailable)|overloaded|over\s*capacity)\b/i;
254
258
  function isQuotaExhaustedText(body) {
255
259
  const text = typeof body === "string" ? body : JSON.stringify(body ?? "");
256
260
  if (!text) return false;
261
+ if (/"(?:code|status_code)"\s*:\s*"?2056"?(?=\s*[,}])/.test(text)) return true;
257
262
  if (NEGATED_QUOTA_TEXT_RE.test(text)) return false;
258
263
  return QUOTA_EXHAUSTED_TEXT_RE.test(text) || isQuotaLimited403Body(text);
259
264
  }
@@ -270,10 +275,19 @@ function resolveNextAvailableAt(body, now, headers) {
270
275
  return parsed ?? clampCooldownDeadline(now + DEFAULT_PROVIDER_RETRY_MS, now);
271
276
  }
272
277
  function resolveAvailabilityAction(status, body, now, headers) {
273
- if (status === 403 && isQuotaLimited403Body(body)) {
278
+ if (status >= 200 && status < 300) {
279
+ const b = body;
280
+ if (b && typeof b === "object" && !(Array.isArray(b.choices) && b.choices.length > 0)) {
281
+ const isQuotaCode = (code) => code === 2056 || code === "2056";
282
+ if (isQuotaCode(b.code) || isQuotaCode(b.error?.code) || isQuotaCode(b.base_resp?.status_code)) {
283
+ return { kind: "mark", nextAvailableAt: resolveNextAvailableAt(body, now, headers) };
284
+ }
285
+ }
286
+ return { kind: "clear" };
287
+ }
288
+ if (isQuotaExhaustedText(body)) {
274
289
  return { kind: "mark", nextAvailableAt: resolveNextAvailableAt(body, now, headers) };
275
290
  }
276
- if (status >= 200 && status < 300) return { kind: "clear" };
277
291
  if (status === 429) {
278
292
  if (isCapacitySaturatedRateLimit(body, now, headers)) {
279
293
  return { kind: "mark", nextAvailableAt: now + THIN_RATE_LIMIT_COOLDOWN_MS };
@@ -7,9 +7,10 @@ import {
7
7
  gmiModels,
8
8
  openrouterModels,
9
9
  platformHostedModels,
10
+ resolvePlatformEffectiveModel,
10
11
  toCnyCredits,
11
12
  zaiModels
12
- } from "./chunk-5KTQVMCX.js";
13
+ } from "./chunk-GOO6G4PY.js";
13
14
 
14
15
  // packages/integrations/qwen/models.ts
15
16
  var qwenModels = [
@@ -2361,11 +2362,12 @@ var REASONING_EFFORT_OPTIONS = [
2361
2362
  "medium",
2362
2363
  "high",
2363
2364
  "xhigh",
2364
- "max"
2365
+ "max",
2366
+ "ultra"
2365
2367
  ];
2366
2368
  var PROVIDER_REASONING_EFFORT_VALUES = {
2367
- openai: ["none", "minimal", "low", "medium", "high", "xhigh", "max"],
2368
- openrouter: ["none", "minimal", "low", "medium", "high", "xhigh", "max"],
2369
+ openai: ["none", "minimal", "low", "medium", "high", "xhigh", "max", "ultra"],
2370
+ openrouter: ["none", "minimal", "low", "medium", "high", "xhigh", "max", "ultra"],
2369
2371
  deepseek: ["low", "high", "max"],
2370
2372
  // nolo (Ollama Cloud) 支持 DeepSeek/Kimi/GLM 等 thinking 模型,
2371
2373
  // reasoning_effort 通过 OpenAI 兼容端点透传到 Ollama Cloud。
@@ -3219,6 +3221,7 @@ var REASONING_MODEL_NAMES = /* @__PURE__ */ new Set([
3219
3221
  "gpt-5.5-pro",
3220
3222
  "gpt-6-astra",
3221
3223
  "gpt-6.1-sol",
3224
+ "gpt-6.1-terra",
3222
3225
  "gpt-6-sol",
3223
3226
  "gpt-6-luna",
3224
3227
  "gpt-5.6-sol",
@@ -3254,7 +3257,8 @@ var EFFORT_ORDER = [
3254
3257
  "medium",
3255
3258
  "high",
3256
3259
  "xhigh",
3257
- "max"
3260
+ "max",
3261
+ "ultra"
3258
3262
  ];
3259
3263
  function nearestSupportedEffort(effort, supported) {
3260
3264
  const effortIdx = EFFORT_ORDER.indexOf(effort);
@@ -3440,6 +3444,13 @@ var findOpenRouterUpstreamModel = (name) => {
3440
3444
  function findModelConfig(provider, name) {
3441
3445
  const normalizedProvider = normalizeLookupProvider(provider);
3442
3446
  if (!normalizedProvider) return null;
3447
+ if (normalizedProvider === "nolo") {
3448
+ const effective = resolvePlatformEffectiveModel(name);
3449
+ if (effective && effective !== name) {
3450
+ const aliased = findCandidateInProvider(normalizedProvider, effective);
3451
+ if (aliased) return aliased;
3452
+ }
3453
+ }
3443
3454
  const direct = findCandidateInProvider(normalizedProvider, name);
3444
3455
  if (direct) return direct;
3445
3456
  if (normalizedProvider === "openrouter") {
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  selectCurrentServer
3
- } from "./chunk-32ZKZET7.js";
3
+ } from "./chunk-HWZT5DKX.js";
4
4
  import {
5
5
  patch
6
- } from "./chunk-B2N5GZBU.js";
6
+ } from "./chunk-OHYCQKPW.js";
7
7
  import {
8
8
  getIsDesktopApp
9
9
  } from "./chunk-6Q7UTJKR.js";
@@ -4,7 +4,7 @@ import {
4
4
  openrouterModels,
5
5
  platformHostedModels,
6
6
  zaiModels
7
- } from "./chunk-5KTQVMCX.js";
7
+ } from "./chunk-GOO6G4PY.js";
8
8
 
9
9
  // packages/ai/llm/modelAbility.ts
10
10
  var MODEL_ABILITY_TABLE = {
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  toolRegistry
3
- } from "./chunk-LHOR5MC2.js";
3
+ } from "./chunk-4KYV2TAI.js";
4
4
  import {
5
5
  runtime_default
6
- } from "./chunk-YE6A72XL.js";
6
+ } from "./chunk-JI5MQU5B.js";
7
7
  import {
8
8
  canonicalizeToolNames
9
9
  } from "./chunk-AKE53VMW.js";
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-KUG52IAP.js";
13
13
  import {
14
14
  isNoloHostedProvider
15
- } from "./chunk-5KTQVMCX.js";
15
+ } from "./chunk-GOO6G4PY.js";
16
16
  import {
17
17
  asTrimmedLowercaseString
18
18
  } from "./chunk-QSJ3HFEF.js";
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  createCliLocalRuntimeAdapter,
3
3
  summarizeEndpoint
4
- } from "./chunk-XPL63OIC.js";
4
+ } from "./chunk-7SUYSFPG.js";
5
5
  import {
6
6
  clipMultilineText
7
- } from "./chunk-3NPXGNSK.js";
7
+ } from "./chunk-HVXL4VOO.js";
8
8
  import {
9
9
  runLocalAgentTurn
10
- } from "./chunk-ADTJJVDJ.js";
10
+ } from "./chunk-DXDG4XLD.js";
11
11
  import {
12
12
  applyToolSurfaceConstraints
13
- } from "./chunk-UBLITLAZ.js";
13
+ } from "./chunk-K2GL335R.js";
14
14
  import {
15
15
  resolveLocalRuntimeEnvFromPolicy
16
16
  } from "./chunk-TRZP7JZ7.js";
@@ -38,7 +38,7 @@ import {
38
38
  } from "./chunk-Y6ROFCZO.js";
39
39
  import {
40
40
  t
41
- } from "./chunk-UNOILAZP.js";
41
+ } from "./chunk-M6AGLVV4.js";
42
42
  import {
43
43
  asTrimmedNonEmptyStringArray
44
44
  } from "./chunk-I42VC5KR.js";
@@ -4,7 +4,7 @@ import {
4
4
  resolvePlatformHostedCredentialProvider,
5
5
  resolvePlatformProxyChatGatewayEndpoint,
6
6
  resolvePlatformResponsesEndpoint
7
- } from "./chunk-TVGX5QIN.js";
7
+ } from "./chunk-YUA6OAH5.js";
8
8
  import {
9
9
  CLI_PROVIDER_VALUES
10
10
  } from "./chunk-5BHQICF2.js";
@@ -21,7 +21,7 @@ import {
21
21
  CLIENT_VERSION_TOO_OLD_CODE,
22
22
  buildClientVersionGateErrorDetail,
23
23
  evaluatePlatformHostedClientVersionGate
24
- } from "./chunk-5KTQVMCX.js";
24
+ } from "./chunk-GOO6G4PY.js";
25
25
  import {
26
26
  asTrimmedLowercaseString
27
27
  } from "./chunk-QSJ3HFEF.js";
@@ -206,7 +206,7 @@ async function readDocFunc(args, thunkApi) {
206
206
  throw new Error(`\u65E0\u6548\u7684\u9875\u9762 ID: ${id}\u3002\u9875\u9762 ID \u901A\u5E38\u4EE5 "page-" \u5F00\u5934\u3002`);
207
207
  }
208
208
  try {
209
- const { readAction } = await import("./read-D6NEWSGG.js");
209
+ const { readAction } = await import("./read-ILTT75DW.js");
210
210
  const pageData = await readAction({ dbKey: id }, thunkApi);
211
211
  if (!pageData) {
212
212
  throw new Error(`\u672A\u627E\u5230 ID \u4E3A ${id} \u7684\u9875\u9762\u3002`);
@@ -2409,6 +2409,8 @@ export {
2409
2409
  asyncThunkCreator,
2410
2410
  buildCreateSlice,
2411
2411
  createEntityAdapter,
2412
+ TIMEOUT,
2413
+ noloRequest,
2412
2414
  noloPatchRequest,
2413
2415
  noloWriteRequest,
2414
2416
  noloUploadRequest,
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  requireTokenUser
3
- } from "./chunk-PD2YRFAI.js";
3
+ } from "./chunk-Y5ZEHS3F.js";
4
4
  import {
5
5
  resolveServerUrl
6
6
  } from "./chunk-WACI5I6V.js";
7
7
  import {
8
8
  t
9
- } from "./chunk-UNOILAZP.js";
9
+ } from "./chunk-M6AGLVV4.js";
10
10
 
11
11
  // packages/cli/cliApiClient.ts
12
12
  var CliApiError = class extends Error {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  readDbRecord,
3
3
  writeAgentRecord
4
- } from "./chunk-GYVLAHA4.js";
4
+ } from "./chunk-IY7DGZSY.js";
5
5
  import {
6
6
  buildSkillSummaryMarker
7
7
  } from "./chunk-VF4K2QE6.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  generatePkcePair,
3
3
  startCallbackServer
4
- } from "./chunk-DYQXB46J.js";
4
+ } from "./chunk-ZSCIGIJS.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-GC64WGMD.js";
3
+ } from "./chunk-SM3NSZJV.js";
4
4
  import {
5
5
  isPlatformHostedDeepseekModel,
6
6
  isPlatformHostedOpenAIImageModel,
7
7
  resolvePlatformHostedRouting
8
- } from "./chunk-5KTQVMCX.js";
8
+ } from "./chunk-GOO6G4PY.js";
9
9
  import {
10
10
  asTrimmedLowercaseString
11
11
  } from "./chunk-QSJ3HFEF.js";
@@ -1,3 +1,7 @@
1
+ import {
2
+ getCurrentSpaceIdRaw,
3
+ setCurrentSpaceBoth
4
+ } from "./chunk-5XBUWM6I.js";
1
5
  import {
2
6
  createSpaceKey,
3
7
  normalizeSpaceId
@@ -7,7 +11,7 @@ import {
7
11
  } from "./chunk-YDH3FDFQ.js";
8
12
  import {
9
13
  toTimestampMs
10
- } from "./chunk-B2N5GZBU.js";
14
+ } from "./chunk-OHYCQKPW.js";
11
15
  import {
12
16
  fetchFromServer,
13
17
  getAllServers
@@ -59,9 +63,6 @@ function dedupeMemberSpacesById(memberSpaces) {
59
63
  });
60
64
  return Array.from(membershipMap.values());
61
65
  }
62
- function getMemberSpaces() {
63
- return state.memberSpaces;
64
- }
65
66
  function getAllMemberSpaces() {
66
67
  const memberSpaces = dedupeMemberSpacesById(state.memberSpaces || []);
67
68
  return [...memberSpaces].sort((a, b) => {
@@ -93,15 +94,6 @@ function setMembershipRejected(errorMessage, isRemoteUnavailable) {
93
94
  };
94
95
  notify();
95
96
  }
96
- function hydrateMemberSpacesFromLocal(spaces) {
97
- if (state.memberSpaces !== null || spaces.length === 0) return;
98
- state = {
99
- ...state,
100
- memberSpaces: dedupeMemberSpacesById(spaces),
101
- loading: false
102
- };
103
- notify();
104
- }
105
97
  function appendRecoveredMemberships(recovered) {
106
98
  if (!recovered || recovered.length === 0) return;
107
99
  if (state.memberSpaces === null) {
@@ -279,6 +271,16 @@ var fetchAuthoritativeRemoteSpace = async ({
279
271
  return null;
280
272
  };
281
273
 
274
+ // packages/create/space/applyFetchSpaceFulfilled.ts
275
+ function applyFetchSpaceFulfilled(payload) {
276
+ const { spaceId, spaceData } = payload;
277
+ const currentSpaceId = getCurrentSpaceIdRaw();
278
+ if (!currentSpaceId || currentSpaceId === spaceId) {
279
+ setCurrentSpaceBoth(spaceId, spaceData);
280
+ setSpaceInitialized();
281
+ }
282
+ }
283
+
282
284
  export {
283
285
  selectSpaceRemoteAuth,
284
286
  spaceListsUser,
@@ -286,16 +288,14 @@ export {
286
288
  fetchRemoteUserSpaceMemberships,
287
289
  fetchRemoteSpace,
288
290
  fetchAuthoritativeRemoteSpace,
289
- getMemberSpaces,
290
291
  getAllMemberSpaces,
291
292
  setMemberSpaces,
292
293
  setMembershipLoading,
293
294
  setMembershipRejected,
294
- hydrateMemberSpacesFromLocal,
295
295
  appendRecoveredMemberships,
296
- setSpaceInitialized,
297
296
  setMembershipLoaded,
298
297
  addMemberSpace,
299
298
  removeMemberSpace,
300
- updateMemberSpaceName
299
+ updateMemberSpaceName,
300
+ applyFetchSpaceFulfilled
301
301
  };