nolo-cli 0.47.0-alpha.3 → 0.47.0-alpha.5
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-5PG6CUWD.js → _executeModel-Q4NLKUPH.js} +22 -20
- package/{agentDeleteCommand-SHSPQZHI.js → agentDeleteCommand-6MHA67Q2.js} +10 -10
- package/{agentEmailCommands-TNFWV6XO.js → agentEmailCommands-L3XZ237J.js} +27 -24
- package/{agentListCommands-5QTNEYMQ.js → agentListCommands-6PIBJFKH.js} +12 -12
- package/{agentMachineCommands-OENA64ZO.js → agentMachineCommands-POTNZ57E.js} +14 -13
- package/{agentRecordCommands-JLN2EWGC.js → agentRecordCommands-IMRKLUIK.js} +26 -23
- package/{agentRunCommand-CQM7DINV.js → agentRunCommand-LFZCDJLJ.js} +26 -23
- package/{agentRuntimeLocal-ZKXYFLXI.js → agentRuntimeLocal-BVUV26QD.js} +10 -10
- package/{agentSlice-NKFLP3RI.js → agentSlice-CIN6FY6Z.js} +1 -1
- package/{appDeleteCommands-XYGAZIJX.js → appDeleteCommands-QZBYALTD.js} +10 -10
- package/{appDeployCommands-7T5CABRB.js → appDeployCommands-UDUJPOBN.js} +10 -10
- package/{appDeployStatusCommands-KTFQMRPZ.js → appDeployStatusCommands-P2ZTUCDR.js} +10 -10
- package/{appGetCommands-HOX2ULSV.js → appGetCommands-346YWTIX.js} +10 -10
- package/{appListCommands-3SLCEHND.js → appListCommands-ML7PAZXO.js} +10 -10
- package/{authCommand-OY2E2VQK.js → authCommand-7A4LJ7RD.js} +7 -7
- package/{chatQueueReduxAdapter-WMMBQK3Y.js → chatQueueReduxAdapter-46OTJS77.js} +7 -7
- package/{chunk-5UOBIU5G.js → chunk-2PGAWTDB.js} +2 -2
- package/{chunk-RQSOAMPJ.js → chunk-3L2WKC3W.js} +12 -7
- package/{chunk-XO3G35OV.js → chunk-4UOFNBUR.js} +1 -1
- package/chunk-5XTOKQLW.js +121 -0
- package/{chunk-5BPZLBFB.js → chunk-5Z7NTYAZ.js} +13 -11
- package/{chunk-FAWK6DBF.js → chunk-6DYGT4IA.js} +11 -11
- package/{chunk-MQRZ5QUH.js → chunk-ALXHV7NK.js} +4 -2
- package/{chunk-WPFNAEIW.js → chunk-BEDKTILE.js} +1 -1
- package/{chunk-OLNC7AWK.js → chunk-C2WF2OY7.js} +1 -1
- package/{chunk-5OUK7FZE.js → chunk-CKCHKUQZ.js} +1 -1
- package/{chunk-I4JISVWK.js → chunk-D45NILIX.js} +1 -1
- package/{chunk-MUIJYGYW.js → chunk-D57WA7W3.js} +5 -5
- package/{chunk-URBGEE42.js → chunk-E5HKZ4TR.js} +2 -2
- package/chunk-EADNWBAZ.js +59 -0
- package/{chunk-6LYUN76O.js → chunk-EK6J2BLB.js} +3 -3
- package/{chunk-3N2KFW63.js → chunk-EUG45QJR.js} +43 -20
- package/{chunk-XLIHNL4X.js → chunk-FTGZTG2J.js} +15 -13
- package/{chunk-XMI3APSU.js → chunk-H3YNPYSN.js} +8 -8
- package/{chunk-G46DB6KG.js → chunk-HMMOAG2I.js} +3 -3
- package/{chunk-AV2CELZZ.js → chunk-IGQMIZ5L.js} +2 -2
- package/{chunk-5QRCPERU.js → chunk-K3HS5RNN.js} +1 -1
- package/{chunk-5PPFYHU2.js → chunk-KZCDMZ6M.js} +2 -2
- package/chunk-NF64D32W.js +8 -0
- package/{chunk-GYXN23QE.js → chunk-OTYXCO4M.js} +21 -182
- package/{chunk-5TNI2BMD.js → chunk-QKF5I66W.js} +3 -3
- package/{chunk-H2JQB6B6.js → chunk-QPIMHSA5.js} +2 -2
- package/{chunk-IWUPQUWA.js → chunk-U72222TN.js} +2 -2
- package/{chunk-YNOGNUBC.js → chunk-UL3AIGAQ.js} +77 -31
- package/{chunk-OZVGA4SY.js → chunk-UX4WJK6W.js} +1 -1
- package/{chunk-EXLOROHG.js → chunk-UYWXQCPH.js} +1 -1
- package/{chunk-4MXGXSYN.js → chunk-V5LQH25J.js} +2 -2
- package/{chunk-ENYDQKOB.js → chunk-VFN256RI.js} +0 -1
- package/{chunk-4ZNDBDWG.js → chunk-XY3V7K4L.js} +5 -6
- package/{chunk-7XTC3KRG.js → chunk-Y7TGWSUN.js} +1 -1
- package/{chunk-MZXZJVVD.js → chunk-YB7675WX.js} +2 -2
- package/{chunk-E2QH2AYX.js → chunk-Z7A54NFZ.js} +1 -1
- package/{createAgentAutomationAction-ENDNA3Q4.js → createAgentAutomationAction-OFRNHZWC.js} +8 -8
- package/{createDialogAction-2KNX6S2D.js → createDialogAction-2FF2JSWP.js} +9 -9
- package/{createPageAction-SNBCYPK6.js → createPageAction-6MTVIU3J.js} +8 -8
- package/{dialogCommands-COU5C635.js → dialogCommands-MMLBXSBC.js} +14 -11
- package/{dialogSlice-RTPOD6EW.js → dialogSlice-MONRO6AH.js} +7 -7
- package/{docCreateCommands-JWY25UFB.js → docCreateCommands-K53AHACN.js} +10 -10
- package/{docDeleteCommands-BPJOCSX4.js → docDeleteCommands-MJVGF67W.js} +10 -10
- package/{docReadCommands-BSEZCYTQ.js → docReadCommands-VWNRVF6W.js} +10 -10
- package/{docStore-TYHVLU7G.js → docStore-A3UWWGMV.js} +9 -9
- package/{docUpdateCommands-S2IE2VV4.js → docUpdateCommands-QUDD5TUR.js} +10 -10
- package/{getPricing-X3HXP6VQ.js → getPricing-AQ5MSXFO.js} +3 -3
- package/{handleSendMessageAction-QYXDQXGH.js → handleSendMessageAction-6TQ7JM5X.js} +7 -7
- package/index.js +47 -47
- package/{machineCommands-MHKXEUGC.js → machineCommands-W7QEV6Q6.js} +27 -24
- package/{machineWsRunDispatch-ZV736PJZ.js → machineWsRunDispatch-5P6X4WMI.js} +26 -23
- package/{models-7LWATQFH.js → models-N4NXQ44D.js} +2 -2
- package/package.json +1 -1
- package/{readlineWorkspace-L3IFOIIV.js → readlineWorkspace-PPPF6OCO.js} +28 -25
- package/{runAgentClientLoop-GBLDVBT5.js → runAgentClientLoop-YBZTAE2J.js} +20 -18
- package/{spaceCommands-XOLPJMRK.js → spaceCommands-FDZ4P33G.js} +10 -10
- package/{spaceSlice-OQPAGQDP.js → spaceSlice-NTZBL55S.js} +8 -8
- package/{streamAgentChatTurn-SN5XJJ7U.js → streamAgentChatTurn-N56LGQG4.js} +23 -21
- package/{tools-Y65Y3CI4.js → tools-GROQHVCL.js} +15 -13
- package/{tuiSummaryLlmCaller-NBTWT57U.js → tuiSummaryLlmCaller-32XPVSRB.js} +5 -5
- package/{updateDialogTitleAction-OAOP7CCE.js → updateDialogTitleAction-WYAVJPLS.js} +8 -8
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import {
|
|
2
|
+
isGatewayHttpStatus
|
|
3
|
+
} from "./chunk-NF64D32W.js";
|
|
1
4
|
import {
|
|
2
5
|
CORE_DRAIN_REASON,
|
|
3
|
-
isGatewayHttpStatus,
|
|
4
6
|
parseRetryAfterHeaderMs
|
|
5
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-3L2WKC3W.js";
|
|
6
8
|
import {
|
|
7
9
|
asTrimmedLowercaseString
|
|
8
10
|
} from "./chunk-QSJ3HFEF.js";
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
providerHttpFailure,
|
|
8
8
|
readSseFrames,
|
|
9
9
|
throwIfChatCompletionStreamFailed
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-IGQMIZ5L.js";
|
|
11
11
|
import {
|
|
12
12
|
FRESH_TOOL_OUTPUT_MAX_CHARS,
|
|
13
13
|
MAX_HISTORICAL_TOOL_CONTENT_CHARS,
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
resolveHistoricalToolContentCap,
|
|
18
18
|
resolveToolOutputProfile,
|
|
19
19
|
stripImagePartsFromMessages
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-4UOFNBUR.js";
|
|
21
21
|
import {
|
|
22
22
|
sanitizeForOutbound
|
|
23
23
|
} from "./chunk-T27IEBNQ.js";
|
|
@@ -36,7 +36,7 @@ import {
|
|
|
36
36
|
requiresBareImageUrl,
|
|
37
37
|
resolveToolGuidedSections,
|
|
38
38
|
toBareImageUrlMessages
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-HMMOAG2I.js";
|
|
40
40
|
import {
|
|
41
41
|
convertMessagesToResponsesInput,
|
|
42
42
|
extractReasoningFromResponseOutput,
|
|
@@ -50,7 +50,7 @@ import {
|
|
|
50
50
|
import {
|
|
51
51
|
buildProviderAuthHeaders,
|
|
52
52
|
buildProviderExecutionPlan
|
|
53
|
-
} from "./chunk-
|
|
53
|
+
} from "./chunk-2PGAWTDB.js";
|
|
54
54
|
import {
|
|
55
55
|
NOLO_WORKSPACE_TOOL_NAMES,
|
|
56
56
|
buildNoloWorkspaceCommandArgs,
|
|
@@ -69,7 +69,7 @@ import {
|
|
|
69
69
|
resolveEmptyAssistantFallbackMessage,
|
|
70
70
|
resolveEmptyAssistantOutcome,
|
|
71
71
|
resolveTruncatedReasoningTailLog
|
|
72
|
-
} from "./chunk-
|
|
72
|
+
} from "./chunk-V5LQH25J.js";
|
|
73
73
|
import {
|
|
74
74
|
COMPACTION_SUMMARY_SCHEMA_VERSION,
|
|
75
75
|
COMPACTION_SUMMARY_SYSTEM_PROMPT,
|
|
@@ -6,10 +6,10 @@ import {
|
|
|
6
6
|
} from "./chunk-AGGIDPCZ.js";
|
|
7
7
|
import {
|
|
8
8
|
getModelConfig
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-UX4WJK6W.js";
|
|
10
10
|
import {
|
|
11
11
|
isPlatformHostedImageModel
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-VFN256RI.js";
|
|
13
13
|
import {
|
|
14
14
|
asOptionalFiniteNumber
|
|
15
15
|
} from "./chunk-WWC7I6TA.js";
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// packages/cli/client/localRuntimeFetchRetry.ts
|
|
2
|
+
import { request as httpRequest } from "node:http";
|
|
3
|
+
import { request as httpsRequest } from "node:https";
|
|
4
|
+
function toNodeRequestBody(body) {
|
|
5
|
+
if (typeof body === "string") return Buffer.from(body);
|
|
6
|
+
if (body instanceof Uint8Array) return Buffer.from(body);
|
|
7
|
+
if (body instanceof ArrayBuffer) return Buffer.from(body);
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
async function defaultLoopbackRequest(input, init) {
|
|
11
|
+
const target = typeof input === "string" || input instanceof URL ? new URL(String(input)) : new URL(input.url);
|
|
12
|
+
const headers = new Headers(init?.headers);
|
|
13
|
+
const body = toNodeRequestBody(init?.body);
|
|
14
|
+
if (body && !headers.has("Content-Length")) {
|
|
15
|
+
headers.set("Content-Length", String(body.byteLength));
|
|
16
|
+
}
|
|
17
|
+
return await new Promise((resolve, reject) => {
|
|
18
|
+
const requestImpl = target.protocol === "https:" ? httpsRequest : httpRequest;
|
|
19
|
+
const req = requestImpl(
|
|
20
|
+
target,
|
|
21
|
+
{
|
|
22
|
+
method: init?.method ?? "GET",
|
|
23
|
+
headers: Object.fromEntries(headers.entries())
|
|
24
|
+
},
|
|
25
|
+
(res) => {
|
|
26
|
+
const chunks = [];
|
|
27
|
+
res.on(
|
|
28
|
+
"data",
|
|
29
|
+
(chunk) => chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk))
|
|
30
|
+
);
|
|
31
|
+
res.on("end", () => {
|
|
32
|
+
resolve(
|
|
33
|
+
new Response(Buffer.concat(chunks), {
|
|
34
|
+
status: res.statusCode ?? 500,
|
|
35
|
+
headers: res.headers
|
|
36
|
+
})
|
|
37
|
+
);
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
);
|
|
41
|
+
req.on("error", reject);
|
|
42
|
+
init?.signal?.addEventListener(
|
|
43
|
+
"abort",
|
|
44
|
+
() => {
|
|
45
|
+
req.destroy(
|
|
46
|
+
init.signal?.reason instanceof Error ? init.signal?.reason : new Error("request aborted")
|
|
47
|
+
);
|
|
48
|
+
reject(init.signal?.reason ?? new Error("request aborted"));
|
|
49
|
+
},
|
|
50
|
+
{ once: true }
|
|
51
|
+
);
|
|
52
|
+
if (body) req.write(body);
|
|
53
|
+
req.end();
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export {
|
|
58
|
+
defaultLoopbackRequest
|
|
59
|
+
};
|
|
@@ -304,7 +304,7 @@ var slice = createSliceWithThunks({
|
|
|
304
304
|
const overrides = {};
|
|
305
305
|
if (args.systemPromptOverride !== void 0) overrides.prompt = args.systemPromptOverride;
|
|
306
306
|
if (args.toolsOverride !== void 0) overrides.tools = args.toolsOverride;
|
|
307
|
-
const { _executeModel } = await import("./_executeModel-
|
|
307
|
+
const { _executeModel } = await import("./_executeModel-Q4NLKUPH.js");
|
|
308
308
|
return _executeModel(
|
|
309
309
|
{
|
|
310
310
|
isStreaming: args.isStreaming ?? false,
|
|
@@ -325,7 +325,7 @@ var slice = createSliceWithThunks({
|
|
|
325
325
|
* - 循环直到无工具调用或触发其他运行时停止条件
|
|
326
326
|
*/
|
|
327
327
|
runAgent: create.asyncThunk(async (args, thunkApi) => {
|
|
328
|
-
const { runAgentClientLoop } = await import("./runAgentClientLoop-
|
|
328
|
+
const { runAgentClientLoop } = await import("./runAgentClientLoop-YBZTAE2J.js");
|
|
329
329
|
const { content: loopContent, toolCallCount } = await runAgentClientLoop(
|
|
330
330
|
{
|
|
331
331
|
agentKey: args.agentKey,
|
|
@@ -341,7 +341,7 @@ var slice = createSliceWithThunks({
|
|
|
341
341
|
* 聊天轮次流式 Agent 调用
|
|
342
342
|
*/
|
|
343
343
|
streamAgentChatTurn: create.asyncThunk(async (args, thunkApi) => {
|
|
344
|
-
const { streamAgentChatTurnHandler } = await import("./streamAgentChatTurn-
|
|
344
|
+
const { streamAgentChatTurnHandler } = await import("./streamAgentChatTurn-N56LGQG4.js");
|
|
345
345
|
return streamAgentChatTurnHandler(args, thunkApi);
|
|
346
346
|
}),
|
|
347
347
|
/**
|
|
@@ -8,6 +8,13 @@ import {
|
|
|
8
8
|
readDbRecordFromServers,
|
|
9
9
|
readLiveDbRecordAfterTombstoneMerge
|
|
10
10
|
} from "./chunk-Q24S4NDF.js";
|
|
11
|
+
import {
|
|
12
|
+
fetchWithTransientRetry
|
|
13
|
+
} from "./chunk-5XTOKQLW.js";
|
|
14
|
+
import {
|
|
15
|
+
DRAIN_EXHAUSTED_USER_MESSAGE,
|
|
16
|
+
isDrainExhaustedResponse
|
|
17
|
+
} from "./chunk-3L2WKC3W.js";
|
|
11
18
|
import {
|
|
12
19
|
buildDialogAttachmentPlan,
|
|
13
20
|
extractFileContentIds
|
|
@@ -4892,6 +4899,13 @@ function deriveToolErrors(toolMessages) {
|
|
|
4892
4899
|
}
|
|
4893
4900
|
return uniq(errors);
|
|
4894
4901
|
}
|
|
4902
|
+
async function describeReadFailureStatus(res) {
|
|
4903
|
+
if (res.status !== 503) return `HTTP ${res.status}`;
|
|
4904
|
+
if (await isDrainExhaustedResponse(res)) {
|
|
4905
|
+
return `HTTP 503\uFF08${DRAIN_EXHAUSTED_USER_MESSAGE}\uFF09`;
|
|
4906
|
+
}
|
|
4907
|
+
return "HTTP 503";
|
|
4908
|
+
}
|
|
4895
4909
|
async function readDialogOverHttp(args) {
|
|
4896
4910
|
const authHeaders = {
|
|
4897
4911
|
Authorization: `Bearer ${args.authToken}`,
|
|
@@ -4899,17 +4913,21 @@ async function readDialogOverHttp(args) {
|
|
|
4899
4913
|
};
|
|
4900
4914
|
const buildGetConvMsgsBody = () => JSON.stringify({ dialogId: args.dialogId, dialogKey: args.dialogKey, limit: args.limit });
|
|
4901
4915
|
const readViaBridge = async () => {
|
|
4902
|
-
const bridgeRes = await
|
|
4903
|
-
|
|
4904
|
-
|
|
4905
|
-
|
|
4906
|
-
|
|
4907
|
-
|
|
4908
|
-
|
|
4909
|
-
|
|
4910
|
-
|
|
4916
|
+
const bridgeRes = await fetchWithTransientRetry(
|
|
4917
|
+
args.fetchImpl,
|
|
4918
|
+
`${args.base}/api/dialog-read`,
|
|
4919
|
+
{
|
|
4920
|
+
method: "POST",
|
|
4921
|
+
headers: authHeaders,
|
|
4922
|
+
body: JSON.stringify({
|
|
4923
|
+
dialogKey: args.dialogKey,
|
|
4924
|
+
dialogId: args.dialogId,
|
|
4925
|
+
limit: args.limit
|
|
4926
|
+
})
|
|
4927
|
+
}
|
|
4928
|
+
);
|
|
4911
4929
|
if (!bridgeRes.ok) {
|
|
4912
|
-
throw Object.assign(new Error(`dialog read bridge failed:
|
|
4930
|
+
throw Object.assign(new Error(`dialog read bridge failed: ${await describeReadFailureStatus(bridgeRes)}`), {
|
|
4913
4931
|
status: bridgeRes.status,
|
|
4914
4932
|
base: args.base
|
|
4915
4933
|
});
|
|
@@ -4928,40 +4946,45 @@ async function readDialogOverHttp(args) {
|
|
|
4928
4946
|
};
|
|
4929
4947
|
};
|
|
4930
4948
|
if (args.messagesOnly) {
|
|
4931
|
-
const msgsOnlyRes = await
|
|
4932
|
-
|
|
4933
|
-
|
|
4934
|
-
|
|
4935
|
-
|
|
4949
|
+
const msgsOnlyRes = await fetchWithTransientRetry(
|
|
4950
|
+
args.fetchImpl,
|
|
4951
|
+
`${args.base}/rpc/getConvMsgs`,
|
|
4952
|
+
{
|
|
4953
|
+
method: "POST",
|
|
4954
|
+
headers: authHeaders,
|
|
4955
|
+
body: buildGetConvMsgsBody()
|
|
4956
|
+
}
|
|
4957
|
+
);
|
|
4936
4958
|
if (!msgsOnlyRes.ok) {
|
|
4937
4959
|
if (msgsOnlyRes.status === 401 || msgsOnlyRes.status === 403) return readViaBridge();
|
|
4938
|
-
throw Object.assign(new Error(`read dialog messages failed:
|
|
4960
|
+
throw Object.assign(new Error(`read dialog messages failed: ${await describeReadFailureStatus(msgsOnlyRes)}`), {
|
|
4939
4961
|
status: msgsOnlyRes.status,
|
|
4940
4962
|
base: args.base
|
|
4941
4963
|
});
|
|
4942
4964
|
}
|
|
4943
4965
|
return { meta: null, msgs: await msgsOnlyRes.json(), source: "http" };
|
|
4944
4966
|
}
|
|
4945
|
-
const metaRes = await
|
|
4967
|
+
const metaRes = await fetchWithTransientRetry(
|
|
4968
|
+
args.fetchImpl,
|
|
4946
4969
|
`${args.base}/api/v1/db/read/${encodeURIComponent(args.dialogKey)}`,
|
|
4947
4970
|
{ headers: { Authorization: `Bearer ${args.authToken}` } }
|
|
4948
4971
|
);
|
|
4949
4972
|
if (!metaRes.ok) {
|
|
4950
4973
|
if (metaRes.status === 401 || metaRes.status === 403) return readViaBridge();
|
|
4951
|
-
throw Object.assign(new Error(`read dialog meta failed:
|
|
4974
|
+
throw Object.assign(new Error(`read dialog meta failed: ${await describeReadFailureStatus(metaRes)}`), {
|
|
4952
4975
|
status: metaRes.status,
|
|
4953
4976
|
base: args.base
|
|
4954
4977
|
});
|
|
4955
4978
|
}
|
|
4956
4979
|
const meta = await metaRes.json();
|
|
4957
|
-
const msgsRes = await args.fetchImpl
|
|
4980
|
+
const msgsRes = await fetchWithTransientRetry(args.fetchImpl, `${args.base}/rpc/getConvMsgs`, {
|
|
4958
4981
|
method: "POST",
|
|
4959
4982
|
headers: authHeaders,
|
|
4960
4983
|
body: buildGetConvMsgsBody()
|
|
4961
4984
|
});
|
|
4962
4985
|
if (!msgsRes.ok) {
|
|
4963
4986
|
if (msgsRes.status === 401 || msgsRes.status === 403) return readViaBridge();
|
|
4964
|
-
throw Object.assign(new Error(`read dialog messages failed:
|
|
4987
|
+
throw Object.assign(new Error(`read dialog messages failed: ${await describeReadFailureStatus(msgsRes)}`), {
|
|
4965
4988
|
status: msgsRes.status,
|
|
4966
4989
|
base: args.base
|
|
4967
4990
|
});
|
|
@@ -16,11 +16,10 @@ import {
|
|
|
16
16
|
getCliLocale,
|
|
17
17
|
isBuiltinNoloAgentRef,
|
|
18
18
|
isSubtaskRun,
|
|
19
|
-
isTransientFetchError,
|
|
20
19
|
parseAgentRunEvent,
|
|
21
20
|
t,
|
|
22
21
|
toolLabel
|
|
23
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-OTYXCO4M.js";
|
|
24
23
|
import {
|
|
25
24
|
getReadableCliDb
|
|
26
25
|
} from "./chunk-43CXXVJD.js";
|
|
@@ -53,10 +52,13 @@ import {
|
|
|
53
52
|
} from "./chunk-LTRXGFMS.js";
|
|
54
53
|
import {
|
|
55
54
|
formatAgentListCard
|
|
56
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-UL3AIGAQ.js";
|
|
56
|
+
import {
|
|
57
|
+
isTransientFetchError
|
|
58
|
+
} from "./chunk-5XTOKQLW.js";
|
|
57
59
|
import {
|
|
58
60
|
isGatewayHttpStatus
|
|
59
|
-
} from "./chunk-
|
|
61
|
+
} from "./chunk-NF64D32W.js";
|
|
60
62
|
import {
|
|
61
63
|
formatFinishedRunCard,
|
|
62
64
|
formatListRunsCard,
|
|
@@ -72,12 +74,12 @@ import {
|
|
|
72
74
|
chooseMemoryOwners,
|
|
73
75
|
loadMemoryCandidatesFromDb,
|
|
74
76
|
resolveAgentMemoryPolicy
|
|
75
|
-
} from "./chunk-
|
|
77
|
+
} from "./chunk-XY3V7K4L.js";
|
|
76
78
|
import {
|
|
77
79
|
API_REPORTED_COST_MULTIPLIER,
|
|
78
80
|
normalizeUsage,
|
|
79
81
|
parseUiAskChoiceContent
|
|
80
|
-
} from "./chunk-
|
|
82
|
+
} from "./chunk-6DYGT4IA.js";
|
|
81
83
|
import {
|
|
82
84
|
getDefaultCliLocalRuntimeDb
|
|
83
85
|
} from "./chunk-IA3A5373.js";
|
|
@@ -93,10 +95,10 @@ import {
|
|
|
93
95
|
LOCAL_TURN_ABORTED_CODE,
|
|
94
96
|
readActionGate,
|
|
95
97
|
readCommandActionGatePayload
|
|
96
|
-
} from "./chunk-
|
|
98
|
+
} from "./chunk-D57WA7W3.js";
|
|
97
99
|
import {
|
|
98
100
|
resolveAgentRuntimeConfigFromRecord
|
|
99
|
-
} from "./chunk-
|
|
101
|
+
} from "./chunk-4UOFNBUR.js";
|
|
100
102
|
import {
|
|
101
103
|
createThinkParserState,
|
|
102
104
|
flushThinkParser,
|
|
@@ -105,20 +107,20 @@ import {
|
|
|
105
107
|
import {
|
|
106
108
|
resolveClientVersion,
|
|
107
109
|
resolvePlatformAuthToken
|
|
108
|
-
} from "./chunk-
|
|
110
|
+
} from "./chunk-2PGAWTDB.js";
|
|
109
111
|
import {
|
|
110
112
|
isQuotaExhaustedError
|
|
111
113
|
} from "./chunk-IWUMSAQF.js";
|
|
112
114
|
import {
|
|
113
115
|
DEFAULT_CONTEXT_WINDOW,
|
|
114
116
|
getModelContextWindow
|
|
115
|
-
} from "./chunk-
|
|
117
|
+
} from "./chunk-V5LQH25J.js";
|
|
116
118
|
import {
|
|
117
119
|
clipCompactText
|
|
118
120
|
} from "./chunk-GK74OOFT.js";
|
|
119
121
|
import {
|
|
120
122
|
findModelConfig
|
|
121
|
-
} from "./chunk-
|
|
123
|
+
} from "./chunk-UX4WJK6W.js";
|
|
122
124
|
import {
|
|
123
125
|
compactWhitespace
|
|
124
126
|
} from "./chunk-DWLEOOGR.js";
|
|
@@ -143,7 +145,7 @@ import {
|
|
|
143
145
|
CLIENT_VERSION_TOO_OLD_CODE,
|
|
144
146
|
NOLO_CLIENT_VERSION_HEADER,
|
|
145
147
|
buildClientVersionUpgradeMessage
|
|
146
|
-
} from "./chunk-
|
|
148
|
+
} from "./chunk-VFN256RI.js";
|
|
147
149
|
import {
|
|
148
150
|
parsePositiveFiniteNumberOrFallback
|
|
149
151
|
} from "./chunk-Y5GCAMGP.js";
|
|
@@ -5442,7 +5444,7 @@ function findCollapsedPasteSpanAt(buffer, pos, opts = {}) {
|
|
|
5442
5444
|
// packages/cli/client/agentRun.ts
|
|
5443
5445
|
import { ulid } from "ulid";
|
|
5444
5446
|
async function loadRunLocalAgentTurn() {
|
|
5445
|
-
const { runLocalAgentTurn } = await import("./agentRuntimeLocal-
|
|
5447
|
+
const { runLocalAgentTurn } = await import("./agentRuntimeLocal-BVUV26QD.js");
|
|
5446
5448
|
return runLocalAgentTurn;
|
|
5447
5449
|
}
|
|
5448
5450
|
async function resolveCurrentMachineId(options) {
|
|
@@ -5,14 +5,14 @@ import {
|
|
|
5
5
|
inlineImageUrlsForCustomProvider,
|
|
6
6
|
prepareTools,
|
|
7
7
|
shouldInlineImageUrlsForAgent
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-U72222TN.js";
|
|
9
9
|
import {
|
|
10
10
|
INVALID_TOOL_ARGS_REPLACEMENT,
|
|
11
11
|
buildInvalidToolCallSelfHealResult,
|
|
12
12
|
parseToolCallArguments,
|
|
13
13
|
performFetchRequest,
|
|
14
14
|
sanitizeOutboundMessages
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-5Z7NTYAZ.js";
|
|
16
16
|
import {
|
|
17
17
|
createSSEParser,
|
|
18
18
|
createToolRunId,
|
|
@@ -23,22 +23,22 @@ import {
|
|
|
23
23
|
toolRunSetPending,
|
|
24
24
|
toolRunStarted,
|
|
25
25
|
toolRunSucceeded
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-UL3AIGAQ.js";
|
|
27
27
|
import {
|
|
28
28
|
getPublicImageAgentMode
|
|
29
29
|
} from "./chunk-VIDPVFP3.js";
|
|
30
30
|
import {
|
|
31
31
|
getCurrentSpaceId
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-QPIMHSA5.js";
|
|
33
33
|
import {
|
|
34
34
|
addToolMessage,
|
|
35
35
|
messageStreamEnd,
|
|
36
36
|
messageStreaming,
|
|
37
37
|
updateToolMessage
|
|
38
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-6DYGT4IA.js";
|
|
39
39
|
import {
|
|
40
40
|
streamAgentChatTurn
|
|
41
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-EK6J2BLB.js";
|
|
42
42
|
import {
|
|
43
43
|
addActiveController,
|
|
44
44
|
removeActiveController,
|
|
@@ -56,10 +56,10 @@ import {
|
|
|
56
56
|
import {
|
|
57
57
|
EMPTY_ASSISTANT_REPAIR_PROMPT,
|
|
58
58
|
getModelInfo
|
|
59
|
-
} from "./chunk-
|
|
59
|
+
} from "./chunk-V5LQH25J.js";
|
|
60
60
|
import {
|
|
61
61
|
getApiEndpoint
|
|
62
|
-
} from "./chunk-
|
|
62
|
+
} from "./chunk-UX4WJK6W.js";
|
|
63
63
|
import {
|
|
64
64
|
toErrorMessage
|
|
65
65
|
} from "./chunk-HNMXYYJR.js";
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
PLATFORM_HOSTED_KIMI_K3_MODEL,
|
|
12
12
|
isFireworksKimiModel,
|
|
13
13
|
isNoloHostedProvider
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-VFN256RI.js";
|
|
15
15
|
import {
|
|
16
16
|
asTrimmedLowercaseString
|
|
17
17
|
} from "./chunk-QSJ3HFEF.js";
|
|
@@ -170,7 +170,7 @@ var MENU_USAGE_INSTRUCTIONS = `--- \u4EA4\u4E92\u8BF4\u660E ---
|
|
|
170
170
|
var AGENT_ORCHESTRATION_RUN_INSTRUCTIONS = `--- \u591A Agent \u7F16\u6392\uFF08\u540E\u53F0 Run\uFF09 ---
|
|
171
171
|
\u7528 startAgentRun \u542F\u52A8\u5B50 Agent\uFF08wait:false \u5F02\u6B65 fork+exec \u8FD4\u56DE runId\uFF1Bwait:true \u540C\u6B65\u7B49\u7ED3\u679C\uFF09\uFF0C\u7528 controlAgentRun \u89C2\u5BDF/\u505C\u6B62\uFF08wait/signal/proc \u8BED\u4E49\uFF09\u3002\u4F55\u65F6\u6D3E\u53D1\u89C1\u300C\u591A Agent \u534F\u4F5C\u300D\u6BB5\uFF1B\u672C\u6BB5\u53EA\u8BB2\u6D3E\u53D1\u4E4B\u540E\u600E\u4E48\u76EF\u3001\u600E\u4E48\u6392\u9519\u3002
|
|
172
172
|
|
|
173
|
-
1. \u76EF\u68A2\uFF1A**\u5F02\u6B65\u6D3E\u53D1\u540E\u7ACB\u5373\u6536\u5C3E\uFF0C\u7B49\u7EC8\u6001\u901A\u77E5\u3002** \
|
|
173
|
+
1. \u76EF\u68A2\uFF1A**\u5F02\u6B65\u6D3E\u53D1\u540E\u7ACB\u5373\u6536\u5C3E\uFF0C\u7B49\u7EC8\u6001\u901A\u77E5\u3002** \u963B\u585E\u7B49\u5F85\uFF08startAgentRun wait:true / controlAgentRun wait\uFF09\u7684\u771F\u5B9E\u4EE3\u4EF7\u662F\u51BB\u7ED3\u5BF9\u8BDD\u2014\u2014\u7528\u6237\u5728\u7B49\u5F85\u671F\u95F4\u65E0\u6CD5\u63D2\u8BDD\uFF0C\u7F16\u6392\u8005\u4E5F\u65E0\u6CD5\u5E76\u884C\u63A8\u8FDB\u5176\u4ED6\u5DE5\u4F5C\uFF0C\u56E0\u6B64\u963B\u585E\u7B49\u5F85\u4EC5\u9650\u4E09\u79CD\u60C5\u51B5\uFF1A\u2460 \u9884\u8BA1 <100s \u4E14\u9A6C\u4E0A\u8981\u7528\u7ED3\u679C\u7684\u5B50\u4EFB\u52A1\uFF1B\u2461 \u7528\u6237\u660E\u786E\u8981\u6C42\u540C\u6B65\u7B49\u5F85\u6216\u6B63\u5728\u4E0E\u8BE5\u5B50\u4EFB\u52A1\u5BF9\u8BDD\uFF1B\u2462 \u73AF\u5883\u4E0D\u652F\u6301\u7EC8\u6001\u5524\u9192\uFF0C\u4E14\u5F53\u524D\u6CA1\u6709\u53EF\u5E76\u884C\u63A8\u8FDB\u7684\u5176\u4ED6\u5DE5\u4F5C\uFF08\u6B64\u65F6 startAgentRun \u76F4\u63A5 wait:true\uFF0C\u5DF2\u5F02\u6B65\u6D3E\u51FA\u7684\u7528 controlAgentRun(action:"wait", runId) \u963B\u585E\u5230\u7EC8\u6001\uFF09\u3002\u652F\u6301\u7EC8\u6001\u5524\u9192\u7684\u73AF\u5883\uFF08\u684C\u9762 TUI / web\uFF09\uFF1A\u591A\u5206\u949F\u7EA7 run \u4E00\u5F8B\u5F02\u6B65\u6D3E\u53D1\u5E76\u7ACB\u5373\u6536\u5C3E\u7ED3\u675F\u56DE\u5408\uFF08\u4E00\u53E5\u8BDD\u8BF4\u660E\u540E\u7EED\u52A8\u4F5C\u5373\u53EF\uFF09\uFF0C\u7EC8\u6001\u81EA\u52A8\u6458\u8981\u5524\u9192\u540E\u7EE7\u7EED\uFF1B\u4E32\u884C\u4F9D\u8D56\uFF08\u6267\u884C\u2192\u5BA1\u67E5\u2192\u96C6\u6210\uFF09\u4E0D\u662F\u963B\u585E\u5BF9\u8BDD\u7684\u7406\u7531\u2014\u2014\u9760 wake \u63A5\u529B\u5373\u53EF\u3002\u6CA1\u6709\u7EC8\u6001\u5524\u9192\u7684\u73AF\u5883\uFF08\u88F8 CLI\u3001\u670D\u52A1\u7AEF runtime\uFF09\u624D\u7528 wait \u963B\u585E\uFF0C\u540C\u6837\u4E0D\u8981\u81EA\u5DF1\u5FAA\u73AF\u67E5\u3002
|
|
174
174
|
2. \u7B49\u5F85/\u7981\u6B62\u8F6E\u8BE2/\u7981\u7A7A\u8F6C/\u522B\u590D\u8FF0 status \u7684\u8BED\u4E49\u4EE5 startAgentRun \u4E0E controlAgentRun \u5DE5\u5177\u63CF\u8FF0\u4E3A\u51C6\u3002controlAgentRun \u53EA\u5728\u300C\u7B54\u6848\u4F1A\u6539\u53D8\u4F60\u4E0B\u4E00\u6B65\u52A8\u4F5C\u300D\u65F6\u7528\uFF08\u80FD\u5426\u6C47\u603B\u3001\u8981\u4E0D\u8981\u53EB\u505C/\u8865\u6D3E\uFF09\uFF1B\u4E00\u6B21\u6027\u6B7B\u6D3B\u68C0\u67E5\u7528 status(runId, tailLines:0)\u3002\u5E76\u884C\uFF1A\u591A\u4E2A\u72EC\u7ACB\u5B50\u4EFB\u52A1\u4E00\u6B21\u6D3E\u5B8C\uFF0C\u4E4B\u540E\u7B49\u5404\u81EA\u7EC8\u6001\u9010\u4E2A\u6C47\u603B\u3002\u65E0\u6587\u4EF6\u4EA4\u96C6\u3001\u65E0\u771F\u5B9E\u6570\u636E\u4F9D\u8D56\u7684\u4EFB\u52A1\u9ED8\u8BA4\u5E76\u53D1\u6D3E\u53D1\u2014\u2014\u4E0D\u8981\u56E0\u5B83\u4EEC\u6070\u597D\u5171\u7528\u540C\u4E00\u6267\u884C agent/\u901A\u9053\u800C\u81EA\u884C\u52A0\u300C\u901A\u9053\u4E32\u884C\u300D\u7684\u4FDD\u5B88\u5047\u8BBE\uFF08\u540C\u901A\u9053\u5141\u8BB8\u5E76\u53D1 fork \u591A\u5B9E\u4F8B\uFF0C\u5B9E\u4F8B\u95F4\u65E0\u4E0A\u4E0B\u6587\u5171\u4EAB\uFF09\uFF1B\u53EA\u6709\u4EFB\u52A1\u95F4\u5B58\u5728\u771F\u5B9E\u6587\u4EF6/\u6570\u636E\u4F9D\u8D56\u6216 brief \u660E\u793A\u51B2\u7A81\u9762\u65F6\u624D\u4E32\u884C\u3002
|
|
175
175
|
3. \u6392\u9519\uFF1A\u5148\u5206\u8BCA\u518D\u4E0B\u7ED3\u8BBA\u3002\u2460 \u590D\u6838 agentKey \u662F\u5426\u7167\u6284\u81EA listAgents\uFF08\u4E0D\u662F\u5C31\u5148\u4FEE key\uFF0C\u4E0D\u7B97\u901A\u9053\u6545\u969C\uFF09\uFF1B\u2461 \u62A5\u9519\u542B not found / invalid ref / Local agent config not found \u2192 \u5148 readAgent \u590D\u6838\uFF0C**\u7981\u6B62**\u636E\u6B64\u63A8\u65AD\u51ED\u8BC1\u7F3A\u5931\u6216\u901A\u9053\u5168\u6302\uFF1B\u2462 \u540C\u4E00\u5DF2\u9A8C\u8BC1 key \u4E0A\u4ECD\u5931\u8D25\u4E14\u9519\u8BEF\u660E\u786E\u6307\u5411\u901A\u9053\uFF08429\u3001\u9274\u6743\u5931\u8D25\u3001machine offline\uFF09\u2192 \u624D\u8BB0\u4E3A\u901A\u9053\u6545\u969C\u3002
|
|
176
176
|
4. \u5224\u5B9A\u300C\u6D3E\u53D1\u901A\u9053\u6574\u4F53\u4E0D\u53EF\u7528\u300D\u524D\uFF0C\u81F3\u5C11\u5BF9 2 \u4E2A\u4E0D\u540C\u5019\u9009\u5404\u5B8C\u6210\u300C\u5DF2\u9A8C\u8BC1 key + \u4E00\u6B21\u771F\u5B9E\u6D3E\u53D1\u300D\uFF1B\u5019\u9009\u4E0D\u8DB3 2 \u4E2A\u5C31\u5982\u5B9E\u62A5\u544A\u300C\u4EC5\u6B64\u5019\u9009\u4E14\u901A\u9053\u5931\u8D25\u300D\uFF0C\u4E0D\u5F97\u5938\u5927\u6210\u5168\u5E93\u4E0D\u53EF\u7528\u3002\u53EA\u6709 status=failed/\u8D85\u65F6\u6216 progress \u957F\u65F6\u95F4\u6BEB\u65E0\u52A8\u9759\uFF08\u7591\u4F3C\u5361\u6B7B\uFF09\u624D\u62C9 tailLines:30 \u770B\u65E5\u5FD7\uFF1Bstop \u4E4B\u524D\u5148\u770B\u65E5\u5FD7\u786E\u8BA4\u662F\u771F\u5361\u6B7B\uFF0C\u5E76\u7528 list/status \u786E\u8BA4 run \u771F\u5B9E\u5B58\u5728\u4E14\u975E\u7EC8\u6001\u2014\u2014\u522B\u5047\u8BBE\u300C\u6D3E\u53D1\u4E86\u5C31\u5728\u8DD1\u300D\u3002`;
|
|
@@ -185,7 +185,7 @@ var AGENT_COLLABORATION_INSTRUCTIONS = `--- Agent \u7F16\u6392\u4E0E\u534F\u4F5C
|
|
|
185
185
|
|
|
186
186
|
**\u6D3E\u53D1\u901A\u9053**\uFF1A
|
|
187
187
|
- \u76EE\u6807\u8BB0\u5F55\u5DF2\u58F0\u660E delegation.serverBase / runtimeServerBase \u2192 \u5DE5\u5177\u81EA\u52A8\u8DEF\u7531\u5230\u5BF9\u5E94 nolo server\uFF0C\u65E0\u9700\u91CD\u590D\u586B serverBase\uFF1B\u7528\u6237\u7ED9\u51FA\u53EF\u8BBF\u95EE\u7684 server origin \u65F6\u53EF\u4F20 serverBase \u8986\u76D6\u81EA\u52A8\u8DEF\u7531\uFF0C\u52FF\u81C6\u9020\u5730\u5740\u3001\u52FF\u628A localhost \u5F53\u8FDC\u7AEF\u673A\u5668\u3002
|
|
188
|
-
- \u901A\u9053\u8BED\u4E49\uFF1AstartAgentRun \u5F02\u6B65\uFF08wait:false\uFF09\u53EA\u8868\u793A\u5DF2\u542F\u52A8/\u6392\u961F\uFF0C**\u4E0D\u8868\u793A\u4EFB\u52A1\u5B8C\u6210**\uFF1Bdone/failed \u540E\u7CFB\u7EDF\u7528 terminal wake \u7EE7\u7EED\u7236\u5BF9\u8BDD\uFF0C\u4F60\u518D\u8BFB child evidence \u51B3\u5B9A\u4E0B\u4E00\u6B65\u3002\u8981\
|
|
188
|
+
- \u901A\u9053\u8BED\u4E49\uFF1AstartAgentRun \u5F02\u6B65\uFF08wait:false\uFF09\u53EA\u8868\u793A\u5DF2\u542F\u52A8/\u6392\u961F\uFF0C**\u4E0D\u8868\u793A\u4EFB\u52A1\u5B8C\u6210**\uFF1Bdone/failed \u540E\u7CFB\u7EDF\u7528 terminal wake \u7EE7\u7EED\u7236\u5BF9\u8BDD\uFF0C\u4F60\u518D\u8BFB child evidence \u51B3\u5B9A\u4E0B\u4E00\u6B65\u3002\u4EC5\u5F53\u9884\u8BA1 <100s \u4E14\u9A6C\u4E0A\u8981\u7528\u7ED3\u679C\u3001\u7528\u6237\u660E\u786E\u8981\u6C42\u540C\u6B65\u7B49\u5F85\uFF08\u6216\u6B63\u5728\u4E0E\u8BE5\u5B50\u4EFB\u52A1\u5BF9\u8BDD\uFF09\u3001\u6216\u73AF\u5883\u4E0D\u652F\u6301\u7EC8\u6001\u5524\u9192\u4E14\u65E0\u5E76\u884C\u5DE5\u4F5C\u65F6\uFF0C\u624D\u7528 wait:true \u540C\u6B65\u7B49\uFF08\u963B\u585E\u4F1A\u51BB\u7ED3\u5BF9\u8BDD\uFF09\uFF1B\u5426\u5219\u4E00\u5F8B\u5F02\u6B65\u6D3E\u53D1\uFF0C\u9760\u7EC8\u6001\u5524\u9192\u63A5\u529B\u3002\u8981\u8BA9\u7528\u6237\u524D\u53F0\u5B9E\u65F6\u770B\u5230\u53D1\u8A00\uFF0C\u7528 runStreamingAgent\u3002
|
|
189
189
|
- \u591A Agent \u534F\u4F5C\u4E0D\u9650\u4E8E\u4EE3\u7801\u4EFB\u52A1\uFF1A\u6E38\u620F\u8BBE\u8BA1\u3001\u7535\u5F71\u7B56\u5212\u3001\u5199\u4F5C\u3001\u8FD0\u8425\u3001\u7814\u7A76\u7B49\u5F02\u6B65\u5206\u5DE5\u573A\u666F\u540C\u6837\u9002\u7528\u3002
|
|
190
190
|
|
|
191
191
|
**\u53D1\u6563 / \u4F1A\u5546\uFF08\u7CFB\u7EDF\u7EA7\u51B3\u7B56\u673A\u5236\uFF09**\uFF1A
|
|
@@ -33,13 +33,13 @@ import {
|
|
|
33
33
|
resolvePlatformAuthToken,
|
|
34
34
|
resolvePlatformServerUrl,
|
|
35
35
|
resolveProviderTransportDecision
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-2PGAWTDB.js";
|
|
37
37
|
import {
|
|
38
38
|
clipCompactText
|
|
39
39
|
} from "./chunk-GK74OOFT.js";
|
|
40
40
|
import {
|
|
41
41
|
NOLO_CLIENT_VERSION_HEADER
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-VFN256RI.js";
|
|
43
43
|
import {
|
|
44
44
|
isRecord
|
|
45
45
|
} from "./chunk-KUG52IAP.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
updateContentTitle
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-QPIMHSA5.js";
|
|
4
4
|
import {
|
|
5
5
|
require_date_fns
|
|
6
6
|
} from "./chunk-M76ECQRD.js";
|
|
@@ -367,7 +367,7 @@ async function saveDocState(arg, { dispatch, getState }) {
|
|
|
367
367
|
}
|
|
368
368
|
}
|
|
369
369
|
async function createDocState(args, thunkApi) {
|
|
370
|
-
const { createPageAction } = await import("./createPageAction-
|
|
370
|
+
const { createPageAction } = await import("./createPageAction-6MTVIU3J.js");
|
|
371
371
|
return createPageAction(args, thunkApi);
|
|
372
372
|
}
|
|
373
373
|
function subscribe(listener) {
|