nolo-cli 0.102.0-alpha.1 → 0.102.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.
- package/README.md +1 -1
- package/{_executeModel-LUNEV235.js → _executeModel-WLFACVFR.js} +74 -67
- package/action-PNPQLJHG.js +20 -0
- package/{addContentAction-O7R66HEX.js → addContentAction-RBOUD7SJ.js} +12 -11
- package/{addDialogAgentAction-74OA7KYP.js → addDialogAgentAction-IODCR6TB.js} +18 -19
- package/{agentDeleteCommand-2YAHAZFJ.js → agentDeleteCommand-XHHDYJ3U.js} +117 -42
- package/{agentEmailCommands-G6A7IRPQ.js → agentEmailCommands-GJ2TE3CV.js} +97 -87
- package/agentListCommands-B3YHJQNM.js +742 -0
- package/{agentMachineCommands-W2SMNSQ3.js → agentMachineCommands-KQLRJF5O.js} +48 -43
- package/{agentProviderCommands-GNPTL5XR.js → agentProviderCommands-XPJYZSCE.js} +97 -2
- package/{agentPullCommand-O5MPVJ5E.js → agentPullCommand-B4T2DJ5H.js} +1 -1
- package/agentRecordCommands-LXDIXYQM.js +138 -0
- package/agentRunCommand-P2KLVSYL.js +167 -0
- package/{agentRunControl-AVJR4JW4.js → agentRunControl-3HWA2LLQ.js} +2 -2
- package/{agentRuntimeLocal-VXZSDIGT.js → agentRuntimeLocal-SXYAKX3A.js} +48 -39
- package/{agentSlice-5YJHUO47.js → agentSlice-WBSSBKBB.js} +14 -13
- package/{appDeleteCommands-32MHLR4L.js → appDeleteCommands-4EX37I4K.js} +46 -41
- package/{appDeployCommands-WCQOUSOB.js → appDeployCommands-SDBR3J75.js} +46 -41
- package/{appDeployStatusCommands-6QKB7DYN.js → appDeployStatusCommands-764PQNYN.js} +46 -41
- package/{appGetCommands-SFAPP5PB.js → appGetCommands-BBCN3XJC.js} +46 -41
- package/{appListCommands-EKUBDRUO.js → appListCommands-OGTABCS3.js} +46 -41
- package/{authCommand-F4EFRRX6.js → authCommand-NHDLY3IB.js} +118 -24
- package/{authCommands-RGOGCPP6.js → authCommands-UDBJVSZU.js} +7 -5
- package/{builtinSkillRegistry-FUAVTRVZ.js → builtinSkillRegistry-MAR5LPAC.js} +10 -8
- package/{chromeCommands-FZYAU75D.js → chromeCommands-K27J4OVZ.js} +124 -28
- package/{chromeOpsCommands-62P2Q2YB.js → chromeOpsCommands-IXRLN57H.js} +4 -3
- package/{chunk-6OZ36FXI.js → chunk-27ONFIEY.js} +22 -4
- package/{chunk-JEDZAO7L.js → chunk-2SYTUTLI.js} +257 -37
- package/{chunk-53HEEOTT.js → chunk-2WJ57RJA.js} +83 -16
- package/{chunk-OIVSQH2O.js → chunk-3BXNTXYI.js} +299 -5
- package/{chunk-ABQYVJBJ.js → chunk-46Y5D2BZ.js} +5 -5
- package/{chunk-EYAQT56M.js → chunk-4DPP773Q.js} +2 -2
- package/{chunk-H62HCIUP.js → chunk-4FFUDT6D.js} +24 -21
- package/chunk-4LCOCOR5.js +50 -0
- package/{chunk-2GRGFCF6.js → chunk-4VJAC32I.js} +2 -1
- package/{chunk-IIVGDG4I.js → chunk-4YSOUKUR.js} +13 -7
- package/{chunk-MC4XLIJ7.js → chunk-523DITKR.js} +1 -1
- package/{chunk-E4MARS3Q.js → chunk-5GVBDNTO.js} +1 -1
- package/chunk-5J3PYNUP.js +255 -0
- package/{chunk-DRGSDQBL.js → chunk-5LTAPGPV.js} +10 -10
- package/chunk-5MMAK75Q.js +15 -0
- package/{chunk-JPGCXHNM.js → chunk-5OA5HMTL.js} +1 -1
- package/{chunk-42V6BK2E.js → chunk-62IL3KQV.js} +4 -34
- package/{chunk-3BMYXEUW.js → chunk-6O4IK4V2.js} +1 -1
- package/{chunk-AEOE4Z6Q.js → chunk-7EPXUZOX.js} +39 -15
- package/{chunk-GQBOR3G6.js → chunk-7KVZ5LDQ.js} +2 -2
- package/{chunk-DNCEALKX.js → chunk-7MMSLEPA.js} +22 -29
- package/{chunk-L5UXH3B2.js → chunk-7TKWCTSY.js} +22 -6
- package/chunk-A4SQRTZ6.js +15 -0
- package/{chunk-7S4YWN7P.js → chunk-ADBZWMFB.js} +4 -4
- package/chunk-AGIM7IMJ.js +147 -0
- package/{chunk-SSDAAEC2.js → chunk-AOJB5QYD.js} +873 -227
- package/{chunk-5UTFL4QJ.js → chunk-AOTBKDRK.js} +7 -0
- package/{chunk-Q554LLSI.js → chunk-AUDNYVRC.js} +1 -1
- package/chunk-BMQ2MJUK.js +153 -0
- package/{chunk-6YTOJY35.js → chunk-BZ7NPA6G.js} +35 -2
- package/{chunk-4S5QUMJP.js → chunk-CHNCM7EF.js} +11 -9
- package/chunk-CHOZJMJS.js +78 -0
- package/chunk-CJN5OERD.js +13545 -0
- package/{chunk-ACTMNVHM.js → chunk-CYSYR67N.js} +1 -1
- package/{chunk-GBRG75BQ.js → chunk-D2MDMY2M.js} +1 -0
- package/{chunk-RFCKMYDK.js → chunk-DNHENQ3T.js} +23 -28
- package/chunk-DZ7R5V3Y.js +164 -0
- package/{chunk-3VNWWVKB.js → chunk-E3YWHWCR.js} +50 -18
- package/{chunk-V4MJDUSR.js → chunk-E73ON47R.js} +2 -2
- package/{chunk-ETI2NYVF.js → chunk-EHER73LN.js} +4 -4
- package/{chunk-KQ4ONNQD.js → chunk-EKPKW6RM.js} +155 -8
- package/{chunk-TRV2MIDW.js → chunk-EXAJ6DCR.js} +1 -0
- package/{chunk-HJUYAD4A.js → chunk-FJ5BGMNM.js} +5 -5
- package/{chunk-2F7RJC6L.js → chunk-FOXQ7BAB.js} +1 -1
- package/{chunk-6VFARHZW.js → chunk-G53AA7RW.js} +934 -1091
- package/{chunk-J4MOO56S.js → chunk-GARACBQB.js} +10 -2
- package/chunk-GMZLP5DV.js +82 -0
- package/{chunk-5FBTLSFG.js → chunk-GUYEMTRK.js} +551 -516
- package/{chunk-FDTR4QJ6.js → chunk-H6A6X4EK.js} +32 -1
- package/{chunk-DVINR3PL.js → chunk-HDLLCBRF.js} +1 -1
- package/{chunk-QOKAKDPE.js → chunk-HIM3FCLF.js} +0 -1
- package/{chunk-ONXOABJR.js → chunk-HNGRBWYF.js} +3 -0
- package/{chunk-VLTIYV3X.js → chunk-HP57OUJO.js} +4 -4
- package/{chunk-6IG4XSS6.js → chunk-HRYFI64G.js} +88 -17
- package/{chunk-GPCZ7UXG.js → chunk-K6U4NKFJ.js} +1 -1
- package/{chunk-6Q33GUCC.js → chunk-KLUBZL6X.js} +1 -1
- package/{chunk-4OEFYTWL.js → chunk-LKERWYPX.js} +67 -48
- package/{chunk-LS2ZANRJ.js → chunk-LOCNXNOU.js} +1 -1
- package/{chunk-PUOC4YRO.js → chunk-M7VLQGQP.js} +11 -0
- package/{chunk-NA35QHCF.js → chunk-N4QIAW6W.js} +1 -1
- package/{chunk-BFU6C242.js → chunk-NMFV26UG.js} +1 -1
- package/{chunk-OEVAY4J6.js → chunk-NTDEBTK5.js} +18 -20
- package/{chunk-FZGV4FGK.js → chunk-NUHHBEJC.js} +378 -187
- package/chunk-NWENLDMM.js +42 -0
- package/chunk-OCZKATRC.js +129 -0
- package/{chunk-G2O6V3HJ.js → chunk-ODTDLPBV.js} +20 -11
- package/chunk-OW4APERY.js +870 -0
- package/{chunk-KQHGZWSV.js → chunk-OXME3PEE.js} +1 -1
- package/{chunk-Q2XN3EOZ.js → chunk-OYPMWCIQ.js} +67 -45
- package/{chunk-TOP2VXOR.js → chunk-PCF3QU5Q.js} +5 -5
- package/chunk-PH275YDS.js +7881 -0
- package/{chunk-WV42OMV7.js → chunk-PTDYOADJ.js} +8 -8
- package/{chunk-GEPUP7OO.js → chunk-SEA64CDY.js} +3 -3
- package/{chunk-5H7KJX7J.js → chunk-SEB5HAUU.js} +5 -5
- package/{chunk-6D6VBVEW.js → chunk-SNMQMOD2.js} +80 -14
- package/{chunk-BYMV6QZG.js → chunk-TNIX77YM.js} +4 -0
- package/{chunk-Z77CRGTW.js → chunk-TVCAR26G.js} +1 -1
- package/chunk-TY3TIUJK.js +89 -0
- package/{chunk-I3TQJXQ7.js → chunk-U3C3IA32.js} +9 -2
- package/{chunk-ORYWEJO4.js → chunk-U6IGAJT4.js} +47 -67
- package/{chunk-RG6JBBX5.js → chunk-U7XXEI5R.js} +166 -13
- package/{chunk-UZGQNTVW.js → chunk-UA324D4O.js} +8 -6
- package/chunk-UJXNKP5V.js +760 -0
- package/{chunk-UKZDAFYT.js → chunk-UM4PH574.js} +6 -10
- package/{chunk-ZCYXJSTU.js → chunk-V5OWQOJZ.js} +19 -88
- package/{chunk-3DII57IT.js → chunk-VCAQFMVN.js} +1 -1
- package/{chunk-JRQFUXY7.js → chunk-VEYL5MO5.js} +99 -22
- package/chunk-VIWDGTDA.js +8 -0
- package/chunk-VJVNU77E.js +83 -0
- package/{chunk-UKWGR5SS.js → chunk-VY6VFGKR.js} +194 -1144
- package/{chunk-BP4XNZRM.js → chunk-W72ISAKC.js} +4 -4
- package/{chunk-DHDMC6FO.js → chunk-WCGC6S77.js} +14 -9
- package/{chunk-QDSINZM3.js → chunk-WJ3B6FX6.js} +1 -14
- package/{chunk-HVURBGF3.js → chunk-XFUBXRVI.js} +6 -6
- package/{chunk-45C5ER5U.js → chunk-XIRXOUBV.js} +19 -17
- package/{chunk-O6OSWFZQ.js → chunk-XUWRURDF.js} +6 -0
- package/{chunk-Q67DOFOO.js → chunk-Y3PMXGLH.js} +2 -0
- package/{chunk-SH43IESU.js → chunk-YUNJN43V.js} +44 -9
- package/chunk-YV25TM3R.js +780 -0
- package/{chunk-X6DN5HBD.js → chunk-YXZYNMYK.js} +29 -9
- package/{chunk-BTI7PJDX.js → chunk-Z56IK6UT.js} +29 -78
- package/chunk-ZRAU6T47.js +56 -0
- package/commandRegistry-TDXN5OP7.js +833 -0
- package/{contentThunks-GJV22WVZ.js → contentThunks-F2BNWOZV.js} +36 -34
- package/{cooldownCommands-REAWYVTY.js → cooldownCommands-ZLEPIB4A.js} +2 -2
- package/{createAgentAutomationAction-6V25TZEO.js → createAgentAutomationAction-5N2NRNR7.js} +38 -36
- package/createDialogAction-DSEG4L5Y.js +69 -0
- package/{createPageAction-IR4BGJSI.js → createPageAction-K32FYQPE.js} +45 -42
- package/{chunk-YFE4A4O7.js → cursorProvider-YGGNMVWX.js} +2496 -9897
- package/{dbSlice-XVWBAGYN.js → dbSlice-Q25STFGJ.js} +11 -10
- package/{deleteFile-YG6QMJLU.js → deleteFile-AJ2EZMHT.js} +7 -6
- package/{dialogCommands-5J56DFWN.js → dialogCommands-ODG2OKLO.js} +49 -45
- package/{dialogSlice-UNX2FAPZ.js → dialogSlice-4GBOUTGL.js} +40 -33
- package/{dist-VODFSGNG.js → dist-NJC2W7I4.js} +61 -54
- package/{docCreateCommands-KYI2DC2U.js → docCreateCommands-Q6FQUHUF.js} +48 -43
- package/{docDeleteCommands-67REUSRY.js → docDeleteCommands-N224CFZL.js} +49 -44
- package/{docReadCommands-HOSVSBDJ.js → docReadCommands-CJWAEAB4.js} +47 -42
- package/{docStore-JWVG5NDO.js → docStore-ZTYSP3YE.js} +16 -12
- package/{docUpdateCommands-EMGCSMXY.js → docUpdateCommands-OPG6ZY4H.js} +48 -43
- package/{fetchMessages-EIU7UFFK.js → fetchMessages-I5ICDDHM.js} +5 -5
- package/{getPricing-LUSEABA6.js → getPricing-NMMFT3YI.js} +4 -4
- package/{handleSendMessageAction-B75UOJKF.js → handleSendMessageAction-XFZH2TQS.js} +110 -86
- package/index.js +87 -884
- package/{lib-FRRS27KN.js → lib-PU2G2MSO.js} +523 -191
- package/{localDialogRead-BTFJ4V2I.js → localDialogRead-ZHZ3KXDM.js} +2 -2
- package/{localRuntimeAuthority-6IR6BBXE.js → localRuntimeAuthority-TU6OBC76.js} +9 -6
- package/{localRuntimeDb-SYQGUF4U.js → localRuntimeDb-VKWVOPPI.js} +1 -1
- package/{machineCommands-GFPTOY6L.js → machineCommands-KMU3D5I5.js} +91 -81
- package/machineWsRunDispatch-6GJ5YOSW.js +154 -0
- package/{memberThunks-QGFLFVCI.js → memberThunks-R75S3RWP.js} +20 -18
- package/{models-T3SG6MJ5.js → models-ZPU5EDF4.js} +2 -2
- package/oauthTokenStore-ITEB663N.js +23 -0
- package/package.json +1 -1
- package/pdf-U6KSUEZZ.js +26435 -0
- package/processSpawn-SOAV3FEV.js +11 -0
- package/profileConfig-ZGOFORWV.js +43 -0
- package/{providerPresetApply-FG6NZ57W.js → providerPresetApply-TEBH7FDX.js} +7 -7
- package/{providerRegistry-757OWH3O.js → providerRegistry-CBJLNCET.js} +11 -7
- package/{read-COE3ZYR6.js → read-SRQMNO26.js} +7 -6
- package/{readDocTool-5USN4A6V.js → readDocTool-RC3JUNJ2.js} +5 -3
- package/{readlineWorkspace-UFSWHFKD.js → readlineWorkspace-EXCG3IFX.js} +2704 -2060
- package/{removeDialogAgentAction-IX3MN2ZO.js → removeDialogAgentAction-46XQV5Q7.js} +21 -25
- package/{runAgentClientLoop-25LJ4XGV.js → runAgentClientLoop-URRDZ5WG.js} +75 -69
- package/{runtimeDoctorCommands-X6WDBEQX.js → runtimeDoctorCommands-PIVSBZRZ.js} +4 -4
- package/runtimeModeArgs-2Y7BALTO.js +31 -0
- package/{setDialogExtraReferencesAction-X4HCPNZL.js → setDialogExtraReferencesAction-J4V5ADQF.js} +15 -13
- package/{setPrimaryDialogAgentAction-4GMIQLOD.js → setPrimaryDialogAgentAction-UHHV2QZW.js} +22 -26
- package/{chunk-AFUORTY4.js → settingThunks-PPZZZOWN.js} +226 -940
- package/{skillDiscovery-CYUCJMAG.js → skillDiscovery-ZBU76COE.js} +3 -3
- package/{slateUtils-RIZES3PV.js → slateUtils-NGV2NMKM.js} +1 -1
- package/{spaceCommands-NKJVJCQQ.js → spaceCommands-7CLUNI2I.js} +51 -46
- package/{streamAgentChatTurn-A46QFV4O.js → streamAgentChatTurn-YPUYKXDX.js} +206 -105
- package/{switchDialogAgentAction-N52LRPA3.js → switchDialogAgentAction-A2TMVGAE.js} +18 -19
- package/{tableCommands-O6NWHFKV.js → tableCommands-6U4BMLRR.js} +10 -10
- package/{toolApiClient-QVJ6HDNN.js → toolApiClient-EJT6TMFG.js} +3 -3
- package/tools-M5ENXZRJ.js +116 -0
- package/{tuiSummaryLlmCaller-WFRWERGK.js → tuiSummaryLlmCaller-Q65IBDGO.js} +24 -21
- package/{updateCommands-2M74UL7P.js → updateCommands-4EHDLF5J.js} +3 -3
- package/{updateDialogTitleAction-QJPZGF52.js → updateDialogTitleAction-7PNUE23W.js} +82 -44
- package/action-YVYQEAAV.js +0 -31
- package/agentListCommands-KMS675GZ.js +0 -406
- package/agentRecordCommands-D7BRMFNI.js +0 -128
- package/agentRunCommand-VL6MMEUB.js +0 -155
- package/browser-image-compression-MFDTD7K6.js +0 -1763
- package/chatQueueReduxAdapter-PQMRR2PK.js +0 -186
- package/chunk-M76ECQRD.js +0 -13658
- package/chunk-MEYIRKDN.js +0 -8967
- package/chunk-Q5FJJ6XI.js +0 -103
- package/chunk-QVKRR2SS.js +0 -20782
- package/chunk-S7Z2HMCN.js +0 -25
- package/chunk-Y5GCAMGP.js +0 -9
- package/chunk-YPREESF4.js +0 -225
- package/createDialogAction-SX36BGSX.js +0 -65
- package/machineWsRunDispatch-46PSZ3DJ.js +0 -144
- package/settingSlice-ZQZVUPKK.js +0 -204
- package/syncMapping-N6RGXGBW.js +0 -437
- package/tools-TTDGRNY6.js +0 -110
- package/{chunk-VMFTFOWF.js → chunk-3AH7LNUB.js} +7 -7
- package/{chunk-X7HHHIOZ.js → chunk-Y6ROFCZO.js} +0 -0
- package/{db-WK5MDZVN.js → db-VQSAOWAO.js} +1 -1
|
@@ -180,6 +180,36 @@ function resolveCooldownGate(input, now) {
|
|
|
180
180
|
}
|
|
181
181
|
return now - lastProbeAt >= PROBE_INTERVAL_MS ? "probe" : "blocked";
|
|
182
182
|
}
|
|
183
|
+
function resolveCredentialKey(agent) {
|
|
184
|
+
if (!agent || typeof agent !== "object") return void 0;
|
|
185
|
+
for (const field of ["apiKeyRef", "credentialRef"]) {
|
|
186
|
+
const value = agent[field];
|
|
187
|
+
if (typeof value === "string") {
|
|
188
|
+
const trimmed = value.trim();
|
|
189
|
+
if (trimmed) return trimmed;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
return void 0;
|
|
193
|
+
}
|
|
194
|
+
function resolveCredentialKeyWithFallback(agent) {
|
|
195
|
+
const byRef = resolveCredentialKey(agent);
|
|
196
|
+
if (byRef) return byRef;
|
|
197
|
+
if (!agent || typeof agent !== "object") return void 0;
|
|
198
|
+
const endpoint = agent.customProviderUrl;
|
|
199
|
+
if (typeof endpoint === "string") {
|
|
200
|
+
const trimmed = endpoint.trim();
|
|
201
|
+
if (trimmed) {
|
|
202
|
+
try {
|
|
203
|
+
const origin = new URL(trimmed).origin;
|
|
204
|
+
if (origin && origin !== "null") return `custom-endpoint:${origin}`;
|
|
205
|
+
} catch {
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
const key = agent.key;
|
|
210
|
+
if (typeof key === "string" && key.trim()) return `custom-agent:${key.trim()}`;
|
|
211
|
+
return void 0;
|
|
212
|
+
}
|
|
183
213
|
|
|
184
214
|
export {
|
|
185
215
|
QUOTA_ERROR_PATTERNS,
|
|
@@ -188,5 +218,6 @@ export {
|
|
|
188
218
|
isQuotaLimited403Body,
|
|
189
219
|
resolveAvailabilityAction,
|
|
190
220
|
mergeAvailabilityDeadline,
|
|
191
|
-
resolveCooldownGate
|
|
221
|
+
resolveCooldownGate,
|
|
222
|
+
resolveCredentialKeyWithFallback
|
|
192
223
|
};
|
|
@@ -206,9 +206,12 @@ export {
|
|
|
206
206
|
resolveNoloStateDir,
|
|
207
207
|
getLegacyCredentialPath,
|
|
208
208
|
migrateLegacyCredentialFile,
|
|
209
|
+
DEFAULT_REFRESH_SKEW_MS,
|
|
209
210
|
getCredentialsDir,
|
|
211
|
+
getCredentialPath,
|
|
210
212
|
readOAuthCredential,
|
|
211
213
|
writeOAuthCredential,
|
|
214
|
+
removeOAuthCredential,
|
|
212
215
|
createOAuthTokenStore,
|
|
213
216
|
isTokenExpired,
|
|
214
217
|
resolveFreshAccessToken
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getActiveDialogKey
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-BZ7NPA6G.js";
|
|
4
4
|
import {
|
|
5
5
|
compactWhitespace
|
|
6
6
|
} from "./chunk-DWLEOOGR.js";
|
|
@@ -10,12 +10,12 @@ import {
|
|
|
10
10
|
import {
|
|
11
11
|
extractCustomId
|
|
12
12
|
} from "./chunk-M2EJHDJP.js";
|
|
13
|
-
import {
|
|
14
|
-
selectIdentityToken
|
|
15
|
-
} from "./chunk-SEJ5OS6F.js";
|
|
16
13
|
import {
|
|
17
14
|
isRecord
|
|
18
15
|
} from "./chunk-KUG52IAP.js";
|
|
16
|
+
import {
|
|
17
|
+
selectIdentityToken
|
|
18
|
+
} from "./chunk-SEJ5OS6F.js";
|
|
19
19
|
|
|
20
20
|
// packages/ai/tools/toolApiClient.ts
|
|
21
21
|
var MAIN_SERVER = "https://nolo.chat";
|
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
listUserRecordsFromServers,
|
|
3
3
|
readLiveDbRecordAfterTombstoneMerge
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-SEA64CDY.js";
|
|
5
5
|
import {
|
|
6
6
|
agentRecordHasConfiguredCredential
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-7EPXUZOX.js";
|
|
8
8
|
import {
|
|
9
|
-
deriveCredentialGroup
|
|
10
|
-
|
|
11
|
-
} from "./chunk-RG6JBBX5.js";
|
|
9
|
+
deriveCredentialGroup
|
|
10
|
+
} from "./chunk-U7XXEI5R.js";
|
|
12
11
|
import {
|
|
13
12
|
PUBLIC_AGENT_KEY_PREFIX,
|
|
14
|
-
isOwnedAgentKey,
|
|
15
13
|
ownedAgentKey,
|
|
16
14
|
ownedAgentKeyPrefix,
|
|
17
15
|
parseOwnedAgentId,
|
|
@@ -53,6 +51,9 @@ function normalizeListedAgent(record) {
|
|
|
53
51
|
...typeof record?.handle === "string" && record.handle ? { handle: record.handle } : {},
|
|
54
52
|
...typeof record?.introduction === "string" && record.introduction ? { introduction: record.introduction } : typeof record?.description === "string" && record.description ? { introduction: record.description } : {},
|
|
55
53
|
...typeof record?.provider === "string" && record.provider ? { provider: record.provider } : {},
|
|
54
|
+
// 仅供 resolveBillingSource 判定订阅端点(Step Plan / OpenCode Go 等),
|
|
55
|
+
// safe 投影不输出它。缺了它本地 agent list 会把订阅端点全报成 user_api。
|
|
56
|
+
...typeof record?.customProviderUrl === "string" && record.customProviderUrl ? { customProviderUrl: record.customProviderUrl } : {},
|
|
56
57
|
...typeof record?.inputPrice === "number" && Number.isFinite(record.inputPrice) ? { inputPrice: record.inputPrice } : {},
|
|
57
58
|
...typeof record?.outputPrice === "number" && Number.isFinite(record.outputPrice) ? { outputPrice: record.outputPrice } : {},
|
|
58
59
|
updatedAt: typeof record?.updatedAt === "string" || typeof record?.updatedAt === "number" ? record.updatedAt : typeof record?.createdAt === "string" || typeof record?.createdAt === "number" ? record.createdAt : typeof record?.created === "string" || typeof record?.created === "number" ? record.created : null,
|
|
@@ -67,16 +68,10 @@ function normalizeListedAgent(record) {
|
|
|
67
68
|
...credentialKind !== void 0 ? { credentialKind } : {},
|
|
68
69
|
...typeof record?.apiSource === "string" && record.apiSource ? { apiSource: record.apiSource } : {},
|
|
69
70
|
...typeof record?.cliProvider === "string" && record.cliProvider ? { cliProvider: record.cliProvider } : {},
|
|
70
|
-
...typeof record?.nextAvailableAt === "number" && Number.isFinite(record.nextAvailableAt) ? { nextAvailableAt: record.nextAvailableAt } : {}
|
|
71
|
+
...typeof record?.nextAvailableAt === "number" && Number.isFinite(record.nextAvailableAt) ? { nextAvailableAt: record.nextAvailableAt } : {},
|
|
72
|
+
...record?.quota && typeof record.quota === "object" && Array.isArray(record.quota.windows) ? { quota: record.quota } : {}
|
|
71
73
|
};
|
|
72
74
|
}
|
|
73
|
-
function toSafeListedAgentSummary(agent, options) {
|
|
74
|
-
const summary = toSafeAgentSummary(agent, options);
|
|
75
|
-
if (agent.publicRecordExists === false) {
|
|
76
|
-
delete summary.publicKey;
|
|
77
|
-
}
|
|
78
|
-
return summary;
|
|
79
|
-
}
|
|
80
75
|
function sortListedAgents(agents) {
|
|
81
76
|
agents.sort((a, b) => {
|
|
82
77
|
const ta = a.updatedAt == null ? 0 : new Date(a.updatedAt).getTime();
|
|
@@ -97,6 +92,7 @@ function parseAgentListArgs(args) {
|
|
|
97
92
|
publicOnly: args.includes("--public-only"),
|
|
98
93
|
idsOnly: args.includes("--ids-only"),
|
|
99
94
|
scope: readArgValue(args, "--scope"),
|
|
95
|
+
query: readArgValue(args, "--query"),
|
|
100
96
|
showUnavailable: args.includes("--show-unavailable"),
|
|
101
97
|
// --safe 默认输出精简投影(与 server listAgents 一致,防大列表被截断);
|
|
102
98
|
// --verbose 拿回完整字段集排障。
|
|
@@ -110,7 +106,7 @@ async function listLocalCachedAgents(args) {
|
|
|
110
106
|
for (const prefix of [ownedPrefix, PUBLIC_AGENT_KEY_PREFIX]) {
|
|
111
107
|
for await (const [key, value] of args.db.iterator({ gte: prefix, lte: `${prefix}\uFFFF` })) {
|
|
112
108
|
if (typeof key !== "string" || !value || typeof value !== "object") continue;
|
|
113
|
-
if (
|
|
109
|
+
if (key.startsWith(ownedPrefix)) {
|
|
114
110
|
privateRecords.set(key, { ...value, dbKey: key });
|
|
115
111
|
continue;
|
|
116
112
|
}
|
|
@@ -237,14 +233,89 @@ async function decorateAgentsWithPublicStatusAcrossServers(args) {
|
|
|
237
233
|
return args.agents;
|
|
238
234
|
}
|
|
239
235
|
|
|
236
|
+
// packages/ai/agent/quotaSnapshot.ts
|
|
237
|
+
function findTightestQuotaWindow(quota, now = Date.now()) {
|
|
238
|
+
if (!quota || !Array.isArray(quota.windows) || quota.windows.length === 0) {
|
|
239
|
+
return void 0;
|
|
240
|
+
}
|
|
241
|
+
let best;
|
|
242
|
+
let bestScore = -Infinity;
|
|
243
|
+
for (const w of quota.windows) {
|
|
244
|
+
let score = 0;
|
|
245
|
+
if (typeof w.utilization === "number" && w.utilization >= 0) {
|
|
246
|
+
score = 500 + Math.min(w.utilization, 1) * 500;
|
|
247
|
+
} else if (typeof w.remaining === "number" && typeof w.limit === "number" && w.limit > 0) {
|
|
248
|
+
const util = Math.max(0, 1 - w.remaining / w.limit);
|
|
249
|
+
score = 500 + util * 500;
|
|
250
|
+
} else if (typeof w.resetAt === "number" && w.resetAt > now) {
|
|
251
|
+
score = 200;
|
|
252
|
+
} else if (typeof w.remaining === "number") {
|
|
253
|
+
score = 100;
|
|
254
|
+
}
|
|
255
|
+
if (score > bestScore) {
|
|
256
|
+
bestScore = score;
|
|
257
|
+
best = w;
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
return best ?? quota.windows[0];
|
|
261
|
+
}
|
|
262
|
+
function formatQuotaSummary(quota, now = Date.now(), options) {
|
|
263
|
+
const compact = options?.compact === true;
|
|
264
|
+
const planText = formatPlanLabel(quota?.plan);
|
|
265
|
+
const planName = typeof quota?.plan?.name === "string" ? quota.plan.name.trim() : "";
|
|
266
|
+
const tightest = findTightestQuotaWindow(quota, now);
|
|
267
|
+
if (!tightest) return compact ? planName || void 0 : planText;
|
|
268
|
+
const parts = [];
|
|
269
|
+
if (typeof tightest.utilization === "number") {
|
|
270
|
+
const pct = Math.round(tightest.utilization * 100);
|
|
271
|
+
parts.push(`${pct}%\u5DF2\u7528`);
|
|
272
|
+
} else if (typeof tightest.remaining === "number") {
|
|
273
|
+
if (typeof tightest.limit === "number") {
|
|
274
|
+
parts.push(`${tightest.remaining}/${tightest.limit}${tightest.unit ? ` ${tightest.unit}` : ""}`);
|
|
275
|
+
} else {
|
|
276
|
+
parts.push(`\u4F59${tightest.remaining}${tightest.unit ? ` ${tightest.unit}` : ""}`);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
if (compact) {
|
|
280
|
+
const head = parts.length > 0 ? parts[0] : void 0;
|
|
281
|
+
return [planName || void 0, head].filter(Boolean).join(" \xB7 ") || void 0;
|
|
282
|
+
}
|
|
283
|
+
if (tightest.scope && tightest.scope !== "user" && tightest.scope !== "project" && tightest.scope !== tightest.unit) {
|
|
284
|
+
parts.push(tightest.scope);
|
|
285
|
+
}
|
|
286
|
+
if (typeof tightest.resetAt === "number" && tightest.resetAt > now) {
|
|
287
|
+
const diffSec = Math.round((tightest.resetAt - now) / 1e3);
|
|
288
|
+
if (diffSec < 60) {
|
|
289
|
+
parts.push(`${diffSec}s\u540E\u91CD\u7F6E`);
|
|
290
|
+
} else if (diffSec < 3600) {
|
|
291
|
+
parts.push(`${Math.round(diffSec / 60)}m\u540E\u91CD\u7F6E`);
|
|
292
|
+
} else if (diffSec < 86400) {
|
|
293
|
+
const hours = (diffSec / 3600).toFixed(1).replace(/\.0$/, "");
|
|
294
|
+
parts.push(`${hours}h\u540E\u91CD\u7F6E`);
|
|
295
|
+
} else {
|
|
296
|
+
const days = (diffSec / 86400).toFixed(1).replace(/\.0$/, "");
|
|
297
|
+
parts.push(`${days}d\u540E\u91CD\u7F6E`);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
const onlyScope = parts.length === 0 || parts.length === 1 && parts[0] === tightest.scope;
|
|
301
|
+
if (onlyScope) return planText;
|
|
302
|
+
return [planText, ...parts].filter(Boolean).join(" \xB7 ");
|
|
303
|
+
}
|
|
304
|
+
function formatPlanLabel(plan) {
|
|
305
|
+
const name = typeof plan?.name === "string" ? plan.name.trim() : "";
|
|
306
|
+
if (!name) return void 0;
|
|
307
|
+
const credits = typeof plan?.monthlyCreditsUsd === "number" && Number.isFinite(plan.monthlyCreditsUsd) && plan.monthlyCreditsUsd > 0 ? `\u6708\u5EA6\u989D\u5EA6 $${plan.monthlyCreditsUsd}` : void 0;
|
|
308
|
+
return [`${name} \u5957\u9910`, credits].filter(Boolean).join(" \xB7 ");
|
|
309
|
+
}
|
|
310
|
+
|
|
240
311
|
export {
|
|
241
312
|
normalizeListedAgent,
|
|
242
|
-
toSafeListedAgentSummary,
|
|
243
313
|
parseAgentListArgs,
|
|
244
314
|
listLocalCachedAgents,
|
|
245
315
|
listRemotePublicAgents,
|
|
246
316
|
listRemoteAgents,
|
|
247
317
|
listRemoteAgentsAcrossServers,
|
|
248
318
|
listFavoriteAgentIdsAcrossServers,
|
|
249
|
-
decorateAgentsWithPublicStatusAcrossServers
|
|
319
|
+
decorateAgentsWithPublicStatusAcrossServers,
|
|
320
|
+
formatQuotaSummary
|
|
250
321
|
};
|
|
@@ -1,25 +1,62 @@
|
|
|
1
1
|
import {
|
|
2
2
|
normalizeTimingMs
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-7MMSLEPA.js";
|
|
4
4
|
import {
|
|
5
5
|
MODEL_LOOKUP_MAP
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-3BXNTXYI.js";
|
|
7
7
|
import {
|
|
8
8
|
ALL_MODELS
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-CYSYR67N.js";
|
|
10
|
+
import {
|
|
11
|
+
BUILTIN_NOLO_AGENT_KEY
|
|
12
|
+
} from "./chunk-BNGW5ASC.js";
|
|
10
13
|
import {
|
|
11
14
|
asTrimmedNonEmptyStringArray
|
|
12
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-3AH7LNUB.js";
|
|
13
16
|
import {
|
|
14
17
|
asOptionalFiniteNumber
|
|
15
18
|
} from "./chunk-WWC7I6TA.js";
|
|
16
|
-
import {
|
|
17
|
-
BUILTIN_NOLO_AGENT_KEY
|
|
18
|
-
} from "./chunk-BNGW5ASC.js";
|
|
19
19
|
import {
|
|
20
20
|
asOptionalTrimmedString
|
|
21
21
|
} from "./chunk-G3SUCT4W.js";
|
|
22
22
|
|
|
23
|
+
// packages/agent-runtime/autoExecutionProfiles.ts
|
|
24
|
+
var createProfile = (input) => ({
|
|
25
|
+
id: input.id,
|
|
26
|
+
tier: input.tier,
|
|
27
|
+
legacyAgentKey: input.legacyAgentKey,
|
|
28
|
+
key: input.legacyAgentKey,
|
|
29
|
+
name: input.name,
|
|
30
|
+
provider: "nolo",
|
|
31
|
+
model: input.model,
|
|
32
|
+
apiSource: "platform",
|
|
33
|
+
useServerProxy: true,
|
|
34
|
+
rawRecord: {
|
|
35
|
+
dbKey: input.legacyAgentKey,
|
|
36
|
+
isPublic: true,
|
|
37
|
+
provider: "nolo",
|
|
38
|
+
model: input.model,
|
|
39
|
+
apiSource: "platform",
|
|
40
|
+
useServerProxy: true
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
var FLASH_PROFILE = createProfile({
|
|
44
|
+
id: "builtin:auto:nolo",
|
|
45
|
+
tier: "flash",
|
|
46
|
+
legacyAgentKey: BUILTIN_NOLO_AGENT_KEY,
|
|
47
|
+
name: "nolo",
|
|
48
|
+
model: "deepseek-flash"
|
|
49
|
+
});
|
|
50
|
+
var AUTO_EXECUTION_PROFILES = {
|
|
51
|
+
flash: FLASH_PROFILE,
|
|
52
|
+
balanced: { ...FLASH_PROFILE, tier: "balanced" },
|
|
53
|
+
quality: { ...FLASH_PROFILE, tier: "quality" },
|
|
54
|
+
image: { ...FLASH_PROFILE, tier: "image" }
|
|
55
|
+
};
|
|
56
|
+
var DEFAULT_AUTO_EXECUTION_TIER = "flash";
|
|
57
|
+
var DEFAULT_AUTO_EXECUTION_PROFILE = AUTO_EXECUTION_PROFILES[DEFAULT_AUTO_EXECUTION_TIER];
|
|
58
|
+
var resolveAutoExecutionProfile = (tier) => AUTO_EXECUTION_PROFILES[tier ?? DEFAULT_AUTO_EXECUTION_TIER] ?? DEFAULT_AUTO_EXECUTION_PROFILE;
|
|
59
|
+
|
|
23
60
|
// packages/ai/token/cacheTokenFields.ts
|
|
24
61
|
var finiteTokenCount = (value) => {
|
|
25
62
|
if (typeof value !== "number" || !Number.isFinite(value)) return void 0;
|
|
@@ -60,6 +97,8 @@ var readCacheCreationInputTokens = (usage) => firstPositive(usage, [
|
|
|
60
97
|
var DEFAULT_CONTEXT_WINDOW = 256e3;
|
|
61
98
|
var QWEN_3_6_CONTEXT_WINDOW = 262144;
|
|
62
99
|
var GLM_5_2_CONTEXT_WINDOW = 1e6;
|
|
100
|
+
var GPT_6_1_SOL_CONTEXT_WINDOW = 5e5;
|
|
101
|
+
var GPT_6_1_SOL_PATTERN = /(^|\/)gpt-6\.1[- ]sol(?![a-z])/;
|
|
63
102
|
var ANTIGRAVITY_EFFORT_SUFFIXES = [
|
|
64
103
|
"-tiered",
|
|
65
104
|
"-extra-low",
|
|
@@ -126,6 +165,7 @@ function fuzzyContextWindow(normalizedName) {
|
|
|
126
165
|
if (normalizedName.includes("glm-5.3") || normalizedName.includes("glm5.3")) return 105e4;
|
|
127
166
|
if (normalizedName.includes("glm-5.2") || normalizedName.includes("glm5.2")) return GLM_5_2_CONTEXT_WINDOW;
|
|
128
167
|
if (normalizedName.includes("deepseek")) return 1e6;
|
|
168
|
+
if (GPT_6_1_SOL_PATTERN.test(normalizedName)) return GPT_6_1_SOL_CONTEXT_WINDOW;
|
|
129
169
|
if (normalizedName.includes("gpt-5") || normalizedName.includes("gpt-4.1")) return 1047576;
|
|
130
170
|
if (normalizedName.startsWith("cursor-grok-4.5")) return 1e6;
|
|
131
171
|
if (normalizedName.includes("claude-4.6")) return 1e6;
|
|
@@ -134,6 +174,22 @@ function fuzzyContextWindow(normalizedName) {
|
|
|
134
174
|
if (normalizedName.includes("qwen3.6") || normalizedName.includes("qwen3p6")) return QWEN_3_6_CONTEXT_WINDOW;
|
|
135
175
|
if (normalizedName.includes("qwen3.7") || normalizedName.includes("qwen3p7")) return 262144;
|
|
136
176
|
if (normalizedName.includes("minimax-m2") || normalizedName.includes("minimax_m2")) return 262144;
|
|
177
|
+
const bareModelName = (normalizedName.includes("/") ? normalizedName.slice(normalizedName.lastIndexOf("/") + 1) : normalizedName).replace(/:.*$/, "");
|
|
178
|
+
if (normalizedName.includes("mistral-large-4")) {
|
|
179
|
+
const rest = normalizedName.slice(
|
|
180
|
+
normalizedName.indexOf("mistral-large-4") + "mistral-large-4".length
|
|
181
|
+
);
|
|
182
|
+
if (rest === "" || /^[-:_@/\s]/.test(rest)) return 524288;
|
|
183
|
+
}
|
|
184
|
+
if (normalizedName.includes("mistral-vibe-cli") || normalizedName.includes("mistral-medium-3.5") || normalizedName.includes("mistral-medium-3-5") || normalizedName.includes("mistral-medium-latest") || normalizedName.includes("mistral-medium-2604") || normalizedName.includes("mistral-large-latest") || normalizedName.includes("mistral-large-2512") || normalizedName.includes("mistral-small-latest") || normalizedName.includes("mistral-small-2603") || normalizedName.includes("magistral-medium-latest") || normalizedName.includes("magistral-small-latest") || // 展示名(TUI 传 displayName 的路径;Mistral 不在 MODEL_LOOKUP_MAP,无法走精确表):
|
|
185
|
+
normalizedName.includes("mistral vibe cli") || normalizedName.includes("mistral medium 3.5") || normalizedName.includes("mistral large (latest)")) {
|
|
186
|
+
return 262144;
|
|
187
|
+
}
|
|
188
|
+
if (bareModelName === "mistral-medium" || bareModelName === "mistral-medium-3") return 262144;
|
|
189
|
+
if (normalizedName.includes("mistral-embed") || normalizedName.includes("codestral-embed")) return 8192;
|
|
190
|
+
if (normalizedName.includes("mistral-ocr")) return 16384;
|
|
191
|
+
if (normalizedName.includes("mistral-moderation")) return 131072;
|
|
192
|
+
if (normalizedName.includes("codestral") || normalizedName.includes("mistral-code")) return 256e3;
|
|
137
193
|
if (normalizedName.includes("claude")) return 2e5;
|
|
138
194
|
if (normalizedName.includes("llama3.1") || normalizedName.includes("llama-3.1") || normalizedName.includes("llama3.2") || normalizedName.includes("llama-3.2") || normalizedName.includes("llama3.3") || normalizedName.includes("llama-3.3") || normalizedName.includes("qwen2.5") || normalizedName.includes("qwen-2.5") || normalizedName.includes("mistral-nemo") || normalizedName.includes("phi3.5") || normalizedName.includes("phi-3.5") || normalizedName.includes("phi4") || normalizedName.includes("phi-4")) {
|
|
139
195
|
return 131072;
|
|
@@ -279,7 +335,7 @@ var normalizeUsage = (usage) => {
|
|
|
279
335
|
// packages/agent-runtime/emptyAssistantRepair.ts
|
|
280
336
|
var EMPTY_ASSISTANT_REPAIR_PROMPT = "\u8BF7\u7ED9\u51FA\u660E\u786E\u7684\u6587\u5B57\u56DE\u7B54\u6216\u6267\u884C\u4E0B\u4E00\u6B65\uFF1A\u5982\u679C\u4EFB\u52A1\u5DF2\u5B8C\u6210\uFF0C\u8BF7\u76F4\u63A5\u603B\u7ED3\u7ED3\u679C\uFF1B\u5982\u679C\u9700\u8981\u8C03\u7528\u5DE5\u5177\uFF0C\u53EA\u80FD\u8C03\u7528\u672C\u6B21\u8BF7\u6C42\u4E2D\u5DF2\u58F0\u660E\u7684\u5DE5\u5177\u2014\u2014\u4F60\u60F3\u7528\u7684\u5DE5\u5177\u4E0D\u5728\u58F0\u660E\u5217\u8868\u4E2D\u65F6\uFF0C\u4E0D\u8981\u5C1D\u8BD5\u8C03\u7528\u5B83\uFF0C\u76F4\u63A5\u7528\u6587\u5B57\u8BF4\u660E\u8BE5\u80FD\u529B\u5F53\u524D\u4E0D\u53EF\u7528\u3002\u8BF7\u5207\u52FF\u8FD4\u56DE\u7A7A\u5185\u5BB9\u3002";
|
|
281
337
|
var EMPTY_ASSISTANT_FALLBACK_MESSAGE = "\u6A21\u578B\u8FDE\u7EED\u8FD4\u56DE\u7A7A\u6D88\u606F\uFF0C\u5F53\u524D\u4EFB\u52A1\u672A\u5B8C\u6210\u3002\u8BF7\u91CD\u8BD5\u5F53\u524D\u6B65\u9AA4\uFF0C\u6216\u7ED9\u51FA\u66F4\u5177\u4F53\u7684\u4FEE\u6539\u8303\u56F4\u3002";
|
|
282
|
-
var LENGTH_TRUNCATED_FALLBACK_MESSAGE = "\u8F93\u51FA\u8FBE\u5230\u957F\u5EA6\u4E0A\u9650\u88AB\u622A\u65AD\uFF0C\u5EFA\u8BAE\u7F29\u77ED\u4EFB\u52A1\u6216\u63D0\u9AD8\u8F93\u51FA\u4E0A\u9650\u3002";
|
|
338
|
+
var LENGTH_TRUNCATED_FALLBACK_MESSAGE = "\u8F93\u51FA\u8FBE\u5230\u957F\u5EA6\u4E0A\u9650\u88AB\u622A\u65AD\uFF0C\u6216\u4E0A\u4E0B\u6587\u5DF2\u8D85\u51FA\u6A21\u578B\u7A97\u53E3\u3002\u5EFA\u8BAE\u7F29\u77ED\u4EFB\u52A1\u3001\u538B\u7F29\u6216\u65B0\u5F00\u5BF9\u8BDD\uFF0C\u6216\u63D0\u9AD8\u8F93\u51FA\u4E0A\u9650\u3002";
|
|
283
339
|
var STREAM_TRUNCATED_FALLBACK_MESSAGE = "\u4E0A\u6E38\u54CD\u5E94\u6D41\u5728\u6536\u5C3E\u524D\u88AB\u4E2D\u65AD\uFF08\u672A\u6536\u5230\u7ED3\u675F\u6807\u8BB0\uFF09\uFF0C\u672C\u8F6E\u8F93\u51FA\u4E0D\u5B8C\u6574\u3002\u8BF7\u91CD\u8BD5\u5F53\u524D\u6B65\u9AA4\u3002";
|
|
284
340
|
var REPETITION_LOOP_FALLBACK_MESSAGE = "\u68C0\u6D4B\u5230\u6A21\u578B\u9677\u5165\u91CD\u590D\u8F93\u51FA\u6B7B\u5FAA\u73AF\uFF0C\u5DF2\u81EA\u52A8\u7194\u65AD\u7EC8\u6B62\u5F53\u524D\u4EFB\u52A1\u3002";
|
|
285
341
|
var STAGNANT_TOOL_CALLS_FALLBACK_MESSAGE = "\u68C0\u6D4B\u5230\u8FDE\u7EED\u591A\u6B21\u76F8\u540C\u5DE5\u5177\u8C03\u7528\u4E14\u65E0\u5B9E\u8D28\u8FDB\u5C55\uFF0C\u5DF2\u81EA\u52A8\u7194\u65AD\u7EC8\u6B62\u5F53\u524D\u4EFB\u52A1\u3002";
|
|
@@ -346,44 +402,9 @@ function resolveTruncatedReasoningTailLog(reason, reasoning_content) {
|
|
|
346
402
|
return null;
|
|
347
403
|
}
|
|
348
404
|
|
|
349
|
-
// packages/agent-runtime/autoExecutionProfiles.ts
|
|
350
|
-
var createProfile = (input) => ({
|
|
351
|
-
id: input.id,
|
|
352
|
-
tier: input.tier,
|
|
353
|
-
legacyAgentKey: input.legacyAgentKey,
|
|
354
|
-
key: input.legacyAgentKey,
|
|
355
|
-
name: input.name,
|
|
356
|
-
provider: "nolo",
|
|
357
|
-
model: input.model,
|
|
358
|
-
apiSource: "platform",
|
|
359
|
-
useServerProxy: true,
|
|
360
|
-
rawRecord: {
|
|
361
|
-
dbKey: input.legacyAgentKey,
|
|
362
|
-
isPublic: true,
|
|
363
|
-
provider: "nolo",
|
|
364
|
-
model: input.model,
|
|
365
|
-
apiSource: "platform",
|
|
366
|
-
useServerProxy: true
|
|
367
|
-
}
|
|
368
|
-
});
|
|
369
|
-
var FLASH_PROFILE = createProfile({
|
|
370
|
-
id: "builtin:auto:nolo",
|
|
371
|
-
tier: "flash",
|
|
372
|
-
legacyAgentKey: BUILTIN_NOLO_AGENT_KEY,
|
|
373
|
-
name: "nolo",
|
|
374
|
-
model: "deepseek-flash"
|
|
375
|
-
});
|
|
376
|
-
var AUTO_EXECUTION_PROFILES = {
|
|
377
|
-
flash: FLASH_PROFILE,
|
|
378
|
-
balanced: { ...FLASH_PROFILE, tier: "balanced" },
|
|
379
|
-
quality: { ...FLASH_PROFILE, tier: "quality" },
|
|
380
|
-
image: { ...FLASH_PROFILE, tier: "image" }
|
|
381
|
-
};
|
|
382
|
-
var DEFAULT_AUTO_EXECUTION_TIER = "flash";
|
|
383
|
-
var DEFAULT_AUTO_EXECUTION_PROFILE = AUTO_EXECUTION_PROFILES[DEFAULT_AUTO_EXECUTION_TIER];
|
|
384
|
-
var resolveAutoExecutionProfile = (tier) => AUTO_EXECUTION_PROFILES[tier ?? DEFAULT_AUTO_EXECUTION_TIER] ?? DEFAULT_AUTO_EXECUTION_PROFILE;
|
|
385
|
-
|
|
386
405
|
export {
|
|
406
|
+
DEFAULT_AUTO_EXECUTION_PROFILE,
|
|
407
|
+
resolveAutoExecutionProfile,
|
|
387
408
|
readCacheReadInputTokens,
|
|
388
409
|
readCacheCreationInputTokens,
|
|
389
410
|
DEFAULT_CONTEXT_WINDOW,
|
|
@@ -399,7 +420,5 @@ export {
|
|
|
399
420
|
resolveEmptyAssistantOutcome,
|
|
400
421
|
resolveEmptyAssistantFallbackMessage,
|
|
401
422
|
hasAssistantVisibleOutput,
|
|
402
|
-
resolveTruncatedReasoningTailLog
|
|
403
|
-
DEFAULT_AUTO_EXECUTION_PROFILE,
|
|
404
|
-
resolveAutoExecutionProfile
|
|
423
|
+
resolveTruncatedReasoningTailLog
|
|
405
424
|
};
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
|
|
5
5
|
// packages/cli/agentCommandSupport.ts
|
|
6
6
|
async function getDefaultCliDb() {
|
|
7
|
-
const { getDefaultCliLocalRuntimeDb } = await import("./localRuntimeDb-
|
|
7
|
+
const { getDefaultCliLocalRuntimeDb } = await import("./localRuntimeDb-VKWVOPPI.js");
|
|
8
8
|
return getDefaultCliLocalRuntimeDb();
|
|
9
9
|
}
|
|
10
10
|
function createNullCliDb() {
|
|
@@ -96,6 +96,10 @@ function preserveAgentStateFields(source, target, options) {
|
|
|
96
96
|
}
|
|
97
97
|
if (Array.isArray(source.tool_calls)) {
|
|
98
98
|
mutableTarget.tool_calls = source.tool_calls;
|
|
99
|
+
const replayPlaceholder = options?.replayReasoningPlaceholder;
|
|
100
|
+
if (typeof replayPlaceholder === "string" && replayPlaceholder.length > 0 && !options?.stripReasoningContent && source.tool_calls.length > 0 && !(typeof mutableTarget.reasoning_content === "string" && mutableTarget.reasoning_content.length > 0)) {
|
|
101
|
+
mutableTarget.reasoning_content = replayPlaceholder;
|
|
102
|
+
}
|
|
99
103
|
}
|
|
100
104
|
}
|
|
101
105
|
if (source.role === "tool") {
|
|
@@ -121,6 +125,12 @@ function shouldStripReasoningContentForOutbound(provider, model) {
|
|
|
121
125
|
}
|
|
122
126
|
return false;
|
|
123
127
|
}
|
|
128
|
+
function shouldReplayReasoningContentForOutbound(provider, model) {
|
|
129
|
+
const p = provider?.trim().toLowerCase();
|
|
130
|
+
const m = model?.trim().toLowerCase();
|
|
131
|
+
if (!p || !m) return false;
|
|
132
|
+
return p === "opencode-go" && m.includes("deepseek");
|
|
133
|
+
}
|
|
124
134
|
|
|
125
135
|
// packages/integrations/openai/responsesHelpers.ts
|
|
126
136
|
var RESPONSES_TOP_LEVEL_SCHEMA_KEYS = ["anyOf", "oneOf", "allOf", "enum", "not"];
|
|
@@ -383,6 +393,7 @@ export {
|
|
|
383
393
|
preserveAgentStateFields,
|
|
384
394
|
toOpenAiCompatibleMessages,
|
|
385
395
|
shouldStripReasoningContentForOutbound,
|
|
396
|
+
shouldReplayReasoningContentForOutbound,
|
|
386
397
|
toResponsesTools,
|
|
387
398
|
convertMessagesToResponsesInput,
|
|
388
399
|
extractTextFromResponseOutput,
|
|
@@ -37,7 +37,7 @@ function resolveCliAuthorityBrokerPort(options = {}) {
|
|
|
37
37
|
...options,
|
|
38
38
|
env: options.env ?? {}
|
|
39
39
|
});
|
|
40
|
-
return
|
|
40
|
+
return 24e3 + hashString(noloHome) % 2e3;
|
|
41
41
|
}
|
|
42
42
|
function resolveCliAuthorityStoreDriver(options = {}) {
|
|
43
43
|
return readCliAuthorityDriver(options.env ?? {}).driver;
|
|
@@ -7,18 +7,15 @@ import {
|
|
|
7
7
|
listUserRecordsFromServers,
|
|
8
8
|
readDbRecordFromServers,
|
|
9
9
|
readLiveDbRecordAfterTombstoneMerge
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-SEA64CDY.js";
|
|
11
11
|
import {
|
|
12
|
-
fetchWithTransientRetry
|
|
13
|
-
|
|
12
|
+
fetchWithTransientRetry,
|
|
13
|
+
parsePositiveFiniteNumberOrFallback
|
|
14
|
+
} from "./chunk-AOTBKDRK.js";
|
|
14
15
|
import {
|
|
15
16
|
DRAIN_EXHAUSTED_USER_MESSAGE,
|
|
16
17
|
isDrainExhaustedResponse
|
|
17
18
|
} from "./chunk-3L2WKC3W.js";
|
|
18
|
-
import {
|
|
19
|
-
buildDialogAttachmentPlan,
|
|
20
|
-
extractFileContentIds
|
|
21
|
-
} from "./chunk-3BMYXEUW.js";
|
|
22
19
|
import {
|
|
23
20
|
isLevelLockError
|
|
24
21
|
} from "./chunk-URMS4XY2.js";
|
|
@@ -26,11 +23,18 @@ import {
|
|
|
26
23
|
resolveLocalDialogDbCandidates,
|
|
27
24
|
resolveServerDbPath
|
|
28
25
|
} from "./chunk-GLKOYSRU.js";
|
|
26
|
+
import {
|
|
27
|
+
buildDialogAttachmentPlan,
|
|
28
|
+
extractFileContentIds
|
|
29
|
+
} from "./chunk-6O4IK4V2.js";
|
|
29
30
|
import {
|
|
30
31
|
boundSummaryText,
|
|
31
32
|
buildDialogReadEnvelope,
|
|
32
33
|
projectDialogReadForAgent
|
|
33
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-4YSOUKUR.js";
|
|
35
|
+
import {
|
|
36
|
+
asRecordOrEmpty
|
|
37
|
+
} from "./chunk-KX6YBIHG.js";
|
|
34
38
|
import {
|
|
35
39
|
toErrorMessage
|
|
36
40
|
} from "./chunk-HNMXYYJR.js";
|
|
@@ -43,24 +47,18 @@ import {
|
|
|
43
47
|
resolveServerUrl
|
|
44
48
|
} from "./chunk-A7GB5UGH.js";
|
|
45
49
|
import {
|
|
46
|
-
|
|
47
|
-
} from "./chunk-
|
|
48
|
-
import {
|
|
49
|
-
asRecordOrEmpty
|
|
50
|
-
} from "./chunk-KX6YBIHG.js";
|
|
50
|
+
isRecord
|
|
51
|
+
} from "./chunk-KUG52IAP.js";
|
|
51
52
|
import {
|
|
52
53
|
asNonEmptyStringArray,
|
|
53
54
|
asTrimmedNonEmptyStringArray
|
|
54
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-3AH7LNUB.js";
|
|
55
56
|
import {
|
|
56
57
|
createClientLogger
|
|
57
|
-
} from "./chunk-
|
|
58
|
+
} from "./chunk-HIM3FCLF.js";
|
|
58
59
|
import {
|
|
59
60
|
isLevelNotFoundError
|
|
60
61
|
} from "./chunk-OW765XBU.js";
|
|
61
|
-
import {
|
|
62
|
-
isRecord
|
|
63
|
-
} from "./chunk-KUG52IAP.js";
|
|
64
62
|
import {
|
|
65
63
|
asTrimmedString
|
|
66
64
|
} from "./chunk-3EUW3WEO.js";
|
|
@@ -725,7 +723,7 @@ function isExplicitDialogIdMismatch(meta, dialogId) {
|
|
|
725
723
|
return meta && typeof meta === "object" && "id" in meta && meta.id != null && String(meta.id) !== dialogId;
|
|
726
724
|
}
|
|
727
725
|
async function readDialogFromLocalDb(dialogKey, dialogId, limit, readLocalDialog) {
|
|
728
|
-
const reader = readLocalDialog ?? (await import("./localDialogRead-
|
|
726
|
+
const reader = readLocalDialog ?? (await import("./localDialogRead-ZHZ3KXDM.js")).readDialogFromLocalDb;
|
|
729
727
|
const result = await reader({ dialogKey, dialogId, limit });
|
|
730
728
|
return {
|
|
731
729
|
...result,
|
|
@@ -742,7 +740,7 @@ async function readLocalDialogAtDbPathDefault(args) {
|
|
|
742
740
|
const [{ Level }, { safeJsonEncoding }, { fetchMessages }] = await Promise.all([
|
|
743
741
|
import("./levelLazyShim-GZBKODGI.js"),
|
|
744
742
|
import("./serverStoreFactory-YMXDF4NI.js"),
|
|
745
|
-
import("./fetchMessages-
|
|
743
|
+
import("./fetchMessages-I5ICDDHM.js")
|
|
746
744
|
]);
|
|
747
745
|
const db = new Level(args.dbPath, {
|
|
748
746
|
valueEncoding: safeJsonEncoding,
|