nolo-cli 0.76.0 → 0.77.0
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-I3XRMAJ2.js → _executeModel-G6BRN2BO.js} +21 -21
- package/{agentDeleteCommand-DCTG26JW.js → agentDeleteCommand-C5JTDBIX.js} +15 -14
- package/{agentEmailCommands-MRRHBLDQ.js → agentEmailCommands-AYSYNUSH.js} +28 -27
- package/{agentListCommands-CUE46CSP.js → agentListCommands-CVFL3P3D.js} +17 -16
- package/{agentMachineCommands-FYDEKBIO.js → agentMachineCommands-2EPX7IYC.js} +15 -14
- package/{agentProviderCommands-X3FA6BUM.js → agentProviderCommands-EHR3PV2V.js} +1 -1
- package/{agentRecordCommands-P2MSNP7R.js → agentRecordCommands-DPZVHOOA.js} +27 -26
- package/{agentRunCommand-YJOW3VB3.js → agentRunCommand-BE53VNNN.js} +27 -26
- package/{agentRuntimeLocal-T43UNWAY.js → agentRuntimeLocal-BPN5IOFT.js} +13 -12
- package/{agentSlice-7GDS5Q2S.js → agentSlice-PYJFXGZL.js} +1 -1
- package/{appDeleteCommands-YBKY3VEI.js → appDeleteCommands-TREMNXCA.js} +16 -15
- package/{appDeployCommands-EBC76HO4.js → appDeployCommands-7FYCMERT.js} +16 -15
- package/{appDeployStatusCommands-WXRC5KEK.js → appDeployStatusCommands-7LAYH7IX.js} +16 -15
- package/{appGetCommands-VZZQEDOV.js → appGetCommands-BONTQ2XH.js} +16 -15
- package/{appListCommands-HYSPVQ77.js → appListCommands-BYIELWUL.js} +16 -15
- package/{authCommand-E4GDVKMW.js → authCommand-J5C7GS33.js} +9 -8
- package/{builtinSkillRegistry-5SYVTS6Z.js → builtinSkillRegistry-YITVDLWG.js} +1 -1
- package/{chatQueueReduxAdapter-CXEWIDFZ.js → chatQueueReduxAdapter-PIOXZBGH.js} +8 -8
- package/{chunk-UO66QKGI.js → chunk-2F4VYGFW.js} +2 -2
- package/{chunk-3T4PRBHV.js → chunk-3DZIWHJ6.js} +1 -1
- package/{chunk-IO7DYRPW.js → chunk-4PAFEM6V.js} +3 -3
- package/{chunk-BNMZ7QUV.js → chunk-5DAMTON3.js} +1 -1
- package/chunk-5ZUL4CUO.js +10 -0
- package/{chunk-WSOMSDQB.js → chunk-6HCLDVEI.js} +35 -1
- package/{chunk-GRJTR4PU.js → chunk-6LWO3QQS.js} +2 -2
- package/{chunk-JC2WQS66.js → chunk-7TEU3WX2.js} +17 -13
- package/{chunk-L2VNQQ7M.js → chunk-ACFF7U3F.js} +273 -13
- package/{chunk-MFW4BGJS.js → chunk-AGX5TE5W.js} +1 -1
- package/{chunk-UWMQ6FPM.js → chunk-ASGDO77C.js} +118 -1
- package/{chunk-4FRNB4ZG.js → chunk-D4TJCP3V.js} +3 -3
- package/{chunk-TGRQUFLU.js → chunk-DNQPPRHY.js} +1 -1
- package/{chunk-NVHJWYUO.js → chunk-DQD4PYQY.js} +13 -13
- package/{chunk-KO7QCXLL.js → chunk-FSISQCCB.js} +13 -13
- package/{chunk-VQD6BTML.js → chunk-FWGPT6VI.js} +3 -3
- package/{chunk-Y2IFJ7VM.js → chunk-HLRYI5XO.js} +1 -1
- package/{chunk-IMDA4FW4.js → chunk-IEILL33V.js} +48 -37
- package/{chunk-6RCZYDDC.js → chunk-JRFQPOPS.js} +3 -3
- package/{chunk-P3AS5IPM.js → chunk-JT7FRJP5.js} +1 -0
- package/{chunk-X77EN2BJ.js → chunk-K7M3MWCE.js} +2 -2
- package/{chunk-VARZWSKW.js → chunk-LGSXBNWH.js} +1 -1
- package/{chunk-EVBFYPDC.js → chunk-MC4XLIJ7.js} +6 -2
- package/{chunk-DS3SQTDT.js → chunk-MJHQ3NRV.js} +1 -1
- package/{chunk-W7PGACND.js → chunk-MRT4KARW.js} +7 -7
- package/{chunk-T4F2EQGN.js → chunk-ND2J3NRB.js} +2 -2
- package/{chunk-LEYH5NOH.js → chunk-PGO7O65Q.js} +3 -3
- package/{chunk-FMODTASJ.js → chunk-Q5FJJ6XI.js} +1 -7
- package/{chunk-Q246OUG5.js → chunk-RHB6OCZS.js} +3 -3
- package/{chunk-ZSG2AQU4.js → chunk-RJ3TDODF.js} +50 -11
- package/{chunk-EXWOCYCR.js → chunk-TIJK4PBP.js} +9 -4
- package/{chunk-S6STPUMG.js → chunk-UDK3ZSMN.js} +1 -1
- package/{chunk-ZKGIAM7I.js → chunk-UQ45IHLM.js} +1 -1
- package/{chunk-VW3YGKWR.js → chunk-UQYEVBMM.js} +89 -15
- package/{chunk-Q4KVAB6L.js → chunk-UUVQJZ75.js} +26 -7
- package/{chunk-OCL2YCAU.js → chunk-VEJ4BOQV.js} +38 -38
- package/{chunk-6H7GN3JL.js → chunk-VRLI2WNW.js} +10 -1
- package/{chunk-23RQKXP6.js → chunk-WS22FPWT.js} +1 -1
- package/{chunk-AYT2OKNM.js → chunk-XIYOAH3S.js} +2 -2
- package/{chunk-ZIHJVHFH.js → chunk-Z33ARZCP.js} +1 -1
- package/{contentThunks-Y2ACIFDB.js → contentThunks-RYZTYVUV.js} +9 -9
- package/{createAgentAutomationAction-TNE3QMJR.js → createAgentAutomationAction-GUBB2LWY.js} +9 -9
- package/{createDialogAction-BMGHBTQB.js → createDialogAction-577E6FB2.js} +10 -10
- package/{createPageAction-FFNIZPIS.js → createPageAction-4CNYIRJ5.js} +9 -9
- package/{dialogCommands-3JC3BIXC.js → dialogCommands-U4RQIRKK.js} +16 -15
- package/{dialogSlice-3E7Z7HZV.js → dialogSlice-YXMORK5T.js} +8 -8
- package/{docCreateCommands-6LNQLCTA.js → docCreateCommands-AXXATGCL.js} +15 -14
- package/{docDeleteCommands-ZJOAPWZS.js → docDeleteCommands-CRPIFYFA.js} +16 -15
- package/{docReadCommands-LJTRSBG6.js → docReadCommands-4IMZXFDR.js} +15 -14
- package/{docStore-R47ABXBB.js → docStore-3U5FBN2O.js} +1 -1
- package/{docUpdateCommands-7P3QF3N2.js → docUpdateCommands-RRPRZXCE.js} +15 -14
- package/{getPricing-TV6ZB7ES.js → getPricing-F2C65RIX.js} +3 -3
- package/{handleSendMessageAction-FFYOGXAO.js → handleSendMessageAction-BQIRKHC6.js} +8 -8
- package/index.js +50 -50
- package/{machineCommands-FN5GGQV3.js → machineCommands-RNBADNTE.js} +26 -25
- package/{machineWsRunDispatch-H47IA7ZT.js → machineWsRunDispatch-7J6WNF57.js} +26 -25
- package/{models-CMXFDBQH.js → models-WW7VFNXB.js} +2 -2
- package/package.json +1 -1
- package/{providerPresetApply-D2GGHPI7.js → providerPresetApply-SAJAK7C3.js} +6 -6
- package/{providerRegistry-MU6C4ABD.js → providerRegistry-COD57OVY.js} +6 -6
- package/{readlineWorkspace-2RP77YDN.js → readlineWorkspace-ZO2W3N4U.js} +30 -29
- package/{runAgentClientLoop-CEBV5UPD.js → runAgentClientLoop-KJZ7DK6D.js} +19 -19
- package/{spaceCommands-JHT4ALCQ.js → spaceCommands-VZRYKVWZ.js} +15 -14
- package/{streamAgentChatTurn-SFCZP4GY.js → streamAgentChatTurn-L3SO4N2R.js} +26 -24
- package/{tools-K3YOTESV.js → tools-GRV74JPO.js} +16 -16
- package/tuiSummaryLlmCaller-ATDKMGI5.js +127 -0
- package/{updateDialogTitleAction-CSPKYQRO.js → updateDialogTitleAction-KRUWX66L.js} +29 -12
- package/tuiSummaryLlmCaller-T2OA5ZVB.js +0 -116
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// packages/agent-runtime/devinOAuthPure.ts
|
|
2
|
+
function isDevinOAuthAgent(agent) {
|
|
3
|
+
const ref = agent.apiKeyRef?.trim().toLowerCase();
|
|
4
|
+
const prov = agent.provider?.trim().toLowerCase();
|
|
5
|
+
return ref === "devin" || prov === "devin";
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export {
|
|
9
|
+
isDevinOAuthAgent
|
|
10
|
+
};
|
|
@@ -1,7 +1,13 @@
|
|
|
1
|
+
import {
|
|
2
|
+
isDevinOAuthAgent
|
|
3
|
+
} from "./chunk-5ZUL4CUO.js";
|
|
4
|
+
import {
|
|
5
|
+
getModelContextWindow
|
|
6
|
+
} from "./chunk-VEJ4BOQV.js";
|
|
1
7
|
import {
|
|
2
8
|
findModelConfig,
|
|
3
9
|
getProviderByModelName
|
|
4
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-VRLI2WNW.js";
|
|
5
11
|
import {
|
|
6
12
|
asOptionalFiniteNumber
|
|
7
13
|
} from "./chunk-WWC7I6TA.js";
|
|
@@ -120,6 +126,33 @@ async function stripImagePartsForTextOnlyAgent(messages, agentConfig) {
|
|
|
120
126
|
return { messages: !supportsVision && hasImages ? stripImagePartsFromMessages(messages) : messages };
|
|
121
127
|
}
|
|
122
128
|
|
|
129
|
+
// packages/agent-runtime/devin/devinChannelWindows.ts
|
|
130
|
+
var DEVIN_CHANNEL_CONTEXT_WINDOWS = {
|
|
131
|
+
// SWE-2 家族(catalog 无裸 swe-2 selector;旧点号/裸写法如 swe-2、
|
|
132
|
+
// swe-1.7 实测均 permission_denied,已不是可用 selector)。
|
|
133
|
+
"swe-2-max": 262e3,
|
|
134
|
+
"swe-2-high": 262e3,
|
|
135
|
+
"swe-2-medium": 262e3,
|
|
136
|
+
// SWE-1.7 家族。
|
|
137
|
+
"swe-1-7": 262e3,
|
|
138
|
+
"swe-1-7-medium": 262e3,
|
|
139
|
+
"swe-1-7-lightning": 202752,
|
|
140
|
+
// SWE-1.6 家族(免费档默认)。
|
|
141
|
+
"swe-1-6": 2e5,
|
|
142
|
+
"swe-1-6-fast": 2e5,
|
|
143
|
+
// 经 devin 通道转售、且与厂商原生窗口不同的模型(catalog 枚举型 selector)。
|
|
144
|
+
"MODEL_GPT_5_2_LOW": 384e3,
|
|
145
|
+
"MODEL_GPT_5_2_MEDIUM": 384e3,
|
|
146
|
+
"MODEL_GPT_5_2_HIGH": 384e3,
|
|
147
|
+
"MODEL_GPT_5_2_XHIGH": 384e3
|
|
148
|
+
};
|
|
149
|
+
var devinChannelContextWindow = (model) => {
|
|
150
|
+
const raw = model?.trim();
|
|
151
|
+
if (!raw) return void 0;
|
|
152
|
+
return DEVIN_CHANNEL_CONTEXT_WINDOWS[raw];
|
|
153
|
+
};
|
|
154
|
+
var resolveAgentContextWindow = (agent) => (isDevinOAuthAgent(agent) ? devinChannelContextWindow(agent.model) : void 0) ?? getModelContextWindow(agent.model ?? "");
|
|
155
|
+
|
|
123
156
|
// packages/agent-runtime/agentRecordConfig.ts
|
|
124
157
|
function stringField(record, key) {
|
|
125
158
|
const value = record[key];
|
|
@@ -540,6 +573,7 @@ export {
|
|
|
540
573
|
resolveHistoricalToolContentCap,
|
|
541
574
|
projectToolMessageContent,
|
|
542
575
|
clipToolText,
|
|
576
|
+
resolveAgentContextWindow,
|
|
543
577
|
resolveAgentRuntimeConfigFromRecord,
|
|
544
578
|
buildDesktopAgentRuntimeAgentConfigSnapshot,
|
|
545
579
|
buildDesktopAgentRuntimeDialogHistorySnapshot,
|
|
@@ -6,10 +6,10 @@ import {
|
|
|
6
6
|
} from "./chunk-OKCTLCKS.js";
|
|
7
7
|
import {
|
|
8
8
|
isAntigravityOAuthAgent
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-MJHQ3NRV.js";
|
|
10
10
|
import {
|
|
11
11
|
getModelAbility
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-WS22FPWT.js";
|
|
13
13
|
import {
|
|
14
14
|
isOwnedAgentKey,
|
|
15
15
|
ownedAgentKey,
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
import {
|
|
8
8
|
clipMultilineText,
|
|
9
9
|
fetchAndSerializeTable
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-DQD4PYQY.js";
|
|
11
11
|
import {
|
|
12
12
|
isGatewayHttpStatus
|
|
13
13
|
} from "./chunk-NF64D32W.js";
|
|
@@ -28,26 +28,26 @@ import {
|
|
|
28
28
|
} from "./chunk-MEYIRKDN.js";
|
|
29
29
|
import {
|
|
30
30
|
fetchAndCacheMessages
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-ACFF7U3F.js";
|
|
32
32
|
import {
|
|
33
33
|
shouldUseServerProxy
|
|
34
34
|
} from "./chunk-YYLHWIW6.js";
|
|
35
35
|
import {
|
|
36
36
|
fetchServerSyncedCredential
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-D4TJCP3V.js";
|
|
38
38
|
import {
|
|
39
39
|
buildSkillGuidancePromptBlock,
|
|
40
40
|
extractRuntimePageCapabilities,
|
|
41
41
|
resolveBuiltinSkillPage,
|
|
42
42
|
resolveSkillGraphFromRoots
|
|
43
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-JT7FRJP5.js";
|
|
44
44
|
import {
|
|
45
45
|
buildIdentityBlock,
|
|
46
46
|
buildRuntimeGuidanceBlocks,
|
|
47
47
|
compileContextLayers,
|
|
48
48
|
normalizeChatCompletionsBodyForProvider,
|
|
49
49
|
resolveToolGuidedSections
|
|
50
|
-
} from "./chunk-
|
|
50
|
+
} from "./chunk-UUVQJZ75.js";
|
|
51
51
|
import {
|
|
52
52
|
convertMessagesToResponsesInput,
|
|
53
53
|
getUsageRequestOptions,
|
|
@@ -57,10 +57,10 @@ import {
|
|
|
57
57
|
import {
|
|
58
58
|
ANTIGRAVITY_CLOUD_CODE_BASE_URL,
|
|
59
59
|
isAntigravityOAuthAgent
|
|
60
|
-
} from "./chunk-
|
|
60
|
+
} from "./chunk-MJHQ3NRV.js";
|
|
61
61
|
import {
|
|
62
62
|
buildProviderAuthHeaders
|
|
63
|
-
} from "./chunk-
|
|
63
|
+
} from "./chunk-K7M3MWCE.js";
|
|
64
64
|
import {
|
|
65
65
|
estimateTokenCount
|
|
66
66
|
} from "./chunk-PSCNXBYA.js";
|
|
@@ -68,12 +68,12 @@ import {
|
|
|
68
68
|
isOpenAiResponsesModel,
|
|
69
69
|
resolvePlatformChatCompletionsEndpoint,
|
|
70
70
|
resolvePlatformResponsesEndpoint
|
|
71
|
-
} from "./chunk-
|
|
71
|
+
} from "./chunk-ND2J3NRB.js";
|
|
72
72
|
import {
|
|
73
73
|
clampReasoningEffort,
|
|
74
74
|
getModelConfig,
|
|
75
75
|
isModelSupportReasoningEffort
|
|
76
|
-
} from "./chunk-
|
|
76
|
+
} from "./chunk-VRLI2WNW.js";
|
|
77
77
|
import {
|
|
78
78
|
createFileCredentialBroker
|
|
79
79
|
} from "./chunk-HVURBGF3.js";
|
|
@@ -91,8 +91,9 @@ import {
|
|
|
91
91
|
import {
|
|
92
92
|
isDeepInfraKimiModel,
|
|
93
93
|
isFireworksKimiModel,
|
|
94
|
+
isPlatformMimoProviderModel,
|
|
94
95
|
resolveFireworksKimiModel
|
|
95
|
-
} from "./chunk-
|
|
96
|
+
} from "./chunk-ASGDO77C.js";
|
|
96
97
|
import {
|
|
97
98
|
createSpaceKey
|
|
98
99
|
} from "./chunk-UAD2WT54.js";
|
|
@@ -718,9 +719,12 @@ var shouldInjectLlamaCppThinkingToggle = (agentConfig) => {
|
|
|
718
719
|
if (!isLoopbackUrl(agentConfig.customProviderUrl)) return false;
|
|
719
720
|
return /qwen/i.test(agentConfig.model ?? "");
|
|
720
721
|
};
|
|
721
|
-
var shouldDisableMiMoThinking = (agentConfig) => {
|
|
722
|
+
var shouldDisableMiMoThinking = (agentConfig, resolvedModel) => {
|
|
722
723
|
if (agentConfig.enableThinking === true) return false;
|
|
723
|
-
|
|
724
|
+
if (/xiaomimimo\.com/i.test(agentConfig.customProviderUrl ?? "") || (agentConfig.provider ?? "").toLowerCase() === "mimo") {
|
|
725
|
+
return true;
|
|
726
|
+
}
|
|
727
|
+
return isPlatformMimoProviderModel(agentConfig.provider, resolvedModel);
|
|
724
728
|
};
|
|
725
729
|
var shouldDisableKimiThinking = (agentConfig, providerName, resolvedModel) => {
|
|
726
730
|
if (agentConfig.enableThinking !== false) return false;
|
|
@@ -835,7 +839,7 @@ var generateOpenAIRequestBody = (agentConfig, providerName, messages, contexts,
|
|
|
835
839
|
enable_thinking: agentConfig.enableThinking
|
|
836
840
|
};
|
|
837
841
|
}
|
|
838
|
-
if (shouldDisableMiMoThinking(agentConfig)) {
|
|
842
|
+
if (shouldDisableMiMoThinking(agentConfig, resolvedModel)) {
|
|
839
843
|
requestBody.thinking = { type: "disabled" };
|
|
840
844
|
}
|
|
841
845
|
if (shouldDisableKimiThinking(agentConfig, providerName, resolvedModel)) {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
|
+
BUILTIN_DIALOG_LLM_FALLBACK_MODEL,
|
|
2
3
|
BUILTIN_SUMMARY_LLM_CONFIG
|
|
3
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-MC4XLIJ7.js";
|
|
4
5
|
import {
|
|
5
6
|
buildDialogAttachmentPlan,
|
|
6
7
|
extractFileContentIds
|
|
@@ -13,7 +14,7 @@ import {
|
|
|
13
14
|
} from "./chunk-AGGIDPCZ.js";
|
|
14
15
|
import {
|
|
15
16
|
runLlm
|
|
16
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-D4TJCP3V.js";
|
|
17
18
|
import {
|
|
18
19
|
cleanupCliSessionForDialog
|
|
19
20
|
} from "./chunk-US463UAD.js";
|
|
@@ -54,7 +55,7 @@ import {
|
|
|
54
55
|
getModelInfo,
|
|
55
56
|
normalizeUsage,
|
|
56
57
|
resolveAutoExecutionProfile
|
|
57
|
-
} from "./chunk-
|
|
58
|
+
} from "./chunk-VEJ4BOQV.js";
|
|
58
59
|
import {
|
|
59
60
|
COMPACTION_SUMMARY_SYSTEM_PROMPT,
|
|
60
61
|
buildCompactionMetricsFromPlan,
|
|
@@ -69,7 +70,7 @@ import {
|
|
|
69
70
|
import {
|
|
70
71
|
findModelConfig,
|
|
71
72
|
getModelConfig
|
|
72
|
-
} from "./chunk-
|
|
73
|
+
} from "./chunk-VRLI2WNW.js";
|
|
73
74
|
import {
|
|
74
75
|
toErrorMessage
|
|
75
76
|
} from "./chunk-HNMXYYJR.js";
|
|
@@ -84,7 +85,7 @@ import {
|
|
|
84
85
|
isPlatformHostedDeepSeekV4Model,
|
|
85
86
|
isPlatformHostedImageModel,
|
|
86
87
|
isPlatformHostedOpenAIImageModel
|
|
87
|
-
} from "./chunk-
|
|
88
|
+
} from "./chunk-ASGDO77C.js";
|
|
88
89
|
import {
|
|
89
90
|
nolotusId
|
|
90
91
|
} from "./chunk-IZAWJCG7.js";
|
|
@@ -7991,6 +7992,47 @@ var interface_locale_default = {
|
|
|
7991
7992
|
home: "Home",
|
|
7992
7993
|
// === Combined Welcome Section ===
|
|
7993
7994
|
welcomeSection: {
|
|
7995
|
+
brandLanding: {
|
|
7996
|
+
kicker: "Nolo \xB7 Agent Harness",
|
|
7997
|
+
title: "Let AI adapt to the way you work",
|
|
7998
|
+
description: "Nolo gives agents persistent context and routes each task to the model and tools that fit its quality, capability, speed, and cost requirements.",
|
|
7999
|
+
continuity: "Models change. Your way of working should not have to start over.",
|
|
8000
|
+
primaryCta: "Start free",
|
|
8001
|
+
secondaryCta: "Download Nolo",
|
|
8002
|
+
contrasts: [
|
|
8003
|
+
"Not another chat box",
|
|
8004
|
+
"Not an AI that decides everything for you"
|
|
8005
|
+
],
|
|
8006
|
+
contrastsLabel: "What Nolo is not",
|
|
8007
|
+
proofKicker: "Nolo in action",
|
|
8008
|
+
balanceKicker: "Human judgment",
|
|
8009
|
+
principles: [
|
|
8010
|
+
{
|
|
8011
|
+
title: "Good collaboration compounds",
|
|
8012
|
+
proof: "Memory \xB7 Space \xB7 Context",
|
|
8013
|
+
description: "Real work has history, rules, files, and lessons learned. Agents keep useful long-term context, so working together gets smoother over time."
|
|
8014
|
+
},
|
|
8015
|
+
{
|
|
8016
|
+
title: "Use the right intelligence for the right work",
|
|
8017
|
+
proof: "Routing \xB7 Delegation",
|
|
8018
|
+
description: "No model is best at everything. Use stronger models for important judgment, faster and cheaper agents for routine execution, and adopt new models as they improve."
|
|
8019
|
+
},
|
|
8020
|
+
{
|
|
8021
|
+
title: "Respect your judgment. Challenge your blind spots.",
|
|
8022
|
+
proof: "Divergence \xB7 Review",
|
|
8023
|
+
description: "Nolo does more than execute. It respects your intent and choices while surfacing alternatives, risks, and possibilities worth considering."
|
|
8024
|
+
}
|
|
8025
|
+
],
|
|
8026
|
+
balanceTitle: "Automate what should be automated. Keep the choices that matter.",
|
|
8027
|
+
balanceDescription: "Attention is finite. Nolo keeps routine complexity in the background and asks for your judgment only where it truly matters.",
|
|
8028
|
+
systemLabel: "Nolo handles",
|
|
8029
|
+
systemItems: ["Model selection", "Agent orchestration", "Context management", "Cost and speed", "Repeatable execution"],
|
|
8030
|
+
youLabel: "You decide",
|
|
8031
|
+
youItems: ["Goals", "Which risks are worth taking", "Taste", "Direction", "What you truly want to create"],
|
|
8032
|
+
closingLead: "AI can research, execute, compare, verify, and move in parallel.",
|
|
8033
|
+
closingLines: ["Why you do it.", "What good looks like.", "What you truly want to create."],
|
|
8034
|
+
closingEnd: "That remains yours."
|
|
8035
|
+
},
|
|
7994
8036
|
heroTitle: "Let your strongest model plan. Let lower-cost agents execute.",
|
|
7995
8037
|
heroDescription: "Nolo orchestrates your coding agents across models \u2014 so premium capacity handles the hard decisions, not every routine step.",
|
|
7996
8038
|
ctaButton: "Start free",
|
|
@@ -9250,6 +9292,47 @@ var interface_locale_default = {
|
|
|
9250
9292
|
home: "\u9996\u9875",
|
|
9251
9293
|
// === Combined Welcome Section ===
|
|
9252
9294
|
welcomeSection: {
|
|
9295
|
+
brandLanding: {
|
|
9296
|
+
kicker: "Nolo \xB7 Agent Harness",
|
|
9297
|
+
title: "\u8BA9 AI \u9002\u5E94\u4F60\u7684\u5DE5\u4F5C\u65B9\u5F0F",
|
|
9298
|
+
description: "Nolo \u8BA9 Agent \u8BB0\u4F4F\u4F60\u7684\u5DE5\u4F5C\uFF0C\u5728\u4EFB\u52A1\u4E4B\u95F4\u5EF6\u7EED\u4E0A\u4E0B\u6587\uFF0C\u5E76\u6839\u636E\u80FD\u529B\u3001\u8D28\u91CF\u3001\u901F\u5EA6\u548C\u4EF7\u683C\uFF0C\u628A\u5DE5\u4F5C\u4EA4\u7ED9\u66F4\u5408\u9002\u7684\u6A21\u578B\u548C\u5DE5\u5177\u3002",
|
|
9299
|
+
continuity: "\u6A21\u578B\u4F1A\u53D8\u3002\u4F60\u7684\u5DE5\u4F5C\u65B9\u5F0F\u4E0D\u5FC5\u91CD\u6765\u3002",
|
|
9300
|
+
primaryCta: "\u514D\u8D39\u5F00\u59CB",
|
|
9301
|
+
secondaryCta: "\u4E0B\u8F7D Nolo",
|
|
9302
|
+
contrasts: [
|
|
9303
|
+
"\u4E0D\u662F\u53E6\u4E00\u4E2A\u804A\u5929\u6846",
|
|
9304
|
+
"\u4E0D\u662F\u66FF\u4F60\u5305\u529E\u4E00\u5207"
|
|
9305
|
+
],
|
|
9306
|
+
contrastsLabel: "Nolo \u7684\u5B9A\u4F4D\u8FB9\u754C",
|
|
9307
|
+
proofKicker: "\u4EA7\u54C1\u5B9E\u51B5",
|
|
9308
|
+
balanceKicker: "\u4EBA\u7684\u5224\u65AD",
|
|
9309
|
+
principles: [
|
|
9310
|
+
{
|
|
9311
|
+
title: "\u597D\u7684\u5408\u4F5C\u4F1A\u79EF\u7D2F",
|
|
9312
|
+
proof: "\u8BB0\u5FC6 \xB7 \u7A7A\u95F4 \xB7 \u4E0A\u4E0B\u6587",
|
|
9313
|
+
description: "\u771F\u6B63\u7684\u5DE5\u4F5C\u6709\u5386\u53F2\u3001\u6709\u89C4\u5219\u3001\u6709\u6587\u4EF6\uFF0C\u4E5F\u6709\u8E29\u8FC7\u7684\u5751\u3002Agent \u4F1A\u4FDD\u7559\u957F\u671F\u8BB0\u5FC6\u548C\u6709\u4EF7\u503C\u7684\u4E0A\u4E0B\u6587\uFF0C\u5408\u4F5C\u8D8A\u4E45\uFF0C\u8D8A\u987A\u624B\u3002"
|
|
9314
|
+
},
|
|
9315
|
+
{
|
|
9316
|
+
title: "\u5408\u9002\u7684\u667A\u80FD\uFF0C\u505A\u5408\u9002\u7684\u5DE5\u4F5C",
|
|
9317
|
+
proof: "\u8DEF\u7531 \xB7 \u6D3E\u53D1",
|
|
9318
|
+
description: "\u6CA1\u6709\u4E00\u4E2A\u6A21\u578B\u9002\u5408\u6240\u6709\u4EFB\u52A1\u3002\u91CD\u8981\u5224\u65AD\u7528\u66F4\u5F3A\u7684\u6A21\u578B\uFF0C\u5E38\u89C4\u6267\u884C\u7528\u66F4\u5FEB\u3001\u66F4\u4FBF\u5B9C\u7684 Agent\uFF1B\u65B0\u7684\u6A21\u578B\u51FA\u73B0\uFF0C\u4E5F\u53EF\u4EE5\u968F\u65F6\u6210\u4E3A\u65B0\u7684\u80FD\u529B\u3002"
|
|
9319
|
+
},
|
|
9320
|
+
{
|
|
9321
|
+
title: "\u5C0A\u91CD\u4F60\u7684\u5224\u65AD\uFF0C\u4E5F\u6311\u6218\u4F60\u7684\u76F2\u533A",
|
|
9322
|
+
proof: "\u53D1\u6563 \xB7 \u590D\u6838",
|
|
9323
|
+
description: "Nolo \u4E0D\u53EA\u57CB\u5934\u6267\u884C\u3002\u5B83\u5C0A\u91CD\u4F60\u7684\u521B\u610F\u548C\u9009\u62E9\uFF0C\u4E5F\u4F1A\u5728\u503C\u5F97\u7684\u65F6\u5019\u63D0\u51FA\u4E0D\u540C\u65B9\u6848\u3001\u6307\u51FA\u98CE\u9669\u3001\u8865\u5145\u4F60\u6CA1\u6709\u770B\u5230\u7684\u53EF\u80FD\u6027\u3002"
|
|
9324
|
+
}
|
|
9325
|
+
],
|
|
9326
|
+
balanceTitle: "\u8BE5\u81EA\u52A8\u7684\u81EA\u52A8\uFF0C\u8BE5\u9009\u62E9\u7684\u7531\u4F60\u9009\u62E9",
|
|
9327
|
+
balanceDescription: "\u6CE8\u610F\u529B\u662F\u6709\u9650\u7684\u3002Nolo \u5C3D\u91CF\u628A\u53EF\u4EE5\u88AB\u7CFB\u7EDF\u5224\u65AD\u7684\u590D\u6742\u6027\u653E\u5230\u80CC\u540E\uFF0C\u53EA\u5728\u771F\u6B63\u9700\u8981\u4F60\u7684\u5224\u65AD\u65F6\u6253\u6270\u4F60\u3002",
|
|
9328
|
+
systemLabel: "Nolo \u5C3D\u91CF\u5904\u7406",
|
|
9329
|
+
systemItems: ["\u6A21\u578B\u9009\u62E9", "Agent \u8C03\u5EA6", "\u4E0A\u4E0B\u6587\u6574\u7406", "\u6210\u672C\u4E0E\u901F\u5EA6", "\u91CD\u590D\u6267\u884C"],
|
|
9330
|
+
youLabel: "\u7559\u7ED9\u4F60\u51B3\u5B9A",
|
|
9331
|
+
youItems: ["\u76EE\u6807", "\u613F\u610F\u627F\u62C5\u4EC0\u4E48\u98CE\u9669", "\u5BA1\u7F8E", "\u65B9\u5411", "\u771F\u6B63\u60F3\u521B\u9020\u4EC0\u4E48"],
|
|
9332
|
+
closingLead: "AI \u53EF\u4EE5\u7814\u7A76\u3001\u6267\u884C\u3001\u6BD4\u8F83\u3001\u68C0\u67E5\u548C\u5E76\u884C\u63A8\u8FDB\u3002",
|
|
9333
|
+
closingLines: ["\u4F60\u4E3A\u4EC0\u4E48\u505A\u3002", "\u4EC0\u4E48\u662F\u597D\u7684\u3002", "\u4F60\u771F\u6B63\u60F3\u521B\u9020\u4EC0\u4E48\u3002"],
|
|
9334
|
+
closingEnd: "\u59CB\u7EC8\u662F\u4F60\u3002"
|
|
9335
|
+
},
|
|
9253
9336
|
heroTitle: "\u8BA9\u6700\u5F3A\u7684\u6A21\u578B\u89C4\u5212\uFF0C\u8BA9\u66F4\u4F4E\u6210\u672C\u7684 Agent \u6267\u884C\u3002",
|
|
9254
9337
|
heroDescription: "Nolo \u8DE8\u6A21\u578B\u7F16\u6392\u4F60\u7684\u7F16\u7801 Agent\u2014\u2014\u8BA9\u9AD8\u4EF7\u503C\u7B97\u529B\u4E13\u6CE8\u6838\u5FC3\u51B3\u7B56\uFF0C\u800C\u4E0D\u662F\u6D88\u8017\u5728\u6BCF\u4E2A\u5E38\u89C4\u6B65\u9AA4\u4E0A\u3002",
|
|
9255
9338
|
ctaButton: "\u514D\u8D39\u5F00\u59CB",
|
|
@@ -10509,6 +10592,47 @@ var interface_locale_default = {
|
|
|
10509
10592
|
home: "\u9996\u9801",
|
|
10510
10593
|
// === Combined Welcome Section ===
|
|
10511
10594
|
welcomeSection: {
|
|
10595
|
+
brandLanding: {
|
|
10596
|
+
kicker: "Nolo \xB7 Agent Harness",
|
|
10597
|
+
title: "\u8B93 AI \u9069\u61C9\u4F60\u7684\u5DE5\u4F5C\u65B9\u5F0F",
|
|
10598
|
+
description: "Nolo \u8B93 Agent \u8A18\u4F4F\u4F60\u7684\u5DE5\u4F5C\uFF0C\u5728\u4EFB\u52D9\u4E4B\u9593\u5EF6\u7E8C\u4E0A\u4E0B\u6587\uFF0C\u4E26\u6839\u64DA\u80FD\u529B\u3001\u54C1\u8CEA\u3001\u901F\u5EA6\u548C\u50F9\u683C\uFF0C\u628A\u5DE5\u4F5C\u4EA4\u7D66\u66F4\u5408\u9069\u7684\u6A21\u578B\u548C\u5DE5\u5177\u3002",
|
|
10599
|
+
continuity: "\u6A21\u578B\u6703\u8B8A\u3002\u4F60\u7684\u5DE5\u4F5C\u65B9\u5F0F\u4E0D\u5FC5\u91CD\u4F86\u3002",
|
|
10600
|
+
primaryCta: "\u514D\u8CBB\u958B\u59CB",
|
|
10601
|
+
secondaryCta: "\u4E0B\u8F09 Nolo",
|
|
10602
|
+
contrasts: [
|
|
10603
|
+
"\u4E0D\u662F\u53E6\u4E00\u500B\u804A\u5929\u6846",
|
|
10604
|
+
"\u4E0D\u662F\u66FF\u4F60\u5305\u8FA6\u4E00\u5207"
|
|
10605
|
+
],
|
|
10606
|
+
contrastsLabel: "Nolo \u7684\u5B9A\u4F4D\u908A\u754C",
|
|
10607
|
+
proofKicker: "\u7522\u54C1\u5BE6\u6CC1",
|
|
10608
|
+
balanceKicker: "\u4EBA\u7684\u5224\u65B7",
|
|
10609
|
+
principles: [
|
|
10610
|
+
{
|
|
10611
|
+
title: "\u597D\u7684\u5408\u4F5C\u6703\u7D2F\u7A4D",
|
|
10612
|
+
proof: "\u8A18\u61B6 \xB7 \u7A7A\u9593 \xB7 \u4E0A\u4E0B\u6587",
|
|
10613
|
+
description: "\u771F\u6B63\u7684\u5DE5\u4F5C\u6709\u6B77\u53F2\u3001\u6709\u898F\u5247\u3001\u6709\u6587\u4EF6\uFF0C\u4E5F\u6709\u8E29\u904E\u7684\u5751\u3002Agent \u6703\u4FDD\u7559\u9577\u671F\u8A18\u61B6\u548C\u6709\u50F9\u503C\u7684\u4E0A\u4E0B\u6587\uFF0C\u5408\u4F5C\u8D8A\u4E45\uFF0C\u8D8A\u9806\u624B\u3002"
|
|
10614
|
+
},
|
|
10615
|
+
{
|
|
10616
|
+
title: "\u5408\u9069\u7684\u667A\u80FD\uFF0C\u505A\u5408\u9069\u7684\u5DE5\u4F5C",
|
|
10617
|
+
proof: "\u8DEF\u7531 \xB7 \u59D4\u6D3E",
|
|
10618
|
+
description: "\u6C92\u6709\u4E00\u500B\u6A21\u578B\u9069\u5408\u6240\u6709\u4EFB\u52D9\u3002\u91CD\u8981\u5224\u65B7\u7528\u66F4\u5F37\u7684\u6A21\u578B\uFF0C\u5E38\u898F\u57F7\u884C\u7528\u66F4\u5FEB\u3001\u66F4\u4FBF\u5B9C\u7684 Agent\uFF1B\u65B0\u7684\u6A21\u578B\u51FA\u73FE\uFF0C\u4E5F\u53EF\u4EE5\u96A8\u6642\u6210\u70BA\u65B0\u7684\u80FD\u529B\u3002"
|
|
10619
|
+
},
|
|
10620
|
+
{
|
|
10621
|
+
title: "\u5C0A\u91CD\u4F60\u7684\u5224\u65B7\uFF0C\u4E5F\u6311\u6230\u4F60\u7684\u76F2\u5340",
|
|
10622
|
+
proof: "\u767C\u6563 \xB7 \u8907\u6838",
|
|
10623
|
+
description: "Nolo \u4E0D\u53EA\u57CB\u982D\u57F7\u884C\u3002\u5B83\u5C0A\u91CD\u4F60\u7684\u5275\u610F\u548C\u9078\u64C7\uFF0C\u4E5F\u6703\u5728\u503C\u5F97\u7684\u6642\u5019\u63D0\u51FA\u4E0D\u540C\u65B9\u6848\u3001\u6307\u51FA\u98A8\u96AA\u3001\u88DC\u5145\u4F60\u6C92\u6709\u770B\u5230\u7684\u53EF\u80FD\u6027\u3002"
|
|
10624
|
+
}
|
|
10625
|
+
],
|
|
10626
|
+
balanceTitle: "\u8A72\u81EA\u52D5\u7684\u81EA\u52D5\uFF0C\u8A72\u9078\u64C7\u7684\u7531\u4F60\u9078\u64C7",
|
|
10627
|
+
balanceDescription: "\u6CE8\u610F\u529B\u662F\u6709\u9650\u7684\u3002Nolo \u76E1\u91CF\u628A\u53EF\u4EE5\u88AB\u7CFB\u7D71\u5224\u65B7\u7684\u8907\u96DC\u6027\u653E\u5230\u80CC\u5F8C\uFF0C\u53EA\u5728\u771F\u6B63\u9700\u8981\u4F60\u7684\u5224\u65B7\u6642\u6253\u64FE\u4F60\u3002",
|
|
10628
|
+
systemLabel: "Nolo \u76E1\u91CF\u8655\u7406",
|
|
10629
|
+
systemItems: ["\u6A21\u578B\u9078\u64C7", "Agent \u8ABF\u5EA6", "\u4E0A\u4E0B\u6587\u6574\u7406", "\u6210\u672C\u8207\u901F\u5EA6", "\u91CD\u8907\u57F7\u884C"],
|
|
10630
|
+
youLabel: "\u7559\u7D66\u4F60\u6C7A\u5B9A",
|
|
10631
|
+
youItems: ["\u76EE\u6A19", "\u9858\u610F\u627F\u64D4\u4EC0\u9EBC\u98A8\u96AA", "\u5BE9\u7F8E", "\u65B9\u5411", "\u771F\u6B63\u60F3\u5275\u9020\u4EC0\u9EBC"],
|
|
10632
|
+
closingLead: "AI \u53EF\u4EE5\u7814\u7A76\u3001\u57F7\u884C\u3001\u6BD4\u8F03\u3001\u6AA2\u67E5\u548C\u4E26\u884C\u63A8\u9032\u3002",
|
|
10633
|
+
closingLines: ["\u4F60\u70BA\u4EC0\u9EBC\u505A\u3002", "\u4EC0\u9EBC\u662F\u597D\u7684\u3002", "\u4F60\u771F\u6B63\u60F3\u5275\u9020\u4EC0\u9EBC\u3002"],
|
|
10634
|
+
closingEnd: "\u59CB\u7D42\u662F\u4F60\u3002"
|
|
10635
|
+
},
|
|
10512
10636
|
heroTitle: "\u8B93\u6700\u5F37\u6A21\u578B\u898F\u5283\uFF0C\u8B93\u66F4\u4F4E\u6210\u672C\u7684 Agent \u57F7\u884C\u3002",
|
|
10513
10637
|
heroDescription: "Nolo \u8DE8\u6A21\u578B\u7DE8\u6392\u60A8\u7684\u7DE8\u78BC Agent\u2014\u2014\u8B93\u9AD8\u50F9\u503C\u7B97\u529B\u5C08\u6CE8\u6838\u5FC3\u6C7A\u7B56\uFF0C\u800C\u4E0D\u662F\u6D88\u8017\u5728\u6BCF\u500B\u5E38\u898F\u6B65\u9A5F\u4E0A\u3002",
|
|
10514
10638
|
ctaButton: "\u514D\u8CBB\u958B\u59CB",
|
|
@@ -11690,6 +11814,47 @@ var interface_locale_default = {
|
|
|
11690
11814
|
home: "\u30DB\u30FC\u30E0",
|
|
11691
11815
|
// === Combined Welcome Section ===
|
|
11692
11816
|
welcomeSection: {
|
|
11817
|
+
brandLanding: {
|
|
11818
|
+
kicker: "Nolo \xB7 Agent Harness",
|
|
11819
|
+
title: "AI \u3092\u3042\u306A\u305F\u306E\u50CD\u304D\u65B9\u306B\u5408\u308F\u305B\u308B",
|
|
11820
|
+
description: "Nolo \u306F\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u306B\u6C38\u7D9A\u7684\u306A\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u3092\u6301\u305F\u305B\u3001\u54C1\u8CEA\u30FB\u80FD\u529B\u30FB\u901F\u5EA6\u30FB\u30B3\u30B9\u30C8\u306E\u8981\u4EF6\u306B\u5408\u3046\u30E2\u30C7\u30EB\u3068\u30C4\u30FC\u30EB\u3078\u5404\u30BF\u30B9\u30AF\u3092\u632F\u308A\u5206\u3051\u307E\u3059\u3002",
|
|
11821
|
+
continuity: "\u30E2\u30C7\u30EB\u306F\u5909\u308F\u308B\u3002\u3042\u306A\u305F\u306E\u50CD\u304D\u65B9\u306F\u3084\u308A\u76F4\u3059\u5FC5\u8981\u304C\u306A\u3044\u3002",
|
|
11822
|
+
primaryCta: "\u7121\u6599\u3067\u59CB\u3081\u308B",
|
|
11823
|
+
secondaryCta: "Nolo \u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9",
|
|
11824
|
+
contrasts: [
|
|
11825
|
+
"\u3082\u3046\u4E00\u3064\u306E\u30C1\u30E3\u30C3\u30C8\u30DC\u30C3\u30AF\u30B9\u3067\u306F\u306A\u3044",
|
|
11826
|
+
"\u3059\u3079\u3066\u3092\u4EE3\u884C\u3059\u308B AI \u3067\u306F\u306A\u3044"
|
|
11827
|
+
],
|
|
11828
|
+
contrastsLabel: "Nolo \u306E\u4F4D\u7F6E\u3065\u3051",
|
|
11829
|
+
proofKicker: "\u88FD\u54C1\u306E\u5B9F\u969B",
|
|
11830
|
+
balanceKicker: "\u4EBA\u306E\u5224\u65AD",
|
|
11831
|
+
principles: [
|
|
11832
|
+
{
|
|
11833
|
+
title: "\u826F\u3044\u5354\u50CD\u306F\u84C4\u7A4D\u3055\u308C\u308B",
|
|
11834
|
+
proof: "\u30E1\u30E2\u30EA \xB7 \u30B9\u30DA\u30FC\u30B9 \xB7 \u30B3\u30F3\u30C6\u30AD\u30B9\u30C8",
|
|
11835
|
+
description: "\u5B9F\u969B\u306E\u4ED5\u4E8B\u306B\u306F\u5C65\u6B74\u3001\u30EB\u30FC\u30EB\u3001\u30D5\u30A1\u30A4\u30EB\u3001\u305D\u3057\u3066\u5B66\u3093\u3060\u6559\u8A13\u304C\u3042\u308B\u3002\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u306F\u6709\u7528\u306A\u9577\u671F\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u3092\u4FDD\u6301\u3059\u308B\u306E\u3067\u3001\u5354\u50CD\u306F\u7D9A\u3051\u308B\u307B\u3069\u6ED1\u3089\u304B\u306B\u306A\u308B\u3002"
|
|
11836
|
+
},
|
|
11837
|
+
{
|
|
11838
|
+
title: "\u9069\u5207\u306A\u77E5\u80FD\u3092\u3001\u9069\u5207\u306A\u4ED5\u4E8B\u306B",
|
|
11839
|
+
proof: "\u30EB\u30FC\u30C6\u30A3\u30F3\u30B0 \xB7 \u59D4\u8B72",
|
|
11840
|
+
description: "\u3042\u3089\u3086\u308B\u9762\u3067\u6700\u5F37\u306E\u30E2\u30C7\u30EB\u306F\u5B58\u5728\u3057\u306A\u3044\u3002\u91CD\u8981\u306A\u5224\u65AD\u306B\u306F\u5F37\u3044\u30E2\u30C7\u30EB\u3092\u3001\u5B9A\u578B\u51E6\u7406\u306B\u306F\u901F\u304F\u3066\u5B89\u3044\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u3092\u3002\u65B0\u3057\u3044\u30E2\u30C7\u30EB\u304C\u51FA\u308C\u3070\u3001\u3044\u3064\u3067\u3082\u65B0\u3057\u3044\u80FD\u529B\u3068\u3057\u3066\u53D6\u308A\u8FBC\u3081\u308B\u3002"
|
|
11841
|
+
},
|
|
11842
|
+
{
|
|
11843
|
+
title: "\u3042\u306A\u305F\u306E\u5224\u65AD\u3092\u5C0A\u91CD\u3057\u3001\u76F2\u70B9\u306B\u6311\u3080",
|
|
11844
|
+
proof: "\u767A\u6563 \xB7 \u30EC\u30D3\u30E5\u30FC",
|
|
11845
|
+
description: "Nolo \u306F\u5B9F\u884C\u3059\u308B\u3060\u3051\u3067\u306F\u306A\u3044\u3002\u3042\u306A\u305F\u306E\u610F\u56F3\u3068\u9078\u629E\u3092\u5C0A\u91CD\u3057\u306A\u304C\u3089\u3001\u691C\u8A0E\u306B\u5024\u3059\u308B\u4EE3\u66FF\u6848\u3001\u30EA\u30B9\u30AF\u3001\u53EF\u80FD\u6027\u3092\u63D0\u793A\u3059\u308B\u3002"
|
|
11846
|
+
}
|
|
11847
|
+
],
|
|
11848
|
+
balanceTitle: "\u81EA\u52D5\u5316\u3059\u3079\u304D\u3053\u3068\u306F\u81EA\u52D5\u5316\u3057\u3001\u91CD\u8981\u306A\u9078\u629E\u306F\u3042\u306A\u305F\u306B\u6B8B\u3059",
|
|
11849
|
+
balanceDescription: "\u6CE8\u610F\u529B\u306F\u6709\u9650\u3060\u3002Nolo \u306F\u5B9A\u578B\u306E\u8907\u96D1\u3055\u3092\u80CC\u5F8C\u306B\u96A0\u3057\u3001\u672C\u5F53\u306B\u5FC5\u8981\u306A\u3068\u3053\u308D\u3067\u3060\u3051\u3042\u306A\u305F\u306E\u5224\u65AD\u3092\u6C42\u3081\u308B\u3002",
|
|
11850
|
+
systemLabel: "Nolo \u304C\u51E6\u7406\u3059\u308B",
|
|
11851
|
+
systemItems: ["\u30E2\u30C7\u30EB\u9078\u629E", "\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u7D71\u62EC", "\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u7BA1\u7406", "\u30B3\u30B9\u30C8\u3068\u901F\u5EA6", "\u53CD\u5FA9\u5B9F\u884C"],
|
|
11852
|
+
youLabel: "\u3042\u306A\u305F\u304C\u6C7A\u3081\u308B",
|
|
11853
|
+
youItems: ["\u76EE\u6A19", "\u3069\u306E\u30EA\u30B9\u30AF\u3092\u5F15\u304D\u53D7\u3051\u308B\u304B", "\u5BE9\u7F8E", "\u65B9\u5411", "\u672C\u5F53\u306B\u4F5C\u308A\u305F\u3044\u3082\u306E"],
|
|
11854
|
+
closingLead: "AI \u306F\u8ABF\u67FB\u3057\u3001\u5B9F\u884C\u3057\u3001\u6BD4\u8F03\u3057\u3001\u691C\u8A3C\u3057\u3001\u4E26\u884C\u3057\u3066\u9032\u3081\u3089\u308C\u308B\u3002",
|
|
11855
|
+
closingLines: ["\u306A\u305C\u3084\u308B\u306E\u304B\u3002", "\u4F55\u304C\u826F\u3044\u306E\u304B\u3002", "\u672C\u5F53\u306B\u4F5C\u308A\u305F\u3044\u3082\u306E\u306F\u4F55\u304B\u3002"],
|
|
11856
|
+
closingEnd: "\u305D\u308C\u306F\u3001\u3042\u306A\u305F\u306E\u3082\u306E\u3060\u3002"
|
|
11857
|
+
},
|
|
11693
11858
|
heroTitle: "\u6700\u3082\u5F37\u3044\u30E2\u30C7\u30EB\u304C\u8A08\u753B\u3057\u3001\u3088\u308A\u4F4E\u30B3\u30B9\u30C8\u306A\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u304C\u5B9F\u884C\u3059\u308B\u3002",
|
|
11694
11859
|
heroDescription: "Nolo \u306F\u30E2\u30C7\u30EB\u3092\u6A2A\u65AD\u3057\u3066\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u3092\u7D71\u62EC\u3057\u3001\u30D7\u30EC\u30DF\u30A2\u30E0\u306A\u5BB9\u91CF\u3092\u5B9A\u578B\u4F5C\u696D\u3067\u306F\u306A\u304F\u91CD\u8981\u306A\u610F\u601D\u6C7A\u5B9A\u306B\u96C6\u4E2D\u3055\u305B\u307E\u3059\u3002",
|
|
11695
11860
|
ctaButton: "\u7121\u6599\u3067\u59CB\u3081\u308B",
|
|
@@ -14646,6 +14811,77 @@ var localFirst_locale_default = {
|
|
|
14646
14811
|
}
|
|
14647
14812
|
};
|
|
14648
14813
|
|
|
14814
|
+
// packages/app/i18n/translations/openAuditable.locale.ts
|
|
14815
|
+
var english = {
|
|
14816
|
+
openAuditable: {
|
|
14817
|
+
kicker: "Open & Auditable",
|
|
14818
|
+
title: "Don\u2019t trust the binary. Verify it.",
|
|
14819
|
+
description: "Nolo\u2019s client source is public. Official desktop release metadata records the exact public repository commit used for the build and the SHA-256 of each artifact.",
|
|
14820
|
+
viewSource: "View source",
|
|
14821
|
+
verifyRelease: "Verify current release",
|
|
14822
|
+
publicCommitTitle: "Exact public commit",
|
|
14823
|
+
publicCommitText: "Release metadata records the exact public projection SHA used for the build.",
|
|
14824
|
+
hashTitle: "Artifact checksum",
|
|
14825
|
+
hashText: "The public manifest records SHA-256 for each downloadable desktop artifact.",
|
|
14826
|
+
auditTitle: "Auditable client",
|
|
14827
|
+
auditText: "Inspect how the client reads files, invokes tools, and talks to model providers."
|
|
14828
|
+
}
|
|
14829
|
+
};
|
|
14830
|
+
var openAuditable_locale_default = {
|
|
14831
|
+
["en" /* EN */]: { translation: english },
|
|
14832
|
+
["zh-CN" /* ZH_CN */]: {
|
|
14833
|
+
translation: {
|
|
14834
|
+
openAuditable: {
|
|
14835
|
+
kicker: "\u5F00\u653E \xB7 \u53EF\u5BA1\u8BA1",
|
|
14836
|
+
title: "\u4E0D\u8981\u53EA\u4FE1\u5B89\u88C5\u5305\uFF0C\u81EA\u5DF1\u9A8C\u8BC1\u3002",
|
|
14837
|
+
description: "Nolo \u5BA2\u6237\u7AEF\u6E90\u7801\u516C\u5F00\u3002\u5B98\u65B9\u684C\u9762\u7248\u53D1\u5E03\u5143\u6570\u636E\u4F1A\u8BB0\u5F55\u6784\u5EFA\u6240\u5BF9\u5E94\u7684\u516C\u5F00\u4ED3\u5E93\u63D0\u4EA4\uFF0C\u4EE5\u53CA\u6BCF\u4E2A\u5B89\u88C5\u5305\u7684 SHA-256 \u6821\u9A8C\u503C\u3002",
|
|
14838
|
+
viewSource: "\u67E5\u770B\u6E90\u7801",
|
|
14839
|
+
verifyRelease: "\u9A8C\u8BC1\u5F53\u524D\u7248\u672C",
|
|
14840
|
+
publicCommitTitle: "\u5BF9\u5E94\u516C\u5F00\u63D0\u4EA4",
|
|
14841
|
+
publicCommitText: "\u53D1\u5E03\u5143\u6570\u636E\u4F1A\u8BB0\u5F55\u6784\u5EFA\u4F7F\u7528\u7684\u51C6\u786E\u516C\u5F00 projection SHA\u3002",
|
|
14842
|
+
hashTitle: "\u5B89\u88C5\u5305\u6821\u9A8C\u503C",
|
|
14843
|
+
hashText: "\u516C\u5F00 manifest \u4F1A\u8BB0\u5F55\u6BCF\u4E2A\u53EF\u4E0B\u8F7D\u684C\u9762\u5B89\u88C5\u5305\u7684 SHA-256\u3002",
|
|
14844
|
+
auditTitle: "\u5BA2\u6237\u7AEF\u53EF\u5BA1\u8BA1",
|
|
14845
|
+
auditText: "\u4F60\u53EF\u4EE5\u68C0\u67E5\u5BA2\u6237\u7AEF\u5982\u4F55\u8BFB\u53D6\u6587\u4EF6\u3001\u8C03\u7528\u5DE5\u5177\uFF0C\u4EE5\u53CA\u8FDE\u63A5\u6A21\u578B\u63D0\u4F9B\u65B9\u3002"
|
|
14846
|
+
}
|
|
14847
|
+
}
|
|
14848
|
+
},
|
|
14849
|
+
["zh-Hant" /* ZH_HANT */]: {
|
|
14850
|
+
translation: {
|
|
14851
|
+
openAuditable: {
|
|
14852
|
+
kicker: "\u958B\u653E \xB7 \u53EF\u7A3D\u6838",
|
|
14853
|
+
title: "\u4E0D\u8981\u53EA\u76F8\u4FE1\u5B89\u88DD\u6A94\uFF0C\u81EA\u5DF1\u9A57\u8B49\u3002",
|
|
14854
|
+
description: "Nolo \u7528\u6236\u7AEF\u539F\u59CB\u78BC\u516C\u958B\u3002\u5B98\u65B9\u684C\u9762\u7248\u767C\u5E03\u4E2D\u7E7C\u8CC7\u6599\u6703\u8A18\u9304\u5EFA\u7F6E\u6240\u5C0D\u61C9\u7684\u516C\u958B\u5132\u5B58\u5EAB\u63D0\u4EA4\uFF0C\u4EE5\u53CA\u6BCF\u500B\u5B89\u88DD\u6A94\u7684 SHA-256 \u6821\u9A57\u503C\u3002",
|
|
14855
|
+
viewSource: "\u67E5\u770B\u539F\u59CB\u78BC",
|
|
14856
|
+
verifyRelease: "\u9A57\u8B49\u76EE\u524D\u7248\u672C",
|
|
14857
|
+
publicCommitTitle: "\u5C0D\u61C9\u516C\u958B\u63D0\u4EA4",
|
|
14858
|
+
publicCommitText: "\u767C\u5E03\u4E2D\u7E7C\u8CC7\u6599\u6703\u8A18\u9304\u5EFA\u7F6E\u4F7F\u7528\u7684\u7CBE\u78BA\u516C\u958B projection SHA\u3002",
|
|
14859
|
+
hashTitle: "\u5B89\u88DD\u6A94\u6821\u9A57\u503C",
|
|
14860
|
+
hashText: "\u516C\u958B manifest \u6703\u8A18\u9304\u6BCF\u500B\u53EF\u4E0B\u8F09\u684C\u9762\u5B89\u88DD\u6A94\u7684 SHA-256\u3002",
|
|
14861
|
+
auditTitle: "\u7528\u6236\u7AEF\u53EF\u7A3D\u6838",
|
|
14862
|
+
auditText: "\u4F60\u53EF\u4EE5\u6AA2\u67E5\u7528\u6236\u7AEF\u5982\u4F55\u8B80\u53D6\u6A94\u6848\u3001\u547C\u53EB\u5DE5\u5177\uFF0C\u4EE5\u53CA\u9023\u63A5\u6A21\u578B\u63D0\u4F9B\u65B9\u3002"
|
|
14863
|
+
}
|
|
14864
|
+
}
|
|
14865
|
+
},
|
|
14866
|
+
["ja" /* JA */]: {
|
|
14867
|
+
translation: {
|
|
14868
|
+
openAuditable: {
|
|
14869
|
+
kicker: "Open & Auditable",
|
|
14870
|
+
title: "\u30D0\u30A4\u30CA\u30EA\u3092\u305F\u3060\u4FE1\u3058\u305A\u3001\u81EA\u5206\u3067\u691C\u8A3C\u3067\u304D\u307E\u3059\u3002",
|
|
14871
|
+
description: "Nolo \u306E\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u30BD\u30FC\u30B9\u306F\u516C\u958B\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u516C\u5F0F\u30C7\u30B9\u30AF\u30C8\u30C3\u30D7\u7248\u306E\u30EA\u30EA\u30FC\u30B9\u30E1\u30BF\u30C7\u30FC\u30BF\u306B\u306F\u3001\u30D3\u30EB\u30C9\u306B\u5BFE\u5FDC\u3059\u308B\u516C\u958B\u30EA\u30DD\u30B8\u30C8\u30EA\u306E\u6B63\u78BA\u306A\u30B3\u30DF\u30C3\u30C8\u3068\u3001\u5404\u6210\u679C\u7269\u306E SHA-256 \u304C\u8A18\u9332\u3055\u308C\u307E\u3059\u3002",
|
|
14872
|
+
viewSource: "\u30BD\u30FC\u30B9\u3092\u898B\u308B",
|
|
14873
|
+
verifyRelease: "\u73FE\u5728\u306E\u30EA\u30EA\u30FC\u30B9\u3092\u691C\u8A3C",
|
|
14874
|
+
publicCommitTitle: "\u6B63\u78BA\u306A\u516C\u958B\u30B3\u30DF\u30C3\u30C8",
|
|
14875
|
+
publicCommitText: "\u30EA\u30EA\u30FC\u30B9\u30E1\u30BF\u30C7\u30FC\u30BF\u306B\u306F\u3001\u30D3\u30EB\u30C9\u306B\u4F7F\u7528\u3057\u305F\u516C\u958B projection SHA \u304C\u8A18\u9332\u3055\u308C\u307E\u3059\u3002",
|
|
14876
|
+
hashTitle: "\u6210\u679C\u7269\u30C1\u30A7\u30C3\u30AF\u30B5\u30E0",
|
|
14877
|
+
hashText: "\u516C\u958B manifest \u306B\u306F\u3001\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u53EF\u80FD\u306A\u5404\u30C7\u30B9\u30AF\u30C8\u30C3\u30D7\u6210\u679C\u7269\u306E SHA-256 \u304C\u8A18\u9332\u3055\u308C\u307E\u3059\u3002",
|
|
14878
|
+
auditTitle: "\u76E3\u67FB\u53EF\u80FD\u306A\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8",
|
|
14879
|
+
auditText: "\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u304C\u30D5\u30A1\u30A4\u30EB\u3092\u8AAD\u307F\u3001\u30C4\u30FC\u30EB\u3092\u547C\u3073\u51FA\u3057\u3001\u30E2\u30C7\u30EB\u30D7\u30ED\u30D0\u30A4\u30C0\u30FC\u3068\u901A\u4FE1\u3059\u308B\u65B9\u6CD5\u3092\u78BA\u8A8D\u3067\u304D\u307E\u3059\u3002"
|
|
14880
|
+
}
|
|
14881
|
+
}
|
|
14882
|
+
}
|
|
14883
|
+
};
|
|
14884
|
+
|
|
14649
14885
|
// packages/app/i18n/i18n.config.ts
|
|
14650
14886
|
var resources = {
|
|
14651
14887
|
["en" /* EN */]: {
|
|
@@ -14660,6 +14896,7 @@ var resources = {
|
|
|
14660
14896
|
...aup_locale_default["en" /* EN */].translation,
|
|
14661
14897
|
...footer_locale_default["en" /* EN */].translation,
|
|
14662
14898
|
...localFirst_locale_default["en" /* EN */].translation,
|
|
14899
|
+
...openAuditable_locale_default["en" /* EN */].translation,
|
|
14663
14900
|
seo: seo_locale_default["en" /* EN */]
|
|
14664
14901
|
},
|
|
14665
14902
|
space: space_locale_default["en" /* EN */].translation,
|
|
@@ -14678,6 +14915,7 @@ var resources = {
|
|
|
14678
14915
|
...aup_locale_default["zh-CN" /* ZH_CN */].translation,
|
|
14679
14916
|
...footer_locale_default["zh-CN" /* ZH_CN */].translation,
|
|
14680
14917
|
...localFirst_locale_default["zh-CN" /* ZH_CN */].translation,
|
|
14918
|
+
...openAuditable_locale_default["zh-CN" /* ZH_CN */].translation,
|
|
14681
14919
|
seo: seo_locale_default["zh-CN" /* ZH_CN */]
|
|
14682
14920
|
},
|
|
14683
14921
|
space: space_locale_default["zh-CN" /* ZH_CN */].translation,
|
|
@@ -14696,6 +14934,7 @@ var resources = {
|
|
|
14696
14934
|
...aup_locale_default["zh-Hant" /* ZH_HANT */].translation,
|
|
14697
14935
|
...footer_locale_default["zh-Hant" /* ZH_HANT */].translation,
|
|
14698
14936
|
...localFirst_locale_default["zh-Hant" /* ZH_HANT */].translation,
|
|
14937
|
+
...openAuditable_locale_default["zh-Hant" /* ZH_HANT */].translation,
|
|
14699
14938
|
seo: seo_locale_default["zh-Hant" /* ZH_HANT */]
|
|
14700
14939
|
},
|
|
14701
14940
|
space: space_locale_default["zh-Hant" /* ZH_HANT */].translation,
|
|
@@ -14714,6 +14953,7 @@ var resources = {
|
|
|
14714
14953
|
...aup_locale_default["ja" /* JA */].translation,
|
|
14715
14954
|
...footer_locale_default["ja" /* JA */].translation,
|
|
14716
14955
|
...localFirst_locale_default["ja" /* JA */].translation,
|
|
14956
|
+
...openAuditable_locale_default["ja" /* JA */].translation,
|
|
14717
14957
|
seo: seo_locale_default["ja" /* JA */]
|
|
14718
14958
|
},
|
|
14719
14959
|
space: space_locale_default["ja" /* JA */].translation,
|
|
@@ -14732,6 +14972,7 @@ var resources = {
|
|
|
14732
14972
|
...aup_locale_default["ko" /* KO */]?.translation ?? aup_locale_default["en" /* EN */].translation,
|
|
14733
14973
|
...footer_locale_default["ko" /* KO */]?.translation ?? footer_locale_default["en" /* EN */].translation,
|
|
14734
14974
|
...localFirst_locale_default["ko" /* KO */]?.translation ?? localFirst_locale_default["en" /* EN */].translation,
|
|
14975
|
+
...openAuditable_locale_default["ko" /* KO */]?.translation ?? openAuditable_locale_default["en" /* EN */].translation,
|
|
14735
14976
|
seo: seo_locale_default["ko" /* KO */]
|
|
14736
14977
|
},
|
|
14737
14978
|
space: space_locale_default["ko" /* KO */]?.translation ?? space_locale_default["en" /* EN */].translation,
|
|
@@ -14928,16 +15169,35 @@ var updateDialogSummaryAction = async (args, thunkApi) => {
|
|
|
14928
15169
|
fileOpsText
|
|
14929
15170
|
});
|
|
14930
15171
|
try {
|
|
14931
|
-
const
|
|
15172
|
+
const runSummaryLlm = (model) => dispatch(
|
|
14932
15173
|
runLlm({
|
|
14933
15174
|
llmConfig: {
|
|
14934
15175
|
...BUILTIN_SUMMARY_LLM_CONFIG,
|
|
15176
|
+
...model ? { model } : {},
|
|
14935
15177
|
prompt: COMPACTION_SUMMARY_SYSTEM_PROMPT
|
|
14936
15178
|
},
|
|
14937
15179
|
content: promptContent,
|
|
14938
15180
|
billingDialogKey: dialogKey
|
|
14939
15181
|
})
|
|
14940
15182
|
).unwrap();
|
|
15183
|
+
const isUsableSummary = (value) => typeof value === "string" && value.trim().length > 0;
|
|
15184
|
+
let newSummary = "";
|
|
15185
|
+
let primaryError;
|
|
15186
|
+
try {
|
|
15187
|
+
newSummary = await runSummaryLlm();
|
|
15188
|
+
} catch (error) {
|
|
15189
|
+
primaryError = error;
|
|
15190
|
+
}
|
|
15191
|
+
if (!isUsableSummary(newSummary)) {
|
|
15192
|
+
try {
|
|
15193
|
+
newSummary = await runSummaryLlm(BUILTIN_DIALOG_LLM_FALLBACK_MODEL);
|
|
15194
|
+
} catch (fallbackError) {
|
|
15195
|
+
throw primaryError ?? fallbackError;
|
|
15196
|
+
}
|
|
15197
|
+
if (!isUsableSummary(newSummary) && primaryError) {
|
|
15198
|
+
throw primaryError;
|
|
15199
|
+
}
|
|
15200
|
+
}
|
|
14941
15201
|
if (newSummary && typeof newSummary === "string" && newSummary.trim()) {
|
|
14942
15202
|
const currentCount = dialogConfig.compressionCount || 0;
|
|
14943
15203
|
await dispatch(
|
|
@@ -17126,7 +17386,7 @@ var messageSlice = createSliceWithThunks({
|
|
|
17126
17386
|
runtimeOptions: args.runtimeOptions
|
|
17127
17387
|
});
|
|
17128
17388
|
if (agentKeyToUse) {
|
|
17129
|
-
const { streamAgentChatTurn } = await import("./agentSlice-
|
|
17389
|
+
const { streamAgentChatTurn } = await import("./agentSlice-PYJFXGZL.js");
|
|
17130
17390
|
await dispatch(
|
|
17131
17391
|
streamAgentChatTurn({
|
|
17132
17392
|
agentKey: agentKeyToUse,
|
|
@@ -18259,7 +18519,7 @@ var deleteDialogThunk = async (payload, thunkApi) => {
|
|
|
18259
18519
|
}
|
|
18260
18520
|
if (isCurrentDialog) {
|
|
18261
18521
|
await thunkApi.dispatch(resetMsgs());
|
|
18262
|
-
const { clearPendingAttachments: clearPendingAttachments2 } = await import("./dialogSlice-
|
|
18522
|
+
const { clearPendingAttachments: clearPendingAttachments2 } = await import("./dialogSlice-YXMORK5T.js");
|
|
18263
18523
|
dispatch(clearPendingAttachments2());
|
|
18264
18524
|
}
|
|
18265
18525
|
return { dialogKey, isCurrentDialog, attachmentPlan };
|
|
@@ -18267,15 +18527,15 @@ var deleteDialogThunk = async (payload, thunkApi) => {
|
|
|
18267
18527
|
|
|
18268
18528
|
// packages/chat/dialog/dialogSlice.ts
|
|
18269
18529
|
var runCreateDialogAction = async (args, thunkApi) => {
|
|
18270
|
-
const { createDialogAction } = await import("./createDialogAction-
|
|
18530
|
+
const { createDialogAction } = await import("./createDialogAction-577E6FB2.js");
|
|
18271
18531
|
return createDialogAction(args, thunkApi);
|
|
18272
18532
|
};
|
|
18273
18533
|
var runCreateAgentAutomationAction = async (args, thunkApi) => {
|
|
18274
|
-
const { createAgentAutomationAction } = await import("./createAgentAutomationAction-
|
|
18534
|
+
const { createAgentAutomationAction } = await import("./createAgentAutomationAction-GUBB2LWY.js");
|
|
18275
18535
|
return createAgentAutomationAction(args, thunkApi);
|
|
18276
18536
|
};
|
|
18277
18537
|
var runUpdateDialogTitleAction = async (args, thunkApi) => {
|
|
18278
|
-
const { updateDialogTitleAction } = await import("./updateDialogTitleAction-
|
|
18538
|
+
const { updateDialogTitleAction } = await import("./updateDialogTitleAction-KRUWX66L.js");
|
|
18279
18539
|
return updateDialogTitleAction(args, thunkApi);
|
|
18280
18540
|
};
|
|
18281
18541
|
var runAddDialogAgentAction = async (args, thunkApi) => {
|
|
@@ -18299,7 +18559,7 @@ var runSetDialogExtraReferencesAction = async (args, thunkApi) => {
|
|
|
18299
18559
|
return setDialogExtraReferencesAction(args, thunkApi);
|
|
18300
18560
|
};
|
|
18301
18561
|
var runHandleSendMessageAction = async (args, thunkApi) => {
|
|
18302
|
-
const { handleSendMessageAction } = await import("./handleSendMessageAction-
|
|
18562
|
+
const { handleSendMessageAction } = await import("./handleSendMessageAction-BQIRKHC6.js");
|
|
18303
18563
|
return handleSendMessageAction(args, thunkApi);
|
|
18304
18564
|
};
|
|
18305
18565
|
function clearDialogState() {
|
|
@@ -18312,7 +18572,7 @@ var createPageAndAddReference = createAsyncThunk(
|
|
|
18312
18572
|
async (payload, { dispatch, getState, rejectWithValue }) => {
|
|
18313
18573
|
const { slateData, jsonData, title, type, fileId, groupId, dialogKey } = payload;
|
|
18314
18574
|
try {
|
|
18315
|
-
const { createDocState } = await import("./docStore-
|
|
18575
|
+
const { createDocState } = await import("./docStore-3U5FBN2O.js");
|
|
18316
18576
|
const pageKey = await createDocState(
|
|
18317
18577
|
{ slateData, title },
|
|
18318
18578
|
{ dispatch, getState }
|