nolo-cli 0.149.0-alpha.1 → 0.151.0-alpha.3

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 (258) hide show
  1. package/{_executeModel-OW3H7ICR.js → _executeModel-T7ANHTUW.js} +134 -91
  2. package/accountResolver-7RYB4D2P.js +300 -0
  3. package/action-SXJD5N5R.js +23 -0
  4. package/{addContentAction-B2DRF7P6.js → addContentAction-ZV774PHH.js} +20 -14
  5. package/{addDialogAgentAction-2P2FLTLD.js → addDialogAgentAction-A6SMKAGH.js} +26 -22
  6. package/{agentDeleteCommand-7IDWF6E3.js → agentDeleteCommand-4L5KCKFY.js} +181 -93
  7. package/{agentEmailCommands-A6XBQZBN.js → agentEmailCommands-2IMMIRO2.js} +132 -112
  8. package/{agentGrantCommands-M3XFO6EN.js → agentGrantCommands-HOJ3JBBQ.js} +3 -3
  9. package/agentListCommands-TWFLUYIZ.js +802 -0
  10. package/{agentMachineCommands-DQPUIMAC.js → agentMachineCommands-KIWXWT6L.js} +58 -62
  11. package/{agentProviderCommands-YK2BIIXZ.js → agentProviderCommands-HL6MBLCL.js} +149 -2
  12. package/{agentPullCommand-HF4A42D4.js → agentPullCommand-FA43RBRU.js} +7 -7
  13. package/agentRecordCommands-727NPCRW.js +154 -0
  14. package/agentRunCommand-JASIG3FZ.js +183 -0
  15. package/{agentRunControl-2SKCR4SB.js → agentRunControl-IFM7IGMG.js} +10 -2
  16. package/{agentRuntimeLocal-AK2QVJHY.js → agentRuntimeLocal-KKSQJMTE.js} +47 -50
  17. package/{agentSlice-O4RUQUMT.js → agentSlice-SLV57QGU.js} +23 -16
  18. package/{appDeleteCommands-N3XEVVYC.js → appDeleteCommands-4PL4KYRN.js} +58 -59
  19. package/{appDeployCommands-AWFIXYVW.js → appDeployCommands-EEEXCEB6.js} +67 -63
  20. package/{appDeployStatusCommands-CZRON2FO.js → appDeployStatusCommands-35ZX7T66.js} +56 -56
  21. package/{appGetCommands-XQIUY4TD.js → appGetCommands-WFCHXJWF.js} +56 -56
  22. package/{appListCommands-NNG4H36Y.js → appListCommands-XY2U6DPF.js} +57 -59
  23. package/{authCommand-UBJ4EWYZ.js → authCommand-QYN47CQD.js} +371 -68
  24. package/{authCommands-H6WKKCRW.js → authCommands-77CHYBGF.js} +12 -9
  25. package/{builtinSkillRegistry-ZMF6YGNO.js → builtinSkillRegistry-TDQ6JB2E.js} +13 -11
  26. package/{chromeCommands-2N6MEWRU.js → chromeCommands-OBBNJCLS.js} +314 -13
  27. package/chromeOpsCommands-3Z34RKSE.js +472 -0
  28. package/{chunk-ALXHV7NK.js → chunk-2GGXHQIW.js} +43 -4
  29. package/{localRuntimeAuthority-5W6IJRAD.js → chunk-2IXDJNZI.js} +154 -75
  30. package/{chunk-IVZJWTDI.js → chunk-36OMEXXR.js} +89 -21
  31. package/{chunk-H6A6X4EK.js → chunk-3MZAGMYY.js} +16 -0
  32. package/chunk-3PVYUPXK.js +40 -0
  33. package/chunk-3SZA4U64.js +1192 -0
  34. package/{chunk-ID7LNBWR.js → chunk-3T4ZG6AC.js} +1920 -644
  35. package/{chunk-GNMAFAIS.js → chunk-44WXLHFI.js} +1 -1
  36. package/{chunk-AGGIDPCZ.js → chunk-4JH2UMJR.js} +6 -0
  37. package/chunk-4LCOCOR5.js +50 -0
  38. package/chunk-4YRTZIVN.js +871 -0
  39. package/{chunk-N7J63Q6C.js → chunk-56GBUMO5.js} +10 -1
  40. package/{chunk-W7XHHYWM.js → chunk-5BHQICF2.js} +5 -1
  41. package/{chunk-XUWRURDF.js → chunk-5EBLANFT.js} +1 -1
  42. package/{chunk-3AH7LNUB.js → chunk-5EMSBTQ6.js} +33 -14
  43. package/{chunk-YRRASA5Q.js → chunk-5MM7NNO6.js} +113 -52
  44. package/chunk-5MMAK75Q.js +15 -0
  45. package/{chunk-TXH4IWJL.js → chunk-626KHJNX.js} +20 -11
  46. package/{chunk-M5PVFLD4.js → chunk-64K7WX26.js} +90 -21
  47. package/{chunk-AKG5W4LG.js → chunk-6CCFTVBP.js} +76 -221
  48. package/chunk-6MJNEXUU.js +614 -0
  49. package/{chunk-62IL3KQV.js → chunk-6MXDOUMH.js} +15 -3
  50. package/{chunk-QOKAKDPE.js → chunk-6Q7UTJKR.js} +6 -94
  51. package/chunk-6QDYSCPW.js +223 -0
  52. package/{chunk-HYZIYH2H.js → chunk-74RAWNQN.js} +56 -63
  53. package/chunk-7DPNBQSV.js +9 -0
  54. package/{chunk-IAESIMK7.js → chunk-A4MW3YZL.js} +10 -14
  55. package/{chunk-OMRJYNCI.js → chunk-AG7MCDLR.js} +26 -31
  56. package/chunk-AGIM7IMJ.js +147 -0
  57. package/{chunk-7CHC4W22.js → chunk-AIZE5TDM.js} +3 -3
  58. package/chunk-AJ3G7X2K.js +7012 -0
  59. package/{chunk-5GVBDNTO.js → chunk-AU7AXHUL.js} +1 -1
  60. package/{chunk-4H22P2JV.js → chunk-AUIJZACN.js} +2073 -1275
  61. package/{chunk-CIF4X6ZM.js → chunk-AWVFQMOV.js} +25 -3
  62. package/{chunk-YAQJJDC2.js → chunk-BJEZC5RA.js} +214 -51
  63. package/{chunk-RYZINGPM.js → chunk-BPMPOFWP.js} +347 -235
  64. package/{chunk-YUNJN43V.js → chunk-BU2YQBV4.js} +215 -28
  65. package/{chunk-XPRWFQQK.js → chunk-CBHGZRCE.js} +38 -12
  66. package/{chunk-Y3PMXGLH.js → chunk-CHCS6XPJ.js} +365 -144
  67. package/chunk-CHOZJMJS.js +78 -0
  68. package/chunk-CYJWI3NH.js +119 -0
  69. package/{chunk-GBRG75BQ.js → chunk-D2MDMY2M.js} +1 -0
  70. package/{chunk-3SV7RM24.js → chunk-D2QN6CTI.js} +117 -72
  71. package/{chunk-TZZ2WRBL.js → chunk-DFDXM2Y4.js} +20 -16
  72. package/{chunk-5TEEECZM.js → chunk-E2AKSW7L.js} +10 -7
  73. package/{chunk-RSEEDUMS.js → chunk-EDX5XSJM.js} +2 -2
  74. package/{chunk-QDSINZM3.js → chunk-EUGTFFO6.js} +2 -23
  75. package/{chunk-UNYJU5L6.js → chunk-EYLGAEB4.js} +5 -1
  76. package/{chunk-CU3QB4HW.js → chunk-EYWJT7A2.js} +12 -12
  77. package/{chunk-BNGW5ASC.js → chunk-EZVK3N5L.js} +66 -18
  78. package/{chunk-6FGTMQCL.js → chunk-F32Z66T4.js} +6 -10
  79. package/{chunk-ZOVKKMF6.js → chunk-FY4SDK2E.js} +1 -1
  80. package/chunk-G6OOUQWJ.js +417 -0
  81. package/{chunk-PQWU42UQ.js → chunk-GCKHQECX.js} +6 -6
  82. package/chunk-GKXCHNTE.js +15 -0
  83. package/{chunk-P6GMCCAT.js → chunk-GQV5KHJU.js} +78 -12
  84. package/{chunk-B2XUQXQX.js → chunk-HIQ4GF53.js} +191 -68
  85. package/{chunk-GMZLP5DV.js → chunk-HNUWUO75.js} +30 -19
  86. package/{chunk-UASIEDKM.js → chunk-I2XLRXVX.js} +36 -31
  87. package/{chunk-5UTFL4QJ.js → chunk-I2ZMGXXF.js} +10 -5
  88. package/chunk-I42VC5KR.js +15 -0
  89. package/{chunk-3BXNTXYI.js → chunk-I4SN4NUQ.js} +1199 -56
  90. package/chunk-IA7TRNNR.js +11 -0
  91. package/{chunk-WIWM4FE3.js → chunk-IJERIUXS.js} +55 -748
  92. package/{chunk-BIDGLJQ3.js → chunk-IK2TSJQA.js} +45 -8
  93. package/{chunk-CPUFH46E.js → chunk-ILU2NPWY.js} +10 -10
  94. package/{chunk-SLLGJZDT.js → chunk-ISQL4V7C.js} +4 -4
  95. package/chunk-IT3ZZRJE.js +12 -0
  96. package/{chunk-DY7ANLKG.js → chunk-JKMLSTZK.js} +43 -12
  97. package/{chunk-6TPOEJMQ.js → chunk-JZX2XLKC.js} +64 -23
  98. package/{chunk-27ONFIEY.js → chunk-K2AER7RX.js} +19 -12
  99. package/{chunk-O2OWEFII.js → chunk-KFHQQ3NO.js} +1 -1
  100. package/{chunk-QXGPFY6J.js → chunk-LGN377P3.js} +27 -17
  101. package/{chunk-L36OWPP3.js → chunk-LIQJTQRN.js} +118 -139
  102. package/{chunk-BFU6C242.js → chunk-NMFV26UG.js} +1 -1
  103. package/{chunk-5J3PYNUP.js → chunk-NYYFIKHI.js} +17 -3
  104. package/{chunk-6O4IK4V2.js → chunk-OFFL4DCR.js} +1 -1
  105. package/{chunk-B6SAMB33.js → chunk-OWYYDMGJ.js} +209 -9
  106. package/{chunk-KQHGZWSV.js → chunk-OXME3PEE.js} +1 -1
  107. package/{chunk-CTUQJVQM.js → chunk-P5QACQDK.js} +1 -1
  108. package/{chunk-TB3MIBRC.js → chunk-PIDUNDFS.js} +572 -430
  109. package/{chunk-4JMDLJAD.js → chunk-PJNFNEJE.js} +114 -37
  110. package/chunk-PKZKOVA5.js +11507 -0
  111. package/{chunk-Z4CSIXYP.js → chunk-PLSVXHSA.js} +3 -3
  112. package/chunk-PWTNI4N7.js +47 -0
  113. package/chunk-QFEW2ULV.js +42 -0
  114. package/{chunk-RGNEEJ3Y.js → chunk-QLQ573SU.js} +35 -9
  115. package/chunk-QQ56R7KS.js +88 -0
  116. package/chunk-QYPE3TS3.js +43 -0
  117. package/{chunk-HTVYCXBP.js → chunk-RN2GPWN6.js} +354 -120
  118. package/{chunk-ATLTFRYJ.js → chunk-ROCUB2H2.js} +280 -98
  119. package/{chunk-4DPP773Q.js → chunk-RSHPU4PD.js} +59 -11
  120. package/chunk-RVWMAFIT.js +134 -0
  121. package/{chunk-ESHYE7WU.js → chunk-S73EPYNC.js} +10 -7
  122. package/{chunk-UQNS32WZ.js → chunk-SCMHQUMK.js} +1 -1
  123. package/chunk-SW4S4XYB.js +1794 -0
  124. package/{chunk-ZUEK6A6C.js → chunk-TTH4HOJD.js} +1973 -754
  125. package/chunk-TY3TIUJK.js +89 -0
  126. package/{chunk-X2QRZXZH.js → chunk-TYJ5XFEA.js} +4 -4
  127. package/{chunk-ALFH24P3.js → chunk-TYYRSFBG.js} +197 -155
  128. package/{chunk-MST6R3E4.js → chunk-U5GPBQDG.js} +34 -22
  129. package/chunk-U5ICMAFV.js +14110 -0
  130. package/{chunk-7KVZ5LDQ.js → chunk-UBUH2TCC.js} +18 -4
  131. package/chunk-UEILX4EV.js +15 -0
  132. package/chunk-UHTDNB5Y.js +140 -0
  133. package/{chunk-YYLHWIW6.js → chunk-UKZX3NHN.js} +1 -1
  134. package/{chunk-OHOVNO7I.js → chunk-UOKFKFPO.js} +6 -3
  135. package/{chunk-XISEYOGH.js → chunk-USHQX6VT.js} +5 -5
  136. package/chunk-UUPR3TD7.js +53 -0
  137. package/{chunk-3DAVPNFT.js → chunk-V4EE3D54.js} +122 -107
  138. package/{chunk-HDLLCBRF.js → chunk-VEA7H5FG.js} +2 -2
  139. package/chunk-VHGD6FHV.js +116 -0
  140. package/chunk-VIWDGTDA.js +8 -0
  141. package/{chunk-GOH6RW6F.js → chunk-VJXHL6MH.js} +34 -11
  142. package/{chunk-4XEYAFLY.js → chunk-VL5KOY2C.js} +623 -94
  143. package/{chunk-EADNWBAZ.js → chunk-VP3BINY7.js} +13 -0
  144. package/{chunk-DXHL7G2L.js → chunk-VWW6O2TL.js} +274 -93
  145. package/{chunk-EOARMOVD.js → chunk-W4S6OTSC.js} +6 -3
  146. package/chunk-WD4XYDYC.js +567 -0
  147. package/chunk-WJZOQR2J.js +151 -0
  148. package/{chunk-AUDNYVRC.js → chunk-XETG4RIX.js} +5 -5
  149. package/{chunk-MX574M24.js → chunk-XI7DGLUK.js} +4 -4
  150. package/{chunk-3L2WKC3W.js → chunk-XPWGOTBQ.js} +8 -1
  151. package/chunk-XRUSXPCQ.js +514 -0
  152. package/{chunk-I4OPU5TK.js → chunk-XS47QOFV.js} +273 -11
  153. package/{chunk-S5XGT6GB.js → chunk-XZNCX52W.js} +30 -9
  154. package/{chunk-5OA5HMTL.js → chunk-YLMMECCH.js} +1 -1
  155. package/{chunk-CFT5HBGW.js → chunk-YVLQXTUB.js} +448 -12
  156. package/chunk-YVPQATSC.js +709 -0
  157. package/chunk-ZEZC7IIM.js +126 -0
  158. package/{chunk-ALGORS6Y.js → chunk-ZF6526IQ.js} +43 -8
  159. package/chunk-ZIWPQEFU.js +165 -0
  160. package/chunk-ZRAU6T47.js +56 -0
  161. package/{cliExecutor-AWYR3T33.js → cliExecutor-BWBF2MTI.js} +4 -3
  162. package/{clipboardy-BX4NMYHE.js → clipboardy-GCO3GT3I.js} +3 -8
  163. package/{commandRegistry-2KBOXZQC.js → commandRegistry-NBLZEMCW.js} +183 -107
  164. package/contentThunks-6AIWNSGO.js +84 -0
  165. package/{cooldownCommands-ZLEPIB4A.js → cooldownCommands-JFKTYS2D.js} +2 -2
  166. package/{createAgentAutomationAction-5UGTB26P.js → createAgentAutomationAction-4BUS65DZ.js} +53 -44
  167. package/createDialogAction-QAIKSCG4.js +76 -0
  168. package/{createPageAction-CDLDKPRM.js → createPageAction-DXCZ334C.js} +65 -54
  169. package/cursorProvider-YGGNMVWX.js +6123 -0
  170. package/{db-VQSAOWAO.js → db-2QOTXYGH.js} +11 -5
  171. package/{dbSlice-DQ32LYTJ.js → dbSlice-J37OGIXH.js} +19 -13
  172. package/{deleteFile-NX6QHCWZ.js → deleteFile-6JWDDRVP.js} +10 -6
  173. package/dialogCommands-YZLSJB6X.js +113 -0
  174. package/{dialogSlice-N3YB65G5.js → dialogSlice-PVUSMKFW.js} +53 -39
  175. package/{docCreateCommands-ZSLGVBZT.js → docCreateCommands-JB2RRMRJ.js} +54 -57
  176. package/{docDeleteCommands-5N4GVZBG.js → docDeleteCommands-AQENULNM.js} +56 -58
  177. package/{docReadCommands-YJSAA7AV.js → docReadCommands-DYD25YLQ.js} +53 -56
  178. package/{docStore-E3CEOV5Q.js → docStore-CSEBEMKP.js} +25 -16
  179. package/{docUpdateCommands-WEMLSW6W.js → docUpdateCommands-3GVS23QL.js} +54 -57
  180. package/{fetchMessages-67MEFPZR.js → fetchMessages-IIJWQ3HR.js} +5 -4
  181. package/{getPricing-NMMFT3YI.js → getPricing-FKK3F5EJ.js} +11 -9
  182. package/{handleSendMessageAction-DQAD5ERJ.js → handleSendMessageAction-G2TLYGC4.js} +422 -118
  183. package/index.js +11 -7
  184. package/{lib-FRRS27KN.js → lib-4YTWAGY7.js} +581 -248
  185. package/{localDialogRead-EBRS242U.js → localDialogRead-FSOMOPDZ.js} +2 -2
  186. package/localRuntimeAdapter-B4TAYYA7.js +244 -0
  187. package/localRuntimeAuthority-JDAD7CB6.js +16 -0
  188. package/{localRuntimeDb-3LRMNLCM.js → localRuntimeDb-CVC62PM5.js} +1 -1
  189. package/{machineCommands-HAP75VSG.js → machineCommands-6OBFD3XF.js} +503 -161
  190. package/{machineInfo-66ZFUMLE.js → machineInfo-UKPTZO5Y.js} +2 -2
  191. package/machineWsRunDispatch-OO7N3O3Y.js +169 -0
  192. package/{memberThunks-5ZXPR63F.js → memberThunks-66DH6ABQ.js} +25 -18
  193. package/{models-ZPU5EDF4.js → models-LAS4B2B5.js} +2 -2
  194. package/package.json +1 -1
  195. package/{providerPresetApply-DD6NGWW6.js → providerPresetApply-MY66I6NT.js} +10 -10
  196. package/{providerRegistry-XDRLMYGJ.js → providerRegistry-QOE2FT57.js} +13 -9
  197. package/{read-EPTJRAEF.js → read-DC4NUGN6.js} +12 -8
  198. package/{readDocTool-W4NDXNEX.js → readDocTool-NCJ5NT25.js} +1 -1
  199. package/{readlineWorkspace-7BC66QSX.js → readlineWorkspace-UIQN7JUR.js} +5017 -915
  200. package/{removeDialogAgentAction-OSYNZRX7.js → removeDialogAgentAction-E2H3OZU6.js} +29 -28
  201. package/{runAgentClientLoop-6E6UC3CE.js → runAgentClientLoop-GS3SGG37.js} +154 -97
  202. package/{runtimeDoctorCommands-ID23PNNZ.js → runtimeDoctorCommands-GIOGC5SC.js} +17 -17
  203. package/secretCommands-ZXZRLR3R.js +700 -0
  204. package/setDialogExtraReferencesAction-SITRPMYU.js +37 -0
  205. package/{setPrimaryDialogAgentAction-WZ7KI3YA.js → setPrimaryDialogAgentAction-U7N45TGC.js} +30 -29
  206. package/{chunk-SONWNI3L.js → settingThunks-Y7SVJOMZ.js} +223 -928
  207. package/{skillDiscovery-ZBU76COE.js → skillDiscovery-QC35EQY4.js} +2 -2
  208. package/{slateUtils-RIZES3PV.js → slateUtils-NGV2NMKM.js} +1 -1
  209. package/{spaceCommands-UJOVU4XI.js → spaceCommands-ZR5BR3GX.js} +59 -59
  210. package/{streamAgentChatTurn-3UXPYFNX.js → streamAgentChatTurn-4XYC33KE.js} +309 -165
  211. package/{switchDialogAgentAction-GMR7WN3P.js → switchDialogAgentAction-OMGBD3N2.js} +26 -22
  212. package/{tableCommands-G7RV3RU3.js → tableCommands-U3QDY4L6.js} +19 -17
  213. package/{toolApiClient-CVGWM4PN.js → toolApiClient-7WSJJJBV.js} +6 -5
  214. package/tools-P77EE7Q4.js +124 -0
  215. package/tuiSummaryLlmCaller-BM3VSTBU.js +130 -0
  216. package/{updateCommands-4EHDLF5J.js → updateCommands-NQXAGFM7.js} +3 -3
  217. package/{updateDialogTitleAction-UPFV7TDT.js → updateDialogTitleAction-CIANVPZC.js} +102 -57
  218. package/workloadLifecycle-36DXRZKU.js +320 -0
  219. package/action-GI44T4DR.js +0 -31
  220. package/agentListCommands-IW3GQVUP.js +0 -427
  221. package/agentRecordCommands-VCA76W6B.js +0 -134
  222. package/agentRunCommand-YNLDKVR7.js +0 -161
  223. package/browser-image-compression-MFDTD7K6.js +0 -1763
  224. package/chatQueueReduxAdapter-TJRMXMYA.js +0 -186
  225. package/chromeOpsCommands-IXRLN57H.js +0 -289
  226. package/chunk-36KZDDO5.js +0 -2415
  227. package/chunk-ACQD6YI2.js +0 -25363
  228. package/chunk-CQ3WA2NE.js +0 -299
  229. package/chunk-CYSYR67N.js +0 -93
  230. package/chunk-JBTJAPUF.js +0 -35
  231. package/chunk-K2CSUCHJ.js +0 -620
  232. package/chunk-LTRXGFMS.js +0 -83
  233. package/chunk-M76ECQRD.js +0 -13658
  234. package/chunk-MEYIRKDN.js +0 -8967
  235. package/chunk-OCZKATRC.js +0 -129
  236. package/chunk-OTGFTBLI.js +0 -13
  237. package/chunk-PUOC4YRO.js +0 -394
  238. package/chunk-PZZTFEKK.js +0 -34
  239. package/chunk-URMS4XY2.js +0 -10
  240. package/chunk-UV6VISQJ.js +0 -20
  241. package/chunk-VJVNU77E.js +0 -83
  242. package/chunk-XYJSY4KG.js +0 -13807
  243. package/chunk-Y5GCAMGP.js +0 -9
  244. package/chunk-YPREESF4.js +0 -225
  245. package/contentThunks-BDIQRZR6.js +0 -73
  246. package/createDialogAction-B7VGVEVU.js +0 -66
  247. package/dialogCommands-G7YBVAMC.js +0 -102
  248. package/levelLazyShim-GZBKODGI.js +0 -7
  249. package/machineWsRunDispatch-L32G7C4P.js +0 -149
  250. package/serverStoreFactory-YMXDF4NI.js +0 -20
  251. package/setDialogExtraReferencesAction-M32UYNCG.js +0 -30
  252. package/settingSlice-Q6EKL7EQ.js +0 -204
  253. package/syncMapping-N6RGXGBW.js +0 -437
  254. package/tools-MKYDMWA4.js +0 -111
  255. package/tuiSummaryLlmCaller-3YFNHCTW.js +0 -128
  256. package/{chunk-SV5IJK6K.js → chunk-NBTY7YJF.js} +3 -3
  257. package/{chunk-2SYTUTLI.js → chunk-YBNHPX4S.js} +3 -3
  258. package/{offlineMarxistsAgentCommand-HGXZV4XJ.js → offlineMarxistsAgentCommand-2QTHJCHV.js} +4 -4
@@ -0,0 +1,89 @@
1
+ import {
2
+ isLevelNotFoundError
3
+ } from "./chunk-OW765XBU.js";
4
+
5
+ // packages/ai/memory/vnext/store.ts
6
+ var enc = (value) => encodeURIComponent(value).replace(/-/g, "%2D");
7
+ var rangeOf = (prefix) => ({ gte: prefix, lte: `${prefix}\uFFFF` });
8
+ var entityKey = (ownerId, id) => `mem2-e-${enc(ownerId)}-${enc(id)}`;
9
+ var entityOwnerPrefix = (ownerId) => `mem2-e-${enc(ownerId)}-`;
10
+ var stateKey = (ownerId, id) => `mem2-s-${enc(ownerId)}-${enc(id)}`;
11
+ var stateEntityIndexKey = (ownerId, entityId, stateId) => `mem2-si-${enc(ownerId)}-${enc(entityId)}-${enc(stateId)}`;
12
+ var stateEntityIndexPrefix = (ownerId, entityId) => `mem2-si-${enc(ownerId)}-${enc(entityId)}-`;
13
+ var evidenceKey = (ownerId, id) => `mem2-v-${enc(ownerId)}-${enc(id)}`;
14
+ var relationKey = (ownerId, id) => `mem2-r-${enc(ownerId)}-${enc(id)}`;
15
+ var relationFromIndexKey = (ownerId, from, relationId) => `mem2-rf-${enc(ownerId)}-${enc(from)}-${enc(relationId)}`;
16
+ var relationToIndexKey = (ownerId, to, relationId) => `mem2-rt-${enc(ownerId)}-${enc(to)}-${enc(relationId)}`;
17
+ var readIndexed = async (db, prefix) => {
18
+ const refs = [];
19
+ for await (const [, value] of db.iterator({ ...rangeOf(prefix), reverse: false })) {
20
+ if (typeof value?.key === "string") refs.push(value.key);
21
+ }
22
+ const rows = await Promise.all(refs.map((key) => db.get(key).catch(() => null)));
23
+ return rows.filter((row) => !!row);
24
+ };
25
+ var getMemoryEntityVNext = async (db, ownerId, entityId) => db.get(entityKey(ownerId, entityId)).catch(() => null);
26
+ var listMemoryEntitiesVNext = async (db, ownerId) => {
27
+ const rows = [];
28
+ for await (const [, value] of db.iterator({
29
+ ...rangeOf(entityOwnerPrefix(ownerId)),
30
+ reverse: false
31
+ })) {
32
+ if (value) rows.push(value);
33
+ }
34
+ return rows;
35
+ };
36
+ var loadMemoryVNextCatalog = async (db, ownerId) => {
37
+ const entities = await listMemoryEntitiesVNext(db, ownerId);
38
+ const states = (await Promise.all(entities.map((entity) => listMemoryStatesForEntityVNext(db, ownerId, entity.id)))).flat();
39
+ return { entities, states };
40
+ };
41
+ var getMemoryStateVNext = async (db, ownerId, stateId) => db.get(stateKey(ownerId, stateId)).catch(() => null);
42
+ var listMemoryStatesForEntityVNext = (db, ownerId, entityId) => readIndexed(db, stateEntityIndexPrefix(ownerId, entityId));
43
+ var putMemoryEvidenceVNext = async (db, evidence) => {
44
+ await db.put(evidenceKey(evidence.ownerId, evidence.id), evidence);
45
+ };
46
+ var getMemoryEvidenceVNext = async (db, ownerId, evidenceId) => db.get(evidenceKey(ownerId, evidenceId)).catch(() => null);
47
+ var getMemoryEvidenceVNextStrict = async (db, ownerId, evidenceId) => {
48
+ try {
49
+ return await db.get(evidenceKey(ownerId, evidenceId));
50
+ } catch (error) {
51
+ if (isLevelNotFoundError(error)) return null;
52
+ throw error;
53
+ }
54
+ };
55
+ var _appendEntityBatch = (batch, entity) => {
56
+ batch.put(entityKey(entity.ownerId, entity.id), entity);
57
+ };
58
+ var _appendEvidenceBatch = (batch, evidence) => {
59
+ batch.put(evidenceKey(evidence.ownerId, evidence.id), evidence);
60
+ };
61
+ var _appendStateBatch = (batch, state) => {
62
+ const key = stateKey(state.ownerId, state.id);
63
+ batch.put(key, state);
64
+ batch.put(stateEntityIndexKey(state.ownerId, state.entityId, state.id), { key });
65
+ };
66
+ var _appendRetiredStateBatch = (batch, state) => {
67
+ batch.put(stateKey(state.ownerId, state.id), state);
68
+ };
69
+ var _appendRelationBatch = (batch, relation) => {
70
+ const key = relationKey(relation.ownerId, relation.id);
71
+ batch.put(key, relation);
72
+ batch.put(relationFromIndexKey(relation.ownerId, relation.from, relation.id), { key });
73
+ batch.put(relationToIndexKey(relation.ownerId, relation.to, relation.id), { key });
74
+ };
75
+
76
+ export {
77
+ getMemoryEntityVNext,
78
+ loadMemoryVNextCatalog,
79
+ getMemoryStateVNext,
80
+ listMemoryStatesForEntityVNext,
81
+ putMemoryEvidenceVNext,
82
+ getMemoryEvidenceVNext,
83
+ getMemoryEvidenceVNextStrict,
84
+ _appendEntityBatch,
85
+ _appendEvidenceBatch,
86
+ _appendStateBatch,
87
+ _appendRetiredStateBatch,
88
+ _appendRelationBatch
89
+ };
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  generatePkcePair,
3
3
  startCallbackServer
4
- } from "./chunk-I4OPU5TK.js";
5
- import {
6
- toErrorMessage
7
- } from "./chunk-HNMXYYJR.js";
4
+ } from "./chunk-XS47QOFV.js";
8
5
  import {
9
6
  asOptionalFiniteNumber
10
7
  } from "./chunk-WWC7I6TA.js";
8
+ import {
9
+ toErrorMessage
10
+ } from "./chunk-HNMXYYJR.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,8 @@
1
1
  import {
2
2
  ANTIGRAVITY_CLOUD_CODE_BASE_URL
3
- } from "./chunk-S5XGT6GB.js";
3
+ } from "./chunk-XZNCX52W.js";
4
4
  import {
5
+ commandCodeModels,
5
6
  kimiCodeModels,
6
7
  moonshotModels,
7
8
  opencodeGoModels,
@@ -9,163 +10,16 @@ import {
9
10
  qwenTokenPlanModels,
10
11
  stepfunModels,
11
12
  stepfunStepPlanModels
12
- } from "./chunk-3BXNTXYI.js";
13
+ } from "./chunk-I4SN4NUQ.js";
13
14
  import {
14
15
  PLATFORM_HOSTED_DEEPSEEK_FLASH_OFF_PEAK_PRICE,
15
16
  PLATFORM_HOSTED_DEEPSEEK_FLASH_PEAK_PRICE,
16
17
  PLATFORM_HOSTED_DEEPSEEK_PRO_OFF_PEAK_PRICE,
17
18
  PLATFORM_HOSTED_DEEPSEEK_PRO_PEAK_PRICE
18
- } from "./chunk-Y3PMXGLH.js";
19
-
20
- // packages/integrations/commandcode/models.ts
21
- var commandCodeModels = [
22
- // ── DeepSeek ──
23
- {
24
- name: "deepseek/deepseek-v4-flash",
25
- displayName: "DeepSeek V4 Flash",
26
- hasVision: false,
27
- price: { input: 0, output: 0 },
28
- provider: "commandcode",
29
- description: "CommandCode \u5B98\u65B9\u9ED8\u8BA4\u6A21\u578B\uFF0C\u5FEB\u901F\u6DF7\u5408\u6CE8\u610F\u529B\u63A8\u7406\u3002"
30
- },
31
- {
32
- name: "deepseek/deepseek-v4-pro",
33
- displayName: "DeepSeek V4 Pro",
34
- hasVision: false,
35
- price: { input: 0, output: 0 },
36
- provider: "commandcode",
37
- description: "\u6DF7\u5408\u6CE8\u610F\u529B\u957F\u4E0A\u4E0B\u6587\u63A8\u7406\u65D7\u8230\u3002"
38
- },
39
- {
40
- name: "deepseek/deepseek-v4.1-flash",
41
- displayName: "DeepSeek V4.1 Flash",
42
- hasVision: true,
43
- price: { input: 0, output: 0 },
44
- provider: "commandcode",
45
- description: "V4.1 \u6DF7\u5408\u6CE8\u610F\u529B\u63A8\u7406\uFF0C\u5E26\u89C6\u89C9\u3002"
46
- },
47
- // ── Moonshot ──
48
- {
49
- name: "moonshotai/Kimi-K3",
50
- displayName: "Kimi K3",
51
- hasVision: false,
52
- price: { input: 0, output: 0 },
53
- provider: "commandcode",
54
- description: "Kimi K3\uFF0C\u6708\u4E4B\u6697\u9762\u65D7\u8230\u3002"
55
- },
56
- {
57
- name: "moonshotai/Kimi-K2.7-Code",
58
- displayName: "Kimi K2.7 Code",
59
- hasVision: false,
60
- price: { input: 0, output: 0 },
61
- provider: "commandcode",
62
- description: "Kimi K2.7 Code\uFF0C\u7F16\u7A0B\u7279\u5316\u3002"
63
- },
64
- // ── Qwen ──
65
- {
66
- name: "Qwen/Qwen3.8-Max",
67
- displayName: "Qwen 3.8 Max",
68
- hasVision: true,
69
- price: { input: 0, output: 0 },
70
- provider: "commandcode",
71
- description: "\u81EA\u4E3B\u957F\u7A0B\u7F16\u7A0B\u4E0E\u4E13\u4E1A\u5DE5\u4F5C\u3002"
72
- },
73
- // ── Z AI ──
74
- {
75
- name: "zai-org/GLM-5.3",
76
- displayName: "GLM 5.3",
77
- hasVision: false,
78
- price: { input: 0, output: 0 },
79
- provider: "commandcode",
80
- description: "\u524D\u6CBF\u7F16\u7A0B\u6A21\u578B\uFF0C1M \u4E0A\u4E0B\u6587\u3002"
81
- },
82
- {
83
- name: "z-ai/glm-5.3-flash",
84
- displayName: "GLM 5.3 Flash",
85
- hasVision: true,
86
- price: { input: 0, output: 0 },
87
- provider: "commandcode",
88
- description: "\u5FEB\u901F\u5B9E\u60E0\u7684 GLM \u7F16\u7A0B\u6A21\u578B\uFF0C1M \u4E0A\u4E0B\u6587\u3002"
89
- },
90
- // ── Xiaomi ──
91
- {
92
- name: "xiaomi/mimo-v2.5-pro",
93
- displayName: "MiMo V2.5 Pro",
94
- hasVision: false,
95
- price: { input: 0, output: 0 },
96
- provider: "commandcode",
97
- description: "\u9AD8\u80FD\u529B\u957F\u4E0A\u4E0B\u6587 agentic \u7F16\u7A0B\u3002"
98
- },
99
- // ── MiniMax ──
100
- {
101
- name: "MiniMaxAI/MiniMax-M3",
102
- displayName: "MiniMax M3",
103
- hasVision: false,
104
- price: { input: 0, output: 0 },
105
- provider: "commandcode",
106
- description: "MiniMax M3 \u63A8\u7406\u6A21\u578B\u3002"
107
- },
108
- // ── xAI ──
109
- {
110
- name: "xai/grok-4.6",
111
- displayName: "Grok 4.6",
112
- hasVision: true,
113
- price: { input: 0, output: 0 },
114
- provider: "commandcode",
115
- description: "\u7F16\u7A0B\u3001\u77E5\u8BC6\u4E0E STEM \u524D\u6CBF\u8868\u73B0\u3002"
116
- },
117
- {
118
- name: "xai/grok-4.5",
119
- displayName: "Grok 4.5",
120
- hasVision: true,
121
- price: { input: 0, output: 0 },
122
- provider: "commandcode",
123
- description: "\u7F16\u7A0B\u4E0E agentic \u4EFB\u52A1\u667A\u80FD\u4E4B\u9009\u3002"
124
- },
125
- // ── Anthropic ──
126
- {
127
- name: "claude-sonnet-5",
128
- displayName: "Claude Sonnet 5",
129
- hasVision: false,
130
- price: { input: 0, output: 0 },
131
- provider: "commandcode",
132
- description: "\u901F\u5EA6\u4E0E\u667A\u80FD\u7684\u6700\u4F73\u5E73\u8861\uFF08\u5B98\u65B9\u63A8\u8350\uFF09\u3002"
133
- },
134
- {
135
- name: "claude-opus-5",
136
- displayName: "Claude Opus 5",
137
- hasVision: false,
138
- price: { input: 0, output: 0 },
139
- provider: "commandcode",
140
- description: "\u6700\u667A\u80FD\u7684 Opus\uFF0Cagent \u4E0E\u7F16\u7A0B\u3002"
141
- },
142
- // ── OpenAI ──
143
- {
144
- name: "gpt-5.6-sol",
145
- displayName: "GPT-5.6 Sol",
146
- hasVision: false,
147
- price: { input: 0, output: 0 },
148
- provider: "commandcode",
149
- description: "OpenAI GPT-5.6 Sol\u3002"
150
- },
151
- {
152
- name: "gpt-6-astra",
153
- displayName: "GPT-6 Astra",
154
- hasVision: false,
155
- price: { input: 0, output: 0 },
156
- provider: "commandcode",
157
- description: "OpenAI GPT-6 Astra \u65D7\u8230\u3002"
158
- },
159
- // ── Google ──
160
- {
161
- name: "google/gemini-3.8-flash",
162
- displayName: "Gemini 3.8 Flash",
163
- hasVision: true,
164
- price: { input: 0, output: 0 },
165
- provider: "commandcode",
166
- description: "Gemini 3.8 Flash\uFF0C\u591A\u6A21\u6001\u3002"
167
- }
168
- ];
19
+ } from "./chunk-CHCS6XPJ.js";
20
+ import {
21
+ asTrimmedLowercaseString
22
+ } from "./chunk-QSJ3HFEF.js";
169
23
 
170
24
  // packages/integrations/deepseek/models.ts
171
25
  var deepseekModels = [
@@ -203,6 +57,60 @@ var deepseekModels = [
203
57
  }
204
58
  ];
205
59
 
60
+ // packages/integrations/mistral/models.ts
61
+ var mistralModels = [
62
+ // ── Vibe 编码档(订阅主打,Vibe CLI 默认用最新档)──
63
+ {
64
+ name: "mistral-vibe-cli-latest",
65
+ displayName: "Mistral Vibe CLI",
66
+ hasVision: true,
67
+ contextWindow: 262144,
68
+ jsonOutput: true,
69
+ fnCall: true,
70
+ supportsTool: true,
71
+ price: { input: 0, output: 0 },
72
+ provider: "mistral",
73
+ description: "Mistral Vibe \u9ED8\u8BA4\u7F16\u7801\u6A21\u578B\uFF08\u8BA2\u9605\u6C60\u5185\uFF09\uFF0C\u9762\u5411 agentic coding\u3002"
74
+ },
75
+ {
76
+ name: "mistral-vibe-cli-fast",
77
+ displayName: "Mistral Vibe CLI Fast",
78
+ hasVision: true,
79
+ contextWindow: 262144,
80
+ jsonOutput: true,
81
+ fnCall: true,
82
+ supportsTool: true,
83
+ price: { input: 0, output: 0 },
84
+ provider: "mistral",
85
+ description: "Vibe \u7F16\u7801\u6863\u7684\u5FEB\u6863\uFF08\u8BA2\u9605\u6C60\u5185\uFF09\uFF0C\u4E0E latest \u540C\u4E3A 262k \u4E0A\u4E0B\u6587\u7684\u7F16\u7801\u6863\u3002"
86
+ },
87
+ // ── 通用档 ──
88
+ {
89
+ name: "mistral-medium-3.5",
90
+ displayName: "Mistral Medium 3.5",
91
+ hasVision: true,
92
+ contextWindow: 262144,
93
+ jsonOutput: true,
94
+ fnCall: true,
95
+ supportsTool: true,
96
+ price: { input: 0, output: 0 },
97
+ provider: "mistral",
98
+ description: "Mistral \u4E2D\u6863\u901A\u7528\u6A21\u578B\uFF08\u8BA2\u9605\u6C60\u5185\uFF09\uFF0C\u591A\u6A21\u6001\uFF0C\u9002\u5408\u65E5\u5E38\u95EE\u7B54\u4E0E\u8F7B\u91CF\u7F16\u7801\u3002"
99
+ },
100
+ {
101
+ name: "mistral-large-latest",
102
+ displayName: "Mistral Large (latest)",
103
+ hasVision: true,
104
+ contextWindow: 262144,
105
+ jsonOutput: true,
106
+ fnCall: true,
107
+ supportsTool: true,
108
+ price: { input: 0, output: 0 },
109
+ provider: "mistral",
110
+ description: "Mistral \u65D7\u8230\u6863\uFF08\u8BA2\u9605\u6C60\u5185\uFF09\uFF0C\u8BA2\u9605\u989D\u5EA6\u6D88\u8017\u6700\u5FEB\uFF0C\u9002\u5408\u96BE\u9898\u515C\u5E95\u3002"
111
+ }
112
+ ];
113
+
206
114
  // packages/ai/agent/providerRegistry.ts
207
115
  var QWEN_MODEL_OPTIONS = qwenModels.map((m, i) => ({
208
116
  id: m.name,
@@ -267,6 +175,12 @@ var STEPFUN_STEP_PLAN_MODEL_OPTIONS = stepfunStepPlanModels.map((m, i) => ({
267
175
  hasVision: m.hasVision,
268
176
  ...i === 0 ? { recommended: true } : {}
269
177
  }));
178
+ var MISTRAL_MODEL_OPTIONS = mistralModels.map((m, i) => ({
179
+ id: m.name,
180
+ label: m.displayName ?? m.name,
181
+ hasVision: m.hasVision,
182
+ ...i === 0 ? { recommended: true } : {}
183
+ }));
270
184
  var TOGETHER_MODEL_OPTIONS = [
271
185
  {
272
186
  id: "meta-llama/Llama-3.3-70B-Instruct-Turbo",
@@ -278,7 +192,48 @@ var TOGETHER_MODEL_OPTIONS = [
278
192
  { id: "zai-org/GLM-5.2", label: "GLM-5.2" },
279
193
  { id: "openai/gpt-oss-120b", label: "GPT-OSS 120B" }
280
194
  ];
195
+ var MINIMAX_MODEL_OPTIONS = [
196
+ {
197
+ id: "MiniMax-M3.1-Flash",
198
+ label: "MiniMax M3.1 Flash",
199
+ recommended: true,
200
+ hasVision: true
201
+ },
202
+ { id: "MiniMax-M3", label: "MiniMax M3", hasVision: true }
203
+ ];
281
204
  var SUBSCRIPTION_OAUTH_PROVIDERS = [
205
+ {
206
+ kind: "oauth",
207
+ id: "workbuddy",
208
+ label: "WorkBuddy",
209
+ description: "\u4F7F\u7528 WorkBuddy \u56FD\u5185\u8D26\u53F7\u53CA\u5176\u5957\u9910\u6743\u76CA\uFF1B\u53EF\u7528\u989D\u5EA6\u4E0E\u8D39\u7387\u53EF\u80FD\u968F\u6D3B\u52A8\u53D8\u5316\uFF0C\u5177\u4F53\u4EE5\u8D26\u53F7\u9875\u9762\u4E3A\u51C6\u3002",
210
+ apiKeyRef: "workbuddy",
211
+ provider: "workbuddy",
212
+ defaultModel: "auto",
213
+ modelOptions: [
214
+ { id: "auto", label: "Auto", recommended: true },
215
+ { id: "hy3", label: "Hy3" },
216
+ { id: "deepseek-v4.1-flash", label: "DeepSeek V4.1 Flash" },
217
+ { id: "glm-5.3", label: "GLM-5.3" },
218
+ { id: "kimi-k3-1", label: "Kimi K3" }
219
+ ]
220
+ },
221
+ {
222
+ kind: "oauth",
223
+ id: "workbuddy-ai",
224
+ label: "WorkBuddy AI",
225
+ description: "Use your WorkBuddy AI account and its package benefits. Available quota and rates may change with promotions; check your account for current details.",
226
+ apiKeyRef: "workbuddy-ai",
227
+ provider: "workbuddy-ai",
228
+ defaultModel: "default-model",
229
+ modelOptions: [
230
+ { id: "default-model", label: "Default", recommended: true },
231
+ { id: "fast-model", label: "Fast" },
232
+ { id: "balanced-model", label: "Balanced" },
233
+ { id: "gpt-5.5", label: "GPT-5.5" },
234
+ { id: "gemini-3.1-pro", label: "Gemini 3.1 Pro" }
235
+ ]
236
+ },
282
237
  {
283
238
  kind: "oauth",
284
239
  id: "chatgpt",
@@ -324,6 +279,10 @@ var SUBSCRIPTION_OAUTH_PROVIDERS = [
324
279
  { id: "gemini-3.8-flash", label: "Gemini 3.8 Flash", hasVision: true, recommended: true },
325
280
  { id: "gemini-3.7-flash", label: "Gemini 3.7 Flash", hasVision: true },
326
281
  { id: "gemini-3.6-flash", label: "Gemini 3.6 Flash", hasVision: true },
282
+ // Gemini 4 Argon 需 Google AI Ultra / 符合条件的企业订阅(官方 2026-10-13 公告);
283
+ // 非 Ultra 账号 discovery 返回 gemini-4-argon-disabled,选中后调用 404。标签明示门槛,
284
+ // 让不具备资格的 Antigravity 用户不会误选;3.1 Pro 保留为所有档位可用的回退。
285
+ { id: "gemini-4-argon", label: "Gemini 4 Argon\uFF08\u9700 Ultra\uFF09", hasVision: true },
327
286
  { id: "gemini-3.1-pro", label: "Gemini 3.1 Pro", hasVision: true },
328
287
  { id: "gemini-2.5-pro", label: "Gemini 2.5 Pro", hasVision: true },
329
288
  { id: "claude-sonnet-5", label: "Claude Sonnet 5", hasVision: true },
@@ -343,6 +302,7 @@ var SUBSCRIPTION_OAUTH_PROVIDERS = [
343
302
  modelOptions: [
344
303
  { id: "claude-opus-5-5", label: "Claude Opus 5.5", hasVision: true, recommended: true },
345
304
  { id: "claude-sonnet-5-5", label: "Claude Sonnet 5.5", hasVision: true },
305
+ { id: "claude-haiku-5-5", label: "Claude Haiku 5.5", hasVision: true },
346
306
  { id: "claude-sonnet-5", label: "Claude Sonnet 5", hasVision: true },
347
307
  { id: "claude-opus-5", label: "Claude Opus 5", hasVision: true },
348
308
  { id: "claude-opus-4-8", label: "Claude Opus 4.8", hasVision: true },
@@ -549,6 +509,49 @@ var CUSTOM_API_KEY_TEMPLATES = [
549
509
  commercialKind: "subscription",
550
510
  accessVariant: "token_plan_endpoint"
551
511
  },
512
+ {
513
+ kind: "api_key_template",
514
+ id: "mistral-plan",
515
+ label: "Mistral \u8BA2\u9605 (Vibe/Pro)",
516
+ description: "Mistral \u5B98\u65B9\u8BA2\u9605\uFF08Free $10 / Pro $30 \u6708\u5EA6 API credits\uFF0C\u8DE8 Studio/API/Vibe \u5171\u4EAB\uFF1BKey \u4ECE chat.mistral.ai \u203A Code \u203A Extensions \u751F\u6210\uFF09",
517
+ provider: "mistral",
518
+ baseUrl: "https://api.mistral.ai/v1",
519
+ defaultModel: "mistral-vibe-cli-latest",
520
+ modelOptions: MISTRAL_MODEL_OPTIONS,
521
+ keyFormatHint: "\u5728 chat.mistral.ai \u203A Code \u203A Extensions \u203A Vibe API Key \u751F\u6210\uFF0845 \u4F4D\uFF0C\u5F62\u5982 xxxxx\u2026nb3A\uFF09\uFF1B\u4E5F\u53EF\u7528 Studio \u7684 API Key\u3002\u4E24\u8005\u90FD\u76F4\u63A5\u6709\u6548\u4E8E api.mistral.ai/v1\u3002",
522
+ commercialKind: "subscription",
523
+ accessVariant: "token_plan_endpoint"
524
+ },
525
+ // OpenDesign 聚合网关(open-design.ai):一个 Key 聚合 GPT / Claude / DeepSeek /
526
+ // GLM / Kimi / MiMo,OpenAI 兼容。modelOptions 按「品牌知名度」排序(GPT > Claude >
527
+ // DeepSeek > GLM > Kimi > MiMo,同品牌内按能力/成本排),快照取自 2026-10-11 的
528
+ // GET /v1/models;上游增删模型时以 `nolo agent models --url <baseUrl>`(或 `--preset opendesign`)实测为准,
529
+ // CLI 的 --model 仍可填列表外的 ID。
530
+ {
531
+ kind: "api_key_template",
532
+ id: "opendesign",
533
+ label: "OpenDesign \u805A\u5408\u7F51\u5173",
534
+ description: "open-design.ai \u805A\u5408\u8BA2\u9605\uFF08\u4E00\u4E2A Key \u805A\u5408 GPT/Claude/DeepSeek/GLM/Kimi/MiMo\uFF0COpenAI \u517C\u5BB9\uFF09",
535
+ provider: "opendesign",
536
+ baseUrl: "https://amr-link.open-design.ai/v1",
537
+ defaultModel: "gpt-6-luna",
538
+ modelOptions: [
539
+ { id: "gpt-6-luna", label: "GPT-6 Luna", hasVision: true, recommended: true },
540
+ { id: "claude-haiku-5.5", label: "Claude Haiku 5.5", hasVision: true },
541
+ { id: "deepseek-v4-pro", label: "DeepSeek V4 Pro" },
542
+ { id: "deepseek-v4.1-flash", label: "DeepSeek V4.1 Flash", hasVision: true },
543
+ { id: "deepseek-v4-flash", label: "DeepSeek V4 Flash" },
544
+ { id: "deepseek-v4-flash-vision-exp", label: "DeepSeek V4 Flash Vision Exp", hasVision: true },
545
+ { id: "glm-5.3-flashx", label: "GLM 5.3 FlashX", hasVision: true },
546
+ { id: "glm-5.3-flash", label: "GLM 5.3 Flash", hasVision: true },
547
+ { id: "kimi-k2.7-code", label: "Kimi K2.7 Code", hasVision: true },
548
+ { id: "mimo-v2.6-pro", label: "MiMo V2.6 Pro", hasVision: true },
549
+ { id: "mimo-v2.6-flash", label: "MiMo V2.6 Flash", hasVision: true }
550
+ ],
551
+ keyFormatHint: "\u5728 open-design.ai \u63A7\u5236\u53F0\u83B7\u53D6\uFF08\u7F51\u5173\u81EA\u6709 Key\uFF0C\u975E\u5404\u5BB6\u5B98\u65B9 Key\uFF09\u3002",
552
+ commercialKind: "subscription",
553
+ accessVariant: "token_plan_endpoint"
554
+ },
552
555
  {
553
556
  kind: "api_key_template",
554
557
  id: "openai-api",
@@ -680,7 +683,8 @@ var CUSTOM_API_KEY_TEMPLATES = [
680
683
  label: "MiniMax API",
681
684
  provider: "minimax",
682
685
  baseUrl: "https://api.minimaxi.com/v1",
683
- defaultModel: "MiniMax-Text-01",
686
+ defaultModel: "MiniMax-M3.1-Flash",
687
+ modelOptions: MINIMAX_MODEL_OPTIONS,
684
688
  commercialKind: "api",
685
689
  accessVariant: "metered_key"
686
690
  },
@@ -698,6 +702,22 @@ var CUSTOM_API_KEY_TEMPLATES = [
698
702
  modelOptions: TOGETHER_MODEL_OPTIONS,
699
703
  commercialKind: "api",
700
704
  accessVariant: "metered_key"
705
+ },
706
+ // LithosAI 推理云:预付余额、按量计费(402=insufficient_quota;429 分
707
+ // rate_limit_exceeded / provider_overloaded)。实测仅 OpenAI 兼容三端点
708
+ // (GET /models、GET /models/{author}/{slug}、POST /chat/completions),
709
+ // 思考旋钮为 reasoning_effort(low/high/max,无 thinking 字段);
710
+ // 模型 ID 形如 author/slug,不维护静态 modelOptions 清单。
711
+ {
712
+ kind: "api_key_template",
713
+ id: "lithosai-api",
714
+ label: "LithosAI API \u7528\u91CF\u8BA1\u8D39",
715
+ description: "LithosAI \u63A8\u7406\u4E91\uFF08OpenAI \u517C\u5BB9\uFF0C\u6309\u91CF\u8BA1\u8D39\uFF0C\u9884\u4ED8\u4F59\u989D\uFF09",
716
+ provider: "lithosai",
717
+ baseUrl: "https://api.lithosai.cloud/v1",
718
+ defaultModel: "deepseek-ai/DeepSeek-V4.1-Flash",
719
+ commercialKind: "api",
720
+ accessVariant: "metered_key"
701
721
  }
702
722
  ];
703
723
  var ALL_PROVIDER_REGISTRY = [
@@ -715,6 +735,26 @@ function isCustomApiKeyTemplate(id) {
715
735
  if (!id) return false;
716
736
  return CUSTOM_API_KEY_TEMPLATES.some((p) => p.id === id);
717
737
  }
738
+ function normalizeEndpointUrl(url) {
739
+ return asTrimmedLowercaseString(url).replace(/\/+$/, "");
740
+ }
741
+ var SUBSCRIPTION_ENDPOINT_URLS = new Set(
742
+ CUSTOM_API_KEY_TEMPLATES.filter((t) => t.commercialKind === "subscription").map(
743
+ (t) => normalizeEndpointUrl(t.baseUrl)
744
+ )
745
+ );
746
+ var SUBSCRIPTION_OAUTH_APIKEY_REFS = new Set(
747
+ SUBSCRIPTION_OAUTH_PROVIDERS.map((p) => asTrimmedLowercaseString(p.apiKeyRef))
748
+ );
749
+ function isSubscriptionEndpoint(customProviderUrl) {
750
+ if (typeof customProviderUrl !== "string") return false;
751
+ const normalized = normalizeEndpointUrl(customProviderUrl);
752
+ return normalized.length > 0 && SUBSCRIPTION_ENDPOINT_URLS.has(normalized);
753
+ }
754
+ function isSubscriptionOAuthCredential(apiKeyRef) {
755
+ const ref = asTrimmedLowercaseString(apiKeyRef ?? "");
756
+ return ref.length > 0 && SUBSCRIPTION_OAUTH_APIKEY_REFS.has(ref);
757
+ }
718
758
 
719
759
  export {
720
760
  SUBSCRIPTION_OAUTH_PROVIDERS,
@@ -722,5 +762,7 @@ export {
722
762
  ALL_PROVIDER_REGISTRY,
723
763
  findProviderById,
724
764
  isSubscriptionOAuthProvider,
725
- isCustomApiKeyTemplate
765
+ isCustomApiKeyTemplate,
766
+ isSubscriptionEndpoint,
767
+ isSubscriptionOAuthCredential
726
768
  };
@@ -1,27 +1,28 @@
1
1
  import {
2
2
  refreshSubscriptionQuotas
3
3
  } from "./chunk-U4STABYN.js";
4
+ import {
5
+ getReadableCliDb
6
+ } from "./chunk-P5QACQDK.js";
4
7
  import {
5
8
  clearCliLocalRuntimePreparedAgentCache
6
- } from "./chunk-XYJSY4KG.js";
9
+ } from "./chunk-PKZKOVA5.js";
7
10
  import {
8
11
  readCredentialAvailability
9
- } from "./chunk-62IL3KQV.js";
10
- import {
11
- getReadableCliDb
12
- } from "./chunk-CTUQJVQM.js";
12
+ } from "./chunk-6MXDOUMH.js";
13
13
  import {
14
14
  buildCreatedAgentRecord,
15
15
  buildUpdatedAgentRecord,
16
16
  normalizeAgentRecordForOutput,
17
17
  parseAgentUpdateArgs,
18
+ refreshAgentRecordCache,
18
19
  resolveAgentRecordFromHybridStore,
19
20
  sanitizeAgentRecordForCliOutput,
20
21
  writeAgentRecord
21
- } from "./chunk-ALGORS6Y.js";
22
+ } from "./chunk-ZF6526IQ.js";
22
23
  import {
23
24
  resolveCliAgentKeyInput
24
- } from "./chunk-SV5IJK6K.js";
25
+ } from "./chunk-NBTY7YJF.js";
25
26
  import {
26
27
  toErrorMessage
27
28
  } from "./chunk-HNMXYYJR.js";
@@ -160,10 +161,10 @@ async function runAgentUpdateCommand(args, deps = {}) {
160
161
  userId,
161
162
  record: built.nextRecord
162
163
  });
163
- await db.put(built.agentKey, {
164
- ...built.nextRecord,
165
- dbKey: built.agentKey,
166
- key: built.nextRecord?.key || built.agentKey,
164
+ await refreshAgentRecordCache({
165
+ db,
166
+ agentKey: built.agentKey,
167
+ record: built.nextRecord,
167
168
  serverOrigin: built.serverUrl
168
169
  });
169
170
  clearCliLocalRuntimePreparedAgentCache();
@@ -242,16 +243,25 @@ async function runAgentCreateCommand(args, deps = {}) {
242
243
  clearCliLocalRuntimePreparedAgentCache();
243
244
  let verifyResult;
244
245
  if (parsed.verify) {
245
- const { verifyCustomProvider } = await import("./agentProviderCommands-YK2BIIXZ.js");
246
- const rec = built.nextRecord;
247
- verifyResult = await verifyCustomProvider({
248
- providerUrl: rec.customProviderUrl,
249
- apiKey: rec.apiKey,
250
- model: rec.model,
251
- prompt: parsed.verifyPrompt,
252
- fetchImpl
253
- });
246
+ try {
247
+ const { verifyCustomProvider } = await import("./agentProviderCommands-HL6MBLCL.js");
248
+ const rec = built.nextRecord;
249
+ verifyResult = await verifyCustomProvider({
250
+ providerUrl: rec.customProviderUrl,
251
+ apiKey: rec.apiKey,
252
+ model: rec.model,
253
+ prompt: parsed.verifyPrompt,
254
+ fetchImpl
255
+ });
256
+ } catch (error) {
257
+ verifyResult = {
258
+ ok: false,
259
+ reason: toErrorMessage(error)
260
+ };
261
+ }
254
262
  }
263
+ const isVerifyFailure = parsed.verify ? !verifyResult || !verifyResult.ok : false;
264
+ const verified = parsed.verify ? Boolean(verifyResult?.ok) : null;
255
265
  const apiKeyRef = String(built.updates?.apiKeyRef || "").trim();
256
266
  let authHint;
257
267
  const OAUTH_REFS = /* @__PURE__ */ new Set(["claude", "chatgpt", "xai", "antigravity", "cloudflare"]);
@@ -266,7 +276,9 @@ async function runAgentCreateCommand(args, deps = {}) {
266
276
  }
267
277
  }
268
278
  output.write(JSON.stringify({
269
- ok: true,
279
+ ok: !isVerifyFailure,
280
+ created: true,
281
+ verified,
270
282
  agentKey: built.agentKey,
271
283
  baseUrl: built.serverUrl,
272
284
  updates: sanitizeAgentRecordForCliOutput(built.updates),
@@ -280,7 +292,7 @@ async function runAgentCreateCommand(args, deps = {}) {
280
292
  errorOutput.write(`[nolo] Hint: ${authHint}
281
293
  `);
282
294
  }
283
- return 0;
295
+ return isVerifyFailure ? 2 : 0;
284
296
  } catch (error) {
285
297
  output.write(
286
298
  `[nolo] agent create failed: ${toErrorMessage(error)}