nolo-cli 0.8.0-alpha.23 → 0.8.0-alpha.24
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/{_executeModel-YXTTYRXS.js → _executeModel-2ZAPHFOX.js} +19 -17
- package/{agentDeleteCommand-4NO7Y6UI.js → agentDeleteCommand-5TFSII4Z.js} +11 -11
- package/{agentEmailCommands-NPP5TGZV.js → agentEmailCommands-XMXWGUMZ.js} +22 -20
- package/{agentListCommands-IP5BNB5W.js → agentListCommands-OWEFQEY4.js} +99 -15
- package/{agentMachineCommands-24NFTIKY.js → agentMachineCommands-DGHYBBFC.js} +11 -11
- package/{agentRecordCommands-7AWSR46F.js → agentRecordCommands-I433EE5F.js} +22 -20
- package/{agentRunCommand-P46WCJ6P.js → agentRunCommand-UQSX3IGW.js} +22 -20
- package/{agentRuntimeLocal-V5UV7S4R.js → agentRuntimeLocal-73SVOC5U.js} +8 -8
- package/{agentSlice-3CVAZZOP.js → agentSlice-JQCS4LR3.js} +1 -1
- package/{chunk-AWY2AFHN.js → chunk-3HPUUWOR.js} +50 -4
- package/{chunk-6UUD2WES.js → chunk-3KGTFX3T.js} +2 -13
- package/{chunk-RBCNBU2A.js → chunk-524BDL33.js} +1 -0
- package/chunk-6QFNUK2G.js +144 -0
- package/{chunk-RBB43B5W.js → chunk-AISLHYDB.js} +3 -3
- package/{chunk-BB2PII22.js → chunk-BKGNXJAM.js} +1 -1
- package/{chunk-P7GAHW32.js → chunk-BQECZ3Q4.js} +9 -9
- package/{chunk-A4MYG3TR.js → chunk-BT57QC5K.js} +2 -2
- package/{chunk-LBUTKV7S.js → chunk-C4DZRHFJ.js} +7 -7
- package/{chunk-Q2WC4KGQ.js → chunk-DS3VC4EA.js} +2 -2
- package/{chunk-ZJS64PZJ.js → chunk-FVVST32H.js} +1 -1
- package/{chunk-6OHYC4BY.js → chunk-FZ2G3I4B.js} +2 -1
- package/{chunk-6KRA6AWI.js → chunk-G7KM6BBZ.js} +1 -1
- package/{chunk-ZAUDEKML.js → chunk-GROGNZOA.js} +21 -12
- package/{chunk-RBCENBG7.js → chunk-IOQIOZNI.js} +8 -2
- package/{chunk-PTT6KSYQ.js → chunk-IPA2WQGY.js} +83 -30
- package/{chunk-DSNLHTP3.js → chunk-IYMGQ3TN.js} +9 -2
- package/{chunk-WESWWEVA.js → chunk-L76QNLGU.js} +1 -1
- package/{chunk-LJCH34R2.js → chunk-LE6JAIXE.js} +2 -2
- package/{chunk-5NYGMN4O.js → chunk-LRKEOCWY.js} +3 -3
- package/{chunk-KLOCUWKZ.js → chunk-OCDEWRE2.js} +1 -1
- package/{chunk-RYMUT5JO.js → chunk-P2SPC3FT.js} +12 -8
- package/{chunk-4VA3UQRF.js → chunk-Q7S2ORXX.js} +3 -3
- package/{chunk-D55DXHXL.js → chunk-QWM7YWVT.js} +1 -1
- package/{chunk-AOKWJZ5N.js → chunk-S3UTETIC.js} +3 -2
- package/{chunk-EUN3SYY7.js → chunk-SBVUZC2E.js} +1 -1
- package/{chunk-O7VS7JLJ.js → chunk-VUEXKW6U.js} +1 -1
- package/{chunk-MIQOUMSN.js → chunk-WKQGZJVI.js} +1 -1
- package/{chunk-LFFATN2M.js → chunk-WM7P5OWZ.js} +18 -12
- package/{chunk-LW6FJFCT.js → chunk-WTBWWBSF.js} +122 -28
- package/{chunk-HAC6GPRE.js → chunk-WVS3GX3B.js} +2 -2
- package/chunk-Z3NEXVYE.js +33 -0
- package/{createAgentAutomationAction-DYQOGAVE.js → createAgentAutomationAction-GXZNLJZK.js} +6 -5
- package/{createDialogAction-ETB3KQQE.js → createDialogAction-KLW42ZGF.js} +7 -6
- package/{createPageAction-UF2RHA63.js → createPageAction-IBJHE6MH.js} +6 -5
- package/{dialogCommands-LYYC7XHF.js → dialogCommands-7O5PUZRU.js} +12 -12
- package/{dialogSlice-IFBZ4IT2.js → dialogSlice-GGV7PF53.js} +6 -5
- package/{docCreateCommands-I66OI374.js → docCreateCommands-7ZO2NQQF.js} +11 -11
- package/{docDeleteCommands-OVRBCHMF.js → docDeleteCommands-YKIXZYBR.js} +12 -12
- package/{docReadCommands-YLWUMEH7.js → docReadCommands-5UDONBUL.js} +11 -11
- package/{docStore-65WO7U36.js → docStore-VDWTATFH.js} +7 -6
- package/{docUpdateCommands-NSICS4IN.js → docUpdateCommands-EPZIIQMY.js} +11 -11
- package/{getPricing-7PUT44ZS.js → getPricing-6TOZXPAU.js} +3 -3
- package/{handleSendMessageAction-T76HEDOP.js → handleSendMessageAction-MMATC5V5.js} +6 -5
- package/index.js +36 -36
- package/{machineCommands-4HQY6UVZ.js → machineCommands-PTHPKSIZ.js} +21 -19
- package/{machineWsRunDispatch-7YW2M4FS.js → machineWsRunDispatch-M5L2NVWJ.js} +21 -19
- package/{models-MFXNI3TF.js → models-H524GH3U.js} +3 -2
- package/package.json +1 -1
- package/{readlineWorkspace-FLQWOAUR.js → readlineWorkspace-4NXMEOHP.js} +106 -48
- package/{runAgentClientLoop-IUV2TR3X.js → runAgentClientLoop-FGUYNGSA.js} +16 -14
- package/{spaceCommands-BDDAT4VU.js → spaceCommands-S3EB6TOS.js} +11 -11
- package/{spaceSlice-HH633ZA4.js → spaceSlice-RG2GSV7K.js} +6 -5
- package/{streamAgentChatTurn-UBZOVFKV.js → streamAgentChatTurn-X576C23M.js} +131 -31
- package/{tools-OQZ34KCU.js → tools-HURZ2N4O.js} +11 -9
- package/{tuiSummaryLlmCaller-42AEL3LL.js → tuiSummaryLlmCaller-DG2LBTBX.js} +4 -4
- package/{updateDialogTitleAction-A3OOMSDO.js → updateDialogTitleAction-62LVIAUZ.js} +6 -5
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
resolveOpenAiCompatibleProviderConfig,
|
|
19
19
|
shouldCacheHybridRemoteRecord,
|
|
20
20
|
shouldFetchAgentRuntimeRecordRemotely
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-C4DZRHFJ.js";
|
|
22
22
|
import {
|
|
23
23
|
buildPlatformChatCompletionRequest,
|
|
24
24
|
canUsePlatformChatProvider,
|
|
@@ -27,24 +27,24 @@ import {
|
|
|
27
27
|
parsePlatformChatCompletionResponse,
|
|
28
28
|
resolvePlatformChatProviderConfig,
|
|
29
29
|
shouldUsePlatformChatProvider
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-3KGTFX3T.js";
|
|
31
31
|
import "./chunk-ZNFJWEN4.js";
|
|
32
32
|
import {
|
|
33
33
|
resolveAgentRuntimeConfigFromRecord
|
|
34
34
|
} from "./chunk-YOCHZD7D.js";
|
|
35
35
|
import {
|
|
36
36
|
runLocalAgentTurn
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-AISLHYDB.js";
|
|
38
38
|
import "./chunk-OPZYGHUC.js";
|
|
39
|
-
import "./chunk-
|
|
39
|
+
import "./chunk-G7KM6BBZ.js";
|
|
40
40
|
import {
|
|
41
41
|
pickAgentRuntimeInferenceOptions
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-3HPUUWOR.js";
|
|
43
43
|
import {
|
|
44
44
|
resolveRuntimeToolSurfaceForAgent
|
|
45
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-FZ2G3I4B.js";
|
|
46
46
|
import "./chunk-5MMAK75Q.js";
|
|
47
|
-
import "./chunk-
|
|
47
|
+
import "./chunk-S3UTETIC.js";
|
|
48
48
|
import {
|
|
49
49
|
resolveCurrentRunRuntimeToolPolicy,
|
|
50
50
|
resolveLocalRuntimeEnvFromPolicy,
|
|
@@ -54,7 +54,7 @@ import {
|
|
|
54
54
|
import "./chunk-JZPBVBIY.js";
|
|
55
55
|
import "./chunk-BYXBJQAS.js";
|
|
56
56
|
import "./chunk-KX6YBIHG.js";
|
|
57
|
-
import "./chunk-
|
|
57
|
+
import "./chunk-524BDL33.js";
|
|
58
58
|
import "./chunk-O4BU24WZ.js";
|
|
59
59
|
import "./chunk-I42VC5KR.js";
|
|
60
60
|
import "./chunk-WWC7I6TA.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getModelConfig
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-S3UTETIC.js";
|
|
4
4
|
import {
|
|
5
5
|
asTrimmedLowercaseString
|
|
6
6
|
} from "./chunk-QSJ3HFEF.js";
|
|
@@ -29,8 +29,35 @@ function pickAgentRuntimeInferenceOptions(agentConfig) {
|
|
|
29
29
|
};
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
+
// packages/agent-runtime/openAiCompatibleMessages.ts
|
|
33
|
+
function preserveAgentStateFields(source, target) {
|
|
34
|
+
const mutableTarget = target;
|
|
35
|
+
if (source.role === "assistant") {
|
|
36
|
+
if (typeof source.reasoning_content === "string") {
|
|
37
|
+
mutableTarget.reasoning_content = source.reasoning_content;
|
|
38
|
+
}
|
|
39
|
+
if (Array.isArray(source.tool_calls)) {
|
|
40
|
+
mutableTarget.tool_calls = source.tool_calls;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
if (source.role === "tool") {
|
|
44
|
+
const toolCallId = typeof source.tool_call_id === "string" ? source.tool_call_id.trim() : typeof source.toolCallId === "string" ? source.toolCallId.trim() : "";
|
|
45
|
+
if (toolCallId) mutableTarget.tool_call_id = toolCallId;
|
|
46
|
+
}
|
|
47
|
+
return target;
|
|
48
|
+
}
|
|
49
|
+
function toOpenAiCompatibleMessages(messages) {
|
|
50
|
+
return messages.map(
|
|
51
|
+
(message) => preserveAgentStateFields(message, {
|
|
52
|
+
role: message.role,
|
|
53
|
+
content: message.content ?? ""
|
|
54
|
+
})
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
|
|
32
58
|
// packages/agent-runtime/platformProviderEndpoints.ts
|
|
33
59
|
var OPENAI_RESPONSES_ENDPOINT = "https://api.openai.com/v1/responses";
|
|
60
|
+
var DEEPSEEK_RESPONSES_ENDPOINT = "https://api.deepseek.com/v1/responses";
|
|
34
61
|
var PLATFORM_CHAT_COMPLETIONS_ENDPOINTS = {
|
|
35
62
|
deepinfra: "https://api.deepinfra.com/v1/openai/chat/completions",
|
|
36
63
|
deepseek: "https://api.deepseek.com/chat/completions",
|
|
@@ -47,7 +74,11 @@ var PLATFORM_CHAT_COMPLETIONS_ENDPOINTS = {
|
|
|
47
74
|
nolo: "https://ollama.com/v1/chat/completions"
|
|
48
75
|
};
|
|
49
76
|
function isOpenAiResponsesModel(args) {
|
|
50
|
-
|
|
77
|
+
const provider = asTrimmedLowercaseString(args.provider);
|
|
78
|
+
if (provider === "deepseek") {
|
|
79
|
+
return asTrimmedLowercaseString(args.model) === "deepseek-v4-flash";
|
|
80
|
+
}
|
|
81
|
+
if (provider !== "openai") return false;
|
|
51
82
|
if (args.endpointKey === "responses") return true;
|
|
52
83
|
if (!args.model) return false;
|
|
53
84
|
try {
|
|
@@ -56,6 +87,16 @@ function isOpenAiResponsesModel(args) {
|
|
|
56
87
|
return false;
|
|
57
88
|
}
|
|
58
89
|
}
|
|
90
|
+
function resolvePlatformResponsesEndpoint(provider) {
|
|
91
|
+
switch (asTrimmedLowercaseString(provider)) {
|
|
92
|
+
case "openai":
|
|
93
|
+
return OPENAI_RESPONSES_ENDPOINT;
|
|
94
|
+
case "deepseek":
|
|
95
|
+
return DEEPSEEK_RESPONSES_ENDPOINT;
|
|
96
|
+
default:
|
|
97
|
+
return void 0;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
59
100
|
var PLATFORM_PROVIDER_ENDPOINT_ALIASES = {
|
|
60
101
|
"ollama-cloud": "nolo"
|
|
61
102
|
};
|
|
@@ -81,7 +122,7 @@ function resolvePlatformProviderEndpoint(agentConfig) {
|
|
|
81
122
|
model: agentConfig.model,
|
|
82
123
|
endpointKey: agentConfig.endpointKey
|
|
83
124
|
})) {
|
|
84
|
-
return
|
|
125
|
+
return resolvePlatformResponsesEndpoint(provider) ?? "";
|
|
85
126
|
}
|
|
86
127
|
const endpoint = resolvePlatformChatCompletionsEndpoint(provider);
|
|
87
128
|
if (!endpoint) {
|
|
@@ -411,6 +452,9 @@ var convertMessagesToResponsesInput = (messages) => {
|
|
|
411
452
|
continue;
|
|
412
453
|
}
|
|
413
454
|
const role = message.role;
|
|
455
|
+
if (role === "assistant" && typeof message.reasoning_content === "string" && message.reasoning_content) {
|
|
456
|
+
input.push({ type: "reasoning", content: message.reasoning_content });
|
|
457
|
+
}
|
|
414
458
|
const contentParts = normalizeMessageParts(message.content, role);
|
|
415
459
|
if (contentParts.length > 0) {
|
|
416
460
|
input.push({
|
|
@@ -521,8 +565,10 @@ var extractToolCallsFromResponseOutput = (response) => {
|
|
|
521
565
|
|
|
522
566
|
export {
|
|
523
567
|
pickAgentRuntimeInferenceOptions,
|
|
524
|
-
|
|
568
|
+
preserveAgentStateFields,
|
|
569
|
+
toOpenAiCompatibleMessages,
|
|
525
570
|
isOpenAiResponsesModel,
|
|
571
|
+
resolvePlatformResponsesEndpoint,
|
|
526
572
|
resolvePlatformChatCompletionsEndpoint,
|
|
527
573
|
trimTrailingSlash,
|
|
528
574
|
resolvePlatformServerUrl,
|
|
@@ -14,19 +14,9 @@ import {
|
|
|
14
14
|
resolvePlatformAuthToken,
|
|
15
15
|
resolvePlatformServerUrl,
|
|
16
16
|
resolveProviderTransportDecision,
|
|
17
|
+
toOpenAiCompatibleMessages,
|
|
17
18
|
toResponsesTools
|
|
18
|
-
} from "./chunk-
|
|
19
|
-
|
|
20
|
-
// packages/agent-runtime/openAiCompatibleMessages.ts
|
|
21
|
-
function toOpenAiCompatibleMessages(messages) {
|
|
22
|
-
return messages.map((message) => ({
|
|
23
|
-
role: message.role,
|
|
24
|
-
content: message.content ?? "",
|
|
25
|
-
...message.tool_call_id ? { tool_call_id: message.tool_call_id } : {},
|
|
26
|
-
...Array.isArray(message.tool_calls) ? { tool_calls: message.tool_calls } : {},
|
|
27
|
-
...message.reasoning_content ? { reasoning_content: message.reasoning_content } : {}
|
|
28
|
-
}));
|
|
29
|
-
}
|
|
19
|
+
} from "./chunk-3HPUUWOR.js";
|
|
30
20
|
|
|
31
21
|
// packages/agent-runtime/toolCallAccumulator.ts
|
|
32
22
|
function accumulateToolCallDelta(accumulated, deltas) {
|
|
@@ -373,7 +363,6 @@ export {
|
|
|
373
363
|
throwIfChatCompletionStreamFailed,
|
|
374
364
|
applyChatCompletionDelta,
|
|
375
365
|
flushChatCompletionStream,
|
|
376
|
-
toOpenAiCompatibleMessages,
|
|
377
366
|
readSseFrames,
|
|
378
367
|
readSseDataValues,
|
|
379
368
|
resolvePlatformChatProviderConfig,
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getModelAbility
|
|
3
|
+
} from "./chunk-Z3NEXVYE.js";
|
|
4
|
+
|
|
5
|
+
// packages/ai/agent/safeAgentSummary.ts
|
|
6
|
+
function parseTimestamp(val) {
|
|
7
|
+
if (typeof val === "number" && Number.isFinite(val)) return val;
|
|
8
|
+
if (typeof val === "string") return Date.parse(val) || 0;
|
|
9
|
+
return 0;
|
|
10
|
+
}
|
|
11
|
+
function safeTimestamp(val) {
|
|
12
|
+
if (typeof val === "number" && Number.isFinite(val)) return val;
|
|
13
|
+
if (typeof val === "string") return val;
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
function parseAgentRecordId(privateKey, explicitId) {
|
|
17
|
+
if (explicitId && typeof explicitId === "string" && explicitId.trim()) {
|
|
18
|
+
return explicitId.trim();
|
|
19
|
+
}
|
|
20
|
+
if (privateKey && typeof privateKey === "string") {
|
|
21
|
+
const match = privateKey.match(/^agent-[^-]+-(.+)$/i);
|
|
22
|
+
if (match?.[1]) return match[1];
|
|
23
|
+
}
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
function resolveFavoriteStatus(record, options) {
|
|
27
|
+
if (options?.isFavorite !== void 0) {
|
|
28
|
+
return {
|
|
29
|
+
isFavorite: !!options.isFavorite,
|
|
30
|
+
favoritedAt: safeTimestamp(options.favoritedAt)
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
if (record?.isFavorite === true) {
|
|
34
|
+
return {
|
|
35
|
+
isFavorite: true,
|
|
36
|
+
favoritedAt: safeTimestamp(record?.favoritedAt)
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
const favoritesMap = options?.favoritesMap;
|
|
40
|
+
if (!favoritesMap) {
|
|
41
|
+
return { isFavorite: false, favoritedAt: null };
|
|
42
|
+
}
|
|
43
|
+
const candidateKeys = [];
|
|
44
|
+
if (typeof record?.dbKey === "string" && record.dbKey) candidateKeys.push(record.dbKey);
|
|
45
|
+
if (typeof record?.privateKey === "string" && record.privateKey) candidateKeys.push(record.privateKey);
|
|
46
|
+
if (typeof record?.publicKey === "string" && record.publicKey) candidateKeys.push(record.publicKey);
|
|
47
|
+
if (typeof record?.id === "string" && record.id) {
|
|
48
|
+
candidateKeys.push(record.id);
|
|
49
|
+
candidateKeys.push(`agent-pub-${record.id}`);
|
|
50
|
+
if (options?.userId) {
|
|
51
|
+
candidateKeys.push(`agent-${options.userId}-${record.id}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
let matched = false;
|
|
55
|
+
let highestFavAt = null;
|
|
56
|
+
let highestFavTime = -1;
|
|
57
|
+
for (const key of candidateKeys) {
|
|
58
|
+
const val = favoritesMap instanceof Map ? favoritesMap.get(key) : favoritesMap[key];
|
|
59
|
+
if (val !== void 0 && val !== false && val !== null) {
|
|
60
|
+
const favAt = val === true ? 1 : safeTimestamp(val);
|
|
61
|
+
if (favAt === null) continue;
|
|
62
|
+
matched = true;
|
|
63
|
+
const time = parseTimestamp(favAt);
|
|
64
|
+
if (time > highestFavTime) {
|
|
65
|
+
highestFavTime = time;
|
|
66
|
+
highestFavAt = favAt;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
if (matched) {
|
|
71
|
+
return {
|
|
72
|
+
isFavorite: true,
|
|
73
|
+
favoritedAt: highestFavAt ?? 1
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
return { isFavorite: false, favoritedAt: null };
|
|
77
|
+
}
|
|
78
|
+
function toSafeAgentSummary(record, options) {
|
|
79
|
+
const rawId = parseAgentRecordId(
|
|
80
|
+
typeof record?.privateKey === "string" ? record.privateKey : record?.dbKey,
|
|
81
|
+
typeof record?.id === "string" ? record.id : void 0
|
|
82
|
+
);
|
|
83
|
+
const id = rawId ?? (typeof record?.id === "string" ? record.id : null);
|
|
84
|
+
let publicKey = null;
|
|
85
|
+
if (typeof record?.publicKey === "string" && record.publicKey) {
|
|
86
|
+
publicKey = record.publicKey;
|
|
87
|
+
} else if (id) {
|
|
88
|
+
publicKey = `agent-pub-${id}`;
|
|
89
|
+
}
|
|
90
|
+
const name = typeof record?.name === "string" && record.name ? record.name : "(unnamed)";
|
|
91
|
+
const handle = typeof record?.handle === "string" && record.handle ? record.handle : null;
|
|
92
|
+
const introduction = typeof record?.introduction === "string" && record.introduction ? record.introduction : typeof record?.description === "string" && record.description ? record.description : null;
|
|
93
|
+
const model = typeof record?.model === "string" && record.model ? record.model : null;
|
|
94
|
+
const provider = typeof record?.provider === "string" && record.provider ? record.provider : typeof record?.apiSource === "string" && record.apiSource ? record.apiSource : null;
|
|
95
|
+
const apiSource = typeof record?.apiSource === "string" && record.apiSource ? record.apiSource : null;
|
|
96
|
+
const cliProvider = typeof record?.cliProvider === "string" && record.cliProvider ? record.cliProvider : null;
|
|
97
|
+
const tools = Array.isArray(record?.tools) ? record.tools.filter((t) => typeof t === "string") : [];
|
|
98
|
+
const inputPrice = typeof record?.inputPrice === "number" && Number.isFinite(record.inputPrice) ? record.inputPrice : null;
|
|
99
|
+
const outputPrice = typeof record?.outputPrice === "number" && Number.isFinite(record.outputPrice) ? record.outputPrice : null;
|
|
100
|
+
const modelAbility = model ? getModelAbility(model) ?? null : null;
|
|
101
|
+
const favStatus = resolveFavoriteStatus(record, options);
|
|
102
|
+
const isPublic = record?.isPublic === true || record?.isPublicFlag === true || record?.publicRecordExists === true;
|
|
103
|
+
const updatedAt = safeTimestamp(record?.updatedAt ?? record?.createdAt ?? record?.created);
|
|
104
|
+
return {
|
|
105
|
+
id,
|
|
106
|
+
publicKey,
|
|
107
|
+
name,
|
|
108
|
+
handle,
|
|
109
|
+
introduction,
|
|
110
|
+
model,
|
|
111
|
+
provider,
|
|
112
|
+
apiSource,
|
|
113
|
+
cliProvider,
|
|
114
|
+
tools,
|
|
115
|
+
inputPrice,
|
|
116
|
+
outputPrice,
|
|
117
|
+
modelAbility,
|
|
118
|
+
isFavorite: favStatus.isFavorite,
|
|
119
|
+
favoritedAt: favStatus.favoritedAt,
|
|
120
|
+
isPublic,
|
|
121
|
+
updatedAt
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
function sortSafeAgentSummaries(agents) {
|
|
125
|
+
return [...agents].sort((left, right) => {
|
|
126
|
+
const leftFav = left.isFavorite === true;
|
|
127
|
+
const rightFav = right.isFavorite === true;
|
|
128
|
+
if (leftFav && !rightFav) return -1;
|
|
129
|
+
if (!leftFav && rightFav) return 1;
|
|
130
|
+
if (leftFav && rightFav) {
|
|
131
|
+
const leftFavAt = parseTimestamp(left.favoritedAt);
|
|
132
|
+
const rightFavAt = parseTimestamp(right.favoritedAt);
|
|
133
|
+
if (leftFavAt !== rightFavAt) return rightFavAt - leftFavAt;
|
|
134
|
+
}
|
|
135
|
+
const leftUpdated = parseTimestamp(left.updatedAt ?? left.createdAt);
|
|
136
|
+
const rightUpdated = parseTimestamp(right.updatedAt ?? right.createdAt);
|
|
137
|
+
return rightUpdated - leftUpdated;
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
export {
|
|
142
|
+
toSafeAgentSummary,
|
|
143
|
+
sortSafeAgentSummaries
|
|
144
|
+
};
|
|
@@ -2,17 +2,17 @@ import {
|
|
|
2
2
|
buildCurrentTimeBlock,
|
|
3
3
|
buildIdentityBlock,
|
|
4
4
|
buildRuntimeGuidanceBlocks
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-G7KM6BBZ.js";
|
|
6
6
|
import {
|
|
7
7
|
canonicalizeToolNames
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-FZ2G3I4B.js";
|
|
9
9
|
import {
|
|
10
10
|
clipCompactText
|
|
11
11
|
} from "./chunk-5MMAK75Q.js";
|
|
12
12
|
import {
|
|
13
13
|
findModelConfig,
|
|
14
14
|
getProviderByModelName
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-S3UTETIC.js";
|
|
16
16
|
import {
|
|
17
17
|
asRecordOrEmpty
|
|
18
18
|
} from "./chunk-KX6YBIHG.js";
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
buildLocalAgentLookupKeys,
|
|
13
13
|
normalizeAgentHandle,
|
|
14
14
|
shouldReadAgentKeyRemotely
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-FVVST32H.js";
|
|
16
16
|
import {
|
|
17
17
|
LOCAL_CODEX_AGENT_ID,
|
|
18
18
|
LOCAL_CODEX_AGENT_KEY,
|
|
@@ -27,13 +27,13 @@ import {
|
|
|
27
27
|
} from "./chunk-ATNTHIZI.js";
|
|
28
28
|
import {
|
|
29
29
|
prepareTools
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-WVS3GX3B.js";
|
|
31
31
|
import {
|
|
32
32
|
getAntigravityUserAgent,
|
|
33
33
|
isAntigravityOAuthAgent,
|
|
34
34
|
readAntigravityProjectId,
|
|
35
35
|
resolveAntigravityCloudCodeBaseUrl
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-QWM7YWVT.js";
|
|
37
37
|
import {
|
|
38
38
|
FORCED_TOOLS,
|
|
39
39
|
addDefaultLightWebToolsForConfiguredAgents,
|
|
@@ -43,7 +43,7 @@ import {
|
|
|
43
43
|
readXPostFunctionSchema,
|
|
44
44
|
readXhsProfileFunc,
|
|
45
45
|
readXhsProfileFunctionSchema
|
|
46
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-IPA2WQGY.js";
|
|
47
47
|
import {
|
|
48
48
|
normalizeDialogTitle
|
|
49
49
|
} from "./chunk-OWOHNGCN.js";
|
|
@@ -52,7 +52,7 @@ import {
|
|
|
52
52
|
} from "./chunk-V2J635L5.js";
|
|
53
53
|
import {
|
|
54
54
|
fetchServerSyncedCredential
|
|
55
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-Q7S2ORXX.js";
|
|
56
56
|
import {
|
|
57
57
|
buildAgentRuntimeDialogWritePlan,
|
|
58
58
|
buildLocalWorkspaceOpenAiTools,
|
|
@@ -65,7 +65,7 @@ import {
|
|
|
65
65
|
parseSseDataLineJson,
|
|
66
66
|
readOpenAiCompatibleSseCompletion,
|
|
67
67
|
resolveOpenAiCompatibleProviderConfig
|
|
68
|
-
} from "./chunk-
|
|
68
|
+
} from "./chunk-C4DZRHFJ.js";
|
|
69
69
|
import {
|
|
70
70
|
buildPlatformChatCompletionRequest,
|
|
71
71
|
canUsePlatformChatProvider,
|
|
@@ -74,14 +74,14 @@ import {
|
|
|
74
74
|
readSseDataValues,
|
|
75
75
|
resolvePlatformChatProviderConfig,
|
|
76
76
|
shouldUsePlatformChatProvider
|
|
77
|
-
} from "./chunk-
|
|
77
|
+
} from "./chunk-3KGTFX3T.js";
|
|
78
78
|
import {
|
|
79
79
|
resolveAgentRuntimeConfigFromRecord
|
|
80
80
|
} from "./chunk-YOCHZD7D.js";
|
|
81
81
|
import {
|
|
82
82
|
parseToolArgumentsJson,
|
|
83
83
|
summarizeToolArguments
|
|
84
|
-
} from "./chunk-
|
|
84
|
+
} from "./chunk-AISLHYDB.js";
|
|
85
85
|
import {
|
|
86
86
|
buildLoadSkillExecutor,
|
|
87
87
|
buildNoloWorkspaceCliToolExecutors,
|
|
@@ -89,7 +89,7 @@ import {
|
|
|
89
89
|
canonicalizeToolNames,
|
|
90
90
|
parseNoloWorkspaceToolArguments,
|
|
91
91
|
resolveRuntimeToolSurfaceForAgent
|
|
92
|
-
} from "./chunk-
|
|
92
|
+
} from "./chunk-FZ2G3I4B.js";
|
|
93
93
|
import {
|
|
94
94
|
clipCompactText
|
|
95
95
|
} from "./chunk-5MMAK75Q.js";
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
prepareAndPersistMessage,
|
|
4
4
|
uiAskChoiceFunc,
|
|
5
5
|
uiAskChoiceFunctionSchema
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-GROGNZOA.js";
|
|
7
7
|
import {
|
|
8
8
|
require_date_fns
|
|
9
9
|
} from "./chunk-M76ECQRD.js";
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
PLATFORM_HOSTED_GLM_52_MODEL,
|
|
23
23
|
PLATFORM_HOSTED_GLM_PRICE,
|
|
24
24
|
PLATFORM_HOSTED_KIMI_PROVIDER
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-524BDL33.js";
|
|
26
26
|
import {
|
|
27
27
|
createAgentKey,
|
|
28
28
|
createDialogKey,
|
|
@@ -3,25 +3,25 @@ import {
|
|
|
3
3
|
finalizeAccumulatedToolCalls,
|
|
4
4
|
flushChatCompletionStream,
|
|
5
5
|
readSseFrames,
|
|
6
|
-
throwIfChatCompletionStreamFailed
|
|
7
|
-
|
|
8
|
-
} from "./chunk-6UUD2WES.js";
|
|
6
|
+
throwIfChatCompletionStreamFailed
|
|
7
|
+
} from "./chunk-3KGTFX3T.js";
|
|
9
8
|
import {
|
|
10
9
|
parseToolArgumentsJson
|
|
11
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-AISLHYDB.js";
|
|
12
11
|
import {
|
|
13
12
|
createThinkParserState,
|
|
14
13
|
extractThinkContent
|
|
15
14
|
} from "./chunk-OPZYGHUC.js";
|
|
16
15
|
import {
|
|
17
16
|
buildProviderAuthHeaders,
|
|
18
|
-
buildProviderExecutionPlan
|
|
19
|
-
|
|
17
|
+
buildProviderExecutionPlan,
|
|
18
|
+
toOpenAiCompatibleMessages
|
|
19
|
+
} from "./chunk-3HPUUWOR.js";
|
|
20
20
|
import {
|
|
21
21
|
canonicalizeToolName,
|
|
22
22
|
createGlob,
|
|
23
23
|
resolveExecutableOnPath
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-FZ2G3I4B.js";
|
|
25
25
|
import {
|
|
26
26
|
asRecordOrEmpty
|
|
27
27
|
} from "./chunk-KX6YBIHG.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
clearCliLocalRuntimePreparedAgentCache
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-BQECZ3Q4.js";
|
|
4
4
|
import {
|
|
5
5
|
getReadableCliDb
|
|
6
6
|
} from "./chunk-W4NVOSFF.js";
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
resolveAgentRecordFromHybridStore,
|
|
13
13
|
sanitizeAgentRecordForCliOutput,
|
|
14
14
|
writeAgentRecord
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-SBVUZC2E.js";
|
|
16
16
|
import {
|
|
17
17
|
resolveCliAgentKeyInput
|
|
18
18
|
} from "./chunk-VHBWHNVT.js";
|
|
@@ -451,7 +451,7 @@ function buildNoloWorkspaceOpenAiTools(args) {
|
|
|
451
451
|
description: "Confirmed dialog ids or dbKeys to delete."
|
|
452
452
|
}
|
|
453
453
|
}, ["query"]);
|
|
454
|
-
add("listAgents", "List the current user's agents
|
|
454
|
+
add("listAgents", "List the current user's agents as safe summaries; use readAgent to resolve the runnable agentKey before delegation.", {
|
|
455
455
|
space: stringToolParam("Optional space id or URL."),
|
|
456
456
|
publicOnly: { type: "boolean", description: "Only show public agents." }
|
|
457
457
|
// 端间差异(LOW-R2-3):CLI 命令 `nolo agent list` 无 --limit(parseAgentListArgs
|
|
@@ -773,6 +773,7 @@ function buildNoloWorkspaceCommandArgs(call) {
|
|
|
773
773
|
const space = noloStringArg(args.space);
|
|
774
774
|
if (space) cliArgs.push("--space", space);
|
|
775
775
|
if (args.publicOnly === true) cliArgs.push("--public-only");
|
|
776
|
+
cliArgs.push("--json", "--safe");
|
|
776
777
|
return cliArgs;
|
|
777
778
|
}
|
|
778
779
|
case "readAgent": {
|