nolo-cli 0.12.0-alpha.1 → 0.12.0-alpha.11
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-MWAY74HA.js → _executeModel-4F7VZR5U.js} +24 -23
- package/{action-RAXNQQKC.js → action-OTOWUMPW.js} +3 -3
- package/{addContentAction-ZHI7TVV3.js → addContentAction-JGBUVR7K.js} +2 -2
- package/{addDialogAgentAction-JWXPKXNC.js → addDialogAgentAction-V6CL2UCF.js} +1 -1
- package/{agentDeleteCommand-LXR5A5FV.js → agentDeleteCommand-MMRSG6AB.js} +15 -14
- package/{agentEmailCommands-DXRAP7BB.js → agentEmailCommands-VW5FKADD.js} +28 -27
- package/{agentListCommands-ZFMS5ZLY.js → agentListCommands-2PZHIQ3I.js} +16 -15
- package/{agentMachineCommands-ZJLYVV52.js → agentMachineCommands-T2R7HVRV.js} +17 -16
- package/{agentRecordCommands-DFS626TB.js → agentRecordCommands-5DLPK3IV.js} +28 -27
- package/{agentRunCommand-GWBIE2TS.js → agentRunCommand-P6EH5DN7.js} +29 -28
- package/{agentRuntimeLocal-YNZSHMZC.js → agentRuntimeLocal-QDJCBXM2.js} +12 -11
- package/{agentSlice-T2PXOEPQ.js → agentSlice-6JAJOU3X.js} +2 -2
- package/{chunk-G3B356GF.js → chunk-2BVGERJ2.js} +67 -3
- package/{chunk-WWU275LU.js → chunk-3MI5LDDU.js} +2 -2
- package/{chunk-OPZYGHUC.js → chunk-3WGLLTK4.js} +59 -1
- package/chunk-5MMAK75Q.js +15 -0
- package/{chunk-ZR4VHQ5D.js → chunk-5S4SWV5G.js} +38 -26
- package/{chunk-JUN3HFMN.js → chunk-5V524MHX.js} +25 -15
- package/{chunk-5ITRDSHY.js → chunk-7HVCFCZK.js} +65 -18
- package/{chunk-JZDIW766.js → chunk-ARSC56DC.js} +1 -1
- package/{chunk-3QKO4EHV.js → chunk-AS3ZQ3O2.js} +16 -25
- package/{chunk-43UD5ZP7.js → chunk-B4KT7RN2.js} +4 -4
- package/{chunk-YTQLJYLB.js → chunk-C3BFP57W.js} +95 -2
- package/{chunk-QCA3EPYK.js → chunk-CGDQDXKZ.js} +1 -1
- package/{chunk-7MYHLZ3F.js → chunk-DPFWKRHG.js} +1 -1
- package/{chunk-LHSJMY5V.js → chunk-E2BT7DBP.js} +3 -3
- package/{chunk-AM53Q2SD.js → chunk-FSUZIGIG.js} +28 -39
- package/{chunk-4GBNEA5B.js → chunk-H5Y2H2N6.js} +1 -1
- package/{chunk-S73OEOHH.js → chunk-JFANOO7I.js} +3 -15
- package/{chunk-ZPFRLGIZ.js → chunk-JHYLX2QV.js} +70 -37
- package/{chunk-OCDEWRE2.js → chunk-JKWWVF2I.js} +1 -1
- package/{chunk-WTYKCU4W.js → chunk-JU7J7EAV.js} +37 -37
- package/{chunk-EBH7G34M.js → chunk-LIO7AK5S.js} +2 -2
- package/{chunk-6OVCRC72.js → chunk-LUKQQJFL.js} +39 -2
- package/{chunk-DRMGJFGQ.js → chunk-MG6BVV3T.js} +31 -17
- package/{chunk-RSEUHW6T.js → chunk-MQRZ5QUH.js} +1 -1
- package/{chunk-RZ735TLX.js → chunk-MZHSAPZP.js} +167 -20
- package/{chunk-OPKKB25T.js → chunk-O4FOPRCP.js} +1 -1
- package/{chunk-S3UTETIC.js → chunk-OGGHETUE.js} +19 -4
- package/{chunk-4EH7AR52.js → chunk-OPM2DE2J.js} +1 -1
- package/{chunk-UG3WOFU6.js → chunk-QJSTNKJY.js} +1 -1
- package/{chunk-DE5BA4O6.js → chunk-QUHUVG6Y.js} +2 -2
- package/{chunk-YDCZVUFP.js → chunk-RQSOAMPJ.js} +16 -0
- package/{chunk-6LMFFG3K.js → chunk-RWO5DGXI.js} +2 -2
- package/{chunk-4BTHUYMY.js → chunk-TA7VKOHU.js} +23 -9
- package/{chunk-MEVCDATU.js → chunk-TQYYGE6G.js} +3 -3
- package/{chunk-TSKWE74T.js → chunk-TYPHUVK5.js} +13 -1
- package/{chunk-RNQ5BLR2.js → chunk-VBSWHE5W.js} +1 -1
- package/{chunk-NITP2JDG.js → chunk-VKG4HXYV.js} +1 -1
- package/{chunk-3HHTVM6G.js → chunk-WVTBAALN.js} +1 -1
- package/{chunk-GPZM7QH6.js → chunk-Y5P3ZRGC.js} +4 -4
- package/{chunk-GDBCUWQ3.js → chunk-YUMYYXPI.js} +31 -167
- package/{createAgentAutomationAction-G32GKDGV.js → createAgentAutomationAction-4NY4JLOK.js} +9 -8
- package/{createDialogAction-TISANRZK.js → createDialogAction-I5WUWFJ6.js} +10 -9
- package/{createPageAction-O7KOYNV4.js → createPageAction-HFTIQ7TW.js} +9 -8
- package/{dbSlice-WDP2ZZHK.js → dbSlice-J4PUZ6Y5.js} +1 -1
- package/{dialogCommands-6JPB3YQY.js → dialogCommands-SVXRJFZS.js} +16 -15
- package/{dialogSlice-PRHHYSP5.js → dialogSlice-35LA3ZRG.js} +9 -8
- package/{docCreateCommands-75E6TZNN.js → docCreateCommands-Z7RIAYKQ.js} +15 -14
- package/{docDeleteCommands-EJHLN7LW.js → docDeleteCommands-NEYHUVZF.js} +16 -15
- package/{docReadCommands-RJYBC4FS.js → docReadCommands-I4US2SDE.js} +15 -14
- package/{docStore-H5VWKT5D.js → docStore-3CP2IO6M.js} +10 -9
- package/{docUpdateCommands-MG4CNISV.js → docUpdateCommands-UU5HQBRP.js} +15 -14
- package/{getPricing-6TOZXPAU.js → getPricing-UGDJHI7M.js} +2 -2
- package/{handleSendMessageAction-QTUGICSZ.js → handleSendMessageAction-FWTLQGOZ.js} +9 -8
- package/index.js +36 -36
- package/{machineCommands-MAV7M3TK.js → machineCommands-J5JWJQ6I.js} +28 -27
- package/{machineWsRunDispatch-ZOEGTKHC.js → machineWsRunDispatch-U476S4G2.js} +27 -26
- package/package.json +1 -1
- package/{readlineWorkspace-SWQKC7ZS.js → readlineWorkspace-AQCPSGS7.js} +260 -87
- package/{removeDialogAgentAction-GTX5AN54.js → removeDialogAgentAction-XUZYQBV4.js} +3 -3
- package/{runAgentClientLoop-P25HACXX.js → runAgentClientLoop-FP2K33ZO.js} +20 -19
- package/{setDialogExtraReferencesAction-WFQ63KYO.js → setDialogExtraReferencesAction-PTAIFKGM.js} +1 -1
- package/{setPrimaryDialogAgentAction-P57FXTSU.js → setPrimaryDialogAgentAction-HRFTDB44.js} +3 -3
- package/{settingSlice-CK5YZGNI.js → settingSlice-VGRJUSE5.js} +2 -2
- package/{skillDiscovery-ZYHSX7VD.js → skillDiscovery-6M2BZUFN.js} +1 -1
- package/{spaceCommands-6O5EFEM5.js → spaceCommands-GN73BCOB.js} +15 -14
- package/{spaceSlice-4EXTYXS4.js → spaceSlice-WTFNKOVA.js} +11 -8
- package/{streamAgentChatTurn-Q3FJAHG2.js → streamAgentChatTurn-HBAQQVNK.js} +244 -26
- package/{tools-AHNQE4GP.js → tools-TPQYTLQZ.js} +15 -14
- package/{tuiSummaryLlmCaller-TXLF4MEI.js → tuiSummaryLlmCaller-XDC7WG4K.js} +6 -4
- package/{updateDialogTitleAction-XZDVLKVX.js → updateDialogTitleAction-AWXNPUQJ.js} +9 -8
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
buildLocalAgentLookupKeys,
|
|
13
13
|
normalizeAgentHandle,
|
|
14
14
|
shouldReadAgentKeyRemotely
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-VBSWHE5W.js";
|
|
16
16
|
import {
|
|
17
17
|
LOCAL_CODEX_AGENT_ID,
|
|
18
18
|
LOCAL_CODEX_AGENT_KEY,
|
|
@@ -21,19 +21,20 @@ import {
|
|
|
21
21
|
} from "./chunk-VHBWHNVT.js";
|
|
22
22
|
import {
|
|
23
23
|
inferCaptureIntent
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-QJSTNKJY.js";
|
|
25
25
|
import {
|
|
26
26
|
buildCliPrompt
|
|
27
27
|
} from "./chunk-ATNTHIZI.js";
|
|
28
28
|
import {
|
|
29
|
+
inlineImageUrlsForCustomProvider,
|
|
29
30
|
prepareTools
|
|
30
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-C3BFP57W.js";
|
|
31
32
|
import {
|
|
32
33
|
getAntigravityUserAgent,
|
|
33
34
|
isAntigravityOAuthAgent,
|
|
34
35
|
readAntigravityProjectId,
|
|
35
36
|
resolveAntigravityCloudCodeBaseUrl
|
|
36
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-H5Y2H2N6.js";
|
|
37
38
|
import {
|
|
38
39
|
FORCED_TOOLS,
|
|
39
40
|
addDefaultLightWebToolsForConfiguredAgents,
|
|
@@ -49,24 +50,25 @@ import {
|
|
|
49
50
|
readXPostFunctionSchema,
|
|
50
51
|
readXhsProfileFunc,
|
|
51
52
|
readXhsProfileFunctionSchema
|
|
52
|
-
} from "./chunk-
|
|
53
|
+
} from "./chunk-MZHSAPZP.js";
|
|
53
54
|
import {
|
|
54
|
-
|
|
55
|
+
createDrainExhaustedResponse,
|
|
56
|
+
isCoreDrainingBody,
|
|
55
57
|
normalizeNonNegativeMs,
|
|
56
58
|
parseRetryAfterHeaderMs
|
|
57
|
-
} from "./chunk-
|
|
59
|
+
} from "./chunk-RQSOAMPJ.js";
|
|
58
60
|
import {
|
|
59
61
|
normalizeDialogTitle
|
|
60
62
|
} from "./chunk-OWOHNGCN.js";
|
|
61
63
|
import {
|
|
62
64
|
prepareTokenUsageData
|
|
63
|
-
} from "./chunk-
|
|
65
|
+
} from "./chunk-FSUZIGIG.js";
|
|
64
66
|
import {
|
|
65
67
|
BUILTIN_TITLE_LLM_CONFIG
|
|
66
68
|
} from "./chunk-V2J635L5.js";
|
|
67
69
|
import {
|
|
68
70
|
fetchServerSyncedCredential
|
|
69
|
-
} from "./chunk-
|
|
71
|
+
} from "./chunk-Y5P3ZRGC.js";
|
|
70
72
|
import {
|
|
71
73
|
buildAgentRuntimeDialogWritePlan,
|
|
72
74
|
buildLocalWorkspaceOpenAiTools,
|
|
@@ -79,7 +81,7 @@ import {
|
|
|
79
81
|
parseSseDataLineJson,
|
|
80
82
|
readOpenAiCompatibleSseCompletion,
|
|
81
83
|
resolveOpenAiCompatibleProviderConfig
|
|
82
|
-
} from "./chunk-
|
|
84
|
+
} from "./chunk-MG6BVV3T.js";
|
|
83
85
|
import {
|
|
84
86
|
buildPlatformChatCompletionRequest,
|
|
85
87
|
canUsePlatformChatProvider,
|
|
@@ -89,14 +91,14 @@ import {
|
|
|
89
91
|
resolveLegacyDeepSeekProxyChatFallback,
|
|
90
92
|
resolvePlatformChatProviderConfig,
|
|
91
93
|
shouldUsePlatformChatProvider
|
|
92
|
-
} from "./chunk-
|
|
94
|
+
} from "./chunk-5S4SWV5G.js";
|
|
93
95
|
import {
|
|
94
96
|
resolveAgentRuntimeConfigFromRecord
|
|
95
97
|
} from "./chunk-NCGFB7NN.js";
|
|
96
98
|
import {
|
|
97
99
|
parseToolArgumentsJson,
|
|
98
100
|
summarizeToolArguments
|
|
99
|
-
} from "./chunk-
|
|
101
|
+
} from "./chunk-TA7VKOHU.js";
|
|
100
102
|
import {
|
|
101
103
|
buildLoadSkillExecutor,
|
|
102
104
|
buildNoloWorkspaceCliToolExecutors,
|
|
@@ -104,10 +106,10 @@ import {
|
|
|
104
106
|
canonicalizeToolNames,
|
|
105
107
|
parseNoloWorkspaceToolArguments,
|
|
106
108
|
resolveRuntimeToolSurfaceForAgent
|
|
107
|
-
} from "./chunk-
|
|
109
|
+
} from "./chunk-B4KT7RN2.js";
|
|
108
110
|
import {
|
|
109
111
|
clipCompactText
|
|
110
|
-
} from "./chunk-
|
|
112
|
+
} from "./chunk-5MMAK75Q.js";
|
|
111
113
|
import {
|
|
112
114
|
createFileCredentialBroker,
|
|
113
115
|
resolveCurrentRunRuntimeToolPolicy,
|
|
@@ -285,6 +287,14 @@ var STRINGS = {
|
|
|
285
287
|
en: "queued",
|
|
286
288
|
zh: "\u6392\u961F"
|
|
287
289
|
},
|
|
290
|
+
flushQueuedIdleHint: {
|
|
291
|
+
en: "Flushed {0} queued messages as one.",
|
|
292
|
+
zh: "\u5DF2\u628A {0} \u6761\u6392\u961F\u6D88\u606F\u5408\u5E76\u53D1\u9001\u3002"
|
|
293
|
+
},
|
|
294
|
+
flushQueuedBusyHint: {
|
|
295
|
+
en: "Stopped this reply and flushed {0} queued messages as one.",
|
|
296
|
+
zh: "\u5DF2\u505C\u6B62\u5F53\u524D\u56DE\u590D\uFF0C\u5E76\u628A {0} \u6761\u6392\u961F\u6D88\u606F\u5408\u5E76\u53D1\u9001\u3002"
|
|
297
|
+
},
|
|
288
298
|
turnStopped: {
|
|
289
299
|
en: "Stopped this reply.",
|
|
290
300
|
zh: "\u5DF2\u505C\u6B62\u672C\u6B21\u56DE\u590D\u3002"
|
|
@@ -718,6 +728,14 @@ var STRINGS = {
|
|
|
718
728
|
en: "Current dialog: new (nothing to compact yet)",
|
|
719
729
|
zh: "\u5F53\u524D\u5BF9\u8BDD\u8FD8\u662F\u65B0\u7684\uFF08\u8FD8\u6CA1\u6709\u53EF\u538B\u7F29\u7684\u5185\u5BB9\uFF09"
|
|
720
730
|
},
|
|
731
|
+
compactDone: {
|
|
732
|
+
en: "Compacted dialog {0} \u2192 {1}.",
|
|
733
|
+
zh: "\u5DF2\u538B\u7F29\u5BF9\u8BDD {0} \u2192 {1}\u3002"
|
|
734
|
+
},
|
|
735
|
+
compactDoneNoSummary: {
|
|
736
|
+
en: "Forked dialog {0} \u2192 {1} (no summary needed).",
|
|
737
|
+
zh: "\u5DF2\u5206\u53C9\u5BF9\u8BDD {0} \u2192 {1}\uFF08\u65E0\u9700\u538B\u7F29\uFF09\u3002"
|
|
738
|
+
},
|
|
721
739
|
agentCurrent: { en: "Current agent: {0} ({1})", zh: "\u5F53\u524D agent\uFF1A{0}\uFF08{1}\uFF09" },
|
|
722
740
|
agentUnknown: {
|
|
723
741
|
en: `I don't know agent "{0}" yet.
|
|
@@ -761,8 +779,8 @@ Use /switch, /switch list, /switch minimax-m3, or a full agent key.`,
|
|
|
761
779
|
zh: "\u5DF2\u6302\u8F7D\u6280\u80FD\uFF1A{0}\n\u7528\u6CD5\uFF1A/skill attach <ref> | /skill detach <ref> | /skill clear"
|
|
762
780
|
},
|
|
763
781
|
skillNoneHint: {
|
|
764
|
-
en: "No skills attached. Use /skill attach <skill-ref> to attach a skill.\nSkill refs can be a dbKey (page-xxx), a skill name (searched in .agents/skills/
|
|
765
|
-
zh: "\u8FD8\u6CA1\u6709\u6302\u8F7D\u6280\u80FD\u3002\u7528 /skill attach <skill-ref> \u6302\u8F7D\u6280\u80FD\u3002\n\u6280\u80FD\u5F15\u7528\u53EF\u4EE5\u662F dbKey\uFF08page-xxx\uFF09\u3001\u6280\u80FD\u540D\uFF08\u4F1A\u5728 .agents/skills/ \
|
|
782
|
+
en: "No skills attached. Use /skill attach <skill-ref> to attach a skill.\nSkill refs can be a dbKey (page-xxx), a skill name (searched in .agents/skills/), or a direct path.",
|
|
783
|
+
zh: "\u8FD8\u6CA1\u6709\u6302\u8F7D\u6280\u80FD\u3002\u7528 /skill attach <skill-ref> \u6302\u8F7D\u6280\u80FD\u3002\n\u6280\u80FD\u5F15\u7528\u53EF\u4EE5\u662F dbKey\uFF08page-xxx\uFF09\u3001\u6280\u80FD\u540D\uFF08\u4F1A\u5728 .agents/skills/ \u4E2D\u67E5\u627E\uFF09\u6216\u76F4\u63A5\u8DEF\u5F84\u3002"
|
|
766
784
|
},
|
|
767
785
|
customizeHint: {
|
|
768
786
|
en: "Tell nolo what to change, for example: /customize make my default agent more concise.",
|
|
@@ -1015,7 +1033,7 @@ async function isCoreDrainingResponse(response) {
|
|
|
1015
1033
|
if (response.status !== 503) return false;
|
|
1016
1034
|
try {
|
|
1017
1035
|
const body = await response.clone().json();
|
|
1018
|
-
return body
|
|
1036
|
+
return isCoreDrainingBody(body);
|
|
1019
1037
|
} catch {
|
|
1020
1038
|
return false;
|
|
1021
1039
|
}
|
|
@@ -1042,6 +1060,9 @@ async function fetchWithTransientRetry(fetchImpl, input, init, options = {}) {
|
|
|
1042
1060
|
await (options.sleep ?? defaultSleep)(delayMs);
|
|
1043
1061
|
continue;
|
|
1044
1062
|
}
|
|
1063
|
+
if (coreDraining) {
|
|
1064
|
+
return createDrainExhaustedResponse(response);
|
|
1065
|
+
}
|
|
1045
1066
|
}
|
|
1046
1067
|
return response;
|
|
1047
1068
|
} catch (error) {
|
|
@@ -10275,6 +10296,32 @@ function createCliLocalRuntimeAdapter(deps) {
|
|
|
10275
10296
|
model: providerConfig.model,
|
|
10276
10297
|
complete: async (messages, options) => {
|
|
10277
10298
|
const stream = Boolean(options?.onTextDelta);
|
|
10299
|
+
const inlinedMessages = (await inlineImageUrlsForCustomProvider(
|
|
10300
|
+
{ messages },
|
|
10301
|
+
{
|
|
10302
|
+
shouldInline: true,
|
|
10303
|
+
isAllowedImageUrl: (url) => {
|
|
10304
|
+
try {
|
|
10305
|
+
return new URL(url).origin === new URL(serverUrl).origin;
|
|
10306
|
+
} catch {
|
|
10307
|
+
return false;
|
|
10308
|
+
}
|
|
10309
|
+
},
|
|
10310
|
+
fetchImage: async (url) => {
|
|
10311
|
+
const response = await fetchImpl(url, {
|
|
10312
|
+
headers: authToken ? { Authorization: `Bearer ${authToken}` } : void 0
|
|
10313
|
+
});
|
|
10314
|
+
if (!response.ok) {
|
|
10315
|
+
return { ok: false, error: `HTTP ${response.status}` };
|
|
10316
|
+
}
|
|
10317
|
+
return {
|
|
10318
|
+
ok: true,
|
|
10319
|
+
mimeType: response.headers.get("content-type") ?? "application/octet-stream",
|
|
10320
|
+
bytes: new Uint8Array(await response.arrayBuffer())
|
|
10321
|
+
};
|
|
10322
|
+
}
|
|
10323
|
+
}
|
|
10324
|
+
)).messages;
|
|
10278
10325
|
logLocalRuntimeDiagnostic("provider.request.start", {
|
|
10279
10326
|
agentKey: agentConfig.key,
|
|
10280
10327
|
transport: "direct-openai-compatible",
|
|
@@ -10288,7 +10335,7 @@ function createCliLocalRuntimeAdapter(deps) {
|
|
|
10288
10335
|
});
|
|
10289
10336
|
const result = await executeOpenAiCompatibleChatCompletion({
|
|
10290
10337
|
providerConfig,
|
|
10291
|
-
messages,
|
|
10338
|
+
messages: inlinedMessages,
|
|
10292
10339
|
tools,
|
|
10293
10340
|
fetchImpl: (url, init) => fetchWithTransientRetry(fetchImpl, url, init, {
|
|
10294
10341
|
sleep: deps.sleep,
|
|
@@ -8,8 +8,10 @@ import {
|
|
|
8
8
|
// packages/agent-runtime/skillDiscovery.ts
|
|
9
9
|
import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
|
|
10
10
|
import { join } from "node:path";
|
|
11
|
-
var SKILL_SCAN_DIRS = [".agents/skills"
|
|
11
|
+
var SKILL_SCAN_DIRS = [".agents/skills"];
|
|
12
12
|
var MAX_DISCOVERED_SKILLS = 50;
|
|
13
|
+
var MAX_DISCOVERY_DESC_BUDGET = 4e3;
|
|
14
|
+
var MIN_DESC_LENGTH = 80;
|
|
13
15
|
function parseSkillFrontmatter(filePath) {
|
|
14
16
|
try {
|
|
15
17
|
const content = readFileSync(filePath, "utf8").slice(0, 2048);
|
|
@@ -20,8 +22,9 @@ function parseSkillFrontmatter(filePath) {
|
|
|
20
22
|
const name = typeof fm.name === "string" ? fm.name : void 0;
|
|
21
23
|
const rawDesc = fm.description;
|
|
22
24
|
const description = typeof rawDesc === "string" ? rawDesc : rawDesc == null ? void 0 : String(rawDesc);
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
+
const sanitizeName = (s) => s?.trim().replace(/^["']|["']$/g, "").replace(/[\n\r]+/g, " ").slice(0, 200);
|
|
26
|
+
const sanitizeDesc = (s) => s?.trim().replace(/^["']|["']$/g, "").replace(/[\n\r]+/g, " ").slice(0, 200);
|
|
27
|
+
return { name: sanitizeName(name), description: sanitizeDesc(description) };
|
|
25
28
|
} catch {
|
|
26
29
|
return {};
|
|
27
30
|
}
|
|
@@ -41,15 +44,20 @@ function discoverSkills(cwd) {
|
|
|
41
44
|
skills.push({ name: name ?? entry, description: description ?? "", relativePath: join(dir, entry, "SKILL.md") });
|
|
42
45
|
continue;
|
|
43
46
|
}
|
|
44
|
-
if (dir === "docs/skills" && entry.endsWith(".md")) {
|
|
45
|
-
const flatPath = join(absDir, entry);
|
|
46
|
-
const { name, description } = parseSkillFrontmatter(flatPath);
|
|
47
|
-
skills.push({ name: name ?? entry.replace(/\.md$/, ""), description: description ?? "", relativePath: join(dir, entry) });
|
|
48
|
-
}
|
|
49
47
|
}
|
|
50
48
|
} catch {
|
|
51
49
|
}
|
|
52
50
|
}
|
|
51
|
+
const totalDescLen = skills.reduce((sum, s) => sum + s.description.length, 0);
|
|
52
|
+
if (totalDescLen > MAX_DISCOVERY_DESC_BUDGET && skills.length > 0) {
|
|
53
|
+
const scale = MAX_DISCOVERY_DESC_BUDGET / totalDescLen;
|
|
54
|
+
for (const s of skills) {
|
|
55
|
+
const targetLen = Math.max(MIN_DESC_LENGTH, Math.floor(s.description.length * scale));
|
|
56
|
+
if (s.description.length > targetLen) {
|
|
57
|
+
s.description = s.description.slice(0, targetLen).trimEnd();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
53
61
|
return skills;
|
|
54
62
|
}
|
|
55
63
|
function resolveSkillByName(cwd, name) {
|
|
@@ -75,23 +83,6 @@ function resolveSkillByName(cwd, name) {
|
|
|
75
83
|
} catch {
|
|
76
84
|
}
|
|
77
85
|
}
|
|
78
|
-
const docsFlat = join(cwd, "docs", "skills", `${trimmed}.md`);
|
|
79
|
-
if (existsSync(docsFlat)) return docsFlat;
|
|
80
|
-
const docsDir = join(cwd, "docs", "skills");
|
|
81
|
-
if (existsSync(docsDir) && statSync(docsDir).isDirectory()) {
|
|
82
|
-
try {
|
|
83
|
-
for (const entry of readdirSync(docsDir)) {
|
|
84
|
-
if (!entry.endsWith(".md")) continue;
|
|
85
|
-
const candidate = join(docsDir, entry);
|
|
86
|
-
try {
|
|
87
|
-
const { name: fmName } = parseSkillFrontmatter(candidate);
|
|
88
|
-
if (fmName && fmName === trimmed) return candidate;
|
|
89
|
-
} catch {
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
} catch {
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
86
|
return null;
|
|
96
87
|
}
|
|
97
88
|
function buildSkillDiscoveryContextBlock(cwd) {
|
|
@@ -477,7 +477,7 @@ function buildNoloWorkspaceOpenAiTools(args) {
|
|
|
477
477
|
add("readSkillDoc", "Read one skill doc in the Nolo workspace.", {
|
|
478
478
|
doc: stringToolParam("Skill doc/page key.")
|
|
479
479
|
}, ["doc"]);
|
|
480
|
-
add("loadSkill", "Load a Skill by name from the workspace skill
|
|
480
|
+
add("loadSkill", "Load a Skill by name from the workspace skill directory (.agents/skills/<name>/SKILL.md) and return its full SKILL.md content inline so you can follow its instructions. Use this instead of readFile when you want to activate a skill. On an unknown name the tool returns a plain text list of available skill names rather than failing.", {
|
|
481
481
|
name: stringToolParam("Skill name (the name advertised in the skill-discovery layer).")
|
|
482
482
|
}, ["name"]);
|
|
483
483
|
add("listTables", "List tables in the current user scope or an optional space scope.", {
|
|
@@ -892,7 +892,7 @@ function buildLoadSkillExecutor(args) {
|
|
|
892
892
|
metadata: { loadSkill: true, resolved: false }
|
|
893
893
|
};
|
|
894
894
|
}
|
|
895
|
-
const { resolveSkillByName } = await import("./skillDiscovery-
|
|
895
|
+
const { resolveSkillByName } = await import("./skillDiscovery-6M2BZUFN.js");
|
|
896
896
|
const resolved = resolveSkillByName(args.cwd, name);
|
|
897
897
|
if (!resolved) {
|
|
898
898
|
return {
|
|
@@ -919,13 +919,13 @@ ${body}`,
|
|
|
919
919
|
};
|
|
920
920
|
}
|
|
921
921
|
async function formatUnknownSkillMessage(cwd, requestedName) {
|
|
922
|
-
const { discoverSkills } = await import("./skillDiscovery-
|
|
922
|
+
const { discoverSkills } = await import("./skillDiscovery-6M2BZUFN.js");
|
|
923
923
|
let available = [];
|
|
924
924
|
try {
|
|
925
925
|
available = discoverSkills(cwd).map((s) => s.name);
|
|
926
926
|
} catch {
|
|
927
927
|
}
|
|
928
|
-
const header = `Skill "${requestedName}" not found in this workspace's skill
|
|
928
|
+
const header = `Skill "${requestedName}" not found in this workspace's skill directory (.agents/skills/<name>/SKILL.md).`;
|
|
929
929
|
if (available.length === 0) return `${header}
|
|
930
930
|
|
|
931
931
|
No skills were discovered in this workspace.`;
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
i18n_default,
|
|
3
3
|
toolRegistry
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-MZHSAPZP.js";
|
|
5
5
|
import {
|
|
6
6
|
canonicalizeToolNames
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-B4KT7RN2.js";
|
|
8
|
+
import {
|
|
9
|
+
isNoloHostedProvider
|
|
10
|
+
} from "./chunk-524BDL33.js";
|
|
8
11
|
import {
|
|
9
12
|
asTrimmedLowercaseString
|
|
10
13
|
} from "./chunk-QSJ3HFEF.js";
|
|
@@ -12,6 +15,94 @@ import {
|
|
|
12
15
|
isRecord
|
|
13
16
|
} from "./chunk-KUG52IAP.js";
|
|
14
17
|
|
|
18
|
+
// packages/ai/chat/inlineImageUrlsForCustomProvider.ts
|
|
19
|
+
var FILE_CONTENT_PATH = "/api/v1/db/file/content/";
|
|
20
|
+
var shouldInlineImageUrlsForAgent = (agentConfig) => {
|
|
21
|
+
const apiSource = agentConfig?.apiSource?.toLowerCase();
|
|
22
|
+
const provider = agentConfig?.provider?.toLowerCase();
|
|
23
|
+
const model = agentConfig?.model?.toLowerCase();
|
|
24
|
+
if (apiSource === "custom" || provider === "custom") return true;
|
|
25
|
+
if (isNoloHostedProvider(provider)) return true;
|
|
26
|
+
return provider === "openrouter" && model === "minimax/minimax-m3";
|
|
27
|
+
};
|
|
28
|
+
var isInlineCandidate = (url) => /^https?:\/\//i.test(url) && url.includes(FILE_CONTENT_PATH);
|
|
29
|
+
var bytesToBase64 = (bytes) => {
|
|
30
|
+
let binary = "";
|
|
31
|
+
for (const byte of bytes) {
|
|
32
|
+
binary += String.fromCharCode(byte);
|
|
33
|
+
}
|
|
34
|
+
return btoa(binary);
|
|
35
|
+
};
|
|
36
|
+
var defaultFetchImage = async (url) => {
|
|
37
|
+
const response = await fetch(url);
|
|
38
|
+
if (!response.ok) {
|
|
39
|
+
return {
|
|
40
|
+
ok: false,
|
|
41
|
+
error: `HTTP ${response.status}`
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
const bytes = new Uint8Array(await response.arrayBuffer());
|
|
45
|
+
return {
|
|
46
|
+
ok: true,
|
|
47
|
+
mimeType: response.headers.get("content-type") ?? "application/octet-stream",
|
|
48
|
+
bytes
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
var cloneImagePartWithDataUrl = async (part, fetchImage, isAllowedImageUrl) => {
|
|
52
|
+
const url = part?.image_url?.url;
|
|
53
|
+
if (typeof url !== "string" || !isInlineCandidate(url) || isAllowedImageUrl && !isAllowedImageUrl(url)) {
|
|
54
|
+
return part;
|
|
55
|
+
}
|
|
56
|
+
const result = await fetchImage(url);
|
|
57
|
+
if (!result.ok || !result.bytes) return part;
|
|
58
|
+
const mimeType = result.mimeType || "application/octet-stream";
|
|
59
|
+
return {
|
|
60
|
+
...part,
|
|
61
|
+
image_url: {
|
|
62
|
+
...part.image_url,
|
|
63
|
+
url: `data:${mimeType};base64,${bytesToBase64(result.bytes)}`
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
var inlineImageUrlsForCustomProvider = async (bodyData, options) => {
|
|
68
|
+
if (!options.shouldInline) return bodyData;
|
|
69
|
+
const body = bodyData;
|
|
70
|
+
if (!Array.isArray(body?.messages)) return bodyData;
|
|
71
|
+
const fetchImage = options.fetchImage ?? defaultFetchImage;
|
|
72
|
+
let changed = false;
|
|
73
|
+
const messages = [];
|
|
74
|
+
for (const message of body.messages) {
|
|
75
|
+
if (!Array.isArray(message?.content)) {
|
|
76
|
+
messages.push(message);
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
const content = await Promise.all(
|
|
80
|
+
message.content.map(async (part) => {
|
|
81
|
+
if (part?.type !== "image_url") return part;
|
|
82
|
+
return cloneImagePartWithDataUrl(
|
|
83
|
+
part,
|
|
84
|
+
fetchImage,
|
|
85
|
+
options.isAllowedImageUrl
|
|
86
|
+
);
|
|
87
|
+
})
|
|
88
|
+
);
|
|
89
|
+
let messageChanged = false;
|
|
90
|
+
for (let i = 0; i < content.length; i++) {
|
|
91
|
+
if (content[i] !== message.content[i]) {
|
|
92
|
+
changed = true;
|
|
93
|
+
messageChanged = true;
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
messages.push(messageChanged ? { ...message, content } : message);
|
|
98
|
+
}
|
|
99
|
+
if (!changed) return bodyData;
|
|
100
|
+
return {
|
|
101
|
+
...body,
|
|
102
|
+
messages
|
|
103
|
+
};
|
|
104
|
+
};
|
|
105
|
+
|
|
15
106
|
// packages/ai/tools/toolSchemaCompatibility.ts
|
|
16
107
|
var COMPOSITION_KEYS = ["anyOf", "oneOf", "allOf"];
|
|
17
108
|
var LIMITED_JSON_SCHEMA_PROVIDERS = /* @__PURE__ */ new Set([
|
|
@@ -167,5 +258,7 @@ var prepareTools = (toolNames, options) => {
|
|
|
167
258
|
};
|
|
168
259
|
|
|
169
260
|
export {
|
|
261
|
+
shouldInlineImageUrlsForAgent,
|
|
262
|
+
inlineImageUrlsForCustomProvider,
|
|
170
263
|
prepareTools
|
|
171
264
|
};
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createCliLocalRuntimeAdapter,
|
|
3
3
|
summarizeEndpoint
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-7HVCFCZK.js";
|
|
5
5
|
import {
|
|
6
6
|
clipMultilineText
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-MZHSAPZP.js";
|
|
8
8
|
import {
|
|
9
9
|
runLocalAgentTurn
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-TA7VKOHU.js";
|
|
11
11
|
import {
|
|
12
12
|
resolveLocalRuntimeEnvFromPolicy
|
|
13
13
|
} from "./chunk-PDL2AV3E.js";
|
|
@@ -15,10 +15,10 @@ import {
|
|
|
15
15
|
import {
|
|
16
16
|
deleteServerSyncedCredential,
|
|
17
17
|
runLlm
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-Y5P3ZRGC.js";
|
|
19
19
|
import {
|
|
20
20
|
cleanupCliSessionForDialog
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-RWO5DGXI.js";
|
|
22
22
|
import {
|
|
23
23
|
getDialogAgentIds,
|
|
24
24
|
getPrimaryDialogAgentId
|
|
@@ -33,11 +33,11 @@ import {
|
|
|
33
33
|
normalizeAssistantContentBuffer,
|
|
34
34
|
planCompression,
|
|
35
35
|
serializeMessageContent
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-JFANOO7I.js";
|
|
37
37
|
import {
|
|
38
38
|
findModelConfig,
|
|
39
39
|
getModelConfig
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-OGGHETUE.js";
|
|
41
41
|
import {
|
|
42
42
|
createFileCredentialBroker
|
|
43
43
|
} from "./chunk-PDL2AV3E.js";
|
|
@@ -74,7 +74,7 @@ import {
|
|
|
74
74
|
selectRemoteServer,
|
|
75
75
|
selectRemoteServers,
|
|
76
76
|
selectRemoteSyncServers
|
|
77
|
-
} from "./chunk-
|
|
77
|
+
} from "./chunk-JU7J7EAV.js";
|
|
78
78
|
import {
|
|
79
79
|
asRecordOrEmpty
|
|
80
80
|
} from "./chunk-KX6YBIHG.js";
|
|
@@ -85,7 +85,7 @@ import {
|
|
|
85
85
|
createSpaceKey,
|
|
86
86
|
localSpaceAuthorityPatchStamp,
|
|
87
87
|
normalizeSpaceId
|
|
88
|
-
} from "./chunk-
|
|
88
|
+
} from "./chunk-WVTBAALN.js";
|
|
89
89
|
import {
|
|
90
90
|
patch,
|
|
91
91
|
read,
|
|
@@ -98,7 +98,7 @@ import {
|
|
|
98
98
|
uploadFileAction,
|
|
99
99
|
upsertSSREntity,
|
|
100
100
|
write
|
|
101
|
-
} from "./chunk-
|
|
101
|
+
} from "./chunk-VKG4HXYV.js";
|
|
102
102
|
import {
|
|
103
103
|
DB_PREFIX,
|
|
104
104
|
SEPARATOR,
|
|
@@ -8597,31 +8597,15 @@ var normalizeAppRouteId = (contentKey) => isAppContentKey(contentKey) ? contentK
|
|
|
8597
8597
|
var uiAskChoiceFunctionSchema = {
|
|
8598
8598
|
name: "ui_ask_choice",
|
|
8599
8599
|
description: [
|
|
8600
|
-
"\
|
|
8601
|
-
"",
|
|
8602
|
-
"\u8FD9\u662F\u4E00\u4E2A\u901A\u7528\u7684\u201C\u51FA\u9009\u9879\u201D\u5DE5\u5177\uFF0C\u9002\u7528\u4E8E\u591A\u79CD\u573A\u666F\uFF0C\u4F8B\u5982\uFF1A",
|
|
8603
|
-
"1\uFF09\u7528\u6237\u7684\u9700\u6C42\u6BD4\u8F83\u5BBD\u6CDB\u6216\u6A21\u7CCA\uFF0C\u4F60\u53EF\u4EE5\u7ED9\u51FA 2\uFF5E5 \u4E2A\u4E0D\u540C\u65B9\u5411\u7684\u5019\u9009\u65B9\u6848\uFF0C\u8BA9 TA \u5148\u9009\u4E00\u4E2A\u65B9\u5411\uFF1B",
|
|
8604
|
-
"2\uFF09\u4E00\u4E2A\u8BA1\u5212 / \u6D41\u7A0B\u5230\u4E86\u5206\u652F\u8282\u70B9\uFF0C\u9700\u8981\u7528\u6237\u51B3\u5B9A\u4E0B\u4E00\u6B65\u505A\u4EC0\u4E48\uFF1B",
|
|
8605
|
-
"3\uFF09\u4F60\u60F3\u4E3A\u7528\u6237\u8BBE\u8BA1\u4E00\u7EC4\u7EC3\u4E60\u9898\u3001\u6D4B\u8BD5\u9898\u6216\u95EE\u5377\u9898\uFF08\u5982\u51FA\u9898\u7EC3\u4E60\u3001\u4EBA\u683C\u6D4B\u8BD5\u7B49\u5355\u9009\u9898\uFF09\uFF1B",
|
|
8606
|
-
"4\uFF09\u5728\u65B0\u9636\u6BB5/\u65B0\u4F1A\u8BDD\u4E2D\uFF0C\u6839\u636E\u7CFB\u7EDF\u63D0\u793A\u6216\u7528\u6237\u753B\u50CF\uFF0C\u7ED9\u51FA\u82E5\u5E72\u201C\u63A5\u4E0B\u6765\u53EF\u4EE5\u5C1D\u8BD5\u7684\u4E8B\u60C5\u201D\uFF08\u4F8B\u5982\u529F\u80FD\u5BFC\u822A\u6216\u4F7F\u7528\u6280\u5DE7\uFF09\u3002",
|
|
8607
|
-
"",
|
|
8608
|
-
"\u4F7F\u7528\u5EFA\u8BAE\uFF1A",
|
|
8609
|
-
"- \u5F53\u4F60\u5224\u65AD\u201C\u5148\u7ED9\u51FA 2\uFF5E5 \u4E2A\u660E\u786E\u9009\u9879\u80FD\u663E\u8457\u5E2E\u7528\u6237\u7406\u6E05\u4E0B\u4E00\u6B65\u8981\u505A\u4EC0\u4E48\u201D\u65F6\uFF0C\u53EF\u4EE5\u4E3B\u52A8\u8C03\u7528\u672C\u5DE5\u5177\uFF1B",
|
|
8610
|
-
"- \u5982\u679C\u7528\u6237\u7684\u76EE\u6807\u5DF2\u7ECF\u975E\u5E38\u5177\u4F53\u3001\u6E05\u6670\uFF0C\u5E76\u4E14\u4F60\u53EF\u4EE5\u76F4\u63A5\u7ED9\u51FA\u9AD8\u8D28\u91CF\u7B54\u6848\uFF0C\u4F18\u5148\u76F4\u63A5\u56DE\u7B54\uFF0C\u800C\u4E0D\u662F\u518D\u5F39\u51FA\u9009\u62E9\u83DC\u5355\uFF1B",
|
|
8611
|
-
"- \u9ED8\u8BA4\u60C5\u51B5\u4E0B\uFF0C\u4E0D\u8981\u5728\u5B8C\u5168\u6CA1\u6709\u6709\u6548\u4E0A\u4E0B\u6587\u7684\u573A\u666F\uFF08\u4F8B\u5982\u7528\u6237\u53EA\u8BF4\u201C\u4F60\u597D\u201D\uFF09\u7ACB\u523B\u8C03\u7528\u672C\u5DE5\u5177\uFF0C\u9664\u975E\u7CFB\u7EDF\u63D0\u793A\u4E2D\u5DF2\u7ECF\u660E\u786E\u8981\u6C42\u4F60\u5728\u65B0\u4F1A\u8BDD\u5F00\u5934\u7528\u5B83\u6765\u751F\u6210\u6B22\u8FCE\u83DC\u5355\u6216\u529F\u80FD\u5BFC\u822A\uFF1B",
|
|
8612
|
-
"- \u8BF7\u628A\u7ED9\u7528\u6237\u770B\u7684\u95EE\u9898\u5199\u5728 question \u5B57\u6BB5\u4E2D\uFF0C\u4E0D\u8981\u5728\u540C\u4E00\u8F6E assistant \u666E\u901A\u6587\u672C\u91CC\u91CD\u590D\u8FD9\u53E5\u8BDD\uFF1B",
|
|
8613
|
-
"- \u6BCF\u4E2A\u9009\u9879\u7684 userMessage \u5EFA\u8BAE\u5199\u6210\u5B8C\u6574\u7684\u4E00\u53E5\u8BDD\uFF0C\u65B9\u4FBF\u540E\u7EED\u7406\u89E3\u4E0A\u4E0B\u6587\uFF1B\u5982\u679C\u7559\u7A7A\uFF0C\u5C06\u81EA\u52A8\u4F7F\u7528 label \u4F5C\u4E3A userMessage\u3002",
|
|
8614
|
-
"",
|
|
8615
|
-
"\u5728\u4EE3\u7801\u534F\u4F5C\u573A\u666F\u4E0B\u7684\u63A8\u8350\u7528\u6CD5\uFF1A",
|
|
8616
|
-
"- \u5982\u679C\u4F60\u5DF2\u7ECF\u5728\u672C\u8F6E assistant \u7684 content \u4E2D\u7ED9\u51FA\u4E86\u5206\u6790\u3001\u8BF4\u660E\u6216\u591A\u4E2A\u5907\u9009\u65B9\u6848\uFF0C\u53EF\u4EE5\u5728\u540C\u4E00\u8F6E\u6D88\u606F\u7684\u7ED3\u5C3E\u8C03\u7528\u672C\u5DE5\u5177\uFF0C\u8BF7\u7528\u6237\u9009\u62E9\u201C\u662F\u5426\u6839\u636E\u4E0A\u8FF0\u65B9\u6848\u5F00\u59CB\u5B9E\u9645\u4FEE\u6539\u4EE3\u7801\u201D\u6216\u201C\u4F18\u5148\u6267\u884C\u54EA\u4E00\u4E2A\u65B9\u6848/\u6B65\u9AA4\u201D\u3002",
|
|
8617
|
-
"- \u5728\u8FD9\u79CD\u60C5\u51B5\u4E0B\uFF0Cquestion \u5B57\u6BB5\u901A\u5E38\u662F\u4E00\u4E2A\u7B80\u77ED\u7684\u95EE\u9898\uFF08\u4F8B\u5982\uFF1A\u201C\u63A5\u4E0B\u6765\u4F60\u5E0C\u671B\u6211\u6309\u54EA\u4E2A\u65B9\u6848\u6765\u5177\u4F53\u4FEE\u6539\u4EE3\u7801\uFF1F\u201D\uFF09\uFF0C\u800C\u8BE6\u7EC6\u7684\u89E3\u91CA\u548C\u65B9\u6848\u63CF\u8FF0\u653E\u5728 content \u4E2D\u3002",
|
|
8618
|
-
"- \u5982\u679C\u5F53\u524D\u5BF9\u8BDD\u53EA\u9700\u8981\u4E00\u4E2A\u7B80\u5355\u7684\u9009\u62E9\uFF0C\u800C\u4E0D\u9700\u8981\u989D\u5916\u89E3\u91CA\uFF0C\u4F60\u4E5F\u53EF\u4EE5\u4E0D\u8F93\u51FA\u989D\u5916\u7684 content\uFF0C\u800C\u53EA\u8C03\u7528\u672C\u5DE5\u5177\uFF0C\u7531 question \u5B57\u6BB5\u76F4\u63A5\u5411\u7528\u6237\u63D0\u95EE\u3002",
|
|
8600
|
+
"\u8BA9\u7528\u6237\u5728 2\uFF5E5 \u4E2A\u4E92\u65A5\u9009\u9879\u4E4B\u95F4\u505A\u9009\u62E9\u7684\u901A\u7528\u201C\u51FA\u9009\u9879\u201D\u5DE5\u5177\u3002\u9002\u7528\u573A\u666F\uFF1A\u9700\u6C42\u6A21\u7CCA\u65F6\u7ED9\u65B9\u5411\u5019\u9009\u3001\u8BA1\u5212\u5206\u652F\u8282\u70B9\u51B3\u7B56\u3001\u51FA\u9898/\u95EE\u5377\u3001\u65B0\u4F1A\u8BDD\u529F\u80FD\u5BFC\u822A\u3002",
|
|
8619
8601
|
"",
|
|
8620
8602
|
"\u591A\u95EE\u9898 & \u591A\u9009\u652F\u6301\uFF1A",
|
|
8621
8603
|
"- \u5F53\u4F60\u9700\u8981\u4E00\u6B21\u95EE\u591A\u4E2A\u95EE\u9898\u65F6\uFF0C\u4F7F\u7528 questions \u6570\u7EC4\u4EE3\u66FF question+choices\u3002",
|
|
8622
8604
|
"- \u6BCF\u4E2A question \u53EF\u4EE5\u8BBE\u7F6E multiSelect: true \u5141\u8BB8\u591A\u9009\u3002",
|
|
8623
8605
|
"- \u6BCF\u4E2A question \u53EF\u4EE5\u8BBE\u7F6E allowOther: false \u9690\u85CF\u201C\u5176\u4ED6\u201D\u8F93\u5165\u6846\u3002",
|
|
8624
|
-
"- \u6BCF\u4E2A choice \u53EF\u4EE5\u52A0 detail \u5B57\u6BB5\u63D0\u4F9B\u66F4\u957F\u7684\u63CF\u8FF0\u3002"
|
|
8606
|
+
"- \u6BCF\u4E2A choice \u53EF\u4EE5\u52A0 detail \u5B57\u6BB5\u63D0\u4F9B\u66F4\u957F\u7684\u63CF\u8FF0\u3002",
|
|
8607
|
+
"",
|
|
8608
|
+
"\u4F55\u65F6\u8C03\u7528 / \u8C03\u7528\u89C4\u8303\u7684\u5B8C\u6574\u884C\u4E3A\u89C4\u5219\u7531\u7CFB\u7EDF\u63D0\u793A\u7684\u300C\u4EA4\u4E92\u8BF4\u660E\u300D\u5757\u6CE8\u5165\uFF0C\u4E0D\u5728\u6B64\u91CD\u590D\u3002"
|
|
8625
8609
|
].join("\n"),
|
|
8626
8610
|
parameters: {
|
|
8627
8611
|
type: "object",
|
|
@@ -10500,7 +10484,7 @@ var messageSlice = createSliceWithThunks({
|
|
|
10500
10484
|
runtimeOptions: args.runtimeOptions
|
|
10501
10485
|
});
|
|
10502
10486
|
if (agentKeyToUse) {
|
|
10503
|
-
const { streamAgentChatTurn } = await import("./agentSlice-
|
|
10487
|
+
const { streamAgentChatTurn } = await import("./agentSlice-6JAJOU3X.js");
|
|
10504
10488
|
await dispatch(
|
|
10505
10489
|
streamAgentChatTurn({
|
|
10506
10490
|
agentKey: agentKeyToUse,
|
|
@@ -13211,7 +13195,7 @@ var deleteDialogThunk = async (payload, thunkApi) => {
|
|
|
13211
13195
|
}
|
|
13212
13196
|
if (isCurrentDialog) {
|
|
13213
13197
|
await thunkApi.dispatch(resetMsgs());
|
|
13214
|
-
const { clearPendingAttachments: clearPendingAttachments2 } = await import("./dialogSlice-
|
|
13198
|
+
const { clearPendingAttachments: clearPendingAttachments2 } = await import("./dialogSlice-35LA3ZRG.js");
|
|
13215
13199
|
dispatch(clearPendingAttachments2());
|
|
13216
13200
|
clearWorkflow();
|
|
13217
13201
|
}
|
|
@@ -13220,35 +13204,35 @@ var deleteDialogThunk = async (payload, thunkApi) => {
|
|
|
13220
13204
|
|
|
13221
13205
|
// packages/chat/dialog/dialogSlice.ts
|
|
13222
13206
|
var runCreateDialogAction = async (args, thunkApi) => {
|
|
13223
|
-
const { createDialogAction } = await import("./createDialogAction-
|
|
13207
|
+
const { createDialogAction } = await import("./createDialogAction-I5WUWFJ6.js");
|
|
13224
13208
|
return createDialogAction(args, thunkApi);
|
|
13225
13209
|
};
|
|
13226
13210
|
var runCreateAgentAutomationAction = async (args, thunkApi) => {
|
|
13227
|
-
const { createAgentAutomationAction } = await import("./createAgentAutomationAction-
|
|
13211
|
+
const { createAgentAutomationAction } = await import("./createAgentAutomationAction-4NY4JLOK.js");
|
|
13228
13212
|
return createAgentAutomationAction(args, thunkApi);
|
|
13229
13213
|
};
|
|
13230
13214
|
var runUpdateDialogTitleAction = async (args, thunkApi) => {
|
|
13231
|
-
const { updateDialogTitleAction } = await import("./updateDialogTitleAction-
|
|
13215
|
+
const { updateDialogTitleAction } = await import("./updateDialogTitleAction-AWXNPUQJ.js");
|
|
13232
13216
|
return updateDialogTitleAction(args, thunkApi);
|
|
13233
13217
|
};
|
|
13234
13218
|
var runAddDialogAgentAction = async (args, thunkApi) => {
|
|
13235
|
-
const { addDialogAgentAction } = await import("./addDialogAgentAction-
|
|
13219
|
+
const { addDialogAgentAction } = await import("./addDialogAgentAction-V6CL2UCF.js");
|
|
13236
13220
|
return addDialogAgentAction(args, thunkApi);
|
|
13237
13221
|
};
|
|
13238
13222
|
var runRemoveDialogAgentAction = async (args, thunkApi) => {
|
|
13239
|
-
const { removeDialogAgentAction } = await import("./removeDialogAgentAction-
|
|
13223
|
+
const { removeDialogAgentAction } = await import("./removeDialogAgentAction-XUZYQBV4.js");
|
|
13240
13224
|
return removeDialogAgentAction(args, thunkApi);
|
|
13241
13225
|
};
|
|
13242
13226
|
var runSetPrimaryDialogAgentAction = async (args, thunkApi) => {
|
|
13243
|
-
const { setPrimaryDialogAgentAction } = await import("./setPrimaryDialogAgentAction-
|
|
13227
|
+
const { setPrimaryDialogAgentAction } = await import("./setPrimaryDialogAgentAction-HRFTDB44.js");
|
|
13244
13228
|
return setPrimaryDialogAgentAction(args, thunkApi);
|
|
13245
13229
|
};
|
|
13246
13230
|
var runSetDialogExtraReferencesAction = async (args, thunkApi) => {
|
|
13247
|
-
const { setDialogExtraReferencesAction } = await import("./setDialogExtraReferencesAction-
|
|
13231
|
+
const { setDialogExtraReferencesAction } = await import("./setDialogExtraReferencesAction-PTAIFKGM.js");
|
|
13248
13232
|
return setDialogExtraReferencesAction(args, thunkApi);
|
|
13249
13233
|
};
|
|
13250
13234
|
var runHandleSendMessageAction = async (args, thunkApi) => {
|
|
13251
|
-
const { handleSendMessageAction } = await import("./handleSendMessageAction-
|
|
13235
|
+
const { handleSendMessageAction } = await import("./handleSendMessageAction-FWTLQGOZ.js");
|
|
13252
13236
|
return handleSendMessageAction(args, thunkApi);
|
|
13253
13237
|
};
|
|
13254
13238
|
function clearDialogState() {
|
|
@@ -13261,7 +13245,7 @@ var createPageAndAddReference = createAsyncThunk(
|
|
|
13261
13245
|
async (payload, { dispatch, getState, rejectWithValue }) => {
|
|
13262
13246
|
const { slateData, jsonData, title, type, fileId, groupId, dialogKey } = payload;
|
|
13263
13247
|
try {
|
|
13264
|
-
const { createDocState } = await import("./docStore-
|
|
13248
|
+
const { createDocState } = await import("./docStore-3CP2IO6M.js");
|
|
13265
13249
|
const pageKey = await createDocState(
|
|
13266
13250
|
{ slateData, title },
|
|
13267
13251
|
{ dispatch, getState }
|
|
@@ -19390,7 +19374,7 @@ var fetchSpaceAction = async (input, thunkAPI) => {
|
|
|
19390
19374
|
const spaceKey = createSpaceKey.space(spaceId);
|
|
19391
19375
|
const readSpace = async (dbKey) => {
|
|
19392
19376
|
try {
|
|
19393
|
-
const { read: read2, readAndWait: readAndWait2 } = await import("./dbSlice-
|
|
19377
|
+
const { read: read2, readAndWait: readAndWait2 } = await import("./dbSlice-J4PUZ6Y5.js");
|
|
19394
19378
|
if (fresh) {
|
|
19395
19379
|
return await dispatch(readAndWait2(dbKey)).unwrap();
|
|
19396
19380
|
}
|
|
@@ -19987,6 +19971,10 @@ var selectSpaceLoading = createSelector(
|
|
|
19987
19971
|
selectSpaceState,
|
|
19988
19972
|
(space) => space.loading
|
|
19989
19973
|
);
|
|
19974
|
+
var selectMemberSpacesLoaded = createSelector(
|
|
19975
|
+
selectSpaceState,
|
|
19976
|
+
(space) => space.memberSpaces !== null
|
|
19977
|
+
);
|
|
19990
19978
|
var selectMembershipStatus = createSelector(
|
|
19991
19979
|
selectSpaceState,
|
|
19992
19980
|
(space) => space.membershipStatus ?? "idle"
|
|
@@ -20119,6 +20107,7 @@ export {
|
|
|
20119
20107
|
selectAllMemberSpaces,
|
|
20120
20108
|
selectOwnedMemberSpaces,
|
|
20121
20109
|
selectSpaceLoading,
|
|
20110
|
+
selectMemberSpacesLoaded,
|
|
20122
20111
|
selectMembershipStatus,
|
|
20123
20112
|
selectSpaceInitialized,
|
|
20124
20113
|
selectCollapsedCategories,
|