nolo-cli 0.11.0 → 0.12.0-alpha.10

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 (123) hide show
  1. package/{_executeModel-ZEDPX6OF.js → _executeModel-4F7VZR5U.js} +52 -50
  2. package/{action-AA4IJ5K2.js → action-OTOWUMPW.js} +8 -9
  3. package/{addContentAction-QYVO4SYP.js → addContentAction-JGBUVR7K.js} +7 -9
  4. package/{addDialogAgentAction-WVVKT5WQ.js → addDialogAgentAction-V6CL2UCF.js} +9 -10
  5. package/{agentDeleteCommand-RDPGYIWF.js → agentDeleteCommand-MMRSG6AB.js} +39 -28
  6. package/{agentEmailCommands-2HJJKS5F.js → agentEmailCommands-YFVKOGM7.js} +65 -62
  7. package/{agentListCommands-HFEVV3ZW.js → agentListCommands-2PZHIQ3I.js} +128 -31
  8. package/{agentMachineCommands-25ZOENJU.js → agentMachineCommands-55UUZNHF.js} +38 -26
  9. package/{agentPullCommand-GOL2S4W2.js → agentPullCommand-KRBRIFIY.js} +7 -7
  10. package/{agentRecordCommands-GTCOAM3L.js → agentRecordCommands-BTP3OAPL.js} +57 -54
  11. package/{agentRunCommand-YBS3JDLD.js → agentRunCommand-AA4QLRQZ.js} +60 -59
  12. package/{agentRunControl-K4VKNEHF.js → agentRunControl-IX4F5W2C.js} +3 -3
  13. package/{agentRuntimeLocal-UQBMQI2M.js → agentRuntimeLocal-QDJCBXM2.js} +31 -15
  14. package/{agentSlice-6EKOBCCS.js → agentSlice-6JAJOU3X.js} +8 -9
  15. package/{authCommand-O2OWACN4.js → authCommand-DMW336GT.js} +15 -15
  16. package/{authCommands-H7365TZP.js → authCommands-GH5T6RYV.js} +6 -6
  17. package/{chunk-E4HNJSHC.js → chunk-2BVGERJ2.js} +81 -19
  18. package/{chunk-LP65VRCI.js → chunk-3MI5LDDU.js} +6 -6
  19. package/{chunk-OPZYGHUC.js → chunk-3WGLLTK4.js} +59 -1
  20. package/{chunk-KJR5KAUQ.js → chunk-3XF6LCCN.js} +20 -7
  21. package/{chunk-PXZAAB4L.js → chunk-4LG74DRG.js} +4 -4
  22. package/{chunk-2FTTDCD4.js → chunk-4ON5AV72.js} +2 -1
  23. package/{chunk-IWX4UW2E.js → chunk-524BDL33.js} +89 -8
  24. package/{chunk-ISNCLGUZ.js → chunk-5NBHQD4D.js} +4 -3
  25. package/{chunk-ZPRK73XY.js → chunk-5S4SWV5G.js} +51 -38
  26. package/{chunk-EVZKZF32.js → chunk-5V524MHX.js} +195 -78
  27. package/{chunk-CKOJQDKR.js → chunk-7JJCGV7N.js} +146 -3
  28. package/{chunk-NEM67FX7.js → chunk-ARSC56DC.js} +1 -1
  29. package/{chunk-AFON4QUU.js → chunk-AS3ZQ3O2.js} +19 -28
  30. package/{chunk-4SOKXIW4.js → chunk-B4KT7RN2.js} +10 -13
  31. package/chunk-BYXBJQAS.js +0 -0
  32. package/{chunk-PXQN7IBQ.js → chunk-C3BFP57W.js} +95 -2
  33. package/{chunk-AEZAORLG.js → chunk-CGDQDXKZ.js} +5 -5
  34. package/{chunk-MQI77IRB.js → chunk-DPFWKRHG.js} +2 -2
  35. package/{chunk-TACHTH5D.js → chunk-EIMX5ER5.js} +18 -18
  36. package/{chunk-5MOUAAMK.js → chunk-FSUZIGIG.js} +197 -2578
  37. package/{chunk-FXXSGWAJ.js → chunk-H5Y2H2N6.js} +1 -1
  38. package/chunk-IKXL2HZ3.js +70 -0
  39. package/{chunk-QNMFBBZK.js → chunk-IVAOVLM7.js} +1 -1
  40. package/chunk-JFANOO7I.js +2274 -0
  41. package/{chunk-YPRZSPF3.js → chunk-JKWWVF2I.js} +1 -1
  42. package/{chunk-3NSIQZZ6.js → chunk-JU7J7EAV.js} +45 -45
  43. package/{chunk-X2S7JTIG.js → chunk-KWBH4RAL.js} +1280 -137
  44. package/{chunk-OUI3ZHYD.js → chunk-LUKQQJFL.js} +39 -2
  45. package/{chunk-BX6U3ETE.js → chunk-MG6BVV3T.js} +320 -102
  46. package/{chunk-L53FGHA4.js → chunk-MQRZ5QUH.js} +1 -1
  47. package/{chunk-2W2VYVI5.js → chunk-MZHSAPZP.js} +675 -177
  48. package/{chunk-YOCHZD7D.js → chunk-NCGFB7NN.js} +5 -3
  49. package/{chunk-DWGAEFJL.js → chunk-O4FOPRCP.js} +1 -1
  50. package/chunk-OGGHETUE.js +4900 -0
  51. package/{chunk-PNEW2Z3T.js → chunk-OHEKYYJF.js} +7 -7
  52. package/chunk-OOIN7HSO.js +146 -0
  53. package/{chunk-SV5MWASH.js → chunk-OPM2DE2J.js} +12 -12
  54. package/{chunk-5OIFWVX7.js → chunk-QJSTNKJY.js} +1 -1
  55. package/{chunk-C4FTUXVF.js → chunk-QLUFR47U.js} +11 -1
  56. package/{chunk-LAX2JSTX.js → chunk-QUHUVG6Y.js} +20 -2
  57. package/{chunk-D6OQHXVG.js → chunk-RQSOAMPJ.js} +22 -6
  58. package/{chunk-ZEYDOXHF.js → chunk-RUGEW4P7.js} +1515 -884
  59. package/{chunk-GBDSZATH.js → chunk-RWO5DGXI.js} +3 -3
  60. package/{chunk-S3GS2PRL.js → chunk-TA7VKOHU.js} +613 -70
  61. package/{chunk-XYZA7S7V.js → chunk-TQYYGE6G.js} +6 -6
  62. package/{chunk-YTBMA7NO.js → chunk-TYPHUVK5.js} +70 -8
  63. package/{chunk-4ZDM73SD.js → chunk-V2J635L5.js} +1 -1
  64. package/{chunk-C2MDQQ4O.js → chunk-VBSWHE5W.js} +1 -1
  65. package/{chunk-O26GI2JP.js → chunk-VKG4HXYV.js} +39 -8
  66. package/{chunk-IPYUUY4E.js → chunk-WPHL6ALY.js} +1 -1
  67. package/{chunk-7D3JY6C2.js → chunk-WVTBAALN.js} +64 -5
  68. package/{chunk-XFOLQLDN.js → chunk-XHQWJUW4.js} +2 -2
  69. package/{chunk-Q3UKJVU4.js → chunk-Y5P3ZRGC.js} +10 -10
  70. package/{chunk-KQQVGRA3.js → chunk-YUMYYXPI.js} +53 -183
  71. package/cliEnvHelpers-VYC2OPTB.js +30 -0
  72. package/{createAgentAutomationAction-LTI5QU35.js → createAgentAutomationAction-4NY4JLOK.js} +26 -26
  73. package/{createDialogAction-OJJ7L3L3.js → createDialogAction-I5WUWFJ6.js} +26 -26
  74. package/{createPageAction-5MXWVRGY.js → createPageAction-HFTIQ7TW.js} +26 -26
  75. package/{dbSlice-RQFQQVHT.js → dbSlice-J4PUZ6Y5.js} +6 -7
  76. package/{deleteFile-7XP5BGC7.js → deleteFile-M7UNIUOO.js} +4 -4
  77. package/{dialogCommands-JTJ3RPPW.js → dialogCommands-SVXRJFZS.js} +34 -23
  78. package/{dialogSlice-OWROKURJ.js → dialogSlice-35LA3ZRG.js} +26 -26
  79. package/{docCreateCommands-WJBEW2V7.js → docCreateCommands-Z7RIAYKQ.js} +34 -23
  80. package/{docDeleteCommands-BVEHJOY5.js → docDeleteCommands-NEYHUVZF.js} +35 -25
  81. package/{docReadCommands-NEWOZIJV.js → docReadCommands-I4US2SDE.js} +34 -23
  82. package/{docStore-3DXRYBMD.js → docStore-3CP2IO6M.js} +25 -25
  83. package/{docUpdateCommands-C7WHT7UU.js → docUpdateCommands-UU5HQBRP.js} +34 -23
  84. package/fetchMessages-KTNM7QAR.js +1 -1
  85. package/{getPricing-3E6UNPKL.js → getPricing-UGDJHI7M.js} +7 -3
  86. package/{handleSendMessageAction-B5PRR7BE.js → handleSendMessageAction-FWTLQGOZ.js} +30 -30
  87. package/index.js +77 -76
  88. package/{localDialogRead-YSKFFRTT.js → localDialogRead-2VRI24F4.js} +1 -1
  89. package/{machineCommands-IIIREAEK.js → machineCommands-STHZKBDJ.js} +64 -61
  90. package/{machineWsRunDispatch-3SIU6ILW.js → machineWsRunDispatch-7YHT4TPT.js} +56 -53
  91. package/{memoryCommands-O4MIPIWQ.js → memoryCommands-AFMES3LN.js} +5 -5
  92. package/{models-4OPOOLFS.js → models-LSCRJJ6P.js} +2 -2
  93. package/package.json +1 -1
  94. package/{read-QJNKRROM.js → read-2MIMRBZ2.js} +4 -4
  95. package/{readDocTool-H6X6KO6X.js → readDocTool-QHVGQHUJ.js} +1 -1
  96. package/{readlineWorkspace-HGP3I3OC.js → readlineWorkspace-OMRWYMB6.js} +1279 -716
  97. package/{removeDialogAgentAction-TCT35SOF.js → removeDialogAgentAction-XUZYQBV4.js} +13 -13
  98. package/{runAgentClientLoop-EFM4PTVI.js → runAgentClientLoop-FP2K33ZO.js} +47 -46
  99. package/{runtimeDoctorCommands-ID43Z7VX.js → runtimeDoctorCommands-QNF3J3UV.js} +6 -6
  100. package/{setDialogExtraReferencesAction-CGYLZMFH.js → setDialogExtraReferencesAction-PTAIFKGM.js} +9 -10
  101. package/{setPrimaryDialogAgentAction-F6BFQDJU.js → setPrimaryDialogAgentAction-HRFTDB44.js} +13 -13
  102. package/{settingSlice-2I5HMG47.js → settingSlice-VGRJUSE5.js} +7 -8
  103. package/{skillDiscovery-UGSQGX2U.js → skillDiscovery-6M2BZUFN.js} +3 -3
  104. package/{spaceCommands-MT7BWCIL.js → spaceCommands-GN73BCOB.js} +38 -29
  105. package/{spaceSlice-BS5TSW3W.js → spaceSlice-WTFNKOVA.js} +30 -26
  106. package/{streamAgentChatTurn-I3VBFNR3.js → streamAgentChatTurn-HBAQQVNK.js} +442 -130
  107. package/{toolApiClient-C7P7YSE4.js → toolApiClient-QI3YBNWB.js} +2 -2
  108. package/{tools-XSD2BOEN.js → tools-TPQYTLQZ.js} +34 -33
  109. package/{tuiSummaryLlmCaller-32NRHTT2.js → tuiSummaryLlmCaller-XDC7WG4K.js} +11 -7
  110. package/{updateCommands-VOSPKXFF.js → updateCommands-XZDOOYFH.js} +13 -5
  111. package/{updateDialogTitleAction-7FYNJOGP.js → updateDialogTitleAction-AWXNPUQJ.js} +30 -29
  112. package/chunk-AZPCASRE.js +0 -36
  113. package/chunk-BBYVOSU2.js +0 -792
  114. package/chunk-DCOA4QSN.js +0 -105
  115. package/chunk-UAD2WT54.js +0 -64
  116. package/{chunk-JK7VW2FN.js → chunk-5MIDPSSK.js} +3 -3
  117. package/{chunk-5CS33IBL.js → chunk-PDL2AV3E.js} +3 -3
  118. package/{chunk-5MMZUWSG.js → chunk-TOILAPLH.js} +5 -5
  119. package/{chunk-OOM6SJNR.js → chunk-TSUJOM6N.js} +6 -6
  120. package/{db-6QED3ZVO.js → db-HCJ5PRB5.js} +3 -3
  121. package/{offlineMarxistsAgentCommand-BCPJITJL.js → offlineMarxistsAgentCommand-5OOWZLJI.js} +3 -3
  122. package/{tableCommands-M3DJUETS.js → tableCommands-E4SQWDOX.js} +6 -6
  123. package/{understanding-ZOESBLF3.js → understanding-3CUQQ6SV.js} +3 -3
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  clearCliLocalRuntimePreparedAgentCache
3
- } from "./chunk-X2S7JTIG.js";
3
+ } from "./chunk-KWBH4RAL.js";
4
4
  import {
5
5
  getReadableCliDb
6
6
  } from "./chunk-W4NVOSFF.js";
@@ -12,17 +12,17 @@ import {
12
12
  resolveAgentRecordFromHybridStore,
13
13
  sanitizeAgentRecordForCliOutput,
14
14
  writeAgentRecord
15
- } from "./chunk-AEZAORLG.js";
15
+ } from "./chunk-CGDQDXKZ.js";
16
16
  import {
17
17
  resolveCliAgentKeyInput
18
18
  } from "./chunk-VHBWHNVT.js";
19
- import {
20
- parseUserIdFromAuthToken,
21
- resolveAuthToken
22
- } from "./chunk-ISNCLGUZ.js";
23
19
  import {
24
20
  toErrorMessage
25
21
  } from "./chunk-HNMXYYJR.js";
22
+ import {
23
+ parseUserIdFromAuthToken,
24
+ resolveAuthToken
25
+ } from "./chunk-5NBHQD4D.js";
26
26
 
27
27
  // packages/cli/agentRecordCommands.ts
28
28
  async function runAgentReadCommand(args, deps = {}) {
@@ -43,7 +43,7 @@ async function runAgentReadCommand(args, deps = {}) {
43
43
  const fetchImpl = deps.fetchImpl ?? fetch;
44
44
  const fallbackFetchImpl = deps.fallbackFetchImpl;
45
45
  try {
46
- const result = await resolveAgentRecordFromHybridStore({
46
+ let result = await resolveAgentRecordFromHybridStore({
47
47
  agentInput,
48
48
  cliArgs: args,
49
49
  env,
@@ -51,6 +51,19 @@ async function runAgentReadCommand(args, deps = {}) {
51
51
  fetchImpl,
52
52
  fallbackFetchImpl
53
53
  });
54
+ if (!result && agentKey.startsWith("agent-pub-")) {
55
+ const bareId = agentKey.slice("agent-pub-".length);
56
+ if (bareId) {
57
+ result = await resolveAgentRecordFromHybridStore({
58
+ agentInput: bareId,
59
+ cliArgs: args,
60
+ env,
61
+ db,
62
+ fetchImpl,
63
+ fallbackFetchImpl
64
+ });
65
+ }
66
+ }
54
67
  if (!result) {
55
68
  throw new Error(`agent not found: ${agentKey}`);
56
69
  }
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  generatePkcePair,
3
3
  startCallbackServer
4
- } from "./chunk-5MMZUWSG.js";
5
- import {
6
- asOptionalFiniteNumber
7
- } from "./chunk-WWC7I6TA.js";
4
+ } from "./chunk-TOILAPLH.js";
8
5
  import {
9
6
  toErrorMessage
10
7
  } from "./chunk-HNMXYYJR.js";
8
+ import {
9
+ asOptionalFiniteNumber
10
+ } from "./chunk-WWC7I6TA.js";
11
11
 
12
12
  // packages/cli/oauth/flows/cloudflare.ts
13
13
  var CLOUDFLARE_OAUTH_AUTH_ENDPOINT = "https://dash.cloudflare.com/oauth2/auth";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  isCompiledBinary,
3
3
  resolveCliEntrypointPath
4
- } from "./chunk-ISNCLGUZ.js";
4
+ } from "./chunk-5NBHQD4D.js";
5
5
 
6
6
  // packages/cli/agentRunControl.ts
7
7
  import { homedir as nodeHomedir } from "node:os";
@@ -231,6 +231,7 @@ async function spawnLocalBackgroundRun(input, deps = {}) {
231
231
  const record = {
232
232
  runId,
233
233
  agentKey: input.agentKey,
234
+ ...typeof input.agentName === "string" && input.agentName.trim() ? { agentName: input.agentName.trim() } : {},
234
235
  cwd: input.cwd,
235
236
  ...messagePath ? { msgFile: messagePath } : input.msgFile ? { msgFile: input.msgFile } : {},
236
237
  startedAt: now().toISOString(),
@@ -14,6 +14,7 @@ var deepSeekModels = [
14
14
  fnCall: true,
15
15
  supportsTool: true,
16
16
  supportsReasoningEffort: true,
17
+ endpointKey: "responses",
17
18
  price: {
18
19
  input: 1,
19
20
  inputCacheHit: 0.02,
@@ -499,9 +500,6 @@ var zaiModels = [];
499
500
  var PLATFORM_HOSTED_KIMI_K3_MODEL = "kimi-k3";
500
501
  var PLATFORM_HOSTED_KIMI_K26_MODEL = "kimi-k2.6";
501
502
  var PLATFORM_HOSTED_KIMI_K27_CODE_MODEL = "kimi-k2.7-code";
502
- var OLLAMA_CLOUD_KIMI_K3_MODEL = PLATFORM_HOSTED_KIMI_K3_MODEL;
503
- var OLLAMA_CLOUD_KIMI_K26_MODEL = PLATFORM_HOSTED_KIMI_K26_MODEL;
504
- var OLLAMA_CLOUD_KIMI_K27_CODE_MODEL = PLATFORM_HOSTED_KIMI_K27_CODE_MODEL;
505
503
  var PLATFORM_HOSTED_KIMI_PROVIDER = "nolo";
506
504
  var LEGACY_OLLAMA_CLOUD_PROVIDER = "ollama-cloud";
507
505
  var isNoloHostedProvider = (provider) => {
@@ -521,6 +519,90 @@ var resolveFireworksKimiModel = (model) => {
521
519
  return model ?? "";
522
520
  };
523
521
 
522
+ // packages/ai/llm/platformHosted.ts
523
+ var PLATFORM_CREDITS_PER_USD = 7;
524
+ var EXTERNAL_API_DISCOUNT = 0.8;
525
+ var toPlatformCredits = (usdPerMillion) => Number(
526
+ (usdPerMillion * EXTERNAL_API_DISCOUNT * PLATFORM_CREDITS_PER_USD).toFixed(
527
+ 6
528
+ )
529
+ );
530
+ var PLATFORM_HOSTED_KIMI_PRICE = {
531
+ input: toPlatformCredits(0.6),
532
+ output: toPlatformCredits(2.4)
533
+ };
534
+ var PLATFORM_HOSTED_KIMI_K27_CODE_PRICE = {
535
+ input: toPlatformCredits(1.2),
536
+ output: toPlatformCredits(4.8)
537
+ };
538
+ var PLATFORM_HOSTED_KIMI_K3_PRICE = {
539
+ input: toPlatformCredits(3),
540
+ output: toPlatformCredits(15)
541
+ };
542
+ var PLATFORM_HOSTED_GLM_PRICE = {
543
+ input: toPlatformCredits(1.4),
544
+ inputCacheHit: toPlatformCredits(0.26),
545
+ output: toPlatformCredits(4.4)
546
+ };
547
+ var PLATFORM_HOSTED_GLM_52_MODEL = "glm-5.2";
548
+ var PLATFORM_HOSTED_DEEPSEEK_FLASH_MODEL = "deepseek-v4-flash";
549
+ var PLATFORM_HOSTED_DEEPSEEK_FLASH_PRICE = {
550
+ input: 1,
551
+ inputCacheHit: 0.02,
552
+ output: 2
553
+ };
554
+ var PLATFORM_HOSTED_CHAT_COMPLETIONS_URL = "https://ollama.com/v1/chat/completions";
555
+ var platformHostedModels = [
556
+ {
557
+ name: PLATFORM_HOSTED_KIMI_K3_MODEL,
558
+ displayName: "Kimi K3",
559
+ hasVision: true,
560
+ price: { ...PLATFORM_HOSTED_KIMI_K3_PRICE },
561
+ maxOutputTokens: 262144,
562
+ contextWindow: 1e6,
563
+ supportsTool: true,
564
+ supportsReasoningEffort: true
565
+ },
566
+ {
567
+ name: PLATFORM_HOSTED_KIMI_K26_MODEL,
568
+ displayName: "Kimi K2.6",
569
+ hasVision: true,
570
+ price: { ...PLATFORM_HOSTED_KIMI_PRICE },
571
+ maxOutputTokens: 262144,
572
+ contextWindow: 262144,
573
+ supportsTool: true
574
+ },
575
+ {
576
+ name: PLATFORM_HOSTED_KIMI_K27_CODE_MODEL,
577
+ displayName: "Kimi K2.7 Coding",
578
+ hasVision: true,
579
+ price: { ...PLATFORM_HOSTED_KIMI_K27_CODE_PRICE },
580
+ maxOutputTokens: 262144,
581
+ contextWindow: 256e3,
582
+ supportsTool: true
583
+ },
584
+ {
585
+ name: PLATFORM_HOSTED_GLM_52_MODEL,
586
+ displayName: "GLM 5.2",
587
+ hasVision: false,
588
+ price: { ...PLATFORM_HOSTED_GLM_PRICE },
589
+ maxOutputTokens: 131072,
590
+ contextWindow: 1e6,
591
+ supportsTool: true,
592
+ supportsReasoningEffort: true
593
+ },
594
+ {
595
+ name: PLATFORM_HOSTED_DEEPSEEK_FLASH_MODEL,
596
+ displayName: "DeepSeek V4 Flash",
597
+ hasVision: false,
598
+ price: { ...PLATFORM_HOSTED_DEEPSEEK_FLASH_PRICE },
599
+ maxOutputTokens: 384e3,
600
+ contextWindow: 1e6,
601
+ supportsTool: true,
602
+ supportsReasoningEffort: true
603
+ }
604
+ ];
605
+
524
606
  export {
525
607
  deepSeekModels,
526
608
  googleModels,
@@ -529,17 +611,16 @@ export {
529
611
  deepinfraModels,
530
612
  xaiModels,
531
613
  fireworksModels,
532
- PLATFORM_HOSTED_KIMI_K3_MODEL,
533
614
  PLATFORM_HOSTED_KIMI_K26_MODEL,
534
- PLATFORM_HOSTED_KIMI_K27_CODE_MODEL,
535
- OLLAMA_CLOUD_KIMI_K3_MODEL,
536
- OLLAMA_CLOUD_KIMI_K26_MODEL,
537
- OLLAMA_CLOUD_KIMI_K27_CODE_MODEL,
538
615
  PLATFORM_HOSTED_KIMI_PROVIDER,
539
616
  isNoloHostedProvider,
540
617
  isFireworksKimiModel,
541
618
  isDeepInfraKimiModel,
542
619
  resolveFireworksKimiModel,
620
+ PLATFORM_HOSTED_GLM_PRICE,
621
+ PLATFORM_HOSTED_GLM_52_MODEL,
622
+ PLATFORM_HOSTED_CHAT_COMPLETIONS_URL,
623
+ platformHostedModels,
543
624
  getCloudflareWorkersAiChatCompletionsUrl,
544
625
  cloudflareModels,
545
626
  GMI_CHAT_COMPLETIONS_URL,
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  DEFAULT_NOLO_SERVER_URL
3
3
  } from "./chunk-OLZBQWZU.js";
4
- import {
5
- DEFAULT_LOCAL_API_ORIGIN
6
- } from "./chunk-4SN6J65J.js";
7
4
  import {
8
5
  NOLO_CLUSTER_SERVERS
9
6
  } from "./chunk-LCBAMY2M.js";
7
+ import {
8
+ DEFAULT_LOCAL_API_ORIGIN
9
+ } from "./chunk-4SN6J65J.js";
10
10
  import {
11
11
  normalizeServerOrigin
12
12
  } from "./chunk-CF7PE763.js";
@@ -134,6 +134,7 @@ function resolveCliEntrypointPath(fromModuleUrl = import.meta.url) {
134
134
  }
135
135
 
136
136
  export {
137
+ resolveServerUrlFromEnv,
137
138
  resolveServerUrl,
138
139
  resolveServerCandidates,
139
140
  resolveDeleteServerCandidates,
@@ -1,8 +1,9 @@
1
1
  import {
2
+ accumulateToolCallDelta,
2
3
  extractThinkContent,
3
4
  flushThinkParser,
4
5
  processThinkChunk
5
- } from "./chunk-OPZYGHUC.js";
6
+ } from "./chunk-3WGLLTK4.js";
6
7
  import {
7
8
  buildProviderExecutionPlan,
8
9
  canUsePlatformChatProvider,
@@ -10,49 +11,48 @@ import {
10
11
  extractTextFromResponseOutput,
11
12
  extractToolCallsFromResponseOutput,
12
13
  hasDirectOpenAiCompatibleProvider,
14
+ hasImageParts,
13
15
  resolveAgentRuntimeLocation,
14
16
  resolvePlatformAuthToken,
17
+ resolvePlatformChatCompletionsEndpoint,
15
18
  resolvePlatformServerUrl,
16
19
  resolveProviderTransportDecision,
20
+ toOpenAiCompatibleMessages,
17
21
  toResponsesTools
18
- } from "./chunk-YTBMA7NO.js";
19
-
20
- // packages/agent-runtime/openAiCompatibleMessages.ts
21
- function toOpenAiCompatibleMessages(messages) {
22
- return messages.map((message) => ({
23
- role: message.role,
24
- content: message.content ?? "",
25
- ...message.tool_call_id ? { tool_call_id: message.tool_call_id } : {},
26
- ...Array.isArray(message.tool_calls) ? { tool_calls: message.tool_calls } : {},
27
- ...message.reasoning_content ? { reasoning_content: message.reasoning_content } : {}
28
- }));
29
- }
22
+ } from "./chunk-TYPHUVK5.js";
23
+ import {
24
+ clipCompactText
25
+ } from "./chunk-5MMAK75Q.js";
26
+ import {
27
+ isRecord
28
+ } from "./chunk-KUG52IAP.js";
30
29
 
31
- // packages/agent-runtime/toolCallAccumulator.ts
32
- function accumulateToolCallDelta(accumulated, deltas) {
33
- for (const delta of deltas) {
34
- const index = typeof delta.index === "number" ? delta.index : 0;
35
- const current = accumulated[index] ?? {
36
- id: "",
37
- type: "function",
38
- function: { name: "", arguments: "" }
39
- };
40
- if (typeof delta.id === "string" && delta.id) current.id = delta.id;
41
- const fn = delta.function;
42
- if (fn && typeof fn === "object") {
43
- const functionDelta = fn;
44
- if (typeof functionDelta.name === "string" && functionDelta.name) {
45
- current.function.name += functionDelta.name;
46
- }
47
- if (typeof functionDelta.arguments === "string" && functionDelta.arguments) {
48
- current.function.arguments += functionDelta.arguments;
49
- }
50
- }
51
- accumulated[index] = current;
30
+ // packages/core/chat/providerFailureMessage.ts
31
+ var RAW_BODY_CLIP = 400;
32
+ function describeProviderFailure(args) {
33
+ const clipped = clipCompactText(JSON.stringify(args.body) ?? "", RAW_BODY_CLIP, "\u2026");
34
+ const error = isRecord(args.body) ? args.body.error : void 0;
35
+ const message = isRecord(error) ? error.message : void 0;
36
+ if (typeof message === "string" && message) return `${message} | ${clipped}`;
37
+ const looksLikeCompletion = isRecord(args.body) && Array.isArray(args.body.choices) && error === void 0;
38
+ if (looksLikeCompletion) {
39
+ const imageHint = args.hadImageParts ? "\uFF1B\u8BE5\u8BF7\u6C42\u5E26\u4E86\u56FE\u7247\uFF0C\u591A\u534A\u662F\u8FD9\u4E2A\u6A21\u578B\u6216\u8FD9\u6761\u7F51\u5173\u8DEF\u7531\u4E0D\u63A5\u53D7\u56FE\u7247\u8F93\u5165" : "";
40
+ return `\u4E0A\u6E38\u62D2\u7EDD\u4E86\u8BF7\u6C42\u4F46\u6CA1\u7ED9\u9519\u8BEF\u4FE1\u606F\uFF08\u54CD\u5E94\u4F53\u662F\u4E00\u4E2A\u7A7A\u7684 chat.completion\uFF09${imageHint} | ${clipped}`;
52
41
  }
42
+ return clipped;
53
43
  }
54
- function finalizeAccumulatedToolCalls(accumulated) {
55
- return Object.keys(accumulated).map((key) => accumulated[Number(key)]).filter((call) => call?.function?.name);
44
+ function providerHttpFailure(args) {
45
+ let body = args.raw;
46
+ try {
47
+ body = JSON.parse(args.raw);
48
+ } catch {
49
+ }
50
+ return new Error(
51
+ `${args.label} failed: HTTP ${args.status} ${describeProviderFailure({
52
+ body,
53
+ hadImageParts: hasImageParts(args.messages)
54
+ })}`
55
+ );
56
56
  }
57
57
 
58
58
  // packages/agent-runtime/processChatCompletionDelta.ts
@@ -268,6 +268,16 @@ function buildPlatformChatCompletionRequest(args) {
268
268
  }
269
269
  };
270
270
  }
271
+ function resolveLegacyDeepSeekProxyChatFallback(args) {
272
+ if (args.status !== 400 || args.providerConfig.provider.toLowerCase() !== "deepseek" || !isResponsesEndpoint(args.providerConfig.endpoint) || !/UPSTREAM_400/.test(args.raw) || !/missing field [`\"]?(?:function|messages)/i.test(args.raw)) {
273
+ return void 0;
274
+ }
275
+ const endpoint = resolvePlatformChatCompletionsEndpoint("deepseek");
276
+ return endpoint ? {
277
+ ...args.providerConfig,
278
+ endpoint
279
+ } : void 0;
280
+ }
271
281
  function tryParseJson(raw) {
272
282
  try {
273
283
  return JSON.parse(raw);
@@ -327,6 +337,7 @@ function parsePlatformChatCompletionResponse(args) {
327
337
  model: args.providerConfig.model,
328
338
  provider: args.providerConfig.provider,
329
339
  ...tool_calls.length > 0 ? { tool_calls } : {},
340
+ stream_complete: true,
330
341
  usage: args.data?.usage,
331
342
  trace: args.trace
332
343
  };
@@ -340,6 +351,8 @@ function parsePlatformChatCompletionResponse(args) {
340
351
  provider: args.providerConfig.provider,
341
352
  ...Array.isArray(choiceMessage?.tool_calls) ? { tool_calls: choiceMessage.tool_calls } : {},
342
353
  ...reasoning ? { reasoning_content: reasoning } : typeof choiceMessage?.reasoning_content === "string" && choiceMessage.reasoning_content ? { reasoning_content: choiceMessage.reasoning_content } : {},
354
+ // 非流式:完整的 200 JSON body 即证明调用走完,见 AgentRuntimeResult。
355
+ stream_complete: true,
343
356
  usage: args.data?.usage,
344
357
  trace: args.trace
345
358
  };
@@ -369,15 +382,15 @@ function shouldUsePlatformChatProvider(env, agentConfig) {
369
382
  }
370
383
 
371
384
  export {
372
- finalizeAccumulatedToolCalls,
373
385
  throwIfChatCompletionStreamFailed,
374
386
  applyChatCompletionDelta,
375
387
  flushChatCompletionStream,
376
- toOpenAiCompatibleMessages,
388
+ providerHttpFailure,
377
389
  readSseFrames,
378
390
  readSseDataValues,
379
391
  resolvePlatformChatProviderConfig,
380
392
  buildPlatformChatCompletionRequest,
393
+ resolveLegacyDeepSeekProxyChatFallback,
381
394
  parsePlatformChatCompletionData,
382
395
  parsePlatformChatCompletionResponse,
383
396
  canUsePlatformChatProvider2 as canUsePlatformChatProvider,