nolo-cli 0.33.0-alpha.9 → 0.34.0-alpha.3
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-2WR4RTZZ.js → _executeModel-TMUXL7J5.js} +64 -65
- package/{action-OQWPNKAH.js → action-KMBZ3LCZ.js} +12 -12
- package/{addContentAction-YVINZQTF.js → addContentAction-KQ44UT2U.js} +10 -10
- package/{addDialogAgentAction-6IOCIEPI.js → addDialogAgentAction-ILSDCMYL.js} +9 -9
- package/{agentDeleteCommand-H22WRYC6.js → agentDeleteCommand-KA2IQAPG.js} +40 -39
- package/{agentEmailCommands-DGJVCMCG.js → agentEmailCommands-UIYBGCZW.js} +74 -75
- package/{agentListCommands-6NWMLIMQ.js → agentListCommands-L6JNUOLH.js} +47 -37
- package/{agentMachineCommands-5MUO6RDI.js → agentMachineCommands-5CQW5NZR.js} +37 -36
- package/agentProviderCommands-65ZC2WB4.js +122 -0
- package/{agentPullCommand-YH5GEBK4.js → agentPullCommand-TSWAJPS2.js} +1 -1
- package/agentRecordCommands-VUDJQIZH.js +112 -0
- package/agentRunCommand-EJWYF3BL.js +132 -0
- package/{agentRunControl-SCIVRZWX.js → agentRunControl-7MUPSYDQ.js} +7 -1
- package/{agentRuntimeLocal-PRAR3NCW.js → agentRuntimeLocal-XXBMDMBU.js} +33 -33
- package/{agentSlice-AMDSTXP5.js → agentSlice-HTIEYKIU.js} +12 -12
- package/agentSuperviseCommands-MKWW3ICX.js +640 -0
- package/{appDeleteCommands-L5PKC42V.js → appDeleteCommands-OUBL6VHB.js} +35 -34
- package/{appDeployCommands-3J7Z4XWV.js → appDeployCommands-BZSS2MX4.js} +35 -34
- package/{appDeployStatusCommands-YTRPXE72.js → appDeployStatusCommands-P2ZQOY5X.js} +35 -34
- package/{appGetCommands-JVXV5WXD.js → appGetCommands-WCFWQZZM.js} +35 -34
- package/{appListCommands-7KDEOJSO.js → appListCommands-FVJ3QNL7.js} +35 -34
- package/{authCommand-6Y5LTMZB.js → authCommand-B2XRHNJH.js} +19 -19
- package/{authCommands-EAPFGNHN.js → authCommands-GWABTFMR.js} +6 -6
- package/{chatQueueReduxAdapter-ZKSS6XRV.js → chatQueueReduxAdapter-ZP2ZS63U.js} +28 -28
- package/{chunk-UM4H3URE.js → chunk-23KKIMD5.js} +7 -7
- package/chunk-2BWU4ORW.js +2574 -0
- package/{chunk-2UECQ7RE.js → chunk-3AOLVADY.js} +1 -1
- package/{chunk-M2YMQOLC.js → chunk-4APLX2RT.js} +75 -10
- package/{chunk-ZHYK3N56.js → chunk-4AWH4LQA.js} +3 -1
- package/{chunk-3GZXL6FM.js → chunk-4DMPISV6.js} +7 -3
- package/{chunk-BQ3OHLR5.js → chunk-5GQ6XCJY.js} +1217 -691
- package/{chunk-GOIDVXK5.js → chunk-5LDKQUOT.js} +21 -8
- package/{chunk-OIQPORYI.js → chunk-64KIQZA2.js} +175 -2
- package/{chunk-6XIE5ZGI.js → chunk-6HIGYUBQ.js} +1 -1
- package/chunk-6XG52ZQ6.js +146 -0
- package/{chunk-FMEVI5TG.js → chunk-7CH6U3FL.js} +1 -1
- package/chunk-AA2YUJNV.js +54 -0
- package/{chunk-7INB7NXF.js → chunk-AE5GVFMG.js} +294 -54
- package/{chunk-UNOTBWZZ.js → chunk-B6H5XCT2.js} +8 -8
- package/{chunk-NNWHHCVP.js → chunk-BMB563Y6.js} +10 -4
- package/{chunk-DFUPZE6V.js → chunk-C6ELZQ7H.js} +249 -34
- package/{chunk-7KNERA53.js → chunk-E2OQ5N2F.js} +87 -13
- package/{chunk-6HYVJV7B.js → chunk-ESHYE7WU.js} +2 -1
- package/{chunk-KHCLMKZZ.js → chunk-EY7V7REW.js} +280 -6
- package/{chunk-JZPBVBIY.js → chunk-FD36SCCD.js} +19 -8
- package/{chunk-DKMOY3QI.js → chunk-FGLKRJDI.js} +54 -3
- package/{chunk-MQWVAOIU.js → chunk-FT4XBCK4.js} +33 -158
- package/{chunk-2QTEYCR7.js → chunk-FTM4KUOZ.js} +17 -17
- package/{chunk-U4TRT5V4.js → chunk-GEPHJJW4.js} +1 -1
- package/{chunk-7YYHKBJP.js → chunk-GKHV4UH5.js} +1 -1
- package/{chunk-2IVEXF7P.js → chunk-GUYMR3JL.js} +6 -33
- package/{chunk-YDTYDA5W.js → chunk-GZRMWK5R.js} +6 -4
- package/{chunk-X664KVEV.js → chunk-HHBXCRJS.js} +204 -123
- package/{chunk-AN7DGYMW.js → chunk-I7VDDN45.js} +4579 -3131
- package/{chunk-DSBGWT2C.js → chunk-IEEEWIVO.js} +10 -10
- package/{chunk-75U775RZ.js → chunk-IFS5CUEH.js} +1 -1
- package/{chunk-WLH5BAKX.js → chunk-IIOHYLIG.js} +9 -4
- package/{chunk-UEAUAXYS.js → chunk-ILZY5B4U.js} +2063 -214
- package/chunk-IMHO5LC6.js +370 -0
- package/{chunk-ADLYMQB6.js → chunk-IZCHPD7T.js} +52 -3
- package/{chunk-ITIA6OAQ.js → chunk-IZNJDUJ4.js} +5 -5
- package/{chunk-X2DAEZ3X.js → chunk-J5NMOM35.js} +1 -1
- package/{chunk-RPRRIFXV.js → chunk-JI2TIPLP.js} +1 -1
- package/{chunk-EGRJC4ZN.js → chunk-JIADXJYU.js} +1 -1
- package/{chunk-IHEC7VBF.js → chunk-K4KIFRIN.js} +1 -1
- package/{chunk-WJSW43QZ.js → chunk-L3JWI7WX.js} +0 -1
- package/{chunk-3RUW3ONU.js → chunk-LD6Y6RJY.js} +4 -4
- package/chunk-M3JQWYBC.js +387 -0
- package/{chunk-GM6PU7B6.js → chunk-MEYIRKDN.js} +0 -1
- package/{chunk-6YXDOOSH.js → chunk-MGIHZ5CJ.js} +4 -4
- package/{chunk-4F5M2MW5.js → chunk-MJWX4JQO.js} +2 -2
- package/{chunk-Q5ITEGIN.js → chunk-N4XRDM26.js} +1 -1
- package/{chunk-5CS33IBL.js → chunk-NQ4N4IGO.js} +11 -12
- package/{chunk-ZZ2MH7LE.js → chunk-O6OSWFZQ.js} +0 -1
- package/{chunk-RJKIB55Y.js → chunk-OSCSEJJR.js} +15 -8
- package/{chunk-HUCT7HID.js → chunk-P2I7ELDC.js} +3 -3
- package/{chunk-BXPBZVRE.js → chunk-PILJX4DH.js} +285 -251
- package/{chunk-SCUETSRP.js → chunk-PV734VZX.js} +1 -1
- package/{chunk-XLLTJXAD.js → chunk-QI3CHZUT.js} +39 -2672
- package/{chunk-WNHST4IE.js → chunk-RKRXAL3V.js} +5451 -5013
- package/{chunk-7E72JMBB.js → chunk-SMPAUSX5.js} +46 -5
- package/{chunk-5X4GQ53C.js → chunk-TLBZMLLJ.js} +7 -7
- package/{chunk-ASDXPOJH.js → chunk-U6QQLXWI.js} +1 -1
- package/{chunk-NUO3QFWD.js → chunk-UNHKVD2N.js} +1 -1
- package/{chunk-GE6IWA5N.js → chunk-UNZDCI3O.js} +126 -1
- package/{chunk-CPYYM4RJ.js → chunk-V5GA74HI.js} +19 -5
- package/{chunk-FXFGNOT2.js → chunk-VFVCYIRQ.js} +1 -1
- package/{chunk-G7E4NWFE.js → chunk-W445DPVT.js} +1 -1
- package/{chunk-EMW55KKX.js → chunk-WBZE7C6S.js} +1 -1
- package/{chunk-3UG2IIZ3.js → chunk-WN5AJG5I.js} +1 -1
- package/{chunk-KSRFVP36.js → chunk-WRN7L5CS.js} +1 -1
- package/{chunk-GJXRIOLS.js → chunk-WRP5TTM6.js} +4 -84
- package/chunk-X2K2JSO4.js +163 -0
- package/{chunk-OR2HNLVO.js → chunk-X6EN3KJX.js} +279 -477
- package/{chunk-VWY2CZD2.js → chunk-XMFDQYWA.js} +3 -3
- package/{chunk-IKWTTKWG.js → chunk-XQES6LXQ.js} +2 -2
- package/{chunk-IR6W62Q6.js → chunk-XT73C4VH.js} +18 -21
- package/{chunk-7L5CQQIT.js → chunk-Y5W623XU.js} +15 -15
- package/{chunk-RY57GLGW.js → chunk-YPREESF4.js} +42 -5
- package/{chunk-BQXOGBFN.js → chunk-YZ2WE6CW.js} +2 -2
- package/{chunk-DNQK7M7K.js → chunk-Z7COG62J.js} +4 -4
- package/{chunk-3WXRAHCG.js → chunk-ZBB3MZR3.js} +3 -3
- package/{cliExecutor-DW3PHGEL.js → cliExecutor-BBUVQU4L.js} +2 -2
- package/{clipboardy-MMBYVRLF.js → clipboardy-PRUHGPGC.js} +4 -3
- package/{codingSkills-DY5MINPG.js → codingSkills-6F4EQFCM.js} +4 -5
- package/cooldownCommands-C2SZLEEO.js +90 -0
- package/{createAgentAutomationAction-GVSJL2CI.js → createAgentAutomationAction-TGUXUZCY.js} +28 -30
- package/createDialogAction-FD5AEOUF.js +58 -0
- package/{createPageAction-M2VDKBYS.js → createPageAction-NPC3LYNK.js} +31 -34
- package/{dbSlice-UI2VCBLG.js → dbSlice-PIQGICNM.js} +9 -9
- package/{deleteFile-XQXPBFFB.js → deleteFile-NPZ64DFN.js} +4 -4
- package/{dialogCommands-26DBYNBT.js → dialogCommands-ZF2RSNCG.js} +37 -36
- package/{dialogSlice-FFGLRCBL.js → dialogSlice-6BINHWQT.js} +27 -27
- package/dist-VODFSGNG.js +7442 -0
- package/{docCreateCommands-F2ASWG6B.js → docCreateCommands-4VQ5MOHP.js} +36 -36
- package/{docDeleteCommands-A4URDZPI.js → docDeleteCommands-M7WLNVPB.js} +37 -37
- package/{docReadCommands-DO6VHDZD.js → docReadCommands-6LU6P2WT.js} +36 -36
- package/{docStore-EDAE7RNT.js → docStore-SIUFLABN.js} +29 -31
- package/{docUpdateCommands-ZTXZ3RTP.js → docUpdateCommands-S2LX4ENL.js} +39 -39
- package/{fetchMessages-7QRCCRYK.js → fetchMessages-CUEFN4GQ.js} +4 -4
- package/{getPricing-L2ENXWHV.js → getPricing-P3E2WRIH.js} +5 -5
- package/{handleSendMessageAction-CIRLGHOC.js → handleSendMessageAction-QVG5YNZY.js} +29 -29
- package/index.js +92 -77
- package/{localDialogRead-SLMPV5SK.js → localDialogRead-P7CHFMIC.js} +1 -1
- package/{localRuntimeAuthority-E3R24J4T.js → localRuntimeAuthority-S77B5QVB.js} +6 -2
- package/{localRuntimeDb-DDZCJFQZ.js → localRuntimeDb-N3H3HQ7G.js} +1 -1
- package/{machineCommands-NIQNCYJV.js → machineCommands-OSEBN7BZ.js} +76 -77
- package/{machineInfo-M6KB6HZN.js → machineInfo-66ZFUMLE.js} +1 -1
- package/{machineWsRunDispatch-EMTSQGAR.js → machineWsRunDispatch-NTJQCIIF.js} +68 -69
- package/{models-OX2S5C6Q.js → models-L7S2EKPM.js} +2 -2
- package/package.json +1 -1
- package/{read-2VHEHCAN.js → read-6C2XD3YZ.js} +5 -5
- package/{readDocTool-CSWD6NPC.js → readDocTool-Y7AB365O.js} +1 -1
- package/{readlineWorkspace-A2JBJWLI.js → readlineWorkspace-JPME5S7A.js} +4860 -3476
- package/{removeDialogAgentAction-2T7BPM3T.js → removeDialogAgentAction-KG5WMJRZ.js} +13 -13
- package/{runAgentClientLoop-BV4736ED.js → runAgentClientLoop-SOKEXCUF.js} +61 -61
- package/{runtimeDoctorCommands-KIKM6BIO.js → runtimeDoctorCommands-HT4O2PXL.js} +6 -6
- package/{setDialogExtraReferencesAction-GPT37HTW.js → setDialogExtraReferencesAction-O2NLXMSM.js} +10 -10
- package/{setPrimaryDialogAgentAction-3746P7IW.js → setPrimaryDialogAgentAction-FYYUY7PB.js} +13 -13
- package/{settingSlice-FIFOQ6OR.js → settingSlice-GPLI6E3M.js} +11 -11
- package/{skillDiscovery-KLLKXPUO.js → skillDiscovery-GPUDHDTZ.js} +3 -4
- package/{slateUtils-VO2FU36K.js → slateUtils-RIZES3PV.js} +1 -1
- package/{spaceCommands-AYZQHDB3.js → spaceCommands-Z5JLMFFJ.js} +223 -37
- package/{spaceSlice-43BNF22B.js → spaceSlice-Z3BGCLGX.js} +28 -30
- package/{streamAgentChatTurn-OLLRSITV.js → streamAgentChatTurn-INF5RGK4.js} +115 -129
- package/{switchDialogAgentAction-MQTUTQHL.js → switchDialogAgentAction-GH5P6Q3Z.js} +9 -9
- package/{chunk-IDAU4UFS.js → syncMapping-N6RGXGBW.js} +11 -11
- package/{tableCommands-QE47K72R.js → tableCommands-PQUJ55AS.js} +3 -3
- package/{tools-2SI3FXLL.js → tools-ZELMSJZ3.js} +45 -47
- package/{tuiSummaryLlmCaller-EAWQ3IZX.js → tuiSummaryLlmCaller-LH7F2SP7.js} +18 -18
- package/{updateCommands-AK2RDOFR.js → updateCommands-MNDUIKN7.js} +2 -2
- package/{updateDialogTitleAction-YJEQFYOA.js → updateDialogTitleAction-EDUCIB7G.js} +31 -33
- package/agentRecordCommands-YMGKT2WF.js +0 -113
- package/agentRunCommand-LYEMVQJH.js +0 -131
- package/chunk-AETZ7AD6.js +0 -274
- package/chunk-D5JI6VDM.js +0 -1800
- package/chunk-M3JEW6N6.js +0 -193
- package/chunk-ZURFOV5J.js +0 -105
- package/chunk-ZWS6DUHX.js +0 -480
- package/createDialogAction-VVR46Q2A.js +0 -61
- package/syncMapping-RK2MANUX.js +0 -43
- package/{chunk-KMSZPTM6.js → chunk-2WKUUY2E.js} +3 -3
- package/{chunk-CWMSB67P.js → chunk-AGGIDPCZ.js} +0 -0
- package/{chunk-SAQQLJZ5.js → chunk-JDSUTNYY.js} +3 -3
|
@@ -6,10 +6,9 @@ import {
|
|
|
6
6
|
parseRetryAfterHeaderMs
|
|
7
7
|
} from "./chunk-RQSOAMPJ.js";
|
|
8
8
|
import {
|
|
9
|
-
isAgentUnavailableNow,
|
|
10
9
|
sortSafeAgentSummaries,
|
|
11
10
|
toSafeAgentSummary
|
|
12
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-GUYMR3JL.js";
|
|
13
12
|
import {
|
|
14
13
|
getUserDataItemTimestamp,
|
|
15
14
|
mergeAndDedupUserData
|
|
@@ -20,32 +19,49 @@ import {
|
|
|
20
19
|
readPageFunc,
|
|
21
20
|
readPageFunctionSchema,
|
|
22
21
|
slateToSimplifiedMarkdown
|
|
23
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-IFS5CUEH.js";
|
|
23
|
+
import {
|
|
24
|
+
TASK_PREVIEW_MAX,
|
|
25
|
+
buildDelegatedTaskContent,
|
|
26
|
+
formatListRunsCard,
|
|
27
|
+
formatStartRunCard,
|
|
28
|
+
formatStatusRunCard,
|
|
29
|
+
formatStopRunCard,
|
|
30
|
+
resolveRunLabel
|
|
31
|
+
} from "./chunk-KXKQO4Q6.js";
|
|
32
|
+
import {
|
|
33
|
+
createDocState
|
|
34
|
+
} from "./chunk-Z7COG62J.js";
|
|
35
|
+
import {
|
|
36
|
+
ToolApiError,
|
|
37
|
+
buildToolRequestHeaders,
|
|
38
|
+
callToolApi,
|
|
39
|
+
getRequestConfig,
|
|
40
|
+
getToolBaseUrl,
|
|
41
|
+
getToolRequestContext
|
|
42
|
+
} from "./chunk-BANYWEYY.js";
|
|
43
|
+
import {
|
|
44
|
+
setDialogExtraReferencesAction
|
|
45
|
+
} from "./chunk-U6QQLXWI.js";
|
|
24
46
|
import {
|
|
25
47
|
markdownToSlate
|
|
26
48
|
} from "./chunk-INZZJSQF.js";
|
|
27
49
|
import {
|
|
28
50
|
extractMentionsFromSlate
|
|
29
|
-
} from "./chunk-
|
|
51
|
+
} from "./chunk-MEYIRKDN.js";
|
|
30
52
|
import {
|
|
31
53
|
slateToRenderMarkdown
|
|
32
54
|
} from "./chunk-63W5N6P3.js";
|
|
33
55
|
import {
|
|
34
56
|
isSkillSummaryMarker
|
|
35
57
|
} from "./chunk-VF4K2QE6.js";
|
|
36
|
-
import {
|
|
37
|
-
createDocState
|
|
38
|
-
} from "./chunk-DNQK7M7K.js";
|
|
39
|
-
import {
|
|
40
|
-
setDialogExtraReferencesAction
|
|
41
|
-
} from "./chunk-ASDXPOJH.js";
|
|
42
58
|
import {
|
|
43
59
|
BUILTIN_OBJECT_SKILL_IDS,
|
|
44
60
|
buildBuiltinObjectSkillConfig,
|
|
45
61
|
buildBuiltinObjectSkillDbKey,
|
|
46
62
|
buildBuiltinObjectSkillPageContent,
|
|
47
63
|
createDialogAction
|
|
48
|
-
} from "./chunk-
|
|
64
|
+
} from "./chunk-Y5W623XU.js";
|
|
49
65
|
import {
|
|
50
66
|
addCategory,
|
|
51
67
|
addContentToSpace,
|
|
@@ -65,58 +81,39 @@ import {
|
|
|
65
81
|
loadTableRows,
|
|
66
82
|
updateContentCategory,
|
|
67
83
|
updateContentTitle
|
|
68
|
-
} from "./chunk-
|
|
84
|
+
} from "./chunk-QI3CHZUT.js";
|
|
69
85
|
import {
|
|
70
|
-
incrementFailedSteps,
|
|
71
|
-
incrementStepsExecuted,
|
|
72
86
|
normalizeAppRouteId,
|
|
73
87
|
resolveDialogRuntimeAgentKey,
|
|
74
88
|
selectAllMsgs,
|
|
75
89
|
selectCurrentDialogConfig,
|
|
76
90
|
selectCurrentDialogId,
|
|
77
91
|
selectMsgById,
|
|
78
|
-
setWorkflow,
|
|
79
92
|
uiAskChoiceFunc,
|
|
80
|
-
uiAskChoiceFunctionSchema
|
|
81
|
-
|
|
82
|
-
} from "./chunk-BXPBZVRE.js";
|
|
93
|
+
uiAskChoiceFunctionSchema
|
|
94
|
+
} from "./chunk-PILJX4DH.js";
|
|
83
95
|
import {
|
|
84
96
|
createAgent,
|
|
85
97
|
runLlm,
|
|
86
98
|
streamAgentChatTurn,
|
|
87
99
|
updateAgent
|
|
88
|
-
} from "./chunk-
|
|
100
|
+
} from "./chunk-TLBZMLLJ.js";
|
|
89
101
|
import {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
filterNoloDialogSubjectRefEvidence,
|
|
96
|
-
getNoloComparableUpdatedAt,
|
|
97
|
-
getNoloDialogIdFromKey,
|
|
98
|
-
normalizeNoloExcludeDialogIds,
|
|
99
|
-
normalizeNoloSpaceInput,
|
|
100
|
-
redactAgentRecordForWorkspaceTool,
|
|
101
|
-
resolveNoloDialogInput,
|
|
102
|
-
verifyNoloDialogSubjectRefQuery
|
|
103
|
-
} from "./chunk-ADLYMQB6.js";
|
|
104
|
-
import {
|
|
105
|
-
buildDatabaseFileContentUrl
|
|
106
|
-
} from "./chunk-DKMOY3QI.js";
|
|
107
|
-
import {
|
|
108
|
-
DEFAULT_MODEL
|
|
109
|
-
} from "./chunk-DFUPZE6V.js";
|
|
102
|
+
getActiveDialogKey,
|
|
103
|
+
require_react,
|
|
104
|
+
selectCurrentDialogKey,
|
|
105
|
+
selectPendingRawDataByPageKey
|
|
106
|
+
} from "./chunk-MRWGHF56.js";
|
|
110
107
|
import {
|
|
111
108
|
CODING_SKILL_SLUGS,
|
|
112
109
|
buildCodingSkillConfig,
|
|
113
110
|
buildCodingSkillContentBySlug,
|
|
114
111
|
buildCodingSkillId,
|
|
115
112
|
buildCodingSkillPageKey
|
|
116
|
-
} from "./chunk-
|
|
113
|
+
} from "./chunk-P2I7ELDC.js";
|
|
117
114
|
import {
|
|
118
115
|
CAPABILITY_PACKS
|
|
119
|
-
} from "./chunk-
|
|
116
|
+
} from "./chunk-IIOHYLIG.js";
|
|
120
117
|
import {
|
|
121
118
|
buildSkillDocMarkdown,
|
|
122
119
|
normalizeSkillModalities,
|
|
@@ -124,43 +121,44 @@ import {
|
|
|
124
121
|
parseExternalSkillMarkdown,
|
|
125
122
|
parseSkillDocProtocol,
|
|
126
123
|
resolvePageSkillMetadata
|
|
127
|
-
} from "./chunk-
|
|
124
|
+
} from "./chunk-EY7V7REW.js";
|
|
128
125
|
import {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
126
|
+
NOLO_WORKSPACE_TOOL_NAMES,
|
|
127
|
+
buildAgentRuntimeAgentLookupKeys,
|
|
128
|
+
buildNoloSubjectRefQueryTarget,
|
|
129
|
+
buildNoloTableQueryRequest,
|
|
130
|
+
clampNoloPositiveInteger,
|
|
131
|
+
filterNoloDialogSubjectRefEvidence,
|
|
132
|
+
getNoloComparableUpdatedAt,
|
|
133
|
+
getNoloDialogIdFromKey,
|
|
134
|
+
normalizeNoloExcludeDialogIds,
|
|
135
|
+
normalizeNoloSpaceInput,
|
|
136
|
+
redactAgentRecordForWorkspaceTool,
|
|
137
|
+
resolveNoloDialogInput,
|
|
138
|
+
verifyNoloDialogSubjectRefQuery
|
|
139
|
+
} from "./chunk-IZCHPD7T.js";
|
|
132
140
|
import {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
callToolApi,
|
|
136
|
-
getRequestConfig,
|
|
137
|
-
getToolBaseUrl,
|
|
138
|
-
getToolRequestContext
|
|
139
|
-
} from "./chunk-BANYWEYY.js";
|
|
141
|
+
isAgentUnavailableNow
|
|
142
|
+
} from "./chunk-X2K2JSO4.js";
|
|
140
143
|
import {
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
} from "./chunk-
|
|
144
|
+
buildDatabaseFileContentUrl
|
|
145
|
+
} from "./chunk-FGLKRJDI.js";
|
|
146
|
+
import {
|
|
147
|
+
DEFAULT_MODEL
|
|
148
|
+
} from "./chunk-C6ELZQ7H.js";
|
|
146
149
|
import {
|
|
147
150
|
compactWhitespace
|
|
148
151
|
} from "./chunk-DWLEOOGR.js";
|
|
149
|
-
import {
|
|
150
|
-
TASK_PREVIEW_MAX,
|
|
151
|
-
buildDelegatedTaskContent,
|
|
152
|
-
formatListRunsCard,
|
|
153
|
-
formatStartRunCard,
|
|
154
|
-
formatStatusRunCard,
|
|
155
|
-
formatStopRunCard,
|
|
156
|
-
resolveRunLabel
|
|
157
|
-
} from "./chunk-KXKQO4Q6.js";
|
|
158
152
|
import {
|
|
159
153
|
toErrorMessage
|
|
160
154
|
} from "./chunk-HNMXYYJR.js";
|
|
155
|
+
import {
|
|
156
|
+
canonicalizeToolName,
|
|
157
|
+
canonicalizeToolNames
|
|
158
|
+
} from "./chunk-O6OSWFZQ.js";
|
|
161
159
|
import {
|
|
162
160
|
shareResourceAction
|
|
163
|
-
} from "./chunk-
|
|
161
|
+
} from "./chunk-LD6Y6RJY.js";
|
|
164
162
|
import {
|
|
165
163
|
AGENT_UPDATE_FIELD_NAMES,
|
|
166
164
|
nolotusId,
|
|
@@ -168,7 +166,7 @@ import {
|
|
|
168
166
|
selectAutoApproveSelfUpdateFields,
|
|
169
167
|
selectCurrentServer,
|
|
170
168
|
selectSyncServers
|
|
171
|
-
} from "./chunk-
|
|
169
|
+
} from "./chunk-B6H5XCT2.js";
|
|
172
170
|
import {
|
|
173
171
|
asRecordOrEmpty
|
|
174
172
|
} from "./chunk-KX6YBIHG.js";
|
|
@@ -176,7 +174,7 @@ import {
|
|
|
176
174
|
addContentAction,
|
|
177
175
|
createSpaceKey,
|
|
178
176
|
normalizeSpaceId
|
|
179
|
-
} from "./chunk-
|
|
177
|
+
} from "./chunk-MJWX4JQO.js";
|
|
180
178
|
import {
|
|
181
179
|
patch,
|
|
182
180
|
read,
|
|
@@ -185,7 +183,7 @@ import {
|
|
|
185
183
|
selectById,
|
|
186
184
|
toTimestampMs,
|
|
187
185
|
write
|
|
188
|
-
} from "./chunk-
|
|
186
|
+
} from "./chunk-23KKIMD5.js";
|
|
189
187
|
import {
|
|
190
188
|
SEPARATOR,
|
|
191
189
|
createAgentKey,
|
|
@@ -197,21 +195,24 @@ import {
|
|
|
197
195
|
rowKey,
|
|
198
196
|
toTrimmedString,
|
|
199
197
|
ulid
|
|
200
|
-
} from "./chunk-
|
|
201
|
-
import {
|
|
202
|
-
asOptionalFiniteNumber
|
|
203
|
-
} from "./chunk-WWC7I6TA.js";
|
|
198
|
+
} from "./chunk-2WKUUY2E.js";
|
|
204
199
|
import {
|
|
205
200
|
asNonEmptyStringArray,
|
|
206
201
|
asTrimmedNonEmptyStringArray
|
|
207
202
|
} from "./chunk-I42VC5KR.js";
|
|
203
|
+
import {
|
|
204
|
+
asOptionalFiniteNumber
|
|
205
|
+
} from "./chunk-WWC7I6TA.js";
|
|
208
206
|
import {
|
|
209
207
|
asTrimmedLowercaseString
|
|
210
208
|
} from "./chunk-QSJ3HFEF.js";
|
|
211
209
|
import {
|
|
212
210
|
DEFAULT_CODE_PLANNER_EXECUTOR_CANDIDATE_KEYS,
|
|
213
211
|
readAction
|
|
214
|
-
} from "./chunk-
|
|
212
|
+
} from "./chunk-XT73C4VH.js";
|
|
213
|
+
import {
|
|
214
|
+
extractCustomId
|
|
215
|
+
} from "./chunk-BJIRLHJR.js";
|
|
215
216
|
import {
|
|
216
217
|
createAsyncThunk,
|
|
217
218
|
getRuntimeServerContext,
|
|
@@ -220,19 +221,16 @@ import {
|
|
|
220
221
|
selectIdentityUserBalance,
|
|
221
222
|
selectIdentityUserId,
|
|
222
223
|
selectRuntimeSnapshot
|
|
223
|
-
} from "./chunk-
|
|
224
|
+
} from "./chunk-HHBXCRJS.js";
|
|
224
225
|
import {
|
|
225
226
|
isAbortError
|
|
226
|
-
} from "./chunk-
|
|
227
|
-
import {
|
|
228
|
-
asTrimmedString
|
|
229
|
-
} from "./chunk-3EUW3WEO.js";
|
|
230
|
-
import {
|
|
231
|
-
extractCustomId
|
|
232
|
-
} from "./chunk-BJIRLHJR.js";
|
|
227
|
+
} from "./chunk-L3JWI7WX.js";
|
|
233
228
|
import {
|
|
234
229
|
isRecord
|
|
235
230
|
} from "./chunk-KUG52IAP.js";
|
|
231
|
+
import {
|
|
232
|
+
asTrimmedString
|
|
233
|
+
} from "./chunk-3EUW3WEO.js";
|
|
236
234
|
import {
|
|
237
235
|
API_ENDPOINTS
|
|
238
236
|
} from "./chunk-LCBAMY2M.js";
|
|
@@ -249,287 +247,6 @@ import {
|
|
|
249
247
|
__toESM
|
|
250
248
|
} from "./chunk-4VNS5WPM.js";
|
|
251
249
|
|
|
252
|
-
// packages/ai/workflow/workflowExecutor.ts
|
|
253
|
-
function resolveTemplates(value, results) {
|
|
254
|
-
if (typeof value === "string") {
|
|
255
|
-
return value.replace(
|
|
256
|
-
/\{\{steps\.([^.}\s]+)\.result(\[\d+\])?\}\}/g,
|
|
257
|
-
(match, stepId, indexPart) => {
|
|
258
|
-
const stepResult = results[stepId];
|
|
259
|
-
if (stepResult === void 0) {
|
|
260
|
-
console.warn(`Workflow: cannot resolve {{steps.${stepId}.result}} \u2014 step not completed yet`);
|
|
261
|
-
return match;
|
|
262
|
-
}
|
|
263
|
-
let resolved = stepResult;
|
|
264
|
-
if (indexPart) {
|
|
265
|
-
const idx = parseInt(indexPart.slice(1, -1), 10);
|
|
266
|
-
if (Array.isArray(resolved) && idx < resolved.length) {
|
|
267
|
-
resolved = resolved[idx];
|
|
268
|
-
} else {
|
|
269
|
-
console.warn(`Workflow: index ${idx} out of range for steps.${stepId}.result`);
|
|
270
|
-
return match;
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
return typeof resolved === "object" ? JSON.stringify(resolved) : String(resolved);
|
|
274
|
-
}
|
|
275
|
-
);
|
|
276
|
-
}
|
|
277
|
-
if (Array.isArray(value)) {
|
|
278
|
-
return value.map((v) => resolveTemplates(v, results));
|
|
279
|
-
}
|
|
280
|
-
if (value !== null && typeof value === "object") {
|
|
281
|
-
return Object.fromEntries(
|
|
282
|
-
Object.entries(value).map(([k, v]) => [k, resolveTemplates(v, results)])
|
|
283
|
-
);
|
|
284
|
-
}
|
|
285
|
-
return value;
|
|
286
|
-
}
|
|
287
|
-
function isSafeConditionExpression(expr) {
|
|
288
|
-
let s = expr.trim();
|
|
289
|
-
if (!s) return false;
|
|
290
|
-
s = s.replace(/"[^"\n\\]*(?:\\.[^"\n\\]*)*"/g, "0");
|
|
291
|
-
s = s.replace(/'[^'\n\\]*(?:\\.[^'\n\\]*)*/g, "0");
|
|
292
|
-
s = s.replace(/\b\d+(?:\.\d+)?\b/g, "0");
|
|
293
|
-
s = s.replace(/\b(true|false|null|undefined)\b/g, "0");
|
|
294
|
-
s = s.replace(/\bsteps\.[a-zA-Z_][a-zA-Z0-9_.]*\b/g, "0");
|
|
295
|
-
return /^[0\s()!&|=<>]+$/.test(s);
|
|
296
|
-
}
|
|
297
|
-
function resolvePath(path, results) {
|
|
298
|
-
const parts = path.split(".");
|
|
299
|
-
if (parts[0] !== "steps" || parts.length < 2) return void 0;
|
|
300
|
-
let cur = results;
|
|
301
|
-
for (let i = 1; i < parts.length; i++) {
|
|
302
|
-
if (cur === null || cur === void 0 || typeof cur !== "object") return void 0;
|
|
303
|
-
cur = cur[parts[i]];
|
|
304
|
-
}
|
|
305
|
-
return cur;
|
|
306
|
-
}
|
|
307
|
-
function evaluateCondition(expression, results) {
|
|
308
|
-
if (!isSafeConditionExpression(expression)) {
|
|
309
|
-
console.warn(
|
|
310
|
-
`Workflow: condition expression rejected by allowlist: "${expression}"`
|
|
311
|
-
);
|
|
312
|
-
return false;
|
|
313
|
-
}
|
|
314
|
-
try {
|
|
315
|
-
const resolved = expression.replace(
|
|
316
|
-
/\bsteps\.[a-zA-Z_][a-zA-Z0-9_.]*\b/g,
|
|
317
|
-
(match) => JSON.stringify(resolvePath(match, results))
|
|
318
|
-
);
|
|
319
|
-
const fn = new Function(`"use strict"; return !!(${resolved})`);
|
|
320
|
-
return fn();
|
|
321
|
-
} catch (e) {
|
|
322
|
-
console.warn(`Workflow: condition eval failed: "${expression}"`, e);
|
|
323
|
-
return false;
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
async function executeWithRetry(fn, maxRetries) {
|
|
327
|
-
let lastError;
|
|
328
|
-
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
329
|
-
try {
|
|
330
|
-
return await fn();
|
|
331
|
-
} catch (err) {
|
|
332
|
-
lastError = err;
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
throw lastError;
|
|
336
|
-
}
|
|
337
|
-
async function executeToolStep(step, results, thunkApi) {
|
|
338
|
-
const executor = toolExecutors[step.tool];
|
|
339
|
-
if (!executor) throw new Error(`Workflow: unknown tool "${step.tool}"`);
|
|
340
|
-
const resolvedArgs = resolveTemplates(step.args, results);
|
|
341
|
-
const result = await executor(resolvedArgs, thunkApi);
|
|
342
|
-
return result?.rawData ?? result;
|
|
343
|
-
}
|
|
344
|
-
async function executeLlmStep(step, results, thunkApi) {
|
|
345
|
-
const { dispatch } = thunkApi;
|
|
346
|
-
const resolvedPrompt = resolveTemplates(step.prompt, results);
|
|
347
|
-
const result = await dispatch(
|
|
348
|
-
runLlm({
|
|
349
|
-
content: resolvedPrompt,
|
|
350
|
-
isStreaming: false,
|
|
351
|
-
...step.model && { modelOverride: step.model }
|
|
352
|
-
})
|
|
353
|
-
).unwrap();
|
|
354
|
-
return result;
|
|
355
|
-
}
|
|
356
|
-
async function executeParallelStep(step, results, thunkApi) {
|
|
357
|
-
const subResults = await Promise.all(
|
|
358
|
-
step.steps.map(async (sub) => {
|
|
359
|
-
const subResult = sub.type === "tool" ? await executeToolStep(sub, results, thunkApi) : await executeLlmStep(sub, results, thunkApi);
|
|
360
|
-
return [sub.id, subResult];
|
|
361
|
-
})
|
|
362
|
-
);
|
|
363
|
-
return Object.fromEntries(subResults);
|
|
364
|
-
}
|
|
365
|
-
var runWorkflow = createAsyncThunk("workflow/run", async ({ definition }, thunkApi) => {
|
|
366
|
-
const { dispatch } = thunkApi;
|
|
367
|
-
const initialStepStates = definition.steps.map((s) => ({
|
|
368
|
-
id: s.id,
|
|
369
|
-
title: s.title,
|
|
370
|
-
type: s.type,
|
|
371
|
-
status: "pending"
|
|
372
|
-
}));
|
|
373
|
-
setWorkflow({ title: definition.title, steps: initialStepStates });
|
|
374
|
-
const results = {};
|
|
375
|
-
const skippedIds = /* @__PURE__ */ new Set();
|
|
376
|
-
for (const step of definition.steps) {
|
|
377
|
-
if (skippedIds.has(step.id)) {
|
|
378
|
-
updateStep({ id: step.id, updates: { status: "skipped" } });
|
|
379
|
-
continue;
|
|
380
|
-
}
|
|
381
|
-
updateStep({ id: step.id, updates: { status: "in-progress" } });
|
|
382
|
-
try {
|
|
383
|
-
let result;
|
|
384
|
-
if (step.type === "tool" || step.type === "llm") {
|
|
385
|
-
const retryable = step;
|
|
386
|
-
const policy = retryable.onError ?? "stop";
|
|
387
|
-
const maxRetries = policy === "retry" ? retryable.retryCount ?? 1 : 0;
|
|
388
|
-
result = await executeWithRetry(
|
|
389
|
-
() => step.type === "tool" ? executeToolStep(step, results, thunkApi) : executeLlmStep(step, results, thunkApi),
|
|
390
|
-
maxRetries
|
|
391
|
-
);
|
|
392
|
-
} else if (step.type === "parallel") {
|
|
393
|
-
result = await executeParallelStep(step, results, thunkApi);
|
|
394
|
-
for (const [subId, subResult] of Object.entries(
|
|
395
|
-
result
|
|
396
|
-
)) {
|
|
397
|
-
results[subId] = subResult;
|
|
398
|
-
}
|
|
399
|
-
} else if (step.type === "condition") {
|
|
400
|
-
const passed = evaluateCondition(step.check, results);
|
|
401
|
-
result = { passed, check: step.check };
|
|
402
|
-
const active = passed ? step.ifTrue : step.ifFalse;
|
|
403
|
-
const inactive = passed ? step.ifFalse : step.ifTrue;
|
|
404
|
-
if (inactive) inactive.forEach((id) => skippedIds.add(id));
|
|
405
|
-
if (active) active.forEach((id) => skippedIds.delete(id));
|
|
406
|
-
}
|
|
407
|
-
results[step.id] = result;
|
|
408
|
-
updateStep({ id: step.id, updates: { status: "completed", result } });
|
|
409
|
-
incrementStepsExecuted();
|
|
410
|
-
} catch (err) {
|
|
411
|
-
incrementFailedSteps();
|
|
412
|
-
const errorMessage = toErrorMessage(err);
|
|
413
|
-
updateStep(
|
|
414
|
-
{ id: step.id, updates: { status: "failed", error: errorMessage } }
|
|
415
|
-
);
|
|
416
|
-
const policy = step.onError ?? "stop";
|
|
417
|
-
if (policy === "stop") {
|
|
418
|
-
return {
|
|
419
|
-
success: false,
|
|
420
|
-
results,
|
|
421
|
-
failedStep: step.id,
|
|
422
|
-
error: errorMessage
|
|
423
|
-
};
|
|
424
|
-
}
|
|
425
|
-
results[step.id] = null;
|
|
426
|
-
}
|
|
427
|
-
}
|
|
428
|
-
return { success: true, results };
|
|
429
|
-
});
|
|
430
|
-
|
|
431
|
-
// packages/ai/tools/createWorkflowTool.ts
|
|
432
|
-
var createWorkflowFunctionSchema = {
|
|
433
|
-
name: "createWorkflow",
|
|
434
|
-
description: "\u5F53\u4F60\u5DF2\u77E5\u5B8C\u6574\u6267\u884C\u8DEF\u5F84\u65F6\u4F7F\u7528\u672C\u5DE5\u5177\u3002\u5B9A\u4E49\u4E00\u4E2A\u591A\u6B65\u9AA4 workflow\uFF0C\u5F15\u64CE\u81EA\u52A8\u6267\u884C\u5168\u90E8\u6B65\u9AA4\uFF0C\u4E0D\u9700\u8981\u6BCF\u6B65\u90FD\u8C03\u7528 LLM \u51B3\u7B56\uFF0C\u5927\u5E45\u8282\u7701 token\u3002\u6B65\u9AA4\u7C7B\u578B\uFF1A'tool'\u2014\u2014\u76F4\u63A5\u6267\u884C\u6CE8\u518C\u5DE5\u5177\uFF1B'llm'\u2014\u2014\u5355\u6B21 LLM \u8C03\u7528\uFF08\u65E0 tool loop\uFF09\uFF1B'parallel'\u2014\u2014\u5B50\u6B65\u9AA4\u5E76\u53D1\u6267\u884C\uFF1B'condition'\u2014\u2014\u7EAF\u903B\u8F91\u5224\u65AD\u5206\u652F\uFF0C\u65E0\u9700 LLM\u3002\u6B65\u9AA4\u95F4\u901A\u8FC7 {{steps.STEP_ID.result}} \u4F20\u9012\u6570\u636E\u3002",
|
|
435
|
-
parameters: {
|
|
436
|
-
type: "object",
|
|
437
|
-
properties: {
|
|
438
|
-
title: {
|
|
439
|
-
type: "string",
|
|
440
|
-
description: "Workflow \u6807\u9898\uFF0C\u7B80\u660E\u63CF\u8FF0\u6574\u4F53\u76EE\u6807\u3002"
|
|
441
|
-
},
|
|
442
|
-
steps: {
|
|
443
|
-
type: "array",
|
|
444
|
-
description: "\u6709\u5E8F\u6B65\u9AA4\u5217\u8868\u3002\u6BCF\u6B65\u58F0\u660E\u7C7B\u578B\u548C\u6240\u9700\u53C2\u6570\uFF0C\u5F15\u64CE\u987A\u5E8F\u6267\u884C\uFF08parallel \u6B65\u9AA4\u5185\u90E8\u5E76\u53D1\uFF09\u3002",
|
|
445
|
-
items: {
|
|
446
|
-
type: "object",
|
|
447
|
-
properties: {
|
|
448
|
-
id: {
|
|
449
|
-
type: "string",
|
|
450
|
-
description: "\u6B65\u9AA4\u552F\u4E00 ID\uFF0C\u540E\u7EED\u6B65\u9AA4\u901A\u8FC7 {{steps.ID.result}} \u5F15\u7528\u3002"
|
|
451
|
-
},
|
|
452
|
-
type: {
|
|
453
|
-
type: "string",
|
|
454
|
-
enum: ["tool", "llm", "parallel", "condition"],
|
|
455
|
-
description: "\u6B65\u9AA4\u7C7B\u578B\u3002"
|
|
456
|
-
},
|
|
457
|
-
title: {
|
|
458
|
-
type: "string",
|
|
459
|
-
description: "\u6B65\u9AA4\u4EBA\u7C7B\u53EF\u8BFB\u63CF\u8FF0\uFF08\u53EF\u9009\uFF09\u3002"
|
|
460
|
-
},
|
|
461
|
-
// tool step
|
|
462
|
-
tool: {
|
|
463
|
-
type: "string",
|
|
464
|
-
description: "type='tool' \u65F6\u5FC5\u586B\uFF0C\u5DE5\u5177\u540D\u79F0\u3002"
|
|
465
|
-
},
|
|
466
|
-
args: {
|
|
467
|
-
type: "object",
|
|
468
|
-
description: "type='tool' \u65F6\u5FC5\u586B\uFF0C\u5DE5\u5177\u53C2\u6570\u3002\u652F\u6301 {{steps.ID.result}} \u548C {{steps.ID.result[N]}} \u5360\u4F4D\u7B26\u3002parallel \u5B50\u6B65\u9AA4\u7ED3\u679C\u4E5F\u53EF\u76F4\u63A5\u901A\u8FC7\u5176\u81EA\u8EAB ID \u5F15\u7528\uFF0C\u4F8B\u5982 {{steps.subStepId.result}}\u3002"
|
|
469
|
-
},
|
|
470
|
-
// llm step
|
|
471
|
-
prompt: {
|
|
472
|
-
type: "string",
|
|
473
|
-
description: "type='llm' \u65F6\u5FC5\u586B\uFF0C\u53D1\u9001\u7ED9\u6A21\u578B\u7684 prompt\u3002\u652F\u6301\u5360\u4F4D\u7B26\u3002"
|
|
474
|
-
},
|
|
475
|
-
model: {
|
|
476
|
-
type: "string",
|
|
477
|
-
description: "type='llm' \u65F6\u53EF\u9009\uFF0C\u6307\u5B9A\u6A21\u578B\u540D\u3002"
|
|
478
|
-
},
|
|
479
|
-
// parallel step
|
|
480
|
-
steps: {
|
|
481
|
-
type: "array",
|
|
482
|
-
description: "type='parallel' \u65F6\u5FC5\u586B\uFF0C\u5B50\u6B65\u9AA4\u5217\u8868\uFF08tool \u6216 llm \u7C7B\u578B\uFF09\uFF0C\u5E76\u53D1\u6267\u884C\u3002\u5B50\u6B65\u9AA4\u6267\u884C\u5B8C\u6210\u540E\uFF0C\u5176\u7ED3\u679C\u540C\u65F6\u4EE5\u5B50\u6B65\u9AA4\u81EA\u8EAB ID \u6CE8\u518C\u5230\u5168\u5C40 steps map\uFF0C\u540E\u7EED\u6B65\u9AA4\u53EF\u901A\u8FC7 {{steps.subStepId.result}} \u76F4\u63A5\u5F15\u7528\uFF0C\u65E0\u9700\u901A\u8FC7\u7236 parallel \u6B65\u9AA4\u4E2D\u8F6C\u3002",
|
|
483
|
-
items: { type: "object" }
|
|
484
|
-
},
|
|
485
|
-
// condition step
|
|
486
|
-
check: {
|
|
487
|
-
type: "string",
|
|
488
|
-
description: `type='condition' \u65F6\u5FC5\u586B\uFF0C\u7EAF JS \u5E03\u5C14\u8868\u8FBE\u5F0F\u3002steps.<stepId>.<prop> \u8868\u793A\u67D0\u6B65\u9AA4\u7ED3\u679C\u7684\u5C5E\u6027\uFF08\u70B9\u8DEF\u5F84\uFF0C\u4E0D\u652F\u6301 bracket notation\uFF0C\u65E0 .result \u5305\u88C5\uFF09\u3002\u652F\u6301\uFF1A\u70B9\u8DEF\u5F84 / \u5B57\u7B26\u4E32\u548C\u6570\u5B57\u5B57\u9762\u91CF / \u5E03\u5C14 null / \u6BD4\u8F83\u8FD0\u7B97\u7B26 === !== > < >= <= / \u903B\u8F91\u8FD0\u7B97\u7B26 && || ! / \u62EC\u53F7\u3002\u4F8B: "steps.validate.isValid === true" \u6216 "steps.score.value >= 80 && steps.flag.ok !== false"`
|
|
489
|
-
},
|
|
490
|
-
ifTrue: {
|
|
491
|
-
type: "array",
|
|
492
|
-
items: { type: "string" },
|
|
493
|
-
description: "\u6761\u4EF6\u4E3A\u771F\u65F6\u6267\u884C\u7684\u6B65\u9AA4 ID \u5217\u8868\uFF0C\u5176\u4F59\u6B65\u9AA4\u8DF3\u8FC7\u3002"
|
|
494
|
-
},
|
|
495
|
-
ifFalse: {
|
|
496
|
-
type: "array",
|
|
497
|
-
items: { type: "string" },
|
|
498
|
-
description: "\u6761\u4EF6\u4E3A\u5047\u65F6\u6267\u884C\u7684\u6B65\u9AA4 ID \u5217\u8868\uFF0C\u5176\u4F59\u6B65\u9AA4\u8DF3\u8FC7\u3002"
|
|
499
|
-
},
|
|
500
|
-
// error handling
|
|
501
|
-
onError: {
|
|
502
|
-
type: "string",
|
|
503
|
-
enum: ["stop", "skip", "retry"],
|
|
504
|
-
description: "\u6B65\u9AA4\u5931\u8D25\u65F6\u7B56\u7565\uFF1Astop\uFF08\u9ED8\u8BA4\uFF0C\u7EC8\u6B62 workflow\uFF09/ skip\uFF08\u8DF3\u8FC7\uFF0C\u7ED3\u679C\u8BB0\u4E3A null \u7EE7\u7EED\uFF09/ retry\uFF08\u6309 retryCount \u6B21\u6570\u91CD\u8BD5\uFF0C\u8017\u5C3D\u540E\u82E5\u4ECD\u5931\u8D25\u5219\u89E6\u53D1 stop\uFF09\u3002"
|
|
505
|
-
},
|
|
506
|
-
retryCount: {
|
|
507
|
-
type: "integer",
|
|
508
|
-
description: "onError='retry' \u65F6\u91CD\u8BD5\u6B21\u6570\uFF0C\u9ED8\u8BA4 1\uFF08\u5373\u6700\u591A\u6267\u884C 2 \u6B21\uFF09\u3002"
|
|
509
|
-
}
|
|
510
|
-
},
|
|
511
|
-
required: ["id", "type"]
|
|
512
|
-
}
|
|
513
|
-
}
|
|
514
|
-
},
|
|
515
|
-
required: ["title", "steps"]
|
|
516
|
-
}
|
|
517
|
-
};
|
|
518
|
-
async function createWorkflowFunc(args, thunkApi) {
|
|
519
|
-
const { title, steps } = args;
|
|
520
|
-
if (!steps?.length) {
|
|
521
|
-
throw new Error("createWorkflow: steps \u4E0D\u80FD\u4E3A\u7A7A\u3002");
|
|
522
|
-
}
|
|
523
|
-
const definition = { title, steps };
|
|
524
|
-
const { dispatch } = thunkApi;
|
|
525
|
-
const result = await dispatch(runWorkflow({ definition })).unwrap();
|
|
526
|
-
const completedCount = Object.values(result.results).filter(
|
|
527
|
-
(v) => v !== null && v !== void 0
|
|
528
|
-
).length;
|
|
529
|
-
const displayData = result.success ? `\u2705 **${title}** \u5B8C\u6210\uFF0C\u5171\u6267\u884C ${completedCount} \u6B65` : `\u274C **${title}** \u5728\u6B65\u9AA4 \`${result.failedStep}\` \u5931\u8D25\uFF1A${result.error}`;
|
|
530
|
-
return { rawData: result, displayData };
|
|
531
|
-
}
|
|
532
|
-
|
|
533
250
|
// packages/ai/tools/modelUsageTools.ts
|
|
534
251
|
var queryModelUsageFunctionSchema = {
|
|
535
252
|
name: "queryModelUsage",
|
|
@@ -539,8 +256,8 @@ var queryModelUsageFunctionSchema = {
|
|
|
539
256
|
properties: {
|
|
540
257
|
analysisType: {
|
|
541
258
|
type: "string",
|
|
542
|
-
enum: ["billing", "workload", "cacheBreakdown", "pricingReplay", "breakEven", "prefixChurn"],
|
|
543
|
-
description: "\u5206\u6790\u7C7B\u578B\u3002billing=\u7528\u91CF\u8D39\u7528\u7EDF\u8BA1\uFF08\u9ED8\u8BA4\uFF0C\u5411\u540E\u517C\u5BB9\uFF09\uFF1Bworkload=cache hit/output-input ratio \u6307\u7EB9\uFF1BcacheBreakdown=\u6309\u6A21\u578B/agent/\u5165\u53E3\u7684 cache hit \u5206\u7EC4\uFF1BpricingReplay=\u8F93\u5165\u5B9A\u4EF7\u65B9\u6848 \xD7 \u5386\u53F2 workload = counterfactual \u6210\u672C\u5BF9\u6BD4\uFF1BbreakEven=\u4E24\u4E2A\u5B9A\u4EF7\u65B9\u6848\u7684 break-even cache hit rate\uFF1BprefixChurn=stable prefix \u53D8\u66F4\u8BCA\u65AD\u3002",
|
|
259
|
+
enum: ["billing", "workload", "cacheBreakdown", "pricingReplay", "breakEven", "prefixChurn", "dialogCacheHealth"],
|
|
260
|
+
description: "\u5206\u6790\u7C7B\u578B\u3002billing=\u7528\u91CF\u8D39\u7528\u7EDF\u8BA1\uFF08\u9ED8\u8BA4\uFF0C\u5411\u540E\u517C\u5BB9\uFF09\uFF1Bworkload=cache hit/output-input ratio \u6307\u7EB9\uFF1BcacheBreakdown=\u6309\u6A21\u578B/agent/\u5165\u53E3\u7684 cache hit \u5206\u7EC4\uFF1BpricingReplay=\u8F93\u5165\u5B9A\u4EF7\u65B9\u6848 \xD7 \u5386\u53F2 workload = counterfactual \u6210\u672C\u5BF9\u6BD4\uFF1BbreakEven=\u4E24\u4E2A\u5B9A\u4EF7\u65B9\u6848\u7684 break-even cache hit rate\uFF1BprefixChurn=stable prefix \u53D8\u66F4\u8BCA\u65AD\uFF1BdialogCacheHealth=\u6309\u5BF9\u8BDD\u5206\u7EC4\u7684 cache hit \u5065\u5EB7\u63A2\u9488\uFF08cache_read \u9489\u6B7B/input \u6301\u7EED\u6DA8\u7684\u5BF9\u8BDD\uFF0ChitRatio \u5347\u5E8F\u6700\u5DEE\u5728\u524D\uFF09\u3002",
|
|
544
261
|
default: "billing"
|
|
545
262
|
},
|
|
546
263
|
scope: {
|
|
@@ -577,6 +294,14 @@ var queryModelUsageFunctionSchema = {
|
|
|
577
294
|
type: "string",
|
|
578
295
|
description: "\u7ED3\u675F\u65E5\u671F\uFF0CYYYY-MM-DD\u3002\u9ED8\u8BA4\u7B49\u4E8E startDate\u3002"
|
|
579
296
|
},
|
|
297
|
+
dialogId: {
|
|
298
|
+
type: "string",
|
|
299
|
+
description: "\u53EF\u9009\uFF1A\u6309\u5BF9\u8BDD id \u8FC7\u6EE4 prefixChurn / dialogCacheHealth \u8BCA\u65AD"
|
|
300
|
+
},
|
|
301
|
+
minCalls: {
|
|
302
|
+
type: "number",
|
|
303
|
+
description: "\u53EF\u9009\uFF1AdialogCacheHealth \u7684\u6700\u5C0F\u8C03\u7528\u6B21\u6570\u9608\u503C\uFF0C\u4F4E\u4E8E\u8BE5\u503C\u7684\u5BF9\u8BDD\u4F1A\u88AB\u8FC7\u6EE4\uFF08\u907F\u514D\u9996\u8F6E 0% \u566A\u97F3\uFF09\u3002\u9ED8\u8BA4 3\u3002"
|
|
304
|
+
},
|
|
580
305
|
currency: {
|
|
581
306
|
type: "string",
|
|
582
307
|
description: "\u5C55\u793A\u8D27\u5E01/\u5355\u4F4D\u6807\u7B7E\u3002\u9ED8\u8BA4 CREDITS\uFF1B\u53EF\u586B USD\u3001CNY \u7B49\u3002",
|
|
@@ -2388,9 +2113,7 @@ var chat_locale_default = {
|
|
|
2388
2113
|
readFile: "Read file",
|
|
2389
2114
|
writeFile: "Write file",
|
|
2390
2115
|
editFile: "Edit file",
|
|
2391
|
-
listFiles: "List files",
|
|
2392
2116
|
globFiles: "Find files",
|
|
2393
|
-
searchFiles: "Search files",
|
|
2394
2117
|
searchWorkspace: "Search workspace",
|
|
2395
2118
|
readWorkspaceFile: "Read file",
|
|
2396
2119
|
writeWorkspaceFile: "Write file",
|
|
@@ -2463,7 +2186,19 @@ var chat_locale_default = {
|
|
|
2463
2186
|
detailLoadFailed: "Unable to load child dialog",
|
|
2464
2187
|
detailEmpty: "No messages or evidence yet.",
|
|
2465
2188
|
messagesAriaLabel: "Child dialog messages",
|
|
2466
|
-
emptyContent: "(empty)"
|
|
2189
|
+
emptyContent: "(empty)",
|
|
2190
|
+
appendInstructionTitle: "Append instruction",
|
|
2191
|
+
appendInstructionPlaceholder: "Append instruction to running task\u2026",
|
|
2192
|
+
appendInstructionButton: "Send",
|
|
2193
|
+
appendInstructionSending: "Sending\u2026",
|
|
2194
|
+
appendInstructionSuccess: "Enqueued; will be consumed in the next turn",
|
|
2195
|
+
appendInstructionFailed: "Failed to send instruction",
|
|
2196
|
+
continueTaskTitle: "Continue task",
|
|
2197
|
+
continueTaskPlaceholder: "Enter instruction to continue task\u2026",
|
|
2198
|
+
continueTaskButton: "Continue",
|
|
2199
|
+
continueTaskSuccess: "Continue instruction sent",
|
|
2200
|
+
queuedCount: "{{count}} queued",
|
|
2201
|
+
queuedCountTitle: "Number of queued instructions"
|
|
2467
2202
|
},
|
|
2468
2203
|
chat: {
|
|
2469
2204
|
agentBehavior: {
|
|
@@ -2745,9 +2480,7 @@ var chat_locale_default = {
|
|
|
2745
2480
|
readFile: "\u8BFB\u53D6\u6587\u4EF6",
|
|
2746
2481
|
writeFile: "\u5199\u5165\u6587\u4EF6",
|
|
2747
2482
|
editFile: "\u4FEE\u6539\u6587\u4EF6",
|
|
2748
|
-
listFiles: "\u6D4F\u89C8\u76EE\u5F55",
|
|
2749
2483
|
globFiles: "\u67E5\u627E\u6587\u4EF6",
|
|
2750
|
-
searchFiles: "\u641C\u7D22\u4EE3\u7801",
|
|
2751
2484
|
searchWorkspace: "\u641C\u7D22\u5DE5\u4F5C\u533A",
|
|
2752
2485
|
readWorkspaceFile: "\u8BFB\u53D6\u6587\u4EF6",
|
|
2753
2486
|
writeWorkspaceFile: "\u5199\u5165\u6587\u4EF6",
|
|
@@ -2820,7 +2553,19 @@ var chat_locale_default = {
|
|
|
2820
2553
|
detailLoadFailed: "\u65E0\u6CD5\u52A0\u8F7D\u5B50\u5BF9\u8BDD",
|
|
2821
2554
|
detailEmpty: "\u6682\u65E0\u6D88\u606F\u6216\u8BC1\u636E\u3002",
|
|
2822
2555
|
messagesAriaLabel: "\u5B50\u5BF9\u8BDD\u6D88\u606F",
|
|
2823
|
-
emptyContent: "\uFF08\u7A7A\u5185\u5BB9\uFF09"
|
|
2556
|
+
emptyContent: "\uFF08\u7A7A\u5185\u5BB9\uFF09",
|
|
2557
|
+
appendInstructionTitle: "\u8FFD\u52A0\u6307\u4EE4",
|
|
2558
|
+
appendInstructionPlaceholder: "\u8FFD\u52A0\u6307\u4EE4\u7ED9\u8FD0\u884C\u4E2D\u7684\u4EFB\u52A1\u2026",
|
|
2559
|
+
appendInstructionButton: "\u8FFD\u52A0",
|
|
2560
|
+
appendInstructionSending: "\u53D1\u9001\u4E2D\u2026",
|
|
2561
|
+
appendInstructionSuccess: "\u5DF2\u52A0\u5165\u961F\u5217\uFF0C\u5C06\u5728\u4E0B\u4E00\u8F6E\u6D88\u8D39",
|
|
2562
|
+
appendInstructionFailed: "\u53D1\u9001\u6307\u4EE4\u5931\u8D25",
|
|
2563
|
+
continueTaskTitle: "\u7EE7\u7EED\u4EFB\u52A1",
|
|
2564
|
+
continueTaskPlaceholder: "\u8F93\u5165\u6307\u4EE4\u7EE7\u7EED\u4EFB\u52A1\u2026",
|
|
2565
|
+
continueTaskButton: "\u7EE7\u7EED\u4EFB\u52A1",
|
|
2566
|
+
continueTaskSuccess: "\u5DF2\u63D0\u4EA4\u7EE7\u7EED\u6307\u4EE4",
|
|
2567
|
+
queuedCount: "{{count}} \u6761\u6392\u961F\u4E2D",
|
|
2568
|
+
queuedCountTitle: "\u5F53\u524D\u6392\u961F\u4E2D\u7684\u6307\u4EE4\u6570"
|
|
2824
2569
|
},
|
|
2825
2570
|
chat: {
|
|
2826
2571
|
agentBehavior: {
|
|
@@ -3092,9 +2837,7 @@ var chat_locale_default = {
|
|
|
3092
2837
|
readFile: "\u8B80\u53D6\u6A94\u6848",
|
|
3093
2838
|
writeFile: "\u5BEB\u5165\u6A94\u6848",
|
|
3094
2839
|
editFile: "\u4FEE\u6539\u6A94\u6848",
|
|
3095
|
-
listFiles: "\u700F\u89BD\u76EE\u9304",
|
|
3096
2840
|
globFiles: "\u67E5\u627E\u6A94\u6848",
|
|
3097
|
-
searchFiles: "\u641C\u5C0B\u7A0B\u5F0F\u78BC",
|
|
3098
2841
|
searchWorkspace: "\u641C\u5C0B\u5DE5\u4F5C\u5340",
|
|
3099
2842
|
readWorkspaceFile: "\u8B80\u53D6\u6A94\u6848",
|
|
3100
2843
|
writeWorkspaceFile: "\u5BEB\u5165\u6A94\u6848",
|
|
@@ -3167,7 +2910,19 @@ var chat_locale_default = {
|
|
|
3167
2910
|
detailLoadFailed: "\u7121\u6CD5\u8F09\u5165\u5B50\u5C0D\u8A71",
|
|
3168
2911
|
detailEmpty: "\u66AB\u7121\u8A0A\u606F\u6216\u8B49\u64DA\u3002",
|
|
3169
2912
|
messagesAriaLabel: "\u5B50\u5C0D\u8A71\u8A0A\u606F",
|
|
3170
|
-
emptyContent: "\uFF08\u7A7A\u5167\u5BB9\uFF09"
|
|
2913
|
+
emptyContent: "\uFF08\u7A7A\u5167\u5BB9\uFF09",
|
|
2914
|
+
appendInstructionTitle: "\u8FFD\u52A0\u6307\u4EE4",
|
|
2915
|
+
appendInstructionPlaceholder: "\u8FFD\u52A0\u6307\u4EE4\u7D66\u904B\u884C\u4E2D\u7684\u4EFB\u52D9\u2026",
|
|
2916
|
+
appendInstructionButton: "\u8FFD\u52A0",
|
|
2917
|
+
appendInstructionSending: "\u767C\u9001\u4E2D\u2026",
|
|
2918
|
+
appendInstructionSuccess: "\u5DF2\u52A0\u5165\u4F47\u5217\uFF0C\u5C07\u5728\u4E0B\u4E00\u8F2A\u6D88\u8CBB",
|
|
2919
|
+
appendInstructionFailed: "\u767C\u9001\u6307\u4EE4\u5931\u6557",
|
|
2920
|
+
continueTaskTitle: "\u7E7C\u7E8C\u4EFB\u52D9",
|
|
2921
|
+
continueTaskPlaceholder: "\u8F38\u5165\u6307\u4EE4\u7E7C\u7E8C\u4EFB\u52D9\u2026",
|
|
2922
|
+
continueTaskButton: "\u7E7C\u7E8C\u4EFB\u52D9",
|
|
2923
|
+
continueTaskSuccess: "\u5DF2\u63D0\u4EA4\u7E7C\u7E8C\u6307\u4EE4",
|
|
2924
|
+
queuedCount: "{{count}} \u689D\u6392\u968A\u4E2D",
|
|
2925
|
+
queuedCountTitle: "\u76EE\u524D\u6392\u968A\u4E2D\u7684\u6307\u4EE4\u6578"
|
|
3171
2926
|
}
|
|
3172
2927
|
}
|
|
3173
2928
|
},
|
|
@@ -3383,9 +3138,7 @@ var chat_locale_default = {
|
|
|
3383
3138
|
readFile: "\u30D5\u30A1\u30A4\u30EB\u8AAD\u307F\u53D6\u308A",
|
|
3384
3139
|
writeFile: "\u30D5\u30A1\u30A4\u30EB\u66F8\u304D\u8FBC\u307F",
|
|
3385
3140
|
editFile: "\u30D5\u30A1\u30A4\u30EB\u7DE8\u96C6",
|
|
3386
|
-
listFiles: "\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u4E00\u89A7",
|
|
3387
3141
|
globFiles: "\u30D5\u30A1\u30A4\u30EB\u691C\u7D22",
|
|
3388
|
-
searchFiles: "\u30B3\u30FC\u30C9\u691C\u7D22",
|
|
3389
3142
|
searchWorkspace: "\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u691C\u7D22",
|
|
3390
3143
|
readWorkspaceFile: "\u30D5\u30A1\u30A4\u30EB\u8AAD\u307F\u53D6\u308A",
|
|
3391
3144
|
writeWorkspaceFile: "\u30D5\u30A1\u30A4\u30EB\u66F8\u304D\u8FBC\u307F",
|
|
@@ -3458,7 +3211,19 @@ var chat_locale_default = {
|
|
|
3458
3211
|
detailLoadFailed: "\u5B50\u30C0\u30A4\u30A2\u30ED\u30B0\u3092\u8AAD\u307F\u8FBC\u3081\u307E\u305B\u3093",
|
|
3459
3212
|
detailEmpty: "\u30E1\u30C3\u30BB\u30FC\u30B8\u307E\u305F\u306F\u8A3C\u62E0\u306F\u307E\u3060\u3042\u308A\u307E\u305B\u3093\u3002",
|
|
3460
3213
|
messagesAriaLabel: "\u5B50\u30C0\u30A4\u30A2\u30ED\u30B0\u306E\u30E1\u30C3\u30BB\u30FC\u30B8",
|
|
3461
|
-
emptyContent: "\uFF08\u7A7A\uFF09"
|
|
3214
|
+
emptyContent: "\uFF08\u7A7A\uFF09",
|
|
3215
|
+
appendInstructionTitle: "\u6307\u793A\u3092\u8FFD\u52A0",
|
|
3216
|
+
appendInstructionPlaceholder: "\u5B9F\u884C\u4E2D\u306E\u30BF\u30B9\u30AF\u306B\u6307\u793A\u3092\u8FFD\u52A0\u2026",
|
|
3217
|
+
appendInstructionButton: "\u8FFD\u52A0",
|
|
3218
|
+
appendInstructionSending: "\u9001\u4FE1\u4E2D\u2026",
|
|
3219
|
+
appendInstructionSuccess: "\u30AD\u30E5\u30FC\u306B\u8FFD\u52A0\u3055\u308C\u307E\u3057\u305F\u3002\u6B21\u306E\u30BF\u30FC\u30F3\u3067\u51E6\u7406\u3055\u308C\u307E\u3059",
|
|
3220
|
+
appendInstructionFailed: "\u6307\u793A\u306E\u9001\u4FE1\u306B\u5931\u6557\u3057\u307E\u3057\u305F",
|
|
3221
|
+
continueTaskTitle: "\u30BF\u30B9\u30AF\u3092\u7D99\u7D9A",
|
|
3222
|
+
continueTaskPlaceholder: "\u30BF\u30B9\u30AF\u3092\u7D99\u7D9A\u3059\u308B\u6307\u793A\u3092\u5165\u529B\u2026",
|
|
3223
|
+
continueTaskButton: "\u30BF\u30B9\u30AF\u3092\u7D99\u7D9A",
|
|
3224
|
+
continueTaskSuccess: "\u7D99\u7D9A\u6307\u793A\u3092\u9001\u4FE1\u3057\u307E\u3057\u305F",
|
|
3225
|
+
queuedCount: "\u5F85\u6A5F\u4E2D {{count}} \u4EF6",
|
|
3226
|
+
queuedCountTitle: "\u5F85\u6A5F\u4E2D\u306E\u6307\u793A\u6570"
|
|
3462
3227
|
}
|
|
3463
3228
|
}
|
|
3464
3229
|
}
|
|
@@ -9835,6 +9600,14 @@ var seoLocale = {
|
|
|
9835
9600
|
shareCommunity: {
|
|
9836
9601
|
title: "Community Shares | See What People Build with Nolo.Chat",
|
|
9837
9602
|
description: "Explore public chats, docs, apps, and shared outputs from the Nolo community to see how people use AI agents for real work."
|
|
9603
|
+
},
|
|
9604
|
+
about: {
|
|
9605
|
+
title: "About Nolo.Chat | Autonomous Multi-Agent Workspace & AI Platform",
|
|
9606
|
+
description: "Learn about Nolo.Chat's mission to transform how humans work with AI through local-first autonomous multi-agent orchestration, persistent memory, and multi-model collaboration."
|
|
9607
|
+
},
|
|
9608
|
+
contact: {
|
|
9609
|
+
title: "Contact Us | Nolo.Chat Support, Feedback & Community",
|
|
9610
|
+
description: "Get in touch with the Nolo.Chat team for technical support, partnerships, bug reports, and feedback. Connect via email, community, and social channels."
|
|
9838
9611
|
}
|
|
9839
9612
|
},
|
|
9840
9613
|
["zh-CN" /* ZH_CN */]: {
|
|
@@ -9855,6 +9628,14 @@ var seoLocale = {
|
|
|
9855
9628
|
shareCommunity: {
|
|
9856
9629
|
title: "Nolo \u793E\u533A\u5206\u4EAB | \u770B\u522B\u4EBA\u600E\u6837\u7528 AI \u628A\u4E8B\u505A\u5B8C",
|
|
9857
9630
|
description: "\u6D4F\u89C8\u793E\u533A\u516C\u5F00\u5206\u4EAB\u7684\u5BF9\u8BDD\u3001\u6587\u6863\u3001\u5E94\u7528\u4E0E\u6210\u679C\uFF0C\u4E86\u89E3\u771F\u5B9E\u7528\u6237\u5982\u4F55\u7528 Nolo \u5B8C\u6210\u7814\u7A76\u3001\u5199\u4F5C\u3001\u5F00\u53D1\u4E0E\u81EA\u52A8\u5316\u4EFB\u52A1\u3002"
|
|
9631
|
+
},
|
|
9632
|
+
about: {
|
|
9633
|
+
title: "\u5173\u4E8E Nolo.Chat | \u81EA\u4E3B\u591A Agent \u534F\u4F5C AI \u5DE5\u4F5C\u53F0",
|
|
9634
|
+
description: "\u4E86\u89E3 Nolo.Chat \u7684\u4F7F\u547D\u4E0E\u6280\u672F\u613F\u666F\uFF1A\u901A\u8FC7\u672C\u5730\u4F18\u5148\u67B6\u6784\u3001\u81EA\u4E3B\u591A Agent \u534F\u4F5C\u7F51\u7EDC\u3001\u6301\u4E45\u957F\u671F\u8BB0\u5FC6\u4E0E\u591A\u6A21\u578B\u534F\u540C\uFF0C\u6253\u9020\u771F\u6B63\u66FF\u4F60\u628A\u4E8B\u505A\u5B8C\u7684 AI \u56E2\u961F\u3002"
|
|
9635
|
+
},
|
|
9636
|
+
contact: {
|
|
9637
|
+
title: "\u8054\u7CFB\u6211\u4EEC | Nolo.Chat \u5B98\u65B9\u652F\u6301\u4E0E\u793E\u533A\u53CD\u9988",
|
|
9638
|
+
description: "\u83B7\u53D6 Nolo.Chat \u5B98\u65B9\u6280\u672F\u652F\u6301\u3001\u5546\u52A1\u5408\u4F5C\u3001\u95EE\u9898\u53CD\u9988\u4E0E\u793E\u533A\u4EA4\u6D41\u5165\u53E3\u3002\u6B22\u8FCE\u901A\u8FC7\u90AE\u4EF6\u4E0E\u5B98\u65B9\u793E\u533A\u968F\u65F6\u4E0E\u6211\u4EEC\u8054\u7CFB\u3002"
|
|
9858
9639
|
}
|
|
9859
9640
|
},
|
|
9860
9641
|
["zh-Hant" /* ZH_HANT */]: {
|
|
@@ -9875,6 +9656,14 @@ var seoLocale = {
|
|
|
9875
9656
|
shareCommunity: {
|
|
9876
9657
|
title: "Nolo \u793E\u7FA4\u5206\u4EAB | \u770B\u5225\u4EBA\u5982\u4F55\u7528 AI \u628A\u4E8B\u505A\u5B8C",
|
|
9877
9658
|
description: "\u700F\u89BD\u793E\u7FA4\u516C\u958B\u5206\u4EAB\u7684\u5C0D\u8A71\u3001\u6587\u4EF6\u3001\u61C9\u7528\u8207\u6210\u679C\uFF0C\u4E86\u89E3\u771F\u5BE6\u4F7F\u7528\u8005\u5982\u4F55\u7528 Nolo \u5B8C\u6210\u7814\u7A76\u3001\u5BEB\u4F5C\u3001\u958B\u767C\u8207\u81EA\u52D5\u5316\u4EFB\u52D9\u3002"
|
|
9659
|
+
},
|
|
9660
|
+
about: {
|
|
9661
|
+
title: "\u95DC\u65BC Nolo.Chat | \u81EA\u4E3B\u591A Agent \u5354\u4F5C AI \u5DE5\u4F5C\u53F0",
|
|
9662
|
+
description: "\u4E86\u89E3 Nolo.Chat \u7684\u4F7F\u547D\u8207\u6280\u8853\u9858\u666F\uFF1A\u900F\u904E\u672C\u5730\u512A\u5148\u67B6\u69CB\u3001\u81EA\u4E3B\u591A Agent \u5354\u4F5C\u7DB2\u7D61\u3001\u6301\u4E45\u9577\u671F\u8A18\u61B6\u8207\u591A\u6A21\u578B\u5354\u540C\uFF0C\u6253\u9020\u771F\u6B63\u66FF\u4F60\u628A\u4E8B\u505A\u5B8C\u7684 AI \u5718\u968A\u3002"
|
|
9663
|
+
},
|
|
9664
|
+
contact: {
|
|
9665
|
+
title: "\u806F\u7D61\u6211\u5011 | Nolo.Chat \u5B98\u65B9\u652F\u63F4\u8207\u793E\u7FA4\u53CD\u994B",
|
|
9666
|
+
description: "\u7372\u53D6 Nolo.Chat \u5B98\u65B9\u6280\u8853\u652F\u63F4\u3001\u5546\u52D9\u5408\u4F5C\u3001\u554F\u984C\u53CD\u994B\u8207\u793E\u7FA4\u4EA4\u6D41\u5165\u53E3\u3002\u6B61\u8FCE\u900F\u904E\u90F5\u4EF6\u8207\u5B98\u65B9\u793E\u7FA4\u96A8\u6642\u8207\u6211\u5011\u806F\u7D61\u3002"
|
|
9878
9667
|
}
|
|
9879
9668
|
},
|
|
9880
9669
|
["ja" /* JA */]: {
|
|
@@ -9895,6 +9684,42 @@ var seoLocale = {
|
|
|
9895
9684
|
shareCommunity: {
|
|
9896
9685
|
title: "\u30B3\u30DF\u30E5\u30CB\u30C6\u30A3\u5171\u6709 | Nolo.Chat \u3067\u4F5C\u3089\u308C\u305F\u5B9F\u4F8B\u3092\u898B\u308B",
|
|
9897
9686
|
description: "\u30B3\u30DF\u30E5\u30CB\u30C6\u30A3\u304C\u516C\u958B\u3057\u305F\u5BFE\u8A71\u3001\u6587\u66F8\u3001\u30A2\u30D7\u30EA\u3001\u6210\u679C\u7269\u3092\u898B\u306A\u304C\u3089\u3001Nolo \u304C\u5B9F\u52D9\u3067\u3069\u3046\u4F7F\u308F\u308C\u3066\u3044\u308B\u304B\u3092\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002"
|
|
9687
|
+
},
|
|
9688
|
+
about: {
|
|
9689
|
+
title: "Nolo.Chat \u306B\u3064\u3044\u3066 | \u81EA\u5F8B\u578B\u30DE\u30EB\u30C1\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8 AI \u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9",
|
|
9690
|
+
description: "Nolo.Chat \u306E\u30D3\u30B8\u30E7\u30F3\u3068\u6280\u8853\uFF1A\u30ED\u30FC\u30AB\u30EB\u30D5\u30A1\u30FC\u30B9\u30C8\u8A2D\u8A08\u3001\u8907\u6570 Agent \u306E\u81EA\u5F8B\u5354\u8ABF\u3001\u9577\u671F\u8A18\u61B6\u3001\u30DE\u30EB\u30C1\u30E2\u30C7\u30EB\u9023\u643A\u3092\u901A\u3058\u3066\u3001\u4ED5\u4E8B\u3092\u5B9F\u969B\u306B\u4ED5\u4E0A\u3052\u308B AI \u30C1\u30FC\u30E0\u3092\u63D0\u4F9B\u3057\u307E\u3059\u3002"
|
|
9691
|
+
},
|
|
9692
|
+
contact: {
|
|
9693
|
+
title: "\u304A\u554F\u3044\u5408\u308F\u305B | Nolo.Chat \u516C\u5F0F\u30B5\u30DD\u30FC\u30C8\uFF06\u30B3\u30DF\u30E5\u30CB\u30C6\u30A3",
|
|
9694
|
+
description: "Nolo.Chat \u306E\u516C\u5F0F\u30C6\u30AF\u30CB\u30AB\u30EB\u30B5\u30DD\u30FC\u30C8\u3001\u63D0\u643A\u3001\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u7A93\u53E3\u3002\u30E1\u30FC\u30EB\u3084\u516C\u5F0F\u30B3\u30DF\u30E5\u30CB\u30C6\u30A3\u304B\u3089\u304A\u6C17\u8EFD\u306B\u304A\u554F\u3044\u5408\u308F\u305B\u304F\u3060\u3055\u3044\u3002"
|
|
9695
|
+
}
|
|
9696
|
+
},
|
|
9697
|
+
["ko" /* KO */]: {
|
|
9698
|
+
title: "Nolo.Chat | \uB2E8\uC21C \uCC57\uBD07\uC744 \uB118\uC5B4\uC120 \uB098\uB9CC\uC758 \uD504\uB77C\uC774\uBE57 AI \uD300",
|
|
9699
|
+
description: "\uB2E8\uC21C\uD55C \uB300\uD654\uB97C \uB118\uC5B4, \uC5EC\uB7EC AI \uC5D0\uC774\uC804\uD2B8\uAC00 \uD611\uB825\uD558\uC5EC \uC5C5\uBB34\uB97C \uC644\uC218\uD569\uB2C8\uB2E4. \uADDC\uCE59\uC744 \uAE30\uC5B5\uD558\uACE0 \uBC24\uC0C8 \uC2E4\uD589\uD558\uC5EC \uC544\uCE68\uC5D0 \uC2E4\uC81C \uACB0\uACFC\uBB3C\uC744 \uC81C\uACF5\uD569\uB2C8\uB2E4.",
|
|
9700
|
+
home: {
|
|
9701
|
+
title: "Nolo.Chat | \uB2F9\uC2E0\uC744 \uAE30\uC5B5\uD558\uACE0 \uC5C5\uBB34\uB97C \uC644\uC218\uD558\uB294 AI \uC6CC\uD06C\uC2A4\uD398\uC774\uC2A4",
|
|
9702
|
+
description: "GPT, Claude, DeepSeek \uB4F1\uC744 \uD558\uB098\uC758 AI \uC791\uC5C5 \uACF5\uAC04\uC5D0\uC11C \uD65C\uC6A9\uD558\uC138\uC694. Nolo\uB294 \uBB38\uB9E5\uC744 \uAE30\uC5B5\uD558\uACE0, \uC5EC\uB7EC \uC5D0\uC774\uC804\uD2B8\uC758 \uD611\uC5C5\uACFC \uD1A0\uB860\uC744 \uD1B5\uD574 \uBB38\uC11C, \uC774\uBBF8\uC9C0, \uC6F9, \uCD5C\uC885 \uACB0\uACFC\uBB3C\uC744 \uB9CC\uB4ED\uB2C8\uB2E4."
|
|
9703
|
+
},
|
|
9704
|
+
pricing: {
|
|
9705
|
+
title: "Nolo \uC694\uAE08\uC81C | \uC0AC\uC6A9\uD55C \uB9CC\uD07C\uB9CC \uACB0\uC81C\uD558\uB294 \uD06C\uB808\uB527 \uC2DC\uC2A4\uD15C",
|
|
9706
|
+
description: "\uBB34\uB8CC\uB85C \uC2DC\uC791\uD558\uACE0 \uD544\uC694\uD560 \uB54C\uB9CC \uD06C\uB808\uB527\uC744 \uCDA9\uC804\uD558\uC138\uC694. \uBAA8\uB378\uBCC4 \uBE44\uC6A9\uC744 \uBE44\uAD50\uD558\uACE0, \uAD6C\uB3C5 \uC5C6\uC774 \uACE0\uAE09 \uAE30\uB2A5\uC744 \uC720\uC5F0\uD558\uAC8C \uC774\uC6A9\uD574 \uBCF4\uC138\uC694."
|
|
9707
|
+
},
|
|
9708
|
+
explore: {
|
|
9709
|
+
title: "AI \uAD11\uC7A5 | Nolo.Chat \uACF5\uAC1C AI \uC5D0\uC774\uC804\uD2B8 \uD0D0\uC0C9",
|
|
9710
|
+
description: "\uACF5\uAC1C\uB41C AI \uC5D0\uC774\uC804\uD2B8\uB97C \uC0B4\uD3B4\uBCF4\uACE0, \uAC01 \uBD84\uC57C\uC758 \uC804\uBB38\uC131\uACFC \uC2E4\uC81C \uC6CC\uD06C\uD50C\uB85C\uB97C \uD655\uC778\uD55C \uB4A4 \uB098\uB9CC\uC758 \uC791\uC5C5 \uACF5\uAC04\uC5D0 \uCD94\uAC00\uD558\uC138\uC694."
|
|
9711
|
+
},
|
|
9712
|
+
shareCommunity: {
|
|
9713
|
+
title: "\uCEE4\uBBA4\uB2C8\uD2F0 \uACF5\uC720 | Nolo.Chat\uC73C\uB85C \uC644\uC131\uB41C \uC2E4\uC81C \uC791\uC5C5 \uC0AC\uB840",
|
|
9714
|
+
description: "Nolo \uCEE4\uBBA4\uB2C8\uD2F0\uC5D0\uC11C \uACF5\uAC1C \uACF5\uC720\uD55C \uB300\uD654, \uBB38\uC11C, \uC571, \uC791\uC5C5 \uACB0\uACFC\uBB3C\uC744 \uB458\uB7EC\uBCF4\uACE0 \uC2E4\uC81C \uC5C5\uBB34\uC5D0 AI\uB97C \uD65C\uC6A9\uD558\uB294 \uBC29\uBC95\uC744 \uD655\uC778\uD558\uC138\uC694."
|
|
9715
|
+
},
|
|
9716
|
+
about: {
|
|
9717
|
+
title: "Nolo.Chat \uC18C\uAC1C | \uC790\uC728\uD615 \uBA40\uD2F0 \uC5D0\uC774\uC804\uD2B8 AI \uC6CC\uD06C\uC2A4\uD398\uC774\uC2A4",
|
|
9718
|
+
description: "Nolo.Chat\uC758 \uBBF8\uC158\uACFC \uBE44\uC804: \uB85C\uCEEC \uC6B0\uC120 \uC544\uD0A4\uD14D\uCC98, \uC790\uC728\uC801\uC778 \uBA40\uD2F0 \uC5D0\uC774\uC804\uD2B8 \uD611\uC5C5, \uC9C0\uC18D\uC801\uC778 \uC7A5\uAE30 \uAE30\uC5B5, \uB2E4\uC911 \uBAA8\uB378 \uC870\uC728\uC744 \uD1B5\uD574 \uC2E4\uC81C \uC5C5\uBB34\uB97C \uC644\uC218\uD558\uB294 AI \uD300\uC744 \uAD6C\uCD95\uD569\uB2C8\uB2E4."
|
|
9719
|
+
},
|
|
9720
|
+
contact: {
|
|
9721
|
+
title: "\uBB38\uC758\uD558\uAE30 | Nolo.Chat \uACF5\uC2DD \uC9C0\uC6D0 \uBC0F \uCEE4\uBBA4\uB2C8\uD2F0",
|
|
9722
|
+
description: "Nolo.Chat \uAE30\uC220 \uC9C0\uC6D0, \uC81C\uD734, \uD53C\uB4DC\uBC31 \uBC0F \uCEE4\uBBA4\uB2C8\uD2F0 \uCC44\uB110 \uC548\uB0B4. \uC774\uBA54\uC77C \uBC0F \uACF5\uC2DD \uCC44\uB110\uC744 \uD1B5\uD574 \uC5B8\uC81C\uB4E0\uC9C0 \uBB38\uC758\uD574 \uC8FC\uC138\uC694."
|
|
9898
9723
|
}
|
|
9899
9724
|
}
|
|
9900
9725
|
};
|
|
@@ -10720,278 +10545,818 @@ Pro unlocks at ${ADVANCED_FEATURE_MIN_BALANCE} points. No subscription lock-in.`
|
|
|
10720
10545
|
}
|
|
10721
10546
|
};
|
|
10722
10547
|
|
|
10723
|
-
// packages/app/i18n/translations/
|
|
10724
|
-
var
|
|
10548
|
+
// packages/app/i18n/translations/recharge.locale.ts
|
|
10549
|
+
var recharge_locale_default = {
|
|
10550
|
+
["en" /* EN */]: {
|
|
10551
|
+
translation: {
|
|
10552
|
+
recharge: {
|
|
10553
|
+
title: "Recharge",
|
|
10554
|
+
viewPricing: "View pricing",
|
|
10555
|
+
channel: { online: "Online payment", transfer: "QR transfer" },
|
|
10556
|
+
loading: "Loading available payment methods...",
|
|
10557
|
+
noOnlineChannel: "No online payment method is available right now. Please pay by WeChat / Alipay QR transfer.",
|
|
10558
|
+
amountLabel: "Amount",
|
|
10559
|
+
credits: "{{count}} Points",
|
|
10560
|
+
custom: "Custom",
|
|
10561
|
+
recommended: "Popular",
|
|
10562
|
+
customPlaceholder: "Enter a whole number between {{min}} and {{max}} points",
|
|
10563
|
+
rateHint: "{{min}}-{{max}} points per order (whole numbers). The larger the top-up, the lower the price per point.",
|
|
10564
|
+
neverExpire: "Points never expire.",
|
|
10565
|
+
unlockPro: "{{n}} more points unlocks Pro \u2014 real-time web search and batch file analysis.",
|
|
10566
|
+
bestValue: "Best value",
|
|
10567
|
+
customAmountHint: "This order costs about {{price}}.",
|
|
10568
|
+
waffoTrust: "Payments are processed by Waffo Pancake under PCI-DSS. Points are credited automatically once the payment is confirmed.",
|
|
10569
|
+
methodLabel: "Payment method",
|
|
10570
|
+
methods: {
|
|
10571
|
+
waffo: { name: "Global payment", desc: "Visa / MasterCard / Apple Pay" },
|
|
10572
|
+
wechat: { name: "WeChat Pay", desc: "QR transfer" },
|
|
10573
|
+
alipay: { name: "Alipay", desc: "QR transfer" },
|
|
10574
|
+
cryptoDesc: "{{network}} network"
|
|
10575
|
+
},
|
|
10576
|
+
submit: {
|
|
10577
|
+
pay: "Pay now",
|
|
10578
|
+
paying: "Creating order...",
|
|
10579
|
+
getAddress: "Get my {{token}} deposit address",
|
|
10580
|
+
gettingAddress: "Loading..."
|
|
10581
|
+
},
|
|
10582
|
+
account: "Points go to your current account ({{username}})",
|
|
10583
|
+
accountWithBalance: "Points go to your current account ({{username}}) \xB7 balance {{balance}} points",
|
|
10584
|
+
notLoggedIn: "not signed in",
|
|
10585
|
+
cryptoHint: "Official {{token}} on {{network}} only. Points are converted from the amount actually received: 1 {{token}} = {{rate}} points, minimum {{min}} points for automatic crediting{{confirmations}}. The address is bound to your account and can be reused.",
|
|
10586
|
+
cryptoConfirmations: ", credited after {{count}} on-chain confirmations",
|
|
10587
|
+
addressLabel: "{{network}} {{token}} deposit address",
|
|
10588
|
+
copyAddress: "Copy address",
|
|
10589
|
+
transferRate: "CNY 1 = 1 point. Transfer any amount \u2014 the same number of points will be credited.",
|
|
10590
|
+
noticePrefix: "Please put your username in the transfer note:",
|
|
10591
|
+
noticeWarning: "This channel is credited manually. The note is the only proof of who paid \u2014 without it we cannot match your transfer.",
|
|
10592
|
+
qrTip: "Open {{name}} and scan the code to pay",
|
|
10593
|
+
qrLoading: "Loading securely...",
|
|
10594
|
+
qrAlt: "{{name}} payment QR code",
|
|
10595
|
+
returnMessage: {
|
|
10596
|
+
success: "Payment submitted. Points are credited automatically once the callback is confirmed.",
|
|
10597
|
+
failed: "Payment was not completed. Please try again.",
|
|
10598
|
+
cancel: "This payment was cancelled."
|
|
10599
|
+
},
|
|
10600
|
+
errors: {
|
|
10601
|
+
invalidAmount: "Enter a whole number between {{min}} and {{max}} points",
|
|
10602
|
+
loginRequired: "Please sign in before recharging",
|
|
10603
|
+
serverUnavailable: "The server is unavailable. Please try again later.",
|
|
10604
|
+
createOrder: "Failed to create the payment order",
|
|
10605
|
+
createAddress: "Failed to get the {{token}} address"
|
|
10606
|
+
},
|
|
10607
|
+
notesTitle: "Notes",
|
|
10608
|
+
notes: [
|
|
10609
|
+
`Points are billed by actual token usage and never expire. A balance of ${ADVANCED_FEATURE_MIN_BALANCE} points unlocks Pro (real-time web search, batch file analysis, and more).`,
|
|
10610
|
+
`A single recharge of ${GPT_PRO_REQUIRED_RECHARGE_AMOUNT} points or more unlocks Advanced (GPT Pro, Claude Opus, and similar models). Every payment channel counts.`,
|
|
10611
|
+
"Online payments are credited automatically after the provider confirms the callback. WeChat / Alipay transfers are credited manually, usually within 1-30 minutes, and may be delayed on holidays.",
|
|
10612
|
+
"Self-purchased points that are 100% unused can be fully refunded within 7 days. For refunds and other questions, contact {{email}}."
|
|
10613
|
+
]
|
|
10614
|
+
}
|
|
10615
|
+
}
|
|
10616
|
+
},
|
|
10617
|
+
["zh-CN" /* ZH_CN */]: {
|
|
10618
|
+
translation: {
|
|
10619
|
+
recharge: {
|
|
10620
|
+
title: "\u5145\u503C",
|
|
10621
|
+
viewPricing: "\u67E5\u770B\u4EF7\u683C",
|
|
10622
|
+
channel: { online: "\u5728\u7EBF\u652F\u4ED8", transfer: "\u626B\u7801\u8F6C\u8D26" },
|
|
10623
|
+
loading: "\u6B63\u5728\u52A0\u8F7D\u53EF\u7528\u7684\u652F\u4ED8\u65B9\u5F0F...",
|
|
10624
|
+
noOnlineChannel: "\u5F53\u524D\u6CA1\u6709\u53EF\u7528\u7684\u5728\u7EBF\u652F\u4ED8\u65B9\u5F0F\uFF0C\u8BF7\u4F7F\u7528\u5FAE\u4FE1 / \u652F\u4ED8\u5B9D\u626B\u7801\u8F6C\u8D26\u3002",
|
|
10625
|
+
amountLabel: "\u5145\u503C\u989D\u5EA6",
|
|
10626
|
+
credits: "{{count}} \u79EF\u5206",
|
|
10627
|
+
custom: "\u81EA\u5B9A\u4E49",
|
|
10628
|
+
recommended: "\u63A8\u8350",
|
|
10629
|
+
customPlaceholder: "\u8BF7\u8F93\u5165 {{min}}-{{max}} \u4E4B\u95F4\u7684\u6574\u6570\u79EF\u5206",
|
|
10630
|
+
rateHint: "\u5355\u7B14 {{min}}-{{max}} \u79EF\u5206\uFF08\u6574\u6570\uFF09\u3002\u5145\u5F97\u8D8A\u591A\uFF0C\u6BCF\u79EF\u5206\u5355\u4EF7\u8D8A\u4F4E\u3002",
|
|
10631
|
+
neverExpire: "\u79EF\u5206\u6C38\u4E45\u6709\u6548\uFF0C\u4E0D\u8BBE\u6709\u6548\u671F\u3002",
|
|
10632
|
+
unlockPro: "\u518D\u5145 {{n}} \u79EF\u5206\u5373\u53EF\u89E3\u9501\u4E13\u4E1A\u7248\uFF1A\u5B9E\u65F6\u8054\u7F51\u641C\u7D22\u3001\u6279\u91CF\u6587\u4EF6\u5206\u6790\u3002",
|
|
10633
|
+
bestValue: "\u6700\u5212\u7B97",
|
|
10634
|
+
customAmountHint: "\u672C\u6B21\u7EA6\u9700 {{price}}\u3002",
|
|
10635
|
+
waffoTrust: "\u652F\u4ED8\u7531 Waffo Pancake \u5904\u7406\u5E76\u7B26\u5408 PCI-DSS \u56FD\u9645\u5B89\u5168\u6807\u51C6\uFF0C\u56DE\u8C03\u786E\u8BA4\u540E\u79EF\u5206\u81EA\u52A8\u5230\u8D26\u3002",
|
|
10636
|
+
methodLabel: "\u652F\u4ED8\u65B9\u5F0F",
|
|
10637
|
+
methods: {
|
|
10638
|
+
waffo: { name: "\u5168\u7403\u652F\u4ED8", desc: "Visa / MasterCard / Apple Pay" },
|
|
10639
|
+
wechat: { name: "\u5FAE\u4FE1\u652F\u4ED8", desc: "\u626B\u7801\u8F6C\u8D26" },
|
|
10640
|
+
alipay: { name: "\u652F\u4ED8\u5B9D", desc: "\u626B\u7801\u8F6C\u8D26" },
|
|
10641
|
+
cryptoDesc: "{{network}} \u7F51\u7EDC"
|
|
10642
|
+
},
|
|
10643
|
+
submit: {
|
|
10644
|
+
pay: "\u53BB\u652F\u4ED8",
|
|
10645
|
+
paying: "\u521B\u5EFA\u8BA2\u5355\u4E2D...",
|
|
10646
|
+
getAddress: "\u83B7\u53D6\u6211\u7684 {{token}} \u5145\u503C\u5730\u5740",
|
|
10647
|
+
gettingAddress: "\u83B7\u53D6\u4E2D..."
|
|
10648
|
+
},
|
|
10649
|
+
account: "\u79EF\u5206\u5C06\u5145\u5165\u5F53\u524D\u5E10\u6237\uFF08{{username}}\uFF09",
|
|
10650
|
+
accountWithBalance: "\u79EF\u5206\u5C06\u5145\u5165\u5F53\u524D\u5E10\u6237\uFF08{{username}}\uFF09\uFF0C\u5F53\u524D\u4F59\u989D {{balance}} \u79EF\u5206",
|
|
10651
|
+
notLoggedIn: "\u672A\u767B\u5F55",
|
|
10652
|
+
cryptoHint: "\u53EA\u652F\u6301 {{network}} \u7F51\u7EDC\u5B98\u65B9 {{token}}\uFF0C\u6309\u5B9E\u9645\u5230\u8D26\u91D1\u989D\u6298\u7B97\uFF1A1 {{token}} = {{rate}} \u79EF\u5206\uFF0C\u6700\u4F4E\u81EA\u52A8\u5165\u8D26 {{min}} \u79EF\u5206{{confirmations}}\u3002\u5730\u5740\u4E0E\u4F60\u7684\u8D26\u6237\u7ED1\u5B9A\uFF0C\u53EF\u91CD\u590D\u4F7F\u7528\u3002",
|
|
10653
|
+
cryptoConfirmations: "\uFF0C\u94FE\u4E0A {{count}} \u4E2A\u786E\u8BA4\u540E\u5165\u8D26",
|
|
10654
|
+
addressLabel: "{{network}} {{token}} \u6536\u6B3E\u5730\u5740",
|
|
10655
|
+
copyAddress: "\u590D\u5236\u5730\u5740",
|
|
10656
|
+
transferRate: "\u4EBA\u6C11\u5E01 1 \u5143 = 1 \u79EF\u5206\uFF0C\u8F6C\u591A\u5C11\u5230\u8D26\u591A\u5C11\u79EF\u5206\u3002",
|
|
10657
|
+
noticePrefix: "\u8F6C\u8D26\u5907\u6CE8\u8BF7\u52A1\u5FC5\u586B\u5199\u7528\u6237\u540D\uFF1A",
|
|
10658
|
+
noticeWarning: "\u8BE5\u6E20\u9053\u4E3A\u4EBA\u5DE5\u6838\u5BF9\u5145\u503C\uFF0C\u5907\u6CE8\u662F\u552F\u4E00\u7684\u6536\u6B3E\u4EBA\u51ED\u636E\uFF1B\u672A\u586B\u5199\u5C06\u65E0\u6CD5\u786E\u8BA4\u5145\u503C\u5F52\u5C5E",
|
|
10659
|
+
qrTip: "\u6253\u5F00{{name}}\u300C\u626B\u4E00\u626B\u300D\u5B8C\u6210\u652F\u4ED8",
|
|
10660
|
+
qrLoading: "\u5B89\u5168\u52A0\u8F7D\u4E2D...",
|
|
10661
|
+
qrAlt: "{{name}}\u5145\u503C\u4E8C\u7EF4\u7801",
|
|
10662
|
+
returnMessage: {
|
|
10663
|
+
success: "\u652F\u4ED8\u5DF2\u63D0\u4EA4\uFF0C\u5230\u8D26\u901A\u5E38\u4F1A\u5728\u56DE\u8C03\u786E\u8BA4\u540E\u81EA\u52A8\u5B8C\u6210\u3002",
|
|
10664
|
+
failed: "\u652F\u4ED8\u672A\u5B8C\u6210\uFF0C\u8BF7\u91CD\u65B0\u53D1\u8D77\u652F\u4ED8\u3002",
|
|
10665
|
+
cancel: "\u5DF2\u53D6\u6D88\u672C\u6B21\u652F\u4ED8\u3002"
|
|
10666
|
+
},
|
|
10667
|
+
errors: {
|
|
10668
|
+
invalidAmount: "\u8BF7\u8F93\u5165 {{min}}-{{max}} \u4E4B\u95F4\u7684\u6574\u6570\u79EF\u5206",
|
|
10669
|
+
loginRequired: "\u8BF7\u5148\u767B\u5F55\u540E\u518D\u5145\u503C",
|
|
10670
|
+
serverUnavailable: "\u5F53\u524D\u670D\u52A1\u5668\u4E0D\u53EF\u7528\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5",
|
|
10671
|
+
createOrder: "\u521B\u5EFA\u652F\u4ED8\u8BA2\u5355\u5931\u8D25",
|
|
10672
|
+
createAddress: "\u521B\u5EFA {{token}} \u5730\u5740\u5931\u8D25"
|
|
10673
|
+
},
|
|
10674
|
+
notesTitle: "\u63D0\u793A",
|
|
10675
|
+
notes: [
|
|
10676
|
+
`\u79EF\u5206\u6309\u5B9E\u9645\u6D88\u8017\u7684 Token \u6263\u8D39\uFF0C\u6C38\u4E45\u6709\u6548\u3002\u4F59\u989D\u8FBE\u5230 ${ADVANCED_FEATURE_MIN_BALANCE} \u79EF\u5206\u81EA\u52A8\u89E3\u9501\u4E13\u4E1A\u7248\uFF08\u5B9E\u65F6\u8054\u7F51\u641C\u7D22\u3001\u6279\u91CF\u6587\u4EF6\u5206\u6790\u7B49\uFF09\u3002`,
|
|
10677
|
+
`\u5355\u7B14\u5145\u503C \u2265 ${GPT_PRO_REQUIRED_RECHARGE_AMOUNT} \u79EF\u5206\u89E3\u9501\u9AD8\u9636\u7248\uFF08GPT Pro\u3001Claude Opus \u7B49\u6A21\u578B\uFF09\uFF0C\u4EFB\u610F\u5145\u503C\u6E20\u9053\u5747\u8BA1\u5165\u3002`,
|
|
10678
|
+
"\u5728\u7EBF\u652F\u4ED8\u7531\u652F\u4ED8\u5E73\u53F0\u56DE\u8C03\u786E\u8BA4\u540E\u81EA\u52A8\u5230\u8D26\uFF1B\u5FAE\u4FE1 / \u652F\u4ED8\u5B9D\u4E3A\u4EBA\u5DE5\u6838\u5BF9\u5145\u503C\uFF0C\u901A\u5E38 1-30 \u5206\u949F\uFF0C\u8282\u5047\u65E5\u53EF\u80FD\u5EF6\u8FDF\u3002",
|
|
10679
|
+
"\u81EA\u8D39\u5145\u503C\u7684\u79EF\u5206\u5728 7 \u5929\u5185\u5B8C\u5168\u672A\u4F7F\u7528\u53EF\u7533\u8BF7\u5168\u989D\u9000\u6B3E\uFF0C\u9000\u6B3E\u53CA\u5176\u4ED6\u95EE\u9898\u8BF7\u8054\u7CFB {{email}}\u3002"
|
|
10680
|
+
]
|
|
10681
|
+
}
|
|
10682
|
+
}
|
|
10683
|
+
},
|
|
10684
|
+
["zh-Hant" /* ZH_HANT */]: {
|
|
10685
|
+
translation: {
|
|
10686
|
+
recharge: {
|
|
10687
|
+
title: "\u5132\u503C",
|
|
10688
|
+
viewPricing: "\u67E5\u770B\u50F9\u683C",
|
|
10689
|
+
channel: { online: "\u7DDA\u4E0A\u652F\u4ED8", transfer: "\u6383\u78BC\u8F49\u5E33" },
|
|
10690
|
+
loading: "\u6B63\u5728\u8F09\u5165\u53EF\u7528\u7684\u652F\u4ED8\u65B9\u5F0F...",
|
|
10691
|
+
noOnlineChannel: "\u76EE\u524D\u6C92\u6709\u53EF\u7528\u7684\u7DDA\u4E0A\u652F\u4ED8\u65B9\u5F0F\uFF0C\u8ACB\u4F7F\u7528\u5FAE\u4FE1 / \u652F\u4ED8\u5BF6\u6383\u78BC\u8F49\u5E33\u3002",
|
|
10692
|
+
amountLabel: "\u5132\u503C\u984D\u5EA6",
|
|
10693
|
+
credits: "{{count}} \u7A4D\u5206",
|
|
10694
|
+
custom: "\u81EA\u8A02",
|
|
10695
|
+
recommended: "\u63A8\u85A6",
|
|
10696
|
+
customPlaceholder: "\u8ACB\u8F38\u5165 {{min}}-{{max}} \u4E4B\u9593\u7684\u6574\u6578\u7A4D\u5206",
|
|
10697
|
+
rateHint: "\u55AE\u7B46 {{min}}-{{max}} \u7A4D\u5206\uFF08\u6574\u6578\uFF09\u3002\u5132\u503C\u8D8A\u591A\uFF0C\u6BCF\u7A4D\u5206\u55AE\u50F9\u8D8A\u4F4E\u3002",
|
|
10698
|
+
neverExpire: "\u7A4D\u5206\u6C38\u4E45\u6709\u6548\uFF0C\u4E0D\u8A2D\u6709\u6548\u671F\u9650\u3002",
|
|
10699
|
+
unlockPro: "\u518D\u5132\u503C {{n}} \u7A4D\u5206\u5373\u53EF\u89E3\u9396\u5C08\u696D\u7248\uFF1A\u5373\u6642\u806F\u7DB2\u641C\u5C0B\u3001\u6279\u6B21\u6A94\u6848\u5206\u6790\u3002",
|
|
10700
|
+
bestValue: "\u6700\u5212\u7B97",
|
|
10701
|
+
customAmountHint: "\u672C\u6B21\u7D04\u9700 {{price}}\u3002",
|
|
10702
|
+
waffoTrust: "\u652F\u4ED8\u7531 Waffo Pancake \u8655\u7406\u4E26\u7B26\u5408 PCI-DSS \u570B\u969B\u5B89\u5168\u6A19\u6E96\uFF0C\u56DE\u547C\u78BA\u8A8D\u5F8C\u7A4D\u5206\u81EA\u52D5\u5165\u5E33\u3002",
|
|
10703
|
+
methodLabel: "\u652F\u4ED8\u65B9\u5F0F",
|
|
10704
|
+
methods: {
|
|
10705
|
+
waffo: { name: "\u5168\u7403\u652F\u4ED8", desc: "Visa / MasterCard / Apple Pay" },
|
|
10706
|
+
wechat: { name: "\u5FAE\u4FE1\u652F\u4ED8", desc: "\u6383\u78BC\u8F49\u5E33" },
|
|
10707
|
+
alipay: { name: "\u652F\u4ED8\u5BF6", desc: "\u6383\u78BC\u8F49\u5E33" },
|
|
10708
|
+
cryptoDesc: "{{network}} \u7DB2\u8DEF"
|
|
10709
|
+
},
|
|
10710
|
+
submit: {
|
|
10711
|
+
pay: "\u524D\u5F80\u652F\u4ED8",
|
|
10712
|
+
paying: "\u5EFA\u7ACB\u8A02\u55AE\u4E2D...",
|
|
10713
|
+
getAddress: "\u53D6\u5F97\u6211\u7684 {{token}} \u5132\u503C\u5730\u5740",
|
|
10714
|
+
gettingAddress: "\u53D6\u5F97\u4E2D..."
|
|
10715
|
+
},
|
|
10716
|
+
account: "\u7A4D\u5206\u5C07\u5B58\u5165\u76EE\u524D\u5E33\u6236\uFF08{{username}}\uFF09",
|
|
10717
|
+
accountWithBalance: "\u7A4D\u5206\u5C07\u5B58\u5165\u76EE\u524D\u5E33\u6236\uFF08{{username}}\uFF09\uFF0C\u76EE\u524D\u9918\u984D {{balance}} \u7A4D\u5206",
|
|
10718
|
+
notLoggedIn: "\u672A\u767B\u5165",
|
|
10719
|
+
cryptoHint: "\u50C5\u652F\u63F4 {{network}} \u7DB2\u8DEF\u5B98\u65B9 {{token}}\uFF0C\u4F9D\u5BE6\u969B\u5230\u5E33\u91D1\u984D\u6298\u7B97\uFF1A1 {{token}} = {{rate}} \u7A4D\u5206\uFF0C\u6700\u4F4E\u81EA\u52D5\u5165\u5E33 {{min}} \u7A4D\u5206{{confirmations}}\u3002\u5730\u5740\u8207\u4F60\u7684\u5E33\u6236\u7D81\u5B9A\uFF0C\u53EF\u91CD\u8907\u4F7F\u7528\u3002",
|
|
10720
|
+
cryptoConfirmations: "\uFF0C\u93C8\u4E0A {{count}} \u500B\u78BA\u8A8D\u5F8C\u5165\u5E33",
|
|
10721
|
+
addressLabel: "{{network}} {{token}} \u6536\u6B3E\u5730\u5740",
|
|
10722
|
+
copyAddress: "\u8907\u88FD\u5730\u5740",
|
|
10723
|
+
transferRate: "\u4EBA\u6C11\u5E63 1 \u5143 = 1 \u7A4D\u5206\uFF0C\u8F49\u591A\u5C11\u5165\u5E33\u591A\u5C11\u7A4D\u5206\u3002",
|
|
10724
|
+
noticePrefix: "\u8F49\u5E33\u5099\u8A3B\u8ACB\u52D9\u5FC5\u586B\u5BEB\u4F7F\u7528\u8005\u540D\u7A31\uFF1A",
|
|
10725
|
+
noticeWarning: "\u6B64\u7BA1\u9053\u70BA\u4EBA\u5DE5\u6838\u5C0D\u5132\u503C\uFF0C\u5099\u8A3B\u662F\u552F\u4E00\u7684\u4ED8\u6B3E\u4EBA\u6191\u64DA\uFF1B\u672A\u586B\u5BEB\u5C07\u7121\u6CD5\u78BA\u8A8D\u5132\u503C\u6B78\u5C6C",
|
|
10726
|
+
qrTip: "\u958B\u555F{{name}}\u300C\u6383\u4E00\u6383\u300D\u5B8C\u6210\u652F\u4ED8",
|
|
10727
|
+
qrLoading: "\u5B89\u5168\u8F09\u5165\u4E2D...",
|
|
10728
|
+
qrAlt: "{{name}}\u5132\u503C QR Code",
|
|
10729
|
+
returnMessage: {
|
|
10730
|
+
success: "\u652F\u4ED8\u5DF2\u9001\u51FA\uFF0C\u5165\u5E33\u901A\u5E38\u6703\u5728\u56DE\u547C\u78BA\u8A8D\u5F8C\u81EA\u52D5\u5B8C\u6210\u3002",
|
|
10731
|
+
failed: "\u652F\u4ED8\u672A\u5B8C\u6210\uFF0C\u8ACB\u91CD\u65B0\u767C\u8D77\u652F\u4ED8\u3002",
|
|
10732
|
+
cancel: "\u5DF2\u53D6\u6D88\u672C\u6B21\u652F\u4ED8\u3002"
|
|
10733
|
+
},
|
|
10734
|
+
errors: {
|
|
10735
|
+
invalidAmount: "\u8ACB\u8F38\u5165 {{min}}-{{max}} \u4E4B\u9593\u7684\u6574\u6578\u7A4D\u5206",
|
|
10736
|
+
loginRequired: "\u8ACB\u5148\u767B\u5165\u5F8C\u518D\u5132\u503C",
|
|
10737
|
+
serverUnavailable: "\u76EE\u524D\u4F3A\u670D\u5668\u7121\u6CD5\u4F7F\u7528\uFF0C\u8ACB\u7A0D\u5F8C\u91CD\u8A66",
|
|
10738
|
+
createOrder: "\u5EFA\u7ACB\u652F\u4ED8\u8A02\u55AE\u5931\u6557",
|
|
10739
|
+
createAddress: "\u5EFA\u7ACB {{token}} \u5730\u5740\u5931\u6557"
|
|
10740
|
+
},
|
|
10741
|
+
notesTitle: "\u63D0\u793A",
|
|
10742
|
+
notes: [
|
|
10743
|
+
`\u7A4D\u5206\u4F9D\u5BE6\u969B\u6D88\u8017\u7684 Token \u6263\u8CBB\uFF0C\u6C38\u4E45\u6709\u6548\u3002\u9918\u984D\u9054\u5230 ${ADVANCED_FEATURE_MIN_BALANCE} \u7A4D\u5206\u81EA\u52D5\u89E3\u9396\u5C08\u696D\u7248\uFF08\u5373\u6642\u806F\u7DB2\u641C\u5C0B\u3001\u6279\u6B21\u6A94\u6848\u5206\u6790\u7B49\uFF09\u3002`,
|
|
10744
|
+
`\u55AE\u7B46\u5132\u503C \u2265 ${GPT_PRO_REQUIRED_RECHARGE_AMOUNT} \u7A4D\u5206\u89E3\u9396\u9AD8\u968E\u7248\uFF08GPT Pro\u3001Claude Opus \u7B49\u6A21\u578B\uFF09\uFF0C\u4EFB\u4F55\u5132\u503C\u7BA1\u9053\u5747\u8A08\u5165\u3002`,
|
|
10745
|
+
"\u7DDA\u4E0A\u652F\u4ED8\u7531\u652F\u4ED8\u5E73\u53F0\u56DE\u547C\u78BA\u8A8D\u5F8C\u81EA\u52D5\u5165\u5E33\uFF1B\u5FAE\u4FE1 / \u652F\u4ED8\u5BF6\u70BA\u4EBA\u5DE5\u6838\u5C0D\u5132\u503C\uFF0C\u901A\u5E38 1-30 \u5206\u9418\uFF0C\u5047\u65E5\u53EF\u80FD\u5EF6\u9072\u3002",
|
|
10746
|
+
"\u81EA\u8CBB\u5132\u503C\u7684\u7A4D\u5206\u5728 7 \u5929\u5167\u5B8C\u5168\u672A\u4F7F\u7528\u53EF\u7533\u8ACB\u5168\u984D\u9000\u6B3E\uFF0C\u9000\u6B3E\u53CA\u5176\u4ED6\u554F\u984C\u8ACB\u806F\u7D61 {{email}}\u3002"
|
|
10747
|
+
]
|
|
10748
|
+
}
|
|
10749
|
+
}
|
|
10750
|
+
},
|
|
10751
|
+
["ja" /* JA */]: {
|
|
10752
|
+
translation: {
|
|
10753
|
+
recharge: {
|
|
10754
|
+
title: "\u30C1\u30E3\u30FC\u30B8",
|
|
10755
|
+
viewPricing: "\u6599\u91D1\u3092\u898B\u308B",
|
|
10756
|
+
channel: { online: "\u30AA\u30F3\u30E9\u30A4\u30F3\u6C7A\u6E08", transfer: "QR\u9001\u91D1" },
|
|
10757
|
+
loading: "\u5229\u7528\u53EF\u80FD\u306A\u6C7A\u6E08\u65B9\u6CD5\u3092\u8AAD\u307F\u8FBC\u3093\u3067\u3044\u307E\u3059...",
|
|
10758
|
+
noOnlineChannel: "\u73FE\u5728\u5229\u7528\u3067\u304D\u308B\u30AA\u30F3\u30E9\u30A4\u30F3\u6C7A\u6E08\u304C\u3042\u308A\u307E\u305B\u3093\u3002WeChat / Alipay \u306EQR\u9001\u91D1\u3092\u3054\u5229\u7528\u304F\u3060\u3055\u3044\u3002",
|
|
10759
|
+
amountLabel: "\u30C1\u30E3\u30FC\u30B8\u984D",
|
|
10760
|
+
credits: "{{count}} \u30DD\u30A4\u30F3\u30C8",
|
|
10761
|
+
custom: "\u30AB\u30B9\u30BF\u30E0",
|
|
10762
|
+
recommended: "\u304A\u3059\u3059\u3081",
|
|
10763
|
+
customPlaceholder: "{{min}}\u301C{{max}} \u306E\u6574\u6570\u30DD\u30A4\u30F3\u30C8\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",
|
|
10764
|
+
rateHint: "1\u56DE\u3042\u305F\u308A {{min}}\u301C{{max}} \u30DD\u30A4\u30F3\u30C8\uFF08\u6574\u6570\uFF09\u3002\u91D1\u984D\u304C\u5927\u304D\u3044\u307B\u30691\u30DD\u30A4\u30F3\u30C8\u5358\u4FA1\u304C\u4E0B\u304C\u308A\u307E\u3059\u3002",
|
|
10765
|
+
neverExpire: "\u30DD\u30A4\u30F3\u30C8\u306B\u6709\u52B9\u671F\u9650\u306F\u3042\u308A\u307E\u305B\u3093\u3002",
|
|
10766
|
+
unlockPro: "\u3042\u3068 {{n}} \u30DD\u30A4\u30F3\u30C8\u3067\u30D7\u30ED\u7248\uFF08\u30EA\u30A2\u30EB\u30BF\u30A4\u30E0\u691C\u7D22\u30FB\u4E00\u62EC\u30D5\u30A1\u30A4\u30EB\u5206\u6790\uFF09\u304C\u89E3\u653E\u3055\u308C\u307E\u3059\u3002",
|
|
10767
|
+
bestValue: "\u6700\u3082\u304A\u5F97",
|
|
10768
|
+
customAmountHint: "\u4ECA\u56DE\u306E\u304A\u652F\u6255\u3044\u306F\u7D04 {{price}} \u3067\u3059\u3002",
|
|
10769
|
+
waffoTrust: "\u6C7A\u6E08\u306F Waffo Pancake \u304C PCI-DSS \u6E96\u62E0\u3067\u51E6\u7406\u3057\u307E\u3059\u3002\u78BA\u8A8D\u5F8C\u3001\u30DD\u30A4\u30F3\u30C8\u306F\u81EA\u52D5\u7684\u306B\u53CD\u6620\u3055\u308C\u307E\u3059\u3002",
|
|
10770
|
+
methodLabel: "\u6C7A\u6E08\u65B9\u6CD5",
|
|
10771
|
+
methods: {
|
|
10772
|
+
waffo: { name: "\u30B0\u30ED\u30FC\u30D0\u30EB\u6C7A\u6E08", desc: "Visa / MasterCard / Apple Pay" },
|
|
10773
|
+
wechat: { name: "WeChat Pay", desc: "QR\u9001\u91D1" },
|
|
10774
|
+
alipay: { name: "Alipay", desc: "QR\u9001\u91D1" },
|
|
10775
|
+
cryptoDesc: "{{network}} \u30CD\u30C3\u30C8\u30EF\u30FC\u30AF"
|
|
10776
|
+
},
|
|
10777
|
+
submit: {
|
|
10778
|
+
pay: "\u652F\u6255\u3044\u3078\u9032\u3080",
|
|
10779
|
+
paying: "\u6CE8\u6587\u3092\u4F5C\u6210\u4E2D...",
|
|
10780
|
+
getAddress: "{{token}} \u306E\u5165\u91D1\u30A2\u30C9\u30EC\u30B9\u3092\u53D6\u5F97",
|
|
10781
|
+
gettingAddress: "\u53D6\u5F97\u4E2D..."
|
|
10782
|
+
},
|
|
10783
|
+
account: "\u30DD\u30A4\u30F3\u30C8\u306F\u73FE\u5728\u306E\u30A2\u30AB\u30A6\u30F3\u30C8\uFF08{{username}}\uFF09\u306B\u53CD\u6620\u3055\u308C\u307E\u3059",
|
|
10784
|
+
accountWithBalance: "\u30DD\u30A4\u30F3\u30C8\u306F\u73FE\u5728\u306E\u30A2\u30AB\u30A6\u30F3\u30C8\uFF08{{username}}\uFF09\u306B\u53CD\u6620\u3055\u308C\u307E\u3059\u30FB\u6B8B\u9AD8 {{balance}} \u30DD\u30A4\u30F3\u30C8",
|
|
10785
|
+
notLoggedIn: "\u672A\u30ED\u30B0\u30A4\u30F3",
|
|
10786
|
+
cryptoHint: "{{network}} \u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u306E\u516C\u5F0F {{token}} \u306E\u307F\u5BFE\u5FDC\u3002\u5B9F\u969B\u306E\u7740\u91D1\u984D\u304B\u3089\u63DB\u7B97\u3055\u308C\u307E\u3059\uFF1A1 {{token}} = {{rate}} \u30DD\u30A4\u30F3\u30C8\u3001\u81EA\u52D5\u53CD\u6620\u306F\u6700\u4F4E {{min}} \u30DD\u30A4\u30F3\u30C8\u304B\u3089{{confirmations}}\u3002\u30A2\u30C9\u30EC\u30B9\u306F\u30A2\u30AB\u30A6\u30F3\u30C8\u306B\u7D10\u3065\u304D\u3001\u7E70\u308A\u8FD4\u3057\u5229\u7528\u3067\u304D\u307E\u3059\u3002",
|
|
10787
|
+
cryptoConfirmations: "\u3001\u30C1\u30A7\u30FC\u30F3\u4E0A\u3067 {{count}} \u627F\u8A8D\u5F8C\u306B\u53CD\u6620",
|
|
10788
|
+
addressLabel: "{{network}} {{token}} \u5165\u91D1\u30A2\u30C9\u30EC\u30B9",
|
|
10789
|
+
copyAddress: "\u30A2\u30C9\u30EC\u30B9\u3092\u30B3\u30D4\u30FC",
|
|
10790
|
+
transferRate: "\u4EBA\u6C11\u5143 1 \u5143 = 1 \u30DD\u30A4\u30F3\u30C8\u3002\u9001\u91D1\u3057\u305F\u91D1\u984D\u3068\u540C\u3058\u30DD\u30A4\u30F3\u30C8\u304C\u53CD\u6620\u3055\u308C\u307E\u3059\u3002",
|
|
10791
|
+
noticePrefix: "\u9001\u91D1\u30E1\u30E2\u306B\u5FC5\u305A\u30E6\u30FC\u30B6\u30FC\u540D\u3092\u8A18\u5165\u3057\u3066\u304F\u3060\u3055\u3044\uFF1A",
|
|
10792
|
+
noticeWarning: "\u3053\u306E\u65B9\u6CD5\u306F\u624B\u52D5\u3067\u306E\u30C1\u30E3\u30FC\u30B8\u3067\u3059\u3002\u30E1\u30E2\u304C\u552F\u4E00\u306E\u9001\u91D1\u8005\u306E\u8A3C\u660E\u3067\u3042\u308A\u3001\u8A18\u5165\u304C\u306A\u3044\u3068\u7167\u5408\u3067\u304D\u307E\u305B\u3093",
|
|
10793
|
+
qrTip: "{{name}}\u3092\u958B\u304D\u3001QR\u30B3\u30FC\u30C9\u3092\u30B9\u30AD\u30E3\u30F3\u3057\u3066\u652F\u6255\u3046",
|
|
10794
|
+
qrLoading: "\u5B89\u5168\u306B\u8AAD\u307F\u8FBC\u307F\u4E2D...",
|
|
10795
|
+
qrAlt: "{{name}}\u306E\u30C1\u30E3\u30FC\u30B8\u7528QR\u30B3\u30FC\u30C9",
|
|
10796
|
+
returnMessage: {
|
|
10797
|
+
success: "\u652F\u6255\u3044\u3092\u9001\u4FE1\u3057\u307E\u3057\u305F\u3002\u30B3\u30FC\u30EB\u30D0\u30C3\u30AF\u78BA\u8A8D\u5F8C\u3001\u81EA\u52D5\u7684\u306B\u53CD\u6620\u3055\u308C\u307E\u3059\u3002",
|
|
10798
|
+
failed: "\u652F\u6255\u3044\u304C\u5B8C\u4E86\u3057\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u3082\u3046\u4E00\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\u3002",
|
|
10799
|
+
cancel: "\u4ECA\u56DE\u306E\u652F\u6255\u3044\u306F\u30AD\u30E3\u30F3\u30BB\u30EB\u3055\u308C\u307E\u3057\u305F\u3002"
|
|
10800
|
+
},
|
|
10801
|
+
errors: {
|
|
10802
|
+
invalidAmount: "{{min}}\u301C{{max}} \u306E\u6574\u6570\u30DD\u30A4\u30F3\u30C8\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",
|
|
10803
|
+
loginRequired: "\u30C1\u30E3\u30FC\u30B8\u306E\u524D\u306B\u30ED\u30B0\u30A4\u30F3\u3057\u3066\u304F\u3060\u3055\u3044",
|
|
10804
|
+
serverUnavailable: "\u30B5\u30FC\u30D0\u30FC\u304C\u5229\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u3057\u3070\u3089\u304F\u3057\u3066\u304B\u3089\u304A\u8A66\u3057\u304F\u3060\u3055\u3044",
|
|
10805
|
+
createOrder: "\u6C7A\u6E08\u6CE8\u6587\u306E\u4F5C\u6210\u306B\u5931\u6557\u3057\u307E\u3057\u305F",
|
|
10806
|
+
createAddress: "{{token}} \u30A2\u30C9\u30EC\u30B9\u306E\u53D6\u5F97\u306B\u5931\u6557\u3057\u307E\u3057\u305F"
|
|
10807
|
+
},
|
|
10808
|
+
notesTitle: "\u3054\u6848\u5185",
|
|
10809
|
+
notes: [
|
|
10810
|
+
`\u30DD\u30A4\u30F3\u30C8\u306F\u5B9F\u969B\u306B\u6D88\u8CBB\u3057\u305F\u30C8\u30FC\u30AF\u30F3\u306B\u5FDC\u3058\u3066\u8AB2\u91D1\u3055\u308C\u3001\u6709\u52B9\u671F\u9650\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u6B8B\u9AD8\u304C ${ADVANCED_FEATURE_MIN_BALANCE} \u30DD\u30A4\u30F3\u30C8\u306B\u9054\u3059\u308B\u3068\u30D7\u30ED\u7248\uFF08\u30EA\u30A2\u30EB\u30BF\u30A4\u30E0\u691C\u7D22\u3001\u4E00\u62EC\u30D5\u30A1\u30A4\u30EB\u5206\u6790\u306A\u3069\uFF09\u304C\u89E3\u653E\u3055\u308C\u307E\u3059\u3002`,
|
|
10811
|
+
`1\u56DE\u306E\u30C1\u30E3\u30FC\u30B8\u304C ${GPT_PRO_REQUIRED_RECHARGE_AMOUNT} \u30DD\u30A4\u30F3\u30C8\u4EE5\u4E0A\u3067\u4E0A\u7D1A\u7248\uFF08GPT Pro\u3001Claude Opus \u306A\u3069\uFF09\u304C\u89E3\u653E\u3055\u308C\u307E\u3059\u3002\u3059\u3079\u3066\u306E\u6C7A\u6E08\u65B9\u6CD5\u304C\u5BFE\u8C61\u3067\u3059\u3002`,
|
|
10812
|
+
"\u30AA\u30F3\u30E9\u30A4\u30F3\u6C7A\u6E08\u306F\u6C7A\u6E08\u4E8B\u696D\u8005\u306E\u78BA\u8A8D\u5F8C\u306B\u81EA\u52D5\u53CD\u6620\u3055\u308C\u307E\u3059\u3002WeChat / Alipay \u306F\u624B\u52D5\u5BFE\u5FDC\u3067\u3001\u901A\u5E38 1\u301C30 \u5206\u3001\u4F11\u65E5\u306F\u9045\u308C\u308B\u5834\u5408\u304C\u3042\u308A\u307E\u3059\u3002",
|
|
10813
|
+
"\u81EA\u8CBB\u3067\u8CFC\u5165\u3057\u305F\u30DD\u30A4\u30F3\u30C8\u306F\u30017\u65E5\u4EE5\u5185\u304B\u3064\u672A\u4F7F\u7528\u3067\u3042\u308C\u3070\u5168\u984D\u8FD4\u91D1\u3092\u7533\u8ACB\u3067\u304D\u307E\u3059\u3002\u8FD4\u91D1\u3084\u305D\u306E\u4ED6\u306E\u304A\u554F\u3044\u5408\u308F\u305B\u306F {{email}} \u307E\u3067\u3002"
|
|
10814
|
+
]
|
|
10815
|
+
}
|
|
10816
|
+
}
|
|
10817
|
+
}
|
|
10818
|
+
};
|
|
10819
|
+
|
|
10820
|
+
// packages/app/i18n/translations/privacy.locale.ts
|
|
10821
|
+
var privacy_locale_default = {
|
|
10822
|
+
["en" /* EN */]: {
|
|
10823
|
+
translation: {
|
|
10824
|
+
privacy: {
|
|
10825
|
+
title: "Privacy Policy",
|
|
10826
|
+
lastUpdated: "Last updated: August 24, 2026",
|
|
10827
|
+
intro: 'Welcome to Nolo (hereinafter referred to as "we" or "our"). We take your privacy and data security very seriously. This Privacy Policy outlines how we handle and protect your personal information.',
|
|
10828
|
+
section1: {
|
|
10829
|
+
title: "1. Information We Collect",
|
|
10830
|
+
desc: "We collect minimal information necessary to deliver our services, including:",
|
|
10831
|
+
device: "Account & Profile: Email address, username, and authentication identifiers.",
|
|
10832
|
+
location: "Transaction Records: Point purchase amounts, order IDs, and payment status (we never collect or store sensitive payment details such as card numbers or CVV).",
|
|
10833
|
+
network: "Technical & Log Data: IP address, browser type, and system logs necessary for security and abuse prevention."
|
|
10834
|
+
},
|
|
10835
|
+
section2: {
|
|
10836
|
+
title: "2. Use of Information",
|
|
10837
|
+
desc: "We process your information for the following legitimate purposes:",
|
|
10838
|
+
core: "Providing and maintaining our digital AI computing and multi-agent workspace services.",
|
|
10839
|
+
map: "Processing points recharge orders and fulfilling accounting obligations.",
|
|
10840
|
+
analysis: "Ensuring platform stability, security, and preventing malicious activity."
|
|
10841
|
+
},
|
|
10842
|
+
section3: {
|
|
10843
|
+
title: "3. Information Sharing & Third Parties",
|
|
10844
|
+
desc: "We strictly do not sell, rent, or trade your personal information. Data is only shared in the following required contexts:",
|
|
10845
|
+
thirdParty: "Payment Processing: Payments are securely handled by Waffo Pancake in full compliance with PCI-DSS standards.",
|
|
10846
|
+
legal: "Legal Compliance: Disclosure required by law, regulation, or mandatory legal process."
|
|
10847
|
+
},
|
|
10848
|
+
section4: {
|
|
10849
|
+
title: "4. Data Security",
|
|
10850
|
+
desc: "All network traffic is encrypted via HTTPS/TLS. We implement industry-standard organizational and technical safeguards to protect your personal data."
|
|
10851
|
+
},
|
|
10852
|
+
section5: {
|
|
10853
|
+
title: "5. User Rights",
|
|
10854
|
+
desc: "You retain full rights to access, export, rectify, or request the deletion of your account and personal data at any time by contacting us."
|
|
10855
|
+
},
|
|
10856
|
+
section6: {
|
|
10857
|
+
title: "6. Contact Us",
|
|
10858
|
+
desc: "For any questions or privacy inquiries, please contact us at s@nolotus.com (Brand: Nolo)."
|
|
10859
|
+
}
|
|
10860
|
+
}
|
|
10861
|
+
}
|
|
10862
|
+
},
|
|
10863
|
+
["zh-CN" /* ZH_CN */]: {
|
|
10864
|
+
translation: {
|
|
10865
|
+
privacy: {
|
|
10866
|
+
title: "\u9690\u79C1\u653F\u7B56 (Privacy Policy)",
|
|
10867
|
+
lastUpdated: "\u6700\u540E\u66F4\u65B0\u65E5\u671F\uFF1A2026\u5E748\u670824\u65E5",
|
|
10868
|
+
intro: "\u6B22\u8FCE\u4F7F\u7528 Nolo\uFF08\u4EE5\u4E0B\u7B80\u79F0\u201C\u6211\u4EEC\u201D\uFF09\u3002\u6211\u4EEC\u9AD8\u5EA6\u91CD\u89C6\u60A8\u7684\u9690\u79C1\u4E0E\u4E2A\u4EBA\u4FE1\u606F\u5B89\u5168\u3002\u672C\u9690\u79C1\u653F\u7B56\u8BF4\u660E\u6211\u4EEC\u5728\u60A8\u4F7F\u7528\u672C\u670D\u52A1\u65F6\u5982\u4F55\u5904\u7406\u4E0E\u4FDD\u62A4\u60A8\u7684\u4FE1\u606F\u3002",
|
|
10869
|
+
section1: {
|
|
10870
|
+
title: "1. \u6211\u4EEC\u6536\u96C6\u7684\u4FE1\u606F",
|
|
10871
|
+
desc: "\u4E3A\u4FDD\u969C\u6838\u5FC3\u529F\u80FD\u4E0E\u4EA4\u6613\u5B89\u5168\uFF0C\u6211\u4EEC\u4EC5\u6536\u96C6\u5FC5\u8981\u7684\u4FE1\u606F\uFF1A",
|
|
10872
|
+
device: "\u8D26\u53F7\u4FE1\u606F\uFF1A\u6CE8\u518C\u90AE\u7BB1\u3001\u7528\u6237\u540D\u53CA\u5B89\u5168\u8BA4\u8BC1\u6807\u8BC6\u3002",
|
|
10873
|
+
location: "\u4EA4\u6613\u4E0E\u8D26\u5355\uFF1A\u5145\u503C\u79EF\u5206\u989D\u5EA6\u3001\u8BA2\u5355\u7F16\u53F7\u53CA\u652F\u4ED8\u72B6\u6001\uFF08\u6211\u4EEC\u7EDD\u4E0D\u6536\u96C6\u6216\u5B58\u50A8\u60A8\u7684\u94F6\u884C\u5361\u5B8C\u6574\u5361\u53F7\u3001CVV \u7B49\u654F\u611F\u4FE1\u606F\uFF09\u3002",
|
|
10874
|
+
network: "\u7CFB\u7EDF\u65E5\u5FD7\uFF1A\u7528\u4E8E\u9632\u62A4\u7F51\u7EDC\u653B\u51FB\u4E0E\u5F02\u5E38\u98CE\u63A7\u7684\u57FA\u7840 IP \u4E0E\u8BBF\u95EE\u65E5\u5FD7\u3002"
|
|
10875
|
+
},
|
|
10876
|
+
section2: {
|
|
10877
|
+
title: "2. \u4FE1\u606F\u7684\u4F7F\u7528\u76EE\u7684",
|
|
10878
|
+
desc: "\u6211\u4EEC\u4EC5\u51FA\u4E8E\u4EE5\u4E0B\u5408\u6CD5\u5408\u89C4\u76EE\u7684\u4F7F\u7528\u4FE1\u606F\uFF1A",
|
|
10879
|
+
core: "\u63D0\u4F9B\u3001\u7EF4\u62A4\u5E76\u7ED3\u7B97\u57FA\u4E8E\u79EF\u5206\u7684\u6570\u5B57 AI \u8BA1\u7B97\u4E0E\u667A\u80FD\u4F53\u534F\u4F5C\u670D\u52A1\u3002",
|
|
10880
|
+
map: "\u5904\u7406\u79EF\u5206\u5145\u503C\u8BA2\u5355\u5E76\u5C65\u884C\u5FC5\u8981\u7684\u8D26\u5355\u5BA1\u8BA1\u4E49\u52A1\u3002",
|
|
10881
|
+
analysis: "\u4FDD\u969C\u670D\u52A1\u7A33\u5B9A\u4E0E\u5B89\u5168\u98CE\u63A7\uFF0C\u9632\u5FA1\u6076\u610F\u6EE5\u7528\u3002"
|
|
10882
|
+
},
|
|
10883
|
+
section3: {
|
|
10884
|
+
title: "3. \u4FE1\u606F\u5171\u4EAB\u4E0E\u7B2C\u4E09\u65B9\u5904\u7406\u65B9",
|
|
10885
|
+
desc: "\u6211\u4EEC\u575A\u51B3\u4E0D\u51FA\u552E\u3001\u51FA\u79DF\u6216\u6CC4\u9732\u60A8\u7684\u4E2A\u4EBA\u4FE1\u606F\u3002\u4EC5\u5728\u4EE5\u4E0B\u5FC5\u8981\u573A\u666F\u4E0B\u4E0E\u53D7\u4FE1\u4EFB\u5408\u4F5C\u65B9\u5171\u4EAB\uFF1A",
|
|
10886
|
+
thirdParty: "\u652F\u4ED8\u5904\u7406\u65B9\uFF1A\u6240\u6709\u652F\u4ED8\u5747\u7531 Waffo Pancake \u5B89\u5168\u5904\u7406\uFF0C\u4E25\u683C\u7B26\u5408 PCI-DSS \u56FD\u9645\u5B89\u5168\u89C4\u8303\u3002",
|
|
10887
|
+
legal: "\u6CD5\u5F8B\u5408\u89C4\uFF1A\u4F9D\u6CD5\u4F9D\u89C4\u54CD\u5E94\u53F8\u6CD5\u6216\u76D1\u7BA1\u673A\u6784\u7684\u6CD5\u5B9A\u8981\u6C42\u3002"
|
|
10888
|
+
},
|
|
10889
|
+
section4: {
|
|
10890
|
+
title: "4. \u6570\u636E\u5B89\u5168\u4FDD\u969C",
|
|
10891
|
+
desc: "\u5168\u7AD9\u901A\u4FE1\u4E0E\u6570\u636E\u4F20\u8F93\u5747\u901A\u8FC7 HTTPS/TLS \u9AD8\u5F3A\u5EA6\u52A0\u5BC6\u4FDD\u62A4\uFF0C\u91C7\u53D6\u4E25\u683C\u7684\u6743\u9650\u9694\u79BB\u4E0E\u6280\u672F\u5B89\u5168\u63AA\u65BD\u9632\u6B62\u6570\u636E\u6CC4\u9732\u3002"
|
|
10892
|
+
},
|
|
10893
|
+
section5: {
|
|
10894
|
+
title: "5. \u60A8\u7684\u6570\u636E\u6743\u5229",
|
|
10895
|
+
desc: "\u60A8\u6709\u6743\u968F\u65F6\u8054\u7CFB\u6211\u4EEC\u67E5\u8BE2\u3001\u66F4\u6B63\u3001\u5BFC\u51FA\u6216\u7533\u8BF7\u5220\u9664\u60A8\u7684\u4E2A\u4EBA\u6570\u636E\u53CA\u6CE8\u9500\u8D26\u6237\u3002"
|
|
10896
|
+
},
|
|
10897
|
+
section6: {
|
|
10898
|
+
title: "6. \u8054\u7CFB\u6211\u4EEC",
|
|
10899
|
+
desc: "\u5982\u6709\u4EFB\u4F55\u7591\u95EE\u6216\u9690\u79C1\u8BC9\u6C42\uFF0C\u8BF7\u8054\u7CFB\u6211\u4EEC\uFF08\u90AE\u7BB1\uFF1As@nolotus.com\uFF0C\u54C1\u724C\uFF1ANolo\uFF09\u3002"
|
|
10900
|
+
}
|
|
10901
|
+
}
|
|
10902
|
+
}
|
|
10903
|
+
},
|
|
10904
|
+
["zh-Hant" /* ZH_HANT */]: {
|
|
10905
|
+
translation: {
|
|
10906
|
+
privacy: {
|
|
10907
|
+
title: "\u96B1\u79C1\u6B0A\u653F\u7B56 (Privacy Policy)",
|
|
10908
|
+
lastUpdated: "\u6700\u5F8C\u66F4\u65B0\u65E5\u671F\uFF1A2026\u5E748\u670824\u65E5",
|
|
10909
|
+
intro: "\u6B61\u8FCE\u4F7F\u7528 Nolo\uFF08\u4EE5\u4E0B\u7C21\u7A31\u201C\u6211\u5011\u201D\uFF09\u3002\u6211\u5011\u9AD8\u5EA6\u91CD\u8996\u60A8\u7684\u96B1\u79C1\u8207\u500B\u4EBA\u8CC7\u8A0A\u5B89\u5168\u3002\u672C\u96B1\u79C1\u6B0A\u653F\u7B56\u8AAA\u660E\u6211\u5011\u5728\u60A8\u4F7F\u7528\u672C\u670D\u52D9\u6642\u5982\u4F55\u8655\u7406\u8207\u4FDD\u8B77\u60A8\u7684\u8CC7\u8A0A\u3002",
|
|
10910
|
+
section1: {
|
|
10911
|
+
title: "1. \u6211\u5011\u6536\u96C6\u7684\u8CC7\u8A0A",
|
|
10912
|
+
desc: "\u70BA\u4FDD\u969C\u6838\u5FC3\u529F\u80FD\u8207\u4EA4\u6613\u5B89\u5168\uFF0C\u6211\u5011\u50C5\u6536\u96C6\u5FC5\u8981\u7684\u8CC7\u8A0A\uFF1A",
|
|
10913
|
+
device: "\u5E33\u865F\u8CC7\u8A0A\uFF1A\u8A3B\u518A\u4FE1\u7BB1\u3001\u4F7F\u7528\u8005\u540D\u7A31\u53CA\u5B89\u5168\u8A8D\u8B49\u6A19\u8B58\u3002",
|
|
10914
|
+
location: "\u4EA4\u6613\u8207\u5E33\u55AE\uFF1A\u5145\u503C\u7A4D\u5206\u984D\u5EA6\u3001\u8A02\u55AE\u7DE8\u865F\u53CA\u652F\u4ED8\u72C0\u614B\uFF08\u6211\u5011\u7D55\u4E0D\u6536\u96C6\u6216\u5132\u5B58\u60A8\u7684\u4FE1\u7528\u5361\u5B8C\u6574\u5361\u865F\u3001CVV \u7B49\u654F\u611F\u8CC7\u8A0A\uFF09\u3002",
|
|
10915
|
+
network: "\u7CFB\u7D71\u65E5\u8A8C\uFF1A\u7528\u65BC\u9632\u8B77\u7DB2\u8DEF\u653B\u64CA\u8207\u7570\u5E38\u98A8\u63A7\u7684\u57FA\u790E IP \u8207\u5B58\u53D6\u65E5\u8A8C\u3002"
|
|
10916
|
+
},
|
|
10917
|
+
section2: {
|
|
10918
|
+
title: "2. \u8CC7\u8A0A\u7684\u4F7F\u7528\u76EE\u7684",
|
|
10919
|
+
desc: "\u6211\u5011\u50C5\u51FA\u65BC\u4EE5\u4E0B\u5408\u6CD5\u5408\u898F\u76EE\u7684\u4F7F\u7528\u8CC7\u8A0A\uFF1A",
|
|
10920
|
+
core: "\u63D0\u4F9B\u3001\u7DAD\u8B77\u4E26\u7D50\u7B97\u57FA\u65BC\u7A4D\u5206\u7684\u6578\u4F4D AI \u8A08\u7B97\u8207\u667A\u80FD\u9AD4\u5354\u4F5C\u670D\u52D9\u3002",
|
|
10921
|
+
map: "\u8655\u7406\u7A4D\u5206\u5145\u503C\u8A02\u55AE\u4E26\u5C65\u884C\u5FC5\u8981\u7684\u5E33\u55AE\u5BE9\u8A08\u7FA9\u52D9\u3002",
|
|
10922
|
+
analysis: "\u4FDD\u969C\u670D\u52D9\u7A69\u5B9A\u8207\u5B89\u5168\u98A8\u63A7\uFF0C\u9632\u79A6\u60E1\u610F\u6FEB\u7528\u3002"
|
|
10923
|
+
},
|
|
10924
|
+
section3: {
|
|
10925
|
+
title: "3. \u8CC7\u8A0A\u5171\u4EAB\u8207\u7B2C\u4E09\u65B9\u8655\u7406\u65B9",
|
|
10926
|
+
desc: "\u6211\u5011\u5805\u6C7A\u4E0D\u51FA\u552E\u3001\u51FA\u79DF\u6216\u6D29\u6F0F\u60A8\u7684\u500B\u4EBA\u8CC7\u8A0A\u3002\u50C5\u5728\u4EE5\u4E0B\u5FC5\u8981\u5834\u666F\u4E0B\u8207\u53D7\u4FE1\u4EFB\u5408\u4F5C\u65B9\u5171\u4EAB\uFF1A",
|
|
10927
|
+
thirdParty: "\u652F\u4ED8\u8655\u7406\u65B9\uFF1A\u6240\u6709\u652F\u4ED8\u5747\u7531 Waffo Pancake \u5B89\u5168\u8655\u7406\uFF0C\u56B4\u683C\u7B26\u5408 PCI-DSS \u570B\u969B\u5B89\u5168\u898F\u7BC4\u3002",
|
|
10928
|
+
legal: "\u6CD5\u5F8B\u5408\u898F\uFF1A\u4F9D\u6CD5\u4F9D\u898F\u56DE\u61C9\u53F8\u6CD5\u6216\u76E3\u7BA1\u6A5F\u69CB\u7684\u6CD5\u5B9A\u8981\u6C42\u3002"
|
|
10929
|
+
},
|
|
10930
|
+
section4: {
|
|
10931
|
+
title: "4. \u8CC7\u6599\u5B89\u5168\u4FDD\u969C",
|
|
10932
|
+
desc: "\u5168\u7AD9\u901A\u8A0A\u8207\u8CC7\u6599\u50B3\u8F38\u5747\u900F\u904E HTTPS/TLS \u9AD8\u5F37\u5EA6\u52A0\u5BC6\u4FDD\u8B77\uFF0C\u63A1\u53D6\u56B4\u683C\u7684\u6B0A\u9650\u9694\u96E2\u8207\u6280\u8853\u5B89\u5168\u63AA\u65BD\u9632\u6B62\u8CC7\u6599\u5916\u6D29\u3002"
|
|
10933
|
+
},
|
|
10934
|
+
section5: {
|
|
10935
|
+
title: "5. \u60A8\u7684\u8CC7\u6599\u6B0A\u5229",
|
|
10936
|
+
desc: "\u60A8\u6709\u6B0A\u96A8\u6642\u806F\u7D61\u6211\u5011\u67E5\u8A62\u3001\u66F4\u6B63\u3001\u532F\u51FA\u6216\u7533\u8ACB\u522A\u9664\u60A8\u7684\u500B\u4EBA\u8CC7\u6599\u53CA\u8A3B\u92B7\u5E33\u865F\u3002"
|
|
10937
|
+
},
|
|
10938
|
+
section6: {
|
|
10939
|
+
title: "6. \u806F\u7D61\u6211\u5011",
|
|
10940
|
+
desc: "\u5982\u6709\u4EFB\u4F55\u7591\u554F\u6216\u96B1\u79C1\u8A34\u6C42\uFF0C\u8ACB\u806F\u7D61\u6211\u5011\uFF08\u4FE1\u7BB1\uFF1As@nolotus.com\uFF0C\u54C1\u724C\uFF1ANolo\uFF09\u3002"
|
|
10941
|
+
}
|
|
10942
|
+
}
|
|
10943
|
+
}
|
|
10944
|
+
},
|
|
10945
|
+
["ja" /* JA */]: {
|
|
10946
|
+
translation: {
|
|
10947
|
+
privacy: {
|
|
10948
|
+
title: "\u30D7\u30E9\u30A4\u30D0\u30B7\u30FC\u30DD\u30EA\u30B7\u30FC",
|
|
10949
|
+
lastUpdated: "\u6700\u7D42\u66F4\u65B0\u65E5\uFF1A2026\u5E748\u670824\u65E5",
|
|
10950
|
+
intro: "Nolo\uFF08\u4EE5\u4E0B\u300C\u5F53\u793E\u300D\uFF09\u306F\u304A\u5BA2\u69D8\u306E\u30D7\u30E9\u30A4\u30D0\u30B7\u30FC\u3092\u5C0A\u91CD\u3057\u3001\u500B\u4EBA\u60C5\u5831\u306E\u4FDD\u8B77\u306B\u52AA\u3081\u307E\u3059\u3002",
|
|
10951
|
+
section1: {
|
|
10952
|
+
title: "1. \u53CE\u96C6\u3059\u308B\u60C5\u5831",
|
|
10953
|
+
desc: "\u30B5\u30FC\u30D3\u30B9\u63D0\u4F9B\u306B\u5FC5\u8981\u306A\u6700\u5C0F\u9650\u306E\u60C5\u5831\u3092\u53CE\u96C6\u3057\u307E\u3059\uFF1A",
|
|
10954
|
+
device: "\u30A2\u30AB\u30A6\u30F3\u30C8\u60C5\u5831\uFF1A\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3001\u30E6\u30FC\u30B6\u30FC\u540D",
|
|
10955
|
+
location: "\u53D6\u5F15\u8A18\u9332\uFF1A\u30DD\u30A4\u30F3\u30C8\u8CFC\u5165\u5C65\u6B74\u3001\u6CE8\u6587\u756A\u53F7\uFF08\u30AB\u30FC\u30C9\u756A\u53F7\u3084\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30B3\u30FC\u30C9\u306F\u4FDD\u6301\u3057\u307E\u305B\u3093\uFF09",
|
|
10956
|
+
network: "\u30A2\u30AF\u30BB\u30B9\u30ED\u30B0\uFF1AIP\u30A2\u30C9\u30EC\u30B9\u304A\u3088\u3073\u30B7\u30B9\u30C6\u30E0\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30ED\u30B0"
|
|
10957
|
+
},
|
|
10958
|
+
section2: {
|
|
10959
|
+
title: "2. \u60C5\u5831\u306E\u5229\u7528\u76EE\u7684",
|
|
10960
|
+
desc: "AI\u8A08\u7B97\u30B5\u30FC\u30D3\u30B9\u306E\u63D0\u4F9B\u3001\u30DD\u30A4\u30F3\u30C8\u6C7A\u6E08\u3001\u304A\u3088\u3073\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u7BA1\u7406\u306E\u305F\u3081\u306B\u5229\u7528\u3057\u307E\u3059\u3002",
|
|
10961
|
+
core: "\u30B3\u30A2\u30B5\u30FC\u30D3\u30B9\u306E\u63D0\u4F9B",
|
|
10962
|
+
map: "\u53D6\u5F15\u51E6\u7406\u304A\u3088\u3073\u8ACB\u6C42",
|
|
10963
|
+
analysis: "\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u304A\u3088\u3073\u4E0D\u6B63\u9632\u6B62"
|
|
10964
|
+
},
|
|
10965
|
+
section3: {
|
|
10966
|
+
title: "3. \u7B2C\u4E09\u8005\u3078\u306E\u958B\u793A\u3068\u63D0\u4F9B",
|
|
10967
|
+
desc: "\u500B\u4EBA\u60C5\u5831\u3092\u8CA9\u58F2\u3059\u308B\u3053\u3068\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u6C7A\u6E08\u306F PCI-DSS \u306B\u6E96\u62E0\u3057\u305F Waffo Pancake \u306B\u3088\u308A\u5B89\u5168\u306B\u51E6\u7406\u3055\u308C\u307E\u3059\u3002",
|
|
10968
|
+
thirdParty: "\u6C7A\u6E08\u51E6\u7406\uFF1AWaffo Pancake",
|
|
10969
|
+
legal: "\u6CD5\u4EE4\u306B\u57FA\u3065\u304F\u958B\u793A"
|
|
10970
|
+
},
|
|
10971
|
+
section4: {
|
|
10972
|
+
title: "4. \u30C7\u30FC\u30BF\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3",
|
|
10973
|
+
desc: "\u3059\u3079\u3066\u306E\u901A\u4FE1\u306F HTTPS/TLS \u306B\u3088\u308A\u6697\u53F7\u5316\u3055\u308C\u3066\u3044\u307E\u3059\u3002"
|
|
10974
|
+
},
|
|
10975
|
+
section5: {
|
|
10976
|
+
title: "5. \u304A\u5BA2\u69D8\u306E\u6A29\u5229",
|
|
10977
|
+
desc: "\u30C7\u30FC\u30BF\u306E\u958B\u793A\u3001\u8A02\u6B63\u3001\u524A\u9664\u3092\u3044\u3064\u3067\u3082\u8ACB\u6C42\u3067\u304D\u307E\u3059\u3002"
|
|
10978
|
+
},
|
|
10979
|
+
section6: {
|
|
10980
|
+
title: "6. \u304A\u554F\u3044\u5408\u308F\u305B",
|
|
10981
|
+
desc: "\u30D6\u30E9\u30F3\u30C9\uFF1ANolo / \u30E1\u30FC\u30EB\uFF1As@nolotus.com"
|
|
10982
|
+
}
|
|
10983
|
+
}
|
|
10984
|
+
}
|
|
10985
|
+
}
|
|
10986
|
+
};
|
|
10987
|
+
|
|
10988
|
+
// packages/app/i18n/translations/terms.locale.ts
|
|
10989
|
+
var terms_locale_default = {
|
|
10725
10990
|
["en" /* EN */]: {
|
|
10726
10991
|
translation: {
|
|
10727
|
-
|
|
10728
|
-
title: "
|
|
10729
|
-
lastUpdated: "Last updated:
|
|
10730
|
-
intro: 'Welcome to Nolo (hereinafter referred to as "
|
|
10992
|
+
terms: {
|
|
10993
|
+
title: "Terms of Service",
|
|
10994
|
+
lastUpdated: "Last updated: August 27, 2026",
|
|
10995
|
+
intro: 'Welcome to Nolo (hereinafter referred to as "we" or "our"). By accessing, registering, or purchasing points/credits on our platform, you agree to be bound by these Terms of Service.',
|
|
10731
10996
|
section1: {
|
|
10732
|
-
title: "1.
|
|
10733
|
-
desc: "
|
|
10734
|
-
device: "Device Information: Such as device model, OS version, and unique identifiers to optimize performance and resolve crashes.",
|
|
10735
|
-
location: "Location Information: Since the App integrates map services, we may collect your geographic location with your consent when using related features.",
|
|
10736
|
-
network: "Network Information: The App requires internet access to provide online features, generating standard network log data."
|
|
10997
|
+
title: "1. Service & Billing (Pay-As-You-Go Points Model)",
|
|
10998
|
+
desc: "Nolo provides digital AI computing and multi-agent collaboration workspace services based on a Points/Credits system. Points are deducted instantly based on actual Token consumption when computing tasks are performed. Each recharge is a one-time purchase with no recurring or automatic subscription charges. Recharged points never expire."
|
|
10737
10999
|
},
|
|
10738
11000
|
section2: {
|
|
10739
|
-
title: "2.
|
|
10740
|
-
desc: "
|
|
10741
|
-
core: "To provide, maintain, and improve the core features of the App.",
|
|
10742
|
-
map: "To provide map display and location services triggered by you.",
|
|
10743
|
-
analysis: "To analyze app usage and improve user experience."
|
|
11001
|
+
title: "2. Payment Processing (Waffo Pancake)",
|
|
11002
|
+
desc: "Payments for our services are processed securely by Waffo Pancake. All transactions comply with PCI-DSS standards. We do not collect, process, or store your sensitive payment information such as full credit card numbers or CVV codes."
|
|
10744
11003
|
},
|
|
10745
11004
|
section3: {
|
|
10746
|
-
title: "3.
|
|
10747
|
-
desc: "
|
|
10748
|
-
thirdParty: "Third-party Service Providers: The App uses third-party map SDKs, which may collect and process relevant data according to their own privacy policies.",
|
|
10749
|
-
legal: "Legal Requirements: We may disclose your information when required by law or to comply with mandatory requests from authorities."
|
|
11005
|
+
title: "3. Refund and Points Policy",
|
|
11006
|
+
desc: "Due to the instant delivery nature of digital computing resources, points that have already been consumed for computations are non-refundable. For paid recharge packages, a full refund can be requested within 7 days of purchase provided that 100% of the points remain unused. Promotional, trial, activity-granted, or invite-reward points are strictly non-refundable and cannot be converted to cash. In cases of system errors or duplicate billing, full refunds will be issued. Please submit refund requests to s@nolotus.com."
|
|
10750
11007
|
},
|
|
10751
11008
|
section4: {
|
|
10752
|
-
title: "4.
|
|
10753
|
-
desc: "
|
|
11009
|
+
title: "4. Acceptable Use & Intellectual Property",
|
|
11010
|
+
desc: "You agree not to use the service for any unlawful activities, infringement of intellectual property, or abusive behavior. In addition, you retain ownership of your generated content to the fullest extent permitted by applicable law."
|
|
10754
11011
|
},
|
|
10755
11012
|
section5: {
|
|
10756
|
-
title: "5.
|
|
10757
|
-
desc: "
|
|
11013
|
+
title: "5. Content Safety & Prohibited Content",
|
|
11014
|
+
desc: "We are committed to providing a safe and lawful service. The following categories of content may not be generated or distributed through the service: (1) pornographic or NSFW content; (2) violent or gory content; (3) hate speech; (4) child sexual abuse material (CSAM) or any content unsafe for children; (5) deepfakes or content that impersonates others; and (6) content that infringes copyright or trademarks. User input prompts are screened by our content-safety review (automated filtering and/or manual review) before generation, and prohibited content will be removed. Violations may result in a warning, restriction of features, or termination of service, and points used for prohibited content will not be refunded. To report prohibited content, please contact s@nolotus.com."
|
|
10758
11015
|
},
|
|
10759
11016
|
section6: {
|
|
10760
|
-
title: "6.
|
|
10761
|
-
desc: "
|
|
11017
|
+
title: "6. Disclaimer & Limitation of Liability",
|
|
11018
|
+
desc: 'The service is provided on an "as is" and "as available" basis, without warranties of any kind, whether express or implied, including but not limited to implied warranties of merchantability, fitness for a particular purpose, and uninterrupted or error-free service. To the fullest extent permitted by law, we shall not be liable for any indirect, incidental, special, or consequential damages, including loss of profits or data. Our total liability arising out of or related to these Terms shall not exceed the amounts you have actually paid for the service in the 12 months preceding the claim.'
|
|
11019
|
+
},
|
|
11020
|
+
section7: {
|
|
11021
|
+
title: "7. User Breach & Account Disposal",
|
|
11022
|
+
desc: "If you breach these Terms, misuse the service, or engage in unlawful activities, we may take enforcement actions against your account. Such actions are applied in a graduated manner: a warning, restriction of features, and suspension or termination of your account. Upon termination, your access to the account will end, any unused points will be handled in accordance with the refund policy in Section 3, and content obtained through the breach will be removed. You may appeal any enforcement action by contacting s@nolotus.com."
|
|
11023
|
+
},
|
|
11024
|
+
section8: {
|
|
11025
|
+
title: "8. Contact & Operator",
|
|
11026
|
+
desc: "If you have any questions or feedback regarding these Terms, please contact us at s@nolotus.com (Brand: Nolo)."
|
|
10762
11027
|
}
|
|
10763
11028
|
}
|
|
10764
11029
|
}
|
|
10765
11030
|
},
|
|
10766
11031
|
["zh-CN" /* ZH_CN */]: {
|
|
10767
11032
|
translation: {
|
|
10768
|
-
|
|
10769
|
-
title: "\
|
|
10770
|
-
lastUpdated: "\u6700\u540E\u66F4\u65B0\u65E5\u671F\uFF1A2026\
|
|
10771
|
-
intro: "\u6B22\u8FCE\
|
|
11033
|
+
terms: {
|
|
11034
|
+
title: "\u670D\u52A1\u6761\u6B3E",
|
|
11035
|
+
lastUpdated: "\u6700\u540E\u66F4\u65B0\u65E5\u671F\uFF1A2026\u5E748\u670827\u65E5",
|
|
11036
|
+
intro: "\u6B22\u8FCE\u4F7F\u7528 Nolo \u63D0\u4F9B\u7684\u670D\u52A1\uFF08\u4EE5\u4E0B\u7B80\u79F0\u201C\u672C\u670D\u52A1\u201D\uFF09\u3002\u8BBF\u95EE\u3001\u6CE8\u518C\u6216\u8D2D\u4E70\u672C\u670D\u52A1\u79EF\u5206\uFF0C\u5373\u8868\u793A\u60A8\u540C\u610F\u53D7\u672C\u670D\u52A1\u6761\u6B3E\u7684\u7EA6\u675F\u3002",
|
|
10772
11037
|
section1: {
|
|
10773
|
-
title: "1. \
|
|
10774
|
-
desc: "\
|
|
10775
|
-
device: "\u8BBE\u5907\u4FE1\u606F\uFF1A\u5982\u8BBE\u5907\u578B\u53F7\u3001\u64CD\u4F5C\u7CFB\u7EDF\u7248\u672C\u3001\u552F\u4E00\u8BBE\u5907\u6807\u8BC6\u7B26\u7B49\uFF0C\u7528\u4E8E\u4F18\u5316\u5E94\u7528\u6027\u80FD\u548C\u89E3\u51B3\u5D29\u6E83\u95EE\u9898\u3002",
|
|
10776
|
-
location: "\u4F4D\u7F6E\u4FE1\u606F\uFF1A\u7531\u4E8E\u672C\u5E94\u7528\u96C6\u6210\u4E86\u5730\u56FE\u670D\u52A1\uFF0C\u5728\u60A8\u4F7F\u7528\u76F8\u5173\u529F\u80FD\u65F6\uFF0C\u6211\u4EEC\u5728\u5F81\u5F97\u60A8\u540C\u610F\u7684\u524D\u63D0\u4E0B\u53EF\u80FD\u4F1A\u6536\u96C6\u60A8\u7684\u5730\u7406\u4F4D\u7F6E\u4FE1\u606F\u3002",
|
|
10777
|
-
network: "\u7F51\u7EDC\u4FE1\u606F\uFF1A\u672C\u5E94\u7528\u9700\u8981\u8BBF\u95EE\u4E92\u8054\u7F51\u4EE5\u63D0\u4F9B\u5728\u7EBF\u529F\u80FD\uFF0C\u5728\u6B64\u8FC7\u7A0B\u4E2D\u4F1A\u4EA7\u751F\u6807\u51C6\u7684\u7F51\u7EDC\u65E5\u5FD7\u6570\u636E\u3002"
|
|
11038
|
+
title: "1. \u670D\u52A1\u4E0E\u8BA1\u8D39\u65B9\u5F0F\uFF08\u6309\u9700\u79EF\u5206\u5373\u65F6\u7ED3\u7B97\uFF09",
|
|
11039
|
+
desc: "\u672C\u670D\u52A1\u4E3A\u6570\u5B57\u65E0\u5F62\u8BA1\u7B97\u670D\u52A1\uFF0C\u91C7\u7528\u79EF\u5206\uFF08Credits/Points\uFF09\u5145\u503C\u4E0E\u5373\u65F6\u6263\u8D39\u6A21\u5F0F\u3002\u5F53\u60A8\u4F7F\u7528\u76F8\u5173 AI \u6216\u8BA1\u7B97\u529F\u80FD\u65F6\uFF0C\u7CFB\u7EDF\u5C06\u6839\u636E\u5B9E\u9645 Token \u7528\u91CF\u5373\u65F6\u6263\u9664\u5BF9\u5E94\u79EF\u5206\u3002\u6BCF\u6B21\u79EF\u5206\u5145\u503C\u5747\u4E3A\u4E00\u6B21\u6027\u8D2D\u4E70\uFF0C\u4E0D\u542B\u4EFB\u4F55\u81EA\u52A8\u7EED\u8D39\u6216\u5468\u671F\u6027\u5FAA\u73AF\u6263\u6B3E\uFF0C\u5145\u503C\u79EF\u5206\u6C38\u4E45\u6709\u6548\u3002"
|
|
10778
11040
|
},
|
|
10779
11041
|
section2: {
|
|
10780
|
-
title: "2. \
|
|
10781
|
-
desc: "\u6211\u4EEC\u6536\u96C6\u7684\
|
|
10782
|
-
core: "\u5411\u60A8\u63D0\u4F9B\u3001\u7EF4\u62A4\u548C\u6539\u8FDB\u672C\u5E94\u7528\u7684\u6838\u5FC3\u529F\u80FD\u3002",
|
|
10783
|
-
map: "\u7528\u4E8E\u5730\u56FE\u663E\u793A\u3001\u4F4D\u7F6E\u670D\u52A1\u7B49\u60A8\u4E3B\u52A8\u89E6\u53D1\u7684\u529F\u80FD\u3002",
|
|
10784
|
-
analysis: "\u5206\u6790\u5E94\u7528\u7684\u4F7F\u7528\u60C5\u51B5\uFF0C\u4EE5\u63D0\u5347\u7528\u6237\u4F53\u9A8C\u3002"
|
|
11042
|
+
title: "2. \u652F\u4ED8\u5904\u7406\u8BF4\u660E\uFF08Waffo Pancake\uFF09",
|
|
11043
|
+
desc: "\u672C\u670D\u52A1\u7684\u652F\u4ED8\u7531 Waffo Pancake \u63D0\u4F9B\u5B89\u5168\u5904\u7406\u652F\u6301\u3002\u6240\u6709\u4EA4\u6613\u5747\u5728\u7B26\u5408 PCI-DSS \u56FD\u9645\u5B89\u5168\u6807\u51C6\u7684\u7F51\u5173\u4E2D\u8FDB\u884C\u3002\u6211\u4EEC\u7EDD\u4E0D\u6536\u96C6\u3001\u4E0D\u5B58\u50A8\u60A8\u7684\u4EFB\u4F55\u94F6\u884C\u5361\u53F7\u3001CVV \u7B49\u654F\u611F\u652F\u4ED8\u4FE1\u606F\u3002"
|
|
10785
11044
|
},
|
|
10786
11045
|
section3: {
|
|
10787
|
-
title: "3. \
|
|
10788
|
-
desc: "\
|
|
10789
|
-
thirdParty: "\u7B2C\u4E09\u65B9\u670D\u52A1\u63D0\u4F9B\u5546\uFF1A\u672C\u5E94\u7528\u4F7F\u7528\u4E86\u7B2C\u4E09\u65B9\u5730\u56FE SDK\uFF0C\u8FD9\u4E9B\u7B2C\u4E09\u65B9\u53EF\u80FD\u4F1A\u6839\u636E\u5176\u81EA\u8EAB\u7684\u9690\u79C1\u653F\u7B56\u6536\u96C6\u548C\u5904\u7406\u76F8\u5173\u6570\u636E\u3002",
|
|
10790
|
-
legal: "\u6CD5\u5F8B\u8981\u6C42\uFF1A\u5728\u6CD5\u5F8B\u6CD5\u89C4\u8981\u6C42\u3001\u6216\u8005\u4E3A\u4E86\u914D\u5408\u653F\u5E9C\u6709\u5173\u90E8\u95E8\u7684\u5F3A\u5236\u6027\u8981\u6C42\u65F6\uFF0C\u6211\u4EEC\u53EF\u80FD\u4F1A\u62AB\u9732\u60A8\u7684\u4FE1\u606F\u3002"
|
|
11046
|
+
title: "3. \u9000\u6B3E\u4E0E\u79EF\u5206\u653F\u7B56",
|
|
11047
|
+
desc: "\u9274\u4E8E\u6570\u5B57\u8BA1\u7B97\u8D44\u6E90\u7684\u5373\u65F6\u4EA4\u4ED8\u4E0E\u6D88\u8017\u7279\u6027\uFF0C\u4E00\u65E6\u79EF\u5206\u5DF2\u88AB\u7528\u4E8E\u5B9E\u9645\u8BA1\u7B97\u5E76\u6263\u9664\uFF0C\u8BE5\u90E8\u5206\u4E0D\u4E88\u9000\u6B3E\u3002\u5BF9\u4E8E\u81EA\u8D39\u8D2D\u4E70\u7684\u79EF\u5206\u5145\u503C\u5305\uFF0C\u81EA\u8D2D\u4E70\u4E4B\u65E5\u8D77 7 \u5929\u5185\u4E14\u5B8C\u5168\u672A\u4F7F\u7528\uFF08\u79EF\u5206 100% \u5B8C\u6574\uFF09\u7684\uFF0C\u53EF\u7533\u8BF7\u5168\u989D\u539F\u8DEF\u9000\u6B3E\u3002\u7CFB\u7EDF\u8D60\u9001\u79EF\u5206\u3001\u65B0\u624B\u4F53\u9A8C\u79EF\u5206\u3001\u9080\u8BF7\u5956\u52B1\u7B49\u975E\u81EA\u8D39\u83B7\u5F97\u7684\u8D60\u9001\u79EF\u5206\uFF0C\u4E0D\u652F\u6301\u9000\u6B3E\u4E14\u4E0D\u53EF\u6298\u73B0\u3002\u56E0\u7CFB\u7EDF\u6545\u969C\u5BFC\u81F4\u7684\u91CD\u590D\u6263\u6B3E\u6838\u5B9E\u540E\u5168\u989D\u9000\u6B3E\u3002\u9000\u6B3E\u7533\u8BF7\u8BF7\u53D1\u9001\u81F3 s@nolotus.com\u3002"
|
|
10791
11048
|
},
|
|
10792
11049
|
section4: {
|
|
10793
|
-
title: "4. \
|
|
10794
|
-
desc: "\
|
|
11050
|
+
title: "4. \u5408\u89C4\u4F7F\u7528\u4E0E\u77E5\u8BC6\u4EA7\u6743",
|
|
11051
|
+
desc: "\u60A8\u627F\u8BFA\u4E0D\u5229\u7528\u672C\u670D\u52A1\u4ECE\u4E8B\u4EFB\u4F55\u8FDD\u6CD5\u8FDD\u89C4\u3001\u4FB5\u72AF\u7B2C\u4E09\u65B9\u6743\u76CA\u6216\u6076\u610F\u6EE5\u7528\u653B\u51FB\u884C\u4E3A\u3002\u5728\u6CD5\u5F8B\u5141\u8BB8\u8303\u56F4\u5185\uFF0C\u60A8\u4EAB\u6709\u5408\u6CD5\u4F7F\u7528\u672C\u670D\u52A1\u751F\u6210\u5185\u5BB9\u7684\u76F8\u5173\u6743\u76CA\u3002"
|
|
10795
11052
|
},
|
|
10796
11053
|
section5: {
|
|
10797
|
-
title: "5. \
|
|
10798
|
-
desc: "\
|
|
11054
|
+
title: "5. \u5185\u5BB9\u5B89\u5168\u4E0E\u7981\u6B62\u5185\u5BB9",
|
|
11055
|
+
desc: "\u6211\u4EEC\u81F4\u529B\u4E8E\u63D0\u4F9B\u5B89\u5168\u3001\u5408\u6CD5\u7684\u670D\u52A1\u3002\u4EE5\u4E0B\u516D\u7C7B\u5185\u5BB9\u4E0D\u5F97\u901A\u8FC7\u672C\u670D\u52A1\u751F\u6210\u6216\u4F20\u64AD\uFF1A\uFF081\uFF09\u8272\u60C5/NSFW \u5185\u5BB9\uFF1B\uFF082\uFF09\u66B4\u529B/\u8840\u8165\u5185\u5BB9\uFF1B\uFF083\uFF09\u4EC7\u6068\u8A00\u8BBA\uFF1B\uFF084\uFF09\u513F\u7AE5\u4E0D\u5B89\u5168\u5185\u5BB9\uFF08\u542B\u513F\u7AE5\u6027\u8650\u5F85\u6750\u6599 CSAM\uFF09\uFF1B\uFF085\uFF09\u6DF1\u5EA6\u4F2A\u9020\u6216\u5192\u5145\u4ED6\u4EBA\u7684\u5185\u5BB9\uFF1B\uFF086\uFF09\u4FB5\u72AF\u7248\u6743\u6216\u5546\u6807\u7684\u5185\u5BB9\u3002\u60A8\u7684\u8F93\u5165\u63D0\u793A\u8BCD\u5728\u751F\u6210\u524D\u4F1A\u7ECF\u8FC7\u5E73\u53F0\u5185\u5BB9\u5B89\u5168\u5BA1\u6838\uFF08\u81EA\u52A8\u7B5B\u67E5\u4E0E/\u6216\u4EBA\u5DE5\u590D\u6838\uFF09\uFF0C\u8FDD\u89C4\u5185\u5BB9\u5C06\u88AB\u79FB\u9664\u3002\u8FDD\u89C4\u884C\u4E3A\u53EF\u80FD\u5BFC\u81F4\u8B66\u544A\u3001\u9650\u5236\u529F\u80FD\u6216\u7EC8\u6B62\u670D\u52A1\uFF0C\u4E14\u7528\u4E8E\u8FDD\u89C4\u5185\u5BB9\u7684\u79EF\u5206\u4E0D\u4E88\u9000\u8FD8\u3002\u5982\u53D1\u73B0\u8FDD\u89C4\u5185\u5BB9\uFF0C\u8BF7\u901A\u8FC7 s@nolotus.com \u4E3E\u62A5\u3002"
|
|
10799
11056
|
},
|
|
10800
11057
|
section6: {
|
|
10801
|
-
title: "6. \
|
|
10802
|
-
desc: "\
|
|
11058
|
+
title: "6. \u514D\u8D23\u58F0\u660E\u4E0E\u8D23\u4EFB\u9650\u5236",
|
|
11059
|
+
desc: "\u672C\u670D\u52A1\u6309\u201C\u73B0\u72B6\u201D\u548C\u201C\u73B0\u6709\u201D\u57FA\u7840\u63D0\u4F9B\uFF0C\u4E0D\u4F5C\u4EFB\u4F55\u660E\u793A\u6216\u9ED8\u793A\u62C5\u4FDD\uFF0C\u5305\u62EC\u4F46\u4E0D\u9650\u4E8E\u9002\u9500\u6027\u3001\u7279\u5B9A\u7528\u9014\u9002\u7528\u6027\u4EE5\u53CA\u4E0D\u95F4\u65AD\u3001\u65E0\u9519\u8BEF\u670D\u52A1\u7684\u9ED8\u793A\u62C5\u4FDD\u3002\u5728\u6CD5\u5F8B\u5141\u8BB8\u7684\u6700\u5927\u8303\u56F4\u5185\uFF0C\u6211\u4EEC\u5BF9\u4EFB\u4F55\u95F4\u63A5\u3001\u9644\u5E26\u3001\u7279\u6B8A\u6216\u540E\u679C\u6027\u635F\u5BB3\uFF08\u5305\u62EC\u5229\u6DA6\u635F\u5931\u6216\u6570\u636E\u4E22\u5931\uFF09\u4E0D\u627F\u62C5\u8D23\u4EFB\u3002\u56E0\u672C\u6761\u6B3E\u4EA7\u751F\u7684\u6211\u65B9\u5168\u90E8\u8D23\u4EFB\uFF0C\u4EE5\u60A8\u5728\u7D22\u8D54\u53D1\u751F\u524D 12 \u4E2A\u6708\u5185\u5B9E\u9645\u652F\u4ED8\u7684\u8D39\u7528\u4E3A\u9650\u3002"
|
|
11060
|
+
},
|
|
11061
|
+
section7: {
|
|
11062
|
+
title: "7. \u7528\u6237\u8FDD\u7EA6\u4E0E\u8D26\u53F7\u5904\u7F6E",
|
|
11063
|
+
desc: "\u5982\u60A8\u8FDD\u53CD\u672C\u6761\u6B3E\u3001\u6EE5\u7528\u670D\u52A1\u6216\u4ECE\u4E8B\u8FDD\u6CD5\u884C\u4E3A\uFF0C\u6211\u4EEC\u53EF\u80FD\u5BF9\u60A8\u7684\u8D26\u53F7\u91C7\u53D6\u5904\u7F6E\u63AA\u65BD\u3002\u5904\u7F6E\u6309\u9636\u68AF\u5F0F\u6267\u884C\uFF1A\u8B66\u544A\u3001\u9650\u5236\u529F\u80FD\u3001\u6682\u505C\u6216\u7EC8\u6B62\u8D26\u53F7\u3002\u8D26\u53F7\u7EC8\u6B62\u540E\uFF0C\u60A8\u7684\u8BBF\u95EE\u6743\u9650\u5C06\u7EC8\u6B62\uFF0C\u672A\u6D88\u8D39\u79EF\u5206\u6309\u7B2C 3 \u8282\u9000\u6B3E\u653F\u7B56\u5904\u7406\uFF0C\u8FDD\u89C4\u6240\u5F97\u5185\u5BB9\u5C06\u88AB\u79FB\u9664\u3002\u60A8\u53EF\u901A\u8FC7 s@nolotus.com \u5BF9\u5904\u7F6E\u63D0\u51FA\u7533\u8BC9\u3002"
|
|
11064
|
+
},
|
|
11065
|
+
section8: {
|
|
11066
|
+
title: "8. \u8054\u7CFB\u6211\u4EEC\u4E0E\u8FD0\u8425\u4E3B\u4F53",
|
|
11067
|
+
desc: "\u5982\u6709\u4EFB\u4F55\u7591\u95EE\u6216\u652F\u6301\u9700\u6C42\uFF0C\u8BF7\u901A\u8FC7\u90AE\u7BB1 s@nolotus.com \u8054\u7CFB\u6211\u4EEC\uFF08\u54C1\u724C\uFF1ANolo\uFF09\u3002"
|
|
10803
11068
|
}
|
|
10804
11069
|
}
|
|
10805
11070
|
}
|
|
10806
11071
|
},
|
|
10807
11072
|
["zh-Hant" /* ZH_HANT */]: {
|
|
10808
11073
|
translation: {
|
|
10809
|
-
|
|
10810
|
-
title: "\
|
|
10811
|
-
lastUpdated: "\u6700\u5F8C\u66F4\u65B0\u65E5\u671F\uFF1A2026\
|
|
10812
|
-
intro: "\u6B61\u8FCE\
|
|
11074
|
+
terms: {
|
|
11075
|
+
title: "\u670D\u52D9\u689D\u6B3E",
|
|
11076
|
+
lastUpdated: "\u6700\u5F8C\u66F4\u65B0\u65E5\u671F\uFF1A2026\u5E748\u670827\u65E5",
|
|
11077
|
+
intro: "\u6B61\u8FCE\u4F7F\u7528 Nolo \u63D0\u4F9B\u7684\u670D\u52D9\uFF08\u4EE5\u4E0B\u7C21\u7A31\u201C\u672C\u670D\u52D9\u201D\uFF09\u3002\u9020\u8A2A\u3001\u8A3B\u518A\u6216\u8CFC\u8CB7\u672C\u670D\u52D9\u7A4D\u5206\uFF0C\u5373\u8868\u793A\u60A8\u540C\u610F\u53D7\u672C\u670D\u52D9\u689D\u6B3E\u7684\u7D04\u675F\u3002",
|
|
10813
11078
|
section1: {
|
|
10814
|
-
title: "1. \
|
|
10815
|
-
desc: "\
|
|
10816
|
-
device: "\u8A2D\u5099\u8CC7\u8A0A\uFF1A\u5982\u8A2D\u5099\u578B\u865F\u3001\u4F5C\u696D\u7CFB\u7D71\u7248\u672C\u3001\u552F\u4E00\u8A2D\u5099\u8B58\u5225\u78BC\u7B49\uFF0C\u7528\u65BC\u512A\u5316\u61C9\u7528\u6548\u80FD\u548C\u89E3\u6C7A\u5D29\u6F70\u554F\u984C\u3002",
|
|
10817
|
-
location: "\u4F4D\u7F6E\u8CC7\u8A0A\uFF1A\u7531\u65BC\u672C\u61C9\u7528\u6574\u5408\u4E86\u5730\u5716\u670D\u52D9\uFF0C\u5728\u60A8\u4F7F\u7528\u76F8\u95DC\u529F\u80FD\u6642\uFF0C\u6211\u5011\u5728\u5FB5\u5F97\u60A8\u540C\u610F\u7684\u524D\u63D0\u4E0B\u53EF\u80FD\u6703\u6536\u96C6\u60A8\u7684\u5730\u7406\u4F4D\u7F6E\u8CC7\u8A0A\u3002",
|
|
10818
|
-
network: "\u7DB2\u8DEF\u8CC7\u8A0A\uFF1A\u672C\u61C9\u7528\u9700\u8981\u5B58\u53D6\u7DB2\u969B\u7DB2\u8DEF\u4EE5\u63D0\u4F9B\u7DDA\u4E0A\u529F\u80FD\uFF0C\u5728\u6B64\u904E\u7A0B\u4E2D\u6703\u7522\u751F\u6A19\u6E96\u7684\u7DB2\u8DEF\u65E5\u8A8C\u8CC7\u6599\u3002"
|
|
11079
|
+
title: "1. \u670D\u52D9\u8207\u8A08\u8CBB\u65B9\u5F0F\uFF08\u6309\u9700\u7A4D\u5206\u5373\u6642\u7D50\u7B97\uFF09",
|
|
11080
|
+
desc: "\u672C\u670D\u52D9\u70BA\u6578\u4F4D\u7121\u5F62\u8A08\u7B97\u670D\u52D9\uFF0C\u63A1\u7528\u7A4D\u5206\uFF08Credits/Points\uFF09\u5145\u503C\u8207\u5373\u6642\u6263\u8CBB\u6A21\u5F0F\u3002\u7576\u60A8\u4F7F\u7528\u76F8\u95DC AI \u6216\u8A08\u7B97\u529F\u80FD\u6642\uFF0C\u7CFB\u7D71\u5C07\u6839\u64DA\u5BE6\u969B\u7528\u91CF\u5373\u6642\u6263\u9664\u5C0D\u61C9\u7A4D\u5206\u3002\u6BCF\u6B21\u7A4D\u5206\u5145\u503C\u5747\u70BA\u4E00\u6B21\u6027\u8CFC\u8CB7\uFF0C\u4E0D\u542B\u4EFB\u4F55\u81EA\u52D5\u7E8C\u8CBB\u6216\u9031\u671F\u6027\u6263\u6B3E\uFF0C\u5145\u503C\u7A4D\u5206\u6C38\u4E45\u6709\u6548\u3002"
|
|
10819
11081
|
},
|
|
10820
11082
|
section2: {
|
|
10821
|
-
title: "2. \
|
|
10822
|
-
desc: "\u6211\u5011\u6536\u96C6\
|
|
10823
|
-
core: "\u5411\u60A8\u63D0\u4F9B\u3001\u7DAD\u8B77\u548C\u6539\u9032\u672C\u61C9\u7528\u7684\u6838\u5FC3\u529F\u80FD\u3002",
|
|
10824
|
-
map: "\u7528\u65BC\u5730\u5716\u986F\u793A\u3001\u4F4D\u7F6E\u670D\u52D9\u7B49\u60A8\u4E3B\u52D5\u89F8\u767C\u7684\u529F\u80FD\u3002",
|
|
10825
|
-
analysis: "\u5206\u6790\u61C9\u7528\u7684\u4F7F\u7528\u60C5\u6CC1\uFF0C\u4EE5\u63D0\u5347\u4F7F\u7528\u8005\u9AD4\u9A57\u3002"
|
|
11083
|
+
title: "2. \u652F\u4ED8\u8655\u7406\u8AAA\u660E\uFF08Waffo Pancake\uFF09",
|
|
11084
|
+
desc: "\u672C\u670D\u52D9\u7684\u652F\u4ED8\u7531 Waffo Pancake \u63D0\u4F9B\u5B89\u5168\u8655\u7406\u652F\u63F4\u3002\u6240\u6709\u4EA4\u6613\u5747\u5728\u7B26\u5408 PCI-DSS \u570B\u969B\u5B89\u5168\u6A19\u6E96\u7684\u9598\u9053\u4E2D\u9032\u884C\u3002\u6211\u5011\u7D55\u4E0D\u6536\u96C6\u3001\u4E0D\u5132\u5B58\u60A8\u7684\u4EFB\u4F55\u4FE1\u7528\u5361\u865F\u3001CVV \u7B49\u654F\u611F\u652F\u4ED8\u8CC7\u8A0A\u3002"
|
|
10826
11085
|
},
|
|
10827
11086
|
section3: {
|
|
10828
|
-
title: "3. \
|
|
10829
|
-
desc: "\
|
|
10830
|
-
thirdParty: "\u7B2C\u4E09\u65B9\u670D\u52D9\u63D0\u4F9B\u8005\uFF1A\u672C\u61C9\u7528\u4F7F\u7528\u4E86\u7B2C\u4E09\u65B9\u5730\u5716 SDK\uFF0C\u9019\u4E9B\u7B2C\u4E09\u65B9\u53EF\u80FD\u6703\u6839\u64DA\u5176\u81EA\u8EAB\u7684\u96B1\u79C1\u6B0A\u653F\u7B56\u6536\u96C6\u548C\u8655\u7406\u76F8\u95DC\u8CC7\u6599\u3002",
|
|
10831
|
-
legal: "\u6CD5\u5F8B\u8981\u6C42\uFF1A\u5728\u6CD5\u5F8B\u6CD5\u898F\u8981\u6C42\u3001\u6216\u8005\u70BA\u4E86\u914D\u5408\u653F\u5E9C\u6709\u95DC\u90E8\u9580\u7684\u5F37\u5236\u6027\u8981\u6C42\u6642\uFF0C\u6211\u5011\u53EF\u80FD\u6703\u63ED\u9732\u60A8\u7684\u8CC7\u8A0A\u3002"
|
|
11087
|
+
title: "3. \u9000\u6B3E\u8207\u7A4D\u5206\u653F\u7B56",
|
|
11088
|
+
desc: "\u9451\u65BC\u6578\u4F4D\u8A08\u7B97\u8CC7\u6E90\u7684\u5373\u6642\u4EA4\u4ED8\u8207\u6D88\u8017\u7279\u6027\uFF0C\u4E00\u65E6\u7A4D\u5206\u5DF2\u88AB\u7528\u65BC\u5BE6\u969B\u8A08\u7B97\u4E26\u6263\u9664\uFF0C\u8A72\u90E8\u5206\u4E0D\u4E88\u9000\u6B3E\u3002\u5C0D\u65BC\u81EA\u8CBB\u8CFC\u8CB7\u7684\u7A4D\u5206\u5305\uFF0C\u81EA\u5145\u503C\u4E4B\u65E5\u8D77 7 \u5929\u5167\u4E14\u5B8C\u5168\u672A\u4F7F\u7528\uFF08\u7A4D\u5206 100% \u5B8C\u6574\uFF09\u7684\uFF0C\u53EF\u7533\u8ACB\u5168\u984D\u9000\u6B3E\u3002\u7CFB\u7D71\u8D08\u9001\u3001\u9AD4\u9A57\u53CA\u9080\u8ACB\u734E\u52F5\u7B49\u975E\u4ED8\u8CBB\u7A4D\u5206\u4E0D\u652F\u63F4\u9000\u6B3E\u4E14\u4E0D\u53EF\u6298\u73FE\u3002\u56E0\u7CFB\u7D71\u7570\u5E38\u5C0E\u81F4\u7684\u91CD\u8907\u6263\u6B3E\u6838\u5BE6\u5F8C\u5168\u984D\u9000\u6B3E\u3002\u9000\u6B3E\u8ACB\u806F\u7D61 s@nolotus.com\u3002"
|
|
10832
11089
|
},
|
|
10833
11090
|
section4: {
|
|
10834
|
-
title: "4. \
|
|
10835
|
-
desc: "\
|
|
11091
|
+
title: "4. \u5408\u898F\u4F7F\u7528\u8207\u667A\u6167\u8CA1\u7522\u6B0A",
|
|
11092
|
+
desc: "\u60A8\u627F\u8AFE\u4E0D\u5229\u7528\u672C\u670D\u52D9\u5F9E\u4E8B\u4EFB\u4F55\u9055\u6CD5\u9055\u898F\u3001\u4FB5\u5BB3\u7B2C\u4E09\u65B9\u6B0A\u76CA\u6216\u60E1\u610F\u6FEB\u7528\u884C\u70BA\u3002\u5728\u6CD5\u5F8B\u5141\u8A31\u7BC4\u570D\u5167\uFF0C\u60A8\u4EAB\u6709\u5408\u6CD5\u4F7F\u7528\u672C\u670D\u52D9\u751F\u6210\u5167\u5BB9\u7684\u76F8\u95DC\u6B0A\u76CA\u3002"
|
|
10836
11093
|
},
|
|
10837
11094
|
section5: {
|
|
10838
|
-
title: "5. \
|
|
10839
|
-
desc: "\
|
|
11095
|
+
title: "5. \u5167\u5BB9\u5B89\u5168\u8207\u7981\u6B62\u5167\u5BB9",
|
|
11096
|
+
desc: "\u6211\u5011\u81F4\u529B\u65BC\u63D0\u4F9B\u5B89\u5168\u3001\u5408\u6CD5\u7684\u670D\u52D9\u3002\u4EE5\u4E0B\u516D\u985E\u5167\u5BB9\u4E0D\u5F97\u900F\u904E\u672C\u670D\u52D9\u751F\u6210\u6216\u50B3\u64AD\uFF1A\uFF081\uFF09\u8272\u60C5/NSFW \u5167\u5BB9\uFF1B\uFF082\uFF09\u66B4\u529B/\u8840\u8165\u5167\u5BB9\uFF1B\uFF083\uFF09\u4EC7\u6068\u8A00\u8AD6\uFF1B\uFF084\uFF09\u5152\u7AE5\u4E0D\u5B89\u5168\u5167\u5BB9\uFF08\u542B\u5152\u7AE5\u6027\u8650\u5F85\u6750\u6599 CSAM\uFF09\uFF1B\uFF085\uFF09\u6DF1\u5EA6\u507D\u9020\u6216\u5192\u5145\u4ED6\u4EBA\u7684\u5167\u5BB9\uFF1B\uFF086\uFF09\u4FB5\u72AF\u7248\u6B0A\u6216\u5546\u6A19\u7684\u5167\u5BB9\u3002\u60A8\u7684\u8F38\u5165\u63D0\u793A\u8A5E\u5728\u751F\u6210\u524D\u6703\u7D93\u904E\u5E73\u53F0\u5167\u5BB9\u5B89\u5168\u5BE9\u6838\uFF08\u81EA\u52D5\u7BE9\u67E5\u8207/\u6216\u4EBA\u5DE5\u8907\u6838\uFF09\uFF0C\u9055\u898F\u5167\u5BB9\u5C07\u88AB\u79FB\u9664\u3002\u9055\u898F\u884C\u70BA\u53EF\u80FD\u5C0E\u81F4\u8B66\u544A\u3001\u9650\u5236\u529F\u80FD\u6216\u7D42\u6B62\u670D\u52D9\uFF0C\u4E14\u7528\u65BC\u9055\u898F\u5167\u5BB9\u7684\u7A4D\u5206\u4E0D\u4E88\u9000\u9084\u3002\u5982\u767C\u73FE\u9055\u898F\u5167\u5BB9\uFF0C\u8ACB\u900F\u904E s@nolotus.com \u6AA2\u8209\u3002"
|
|
10840
11097
|
},
|
|
10841
11098
|
section6: {
|
|
10842
|
-
title: "6. \
|
|
10843
|
-
desc: "\
|
|
11099
|
+
title: "6. \u514D\u8CAC\u8072\u660E\u8207\u8CAC\u4EFB\u9650\u5236",
|
|
11100
|
+
desc: "\u672C\u670D\u52D9\u6309\u300C\u73FE\u72C0\u300D\u548C\u300C\u73FE\u6709\u300D\u57FA\u790E\u63D0\u4F9B\uFF0C\u4E0D\u4F5C\u4EFB\u4F55\u660E\u793A\u6216\u9ED8\u793A\u64D4\u4FDD\uFF0C\u5305\u62EC\u4F46\u4E0D\u9650\u65BC\u9069\u92B7\u6027\u3001\u7279\u5B9A\u7528\u9014\u9069\u7528\u6027\u4EE5\u53CA\u4E0D\u9593\u65B7\u3001\u7121\u932F\u8AA4\u670D\u52D9\u7684\u9ED8\u793A\u64D4\u4FDD\u3002\u5728\u6CD5\u5F8B\u5141\u8A31\u7684\u6700\u5927\u7BC4\u570D\u5167\uFF0C\u6211\u5011\u5C0D\u4EFB\u4F55\u9593\u63A5\u3001\u9644\u5E36\u3001\u7279\u6B8A\u6216\u5F8C\u679C\u6027\u640D\u5BB3\uFF08\u5305\u62EC\u5229\u6F64\u640D\u5931\u6216\u8CC7\u6599\u907A\u5931\uFF09\u4E0D\u627F\u64D4\u8CAC\u4EFB\u3002\u56E0\u672C\u689D\u6B3E\u7522\u751F\u7684\u6211\u65B9\u5168\u90E8\u8CAC\u4EFB\uFF0C\u4EE5\u60A8\u5728\u7D22\u8CE0\u767C\u751F\u524D 12 \u500B\u6708\u5167\u5BE6\u969B\u652F\u4ED8\u7684\u8CBB\u7528\u70BA\u9650\u3002"
|
|
11101
|
+
},
|
|
11102
|
+
section7: {
|
|
11103
|
+
title: "7. \u7528\u6236\u9055\u7D04\u8207\u5E33\u865F\u8655\u7F6E",
|
|
11104
|
+
desc: "\u5982\u60A8\u9055\u53CD\u672C\u689D\u6B3E\u3001\u6FEB\u7528\u670D\u52D9\u6216\u5F9E\u4E8B\u9055\u6CD5\u884C\u70BA\uFF0C\u6211\u5011\u53EF\u80FD\u5C0D\u60A8\u7684\u5E33\u865F\u63A1\u53D6\u8655\u7F6E\u63AA\u65BD\u3002\u8655\u7F6E\u6309\u968E\u68AF\u5F0F\u57F7\u884C\uFF1A\u8B66\u544A\u3001\u9650\u5236\u529F\u80FD\u3001\u66AB\u505C\u6216\u7D42\u6B62\u5E33\u865F\u3002\u5E33\u865F\u7D42\u6B62\u5F8C\uFF0C\u60A8\u7684\u5B58\u53D6\u6B0A\u9650\u5C07\u7D42\u6B62\uFF0C\u672A\u6D88\u8CBB\u7A4D\u5206\u6309\u7B2C 3 \u7BC0\u9000\u6B3E\u653F\u7B56\u8655\u7406\uFF0C\u9055\u898F\u6240\u5F97\u5167\u5BB9\u5C07\u88AB\u79FB\u9664\u3002\u60A8\u53EF\u900F\u904E s@nolotus.com \u5C0D\u8655\u7F6E\u63D0\u51FA\u7533\u8A34\u3002"
|
|
11105
|
+
},
|
|
11106
|
+
section8: {
|
|
11107
|
+
title: "8. \u806F\u7D61\u6211\u5011\u8207\u71DF\u904B\u65B9",
|
|
11108
|
+
desc: "\u5982\u6709\u4EFB\u4F55\u7591\u554F\uFF0C\u8ACB\u900F\u904E\u96FB\u5B50\u90F5\u4EF6 s@nolotus.com \u806F\u7D61\u6211\u5011\uFF08\u54C1\u724C\uFF1ANolo\uFF09\u3002"
|
|
10844
11109
|
}
|
|
10845
11110
|
}
|
|
10846
11111
|
}
|
|
10847
11112
|
},
|
|
10848
11113
|
["ja" /* JA */]: {
|
|
10849
11114
|
translation: {
|
|
10850
|
-
|
|
10851
|
-
title: "\
|
|
10852
|
-
lastUpdated: "\u6700\u7D42\u66F4\u65B0\u65E5\uFF1A2026\
|
|
10853
|
-
intro: "Nolo\
|
|
11115
|
+
terms: {
|
|
11116
|
+
title: "\u5229\u7528\u898F\u7D04",
|
|
11117
|
+
lastUpdated: "\u6700\u7D42\u66F4\u65B0\u65E5\uFF1A2026\u5E748\u670827\u65E5",
|
|
11118
|
+
intro: "Nolo \u3078\u3088\u3046\u3053\u305D\u3002\u5F53\u793E\u306E\u30B5\u30FC\u30D3\u30B9\u306B\u30A2\u30AF\u30BB\u30B9\u3001\u767B\u9332\u3001\u307E\u305F\u306F\u30DD\u30A4\u30F3\u30C8\u3092\u8CFC\u5165\u3059\u308B\u3053\u3068\u306B\u3088\u308A\u3001\u304A\u5BA2\u69D8\u306F\u672C\u5229\u7528\u898F\u7D04\u306B\u540C\u610F\u3057\u305F\u3082\u306E\u3068\u307F\u306A\u3055\u308C\u307E\u3059\u3002",
|
|
10854
11119
|
section1: {
|
|
10855
|
-
title: "1. \
|
|
10856
|
-
desc: "\
|
|
10857
|
-
device: "\u30C7\u30D0\u30A4\u30B9\u60C5\u5831\uFF1A\u30D1\u30D5\u30A9\u30FC\u30DE\u30F3\u30B9\u306E\u6700\u9069\u5316\u3084\u30AF\u30E9\u30C3\u30B7\u30E5\u306E\u89E3\u6C7A\u306E\u305F\u3081\u3001\u30C7\u30D0\u30A4\u30B9\u306E\u30E2\u30C7\u30EB\u3001OS\u30D0\u30FC\u30B8\u30E7\u30F3\u3001\u4E00\u610F\u306E\u30C7\u30D0\u30A4\u30B9\u8B58\u5225\u5B50\u306A\u3069\u3092\u53CE\u96C6\u3057\u307E\u3059\u3002",
|
|
10858
|
-
location: "\u4F4D\u7F6E\u60C5\u5831\uFF1A\u672C\u30A2\u30D7\u30EA\u306B\u306F\u5730\u56F3\u30B5\u30FC\u30D3\u30B9\u304C\u7D71\u5408\u3055\u308C\u3066\u304A\u308A\u3001\u95A2\u9023\u6A5F\u80FD\u3092\u4F7F\u7528\u3059\u308B\u969B\u3001\u30E6\u30FC\u30B6\u30FC\u306E\u540C\u610F\u306E\u3082\u3068\u4F4D\u7F6E\u60C5\u5831\u3092\u53CE\u96C6\u3059\u308B\u5834\u5408\u304C\u3042\u308A\u307E\u3059\u3002",
|
|
10859
|
-
network: "\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u60C5\u5831\uFF1A\u30AA\u30F3\u30E9\u30A4\u30F3\u6A5F\u80FD\u3092\u63D0\u4F9B\u3059\u308B\u305F\u3081\u3001\u30A4\u30F3\u30BF\u30FC\u30CD\u30C3\u30C8\u30A2\u30AF\u30BB\u30B9\u304C\u5FC5\u8981\u3067\u3042\u308A\u3001\u305D\u306E\u904E\u7A0B\u3067\u6A19\u6E96\u7684\u306A\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u30ED\u30B0\u304C\u751F\u6210\u3055\u308C\u307E\u3059\u3002"
|
|
11120
|
+
title: "1. \u30B5\u30FC\u30D3\u30B9\u3068\u8ACB\u6C42\uFF08\u30DD\u30A4\u30F3\u30C8\u5373\u6642\u6D88\u8CBB\u30E2\u30C7\u30EB\uFF09",
|
|
11121
|
+
desc: "\u672C\u30B5\u30FC\u30D3\u30B9\u306F\u3001\u30DD\u30A4\u30F3\u30C8\uFF08Points/Credits\uFF09\u30B7\u30B9\u30C6\u30E0\u306B\u57FA\u3065\u304F\u30C7\u30B8\u30BF\u30EBAI\u8A08\u7B97\u30B5\u30FC\u30D3\u30B9\u3067\u3059\u3002\u8A08\u7B97\u30EA\u30AF\u30A8\u30B9\u30C8\u6642\u306B\u5B9F\u969B\u306E\u30EA\u30BD\u30FC\u30B9\u4F7F\u7528\u91CF\u306B\u5FDC\u3058\u3066\u5373\u5EA7\u306B\u30DD\u30A4\u30F3\u30C8\u304C\u6D88\u8CBB\u3055\u308C\u307E\u3059\u3002\u5B9A\u671F\u8CFC\u8AAD\u3084\u81EA\u52D5\u5F15\u304D\u843D\u3068\u3057\u306F\u767A\u751F\u3057\u307E\u305B\u3093\u3002\u6709\u52B9\u671F\u9650\u306F\u3042\u308A\u307E\u305B\u3093\u3002"
|
|
10860
11122
|
},
|
|
10861
11123
|
section2: {
|
|
10862
|
-
title: "2. \
|
|
10863
|
-
desc: "\
|
|
10864
|
-
core: "\u672C\u30A2\u30D7\u30EA\u306E\u30B3\u30A2\u6A5F\u80FD\u306E\u63D0\u4F9B\u3001\u7DAD\u6301\u3001\u6539\u5584\u3002",
|
|
10865
|
-
map: "\u5730\u56F3\u8868\u793A\u3084\u4F4D\u7F6E\u60C5\u5831\u30B5\u30FC\u30D3\u30B9\u306A\u3069\u3001\u30E6\u30FC\u30B6\u30FC\u304C\u30C8\u30EA\u30AC\u30FC\u3059\u308B\u6A5F\u80FD\u306E\u63D0\u4F9B\u3002",
|
|
10866
|
-
analysis: "\u30E6\u30FC\u30B6\u30FC\u4F53\u9A13\u5411\u4E0A\u306E\u305F\u3081\u306E\u5229\u7528\u72B6\u6CC1\u306E\u5206\u6790\u3002"
|
|
11124
|
+
title: "2. \u6C7A\u6E08\u51E6\u7406\uFF08Waffo Pancake\uFF09",
|
|
11125
|
+
desc: "\u6C7A\u6E08\u306F Waffo Pancake \u306B\u3088\u308A\u5B89\u5168\u306B\u51E6\u7406\u3055\u308C\u3001PCI-DSS \u898F\u683C\u306B\u5B8C\u5168\u6E96\u62E0\u3057\u3066\u3044\u307E\u3059\u3002\u5F53\u793E\u304C\u30AF\u30EC\u30B8\u30C3\u30C8\u30AB\u30FC\u30C9\u756A\u53F7\u3084\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30B3\u30FC\u30C9\u3092\u53CE\u96C6\u30FB\u4FDD\u5B58\u3059\u308B\u3053\u3068\u306F\u3042\u308A\u307E\u305B\u3093\u3002"
|
|
10867
11126
|
},
|
|
10868
11127
|
section3: {
|
|
10869
|
-
title: "3. \
|
|
10870
|
-
desc: "\
|
|
10871
|
-
thirdParty: "\u7B2C\u4E09\u8005\u30B5\u30FC\u30D3\u30B9\u63D0\u4F9B\u8005\uFF1A\u672C\u30A2\u30D7\u30EA\u306F\u30B5\u30FC\u30C9\u30D1\u30FC\u30C6\u30A3\u306E\u5730\u56F3SDK\u3092\u4F7F\u7528\u3057\u3066\u304A\u308A\u3001\u3053\u308C\u3089\u306F\u72EC\u81EA\u306E\u30D7\u30E9\u30A4\u30D0\u30B7\u30FC\u30DD\u30EA\u30B7\u30FC\u306B\u5F93\u3063\u3066\u30C7\u30FC\u30BF\u3092\u53CE\u96C6\u304A\u3088\u3073\u51E6\u7406\u3059\u308B\u5834\u5408\u304C\u3042\u308A\u307E\u3059\u3002",
|
|
10872
|
-
legal: "\u6CD5\u7684\u8981\u8ACB\uFF1A\u6CD5\u5F8B\u306E\u8981\u6C42\u3001\u307E\u305F\u306F\u653F\u5E9C\u6A5F\u95A2\u304B\u3089\u306E\u5F37\u5236\u7684\u306A\u8981\u6C42\u306B\u5354\u529B\u3059\u308B\u305F\u3081\u3001\u60C5\u5831\u3092\u958B\u793A\u3059\u308B\u5834\u5408\u304C\u3042\u308A\u307E\u3059\u3002"
|
|
11128
|
+
title: "3. \u8FD4\u91D1\u30DD\u30EA\u30B7\u30FC",
|
|
11129
|
+
desc: "\u6D88\u8CBB\u6E08\u307F\u306E\u30DD\u30A4\u30F3\u30C8\u306F\u8FD4\u91D1\u5BFE\u8C61\u5916\u3067\u3059\u3002\u6709\u511F\u8CFC\u5165\u304B\u30897\u65E5\u4EE5\u5185\u3067\u5B8C\u5168\u306B\u672A\u4F7F\u7528\u306E\u30DD\u30A4\u30F3\u30C8\u30D1\u30C3\u30B1\u30FC\u30B8\u306B\u9650\u308A\u5168\u984D\u8FD4\u91D1\u3092\u627F\u308A\u307E\u3059\u3002\u7121\u511F\u4ED8\u4E0E\u3084\u62DB\u5F85\u7279\u5178\u30DD\u30A4\u30F3\u30C8\u306F\u8FD4\u91D1\u30FB\u63DB\u91D1\u4E0D\u53EF\u3067\u3059\u3002\u304A\u554F\u3044\u5408\u308F\u305B\uFF1As@nolotus.com"
|
|
10873
11130
|
},
|
|
10874
11131
|
section4: {
|
|
10875
|
-
title: "4. \
|
|
10876
|
-
desc: "\
|
|
11132
|
+
title: "4. \u5229\u7528\u898F\u7D04\u3068\u77E5\u7684\u8CA1\u7523",
|
|
11133
|
+
desc: "\u6CD5\u4EE4\u9055\u53CD\u3084\u30B5\u30FC\u30D3\u30B9\u306E\u4E0D\u6B63\u5229\u7528\u3092\u7981\u6B62\u3057\u307E\u3059\u3002\u751F\u6210\u3055\u308C\u305F\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u6A29\u5229\u306F\u304A\u5BA2\u69D8\u306B\u5E30\u5C5E\u3057\u307E\u3059\u3002"
|
|
10877
11134
|
},
|
|
10878
11135
|
section5: {
|
|
10879
|
-
title: "5. \
|
|
10880
|
-
desc: "\
|
|
11136
|
+
title: "5. \u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u5B89\u5168\u6027\u3068\u7981\u6B62\u30B3\u30F3\u30C6\u30F3\u30C4",
|
|
11137
|
+
desc: "\u5F53\u793E\u306F\u5B89\u5168\u304B\u3064\u5408\u6CD5\u7684\u306A\u30B5\u30FC\u30D3\u30B9\u3092\u63D0\u4F9B\u3057\u307E\u3059\u3002\u672C\u30B5\u30FC\u30D3\u30B9\u3092\u901A\u3058\u3066\u4EE5\u4E0B\u306E6\u7A2E\u985E\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u751F\u6210\u30FB\u914D\u4FE1\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\uFF1A\uFF081\uFF09\u30DD\u30EB\u30CE/NSFW\u30B3\u30F3\u30C6\u30F3\u30C4\uFF1B\uFF082\uFF09\u66B4\u529B\u7684\u30FB\u6B8B\u8650\u306A\u30B3\u30F3\u30C6\u30F3\u30C4\uFF1B\uFF083\uFF09\u30D8\u30A4\u30C8\u30B9\u30D4\u30FC\u30C1\uFF1B\uFF084\uFF09\u5150\u7AE5\u306E\u5B89\u5168\u3092\u640D\u306A\u3046\u30B3\u30F3\u30C6\u30F3\u30C4\uFF08\u5150\u7AE5\u6027\u7684\u8650\u5F85\u8CC7\u6599 CSAM \u3092\u542B\u3080\uFF09\uFF1B\uFF085\uFF09\u30C7\u30A3\u30FC\u30D7\u30D5\u30A7\u30A4\u30AF\u3084\u4ED6\u4EBA\u306B\u306A\u308A\u3059\u307E\u3059\u30B3\u30F3\u30C6\u30F3\u30C4\uFF1B\uFF086\uFF09\u8457\u4F5C\u6A29\u3084\u5546\u6A19\u3092\u4FB5\u5BB3\u3059\u308B\u30B3\u30F3\u30C6\u30F3\u30C4\u3002\u5165\u529B\u30D7\u30ED\u30F3\u30D7\u30C8\u306F\u751F\u6210\u524D\u306B\u5F53\u793E\u306E\u30B3\u30F3\u30C6\u30F3\u30C4\u5B89\u5168\u5BE9\u67FB\uFF08\u81EA\u52D5\u30D5\u30A3\u30EB\u30BF\u30EA\u30F3\u30B0\u304A\u3088\u3073/\u307E\u305F\u306F\u624B\u52D5\u30EC\u30D3\u30E5\u30FC\uFF09\u3092\u53D7\u3051\u3001\u9055\u53CD\u30B3\u30F3\u30C6\u30F3\u30C4\u306F\u524A\u9664\u3055\u308C\u307E\u3059\u3002\u9055\u53CD\u3057\u305F\u5834\u5408\u3001\u8B66\u544A\u3001\u6A5F\u80FD\u5236\u9650\u3001\u307E\u305F\u306F\u30B5\u30FC\u30D3\u30B9\u505C\u6B62\u306E\u5BFE\u8C61\u3068\u306A\u308A\u3001\u9055\u53CD\u30B3\u30F3\u30C6\u30F3\u30C4\u306B\u4F7F\u7528\u3057\u305F\u30DD\u30A4\u30F3\u30C8\u306F\u8FD4\u91D1\u3055\u308C\u307E\u305B\u3093\u3002\u9055\u53CD\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u767A\u898B\u3057\u305F\u5834\u5408\u306F s@nolotus.com \u307E\u3067\u3054\u5831\u544A\u304F\u3060\u3055\u3044\u3002"
|
|
10881
11138
|
},
|
|
10882
11139
|
section6: {
|
|
10883
|
-
title: "6. \
|
|
10884
|
-
desc: "\u672C\
|
|
11140
|
+
title: "6. \u514D\u8CAC\u4E8B\u9805\u3068\u8CAC\u4EFB\u306E\u5236\u9650",
|
|
11141
|
+
desc: "\u672C\u30B5\u30FC\u30D3\u30B9\u306F\u300C\u73FE\u72B6\u6709\u59FF\u300D\u3067\u63D0\u4F9B\u3055\u308C\u3001\u5546\u54C1\u6027\u3001\u7279\u5B9A\u76EE\u7684\u3078\u306E\u9069\u5408\u6027\u3001\u4E2D\u65AD\u3084\u30A8\u30E9\u30FC\u306E\u306A\u3044\u30B5\u30FC\u30D3\u30B9\u3092\u542B\u3080\u3001\u660E\u793A\u7684\u307E\u305F\u306F\u9ED9\u793A\u7684\u306A\u4E00\u5207\u306E\u4FDD\u8A3C\u3092\u884C\u3044\u307E\u305B\u3093\u3002\u6CD5\u5F8B\u3067\u8A8D\u3081\u3089\u308C\u308B\u6700\u5927\u9650\u306E\u7BC4\u56F2\u3067\u3001\u5F53\u793E\u306F\u9593\u63A5\u7684\u30FB\u4ED8\u968F\u7684\u30FB\u7279\u5225\u30FB\u7D50\u679C\u7684\u640D\u5BB3\uFF08\u5229\u76CA\u640D\u5931\u3084\u30C7\u30FC\u30BF\u55AA\u5931\u3092\u542B\u3080\uFF09\u306B\u3064\u3044\u3066\u8CAC\u4EFB\u3092\u8CA0\u3044\u307E\u305B\u3093\u3002\u672C\u898F\u7D04\u306B\u8D77\u56E0\u3059\u308B\u5F53\u793E\u306E\u7DCF\u8CAC\u4EFB\u984D\u306F\u3001\u8ACB\u6C42\u524D12\u30F6\u6708\u9593\u306B\u304A\u5BA2\u69D8\u304C\u5B9F\u969B\u306B\u652F\u6255\u3063\u305F\u91D1\u984D\u3092\u4E0A\u9650\u3068\u3057\u307E\u3059\u3002"
|
|
11142
|
+
},
|
|
11143
|
+
section7: {
|
|
11144
|
+
title: "7. \u5229\u7528\u8005\u9055\u53CD\u3068\u30A2\u30AB\u30A6\u30F3\u30C8\u63AA\u7F6E",
|
|
11145
|
+
desc: "\u672C\u898F\u7D04\u306B\u9055\u53CD\u3057\u305F\u5834\u5408\u3001\u30B5\u30FC\u30D3\u30B9\u3092\u60AA\u7528\u3057\u305F\u5834\u5408\u3001\u307E\u305F\u306F\u9055\u6CD5\u884C\u70BA\u3092\u884C\u3063\u305F\u5834\u5408\u3001\u5F53\u793E\u306F\u304A\u5BA2\u69D8\u306E\u30A2\u30AB\u30A6\u30F3\u30C8\u306B\u5BFE\u3057\u3066\u63AA\u7F6E\u3092\u8B1B\u3058\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002\u63AA\u7F6E\u306F\u6BB5\u968E\u7684\u306B\u9069\u7528\u3055\u308C\u307E\u3059\uFF1A\u8B66\u544A\u3001\u6A5F\u80FD\u5236\u9650\u3001\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u505C\u6B62\u307E\u305F\u306F\u7D42\u4E86\u3002\u7D42\u4E86\u5F8C\u3001\u30A2\u30AB\u30A6\u30F3\u30C8\u3078\u306E\u30A2\u30AF\u30BB\u30B9\u306F\u7D42\u4E86\u3057\u3001\u672A\u4F7F\u7528\u30DD\u30A4\u30F3\u30C8\u306F\u7B2C3\u6761\u306E\u8FD4\u91D1\u30DD\u30EA\u30B7\u30FC\u306B\u5F93\u3063\u3066\u51E6\u7406\u3055\u308C\u3001\u9055\u53CD\u306B\u3088\u3063\u3066\u5F97\u3089\u308C\u305F\u30B3\u30F3\u30C6\u30F3\u30C4\u306F\u524A\u9664\u3055\u308C\u307E\u3059\u3002\u63AA\u7F6E\u306B\u5BFE\u3057\u3066\u306F s@nolotus.com \u307E\u3067\u7570\u8B70\u7533\u3057\u7ACB\u3066\u304C\u3067\u304D\u307E\u3059\u3002"
|
|
11146
|
+
},
|
|
11147
|
+
section8: {
|
|
11148
|
+
title: "8. \u304A\u554F\u3044\u5408\u308F\u305B",
|
|
11149
|
+
desc: "\u30D6\u30E9\u30F3\u30C9\uFF1ANolo / \u30E1\u30FC\u30EB\uFF1As@nolotus.com"
|
|
10885
11150
|
}
|
|
10886
11151
|
}
|
|
10887
11152
|
}
|
|
10888
11153
|
}
|
|
10889
11154
|
};
|
|
10890
11155
|
|
|
10891
|
-
// packages/app/i18n/translations/
|
|
10892
|
-
var
|
|
11156
|
+
// packages/app/i18n/translations/aup.locale.ts
|
|
11157
|
+
var aup_locale_default = {
|
|
10893
11158
|
["en" /* EN */]: {
|
|
10894
11159
|
translation: {
|
|
10895
|
-
|
|
10896
|
-
title: "
|
|
10897
|
-
lastUpdated: "Last updated:
|
|
10898
|
-
intro: "Welcome to Nolo.
|
|
11160
|
+
aup: {
|
|
11161
|
+
title: "AIGC Acceptable Use Policy",
|
|
11162
|
+
lastUpdated: "Last updated: August 24, 2026",
|
|
11163
|
+
intro: "Welcome to Nolo. This Acceptable Use Policy (AUP) outlines the acceptable and prohibited uses of our AI Generation Services to ensure a safe, legal, and responsible computing environment.",
|
|
10899
11164
|
section1: {
|
|
10900
|
-
title: "1.
|
|
10901
|
-
desc: "You
|
|
11165
|
+
title: "1. Prohibited Content Categories",
|
|
11166
|
+
desc: "You may not generate, attempt to generate, or distribute the following categories of content:",
|
|
11167
|
+
nsfw: "Adult / Pornographic / NSFW Content: Explicit sexual acts, sexual services, non-consensual sexual content.",
|
|
11168
|
+
violence: "Violence & Gore: Content depicting extreme violence, physical harm, self-harm, suicide encouragement, or weapons manufacturing.",
|
|
11169
|
+
hate: "Hate Speech & Harassment: Content promoting discrimination, hatred, abuse, or degradation based on protected characteristics.",
|
|
11170
|
+
childSafety: "Child Exploitation & Unsafe Content: Zero-tolerance for CSAM, sexualization of minors, or exploitation.",
|
|
11171
|
+
deepfake: "Deepfakes & Impersonation: Non-consensual synthetic impersonation of real individuals, deceptive identity manipulation, or fraudulent endorsements.",
|
|
11172
|
+
infringement: "Copyright & Trademark Infringement: Generating content that directly infringes valid intellectual property rights without authorization."
|
|
10902
11173
|
},
|
|
10903
11174
|
section2: {
|
|
10904
|
-
title: "2.
|
|
10905
|
-
desc: "
|
|
11175
|
+
title: "2. Content Moderation & Screening",
|
|
11176
|
+
desc: "We employ multi-layered automated filtering (including prompt inspection, real-time safety classification API, and keyword interceptors) alongside human review to detect and block non-compliant prompts and generated outputs before or immediately upon generation."
|
|
10906
11177
|
},
|
|
10907
11178
|
section3: {
|
|
10908
|
-
title: "3.
|
|
10909
|
-
desc: "
|
|
11179
|
+
title: "3. Enforcement & Penalties",
|
|
11180
|
+
desc: "Violations of this Policy will result in enforcement actions based on severity:",
|
|
11181
|
+
warning: "1. Warning & Content Removal: Written warning and immediate deletion of non-compliant content.",
|
|
11182
|
+
limit: "2. Feature Limitation: Restricting access to specific models, tools, or generation quotas.",
|
|
11183
|
+
ban: "3. Account Suspension & Termination: Immediate permanent ban for severe violations (such as child safety or malicious deepfakes) without credit refund.",
|
|
11184
|
+
legal: "4. Legal Action: Reporting unlawful content to competent regulatory and law enforcement authorities."
|
|
10910
11185
|
},
|
|
10911
11186
|
section4: {
|
|
10912
|
-
title: "4.
|
|
10913
|
-
desc: "
|
|
11187
|
+
title: "4. User Reporting & Appeals",
|
|
11188
|
+
desc: "If you detect any non-compliant, unsafe, or infringing content generated via our platform, please report it immediately to our Safety Team at s@nolotus.com. We review L1 high-priority reports within 24 hours."
|
|
11189
|
+
},
|
|
11190
|
+
section5: {
|
|
11191
|
+
title: "5. Contact & Safety Team",
|
|
11192
|
+
desc: "Safety & Abuse Contact: s@nolotus.com (Operator: Nolo)."
|
|
10914
11193
|
}
|
|
10915
11194
|
}
|
|
10916
11195
|
}
|
|
10917
11196
|
},
|
|
10918
11197
|
["zh-CN" /* ZH_CN */]: {
|
|
10919
11198
|
translation: {
|
|
10920
|
-
|
|
10921
|
-
title: "\
|
|
10922
|
-
lastUpdated: "\u6700\u540E\u66F4\u65B0\u65E5\u671F\uFF1A2026\
|
|
10923
|
-
intro: "\u6B22\u8FCE\u4F7F\u7528 Nolo\u3002\
|
|
11199
|
+
aup: {
|
|
11200
|
+
title: "AIGC \u53EF\u63A5\u53D7\u4F7F\u7528\u89C4\u8303 (AUP)",
|
|
11201
|
+
lastUpdated: "\u6700\u540E\u66F4\u65B0\u65E5\u671F\uFF1A2026\u5E748\u670824\u65E5",
|
|
11202
|
+
intro: "\u6B22\u8FCE\u4F7F\u7528 Nolo\u3002\u672C\u89C4\u8303\uFF08AUP\uFF09\u65E8\u5728\u660E\u786E\u4F7F\u7528\u672C\u5E73\u53F0 AI \u751F\u6210\u670D\u52A1\u65F6\u7684\u5185\u5BB9\u6807\u51C6\u3001\u8FDD\u89C4\u5206\u7C7B\u4E0E\u5904\u7F6E\u89C4\u5219\uFF0C\u4FDD\u969C\u5065\u5EB7\u3001\u5B89\u5168\u3001\u8D1F\u8D23\u4EFB\u7684 AI \u4F7F\u7528\u73AF\u5883\u3002",
|
|
10924
11203
|
section1: {
|
|
10925
|
-
title: "1. \
|
|
10926
|
-
desc: "\
|
|
11204
|
+
title: "1. \u4E25\u7981\u751F\u6210\u7684\u516D\u5927\u7C7B\u8FDD\u89C4\u5185\u5BB9",
|
|
11205
|
+
desc: "\u7528\u6237\u4E25\u7981\u5229\u7528\u672C\u5E73\u53F0\u751F\u6210\u3001\u8BF1\u5BFC\u751F\u6210\u6216\u4F20\u64AD\u5305\u542B\u4EE5\u4E0B\u5185\u5BB9\u7684\u6587\u672C\u3001\u56FE\u7247\u6216\u591A\u5A92\u4F53\u6750\u6599\uFF1A",
|
|
11206
|
+
nsfw: "\u8272\u60C5\u4E0E\u4F4E\u4FD7 (NSFW)\uFF1A\u660E\u786E\u7684\u6027\u884C\u4E3A\u63CF\u5199\u3001\u8272\u60C5\u4EA4\u6613\u4FE1\u606F\u6216\u975E\u81EA\u613F\u6027\u5185\u5BB9\u3002",
|
|
11207
|
+
violence: "\u66B4\u529B\u4E0E\u8840\u8165\uFF1A\u6781\u7AEF\u66B4\u529B\u81F4\u6B8B\u3001\u4EBA\u8EAB\u4F24\u5BB3\u3001\u9F13\u52B1\u81EA\u6B8B\u81EA\u6740\u3001\u5236\u4F5C\u5371\u9669\u6B66\u5668\u7B49\u5185\u5BB9\u3002",
|
|
11208
|
+
hate: "\u4EC7\u6068\u4E0E\u9A9A\u6270\uFF1A\u57FA\u4E8E\u79CD\u65CF\u3001\u6C11\u65CF\u3001\u5B97\u6559\u3001\u6027\u522B\u3001\u6B8B\u969C\u7B49\u7FA4\u4F53\u7684\u6B67\u89C6\u8A00\u8BBA\u3001\u7F51\u7EDC\u9738\u51CC\u4E0E\u6050\u5413\u3002",
|
|
11209
|
+
childSafety: "\u5371\u5BB3\u672A\u6210\u5E74\u4EBA (CSAM)\uFF1A\u4E25\u5389\u96F6\u5BB9\u5FCD\u6D89\u53CA\u672A\u6210\u5E74\u4EBA\u7684\u4EFB\u4F55\u8272\u60C5\u3001\u5265\u524A\u6216\u8650\u5F85\u5185\u5BB9\u3002",
|
|
11210
|
+
deepfake: "\u6DF1\u5EA6\u4F2A\u9020\u4E0E\u5192\u7528\uFF1A\u672A\u7ECF\u6388\u6743\u4F2A\u9020\u4ED6\u4EBA\u771F\u5B9E\u8096\u50CF/\u58F0\u97F3\u3001\u5192\u5145\u516C\u4F17\u4EBA\u7269\u3001\u4ECE\u4E8B\u6B3A\u8BC8\u6216\u9020\u8C23\u3002",
|
|
11211
|
+
infringement: "\u4FB5\u72AF\u77E5\u8BC6\u4EA7\u6743\uFF1A\u660E\u77E5\u4FB5\u72AF\u4ED6\u4EBA\u8457\u4F5C\u6743\u3001\u5546\u6807\u6743\u6216\u5546\u4E1A\u79D8\u5BC6\u7684\u6076\u610F\u751F\u6210\u4E0E\u4F20\u64AD\u3002"
|
|
10927
11212
|
},
|
|
10928
11213
|
section2: {
|
|
10929
|
-
title: "2. \
|
|
10930
|
-
desc: "\
|
|
11214
|
+
title: "2. \u5E73\u53F0\u5185\u5BB9\u5BA1\u6838\u673A\u5236",
|
|
11215
|
+
desc: "\u5E73\u53F0\u90E8\u7F72\u4E86\u591A\u5C42\u6B21\u81EA\u52A8\u5316\u5B89\u5168\u5BA1\u67E5\u673A\u5236\uFF08\u5305\u62EC\u8F93\u5165 Prompt \u654F\u611F\u8BCD\u626B\u63CF\u3001\u5B9E\u65F6\u5B89\u5168\u6A21\u578B\u5206\u7C7B\u8FC7\u6EE4\u4EE5\u53CA\u8F93\u51FA\u5185\u5BB9\u62E6\u622A\uFF09\uFF0C\u5E76\u8F85\u4EE5\u4EBA\u5DE5\u5DE1\u68C0\u4E0E\u590D\u6838\uFF0C\u786E\u4FDD\u4E0D\u826F\u4FE1\u606F\u5728\u7B2C\u4E00\u65F6\u95F4\u88AB\u963B\u65AD\u3002"
|
|
10931
11216
|
},
|
|
10932
11217
|
section3: {
|
|
10933
|
-
title: "3. \
|
|
10934
|
-
desc: "\
|
|
11218
|
+
title: "3. \u8FDD\u89C4\u5904\u7F6E\u63AA\u65BD",
|
|
11219
|
+
desc: "\u4E00\u65E6\u53D1\u73B0\u6216\u88AB\u4E3E\u62A5\u8FDD\u89C4\uFF0C\u5E73\u53F0\u5C06\u89C6\u60C5\u8282\u8F7B\u91CD\u91C7\u53D6\u4EE5\u4E0B\u5904\u7F6E\u63AA\u65BD\uFF1A",
|
|
11220
|
+
warning: "1. \u8B66\u544A\u4E0E\u4E0B\u67B6\uFF1A\u53D1\u51FA\u6B63\u5F0F\u8B66\u544A\u5E76\u7ACB\u5373\u4E0B\u67B6/\u5220\u9664\u8FDD\u89C4\u5185\u5BB9\u3002",
|
|
11221
|
+
limit: "2. \u6743\u9650\u9650\u5236\uFF1A\u9650\u5236\u7279\u5B9A\u6A21\u578B\u3001\u964D\u4F4E\u8BA1\u7B97\u989D\u5EA6\u6216\u51BB\u7ED3\u90E8\u5206\u529F\u80FD\u3002",
|
|
11222
|
+
ban: "3. \u6C38\u4E45\u5C01\u53F7\uFF1A\u9488\u5BF9\u4E25\u91CD\u8FDD\u89C4\uFF08\u5982\u5371\u5BB3\u672A\u6210\u5E74\u4EBA\u3001\u4E25\u91CD\u6DF1\u5EA6\u4F2A\u9020\uFF09\u7ACB\u5373\u6C38\u4E45\u7EC8\u6B62\u8D26\u53F7\uFF0C\u672A\u6D88\u8017\u79EF\u5206\u4E0D\u4E88\u9000\u8FD8\u3002",
|
|
11223
|
+
legal: "4. \u79FB\u9001\u53F8\u6CD5\uFF1A\u6D89\u5ACC\u8FDD\u6CD5\u72AF\u7F6A\u7684\uFF0C\u4F9D\u6CD5\u4FDD\u5B58\u8BC1\u636E\u5E76\u5411\u76D1\u7BA1\u4E0E\u516C\u5B89\u673A\u5173\u62A5\u544A\u3002"
|
|
10935
11224
|
},
|
|
10936
11225
|
section4: {
|
|
10937
|
-
title: "4. \
|
|
10938
|
-
desc: "\u5982\
|
|
11226
|
+
title: "4. \u7528\u6237\u4E3E\u62A5\u4E0E\u7533\u8BC9\u6E20\u9053",
|
|
11227
|
+
desc: "\u5982\u53D1\u73B0\u4EFB\u4F55\u8FDD\u89C4\u751F\u6210\u5185\u5BB9\u6216\u4FB5\u6743\u884C\u4E3A\uFF0C\u8BF7\u7ACB\u5373\u5411\u5B89\u5168\u5408\u89C4\u56E2\u961F\u4E3E\u62A5\uFF08\u90AE\u7BB1\uFF1As@nolotus.com\uFF09\u3002\u6211\u4EEC\u5C06\u5728 24 \u5C0F\u65F6\u5185\u53D7\u7406\u9AD8\u4F18\u5148\u7EA7\u5B89\u5168\u4E8B\u4EF6\u5E76\u8FDB\u884C\u5904\u7F6E\u3002"
|
|
11228
|
+
},
|
|
11229
|
+
section5: {
|
|
11230
|
+
title: "5. \u5B89\u5168\u8054\u7CFB\u65B9\u5F0F",
|
|
11231
|
+
desc: "\u5B89\u5168\u4E0E\u4E3E\u62A5\u90AE\u7BB1\uFF1As@nolotus.com\uFF08\u8FD0\u8425\u65B9\uFF1ANolo\uFF09\u3002"
|
|
10939
11232
|
}
|
|
10940
11233
|
}
|
|
10941
11234
|
}
|
|
10942
11235
|
},
|
|
10943
11236
|
["zh-Hant" /* ZH_HANT */]: {
|
|
10944
11237
|
translation: {
|
|
10945
|
-
|
|
10946
|
-
title: "\
|
|
10947
|
-
lastUpdated: "\u6700\u5F8C\u66F4\u65B0\u65E5\u671F\uFF1A2026\
|
|
10948
|
-
intro: "\u6B61\u8FCE\u4F7F\u7528 Nolo\u3002\
|
|
11238
|
+
aup: {
|
|
11239
|
+
title: "AIGC \u53EF\u63A5\u53D7\u4F7F\u7528\u898F\u7BC4 (AUP)",
|
|
11240
|
+
lastUpdated: "\u6700\u5F8C\u66F4\u65B0\u65E5\u671F\uFF1A2026\u5E748\u670824\u65E5",
|
|
11241
|
+
intro: "\u6B61\u8FCE\u4F7F\u7528 Nolo\u3002\u672C\u898F\u7BC4\uFF08AUP\uFF09\u65E8\u5728\u660E\u78BA\u4F7F\u7528\u672C\u5E73\u53F0 AI \u751F\u6210\u670D\u52D9\u6642\u7684\u5167\u5BB9\u6A19\u6E96\u3001\u9055\u898F\u5206\u985E\u8207\u8655\u7F6E\u898F\u5247\uFF0C\u4FDD\u969C\u5065\u5EB7\u3001\u5B89\u5168\u3001\u8CA0\u8CAC\u4EFB\u7684 AI \u4F7F\u7528\u74B0\u5883\u3002",
|
|
10949
11242
|
section1: {
|
|
10950
|
-
title: "1. \
|
|
10951
|
-
desc: "\
|
|
11243
|
+
title: "1. \u56B4\u7981\u751F\u6210\u7684\u516D\u5927\u985E\u9055\u898F\u5167\u5BB9",
|
|
11244
|
+
desc: "\u4F7F\u7528\u8005\u56B4\u7981\u5229\u7528\u672C\u5E73\u53F0\u751F\u6210\u3001\u8A98\u5C0E\u751F\u6210\u6216\u50B3\u64AD\u5305\u542B\u4EE5\u4E0B\u5167\u5BB9\u7684\u6587\u5B57\u3001\u5716\u7247\u6216\u591A\u5A92\u9AD4\u6750\u6599\uFF1A",
|
|
11245
|
+
nsfw: "\u8272\u60C5\u8207\u4F4E\u4FD7 (NSFW)\uFF1A\u660E\u78BA\u7684\u6027\u884C\u70BA\u63CF\u5BEB\u3001\u8272\u60C5\u4EA4\u6613\u8CC7\u8A0A\u6216\u975E\u81EA\u9858\u6027\u5167\u5BB9\u3002",
|
|
11246
|
+
violence: "\u66B4\u529B\u8207\u8840\u8165\uFF1A\u6975\u7AEF\u66B4\u529B\u81F4\u6B98\u3001\u4EBA\u8EAB\u50B7\u5BB3\u3001\u9F13\u52F5\u81EA\u6B98\u81EA\u6BBA\u3001\u88FD\u4F5C\u5371\u96AA\u6B66\u5668\u7B49\u5167\u5BB9\u3002",
|
|
11247
|
+
hate: "\u4EC7\u6068\u8207\u9A37\u64FE\uFF1A\u57FA\u65BC\u7A2E\u65CF\u3001\u6C11\u65CF\u3001\u5B97\u6559\u3001\u6027\u5225\u3001\u6B98\u969C\u7B49\u7FA4\u9AD4\u7684\u6B67\u8996\u8A00\u8AD6\u3001\u7DB2\u8DEF\u9738\u51CC\u8207\u6050\u5687\u3002",
|
|
11248
|
+
childSafety: "\u5371\u5BB3\u672A\u6210\u5E74\u4EBA (CSAM)\uFF1A\u56B4\u683C\u96F6\u5BB9\u5FCD\u6D89\u53CA\u672A\u6210\u5E74\u4EBA\u7684\u4EFB\u4F55\u8272\u60C5\u3001\u525D\u524A\u6216\u8650\u5F85\u5167\u5BB9\u3002",
|
|
11249
|
+
deepfake: "\u6DF1\u5EA6\u507D\u9020\u8207\u5192\u7528\uFF1A\u672A\u7D93\u6388\u6B0A\u507D\u9020\u4ED6\u4EBA\u771F\u5BE6\u8096\u50CF/\u8072\u97F3\u3001\u5192\u5145\u516C\u773E\u4EBA\u7269\u3001\u5F9E\u4E8B\u8A50\u6B3A\u6216\u9020\u8B20\u3002",
|
|
11250
|
+
infringement: "\u4FB5\u5BB3\u667A\u6167\u8CA1\u7522\u6B0A\uFF1A\u660E\u77E5\u4FB5\u5BB3\u4ED6\u4EBA\u8457\u4F5C\u6B0A\u3001\u5546\u6A19\u6B0A\u6216\u5546\u696D\u79D8\u5BC6\u7684\u60E1\u610F\u751F\u6210\u8207\u50B3\u64AD\u3002"
|
|
10952
11251
|
},
|
|
10953
11252
|
section2: {
|
|
10954
|
-
title: "2. \
|
|
10955
|
-
desc: "\
|
|
11253
|
+
title: "2. \u5E73\u53F0\u5167\u5BB9\u5BE9\u6838\u6A5F\u5236",
|
|
11254
|
+
desc: "\u5E73\u53F0\u90E8\u7F72\u4E86\u591A\u5C64\u6B21\u81EA\u52D5\u5316\u5B89\u5168\u5BE9\u67E5\u6A5F\u5236\uFF08\u5305\u62EC\u8F38\u5165 Prompt \u654F\u611F\u8A5E\u6383\u63CF\u3001\u5373\u6642\u5B89\u5168\u6A21\u578B\u5206\u985E\u904E\u6FFE\u4EE5\u53CA\u8F38\u51FA\u5167\u5BB9\u6514\u622A\uFF09\uFF0C\u4E26\u8F14\u4EE5\u4EBA\u5DE5\u5DE1\u6AA2\u8207\u8907\u6838\u3002"
|
|
10956
11255
|
},
|
|
10957
11256
|
section3: {
|
|
10958
|
-
title: "3. \
|
|
10959
|
-
desc: "\
|
|
11257
|
+
title: "3. \u9055\u898F\u8655\u7F6E\u63AA\u65BD",
|
|
11258
|
+
desc: "\u5E73\u53F0\u5C07\u8996\u60C5\u7BC0\u8F15\u91CD\u63A1\u53D6\u8B66\u544A\u3001\u4E0B\u67B6\u3001\u9650\u5236\u6B0A\u9650\u3001\u6C38\u4E45\u5C01\u865F\u6216\u79FB\u9001\u57F7\u6CD5\u6A5F\u95DC\u8655\u7F6E\u3002",
|
|
11259
|
+
warning: "1. \u8B66\u544A\u8207\u4E0B\u67B6\uFF1A\u767C\u51FA\u6B63\u5F0F\u8B66\u544A\u4E26\u7ACB\u5373\u522A\u9664\u9055\u898F\u5167\u5BB9\u3002",
|
|
11260
|
+
limit: "2. \u6B0A\u9650\u9650\u5236\uFF1A\u9650\u5236\u7279\u5B9A\u6A21\u578B\u6216\u51CD\u7D50\u90E8\u5206\u529F\u80FD\u3002",
|
|
11261
|
+
ban: "3. \u6C38\u4E45\u5C01\u865F\uFF1A\u56B4\u91CD\u9055\u898F\u7ACB\u5373\u6C38\u4E45\u7D42\u6B62\u5E33\u865F\u3002",
|
|
11262
|
+
legal: "4. \u79FB\u9001\u53F8\u6CD5\uFF1A\u6D89\u5ACC\u9055\u6CD5\u72AF\u7F6A\u7684\u4F9D\u6CD5\u5831\u544A\u57F7\u6CD5\u6A5F\u69CB\u3002"
|
|
10960
11263
|
},
|
|
10961
11264
|
section4: {
|
|
10962
|
-
title: "4. \
|
|
10963
|
-
desc: "\
|
|
11265
|
+
title: "4. \u4F7F\u7528\u8005\u6AA2\u8209\u8207\u7533\u8A34\u7BA1\u9053",
|
|
11266
|
+
desc: "\u6AA2\u8209\u4FE1\u7BB1\uFF1As@nolotus.com\uFF0C\u6211\u5011\u5C07\u5728 24 \u5C0F\u6642\u5167\u53D7\u7406\u4E26\u8655\u7F6E\u3002"
|
|
11267
|
+
},
|
|
11268
|
+
section5: {
|
|
11269
|
+
title: "5. \u5B89\u5168\u806F\u7D61\u65B9\u5F0F",
|
|
11270
|
+
desc: "\u5B89\u5168\u4FE1\u7BB1\uFF1As@nolotus.com\uFF08\u71DF\u904B\u65B9\uFF1ANolo\uFF09\u3002"
|
|
10964
11271
|
}
|
|
10965
11272
|
}
|
|
10966
11273
|
}
|
|
10967
11274
|
},
|
|
10968
11275
|
["ja" /* JA */]: {
|
|
10969
11276
|
translation: {
|
|
10970
|
-
|
|
10971
|
-
title: "\u5229\u7528\u898F\u7D04",
|
|
10972
|
-
lastUpdated: "\u6700\u7D42\u66F4\u65B0\u65E5\uFF1A2026\
|
|
10973
|
-
intro: "Nolo \
|
|
11277
|
+
aup: {
|
|
11278
|
+
title: "AIGC \u5229\u7528\u898F\u7D04 (AUP)",
|
|
11279
|
+
lastUpdated: "\u6700\u7D42\u66F4\u65B0\u65E5\uFF1A2026\u5E748\u670824\u65E5",
|
|
11280
|
+
intro: "Nolo AIGC \u5229\u7528\u898F\u7D04\u3002\u5B89\u5168\u3067\u8CAC\u4EFB\u3042\u308B AI \u5229\u7528\u74B0\u5883\u3092\u7DAD\u6301\u3059\u308B\u305F\u3081\u306E\u7981\u6B62\u4E8B\u9805\u3068\u30E2\u30C7\u30EC\u30FC\u30B7\u30E7\u30F3\u57FA\u6E96\u3002",
|
|
10974
11281
|
section1: {
|
|
10975
|
-
title: "1. \
|
|
10976
|
-
desc: "\
|
|
11282
|
+
title: "1. \u7981\u6B62\u30B3\u30F3\u30C6\u30F3\u30C4",
|
|
11283
|
+
desc: "\u6210\u4EBA\u5411\u3051/NSFW\u3001\u66B4\u529B/\u81EA\u50B7\u3001\u30D8\u30A4\u30C8\u30B9\u30D4\u30FC\u30C1\u3001\u5150\u7AE5\u643E\u53D6\u3001\u30C7\u30A3\u30FC\u30D7\u30D5\u30A7\u30A4\u30AF\u3001\u8457\u4F5C\u6A29\u4FB5\u5BB3\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u751F\u6210\u3092\u53B3\u683C\u306B\u7981\u6B62\u3057\u307E\u3059\u3002",
|
|
11284
|
+
nsfw: "\u6210\u4EBA\u5411\u3051/NSFW \u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u7981\u6B62",
|
|
11285
|
+
violence: "\u66B4\u529B\u30FB\u81EA\u50B7\u884C\u70BA\u306E\u7981\u6B62",
|
|
11286
|
+
hate: "\u5DEE\u5225\u30FB\u30D8\u30A4\u30C8\u30B9\u30D4\u30FC\u30C1\u306E\u7981\u6B62",
|
|
11287
|
+
childSafety: "\u5150\u7AE5\u5B89\u5168\u4FB5\u5BB3\u306E\u7981\u6B62\uFF08\u30BC\u30ED\u30C8\u30EC\u30E9\u30F3\u30B9\uFF09",
|
|
11288
|
+
deepfake: "\u7121\u65AD\u30C7\u30A3\u30FC\u30D7\u30D5\u30A7\u30A4\u30AF\u30FB\u306A\u308A\u3059\u307E\u3057\u306E\u7981\u6B62",
|
|
11289
|
+
infringement: "\u8457\u4F5C\u6A29\u4FB5\u5BB3\u306E\u7981\u6B62"
|
|
10977
11290
|
},
|
|
10978
11291
|
section2: {
|
|
10979
|
-
title: "2. \
|
|
10980
|
-
desc: "\
|
|
11292
|
+
title: "2. \u30B3\u30F3\u30C6\u30F3\u30C4\u30E2\u30C7\u30EC\u30FC\u30B7\u30E7\u30F3",
|
|
11293
|
+
desc: "\u30EA\u30A2\u30EB\u30BF\u30A4\u30E0\u81EA\u52D5\u30D5\u30A3\u30EB\u30BF\u30EA\u30F3\u30B0\u304A\u3088\u3073\u4EBA\u9593\u306B\u3088\u308B\u30EC\u30D3\u30E5\u30FC\u3092\u5B9F\u65BD\u3057\u3066\u3044\u307E\u3059\u3002"
|
|
10981
11294
|
},
|
|
10982
11295
|
section3: {
|
|
10983
|
-
title: "3. \
|
|
10984
|
-
desc: "\
|
|
11296
|
+
title: "3. \u9055\u53CD\u6642\u306E\u63AA\u7F6E",
|
|
11297
|
+
desc: "\u8B66\u544A\u3001\u30B3\u30F3\u30C6\u30F3\u30C4\u524A\u9664\u3001\u6A5F\u80FD\u5236\u9650\u3001\u30A2\u30AB\u30A6\u30F3\u30C8\u6C38\u4E45\u505C\u6B62\u3001\u6CD5\u7684\u6A5F\u95A2\u3078\u306E\u5831\u544A\u3092\u884C\u3044\u307E\u3059\u3002",
|
|
11298
|
+
warning: "1. \u8B66\u544A\u3068\u30B3\u30F3\u30C6\u30F3\u30C4\u524A\u9664",
|
|
11299
|
+
limit: "2. \u30A2\u30AF\u30BB\u30B9\u5236\u9650",
|
|
11300
|
+
ban: "3. \u30A2\u30AB\u30A6\u30F3\u30C8\u6C38\u4E45\u505C\u6B62",
|
|
11301
|
+
legal: "4. \u6CD5\u7684\u6A5F\u95A2\u3078\u306E\u5831\u544A"
|
|
10985
11302
|
},
|
|
10986
11303
|
section4: {
|
|
10987
|
-
title: "4. \
|
|
10988
|
-
desc: "\
|
|
11304
|
+
title: "4. \u901A\u5831\u7A93\u53E3",
|
|
11305
|
+
desc: "\u9055\u53CD\u30B3\u30F3\u30C6\u30F3\u30C4\u306E\u901A\u5831\u306F s@nolotus.com \u307E\u3067\u3054\u9023\u7D61\u304F\u3060\u3055\u3044\u3002"
|
|
11306
|
+
},
|
|
11307
|
+
section5: {
|
|
11308
|
+
title: "5. \u304A\u554F\u3044\u5408\u308F\u305B",
|
|
11309
|
+
desc: "\u5B89\u5168\u7A93\u53E3\uFF1As@nolotus.com (\u904B\u55B6\uFF1ANolo)"
|
|
10989
11310
|
}
|
|
10990
11311
|
}
|
|
10991
11312
|
}
|
|
10992
11313
|
}
|
|
10993
11314
|
};
|
|
10994
11315
|
|
|
11316
|
+
// packages/app/i18n/translations/footer.locale.ts
|
|
11317
|
+
var footer_locale_default = {
|
|
11318
|
+
["en" /* EN */]: {
|
|
11319
|
+
translation: {
|
|
11320
|
+
footer: {
|
|
11321
|
+
legal: "Legal",
|
|
11322
|
+
about: "About us",
|
|
11323
|
+
contact: "Contact us",
|
|
11324
|
+
rights: "All rights reserved."
|
|
11325
|
+
}
|
|
11326
|
+
}
|
|
11327
|
+
},
|
|
11328
|
+
["zh-CN" /* ZH_CN */]: {
|
|
11329
|
+
translation: {
|
|
11330
|
+
footer: {
|
|
11331
|
+
legal: "\u6CD5\u5F8B\u6761\u6B3E",
|
|
11332
|
+
about: "\u5173\u4E8E\u6211\u4EEC",
|
|
11333
|
+
contact: "\u8054\u7CFB\u6211\u4EEC",
|
|
11334
|
+
rights: "\u4FDD\u7559\u6240\u6709\u6743\u5229\u3002"
|
|
11335
|
+
}
|
|
11336
|
+
}
|
|
11337
|
+
},
|
|
11338
|
+
["zh-Hant" /* ZH_HANT */]: {
|
|
11339
|
+
translation: {
|
|
11340
|
+
footer: {
|
|
11341
|
+
legal: "\u6CD5\u5F8B\u689D\u6B3E",
|
|
11342
|
+
about: "\u95DC\u65BC\u6211\u5011",
|
|
11343
|
+
contact: "\u806F\u7D61\u6211\u5011",
|
|
11344
|
+
rights: "\u4FDD\u7559\u6240\u6709\u6B0A\u5229\u3002"
|
|
11345
|
+
}
|
|
11346
|
+
}
|
|
11347
|
+
},
|
|
11348
|
+
["ja" /* JA */]: {
|
|
11349
|
+
translation: {
|
|
11350
|
+
footer: {
|
|
11351
|
+
legal: "\u6CD5\u7684\u4E8B\u9805",
|
|
11352
|
+
about: "\u4F1A\u793E\u6982\u8981",
|
|
11353
|
+
contact: "\u304A\u554F\u3044\u5408\u308F\u305B",
|
|
11354
|
+
rights: "All rights reserved."
|
|
11355
|
+
}
|
|
11356
|
+
}
|
|
11357
|
+
}
|
|
11358
|
+
};
|
|
11359
|
+
|
|
10995
11360
|
// packages/app/i18n/translations/localFirst.locale.ts
|
|
10996
11361
|
var localFirst_locale_default = {
|
|
10997
11362
|
["en" /* EN */]: {
|
|
@@ -11304,8 +11669,11 @@ var resources = {
|
|
|
11304
11669
|
...error_locale_default["en" /* EN */].translation,
|
|
11305
11670
|
...appBuilder_locale_default["en" /* EN */].translation,
|
|
11306
11671
|
...pricing_locale_default["en" /* EN */].translation,
|
|
11672
|
+
...recharge_locale_default["en" /* EN */].translation,
|
|
11307
11673
|
...privacy_locale_default["en" /* EN */].translation,
|
|
11308
11674
|
...terms_locale_default["en" /* EN */].translation,
|
|
11675
|
+
...aup_locale_default["en" /* EN */].translation,
|
|
11676
|
+
...footer_locale_default["en" /* EN */].translation,
|
|
11309
11677
|
...localFirst_locale_default["en" /* EN */].translation,
|
|
11310
11678
|
seo: seo_locale_default["en" /* EN */]
|
|
11311
11679
|
},
|
|
@@ -11319,8 +11687,11 @@ var resources = {
|
|
|
11319
11687
|
...error_locale_default["zh-CN" /* ZH_CN */].translation,
|
|
11320
11688
|
...appBuilder_locale_default["zh-CN" /* ZH_CN */].translation,
|
|
11321
11689
|
...pricing_locale_default["zh-CN" /* ZH_CN */].translation,
|
|
11690
|
+
...recharge_locale_default["zh-CN" /* ZH_CN */].translation,
|
|
11322
11691
|
...privacy_locale_default["zh-CN" /* ZH_CN */].translation,
|
|
11323
11692
|
...terms_locale_default["zh-CN" /* ZH_CN */].translation,
|
|
11693
|
+
...aup_locale_default["zh-CN" /* ZH_CN */].translation,
|
|
11694
|
+
...footer_locale_default["zh-CN" /* ZH_CN */].translation,
|
|
11324
11695
|
...localFirst_locale_default["zh-CN" /* ZH_CN */].translation,
|
|
11325
11696
|
seo: seo_locale_default["zh-CN" /* ZH_CN */]
|
|
11326
11697
|
},
|
|
@@ -11334,8 +11705,11 @@ var resources = {
|
|
|
11334
11705
|
...error_locale_default["zh-Hant" /* ZH_HANT */].translation,
|
|
11335
11706
|
...appBuilder_locale_default["zh-Hant" /* ZH_HANT */].translation,
|
|
11336
11707
|
...pricing_locale_default["zh-Hant" /* ZH_HANT */].translation,
|
|
11708
|
+
...recharge_locale_default["zh-Hant" /* ZH_HANT */].translation,
|
|
11337
11709
|
...privacy_locale_default["zh-Hant" /* ZH_HANT */].translation,
|
|
11338
11710
|
...terms_locale_default["zh-Hant" /* ZH_HANT */].translation,
|
|
11711
|
+
...aup_locale_default["zh-Hant" /* ZH_HANT */].translation,
|
|
11712
|
+
...footer_locale_default["zh-Hant" /* ZH_HANT */].translation,
|
|
11339
11713
|
...localFirst_locale_default["zh-Hant" /* ZH_HANT */].translation,
|
|
11340
11714
|
seo: seo_locale_default["zh-Hant" /* ZH_HANT */]
|
|
11341
11715
|
},
|
|
@@ -11349,14 +11723,35 @@ var resources = {
|
|
|
11349
11723
|
...error_locale_default["ja" /* JA */].translation,
|
|
11350
11724
|
...appBuilder_locale_default["ja" /* JA */].translation,
|
|
11351
11725
|
...pricing_locale_default["ja" /* JA */].translation,
|
|
11726
|
+
...recharge_locale_default["ja" /* JA */].translation,
|
|
11352
11727
|
...privacy_locale_default["ja" /* JA */].translation,
|
|
11353
11728
|
...terms_locale_default["ja" /* JA */].translation,
|
|
11729
|
+
...aup_locale_default["ja" /* JA */].translation,
|
|
11730
|
+
...footer_locale_default["ja" /* JA */].translation,
|
|
11354
11731
|
...localFirst_locale_default["ja" /* JA */].translation,
|
|
11355
11732
|
seo: seo_locale_default["ja" /* JA */]
|
|
11356
11733
|
},
|
|
11357
11734
|
space: space_locale_default["ja" /* JA */].translation,
|
|
11358
11735
|
ai: ai_locale_default["ja" /* JA */].translation,
|
|
11359
11736
|
chat: chat_locale_default["ja" /* JA */].translation
|
|
11737
|
+
},
|
|
11738
|
+
["ko" /* KO */]: {
|
|
11739
|
+
common: {
|
|
11740
|
+
...interface_locale_default["ko" /* KO */]?.translation ?? interface_locale_default["en" /* EN */].translation,
|
|
11741
|
+
...error_locale_default["ko" /* KO */]?.translation ?? error_locale_default["en" /* EN */].translation,
|
|
11742
|
+
...appBuilder_locale_default["ko" /* KO */]?.translation ?? appBuilder_locale_default["en" /* EN */].translation,
|
|
11743
|
+
...pricing_locale_default["ko" /* KO */]?.translation ?? pricing_locale_default["en" /* EN */].translation,
|
|
11744
|
+
...recharge_locale_default["ko" /* KO */]?.translation ?? recharge_locale_default["en" /* EN */].translation,
|
|
11745
|
+
...privacy_locale_default["ko" /* KO */]?.translation ?? privacy_locale_default["en" /* EN */].translation,
|
|
11746
|
+
...terms_locale_default["ko" /* KO */]?.translation ?? terms_locale_default["en" /* EN */].translation,
|
|
11747
|
+
...aup_locale_default["ko" /* KO */]?.translation ?? aup_locale_default["en" /* EN */].translation,
|
|
11748
|
+
...footer_locale_default["ko" /* KO */]?.translation ?? footer_locale_default["en" /* EN */].translation,
|
|
11749
|
+
...localFirst_locale_default["ko" /* KO */]?.translation ?? localFirst_locale_default["en" /* EN */].translation,
|
|
11750
|
+
seo: seo_locale_default["ko" /* KO */]
|
|
11751
|
+
},
|
|
11752
|
+
space: space_locale_default["ko" /* KO */]?.translation ?? space_locale_default["en" /* EN */].translation,
|
|
11753
|
+
ai: ai_locale_default["ko" /* KO */]?.translation ?? ai_locale_default["en" /* EN */].translation,
|
|
11754
|
+
chat: chat_locale_default["ko" /* KO */]?.translation ?? chat_locale_default["en" /* EN */].translation
|
|
11360
11755
|
}
|
|
11361
11756
|
};
|
|
11362
11757
|
var i18nConfig = {
|
|
@@ -11383,7 +11778,7 @@ var HOSTED_EXEC_RUNTIME_TOOL_POLICY = {
|
|
|
11383
11778
|
workspace: { mode: "lease" }
|
|
11384
11779
|
};
|
|
11385
11780
|
var findModelConfig = async (modelName, provider) => {
|
|
11386
|
-
const { ALL_MODELS } = await import("./models-
|
|
11781
|
+
const { ALL_MODELS } = await import("./models-L7S2EKPM.js");
|
|
11387
11782
|
const name = toTrimmedString(modelName);
|
|
11388
11783
|
const prov = toTrimmedString(provider ?? "");
|
|
11389
11784
|
if (!name) return null;
|
|
@@ -11624,7 +12019,7 @@ var buildFormDataFromArgs = async (args) => {
|
|
|
11624
12019
|
const trimmedModel = toTrimmedString(model);
|
|
11625
12020
|
const trimmedProvider = toTrimmedString(provider);
|
|
11626
12021
|
const modelConfig = await findModelConfig(trimmedModel, trimmedProvider);
|
|
11627
|
-
const { getModelPricing } = await import("./getPricing-
|
|
12022
|
+
const { getModelPricing } = await import("./getPricing-P3E2WRIH.js");
|
|
11628
12023
|
const normalizedTools = tools ?? [];
|
|
11629
12024
|
const resolvedRuntimeToolPolicy = runtimeToolPolicy ?? (normalizedTools.includes("execShell") ? HOSTED_EXEC_RUNTIME_TOOL_POLICY : void 0);
|
|
11630
12025
|
const formData = {
|
|
@@ -14688,7 +15083,8 @@ var readDialogFunctionSchema = {
|
|
|
14688
15083
|
name: "readDialog",
|
|
14689
15084
|
description: [
|
|
14690
15085
|
"Read one persisted Nolo dialog, including metadata and recent messages.",
|
|
14691
|
-
"Prefer the full dialog dbKey (dialog-<userId>-<id>) or a dialog URL; a bare id only resolves for the currently logged-in user and cannot reliably read other users' or cross-server dialogs. Use listDialogs first when the target dialog is unclear."
|
|
15086
|
+
"Prefer the full dialog dbKey (dialog-<userId>-<id>) or a dialog URL; a bare id only resolves for the currently logged-in user and cannot reliably read other users' or cross-server dialogs. Use listDialogs first when the target dialog is unclear.",
|
|
15087
|
+
"If a read fails, first confirm the dbKey via listDialogs; the returned meta includes runtime checkpoint/status info for agent-run dialogs; a local run's dialog lives in the local environment/local server and must be read there."
|
|
14692
15088
|
].join("\n"),
|
|
14693
15089
|
parameters: {
|
|
14694
15090
|
type: "object",
|
|
@@ -14907,7 +15303,7 @@ async function deleteDialogsFunc(args, thunkApi) {
|
|
|
14907
15303
|
const deletedDialogIds = [];
|
|
14908
15304
|
const deletedDialogKeys = [];
|
|
14909
15305
|
const failures = [];
|
|
14910
|
-
const { deleteDialog } = await import("./dialogSlice-
|
|
15306
|
+
const { deleteDialog } = await import("./dialogSlice-6BINHWQT.js");
|
|
14911
15307
|
for (const target of targets) {
|
|
14912
15308
|
try {
|
|
14913
15309
|
await thunkApi.dispatch(deleteDialog(target.dbKey)).unwrap();
|
|
@@ -15182,7 +15578,7 @@ var readSkillDocFunctionSchema = {
|
|
|
15182
15578
|
}
|
|
15183
15579
|
};
|
|
15184
15580
|
async function readSkillDocFunc(args, thunkApi) {
|
|
15185
|
-
const { buildReadDocResult } = await import("./readDocTool-
|
|
15581
|
+
const { buildReadDocResult } = await import("./readDocTool-Y7AB365O.js");
|
|
15186
15582
|
const id = args?.id ?? args?.doc ?? args?.docKey ?? args?.pageKey;
|
|
15187
15583
|
if (typeof id !== "string" || !id.trim()) {
|
|
15188
15584
|
throw new Error("readSkillDoc requires id or doc.");
|
|
@@ -20637,7 +21033,7 @@ var selectUserIdFromState = (state) => typeof state?.auth?.currentUser?.userId =
|
|
|
20637
21033
|
var selectCurrentServerFromState = (state) => typeof state?.settings?.currentServer === "string" ? state.settings.currentServer : null;
|
|
20638
21034
|
async function addImageContentToSpace(input) {
|
|
20639
21035
|
const injectedAddContentAction = input.thunkApi?.extra?.addContentAction;
|
|
20640
|
-
const addContentAction2 = typeof injectedAddContentAction === "function" ? injectedAddContentAction : (await import("./addContentAction-
|
|
21036
|
+
const addContentAction2 = typeof injectedAddContentAction === "function" ? injectedAddContentAction : (await import("./addContentAction-KQ44UT2U.js")).addContentAction;
|
|
20641
21037
|
await addContentAction2(
|
|
20642
21038
|
{
|
|
20643
21039
|
spaceId: input.spaceId,
|
|
@@ -21394,9 +21790,8 @@ var rememberMemoryFunctionSchema = {
|
|
|
21394
21790
|
" - \u5F53\u524D\u4EFB\u52A1\u7684\u4E34\u65F6\u8FDB\u5EA6 \u2192 \u4E0D\u8981\u8C03\u7528\uFF0C\u8D70\u5BF9\u8BDD\u4E0A\u4E0B\u6587",
|
|
21395
21791
|
"\u5199\u6210\u4E00\u53E5\u7B80\u6D01\u3001\u672A\u6765\u4ECD\u53EF\u7406\u89E3\u7684\u8BDD\u3002\u9ED8\u8BA4\u9759\u9ED8\u6267\u884C\uFF0C\u4E0D\u7528\u5411\u7528\u6237\u6C47\u62A5\u5DF2\u8BB0\u4F4F\u3002",
|
|
21396
21792
|
"",
|
|
21397
|
-
"\u3010\u5173\u952E\u89C4\u5219\u3011\u8BB0\u5FC6\
|
|
21398
|
-
"\
|
|
21399
|
-
"\u9519\u8BEF\u7684\u8BB0\u5FC6\u5E94\u901A\u8FC7 rememberMemory \u4FEE\u6B63\u5E76\u964D\u6743\uFF08\u964D\u4F4E\u7F6E\u4FE1\u5EA6\uFF09\uFF0C\u800C\u4E0D\u662F\u5220\u9664\u3002",
|
|
21793
|
+
"\u3010\u5173\u952E\u89C4\u5219\u3011\u65E5\u5E38\u9519\u8BEF\u8BB0\u5FC6\u4F18\u5148\u901A\u8FC7 rememberMemory \u4FEE\u6B63\u5E76\u964D\u6743\uFF08\u964D\u4F4E\u7F6E\u4FE1\u5EA6\uFF09\u6216\u5F52\u6863\uFF0C\u4FDD\u7559\u6863\u6848\u4E0E\u89E3\u91CA\u94FE\u3002",
|
|
21794
|
+
"\u3010\u5F3A\u5236\u5220\u9664\u4F8B\u5916\u3011\u4EC5\u5728\u7528\u6237\u660E\u786E/\u5F3A\u5236\u8981\u6C42\u5220\u9664\u4E14\u5728\u7528\u6237\u81EA\u8EAB\u6743\u9650\u8303\u56F4\u5185\u65F6\uFF0C\u624D\u5141\u8BB8\u6267\u884C\u7269\u7406\u5220\u9664\uFF08\u8C03\u7528 deleteMemory\uFF0C\u4E25\u683C\u9650\u5236\u4E8E\u5F53\u524D\u7528\u6237\u62E5\u6709\u7684\u8BB0\u5FC6\uFF09\u3002",
|
|
21400
21795
|
"",
|
|
21401
21796
|
"\u3010\u7F6E\u4FE1\u5EA6\u6765\u6E90\u3011\u6BCF\u6761\u8BB0\u5FC6\u5FC5\u987B\u6807\u6CE8\u6765\u6E90\uFF08\u4F9B\u53EC\u56DE\u65F6\u5224\u65AD\u53EF\u4FE1\u5EA6\uFF09\uFF1A",
|
|
21402
21797
|
" - verified\uFF1A\u5DE5\u5177/\u547D\u4EE4\u5B9E\u6D4B\u9A8C\u8BC1\u8FC7\uFF08\u9AD8\u7F6E\u4FE1\u5EA6\uFF09",
|
|
@@ -21454,6 +21849,116 @@ async function rememberMemoryFunc(args, thunkApi) {
|
|
|
21454
21849
|
};
|
|
21455
21850
|
}
|
|
21456
21851
|
|
|
21852
|
+
// packages/ai/tools/deleteMemoryToolSchema.ts
|
|
21853
|
+
var deleteMemoryFunctionSchema = {
|
|
21854
|
+
name: "deleteMemory",
|
|
21855
|
+
description: [
|
|
21856
|
+
"\u5728\u7528\u6237\u660E\u786E/\u5F3A\u5236\u8981\u6C42\u4E0B\uFF0C\u5220\u9664\u7528\u6237\u81EA\u8EAB\u6743\u9650\u8303\u56F4\u5185\u7684\u957F\u671F\u8BB0\u5FC6\u3002",
|
|
21857
|
+
"\u3010\u4E24\u9636\u6BB5\u786E\u8BA4\u4E0E\u5B89\u5168\u9632\u62A4\u3011\u7269\u7406\u5220\u9664\u662F\u4E0D\u53EF\u9006\u64CD\u4F5C\uFF1A",
|
|
21858
|
+
" - \u521D\u6B21\u8C03\u7528\uFF08\u672A\u786E\u8BA4\uFF0Cconfirmed: false\uFF09\u4F1A\u8FDB\u884C Dry-Run \u9884\u68C0\u5E76\u8FD4\u56DE\u5339\u914D\u5230\u7684\u8BB0\u5FC6\u603B\u6570\u4E0E\u9884\u89C8\u5185\u5BB9\uFF1B",
|
|
21859
|
+
" - \u6A21\u578B\u5FC5\u987B\u5411\u7528\u6237\u6C47\u62A5\u9884\u68C0\u7ED3\u679C\uFF0C\u5728\u7528\u6237\u770B\u5230\u5E76\u660E\u786E\u786E\u8BA4\u540E\uFF0C\u4F20\u5165 confirmed: true \u624D\u4F1A\u771F\u6B63\u6267\u884C\u7269\u7406\u5220\u9664\u3002",
|
|
21860
|
+
"\u3010\u6743\u9650\u8FB9\u754C\u3011\u4E25\u683C\u4EC5\u9650\u4E8E\u5F53\u524D\u7528\u6237\u62E5\u6709\u7684\u8BB0\u5FC6\uFF08ownerType: user, ownerId: \u5F53\u524D\u7528\u6237\uFF09\uFF0C\u4E25\u7981\u8D8A\u6743\u5220\u9664\u4ED6\u4EBA\u6216\u7CFB\u7EDF\u6570\u636E\u3002",
|
|
21861
|
+
"\u3010\u7981\u6B62\u5168\u91CF\u6E05\u7A7A\u3011\u5FC5\u987B\u63D0\u4F9B\u81F3\u5C11\u4E00\u9879\u8FC7\u6EE4\u6761\u4EF6\uFF08ids\u3001contentKeyword\u3001tags \u7B49\uFF09\uFF0C\u7981\u6B62\u65E0\u6761\u4EF6\u5168\u91CF\u6E05\u7A7A\u3002",
|
|
21862
|
+
"\u652F\u6301\u6309 memoryIds (ids)\u3001\u5185\u5BB9\u5173\u952E\u8BCD/\u5B50\u4E32 (contentKeyword)\u3001\u79CD\u7C7B (kinds) \u6216\u6807\u7B7E (tags) \u8FDB\u884C\u5B9A\u5411\u5220\u9664\u3002"
|
|
21863
|
+
].join("\n"),
|
|
21864
|
+
parameters: {
|
|
21865
|
+
type: "object",
|
|
21866
|
+
properties: {
|
|
21867
|
+
ids: {
|
|
21868
|
+
type: "array",
|
|
21869
|
+
items: { type: "string" },
|
|
21870
|
+
description: "\u53EF\u9009\u3002\u8981\u7CBE\u786E\u5220\u9664\u7684\u8BB0\u5FC6 ID \u5217\u8868\u3002"
|
|
21871
|
+
},
|
|
21872
|
+
contentKeyword: {
|
|
21873
|
+
type: "string",
|
|
21874
|
+
description: "\u53EF\u9009\u3002\u6309\u5185\u5BB9\u5173\u952E\u8BCD/\u5B50\u4E32\u5339\u914D\u8981\u5220\u9664\u7684\u8BB0\u5FC6\u5185\u5BB9\u3002"
|
|
21875
|
+
},
|
|
21876
|
+
kinds: {
|
|
21877
|
+
type: "array",
|
|
21878
|
+
items: {
|
|
21879
|
+
type: "string",
|
|
21880
|
+
enum: ["episodic", "semantic", "procedural"]
|
|
21881
|
+
},
|
|
21882
|
+
description: "\u53EF\u9009\u3002\u8FC7\u6EE4\u8981\u5220\u9664\u7684\u8BB0\u5FC6\u7C7B\u578B\u3002"
|
|
21883
|
+
},
|
|
21884
|
+
tags: {
|
|
21885
|
+
type: "array",
|
|
21886
|
+
items: { type: "string" },
|
|
21887
|
+
description: "\u53EF\u9009\u3002\u8FC7\u6EE4\u5305\u542B\u6307\u5B9A\u6807\u7B7E\u7684\u8BB0\u5FC6\u3002"
|
|
21888
|
+
},
|
|
21889
|
+
confirmed: {
|
|
21890
|
+
type: "boolean",
|
|
21891
|
+
description: "\u53EF\u9009\u3002\u4E24\u9636\u6BB5\u786E\u8BA4\u6807\u5FD7\u3002\u521D\u6B21\u8C03\u7528\u65F6\u4E3A false\uFF08\u4EC5\u83B7\u53D6\u9884\u89C8\uFF09\uFF1B\u53EA\u6709\u5728\u7528\u6237\u660E\u786E\u786E\u8BA4\u6267\u884C\u5220\u9664\u540E\u624D\u4F20\u5165 true\u3002",
|
|
21892
|
+
default: false
|
|
21893
|
+
},
|
|
21894
|
+
deletionToken: {
|
|
21895
|
+
type: "string",
|
|
21896
|
+
description: "\u53EF\u9009\u3002\u9884\u68C0\u9636\u6BB5\u8FD4\u56DE\u7684\u9632\u7BE1\u6539 deletionToken\uFF0C\u786E\u8BA4\u9636\u6BB5\u53EF\u5E26\u56DE\u4EE5\u4FDD\u8BC1\u64CD\u4F5C\u539F\u5B50\u6027\u3002"
|
|
21897
|
+
},
|
|
21898
|
+
reason: {
|
|
21899
|
+
type: "string",
|
|
21900
|
+
description: "\u5FC5\u586B\u3002\u7528\u6237\u660E\u786E\u63D0\u51FA\u5220\u9664\u7684\u539F\u56E0\u6216\u6307\u4EE4\u63CF\u8FF0\u3002"
|
|
21901
|
+
}
|
|
21902
|
+
},
|
|
21903
|
+
required: ["reason"]
|
|
21904
|
+
}
|
|
21905
|
+
};
|
|
21906
|
+
|
|
21907
|
+
// packages/ai/tools/deleteMemoryTool.ts
|
|
21908
|
+
async function deleteMemoryFunc(args, thunkApi) {
|
|
21909
|
+
const reason = String(args.reason ?? "").trim();
|
|
21910
|
+
if (!reason && !args.ids?.length && !args.contentKeyword && !args.tags?.length) {
|
|
21911
|
+
throw new Error("deleteMemory \u9700\u8981\u63D0\u4F9B\u660E\u786E\u7684\u5220\u9664\u539F\u56E0\u4E0E\u81F3\u5C11\u4E00\u9879\u8FC7\u6EE4\u6761\u4EF6\uFF08ids\u3001contentKeyword \u6216 tags\uFF09\u3002");
|
|
21912
|
+
}
|
|
21913
|
+
const isConfirmed = args.confirmed === true;
|
|
21914
|
+
if (isConfirmed && !args.deletionToken?.trim()) {
|
|
21915
|
+
throw new Error(
|
|
21916
|
+
"deleteMemory \u5728\u786E\u8BA4\u5220\u9664\u9636\u6BB5\uFF08confirmed: true\uFF09\u5FC5\u987B\u63D0\u4F9B\u9884\u68C0\u9636\u6BB5\u83B7\u53D6\u7684 deletionToken\u3002\u8BF7\u5148\u8C03\u7528\u672C\u5DE5\u5177\u8FDB\u884C\u9884\u68C0\u9884\u89C8\u3002"
|
|
21917
|
+
);
|
|
21918
|
+
}
|
|
21919
|
+
const result = await callToolApi(
|
|
21920
|
+
thunkApi,
|
|
21921
|
+
"/api/memory/delete",
|
|
21922
|
+
{
|
|
21923
|
+
ids: args.ids,
|
|
21924
|
+
contentSubstring: args.contentKeyword,
|
|
21925
|
+
kinds: args.kinds,
|
|
21926
|
+
tags: args.tags,
|
|
21927
|
+
dryRun: !isConfirmed,
|
|
21928
|
+
deletionToken: args.deletionToken,
|
|
21929
|
+
reason
|
|
21930
|
+
},
|
|
21931
|
+
{ withAuth: true }
|
|
21932
|
+
);
|
|
21933
|
+
if (!result || result.success === false) {
|
|
21934
|
+
throw new Error("\u5220\u9664\u957F\u671F\u8BB0\u5FC6\u8BF7\u6C42\u672A\u6210\u529F\u5B8C\u6210\u3002");
|
|
21935
|
+
}
|
|
21936
|
+
if (!isConfirmed) {
|
|
21937
|
+
const matched = result.matchedCount ?? 0;
|
|
21938
|
+
if (matched === 0) {
|
|
21939
|
+
return {
|
|
21940
|
+
rawData: result,
|
|
21941
|
+
displayData: "\u672A\u627E\u5230\u5339\u914D\u7684\u8BB0\u5FC6\uFF0C\u65E0\u9700\u5220\u9664\u3002"
|
|
21942
|
+
};
|
|
21943
|
+
}
|
|
21944
|
+
const previewList = (result.preview ?? []).map((item, idx) => `${idx + 1}. [${item.kind}] ${item.content}`).join("\n");
|
|
21945
|
+
return {
|
|
21946
|
+
rawData: result,
|
|
21947
|
+
displayData: [
|
|
21948
|
+
`\u3010\u5F85\u7528\u6237\u786E\u8BA4\u3011\u5339\u914D\u5230 ${matched} \u6761\u7B26\u5408\u6761\u4EF6\u7684\u8BB0\u5FC6\uFF0C\u5373\u5C06\u7269\u7406\u5220\u9664\u3002`,
|
|
21949
|
+
previewList ? `\u9884\u89C8\u524D ${result.preview?.length} \u6761\uFF1A
|
|
21950
|
+
${previewList}` : "",
|
|
21951
|
+
`\u8FD9\u662F\u4E0D\u53EF\u9006\u64CD\u4F5C\u3002\u8BF7\u5411\u7528\u6237\u5C55\u793A\u4E0A\u8FF0\u9884\u89C8\u5E76\u83B7\u5F97\u660E\u786E\u786E\u8BA4\u3002\u786E\u8BA4\u540E\uFF0C\u8BF7\u4F20\u5165 confirmed: true${result.deletionToken ? ` \u4E0E deletionToken: "${result.deletionToken}"` : ""} \u518D\u6B21\u8C03\u7528\u672C\u5DE5\u5177\u3002`
|
|
21952
|
+
].filter(Boolean).join("\n\n")
|
|
21953
|
+
};
|
|
21954
|
+
}
|
|
21955
|
+
const count = result.deletedCount ?? 0;
|
|
21956
|
+
return {
|
|
21957
|
+
rawData: result,
|
|
21958
|
+
displayData: `\u5DF2\u5728\u7528\u6237\u6743\u9650\u8303\u56F4\u5185\u786E\u8BA4\u5E76\u7269\u7406\u5220\u9664 ${count} \u6761\u8BB0\u5FC6\u3002`
|
|
21959
|
+
};
|
|
21960
|
+
}
|
|
21961
|
+
|
|
21457
21962
|
// packages/ai/tools/queryMemoryToolSchema.ts
|
|
21458
21963
|
var queryMemoryFunctionSchema = {
|
|
21459
21964
|
name: "queryMemory",
|
|
@@ -22783,19 +23288,32 @@ ${text.slice(-SUMMARY_TAIL_CHARS)}`;
|
|
|
22783
23288
|
// packages/ai/tools/agent/controlAgentRunTool.ts
|
|
22784
23289
|
var controlAgentRunFunctionSchema = {
|
|
22785
23290
|
name: "controlAgentRun",
|
|
22786
|
-
description: "\u89C2\u5BDF\u548C\u63A7\u5236\u540E\u53F0 agent run\u3002\u4E00\u4E2A\u5DE5\u5177\
|
|
23291
|
+
description: "\u89C2\u5BDF\u548C\u63A7\u5236\u540E\u53F0 agent run\u3002\u4E00\u4E2A\u5DE5\u5177\u4E94\u4E2A\u6838\u5FC3 action\uFF1Alist\uFF08\u5217\u51FA run\uFF0C\u652F\u6301\u6309\u6279\u6B21/\u72B6\u6001\u8FC7\u6EE4\u4E0E\u5206\u9875\uFF09\u3001status\uFF08\u67E5\u5355\u6761 + \u53EF\u9009\u65E5\u5FD7\uFF09\u3001stop\uFF08\u53D6\u6D88 run\uFF09\u3001append\uFF08\u5411\u8FD0\u884C\u4E2D\u6216\u7EC8\u6001\u4EFB\u52A1\u8FFD\u52A0\u65B0\u6307\u4EE4/\u7EA0\u504F\uFF09\u3001wait\uFF08\u540C\u6B65\u7B49\u5F85 run \u5230\u8FBE\u7EC8\u6001\u5E76\u8FD4\u56DE\u7ED3\u679C\uFF0CUnix wait \u8BED\u4E49\uFF1B\u53E6\u6709 todo \u67E5\u8BE2 runtime todo\uFF09\u3002\u76F8\u5F53\u4E8E Unix \u7684 wait + signal + /proc + write\u3002\u7528 startAgentRun \u62FF\u5230 runId \u540E\uFF0C\u7528\u672C\u5DE5\u5177\u8DDF\u8FDB\u5EA6\u3001\u7B49\u7ED3\u679C\u3001\u8FFD\u52A0\u6307\u4EE4\u6216\u53EB\u505C\u3002\u5F02\u6B65\u6D3E\u53D1\u540E\u7981\u6B62\u8F6E\u8BE2\u67E5\u8BE2\u2014\u2014\u4E0D\u8981\u53CD\u590D\u8C03 status \u7B49\u7ED3\u679C\uFF0C\u7528\u6237\u754C\u9762\u5DF2\u5728\u5B9E\u65F6\u663E\u793A\u6BCF\u6761 run \u7684\u72B6\u6001\uFF1B\u8981\u540C\u6B65\u7ED3\u679C\u76F4\u63A5\u7528 startAgentRun(wait:true) \u6216\u672C\u5DE5\u5177 wait action\u3002list \u9ED8\u8BA4\u53EA\u8FD4\u56DE\u6700\u8FD1 20 \u6761\uFF0C\u907F\u514D\u5168\u91CF\u51B2\u7206\u4E0A\u4E0B\u6587\uFF1B\u7528 status/batchId/limit/offset \u53D6\u6240\u9700\u5206\u9875\u3002\u6CE8\u610F\uFF1A\u7528\u6237\u754C\u9762\u5DF2\u7ECF\u5728\u72EC\u7ACB\u5B9E\u65F6\u663E\u793A\u6BCF\u6761 run \u7684\u72B6\u6001\uFF0C\u672C\u5DE5\u5177\u662F\u7ED9\u4F60\u81EA\u5DF1\u505A\u51B3\u7B56\u7528\u7684\uFF0C\u4E0D\u662F\u7528\u6765\u7ED9\u7528\u6237\u6C47\u62A5\u8FDB\u5EA6\u7684\u2014\u2014\u4E0D\u5FC5\u4E3A\u4E86\u300C\u8BA9\u7528\u6237\u770B\u5230\u72B6\u6001\u300D\u800C\u8F6E\u8BE2\uFF0C\u4E5F\u4E0D\u8981\u628A\u8FD4\u56DE\u503C\u590D\u8FF0\u7ED9\u7528\u6237\u3002",
|
|
22787
23292
|
parameters: {
|
|
22788
23293
|
type: "object",
|
|
22789
23294
|
properties: {
|
|
22790
23295
|
action: {
|
|
22791
23296
|
type: "string",
|
|
22792
|
-
enum: ["list", "status", "stop", "todo", "wait"],
|
|
22793
|
-
description: "\u8981\u6267\u884C\u7684\u64CD\u4F5C\uFF1Alist=\u5217\u51FA run\uFF08\u7701\u7565 runId\uFF09\uFF1Bstatus=\u67E5\u5355\u6761 run \u72B6\u6001 + \u53EF\u9009\u65E5\u5FD7\uFF1Bstop=\u53D6\u6D88 run\uFF1Bwait=\u540C\u6B65\u7B49\u5F85 run \u5230\u8FBE\u7EC8\u6001\u5E76\u8FD4\u56DE\u7ED3\u679C\uFF08Unix wait \u8BED\u4E49\uFF1B\u5BA2\u6237\u7AEF\u8BA2\u9605\u8BE5 dialog \u7684 SSE \u4E8B\u4EF6\u6D41\u7B49 done/failed\uFF0C\u5DF2\u7EC8\u6001\u7ACB\u5373\u8FD4\u56DE\uFF09\uFF1Btodo=\u5217\u51FA runtime todo\uFF08\u7531 startAgentRun \u7684 batchId/trackTodo \u4EA7\u751F\uFF0C\u72B6\u6001\u7531\u5173\u8054 run \u63A8\u5BFC\uFF09\u3002"
|
|
23297
|
+
enum: ["list", "status", "stop", "todo", "wait", "append"],
|
|
23298
|
+
description: "\u8981\u6267\u884C\u7684\u64CD\u4F5C\uFF1Alist=\u5217\u51FA run\uFF08\u7701\u7565 runId\uFF09\uFF1Bstatus=\u67E5\u5355\u6761 run \u72B6\u6001 + \u53EF\u9009\u65E5\u5FD7\uFF1Bstop=\u53D6\u6D88 run\uFF1Bappend=\u5411\u4EFB\u52A1\u8FFD\u52A0\u6307\u4EE4\uFF08\u8FD0\u884C\u4E2D\u5165\u961F\uFF0C\u7EC8\u6001 continuation\uFF09\uFF1Bwait=\u540C\u6B65\u7B49\u5F85 run \u5230\u8FBE\u7EC8\u6001\u5E76\u8FD4\u56DE\u7ED3\u679C\uFF08Unix wait \u8BED\u4E49\uFF1B\u5BA2\u6237\u7AEF\u8BA2\u9605\u8BE5 dialog \u7684 SSE \u4E8B\u4EF6\u6D41\u7B49 done/failed\uFF0C\u5DF2\u7EC8\u6001\u7ACB\u5373\u8FD4\u56DE\uFF09\uFF1Btodo=\u5217\u51FA runtime todo\uFF08\u7531 startAgentRun \u7684 batchId/trackTodo \u4EA7\u751F\uFF0C\u72B6\u6001\u7531\u5173\u8054 run \u63A8\u5BFC\uFF09\u3002"
|
|
22794
23299
|
},
|
|
22795
23300
|
runId: {
|
|
22796
23301
|
type: "string",
|
|
22797
23302
|
description: "\u76EE\u6807 run \u7684 ID\uFF08startAgentRun \u8FD4\u56DE\u7684 runId\uFF09\u3002action=list \u65F6\u7701\u7565\u3002"
|
|
22798
23303
|
},
|
|
23304
|
+
dialogKey: {
|
|
23305
|
+
type: "string",
|
|
23306
|
+
description: "\u53EF\u9009\u3002action=append \u65F6\u76EE\u6807 dialog \u7684 dbKey\uFF08\u5982 dialog-user-xxx\uFF09\u3002\u7F3A\u7701\u65F6\u7531 runId \u63A8\u5BFC\u3002"
|
|
23307
|
+
},
|
|
23308
|
+
userInput: {
|
|
23309
|
+
type: "string",
|
|
23310
|
+
description: "action=append \u65F6\u8FFD\u52A0\u7ED9\u8BE5\u4EFB\u52A1\u7684\u65B0\u6307\u4EE4\u6216\u7EA0\u504F\u6587\u672C\u3002"
|
|
23311
|
+
},
|
|
23312
|
+
mode: {
|
|
23313
|
+
type: "string",
|
|
23314
|
+
enum: ["enqueue", "continue"],
|
|
23315
|
+
description: "\u53EF\u9009\u3002action=append \u65F6\u7684\u8FFD\u52A0\u6A21\u5F0F\uFF1Aenqueue=\u52A0\u5165\u961F\u5217\u4F9B\u4E0B\u4E00\u8F6E\u6D88\u8D39\uFF1Bcontinue=\u7EC8\u6001\u7EED\u8DD1\u3002\u7F3A\u7701\u65F6\u81EA\u52A8\u6839\u636E run \u72B6\u6001\u9002\u914D\u3002"
|
|
23316
|
+
},
|
|
22799
23317
|
timeoutMs: {
|
|
22800
23318
|
type: "number",
|
|
22801
23319
|
description: '\u53EF\u9009\u3002action=wait \u7684\u7B49\u5F85\u4E0A\u9650\uFF08\u6BEB\u79D2\uFF09\uFF0C\u9ED8\u8BA4 100000\uFF08100s\uFF09\u3002\u8D85\u8FC7\u4E0A\u9650\u4ECD\u672A\u5230\u8FBE\u7EC8\u6001\u65F6\u8FD4\u56DE status="timeout"\uFF08\u4E0D\u662F\u5931\u8D25\uFF09\uFF0C\u53EF\u7A0D\u540E\u518D wait \u6216\u6539\u7528 status/stop\u3002',
|
|
@@ -22832,53 +23350,91 @@ var controlAgentRunFunctionSchema = {
|
|
|
22832
23350
|
}
|
|
22833
23351
|
};
|
|
22834
23352
|
async function controlAgentRunFunc(args, thunkApi, _context) {
|
|
22835
|
-
const { action, runId, tailLines, timeoutMs, batchId, status, statusFilter, limit, offset } = args;
|
|
23353
|
+
const { action, runId, dialogKey, userInput, mode, tailLines, timeoutMs, batchId, status, statusFilter, limit, offset } = args;
|
|
22836
23354
|
if (action === "list") {
|
|
22837
23355
|
return handleList(thunkApi, { batchId, status, statusFilter, limit, offset });
|
|
22838
23356
|
}
|
|
22839
23357
|
if (action === "todo") {
|
|
22840
23358
|
return handleTodo(thunkApi, { status });
|
|
22841
23359
|
}
|
|
23360
|
+
if (action === "append") {
|
|
23361
|
+
if (!userInput) {
|
|
23362
|
+
throw new Error("controlAgentRun(append): userInput is required");
|
|
23363
|
+
}
|
|
23364
|
+
return handleAppend(thunkApi, { runId, dialogKey, userInput, mode });
|
|
23365
|
+
}
|
|
22842
23366
|
if (action === "status") {
|
|
22843
|
-
if (!runId)
|
|
23367
|
+
if (!runId) {
|
|
23368
|
+
throw new Error("controlAgentRun(status): runId is required");
|
|
23369
|
+
}
|
|
22844
23370
|
return handleStatus(thunkApi, { runId, tailLines: tailLines ?? 0 });
|
|
22845
23371
|
}
|
|
22846
23372
|
if (action === "stop") {
|
|
22847
|
-
if (!runId)
|
|
23373
|
+
if (!runId) {
|
|
23374
|
+
throw new Error("controlAgentRun(stop): runId is required");
|
|
23375
|
+
}
|
|
22848
23376
|
return handleStop(thunkApi, { runId });
|
|
22849
23377
|
}
|
|
22850
23378
|
if (action === "wait") {
|
|
22851
|
-
if (!runId)
|
|
22852
|
-
|
|
23379
|
+
if (!runId) {
|
|
23380
|
+
throw new Error("controlAgentRun(wait): runId is required");
|
|
23381
|
+
}
|
|
23382
|
+
return handleWait(thunkApi, { runId, timeoutMs });
|
|
22853
23383
|
}
|
|
22854
|
-
throw new Error(`controlAgentRun:
|
|
23384
|
+
throw new Error(`controlAgentRun: unknown action "${action}"`);
|
|
22855
23385
|
}
|
|
22856
23386
|
async function handleList(thunkApi, opts) {
|
|
22857
23387
|
try {
|
|
22858
|
-
const body = { action: "list" };
|
|
22859
|
-
const statusVal = opts.status ?? opts.statusFilter;
|
|
22860
|
-
if (statusVal) body.statusFilter = statusVal;
|
|
22861
|
-
if (opts.batchId) body.batchId = opts.batchId;
|
|
22862
|
-
if (opts.limit !== void 0) body.limit = opts.limit;
|
|
22863
|
-
if (opts.offset !== void 0) body.offset = opts.offset;
|
|
22864
23388
|
const data = await callToolApi(
|
|
22865
23389
|
thunkApi,
|
|
22866
23390
|
"/api/agent/runs/control",
|
|
22867
|
-
|
|
23391
|
+
{
|
|
23392
|
+
action: "list",
|
|
23393
|
+
batchId: opts.batchId,
|
|
23394
|
+
status: opts.status,
|
|
23395
|
+
statusFilter: opts.statusFilter,
|
|
23396
|
+
limit: opts.limit,
|
|
23397
|
+
offset: opts.offset
|
|
23398
|
+
},
|
|
22868
23399
|
{ withAuth: true }
|
|
22869
23400
|
);
|
|
22870
|
-
const
|
|
22871
|
-
const
|
|
22872
|
-
const total =
|
|
22873
|
-
const hasMore =
|
|
23401
|
+
const runs = data?.data?.runs ?? data?.runs ?? [];
|
|
23402
|
+
const count = data?.data?.count ?? data?.count ?? runs.length;
|
|
23403
|
+
const total = data?.data?.total ?? data?.total ?? count;
|
|
23404
|
+
const hasMore = data?.data?.hasMore ?? data?.hasMore ?? false;
|
|
23405
|
+
const batchSummary = data?.data?.batchSummary ?? data?.batchSummary;
|
|
22874
23406
|
return {
|
|
22875
|
-
rawData: {
|
|
22876
|
-
|
|
23407
|
+
rawData: {
|
|
23408
|
+
runs,
|
|
23409
|
+
count,
|
|
23410
|
+
total,
|
|
23411
|
+
hasMore,
|
|
23412
|
+
...batchSummary ? { batchSummary } : {}
|
|
23413
|
+
},
|
|
23414
|
+
displayData: formatListRunsCard(runs, { count, total, hasMore, batchSummary })
|
|
22877
23415
|
};
|
|
22878
23416
|
} catch (e) {
|
|
22879
23417
|
throw new Error(`controlAgentRun(list) \u5931\u8D25: ${toErrorMessage(e)}`);
|
|
22880
23418
|
}
|
|
22881
23419
|
}
|
|
23420
|
+
async function handleTodo(thunkApi, opts) {
|
|
23421
|
+
try {
|
|
23422
|
+
const data = await callToolApi(
|
|
23423
|
+
thunkApi,
|
|
23424
|
+
"/api/agent/runs/control",
|
|
23425
|
+
{ action: "todo", status: opts.status },
|
|
23426
|
+
{ withAuth: true }
|
|
23427
|
+
);
|
|
23428
|
+
const todos = data?.data?.todos ?? data?.todos ?? [];
|
|
23429
|
+
return {
|
|
23430
|
+
rawData: { todos },
|
|
23431
|
+
displayData: `Runtime Todo (${todos.length}):
|
|
23432
|
+
${JSON.stringify(todos, null, 2)}`
|
|
23433
|
+
};
|
|
23434
|
+
} catch (e) {
|
|
23435
|
+
throw new Error(`controlAgentRun(todo) \u5931\u8D25: ${toErrorMessage(e)}`);
|
|
23436
|
+
}
|
|
23437
|
+
}
|
|
22882
23438
|
async function handleStatus(thunkApi, opts) {
|
|
22883
23439
|
try {
|
|
22884
23440
|
const data = await callToolApi(
|
|
@@ -22888,11 +23444,10 @@ async function handleStatus(thunkApi, opts) {
|
|
|
22888
23444
|
{ withAuth: true }
|
|
22889
23445
|
);
|
|
22890
23446
|
const resData = data?.data ?? data;
|
|
22891
|
-
if (!resData || resData.found === false
|
|
23447
|
+
if (!resData || resData.found === false) {
|
|
22892
23448
|
return {
|
|
22893
|
-
rawData: { runId: opts.runId
|
|
22894
|
-
displayData: `
|
|
22895
|
-
? not_found`
|
|
23449
|
+
rawData: { found: false, runId: opts.runId },
|
|
23450
|
+
displayData: `\u672A\u627E\u5230 runId \u4E3A ${opts.runId} \u7684\u8FD0\u884C\u8BB0\u5F55\u3002`
|
|
22896
23451
|
};
|
|
22897
23452
|
}
|
|
22898
23453
|
const run = resData.run;
|
|
@@ -22932,132 +23487,102 @@ async function handleStop(thunkApi, opts) {
|
|
|
22932
23487
|
throw new Error(`controlAgentRun(stop) \u5931\u8D25: ${toErrorMessage(e)}`);
|
|
22933
23488
|
}
|
|
22934
23489
|
}
|
|
22935
|
-
|
|
22936
|
-
var DEFAULT_WAIT_TIMEOUT_MS = 1e5;
|
|
22937
|
-
var WAIT_INTERRUPTED_ERROR_NAME = "AgentWaitInterruptedError";
|
|
22938
|
-
function createWaitInterruptedError() {
|
|
22939
|
-
const err = new Error(
|
|
22940
|
-
"\u7B49\u5F85\u88AB\u4E2D\u6B62\uFF1ASSE \u8BA2\u9605\u5DF2\u4E2D\u65AD\uFF08\u5916\u90E8\u53D6\u6D88\u6216\u8FDE\u63A5\u6E05\u7406\uFF09\uFF0C\u672A\u6536\u5230 done/failed \u4E8B\u4EF6\uFF0C\u4E0D\u662F\u6210\u529F\u5B8C\u6210"
|
|
22941
|
-
);
|
|
22942
|
-
err.name = WAIT_INTERRUPTED_ERROR_NAME;
|
|
22943
|
-
return err;
|
|
22944
|
-
}
|
|
22945
|
-
async function handleWait(thunkApi, opts) {
|
|
22946
|
-
const timeoutMs = opts.timeoutMs && opts.timeoutMs > 0 ? opts.timeoutMs : DEFAULT_WAIT_TIMEOUT_MS;
|
|
22947
|
-
const { currentServer, token } = getToolRequestContext(thunkApi);
|
|
22948
|
-
const authHeader = token ? `Bearer ${token}` : "";
|
|
22949
|
-
const abortController = new AbortController();
|
|
22950
|
-
const externalSignal = opts.signal;
|
|
22951
|
-
const onExternalAbort = () => abortController.abort();
|
|
22952
|
-
if (externalSignal) {
|
|
22953
|
-
if (externalSignal.aborted) {
|
|
22954
|
-
abortController.abort();
|
|
22955
|
-
} else {
|
|
22956
|
-
externalSignal.addEventListener("abort", onExternalAbort, { once: true });
|
|
22957
|
-
}
|
|
22958
|
-
}
|
|
22959
|
-
const sseSignal = abortController.signal;
|
|
22960
|
-
let timer;
|
|
23490
|
+
async function handleAppend(thunkApi, opts) {
|
|
22961
23491
|
try {
|
|
22962
|
-
|
|
23492
|
+
const requestContext = getToolRequestContext(thunkApi);
|
|
23493
|
+
const resolvedKey = opts.dialogKey || (opts.runId?.startsWith("dialog-") ? opts.runId : opts.runId && requestContext?.userId ? `dialog-${requestContext.userId}-${opts.runId}` : opts.runId);
|
|
23494
|
+
if (!resolvedKey) {
|
|
23495
|
+
throw new Error("dialogKey or runId is required to append an instruction");
|
|
23496
|
+
}
|
|
22963
23497
|
const data = await callToolApi(
|
|
22964
23498
|
thunkApi,
|
|
22965
23499
|
"/api/agent/runs/control",
|
|
22966
|
-
{
|
|
23500
|
+
{
|
|
23501
|
+
action: "append",
|
|
23502
|
+
dialogKey: resolvedKey,
|
|
23503
|
+
userInput: opts.userInput,
|
|
23504
|
+
...opts.mode ? { mode: opts.mode } : {}
|
|
23505
|
+
},
|
|
22967
23506
|
{ withAuth: true }
|
|
22968
23507
|
);
|
|
22969
23508
|
const resData = data?.data ?? data;
|
|
22970
|
-
if (!resData || resData.found === false || !resData.run) {
|
|
22971
|
-
throw new Error(`run ${opts.runId} \u4E0D\u5B58\u5728\u6216\u4E0D\u53EF\u89C1`);
|
|
22972
|
-
}
|
|
22973
|
-
const run = resData.run;
|
|
22974
|
-
if (WAIT_TERMINAL_STATUSES.has(run.status)) {
|
|
22975
|
-
return {
|
|
22976
|
-
rawData: { runId: opts.runId, status: run.status, content: run.lastAssistantText ?? "" },
|
|
22977
|
-
displayData: `\u2705 controlAgentRun(wait) \u5B8C\u6210\uFF0Crun ${opts.runId} \u5DF2\u5904\u4E8E\u7EC8\u6001 ${run.status}`
|
|
22978
|
-
};
|
|
22979
|
-
}
|
|
22980
|
-
if (sseSignal.aborted) throw createWaitInterruptedError();
|
|
22981
|
-
const outcome = await new Promise((resolve, reject) => {
|
|
22982
|
-
let settled = false;
|
|
22983
|
-
const settle = (fn) => {
|
|
22984
|
-
if (settled) return;
|
|
22985
|
-
settled = true;
|
|
22986
|
-
fn();
|
|
22987
|
-
};
|
|
22988
|
-
listenToDialogEvents(
|
|
22989
|
-
opts.runId,
|
|
22990
|
-
currentServer,
|
|
22991
|
-
authHeader,
|
|
22992
|
-
sseSignal,
|
|
22993
|
-
void 0,
|
|
22994
|
-
(result) => settle(() => resolve({ kind: "done", dialogId: result.dialogId, content: result.content })),
|
|
22995
|
-
(errMsg) => settle(() => reject(new Error(errMsg)))
|
|
22996
|
-
).then(
|
|
22997
|
-
(r) => {
|
|
22998
|
-
if (settled) return;
|
|
22999
|
-
if (sseSignal.aborted) {
|
|
23000
|
-
settle(() => reject(createWaitInterruptedError()));
|
|
23001
|
-
} else if (r && ("content" in r || "usage" in r)) {
|
|
23002
|
-
settle(() => resolve({ kind: "done", dialogId: r.dialogId, content: r.content }));
|
|
23003
|
-
} else {
|
|
23004
|
-
settle(() => reject(new Error("\u4E8B\u4EF6\u6D41\u610F\u5916\u5173\u95ED\uFF0C\u672A\u6536\u5230 done/failed \u4E8B\u4EF6")));
|
|
23005
|
-
}
|
|
23006
|
-
},
|
|
23007
|
-
(e) => {
|
|
23008
|
-
if (settled) return;
|
|
23009
|
-
if (isAbortError(e)) {
|
|
23010
|
-
settle(() => reject(e));
|
|
23011
|
-
} else if (sseSignal.aborted) {
|
|
23012
|
-
settle(() => reject(createWaitInterruptedError()));
|
|
23013
|
-
} else {
|
|
23014
|
-
settle(() => reject(e));
|
|
23015
|
-
}
|
|
23016
|
-
}
|
|
23017
|
-
);
|
|
23018
|
-
timer = setTimeout(() => {
|
|
23019
|
-
abortController.abort();
|
|
23020
|
-
settle(() => resolve({ kind: "timeout", waitedMs: timeoutMs }));
|
|
23021
|
-
}, timeoutMs);
|
|
23022
|
-
});
|
|
23023
|
-
if (outcome.kind === "timeout") {
|
|
23024
|
-
return {
|
|
23025
|
-
rawData: { runId: opts.runId, status: "timeout", waitedMs: outcome.waitedMs },
|
|
23026
|
-
displayData: `\u23F3 controlAgentRun(wait) \u5DF2\u7B49\u5F85 ${Math.round(outcome.waitedMs / 1e3)}s \u4ECD\u672A\u5B8C\u6210\uFF0C\u672A\u8FBE\u7EC8\u6001\uFF1B\u53EF\u7A0D\u540E\u518D wait\uFF0C\u6216\u6539\u7528 status/stop\u3002`
|
|
23027
|
-
};
|
|
23028
|
-
}
|
|
23029
23509
|
return {
|
|
23030
|
-
rawData:
|
|
23031
|
-
displayData: `\
|
|
23510
|
+
rawData: resData,
|
|
23511
|
+
displayData: `\u8FFD\u52A0\u6307\u4EE4\u6210\u529F [${resData.mode ?? "append"}]: ${resData.message ?? "\u5DF2\u63D0\u4EA4"}${typeof resData.queued === "number" ? ` (\u6392\u961F\u6570: ${resData.queued})` : ""}`
|
|
23032
23512
|
};
|
|
23033
23513
|
} catch (e) {
|
|
23034
|
-
|
|
23035
|
-
throw new Error(`controlAgentRun(wait) \u5931\u8D25: ${toErrorMessage(e)}`);
|
|
23036
|
-
} finally {
|
|
23037
|
-
if (timer) clearTimeout(timer);
|
|
23038
|
-
if (externalSignal) externalSignal.removeEventListener("abort", onExternalAbort);
|
|
23514
|
+
throw new Error(`controlAgentRun(append) \u5931\u8D25: ${toErrorMessage(e)}`);
|
|
23039
23515
|
}
|
|
23040
23516
|
}
|
|
23041
|
-
async function
|
|
23517
|
+
async function handleWait(thunkApi, opts) {
|
|
23518
|
+
const timeoutMs = opts.timeoutMs ?? 1e5;
|
|
23519
|
+
const requestContext = getToolRequestContext(thunkApi);
|
|
23520
|
+
const serverBase = requestContext?.serverBase;
|
|
23042
23521
|
try {
|
|
23043
|
-
const
|
|
23044
|
-
if (opts.status) body.status = opts.status;
|
|
23045
|
-
const data = await callToolApi(
|
|
23522
|
+
const initial = await callToolApi(
|
|
23046
23523
|
thunkApi,
|
|
23047
23524
|
"/api/agent/runs/control",
|
|
23048
|
-
|
|
23525
|
+
{ action: "status", runId: opts.runId, tailLines: 0 },
|
|
23049
23526
|
{ withAuth: true }
|
|
23050
23527
|
);
|
|
23051
|
-
const
|
|
23052
|
-
|
|
23528
|
+
const initialRun = initial?.data?.run ?? initial?.run;
|
|
23529
|
+
if (!initialRun) {
|
|
23530
|
+
return {
|
|
23531
|
+
rawData: { found: false, runId: opts.runId, status: "not_found" },
|
|
23532
|
+
displayData: `\u672A\u627E\u5230 runId \u4E3A ${opts.runId} \u7684\u8FD0\u884C\u8BB0\u5F55\uFF0C\u65E0\u6CD5\u7B49\u5F85\u3002`
|
|
23533
|
+
};
|
|
23534
|
+
}
|
|
23535
|
+
const terminalStatuses = ["done", "failed", "cancelled", "orphaned"];
|
|
23536
|
+
if (terminalStatuses.includes(initialRun.status)) {
|
|
23537
|
+
const name2 = resolveRunLabel(initialRun);
|
|
23538
|
+
return {
|
|
23539
|
+
rawData: { found: true, ...initialRun },
|
|
23540
|
+
displayData: formatStatusRunCard(name2, initialRun.status, {
|
|
23541
|
+
runId: opts.runId,
|
|
23542
|
+
lastToolNames: initialRun.lastToolNames,
|
|
23543
|
+
toolCallCount: initialRun.toolCallCount,
|
|
23544
|
+
lastAssistantText: initialRun.lastAssistantText,
|
|
23545
|
+
errorMessage: initialRun.errorMessage,
|
|
23546
|
+
timing: { startedAt: initialRun.startedAt, finishedAt: initialRun.finishedAt }
|
|
23547
|
+
})
|
|
23548
|
+
};
|
|
23549
|
+
}
|
|
23550
|
+
const terminalEvent = await listenToDialogEvents({
|
|
23551
|
+
dialogId: opts.runId,
|
|
23552
|
+
serverBase,
|
|
23553
|
+
timeoutMs
|
|
23554
|
+
});
|
|
23555
|
+
const status = terminalEvent.type === "done" ? "done" : terminalEvent.type === "failed" ? "failed" : terminalEvent.type === "timeout" ? "timeout" : terminalEvent.type === "cancelled" ? "cancelled" : "unknown";
|
|
23556
|
+
const rawData = {
|
|
23557
|
+
runId: opts.runId,
|
|
23558
|
+
found: true,
|
|
23559
|
+
status,
|
|
23560
|
+
...terminalEvent.text ? { lastAssistantText: terminalEvent.text } : {},
|
|
23561
|
+
...terminalEvent.error ? { errorMessage: terminalEvent.error } : {}
|
|
23562
|
+
};
|
|
23563
|
+
if (status === "timeout") {
|
|
23564
|
+
return {
|
|
23565
|
+
rawData,
|
|
23566
|
+
displayData: `\u7B49\u5F85\u8D85\u65F6\uFF08\u4E0A\u9650 ${timeoutMs}ms\uFF09\uFF0CrunId: ${opts.runId} \u4ECD\u5728\u8FD0\u884C\u4E2D\u3002\u53EF\u7A0D\u540E\u518D wait \u6216\u6539\u7528 status/stop\u3002`
|
|
23567
|
+
};
|
|
23568
|
+
}
|
|
23569
|
+
const name = resolveRunLabel(initialRun);
|
|
23053
23570
|
return {
|
|
23054
|
-
rawData
|
|
23055
|
-
displayData:
|
|
23056
|
-
|
|
23057
|
-
|
|
23571
|
+
rawData,
|
|
23572
|
+
displayData: formatStatusRunCard(name, status, {
|
|
23573
|
+
runId: opts.runId,
|
|
23574
|
+
lastAssistantText: terminalEvent.text,
|
|
23575
|
+
errorMessage: terminalEvent.error
|
|
23576
|
+
})
|
|
23058
23577
|
};
|
|
23059
23578
|
} catch (e) {
|
|
23060
|
-
|
|
23579
|
+
if (isAbortError(e)) {
|
|
23580
|
+
return {
|
|
23581
|
+
rawData: { runId: opts.runId, status: "aborted" },
|
|
23582
|
+
displayData: `\u7B49\u5F85\u5DF2\u4E2D\u65AD\uFF08runId: ${opts.runId}\uFF09\u3002`
|
|
23583
|
+
};
|
|
23584
|
+
}
|
|
23585
|
+
throw new Error(`controlAgentRun(wait) \u5931\u8D25: ${toErrorMessage(e)}`);
|
|
23061
23586
|
}
|
|
23062
23587
|
}
|
|
23063
23588
|
|
|
@@ -23451,7 +23976,7 @@ var codeSearchFunctionSchema = {
|
|
|
23451
23976
|
"",
|
|
23452
23977
|
"\u63A8\u8350\u573A\u666F\uFF1A",
|
|
23453
23978
|
"- mode=content\uFF1A\u6309\u5173\u952E\u8BCD\u641C\u7D22\u4EE3\u7801\u5185\u5BB9\uFF0C\u66FF\u4EE3\u65E7\u7684 searchRepo\u3002",
|
|
23454
|
-
"- mode=files\uFF1A\u6309\u8DEF\u5F84\u8303\u56F4\u548C glob \u5217\u51FA\u6587\u4EF6\
|
|
23979
|
+
"- mode=files\uFF1A\u6309\u8DEF\u5F84\u8303\u56F4\u548C glob \u5217\u51FA\u6587\u4EF6\u3002",
|
|
23455
23980
|
"",
|
|
23456
23981
|
"\u53C2\u6570\u8BF4\u660E\uFF1A",
|
|
23457
23982
|
"- query\uFF1A\u641C\u7D22\u6587\u672C\uFF1Bmode=content \u65F6\u5FC5\u586B\uFF0Cmode=files \u65F6\u53EF\u7701\u7565\u3002",
|
|
@@ -23985,7 +24510,7 @@ var codeToolDefinitions = [
|
|
|
23985
24510
|
executor: codeSearchFunc,
|
|
23986
24511
|
description: {
|
|
23987
24512
|
name: "codeSearch",
|
|
23988
|
-
description: "\u57FA\u4E8E rg \u641C\u7D22\u4EE3\u7801\u5185\u5BB9\u6216\u5217\u51FA\u6587\u4EF6\uFF0C\
|
|
24513
|
+
description: "\u57FA\u4E8E rg \u641C\u7D22\u4EE3\u7801\u5185\u5BB9\u6216\u5217\u51FA\u6587\u4EF6\uFF0C\u57FA\u4E8E ripgrep \u641C\u7D22\u4EE3\u7801\u6216\u5217\u51FA\u6587\u4EF6\u3002",
|
|
23989
24514
|
category: "\u4EE3\u7801\u5206\u6790"
|
|
23990
24515
|
},
|
|
23991
24516
|
behavior: "data",
|
|
@@ -24325,7 +24850,7 @@ var executeToolRun = createAsyncThunk(
|
|
|
24325
24850
|
if (!executionInput) {
|
|
24326
24851
|
throw new Error(`ToolRun ${id} has no input to execute with.`);
|
|
24327
24852
|
}
|
|
24328
|
-
const { findToolExecutor: findToolExecutor2 } = await import("./tools-
|
|
24853
|
+
const { findToolExecutor: findToolExecutor2 } = await import("./tools-ZELMSJZ3.js");
|
|
24329
24854
|
const { executor } = findToolExecutor2(run.toolName);
|
|
24330
24855
|
toolRunStarted({
|
|
24331
24856
|
id: run.id,
|
|
@@ -24349,7 +24874,7 @@ var executeToolRun = createAsyncThunk(
|
|
|
24349
24874
|
const latestState = thunkApi.getState();
|
|
24350
24875
|
const userId = latestState.auth?.currentUser?.userId;
|
|
24351
24876
|
if (userId) {
|
|
24352
|
-
const { fetchUserSpaceMemberships } = await import("./spaceSlice-
|
|
24877
|
+
const { fetchUserSpaceMemberships } = await import("./spaceSlice-Z3BGCLGX.js");
|
|
24353
24878
|
await thunkApi.dispatch(fetchUserSpaceMemberships(userId));
|
|
24354
24879
|
}
|
|
24355
24880
|
}
|
|
@@ -25855,7 +26380,7 @@ ${styleSystemHint}
|
|
|
25855
26380
|
}
|
|
25856
26381
|
var appFileListFunctionSchema = {
|
|
25857
26382
|
name: "appFileList",
|
|
25858
|
-
description: "\u5217\u51FA Nolo React SSR \u5E94\u7528\u6E90\u7801\u5DE5\u4F5C\u533A\u7684\u6587\u4EF6\u6E05\u5355\u3002\u5B83\u662F App Builder \u53D7\u9650\u7248
|
|
26383
|
+
description: "\u5217\u51FA Nolo React SSR \u5E94\u7528\u6E90\u7801\u5DE5\u4F5C\u533A\u7684\u6587\u4EF6\u6E05\u5355\u3002\u5B83\u662F App Builder \u53D7\u9650\u7248\u6587\u4EF6\u5217\u8868\uFF1A\u53EA\u7ED1\u5B9A\u5F53\u524D app \u6E90\u7801 workspace\uFF0C\u4E0D\u4F1A\u8FD4\u56DE\u5B8C\u6574\u6E90\u7801\u3002",
|
|
25859
26384
|
parameters: {
|
|
25860
26385
|
type: "object",
|
|
25861
26386
|
properties: {
|
|
@@ -25895,7 +26420,7 @@ var appFileReadFunctionSchema = {
|
|
|
25895
26420
|
};
|
|
25896
26421
|
var appFileSearchFunctionSchema = {
|
|
25897
26422
|
name: "appFileSearch",
|
|
25898
|
-
description: "\u5728 Nolo React SSR \u5E94\u7528\u6E90\u7801\u5DE5\u4F5C\u533A\u641C\u7D22\u5173\u952E\u8BCD\u6216\u6B63\u5219\u3002\u5B83\u662F App Builder \u53D7\u9650\u7248
|
|
26423
|
+
description: "\u5728 Nolo React SSR \u5E94\u7528\u6E90\u7801\u5DE5\u4F5C\u533A\u641C\u7D22\u5173\u952E\u8BCD\u6216\u6B63\u5219\u3002\u5B83\u662F App Builder \u53D7\u9650\u7248\u4EE3\u7801\u641C\u7D22\uFF1B\u5148\u5B9A\u4F4D\u547D\u4E2D\u884C\uFF0C\u518D\u7528 appFileRead \u8BFB\u53D6\u8303\u56F4\u6216 appFileReplace \u7CBE\u786E\u7F16\u8F91\u3002",
|
|
25899
26424
|
parameters: {
|
|
25900
26425
|
type: "object",
|
|
25901
26426
|
properties: {
|
|
@@ -26832,7 +27357,7 @@ async function updateDocFunc(args, thunkApi) {
|
|
|
26832
27357
|
updated_at: (/* @__PURE__ */ new Date()).toISOString()
|
|
26833
27358
|
};
|
|
26834
27359
|
await dispatch(write({ data: updatedPageData, customKey: id })).unwrap();
|
|
26835
|
-
const { getDocState, applyExternalDocUpdate } = await import("./docStore-
|
|
27360
|
+
const { getDocState, applyExternalDocUpdate } = await import("./docStore-SIUFLABN.js");
|
|
26836
27361
|
if (getDocState().pageKey === id) {
|
|
26837
27362
|
applyExternalDocUpdate({
|
|
26838
27363
|
slateData: finalSlateData,
|
|
@@ -26857,7 +27382,7 @@ async function updateDocFunc(args, thunkApi) {
|
|
|
26857
27382
|
// packages/ai/tools/updateUserPreferenceProfileTool.ts
|
|
26858
27383
|
async function dispatchSetSettings(thunkApi, changes) {
|
|
26859
27384
|
const injectedSetSettings = thunkApi?.extra?.setSettings;
|
|
26860
|
-
const setSettings = typeof injectedSetSettings === "function" ? injectedSetSettings : (await import("./settingSlice-
|
|
27385
|
+
const setSettings = typeof injectedSetSettings === "function" ? injectedSetSettings : (await import("./settingSlice-GPLI6E3M.js")).setSettings;
|
|
26861
27386
|
await thunkApi.dispatch(setSettings(changes)).unwrap();
|
|
26862
27387
|
}
|
|
26863
27388
|
var updateUserPreferenceProfileFunctionSchema = {
|
|
@@ -27482,6 +28007,17 @@ var baseToolDefinitions = [
|
|
|
27482
28007
|
},
|
|
27483
28008
|
behavior: "action"
|
|
27484
28009
|
},
|
|
28010
|
+
{
|
|
28011
|
+
id: "deleteMemory",
|
|
28012
|
+
schema: deleteMemoryFunctionSchema,
|
|
28013
|
+
executor: deleteMemoryFunc,
|
|
28014
|
+
description: {
|
|
28015
|
+
name: "deleteMemory",
|
|
28016
|
+
description: "\u5728\u7528\u6237\u660E\u786E/\u5F3A\u5236\u8981\u6C42\u4E0B\uFF0C\u5220\u9664\u7528\u6237\u6743\u9650\u8303\u56F4\u5185\u7684\u957F\u671F\u8BB0\u5FC6\u3002",
|
|
28017
|
+
category: "\u8BB0\u5FC6 / \u957F\u671F\u4E0A\u4E0B\u6587"
|
|
28018
|
+
},
|
|
28019
|
+
behavior: "action"
|
|
28020
|
+
},
|
|
27485
28021
|
{
|
|
27486
28022
|
id: "updateUserPreferenceProfile",
|
|
27487
28023
|
schema: updateUserPreferenceProfileFunctionSchema,
|
|
@@ -27510,17 +28046,6 @@ var baseToolDefinitions = [
|
|
|
27510
28046
|
defaultConsent: "auto"
|
|
27511
28047
|
},
|
|
27512
28048
|
// --- 计划与编排(不含 Agent 专用) ---
|
|
27513
|
-
{
|
|
27514
|
-
id: "createWorkflow",
|
|
27515
|
-
schema: createWorkflowFunctionSchema,
|
|
27516
|
-
executor: createWorkflowFunc,
|
|
27517
|
-
description: {
|
|
27518
|
-
name: "createWorkflow",
|
|
27519
|
-
description: "\u5F53\u6267\u884C\u8DEF\u5F84\u5DF2\u77E5\u65F6\uFF0C\u5B9A\u4E49\u5E76\u6267\u884C\u4E00\u4E2A\u591A\u6B65\u9AA4 workflow\u3002\u5F15\u64CE\u81EA\u52A8\u8FD0\u884C\uFF0C\u65E0\u9700\u6BCF\u6B65\u8C03\u7528 LLM\uFF0C\u5927\u5E45\u8282\u7701 token\u3002",
|
|
27520
|
-
category: "\u8BA1\u5212\u4E0E\u7F16\u6392"
|
|
27521
|
-
},
|
|
27522
|
-
behavior: "orchestrator"
|
|
27523
|
-
},
|
|
27524
28049
|
{
|
|
27525
28050
|
id: "toolquery",
|
|
27526
28051
|
schema: toolQueryFunctionSchema,
|
|
@@ -29105,11 +29630,6 @@ var findToolExecutor = (rawName) => {
|
|
|
29105
29630
|
};
|
|
29106
29631
|
|
|
29107
29632
|
export {
|
|
29108
|
-
readXPostFunctionSchema,
|
|
29109
|
-
readXPostFunc,
|
|
29110
|
-
readXhsProfileFunctionSchema,
|
|
29111
|
-
readXhsProfileFunc,
|
|
29112
|
-
setTodoListFunc,
|
|
29113
29633
|
resolveBuiltinSkillPage,
|
|
29114
29634
|
resolveAgentRequiredPackIds,
|
|
29115
29635
|
resolveAgentRecommendedSkillNames,
|
|
@@ -29127,7 +29647,13 @@ export {
|
|
|
29127
29647
|
waitForAbortableDelay,
|
|
29128
29648
|
createSSEParser,
|
|
29129
29649
|
formatAgentListCard,
|
|
29650
|
+
readXPostFunctionSchema,
|
|
29651
|
+
readXPostFunc,
|
|
29652
|
+
readXhsProfileFunctionSchema,
|
|
29653
|
+
readXhsProfileFunc,
|
|
29130
29654
|
rememberMemoryFunctionSchema,
|
|
29655
|
+
deleteMemoryFunctionSchema,
|
|
29656
|
+
setTodoListFunc,
|
|
29131
29657
|
TOOL_GROUP_META,
|
|
29132
29658
|
toolQueryFunctionSchema,
|
|
29133
29659
|
toolQueryFunc,
|