nolo-cli 0.90.0-alpha.1 → 0.91.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 (173) hide show
  1. package/README.md +1 -1
  2. package/{_executeModel-W26HVI75.js → _executeModel-H35GQ2XO.js} +61 -60
  3. package/{action-6DXQGJMX.js → action-3ZOODRBC.js} +11 -11
  4. package/{addContentAction-I7VX5SAC.js → addContentAction-IJHG2ZV7.js} +9 -9
  5. package/{addDialogAgentAction-OJSFV7DZ.js → addDialogAgentAction-IGFS2UBX.js} +11 -11
  6. package/{agentDeleteCommand-XNFWCKBH.js → agentDeleteCommand-XOFMXMHW.js} +43 -42
  7. package/{agentEmailCommands-W3X3EJ3V.js → agentEmailCommands-H2SEP6ZQ.js} +82 -78
  8. package/{agentGrantCommands-YW6PQAQ2.js → agentGrantCommands-M3XFO6EN.js} +2 -2
  9. package/{agentListCommands-DFWFU6XO.js → agentListCommands-RYGH6NUL.js} +72 -80
  10. package/{agentMachineCommands-LMFOAEL4.js → agentMachineCommands-XELOBZIP.js} +37 -36
  11. package/{agentProviderCommands-ZBYHGTGY.js → agentProviderCommands-JCRK6ST2.js} +1 -1
  12. package/{agentPullCommand-GLOOXJ2E.js → agentPullCommand-HF4A42D4.js} +3 -3
  13. package/agentRecordCommands-43HAXAZO.js +130 -0
  14. package/{agentRunCommand-HTBVIBGV.js → agentRunCommand-GIPN6DBO.js} +80 -75
  15. package/{agentRunControl-XLGD3UZ5.js → agentRunControl-AVJR4JW4.js} +2 -2
  16. package/{agentRuntimeLocal-2JFG4HDU.js → agentRuntimeLocal-SDOSSCLU.js} +38 -33
  17. package/{agentSlice-ZNLGFUB5.js → agentSlice-B2DLZMAC.js} +11 -11
  18. package/{appDeleteCommands-2UN4N2NR.js → appDeleteCommands-7OR5MAOR.js} +37 -36
  19. package/{appDeployCommands-37D74KRR.js → appDeployCommands-5GNI723H.js} +37 -36
  20. package/{appDeployStatusCommands-QBLWL2IA.js → appDeployStatusCommands-WL2NG3SG.js} +37 -36
  21. package/{appGetCommands-6KXIDF2T.js → appGetCommands-7BVKQS44.js} +37 -36
  22. package/{appListCommands-G2WFGEWQ.js → appListCommands-5VXFJOBU.js} +37 -36
  23. package/{authCommand-V2DJ7DB7.js → authCommand-N4Q6463J.js} +115 -23
  24. package/{authCommands-RGOGCPP6.js → authCommands-GBIFZWD3.js} +5 -5
  25. package/{builtinSkillRegistry-WBGYKIAZ.js → builtinSkillRegistry-JPY2DKRF.js} +7 -7
  26. package/{chatQueueReduxAdapter-XCJHIY3R.js → chatQueueReduxAdapter-3KDRKXTT.js} +29 -29
  27. package/{chromeCommands-VOIRNJBL.js → chromeCommands-NKU3OWKH.js} +36 -11
  28. package/{chromeOpsCommands-M7DPCX2T.js → chromeOpsCommands-OQDJGD4Y.js} +31 -1
  29. package/{chunk-4BYPU626.js → chunk-232453C2.js} +994 -1036
  30. package/{chunk-SMZSWB44.js → chunk-25GAGMRK.js} +6 -83
  31. package/{chunk-PH5J5VUY.js → chunk-3IYMTWYZ.js} +22 -22
  32. package/{chunk-NTW5GWDM.js → chunk-3VNWWVKB.js} +2 -0
  33. package/{chunk-TVNI5FLG.js → chunk-46CRK7XP.js} +7 -7
  34. package/{chunk-2ADBVBEM.js → chunk-55VQ4OPL.js} +4 -4
  35. package/{chunk-JPGCXHNM.js → chunk-5OA5HMTL.js} +1 -1
  36. package/{chunk-DWUCB2A3.js → chunk-62IL3KQV.js} +4 -34
  37. package/{chunk-3R5PH4IP.js → chunk-64TIEZHF.js} +1 -1
  38. package/{chunk-6YTOJY35.js → chunk-6D2JFXLY.js} +35 -0
  39. package/{chunk-3BMYXEUW.js → chunk-6O4IK4V2.js} +1 -1
  40. package/{chunk-WXPVOQD7.js → chunk-6PELJ3DS.js} +533 -236
  41. package/{chunk-NFMHIUY3.js → chunk-7EMJBGCA.js} +966 -218
  42. package/{chunk-HYZHJ5GW.js → chunk-7YMUSSHQ.js} +93 -93
  43. package/chunk-ACTMNVHM.js +93 -0
  44. package/{chunk-Q554LLSI.js → chunk-AUDNYVRC.js} +1 -1
  45. package/{chunk-UKWGR5SS.js → chunk-AUXHZ2M5.js} +186 -397
  46. package/{chunk-7MYYE7WX.js → chunk-B4PW6UAI.js} +61 -34
  47. package/{chunk-4DRWWIOL.js → chunk-B7ANJQWZ.js} +2 -2
  48. package/{chunk-XKQJJK4F.js → chunk-BAAKVSMZ.js} +4 -4
  49. package/{chunk-FQYMLZ6C.js → chunk-BFCXG6AJ.js} +16 -16
  50. package/{chunk-ZBT3WNBK.js → chunk-BJUDYFV5.js} +10 -2
  51. package/chunk-BMQ2MJUK.js +153 -0
  52. package/{chunk-TL6L5XUT.js → chunk-BNGW5ASC.js} +94 -16
  53. package/{chunk-JTK3TJYV.js → chunk-BTSYHR7J.js} +4 -4
  54. package/{chunk-LS2ZANRJ.js → chunk-CTUQJVQM.js} +1 -1
  55. package/{chunk-JEDZAO7L.js → chunk-D2W6WRHT.js} +13 -8
  56. package/{chunk-6BEA566T.js → chunk-D76D3RTR.js} +2 -2
  57. package/{chunk-HQCSU3DI.js → chunk-DCLMZ5TX.js} +4 -4
  58. package/{chunk-L2ICPOAL.js → chunk-EFZKILX6.js} +4 -4
  59. package/{chunk-JBBZ5KUM.js → chunk-EHO5EGU4.js} +23 -76
  60. package/{chunk-HVURBGF3.js → chunk-ESRMFY7G.js} +2 -2
  61. package/{chunk-ABQYVJBJ.js → chunk-ETZWFV6M.js} +1 -1
  62. package/{chunk-TRV2MIDW.js → chunk-EXAJ6DCR.js} +1 -0
  63. package/{chunk-VHJLQHPQ.js → chunk-F64B2W3R.js} +110 -34
  64. package/{chunk-AQZRTHDZ.js → chunk-G4EMOUX3.js} +886 -154
  65. package/{chunk-XTUY5EL4.js → chunk-GJUKGFHG.js} +74 -16
  66. package/{chunk-XMGHGEN6.js → chunk-GMVELWJG.js} +3 -3
  67. package/chunk-GMZLP5DV.js +82 -0
  68. package/{chunk-CJCJF5XB.js → chunk-H6A6X4EK.js} +36 -3
  69. package/{chunk-N3OAPEZE.js → chunk-HBTA2SGQ.js} +97 -21
  70. package/{chunk-ONXOABJR.js → chunk-HNGRBWYF.js} +3 -0
  71. package/{chunk-3CR2LC6X.js → chunk-HNRASX3X.js} +8 -8
  72. package/{chunk-CPH3W5A7.js → chunk-I3TQJXQ7.js} +94 -3
  73. package/{chunk-GRYGRGPS.js → chunk-IS5VEM2G.js} +140 -15
  74. package/{chunk-MJHQ3NRV.js → chunk-ISHYYQJC.js} +5 -3
  75. package/{chunk-ZAB3A45K.js → chunk-K7M4I3PF.js} +30 -7
  76. package/{chunk-2AYMFHUG.js → chunk-KQOD3G2X.js} +165 -15
  77. package/{chunk-YOXYA2GU.js → chunk-LNPYTNMG.js} +10 -5
  78. package/{chunk-F2CGG72C.js → chunk-LS2MI3B4.js} +45 -45
  79. package/{chunk-GII32WZW.js → chunk-M2EJHDJP.js} +3 -0
  80. package/{chunk-7S4YWN7P.js → chunk-MX574M24.js} +1 -1
  81. package/{chunk-DNQPPRHY.js → chunk-N3XA2O6O.js} +1 -1
  82. package/{chunk-5DFFKASO.js → chunk-NILSKYOE.js} +3 -3
  83. package/chunk-OCZKATRC.js +129 -0
  84. package/{chunk-K7M3MWCE.js → chunk-OOSVFT6S.js} +2 -2
  85. package/{chunk-QCZX4FTW.js → chunk-OY5IJI2N.js} +194 -21
  86. package/{chunk-HMEMJ7GH.js → chunk-PAYUVQ6P.js} +7749 -1320
  87. package/{chunk-ASGDO77C.js → chunk-Q67DOFOO.js} +92 -4
  88. package/{chunk-UA5S3LQQ.js → chunk-QALRKMHF.js} +11 -10
  89. package/{chunk-RZANZZL2.js → chunk-QDSINZM3.js} +1 -1
  90. package/{chunk-DPQ2WVBY.js → chunk-QJLEMM2V.js} +1 -1
  91. package/{chunk-IIKPWSPX.js → chunk-R4SQ3LGW.js} +1 -1
  92. package/{chunk-UTCCPWB2.js → chunk-RZ6CQZB2.js} +34 -20
  93. package/{chunk-SAFZABH7.js → chunk-SV5IJK6K.js} +1 -1
  94. package/{chunk-576IMUGH.js → chunk-T5V7HA3K.js} +1 -1
  95. package/{chunk-BYMV6QZG.js → chunk-TNIX77YM.js} +4 -0
  96. package/chunk-UNYJU5L6.js +780 -0
  97. package/{chunk-QFMFJZLO.js → chunk-V7E4PXQD.js} +1 -1
  98. package/{chunk-QHETQ3KI.js → chunk-VBSVA6CB.js} +2 -2
  99. package/{chunk-A2C4AKKM.js → chunk-VETFWL5K.js} +1 -1
  100. package/chunk-VJVNU77E.js +83 -0
  101. package/{chunk-6D6VBVEW.js → chunk-VPFEPRME.js} +9 -9
  102. package/{chunk-3CMTBX3X.js → chunk-W2P25VGS.js} +25 -6
  103. package/{chunk-CLI4LFSM.js → chunk-WC6A2Q7S.js} +5 -3
  104. package/{chunk-Z33ARZCP.js → chunk-WT2IAJAJ.js} +4 -4
  105. package/chunk-X6YIXGPT.js +870 -0
  106. package/{chunk-5V4NJHRM.js → chunk-YMPTI7RZ.js} +9 -9
  107. package/{chunk-5NMZNPTN.js → chunk-YRIFJ6XQ.js} +13 -13
  108. package/{chunk-FZGV4FGK.js → chunk-YRRASA5Q.js} +268 -143
  109. package/{chunk-2F4VYGFW.js → chunk-Z5W7UMQV.js} +4 -3
  110. package/{chunk-ND2J3NRB.js → chunk-ZGJLSHER.js} +2 -2
  111. package/{chunk-VRLI2WNW.js → chunk-ZI2MEZMT.js} +314 -142
  112. package/{chunk-2F7RJC6L.js → chunk-ZOVKKMF6.js} +1 -1
  113. package/commandRegistry-BP5JLW24.js +822 -0
  114. package/{contentThunks-VURN3DFW.js → contentThunks-2HYFUXUM.js} +29 -29
  115. package/{cooldownCommands-BSCH2W7P.js → cooldownCommands-ZLEPIB4A.js} +2 -2
  116. package/{createAgentAutomationAction-QZAAY77R.js → createAgentAutomationAction-DCKUSJH7.js} +29 -29
  117. package/{createDialogAction-CHGXVTAC.js → createDialogAction-NRIAEH2A.js} +32 -32
  118. package/{createPageAction-IOGAFIN7.js → createPageAction-AUJHHXGG.js} +35 -35
  119. package/{dbSlice-YXQ6RYIH.js → dbSlice-HFPIJT5P.js} +8 -8
  120. package/{deleteFile-YG6QMJLU.js → deleteFile-UEAD5A5Z.js} +3 -3
  121. package/{dialogCommands-XREAP6WQ.js → dialogCommands-UJRGCRN6.js} +42 -39
  122. package/{dialogSlice-DOPGWGS4.js → dialogSlice-AHU4XXIW.js} +35 -29
  123. package/{dist-VODFSGNG.js → dist-NJC2W7I4.js} +61 -54
  124. package/{docCreateCommands-3PYZGSCL.js → docCreateCommands-ZOV3ZBLW.js} +39 -38
  125. package/{docDeleteCommands-3Y6MU44Q.js → docDeleteCommands-G4KAXJYQ.js} +39 -38
  126. package/{docReadCommands-UBANMAFR.js → docReadCommands-B2MM3JIT.js} +38 -37
  127. package/{docStore-SYYFBENY.js → docStore-SITH63V3.js} +9 -9
  128. package/{docUpdateCommands-4GK2X6BN.js → docUpdateCommands-2QNF5CYN.js} +39 -38
  129. package/{fetchMessages-EIU7UFFK.js → fetchMessages-67MEFPZR.js} +2 -2
  130. package/{getPricing-F2C65RIX.js → getPricing-OX7B4R6B.js} +3 -3
  131. package/{handleSendMessageAction-NPVTY2GE.js → handleSendMessageAction-7ZMJMWLC.js} +72 -80
  132. package/index.js +74 -877
  133. package/{localDialogRead-BTFJ4V2I.js → localDialogRead-EBRS242U.js} +2 -2
  134. package/{localRuntimeAuthority-6IR6BBXE.js → localRuntimeAuthority-5W6IJRAD.js} +6 -6
  135. package/{localRuntimeDb-SYQGUF4U.js → localRuntimeDb-3LRMNLCM.js} +1 -1
  136. package/{machineCommands-I66X2XB7.js → machineCommands-YCTD5KOL.js} +75 -71
  137. package/{machineWsRunDispatch-W4FVBOUM.js → machineWsRunDispatch-JFMD4ZAW.js} +73 -69
  138. package/{memberThunks-5T4J6KXQ.js → memberThunks-SKFZ37VS.js} +9 -9
  139. package/{models-WW7VFNXB.js → models-T3SG6MJ5.js} +2 -2
  140. package/oauthTokenStore-ITEB663N.js +23 -0
  141. package/{offlineMarxistsAgentCommand-JEWCIAWM.js → offlineMarxistsAgentCommand-HGXZV4XJ.js} +1 -1
  142. package/package.json +1 -1
  143. package/pdf-U6KSUEZZ.js +26435 -0
  144. package/processSpawn-SOAV3FEV.js +11 -0
  145. package/profileConfig-ZGOFORWV.js +43 -0
  146. package/{providerPresetApply-OCWWKBSD.js → providerPresetApply-2QTBYN36.js} +7 -7
  147. package/{providerRegistry-ZJQU7AJ7.js → providerRegistry-SVXE4G4T.js} +7 -7
  148. package/{read-M2Q6WEKB.js → read-IEJLLUXY.js} +5 -5
  149. package/{readDocTool-T37P3YPB.js → readDocTool-4SPYCP2Y.js} +5 -3
  150. package/{readlineWorkspace-VY5AMOGR.js → readlineWorkspace-M3PLTBLD.js} +2396 -2018
  151. package/{removeDialogAgentAction-HB3JBVAI.js → removeDialogAgentAction-LILXTOQY.js} +14 -14
  152. package/{runAgentClientLoop-3NDADLVE.js → runAgentClientLoop-QMCXBOBH.js} +55 -55
  153. package/{runtimeDoctorCommands-X6WDBEQX.js → runtimeDoctorCommands-3USD722U.js} +3 -3
  154. package/runtimeModeArgs-2Y7BALTO.js +31 -0
  155. package/{setDialogExtraReferencesAction-4XLHRV37.js → setDialogExtraReferencesAction-LVNHLNT5.js} +10 -10
  156. package/{setPrimaryDialogAgentAction-C3JOFC4W.js → setPrimaryDialogAgentAction-DCKO5NTW.js} +14 -14
  157. package/{settingSlice-CZRURSTH.js → settingSlice-CNE75ISY.js} +10 -10
  158. package/{spaceCommands-ENYCUUZH.js → spaceCommands-3U6OHM6O.js} +39 -38
  159. package/{streamAgentChatTurn-634OFUSR.js → streamAgentChatTurn-JPMJQSEE.js} +144 -84
  160. package/{switchDialogAgentAction-C6KVUKJP.js → switchDialogAgentAction-JSYUQ5CG.js} +11 -11
  161. package/{tableCommands-O6NWHFKV.js → tableCommands-G7RV3RU3.js} +4 -4
  162. package/{toolApiClient-7PSIFQPJ.js → toolApiClient-INIQCPGY.js} +3 -3
  163. package/{tools-ILBLCF7D.js → tools-XQ5GIH6P.js} +49 -49
  164. package/{tuiSummaryLlmCaller-LFUBZKXK.js → tuiSummaryLlmCaller-L63PDJUD.js} +16 -15
  165. package/{updateCommands-2M74UL7P.js → updateCommands-ECWKIWLQ.js} +3 -3
  166. package/{updateDialogTitleAction-RKFET73N.js → updateDialogTitleAction-EGAZMLUB.js} +32 -32
  167. package/agentRecordCommands-FVVVCQFM.js +0 -126
  168. package/chunk-Q5FJJ6XI.js +0 -103
  169. package/chunk-S7Z2HMCN.js +0 -25
  170. package/chunk-WS22FPWT.js +0 -79
  171. package/{chunk-VMFTFOWF.js → chunk-3AH7LNUB.js} +7 -7
  172. package/{chunk-X7HHHIOZ.js → chunk-Y6ROFCZO.js} +0 -0
  173. package/{db-WK5MDZVN.js → db-VQSAOWAO.js} +1 -1
@@ -45,8 +45,11 @@ var PLATFORM_HOSTED_CLAUDE_SONNET_5_MODEL = "anthropic/claude-sonnet-5";
45
45
  var PLATFORM_HOSTED_CLAUDE_OPUS_5_MODEL = "anthropic/claude-opus-5";
46
46
  var PLATFORM_HOSTED_CLAUDE_FABLE_5_MODEL = "anthropic/claude-fable-5";
47
47
  var PLATFORM_HOSTED_CLAUDE_HAIKU_45_MODEL = "anthropic/claude-haiku-4-5";
48
+ var PLATFORM_HOSTED_CLAUDE_OPUS_5_5_MODEL = "anthropic/claude-opus-5-5";
49
+ var PLATFORM_HOSTED_CLAUDE_FABLE_5_1_MODEL = "anthropic/claude-fable-5-1";
48
50
  var PLATFORM_HOSTED_GROK_4_6_MODEL = "grok-4.6";
49
51
  var PLATFORM_HOSTED_GPT_6_ASTRA_MODEL = "gpt-6-astra";
52
+ var PLATFORM_HOSTED_GPT_6_LUNA_MODEL = "gpt-6-luna";
50
53
  var PLATFORM_HOSTED_GPT_56_SOL_MODEL = "gpt-5.6-sol";
51
54
  var PLATFORM_HOSTED_GPT_56_TERRA_MODEL = "gpt-5.6-terra";
52
55
  var PLATFORM_HOSTED_GPT_56_LUNA_MODEL = "gpt-5.6-luna";
@@ -182,8 +185,10 @@ var PLATFORM_HOSTED_ROUTING_TABLE = {
182
185
  agentRunHosted: true
183
186
  },
184
187
  // Claude 系(真实模型):DeepInfra 官方 id 与平台 id 同名,无需重映射。
185
- // DeepInfra 这批模型无缓存价(rate_per_input_token_cached=null),计费侧对
186
- // 无 inputCacheHit 的 deepinfra 模型按 input 全价计(见 calculatePrice)。
188
+ // 旧批模型无缓存价(rate_per_input_token_cached=null),计费侧对无
189
+ // inputCacheHit 的模型按 input 全价计(见 calculatePrice);Fable 5.1 起
190
+ // 官方给出缓存读价(输入 1/4),在 platformHosted.ts 的 price 里带
191
+ // inputCacheHit。
187
192
  [PLATFORM_HOSTED_CLAUDE_SONNET_5_MODEL]: {
188
193
  endpoint: "https://api.deepinfra.com/v1/openai/chat/completions",
189
194
  usageProvider: "deepinfra",
@@ -216,6 +221,23 @@ var PLATFORM_HOSTED_ROUTING_TABLE = {
216
221
  wire: "chat.completions",
217
222
  agentRunHosted: true
218
223
  },
224
+ // 新一代 Claude(2026-09-24 收进广场):同 DeepInfra 通道、官方 id 直传。
225
+ [PLATFORM_HOSTED_CLAUDE_OPUS_5_5_MODEL]: {
226
+ endpoint: "https://api.deepinfra.com/v1/openai/chat/completions",
227
+ usageProvider: "deepinfra",
228
+ keyName: "deepinfra",
229
+ upstreamModelId: PLATFORM_HOSTED_CLAUDE_OPUS_5_5_MODEL,
230
+ wire: "chat.completions",
231
+ agentRunHosted: true
232
+ },
233
+ [PLATFORM_HOSTED_CLAUDE_FABLE_5_1_MODEL]: {
234
+ endpoint: "https://api.deepinfra.com/v1/openai/chat/completions",
235
+ usageProvider: "deepinfra",
236
+ keyName: "deepinfra",
237
+ upstreamModelId: PLATFORM_HOSTED_CLAUDE_FABLE_5_1_MODEL,
238
+ wire: "chat.completions",
239
+ agentRunHosted: true
240
+ },
219
241
  // GPT-6 / GPT-5.6 系(OpenAI 官方 chat.completions):
220
242
  // 平台价按短上下文价目定(长上下文档差价由平台吸收),见 platformHosted.ts。
221
243
  [PLATFORM_HOSTED_GPT_6_ASTRA_MODEL]: {
@@ -225,6 +247,17 @@ var PLATFORM_HOSTED_ROUTING_TABLE = {
225
247
  wire: "chat.completions",
226
248
  agentRunHosted: true
227
249
  },
250
+ // GPT-6 Luna(2026-09-22 随 GPT-6 Sol/Luna 上线;官方模型页
251
+ // developers.openai.com/api/docs/models/gpt-6-luna,2026-09-23 核对):
252
+ // 官方 id 即 `gpt-6-luna`,Chat Completions 与 Responses 端点均可用;
253
+ // 平台托管沿用 GPT-6 系既有 chat.completions 分流(与 astra 同线同源)。
254
+ [PLATFORM_HOSTED_GPT_6_LUNA_MODEL]: {
255
+ endpoint: "https://api.openai.com/v1/chat/completions",
256
+ usageProvider: "openai",
257
+ keyName: "openai",
258
+ wire: "chat.completions",
259
+ agentRunHosted: true
260
+ },
228
261
  [PLATFORM_HOSTED_GPT_56_SOL_MODEL]: {
229
262
  endpoint: "https://api.openai.com/v1/chat/completions",
230
263
  usageProvider: "openai",
@@ -522,6 +555,20 @@ var PLATFORM_HOSTED_CLAUDE_HAIKU_45_PRICE = {
522
555
  output: toPlatformCredits(5)
523
556
  // 40 credits
524
557
  };
558
+ var PLATFORM_HOSTED_CLAUDE_OPUS_5_5_PRICE = {
559
+ input: toPlatformCredits(4),
560
+ // 32 credits
561
+ output: toPlatformCredits(20)
562
+ // 160 credits
563
+ };
564
+ var PLATFORM_HOSTED_CLAUDE_FABLE_5_1_PRICE = {
565
+ input: toPlatformCredits(10),
566
+ // 80 credits
567
+ inputCacheHit: toPlatformCredits(2.5),
568
+ // 20 credits(官方缓存读 = 输入 1/4)
569
+ output: toPlatformCredits(50)
570
+ // 400 credits
571
+ };
525
572
  var PLATFORM_HOSTED_GPT_6_ASTRA_PRICE = {
526
573
  input: toPlatformCredits(10),
527
574
  // 80 credits
@@ -554,6 +601,14 @@ var PLATFORM_HOSTED_GPT_56_LUNA_PRICE = {
554
601
  output: toPlatformCredits(1.2)
555
602
  // 9.6 credits
556
603
  };
604
+ var PLATFORM_HOSTED_GPT_6_LUNA_PRICE = {
605
+ input: toPlatformCredits(0.1),
606
+ // 0.8 credits
607
+ inputCacheHit: toPlatformCredits(0.01),
608
+ // 0.08 credits
609
+ output: toPlatformCredits(0.5)
610
+ // 4.0 credits
611
+ };
557
612
  var PLATFORM_HOSTED_GLM_53_FLASH_PRICE = {
558
613
  input: toPlatformCredits(0.1),
559
614
  // 0.8 credits
@@ -870,8 +925,8 @@ var platformHostedModels = [
870
925
  supportsTool: true,
871
926
  supportsReasoningEffort: true
872
927
  },
873
- // Claude 系(真实 DeepInfra 模型,官方 id 与平台 id 同名):无缓存价,
874
- // 计费按 input 全价(见 calculatePrice 的 deepinfra 分支)。
928
+ // Claude 系(真实 DeepInfra 模型,官方 id 与平台 id 同名):旧批无缓存价,
929
+ // 计费按 input 全价(见 calculatePrice);Fable 5.1 带官方缓存读价。
875
930
  {
876
931
  name: PLATFORM_HOSTED_CLAUDE_SONNET_5_MODEL,
877
932
  displayName: "Claude Sonnet 5",
@@ -908,6 +963,26 @@ var platformHostedModels = [
908
963
  contextWindow: 2e5,
909
964
  supportsTool: false
910
965
  },
966
+ {
967
+ // Claude Opus 5.5(2026-09-22 发布):官方 1M 上下文 / 128K 输出。
968
+ name: PLATFORM_HOSTED_CLAUDE_OPUS_5_5_MODEL,
969
+ displayName: "Claude Opus 5.5",
970
+ hasVision: true,
971
+ price: { ...PLATFORM_HOSTED_CLAUDE_OPUS_5_5_PRICE },
972
+ maxOutputTokens: 128e3,
973
+ contextWindow: 1e6,
974
+ supportsTool: false
975
+ },
976
+ {
977
+ // Claude Fable 5.1:输出上限未获官方数据,沿用 Fable 5 条目口径(4092)。
978
+ name: PLATFORM_HOSTED_CLAUDE_FABLE_5_1_MODEL,
979
+ displayName: "Claude Fable 5.1",
980
+ hasVision: true,
981
+ price: { ...PLATFORM_HOSTED_CLAUDE_FABLE_5_1_PRICE },
982
+ maxOutputTokens: 4092,
983
+ contextWindow: 1e6,
984
+ supportsTool: false
985
+ },
911
986
  // GPT-6 / GPT-5.6 系:OpenAI 官方 chat.completions,平台价按短上下文价目。
912
987
  {
913
988
  name: PLATFORM_HOSTED_GPT_6_ASTRA_MODEL,
@@ -919,6 +994,19 @@ var platformHostedModels = [
919
994
  supportsTool: true,
920
995
  supportsReasoningEffort: true
921
996
  },
997
+ {
998
+ // GPT-6 Luna:官方 1.05M 上下文 / 128k 输出 / 文本+图像输入、文本输出 /
999
+ // reasoning effort none-max(默认 medium);官方 Chat Completions 端点在
1000
+ // reasoning_effort=none 时支持 function calling(与 astra 同线)。
1001
+ name: PLATFORM_HOSTED_GPT_6_LUNA_MODEL,
1002
+ displayName: "GPT-6 Luna",
1003
+ hasVision: true,
1004
+ price: { ...PLATFORM_HOSTED_GPT_6_LUNA_PRICE },
1005
+ maxOutputTokens: 128e3,
1006
+ contextWindow: 105e4,
1007
+ supportsTool: true,
1008
+ supportsReasoningEffort: true
1009
+ },
922
1010
  {
923
1011
  name: PLATFORM_HOSTED_GPT_56_SOL_MODEL,
924
1012
  displayName: "GPT-5.6 Sol",
@@ -1,18 +1,18 @@
1
- import {
2
- fileKey,
3
- getFileIdFromKey,
4
- ulid
5
- } from "./chunk-VMFTFOWF.js";
6
1
  import {
7
2
  loadFileFromIndexedDb,
8
3
  removeAction,
9
4
  saveFileToIndexedDb
10
- } from "./chunk-ABQYVJBJ.js";
5
+ } from "./chunk-ETZWFV6M.js";
6
+ import {
7
+ fileKey,
8
+ getFileIdFromKey,
9
+ ulid
10
+ } from "./chunk-3AH7LNUB.js";
11
11
  import {
12
12
  readAction,
13
13
  readRequestManager,
14
14
  resolveAgentReadServers
15
- } from "./chunk-L2ICPOAL.js";
15
+ } from "./chunk-EFZKILX6.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-UKWGR5SS.js";
35
+ } from "./chunk-AUXHZ2M5.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-M2Q6WEKB.js");
715
+ const { readAction: readAction2 } = await import("./read-IEJLLUXY.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-6DXQGJMX.js");
789
+ const { shareResourceAction } = await import("./action-3ZOODRBC.js");
790
790
  return shareResourceAction(config, thunkApi);
791
791
  }
792
792
  ),
@@ -824,6 +824,7 @@ export {
824
824
  toTimestampMs,
825
825
  resolveFileCategory,
826
826
  uploadFileAction,
827
+ readFileContentAction,
827
828
  dbAdapter,
828
829
  selectById,
829
830
  selectEntities,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  BUILTIN_NOLO_AGENT_KEY
3
- } from "./chunk-TL6L5XUT.js";
3
+ } from "./chunk-BNGW5ASC.js";
4
4
 
5
5
  // packages/ai/tools/agentCapabilities.ts
6
6
  var SYSTEM_AGENT_CAPABILITIES = [
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  DEFAULT_AGENT_BASE_POLICY,
3
3
  DEFAULT_USER_PREFERENCE_PROFILE
4
- } from "./chunk-PH5J5VUY.js";
4
+ } from "./chunk-3IYMTWYZ.js";
5
5
 
6
6
  // packages/ai/policy/runtimePolicy.ts
7
7
  var clampLevel = (value, fallback) => {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  buildAgentRuntimeAgentLookupKeys,
3
3
  shouldFetchAgentRuntimeRecordRemotely
4
- } from "./chunk-YOXYA2GU.js";
4
+ } from "./chunk-LNPYTNMG.js";
5
5
 
6
6
  // packages/cli/client/localAgentRecords.ts
7
7
  var buildLocalAgentLookupKeys = buildAgentRuntimeAgentLookupKeys;
@@ -1,17 +1,13 @@
1
1
  import {
2
2
  buildLocalAgentLookupKeys,
3
3
  shouldReadAgentKeyRemotely
4
- } from "./chunk-IIKPWSPX.js";
4
+ } from "./chunk-R4SQ3LGW.js";
5
5
  import {
6
6
  resolveCliAgentKeyInput
7
- } from "./chunk-SAFZABH7.js";
7
+ } from "./chunk-SV5IJK6K.js";
8
8
  import {
9
9
  toErrorMessage
10
10
  } from "./chunk-HNMXYYJR.js";
11
- import {
12
- readPipeText,
13
- spawnProcess
14
- } from "./chunk-X7HHHIOZ.js";
15
11
  import {
16
12
  parseUserIdFromAuthToken,
17
13
  readOption,
@@ -19,9 +15,13 @@ import {
19
15
  resolveServerCandidates,
20
16
  resolveServerUrl
21
17
  } from "./chunk-A7GB5UGH.js";
18
+ import {
19
+ readPipeText,
20
+ spawnProcess
21
+ } from "./chunk-Y6ROFCZO.js";
22
22
  import {
23
23
  createAgentKey
24
- } from "./chunk-VMFTFOWF.js";
24
+ } from "./chunk-3AH7LNUB.js";
25
25
 
26
26
  // packages/cli/agentRecordHelpers.ts
27
27
  import { readFileSync } from "node:fs";
@@ -266,18 +266,31 @@ async function resolveAgentRecordFromHybridStore(args) {
266
266
  if (record && typeof record === "object") {
267
267
  const cacheAge = Date.now() - (Number(record?.cachedAt) || 0);
268
268
  const STALE_CACHE_MS = 6e4;
269
- if (record?.serverOrigin && shouldReadAgentKeyRemotely(key) && cacheAge > STALE_CACHE_MS) {
269
+ if (record?.serverOrigin && shouldReadAgentKeyRemotely(key) && (args.fresh === true || cacheAge > STALE_CACHE_MS)) {
270
270
  try {
271
- await readAgentRecord({
271
+ const fresh = await readAgentRecord({
272
272
  agentKey: key,
273
273
  authToken,
274
274
  fallbackFetchImpl: args.fallbackFetchImpl,
275
275
  fetchImpl: args.fetchImpl,
276
276
  serverUrl: record.serverOrigin
277
277
  });
278
- try {
279
- await args.db.put(key, { ...record, cachedAt: Date.now() });
280
- } catch {
278
+ if (fresh) {
279
+ try {
280
+ await args.db.put(key, {
281
+ ...fresh,
282
+ dbKey: key,
283
+ serverOrigin: record.serverOrigin,
284
+ cachedAt: Date.now()
285
+ });
286
+ } catch {
287
+ }
288
+ return {
289
+ agentKey: key,
290
+ record: { ...fresh, serverOrigin: record.serverOrigin },
291
+ source: record?.serverOrigin ? "remote-cache" : "local-cache",
292
+ cacheHit: false
293
+ };
281
294
  }
282
295
  } catch (err) {
283
296
  const msg = toErrorMessage(err);
@@ -293,7 +306,10 @@ async function resolveAgentRecordFromHybridStore(args) {
293
306
  return {
294
307
  agentKey: key,
295
308
  record,
296
- source: record?.serverOrigin ? "remote-cache" : "local-cache"
309
+ source: record?.serverOrigin ? "remote-cache" : "local-cache",
310
+ // 明确告知调用方「这是缓存视图」——缓存可能持有字段子集,也可能已过期。
311
+ // 调用方据此决定是否用 fresh 重读,而不是把不完整视图当成真值。
312
+ cacheHit: true
297
313
  };
298
314
  }
299
315
  } catch {
@@ -495,7 +511,7 @@ function parseAgentUpdateArgs(args) {
495
511
  updates[entry.slice(0, index)] = parseJsonishValue(entry.slice(index + 1));
496
512
  }
497
513
  if (Object.keys(updates).length === 0) {
498
- if (!promptDoc && !copyProviderFrom) {
514
+ if (!promptDoc && !copyProviderFrom && !presetId) {
499
515
  throw new Error("No updates provided. Use --model / --cli-provider / --api-source / --field key=value.");
500
516
  }
501
517
  }
@@ -507,21 +523,19 @@ async function buildCreatedAgentRecord(args) {
507
523
  const resolvedAgentInput = resolveCliAgentKeyInput(args.parsed.agentInput);
508
524
  const agentKey = resolvedAgentInput.startsWith("agent-") ? resolvedAgentInput : createAgentKey.private(userId || "local", resolvedAgentInput);
509
525
  if (args.parsed.presetId) {
510
- const { resolveProviderPresetFields } = await import("./providerPresetApply-OCWWKBSD.js");
526
+ const { resolveProviderPresetFields } = await import("./providerPresetApply-2QTBYN36.js");
511
527
  const fields = resolveProviderPresetFields(args.parsed.presetId);
512
528
  if (fields.kind === "manual") {
513
529
  throw new Error(
514
530
  `unknown --preset "${args.parsed.presetId}". Run \`nolo agent providers\` to list preset ids.`
515
531
  );
516
532
  }
517
- if (fields.kind === "oauth" || fields.requiresDesktopOAuth) {
518
- throw new Error(
519
- `--preset "${args.parsed.presetId}" is an OAuth subscription; create it in Nolo Desktop (OAuth login required).`
520
- );
521
- }
522
533
  const u = args.parsed.updates;
523
534
  u.apiSource = "custom";
524
535
  u.provider = u.provider ?? fields.provider;
536
+ if (fields.apiKeyRef && !u.apiKeyRef) {
537
+ u.apiKeyRef = fields.apiKeyRef;
538
+ }
525
539
  if (fields.customProviderUrl && !u.customProviderUrl) {
526
540
  u.customProviderUrl = fields.customProviderUrl;
527
541
  }
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  ownedAgentKey,
6
6
  publicAgentKey
7
- } from "./chunk-GII32WZW.js";
7
+ } from "./chunk-M2EJHDJP.js";
8
8
 
9
9
  // packages/cli/agentAliases.ts
10
10
  var CURRENT_OPERATOR_USER_ID = "0e95801d90";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  fetchReferenceContents,
3
3
  resolveReferenceAssets
4
- } from "./chunk-7MYYE7WX.js";
4
+ } from "./chunk-B4PW6UAI.js";
5
5
 
6
6
  // packages/ai/agent/fetchAgentContexts.ts
7
7
  async function fetchAgentContexts(references, dispatch) {
@@ -308,6 +308,8 @@ function saveProfileOAuthSync(provider, sync, path = getDefaultProfileConfigPath
308
308
  }
309
309
 
310
310
  export {
311
+ normalizeProfileServerUrl,
312
+ isProtectedHomeProfileWrite,
311
313
  getDefaultProfileConfigPath,
312
314
  loadProfileConfig,
313
315
  clearProfileAuthToken,
@@ -319,6 +321,8 @@ export {
319
321
  getCurrentProfile,
320
322
  saveProfileLocale,
321
323
  getAgentSelectionAuditPath,
324
+ redactArgvSecrets,
325
+ appendAgentSelectionAudit,
322
326
  readLastAgentSelectionAudit,
323
327
  saveProfileAgentSelection,
324
328
  getProfileOAuthSync,