nolo-cli 0.105.0-alpha.2 → 0.105.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (208) hide show
  1. package/README.md +1 -1
  2. package/{_executeModel-4W7C3ACS.js → _executeModel-JXG5TLPE.js} +75 -68
  3. package/action-GVA5ARSJ.js +20 -0
  4. package/{addContentAction-O7R66HEX.js → addContentAction-J3DLDV64.js} +12 -11
  5. package/{addDialogAgentAction-74OA7KYP.js → addDialogAgentAction-PHIXJCF2.js} +18 -19
  6. package/{agentDeleteCommand-YB3S2LPY.js → agentDeleteCommand-2AWJGHXG.js} +117 -42
  7. package/{agentEmailCommands-J6YBHL42.js → agentEmailCommands-VV5OSILE.js} +98 -88
  8. package/agentListCommands-OQMRBDWP.js +742 -0
  9. package/{agentMachineCommands-2RWGEBA3.js → agentMachineCommands-3VLLR6RL.js} +48 -43
  10. package/{agentProviderCommands-GNPTL5XR.js → agentProviderCommands-XPJYZSCE.js} +97 -2
  11. package/{agentPullCommand-O5MPVJ5E.js → agentPullCommand-B4T2DJ5H.js} +1 -1
  12. package/agentRecordCommands-GPIARVOW.js +138 -0
  13. package/agentRunCommand-LRJTZ7IM.js +167 -0
  14. package/{agentRunControl-AVJR4JW4.js → agentRunControl-3HWA2LLQ.js} +2 -2
  15. package/{agentRuntimeLocal-FRUE5P2V.js → agentRuntimeLocal-PV6AZOEU.js} +44 -39
  16. package/{agentSlice-6LBOYNKN.js → agentSlice-6R3JKS6I.js} +14 -13
  17. package/{appDeleteCommands-JPWTSFID.js → appDeleteCommands-WEX73P5R.js} +46 -41
  18. package/{appDeployCommands-YCVY2UYO.js → appDeployCommands-7BAXWA4M.js} +46 -41
  19. package/{appDeployStatusCommands-JMCEIKTI.js → appDeployStatusCommands-EJ6A2U4X.js} +46 -41
  20. package/{appGetCommands-EXWT3QAE.js → appGetCommands-SB355OEX.js} +46 -41
  21. package/{appListCommands-PKRLSWRE.js → appListCommands-TSZDPIKJ.js} +46 -41
  22. package/{authCommand-F4EFRRX6.js → authCommand-5PB3YRVV.js} +118 -24
  23. package/{authCommands-RGOGCPP6.js → authCommands-5RTUDYZW.js} +7 -5
  24. package/{builtinSkillRegistry-FUAVTRVZ.js → builtinSkillRegistry-SBBWTANC.js} +10 -8
  25. package/{chromeCommands-FZYAU75D.js → chromeCommands-AU5ZJXBG.js} +289 -37
  26. package/{chromeOpsCommands-62P2Q2YB.js → chromeOpsCommands-ZYTCMNHG.js} +156 -22
  27. package/{chunk-6OZ36FXI.js → chunk-27ONFIEY.js} +22 -4
  28. package/{chunk-JEDZAO7L.js → chunk-2SYTUTLI.js} +257 -37
  29. package/{chunk-HVURBGF3.js → chunk-2U3NHADM.js} +6 -6
  30. package/{chunk-53HEEOTT.js → chunk-2WJ57RJA.js} +83 -16
  31. package/{chunk-OIVSQH2O.js → chunk-3BXNTXYI.js} +299 -5
  32. package/{chunk-V4MJDUSR.js → chunk-3F424ASC.js} +2 -2
  33. package/{chunk-HJUYAD4A.js → chunk-3Q7NEHAR.js} +5 -5
  34. package/chunk-44CU7CKA.js +13545 -0
  35. package/{chunk-EYAQT56M.js → chunk-4DPP773Q.js} +2 -2
  36. package/chunk-4LCOCOR5.js +50 -0
  37. package/{chunk-JPGCXHNM.js → chunk-4LKMZ3RR.js} +1 -1
  38. package/{chunk-2GRGFCF6.js → chunk-4VJAC32I.js} +2 -1
  39. package/{chunk-6D6VBVEW.js → chunk-4W24JM32.js} +80 -14
  40. package/{chunk-H62HCIUP.js → chunk-4WMMIL66.js} +35 -22
  41. package/{chunk-MC4XLIJ7.js → chunk-523DITKR.js} +1 -1
  42. package/{chunk-ZCYXJSTU.js → chunk-54VPQTOA.js} +66 -94
  43. package/{chunk-E4MARS3Q.js → chunk-5GVBDNTO.js} +1 -1
  44. package/chunk-5MMAK75Q.js +15 -0
  45. package/{chunk-7S4YWN7P.js → chunk-5UUIGN6I.js} +4 -4
  46. package/{chunk-42V6BK2E.js → chunk-62IL3KQV.js} +4 -34
  47. package/{chunk-GQBOR3G6.js → chunk-7KVZ5LDQ.js} +2 -2
  48. package/chunk-A4SQRTZ6.js +15 -0
  49. package/{chunk-L5UXH3B2.js → chunk-AFH5QC6R.js} +58 -9
  50. package/{chunk-AEOE4Z6Q.js → chunk-AFSY3ZMB.js} +39 -15
  51. package/chunk-AGIM7IMJ.js +147 -0
  52. package/{chunk-5UTFL4QJ.js → chunk-AOTBKDRK.js} +7 -0
  53. package/{chunk-NA35QHCF.js → chunk-AWVP7PPG.js} +1 -1
  54. package/{chunk-EEGDMATE.js → chunk-B7APRSPS.js} +86 -81
  55. package/{chunk-W324THOB.js → chunk-BB7LVBTS.js} +20 -11
  56. package/{chunk-6YTOJY35.js → chunk-BZ7NPA6G.js} +35 -2
  57. package/{chunk-5H7KJX7J.js → chunk-CFHWVEUJ.js} +5 -5
  58. package/chunk-CHOZJMJS.js +78 -0
  59. package/{chunk-ETI2NYVF.js → chunk-CNA27EMD.js} +4 -4
  60. package/{chunk-ACTMNVHM.js → chunk-CYSYR67N.js} +1 -1
  61. package/{chunk-WV42OMV7.js → chunk-D2GQE6AF.js} +8 -8
  62. package/{chunk-GBRG75BQ.js → chunk-D2MDMY2M.js} +1 -0
  63. package/{chunk-Q554LLSI.js → chunk-DMXLXZKL.js} +1 -1
  64. package/chunk-DZ7R5V3Y.js +164 -0
  65. package/{chunk-3VNWWVKB.js → chunk-E3YWHWCR.js} +50 -18
  66. package/{chunk-KQ4ONNQD.js → chunk-EKPKW6RM.js} +155 -8
  67. package/{chunk-2J5Y72GY.js → chunk-EP7BWZ4B.js} +1 -1
  68. package/{chunk-ABQYVJBJ.js → chunk-EV235ILT.js} +5 -5
  69. package/{chunk-TRV2MIDW.js → chunk-EXAJ6DCR.js} +1 -0
  70. package/{chunk-3ZW5ZJMM.js → chunk-FGSJ3YMD.js} +23 -28
  71. package/{chunk-2F7RJC6L.js → chunk-FOXQ7BAB.js} +1 -1
  72. package/{chunk-SH43IESU.js → chunk-GGC55Q32.js} +199 -29
  73. package/chunk-GMZLP5DV.js +82 -0
  74. package/{chunk-DHDMC6FO.js → chunk-GSKPJIHY.js} +14 -9
  75. package/{chunk-FDTR4QJ6.js → chunk-H6A6X4EK.js} +32 -1
  76. package/{chunk-DVINR3PL.js → chunk-HDLLCBRF.js} +1 -1
  77. package/{chunk-QOKAKDPE.js → chunk-HIM3FCLF.js} +0 -1
  78. package/{chunk-ONXOABJR.js → chunk-HNGRBWYF.js} +3 -0
  79. package/{chunk-VLTIYV3X.js → chunk-HP57OUJO.js} +4 -4
  80. package/{chunk-NXUYQBDZ.js → chunk-HYXABXCZ.js} +29 -78
  81. package/{chunk-DNCEALKX.js → chunk-IEJ5YDA4.js} +22 -29
  82. package/{chunk-O6OSWFZQ.js → chunk-IHPDK6UD.js} +6 -0
  83. package/{chunk-BP4XNZRM.js → chunk-JIXGJTBU.js} +4 -4
  84. package/{chunk-GPCZ7UXG.js → chunk-K6U4NKFJ.js} +1 -1
  85. package/{chunk-Z77CRGTW.js → chunk-KA5O5KQL.js} +1 -1
  86. package/{chunk-4OEFYTWL.js → chunk-L5WOICCV.js} +67 -48
  87. package/{chunk-LS2ZANRJ.js → chunk-LOCNXNOU.js} +1 -1
  88. package/chunk-LWLNLZC5.js +265 -0
  89. package/{chunk-H66KLASO.js → chunk-LWXE6IFU.js} +567 -519
  90. package/{chunk-PUOC4YRO.js → chunk-M7VLQGQP.js} +11 -0
  91. package/chunk-NKWIS6G2.js +442 -0
  92. package/{chunk-BFU6C242.js → chunk-NMFV26UG.js} +1 -1
  93. package/{chunk-DJWMIXDZ.js → chunk-NSAFG343.js} +10 -10
  94. package/{chunk-UKZDAFYT.js → chunk-NSBID7PR.js} +6 -10
  95. package/{chunk-U7ISRJQO.js → chunk-NTR4SD3P.js} +845 -240
  96. package/{chunk-FZGV4FGK.js → chunk-NUHHBEJC.js} +378 -187
  97. package/chunk-NWENLDMM.js +42 -0
  98. package/chunk-O7SVKKLY.js +875 -0
  99. package/chunk-OCZKATRC.js +129 -0
  100. package/{chunk-VMFTFOWF.js → chunk-OKGVNZTL.js} +35 -8
  101. package/{chunk-KQHGZWSV.js → chunk-OXME3PEE.js} +1 -1
  102. package/{chunk-JRQFUXY7.js → chunk-P5GCTVGV.js} +99 -22
  103. package/{chunk-PQFHGD77.js → chunk-QKTESDWK.js} +161 -14
  104. package/{chunk-U3JZVWIB.js → chunk-QMXJ5KDJ.js} +68 -46
  105. package/{chunk-GEPUP7OO.js → chunk-QYUBY3OZ.js} +3 -3
  106. package/{chunk-3BMYXEUW.js → chunk-R5AJODNI.js} +1 -1
  107. package/{chunk-J4MOO56S.js → chunk-RILRSUGC.js} +10 -2
  108. package/{chunk-OEVAY4J6.js → chunk-RWX7AY7J.js} +18 -20
  109. package/{chunk-YY7I6GQ3.js → chunk-S2NSK7AZ.js} +11 -9
  110. package/{chunk-IIVGDG4I.js → chunk-SJKULPGX.js} +13 -7
  111. package/{chunk-BYMV6QZG.js → chunk-TNIX77YM.js} +4 -0
  112. package/chunk-TY3TIUJK.js +89 -0
  113. package/{chunk-I3TQJXQ7.js → chunk-U3C3IA32.js} +9 -2
  114. package/{chunk-UZGQNTVW.js → chunk-UA324D4O.js} +8 -6
  115. package/{chunk-YYLHWIW6.js → chunk-UKZX3NHN.js} +1 -1
  116. package/chunk-UWXDA7L5.js +8005 -0
  117. package/{chunk-3DII57IT.js → chunk-VCAQFMVN.js} +1 -1
  118. package/chunk-VIWDGTDA.js +8 -0
  119. package/chunk-VJVNU77E.js +83 -0
  120. package/{chunk-A6FMKU7M.js → chunk-VVJ2ENLY.js} +47 -67
  121. package/{chunk-UKWGR5SS.js → chunk-VY6VFGKR.js} +194 -1144
  122. package/{chunk-QDSINZM3.js → chunk-WJ3B6FX6.js} +1 -14
  123. package/{chunk-Q67DOFOO.js → chunk-Y3PMXGLH.js} +2 -0
  124. package/chunk-YK5MHOWM.js +915 -0
  125. package/chunk-YV25TM3R.js +780 -0
  126. package/{chunk-TOP2VXOR.js → chunk-YVU4XVJD.js} +5 -5
  127. package/{chunk-HVP6P5FV.js → chunk-Z5NGE5DH.js} +29 -9
  128. package/{chunk-LC43IGO4.js → chunk-ZBHR642M.js} +704 -950
  129. package/chunk-ZRAU6T47.js +56 -0
  130. package/{chunk-XPVRVN4U.js → chunk-ZSUDOTPL.js} +19 -17
  131. package/commandRegistry-QU62WJQX.js +833 -0
  132. package/{contentThunks-LXOZUD2Y.js → contentThunks-VGV3JJVB.js} +37 -35
  133. package/{cooldownCommands-REAWYVTY.js → cooldownCommands-ZLEPIB4A.js} +2 -2
  134. package/{createAgentAutomationAction-M5NDEIC6.js → createAgentAutomationAction-ZNVLI4WV.js} +39 -37
  135. package/createDialogAction-TTUA46DT.js +69 -0
  136. package/{createPageAction-WY5ZKP2M.js → createPageAction-KUFSC5XW.js} +46 -43
  137. package/{chunk-OWS6OYF4.js → cursorProvider-YGGNMVWX.js} +2751 -10172
  138. package/{dbSlice-XVWBAGYN.js → dbSlice-MYEETO73.js} +11 -10
  139. package/{deleteFile-YG6QMJLU.js → deleteFile-KESP65GC.js} +7 -6
  140. package/{dialogCommands-YVMHDEOX.js → dialogCommands-DRDPEOTL.js} +49 -45
  141. package/{dialogSlice-HSGREZGA.js → dialogSlice-V2SVSTIV.js} +41 -34
  142. package/{dist-VODFSGNG.js → dist-NJC2W7I4.js} +61 -54
  143. package/{docCreateCommands-7UTWDYJU.js → docCreateCommands-M26CFDDQ.js} +48 -43
  144. package/{docDeleteCommands-GG6BJ4PS.js → docDeleteCommands-LRZHCKVX.js} +49 -44
  145. package/{docReadCommands-QHMQVSLP.js → docReadCommands-6QJSISHK.js} +47 -42
  146. package/{docStore-IIS36NGG.js → docStore-4RWAFNDM.js} +16 -12
  147. package/{docUpdateCommands-QPL6IVUK.js → docUpdateCommands-W4KU4U5T.js} +48 -43
  148. package/{fetchMessages-EIU7UFFK.js → fetchMessages-3PXAHKCR.js} +5 -5
  149. package/{getPricing-LUSEABA6.js → getPricing-NMMFT3YI.js} +4 -4
  150. package/{handleSendMessageAction-FEHCWMN2.js → handleSendMessageAction-VEWLGB5Z.js} +107 -41
  151. package/index.js +87 -884
  152. package/{lib-FRRS27KN.js → lib-PU2G2MSO.js} +523 -191
  153. package/{localDialogRead-BTFJ4V2I.js → localDialogRead-UYCKO7YZ.js} +2 -2
  154. package/{localRuntimeAuthority-6IR6BBXE.js → localRuntimeAuthority-TU6OBC76.js} +9 -6
  155. package/{localRuntimeDb-SYQGUF4U.js → localRuntimeDb-VKWVOPPI.js} +1 -1
  156. package/{machineCommands-ERCXIPJC.js → machineCommands-AEHHCJEW.js} +92 -82
  157. package/machineWsRunDispatch-MY2KHS36.js +154 -0
  158. package/{memberThunks-QGFLFVCI.js → memberThunks-EE6TI3TV.js} +20 -18
  159. package/{models-T3SG6MJ5.js → models-ZPU5EDF4.js} +2 -2
  160. package/oauthTokenStore-ITEB663N.js +23 -0
  161. package/package.json +1 -1
  162. package/pdf-U6KSUEZZ.js +26435 -0
  163. package/processSpawn-SOAV3FEV.js +11 -0
  164. package/profileConfig-ZGOFORWV.js +43 -0
  165. package/{providerPresetApply-FG6NZ57W.js → providerPresetApply-TEBH7FDX.js} +7 -7
  166. package/{providerRegistry-757OWH3O.js → providerRegistry-CBJLNCET.js} +11 -7
  167. package/{read-COE3ZYR6.js → read-PJIT2YEJ.js} +7 -6
  168. package/{readDocTool-5USN4A6V.js → readDocTool-DRSXHGNL.js} +5 -3
  169. package/{readlineWorkspace-PXATJOED.js → readlineWorkspace-7Q6MITLV.js} +2605 -2031
  170. package/{removeDialogAgentAction-IX3MN2ZO.js → removeDialogAgentAction-IN4WUKJJ.js} +21 -25
  171. package/{runAgentClientLoop-UY76PPZM.js → runAgentClientLoop-H2JALUVD.js} +76 -70
  172. package/{runtimeDoctorCommands-X6WDBEQX.js → runtimeDoctorCommands-PIVSBZRZ.js} +4 -4
  173. package/runtimeModeArgs-2Y7BALTO.js +31 -0
  174. package/{setDialogExtraReferencesAction-X4HCPNZL.js → setDialogExtraReferencesAction-VDRF7LPK.js} +15 -13
  175. package/{setPrimaryDialogAgentAction-4GMIQLOD.js → setPrimaryDialogAgentAction-RO6LIWJ4.js} +22 -26
  176. package/{chunk-AFUORTY4.js → settingThunks-3OPOLOIA.js} +226 -940
  177. package/{skillDiscovery-CYUCJMAG.js → skillDiscovery-ZBU76COE.js} +3 -3
  178. package/{slateUtils-RIZES3PV.js → slateUtils-NGV2NMKM.js} +1 -1
  179. package/{spaceCommands-BMXKR7H6.js → spaceCommands-UBLL5EF2.js} +51 -46
  180. package/{streamAgentChatTurn-3YVIO4KE.js → streamAgentChatTurn-FFJWW3FD.js} +214 -108
  181. package/{switchDialogAgentAction-N52LRPA3.js → switchDialogAgentAction-MVF2JNE7.js} +18 -19
  182. package/{tableCommands-O6NWHFKV.js → tableCommands-6U4BMLRR.js} +10 -10
  183. package/{toolApiClient-QVJ6HDNN.js → toolApiClient-EJT6TMFG.js} +3 -3
  184. package/tools-AZRYLYNK.js +116 -0
  185. package/{tuiSummaryLlmCaller-WFRWERGK.js → tuiSummaryLlmCaller-7S5HJ3MT.js} +25 -22
  186. package/{updateCommands-2M74UL7P.js → updateCommands-4EHDLF5J.js} +3 -3
  187. package/{updateDialogTitleAction-GF5T3VMK.js → updateDialogTitleAction-5WXTRUJM.js} +82 -44
  188. package/action-YVYQEAAV.js +0 -31
  189. package/agentListCommands-3GWH4E4G.js +0 -410
  190. package/agentRecordCommands-UOF6YM5M.js +0 -128
  191. package/agentRunCommand-AVBWVTAJ.js +0 -156
  192. package/browser-image-compression-MFDTD7K6.js +0 -1763
  193. package/chatQueueReduxAdapter-WFROMKD3.js +0 -186
  194. package/chunk-CQ3WA2NE.js +0 -299
  195. package/chunk-FQUHIG5X.js +0 -20782
  196. package/chunk-M76ECQRD.js +0 -13658
  197. package/chunk-MEYIRKDN.js +0 -8967
  198. package/chunk-Q5FJJ6XI.js +0 -103
  199. package/chunk-S7Z2HMCN.js +0 -25
  200. package/chunk-Y5GCAMGP.js +0 -9
  201. package/chunk-YPREESF4.js +0 -225
  202. package/createDialogAction-TDFOINOY.js +0 -65
  203. package/machineWsRunDispatch-OVA3G76V.js +0 -144
  204. package/settingSlice-ZQZVUPKK.js +0 -204
  205. package/syncMapping-N6RGXGBW.js +0 -437
  206. package/tools-Q6IBBG33.js +0 -110
  207. package/{chunk-X7HHHIOZ.js → chunk-Y6ROFCZO.js} +0 -0
  208. package/{db-WK5MDZVN.js → db-VQSAOWAO.js} +1 -1
@@ -0,0 +1,164 @@
1
+ import {
2
+ noloAgentId
3
+ } from "./chunk-A4SQRTZ6.js";
4
+ import {
5
+ asTrimmedLowercaseString
6
+ } from "./chunk-QSJ3HFEF.js";
7
+ import {
8
+ normalizeServerOrigin
9
+ } from "./chunk-CF7PE763.js";
10
+
11
+ // packages/app/theme/fontPreference.ts
12
+ var FONT_PRESET_ALIASES = {
13
+ system: "system",
14
+ default: "system",
15
+ hei: "hei",
16
+ heiti: "hei",
17
+ sans: "hei",
18
+ song: "song",
19
+ songti: "song",
20
+ serif: "song",
21
+ kai: "kai",
22
+ kaiti: "kai",
23
+ "kai-ti": "kai",
24
+ "fang-song": "fang-song",
25
+ fangsong: "fang-song",
26
+ "fang song": "fang-song"
27
+ };
28
+ var normalizeFontPreset = (value) => {
29
+ const normalized = asTrimmedLowercaseString(value);
30
+ return FONT_PRESET_ALIASES[normalized];
31
+ };
32
+
33
+ // packages/ai/policy/types.ts
34
+ var DEFAULT_AGENT_BASE_POLICY = {
35
+ version: 1,
36
+ tone: {
37
+ preset: "default",
38
+ resolutionMode: "blend"
39
+ },
40
+ knowledgeCaptureMaxLevel: 4,
41
+ spaceContextMaxLevel: 4,
42
+ selfEvolutionMode: "knowledge_only"
43
+ };
44
+ var DEFAULT_USER_PREFERENCE_PROFILE = {
45
+ version: 1,
46
+ tone: {
47
+ preset: "default"
48
+ },
49
+ knowledgeCaptureLevel: 2,
50
+ spaceContextLevel: 3
51
+ };
52
+
53
+ // packages/app/settings/settingTypes.ts
54
+ var SYSTEM_DEFAULT_AGENT_ID = "system-default";
55
+
56
+ // packages/app/settings/settingNormalizers.ts
57
+ var hasOwn = (target, key) => Object.prototype.hasOwnProperty.call(target, key);
58
+ var normalizeDefaultAgentIdSetting = (value) => {
59
+ if (typeof value !== "string" || value.trim() === "") {
60
+ return void 0;
61
+ }
62
+ return value === noloAgentId || value === SYSTEM_DEFAULT_AGENT_ID ? SYSTEM_DEFAULT_AGENT_ID : value;
63
+ };
64
+ var normalizeAuthorityHomeServerSetting = (value) => {
65
+ const normalized = normalizeServerOrigin(value);
66
+ return /^https?:\/\//i.test(normalized) ? normalized : null;
67
+ };
68
+ var normalizeTonePresetSetting = (value) => {
69
+ switch (value) {
70
+ case "professional":
71
+ case "friendly":
72
+ case "direct":
73
+ case "pragmatic":
74
+ case "default":
75
+ return value;
76
+ default:
77
+ return DEFAULT_USER_PREFERENCE_PROFILE.tone?.preset ?? "default";
78
+ }
79
+ };
80
+ var normalizePolicyLevelSetting = (value, fallback) => {
81
+ const n = Number(value);
82
+ if (n === 1 || n === 2 || n === 3 || n === 4) {
83
+ return n;
84
+ }
85
+ return fallback;
86
+ };
87
+ var resolveDefaultAgentIdSetting = (value) => normalizeDefaultAgentIdSetting(value) ?? SYSTEM_DEFAULT_AGENT_ID;
88
+ var omitKeys = (record, keys) => {
89
+ const next = { ...record };
90
+ keys.forEach((key) => {
91
+ delete next[key];
92
+ });
93
+ return next;
94
+ };
95
+ var isRecordLike = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
96
+ var normalizeSystemBuiltinSkills = (value, defaults) => {
97
+ const base = isRecordLike(value) ? value : {};
98
+ const result = { ...defaults };
99
+ for (const key of Object.keys(base)) {
100
+ result[key] = Boolean(base[key]);
101
+ }
102
+ return result;
103
+ };
104
+
105
+ // packages/ai/policy/selfUpdateFields.ts
106
+ var AGENT_UPDATE_FIELD_NAMES = [
107
+ "name",
108
+ "handle",
109
+ "model",
110
+ "provider",
111
+ "prompt",
112
+ "introduction",
113
+ "greeting",
114
+ "isPublic",
115
+ "tags",
116
+ "tools",
117
+ "references",
118
+ "temperature",
119
+ "top_p",
120
+ "frequency_penalty",
121
+ "presence_penalty",
122
+ "max_tokens",
123
+ "reasoning_effort"
124
+ ];
125
+ var PRIMARY_AUTO_APPROVE_SELF_UPDATE_FIELDS = [
126
+ "greeting",
127
+ "introduction",
128
+ "tags"
129
+ ];
130
+ var DEFAULT_AUTO_APPROVED_SELF_UPDATE_FIELDS = [
131
+ ...PRIMARY_AUTO_APPROVE_SELF_UPDATE_FIELDS
132
+ ];
133
+ var VALID_AGENT_UPDATE_FIELDS = new Set(AGENT_UPDATE_FIELD_NAMES);
134
+ var normalizeAgentUpdateFieldList = (value, fallback = DEFAULT_AUTO_APPROVED_SELF_UPDATE_FIELDS) => {
135
+ if (!Array.isArray(value)) {
136
+ return [...fallback];
137
+ }
138
+ const normalized = Array.from(
139
+ new Set(
140
+ value.filter(
141
+ (item) => typeof item === "string" && VALID_AGENT_UPDATE_FIELDS.has(item)
142
+ )
143
+ )
144
+ );
145
+ return normalized;
146
+ };
147
+
148
+ export {
149
+ normalizeFontPreset,
150
+ DEFAULT_AGENT_BASE_POLICY,
151
+ DEFAULT_USER_PREFERENCE_PROFILE,
152
+ AGENT_UPDATE_FIELD_NAMES,
153
+ DEFAULT_AUTO_APPROVED_SELF_UPDATE_FIELDS,
154
+ normalizeAgentUpdateFieldList,
155
+ SYSTEM_DEFAULT_AGENT_ID,
156
+ hasOwn,
157
+ normalizeDefaultAgentIdSetting,
158
+ normalizeAuthorityHomeServerSetting,
159
+ normalizeTonePresetSetting,
160
+ normalizePolicyLevelSetting,
161
+ resolveDefaultAgentIdSetting,
162
+ omitKeys,
163
+ normalizeSystemBuiltinSkills
164
+ };
@@ -100,7 +100,17 @@ var DEFAULT_LABELS = {
100
100
  runStopped: "Run stopped",
101
101
  runFinished: "Run finished",
102
102
  logTail: "Log tail:",
103
- runs: (count) => `Runs (${count})`
103
+ runs: (count) => `Runs (${count})`,
104
+ toolCount: (count) => `${count} tools`,
105
+ statusWord: (status) => status,
106
+ rows: {
107
+ agent: "agent ",
108
+ status: "status ",
109
+ tools: "tools ",
110
+ note: "note ",
111
+ error: "error ",
112
+ task: "task "
113
+ }
104
114
  };
105
115
  function resolveLabels(labels) {
106
116
  return {
@@ -109,7 +119,10 @@ function resolveLabels(labels) {
109
119
  runStopped: labels?.runStopped ?? DEFAULT_LABELS.runStopped,
110
120
  runFinished: labels?.runFinished ?? DEFAULT_LABELS.runFinished,
111
121
  logTail: labels?.logTail ?? DEFAULT_LABELS.logTail,
112
- runs: labels?.runs ?? DEFAULT_LABELS.runs
122
+ runs: labels?.runs ?? DEFAULT_LABELS.runs,
123
+ toolCount: labels?.toolCount ?? DEFAULT_LABELS.toolCount,
124
+ statusWord: labels?.statusWord ?? DEFAULT_LABELS.statusWord,
125
+ rows: { ...DEFAULT_LABELS.rows, ...labels?.rows ?? {} }
113
126
  };
114
127
  }
115
128
  function shortRunId(runId) {
@@ -165,21 +178,21 @@ function formatStartRunCard(agentName, status = "running", opts) {
165
178
  const lines = [L.runStarted];
166
179
  const identity = formatIdentityRow(agentName, opts?.runId);
167
180
  if (identity) {
168
- lines.push(` agent ${identity}`);
181
+ lines.push(` ${L.rows.agent}${identity}`);
169
182
  }
170
- lines.push(` status ${icon} ${status}`);
183
+ lines.push(` ${L.rows.status}${icon} ${L.statusWord(status)}`);
171
184
  const task = opts?.task?.trim();
172
185
  if (task) {
173
- lines.push(` task ${clipText(task, TASK_PREVIEW_MAX)}`);
186
+ lines.push(` ${L.rows.task}${clipText(task, TASK_PREVIEW_MAX)}`);
174
187
  }
175
188
  return lines.join("\n");
176
189
  }
177
190
  var TASK_PREVIEW_MAX = 72;
178
191
  var NOTE_PREVIEW_MAX = 72;
179
- function formatProgressRow(toolCallCount, lastToolNames) {
192
+ function formatProgressRow(toolCallCount, lastToolNames, labels = DEFAULT_LABELS) {
180
193
  const parts = [];
181
194
  if (typeof toolCallCount === "number" && Number.isFinite(toolCallCount)) {
182
- parts.push(`${toolCallCount} tools`);
195
+ parts.push(labels.toolCount(toolCallCount));
183
196
  }
184
197
  if (lastToolNames && lastToolNames.length > 0) {
185
198
  parts.push(lastToolNames.join(", "));
@@ -190,21 +203,21 @@ function formatStatusRunCard(agentName, status = "running", opts) {
190
203
  const L = resolveLabels(opts?.labels);
191
204
  const icon = getAgentRunStatusIcon(status);
192
205
  const age = formatRunAge(opts?.timing, opts?.now);
193
- const lines = [L.runStatus, ` ${icon} ${status}${age ? ` ${age}` : ""}`];
206
+ const lines = [L.runStatus, ` ${icon} ${L.statusWord(status)}${age ? ` ${age}` : ""}`];
194
207
  const identity = formatIdentityRow(agentName, opts?.runId);
195
208
  if (identity) {
196
- lines.push(` agent ${identity}`);
209
+ lines.push(` ${L.rows.agent}${identity}`);
197
210
  }
198
- const progress = formatProgressRow(opts?.toolCallCount, opts?.lastToolNames);
211
+ const progress = formatProgressRow(opts?.toolCallCount, opts?.lastToolNames, L);
199
212
  if (progress) {
200
- lines.push(` tools ${progress}`);
213
+ lines.push(` ${L.rows.tools}${progress}`);
201
214
  }
202
215
  const note = opts?.lastAssistantText?.trim();
203
216
  if (note) {
204
- lines.push(` note ${clipText(note, NOTE_PREVIEW_MAX)}`);
217
+ lines.push(` ${L.rows.note}${clipText(note, NOTE_PREVIEW_MAX)}`);
205
218
  }
206
219
  if (opts?.errorMessage?.trim()) {
207
- lines.push(` error ${opts.errorMessage.trim()}`);
220
+ lines.push(` ${L.rows.error}${opts.errorMessage.trim()}`);
208
221
  }
209
222
  if (shouldShowLogTail(status, opts?.includeLogTail, opts?.logLines)) {
210
223
  lines.push("", L.logTail, ...opts.logLines.map((l) => ` ${l}`));
@@ -223,11 +236,11 @@ function formatFinishedRunCard(agentName, status, opts) {
223
236
  const L = resolveLabels(opts?.labels);
224
237
  const icon = getAgentRunStatusIcon(status);
225
238
  const age = formatRunAge(opts?.timing, opts?.now);
226
- const summary = [status, age, formatProgressRow(opts?.toolCallCount, opts?.lastToolNames)].filter(Boolean).join(" \xB7 ");
239
+ const summary = [L.statusWord(status), age, formatProgressRow(opts?.toolCallCount, opts?.lastToolNames, L)].filter(Boolean).join(" \xB7 ");
227
240
  const lines = [L.runFinished, ` ${icon} ${summary}`];
228
241
  const identity = formatIdentityRow(agentName, opts?.runId);
229
242
  if (identity) {
230
- lines.push(` agent ${identity}`);
243
+ lines.push(` ${L.rows.agent}${identity}`);
231
244
  }
232
245
  const note = opts?.lastAssistantText?.trim();
233
246
  if (note) {
@@ -245,7 +258,7 @@ function formatStopRunCard(status = "killed", labels) {
245
258
  const L = resolveLabels(labels);
246
259
  const icon = getAgentRunStatusIcon(status);
247
260
  return `${L.runStopped}
248
- ${icon} ${status}`;
261
+ ${icon} ${L.statusWord(status)}`;
249
262
  }
250
263
  function formatListRunsCard(runs, labels) {
251
264
  const L = resolveLabels(labels);
@@ -260,7 +273,7 @@ function formatListRunsCard(runs, labels) {
260
273
  function formatNotFoundRunCard(labels) {
261
274
  const L = resolveLabels(labels);
262
275
  return `${L.runStatus}
263
- ? not_found`;
276
+ ? ${L.statusWord("not_found")}`;
264
277
  }
265
278
  var AGENT_RUN_TERMINAL_STATUSES = /* @__PURE__ */ new Set([
266
279
  "done",
@@ -276,6 +289,24 @@ var AGENT_RUN_TERMINAL_STATUSES = /* @__PURE__ */ new Set([
276
289
  function isAgentRunTerminalStatus(status) {
277
290
  return typeof status === "string" && AGENT_RUN_TERMINAL_STATUSES.has(status);
278
291
  }
292
+ function formatAgentListCard(agents, maxDisplay = 8) {
293
+ const total = agents.length;
294
+ const lines = [`Agents (${total})`];
295
+ const visible = agents.slice(0, maxDisplay);
296
+ for (const agent of visible) {
297
+ const star = agent.isFavorite ? "\u2605" : " ";
298
+ const own = agent.isOwned ? "\u25CE" : " ";
299
+ const name = agent.name || "(unnamed)";
300
+ const model = agent.model || "\u2014";
301
+ const source = agent.apiSource || agent.provider || agent.cliProvider || "\u2014";
302
+ const key = agent.agentKey || "(agentKey unavailable)";
303
+ lines.push(`${star}${own} ${name} ${model} ${source} ${key}`);
304
+ }
305
+ if (total > maxDisplay) {
306
+ lines.push(`\u2026 +${total - maxDisplay} more`);
307
+ }
308
+ return lines.join("\n");
309
+ }
279
310
 
280
311
  export {
281
312
  buildDelegatedTaskContent,
@@ -295,5 +326,6 @@ export {
295
326
  formatStopRunCard,
296
327
  formatListRunsCard,
297
328
  formatNotFoundRunCard,
298
- isAgentRunTerminalStatus
329
+ isAgentRunTerminalStatus,
330
+ formatAgentListCard
299
331
  };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ANTIGRAVITY_CLOUD_CODE_BASE_URL
3
- } from "./chunk-UZGQNTVW.js";
3
+ } from "./chunk-UA324D4O.js";
4
4
  import {
5
5
  kimiCodeModels,
6
6
  moonshotModels,
@@ -9,13 +9,16 @@ import {
9
9
  qwenTokenPlanModels,
10
10
  stepfunModels,
11
11
  stepfunStepPlanModels
12
- } from "./chunk-OIVSQH2O.js";
12
+ } from "./chunk-3BXNTXYI.js";
13
13
  import {
14
14
  PLATFORM_HOSTED_DEEPSEEK_FLASH_OFF_PEAK_PRICE,
15
15
  PLATFORM_HOSTED_DEEPSEEK_FLASH_PEAK_PRICE,
16
16
  PLATFORM_HOSTED_DEEPSEEK_PRO_OFF_PEAK_PRICE,
17
17
  PLATFORM_HOSTED_DEEPSEEK_PRO_PEAK_PRICE
18
- } from "./chunk-Q67DOFOO.js";
18
+ } from "./chunk-Y3PMXGLH.js";
19
+ import {
20
+ asTrimmedLowercaseString
21
+ } from "./chunk-QSJ3HFEF.js";
19
22
 
20
23
  // packages/integrations/commandcode/models.ts
21
24
  var commandCodeModels = [
@@ -203,6 +206,60 @@ var deepseekModels = [
203
206
  }
204
207
  ];
205
208
 
209
+ // packages/integrations/mistral/models.ts
210
+ var mistralModels = [
211
+ // ── Vibe 编码档(订阅主打,Vibe CLI 默认用最新档)──
212
+ {
213
+ name: "mistral-vibe-cli-latest",
214
+ displayName: "Mistral Vibe CLI",
215
+ hasVision: true,
216
+ contextWindow: 262144,
217
+ jsonOutput: true,
218
+ fnCall: true,
219
+ supportsTool: true,
220
+ price: { input: 0, output: 0 },
221
+ provider: "mistral",
222
+ description: "Mistral Vibe \u9ED8\u8BA4\u7F16\u7801\u6A21\u578B\uFF08\u8BA2\u9605\u6C60\u5185\uFF09\uFF0C\u9762\u5411 agentic coding\u3002"
223
+ },
224
+ {
225
+ name: "mistral-vibe-cli-fast",
226
+ displayName: "Mistral Vibe CLI Fast",
227
+ hasVision: true,
228
+ contextWindow: 262144,
229
+ jsonOutput: true,
230
+ fnCall: true,
231
+ supportsTool: true,
232
+ price: { input: 0, output: 0 },
233
+ provider: "mistral",
234
+ 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"
235
+ },
236
+ // ── 通用档 ──
237
+ {
238
+ name: "mistral-medium-3.5",
239
+ displayName: "Mistral Medium 3.5",
240
+ hasVision: true,
241
+ contextWindow: 262144,
242
+ jsonOutput: true,
243
+ fnCall: true,
244
+ supportsTool: true,
245
+ price: { input: 0, output: 0 },
246
+ provider: "mistral",
247
+ 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"
248
+ },
249
+ {
250
+ name: "mistral-large-latest",
251
+ displayName: "Mistral Large (latest)",
252
+ hasVision: true,
253
+ contextWindow: 262144,
254
+ jsonOutput: true,
255
+ fnCall: true,
256
+ supportsTool: true,
257
+ price: { input: 0, output: 0 },
258
+ provider: "mistral",
259
+ 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"
260
+ }
261
+ ];
262
+
206
263
  // packages/ai/agent/providerRegistry.ts
207
264
  var QWEN_MODEL_OPTIONS = qwenModels.map((m, i) => ({
208
265
  id: m.name,
@@ -267,6 +324,23 @@ var STEPFUN_STEP_PLAN_MODEL_OPTIONS = stepfunStepPlanModels.map((m, i) => ({
267
324
  hasVision: m.hasVision,
268
325
  ...i === 0 ? { recommended: true } : {}
269
326
  }));
327
+ var MISTRAL_MODEL_OPTIONS = mistralModels.map((m, i) => ({
328
+ id: m.name,
329
+ label: m.displayName ?? m.name,
330
+ hasVision: m.hasVision,
331
+ ...i === 0 ? { recommended: true } : {}
332
+ }));
333
+ var TOGETHER_MODEL_OPTIONS = [
334
+ {
335
+ id: "meta-llama/Llama-3.3-70B-Instruct-Turbo",
336
+ label: "Llama 3.3 70B Instruct Turbo",
337
+ recommended: true
338
+ },
339
+ { id: "deepseek-ai/DeepSeek-V4-Pro-0813", label: "DeepSeek V4 Pro" },
340
+ { id: "Qwen/Qwen3.6-Plus", label: "Qwen3.6 Plus" },
341
+ { id: "zai-org/GLM-5.2", label: "GLM-5.2" },
342
+ { id: "openai/gpt-oss-120b", label: "GPT-OSS 120B" }
343
+ ];
270
344
  var SUBSCRIPTION_OAUTH_PROVIDERS = [
271
345
  {
272
346
  kind: "oauth",
@@ -279,6 +353,9 @@ var SUBSCRIPTION_OAUTH_PROVIDERS = [
279
353
  defaultReasoningEffort: "medium",
280
354
  modelOptions: [
281
355
  { id: "gpt-6-astra", label: "GPT-6 Astra", hasVision: true, recommended: true },
356
+ // GPT-6.1 Sol 已列入 Codex 订阅通道选型指南,但按账号灰度("when available
357
+ // to your account and client"),未开通的账号选它会 400,不影响其他选项。
358
+ { id: "gpt-6.1-sol", label: "GPT-6.1 Sol", hasVision: true },
282
359
  { id: "gpt-5.6-sol", label: "GPT-5.6 Sol", hasVision: true },
283
360
  { id: "gpt-5.6-terra", label: "GPT-5.6 Terra", hasVision: true },
284
361
  { id: "gpt-5.6-luna", label: "GPT-5.6 Luna", hasVision: true }
@@ -324,11 +401,13 @@ var SUBSCRIPTION_OAUTH_PROVIDERS = [
324
401
  description: "Anthropic Subscription",
325
402
  apiKeyRef: "claude",
326
403
  provider: "anthropic",
327
- defaultModel: "claude-sonnet-5",
404
+ defaultModel: "claude-sonnet-5-5",
328
405
  defaultReasoningEffort: "high",
329
406
  modelOptions: [
407
+ { id: "claude-opus-5-5", label: "Claude Opus 5.5", hasVision: true, recommended: true },
408
+ { id: "claude-sonnet-5-5", label: "Claude Sonnet 5.5", hasVision: true },
330
409
  { id: "claude-sonnet-5", label: "Claude Sonnet 5", hasVision: true },
331
- { id: "claude-opus-5", label: "Claude Opus 5", hasVision: true, recommended: true },
410
+ { id: "claude-opus-5", label: "Claude Opus 5", hasVision: true },
332
411
  { id: "claude-opus-4-8", label: "Claude Opus 4.8", hasVision: true },
333
412
  { id: "claude-fable-5", label: "Claude Fable 5", hasVision: true }
334
413
  ]
@@ -533,13 +612,31 @@ var CUSTOM_API_KEY_TEMPLATES = [
533
612
  commercialKind: "subscription",
534
613
  accessVariant: "token_plan_endpoint"
535
614
  },
615
+ {
616
+ kind: "api_key_template",
617
+ id: "mistral-plan",
618
+ label: "Mistral \u8BA2\u9605 (Vibe/Pro)",
619
+ 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",
620
+ provider: "mistral",
621
+ baseUrl: "https://api.mistral.ai/v1",
622
+ defaultModel: "mistral-vibe-cli-latest",
623
+ modelOptions: MISTRAL_MODEL_OPTIONS,
624
+ 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",
625
+ commercialKind: "subscription",
626
+ accessVariant: "token_plan_endpoint"
627
+ },
536
628
  {
537
629
  kind: "api_key_template",
538
630
  id: "openai-api",
539
631
  label: "OpenAI API",
540
632
  provider: "openai",
541
633
  baseUrl: "https://api.openai.com/v1",
542
- defaultModel: "gpt-6-astra",
634
+ defaultModel: "gpt-6.1-sol",
635
+ modelOptions: [
636
+ { id: "gpt-6.1-sol", label: "GPT-6.1 Sol", hasVision: true, recommended: true },
637
+ { id: "gpt-6-astra", label: "GPT-6 Astra", hasVision: true },
638
+ { id: "gpt-6-luna", label: "GPT-6 Luna", hasVision: true }
639
+ ],
543
640
  commercialKind: "api",
544
641
  accessVariant: "metered_key"
545
642
  },
@@ -549,7 +646,7 @@ var CUSTOM_API_KEY_TEMPLATES = [
549
646
  label: "Anthropic API",
550
647
  provider: "anthropic",
551
648
  baseUrl: "https://api.anthropic.com",
552
- defaultModel: "claude-sonnet-5",
649
+ defaultModel: "claude-sonnet-5-5",
553
650
  apiKeyHeader: "x-api-key",
554
651
  commercialKind: "api",
555
652
  accessVariant: "metered_key"
@@ -575,6 +672,19 @@ var CUSTOM_API_KEY_TEMPLATES = [
575
672
  commercialKind: "api",
576
673
  accessVariant: "metered_key"
577
674
  },
675
+ // anthropic/claude-sonnet-5、qwen/qwen3.8-27b),不维护易腐的静态清单。
676
+ {
677
+ kind: "api_key_template",
678
+ id: "openrouter-api",
679
+ label: "OpenRouter API \u7528\u91CF\u8BA1\u8D39",
680
+ description: "OpenRouter \u805A\u5408\u7F51\u5173\uFF08OpenAI \u517C\u5BB9\uFF0C\u4E00\u4E2A Key \u8BBF\u95EE\u591A\u5BB6\u6A21\u578B\uFF0C\u6309\u91CF\u8BA1\u8D39\uFF09",
681
+ provider: "openrouter",
682
+ baseUrl: "https://openrouter.ai/api/v1",
683
+ defaultModel: "anthropic/claude-sonnet-5",
684
+ keyFormatHint: "\u5728 openrouter.ai/keys \u521B\u5EFA\uFF0C\u5F62\u5982 sk-or-\u2026",
685
+ commercialKind: "api",
686
+ accessVariant: "metered_key"
687
+ },
578
688
  // DeepSeek 模型统一改走 nolo provider(Ollama Cloud,thinking=max 快 28-49%)。
579
689
  // 现按用户选择回归:自带 Key 的 metered 通道与平台托管通道并存,互不影响。
580
690
  {
@@ -649,6 +759,21 @@ var CUSTOM_API_KEY_TEMPLATES = [
649
759
  defaultModel: "MiniMax-Text-01",
650
760
  commercialKind: "api",
651
761
  accessVariant: "metered_key"
762
+ },
763
+ // Together AI 平台:用户自带 Key 的 metered 通道(复用 OpenAI-compatible 通道,
764
+ // apiSource:"custom",不扣平台积分)。模型 ID 为 namespaced 全 ID,直传不 remap;
765
+ // OpenAI 兼容 base_url = https://api.together.ai/v1(官方兼容文档在案)。
766
+ {
767
+ kind: "api_key_template",
768
+ id: "together-api",
769
+ label: "Together AI API \u7528\u91CF\u8BA1\u8D39",
770
+ description: "Together AI\uFF08OpenAI \u517C\u5BB9\uFF0C\u6309\u91CF\u8BA1\u8D39\uFF09",
771
+ provider: "together",
772
+ baseUrl: "https://api.together.ai/v1",
773
+ defaultModel: "meta-llama/Llama-3.3-70B-Instruct-Turbo",
774
+ modelOptions: TOGETHER_MODEL_OPTIONS,
775
+ commercialKind: "api",
776
+ accessVariant: "metered_key"
652
777
  }
653
778
  ];
654
779
  var ALL_PROVIDER_REGISTRY = [
@@ -666,6 +791,26 @@ function isCustomApiKeyTemplate(id) {
666
791
  if (!id) return false;
667
792
  return CUSTOM_API_KEY_TEMPLATES.some((p) => p.id === id);
668
793
  }
794
+ function normalizeEndpointUrl(url) {
795
+ return asTrimmedLowercaseString(url).replace(/\/+$/, "");
796
+ }
797
+ var SUBSCRIPTION_ENDPOINT_URLS = new Set(
798
+ CUSTOM_API_KEY_TEMPLATES.filter((t) => t.commercialKind === "subscription").map(
799
+ (t) => normalizeEndpointUrl(t.baseUrl)
800
+ )
801
+ );
802
+ var SUBSCRIPTION_OAUTH_APIKEY_REFS = new Set(
803
+ SUBSCRIPTION_OAUTH_PROVIDERS.map((p) => asTrimmedLowercaseString(p.apiKeyRef))
804
+ );
805
+ function isSubscriptionEndpoint(customProviderUrl) {
806
+ if (typeof customProviderUrl !== "string") return false;
807
+ const normalized = normalizeEndpointUrl(customProviderUrl);
808
+ return normalized.length > 0 && SUBSCRIPTION_ENDPOINT_URLS.has(normalized);
809
+ }
810
+ function isSubscriptionOAuthCredential(apiKeyRef) {
811
+ const ref = asTrimmedLowercaseString(apiKeyRef ?? "");
812
+ return ref.length > 0 && SUBSCRIPTION_OAUTH_APIKEY_REFS.has(ref);
813
+ }
669
814
 
670
815
  export {
671
816
  SUBSCRIPTION_OAUTH_PROVIDERS,
@@ -673,5 +818,7 @@ export {
673
818
  ALL_PROVIDER_REGISTRY,
674
819
  findProviderById,
675
820
  isSubscriptionOAuthProvider,
676
- isCustomApiKeyTemplate
821
+ isCustomApiKeyTemplate,
822
+ isSubscriptionEndpoint,
823
+ isSubscriptionOAuthCredential
677
824
  };
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  fetchReferenceContents,
3
3
  resolveReferenceAssets
4
- } from "./chunk-U3JZVWIB.js";
4
+ } from "./chunk-QMXJ5KDJ.js";
5
5
 
6
6
  // packages/ai/agent/fetchAgentContexts.ts
7
7
  async function fetchAgentContexts(references, dispatch) {
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  getRuntimeServerContext,
3
3
  scheduleDeleteReplication
4
- } from "./chunk-UKWGR5SS.js";
4
+ } from "./chunk-O7SVKKLY.js";
5
+ import {
6
+ buildTombstoneRecord
7
+ } from "./chunk-D2MDMY2M.js";
5
8
  import {
6
9
  fetchFromClientDb
7
- } from "./chunk-QOKAKDPE.js";
10
+ } from "./chunk-HIM3FCLF.js";
8
11
  import {
9
12
  selectIdentityToken
10
13
  } from "./chunk-SEJ5OS6F.js";
11
- import {
12
- buildTombstoneRecord
13
- } from "./chunk-GBRG75BQ.js";
14
14
 
15
15
  // packages/database/fileStorage.ts
16
16
  var DB_NAME = "nolo-file-storage";
@@ -91,6 +91,7 @@ function createCliAuthorityBrokerSocketInvoker(options) {
91
91
  const timeout = setTimeout(() => {
92
92
  finish(() => {
93
93
  socket.destroy();
94
+ socket.unref?.();
94
95
  reject(new CliAuthorityBrokerTimeoutError(options.endpoint, timeoutMs));
95
96
  });
96
97
  }, timeoutMs);