nolo-cli 0.77.0-alpha.1 → 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.
Files changed (137) hide show
  1. package/{_executeModel-MONX3AUM.js → _executeModel-G6BRN2BO.js} +43 -43
  2. package/{action-D22U6CTH.js → action-7GHFPDSQ.js} +10 -10
  3. package/{addContentAction-XAPUTGL4.js → addContentAction-ZNVB2NOV.js} +8 -8
  4. package/{addDialogAgentAction-M7VLLBZM.js → addDialogAgentAction-CIDFWATM.js} +7 -7
  5. package/{agentDeleteCommand-2TYFURBN.js → agentDeleteCommand-C5JTDBIX.js} +28 -26
  6. package/{agentEmailCommands-HXIX4KJE.js → agentEmailCommands-AYSYNUSH.js} +56 -54
  7. package/{agentListCommands-IFUOWXP3.js → agentListCommands-CVFL3P3D.js} +30 -28
  8. package/{agentMachineCommands-NEJEQV5S.js → agentMachineCommands-2EPX7IYC.js} +28 -26
  9. package/{agentProviderCommands-65ZC2WB4.js → agentProviderCommands-EHR3PV2V.js} +87 -0
  10. package/{agentPullCommand-N7L2CT7L.js → agentPullCommand-U73W5IBM.js} +1 -1
  11. package/{agentRecordCommands-USSLZKED.js → agentRecordCommands-DPZVHOOA.js} +54 -52
  12. package/{agentRunCommand-WZZSCEEP.js → agentRunCommand-BE53VNNN.js} +54 -52
  13. package/{agentRuntimeLocal-PUZINLWJ.js → agentRuntimeLocal-BPN5IOFT.js} +27 -25
  14. package/{agentSlice-BLCUNM5V.js → agentSlice-PYJFXGZL.js} +9 -9
  15. package/{appDeleteCommands-U4NTEJYQ.js → appDeleteCommands-TREMNXCA.js} +28 -26
  16. package/{appDeployCommands-FXF45Q7F.js → appDeployCommands-7FYCMERT.js} +28 -26
  17. package/{appDeployStatusCommands-KONVRM53.js → appDeployStatusCommands-7LAYH7IX.js} +28 -26
  18. package/{appGetCommands-3VOGIZ7T.js → appGetCommands-BONTQ2XH.js} +28 -26
  19. package/{appListCommands-A6ROBW7P.js → appListCommands-BYIELWUL.js} +28 -26
  20. package/{authCommand-EVGFLAHO.js → authCommand-J5C7GS33.js} +92 -17
  21. package/{authCommands-ILTBI6JV.js → authCommands-VOTT6XWX.js} +3 -4
  22. package/builtinSkillRegistry-YITVDLWG.js +33 -0
  23. package/{chatQueueReduxAdapter-ROFM5SW7.js → chatQueueReduxAdapter-PIOXZBGH.js} +23 -23
  24. package/{chunk-EXMHJN7C.js → chunk-2F4VYGFW.js} +2 -2
  25. package/{chunk-C3FZR5EC.js → chunk-2F7RJC6L.js} +1 -1
  26. package/{chunk-3QPYFHAH.js → chunk-2XEVK4BT.js} +1 -1
  27. package/{chunk-HQUORJTM.js → chunk-3BMYXEUW.js} +1 -1
  28. package/{chunk-AFIWC5NH.js → chunk-3DZIWHJ6.js} +1 -1
  29. package/{chunk-L2Y24GRM.js → chunk-4PAFEM6V.js} +3 -3
  30. package/{chunk-ERD7UXVL.js → chunk-5DAMTON3.js} +1 -1
  31. package/{chunk-YFADVSZE.js → chunk-5EJZGJS2.js} +6 -6
  32. package/chunk-5ZUL4CUO.js +10 -0
  33. package/{chunk-KIS76A2P.js → chunk-6HCLDVEI.js} +38 -4
  34. package/{chunk-FPTQQSS6.js → chunk-6LWO3QQS.js} +25 -4
  35. package/{chunk-BYEJ7K2Z.js → chunk-7S4YWN7P.js} +1 -1
  36. package/{chunk-2SFNAHL6.js → chunk-7TEU3WX2.js} +41 -25
  37. package/{chunk-SREASRV5.js → chunk-ABQYVJBJ.js} +1 -1
  38. package/{chunk-N7DNNV6J.js → chunk-ACFF7U3F.js} +340 -76
  39. package/{chunk-AFIKMMGC.js → chunk-AGX5TE5W.js} +1 -1
  40. package/{chunk-AJHEFRGJ.js → chunk-ASGDO77C.js} +122 -1
  41. package/{chunk-ZDONXM5U.js → chunk-D4TJCP3V.js} +7 -7
  42. package/{chunk-PYXL2CJL.js → chunk-DNQPPRHY.js} +1 -1
  43. package/{chunk-QH6NK22I.js → chunk-DQD4PYQY.js} +60 -788
  44. package/{chunk-PI4DWFYV.js → chunk-FSISQCCB.js} +1132 -31
  45. package/{chunk-3SPWIDHH.js → chunk-FWGPT6VI.js} +3 -3
  46. package/{chunk-SZLVDREM.js → chunk-GIG262ZG.js} +3 -3
  47. package/{chunk-PZM3EENV.js → chunk-GXWEF4IZ.js} +1 -1
  48. package/chunk-HJKGQPYF.js +266 -0
  49. package/{chunk-QA6YKM3H.js → chunk-HLRYI5XO.js} +31 -3
  50. package/{chunk-3JQ2NRYU.js → chunk-HVURBGF3.js} +4 -4
  51. package/{chunk-UPQF3C7O.js → chunk-IEILL33V.js} +135 -56
  52. package/{chunk-UZ6XXCVR.js → chunk-IZAWJCG7.js} +15 -2
  53. package/{chunk-XWNRAIUL.js → chunk-JITSBA52.js} +6 -16
  54. package/{chunk-6XIE5ZGI.js → chunk-JPGCXHNM.js} +1 -1
  55. package/{chunk-BGIWMGSP.js → chunk-JRFQPOPS.js} +10 -172
  56. package/chunk-JT7FRJP5.js +1625 -0
  57. package/{chunk-CMH2SYHX.js → chunk-K7M3MWCE.js} +2 -2
  58. package/{chunk-E36HZARC.js → chunk-KT6LENVP.js} +3 -3
  59. package/{chunk-FSFQ3A7S.js → chunk-LGSXBNWH.js} +9 -9
  60. package/{chunk-RXX4GDIH.js → chunk-LS2ZANRJ.js} +1 -1
  61. package/{chunk-4EJ5QYB5.js → chunk-LSV2BOJL.js} +1 -1
  62. package/{chunk-EVBFYPDC.js → chunk-MC4XLIJ7.js} +6 -2
  63. package/{chunk-PGSKWZCB.js → chunk-MJHQ3NRV.js} +1 -1
  64. package/{chunk-G3O3PD6Q.js → chunk-MRT4KARW.js} +14 -14
  65. package/{chunk-K7AG465Q.js → chunk-ND2J3NRB.js} +4 -2
  66. package/{chunk-Q6FF2MCK.js → chunk-OAJRZ35U.js} +1 -1
  67. package/{chunk-5J7W2VWW.js → chunk-OHUU52T3.js} +6 -265
  68. package/{chunk-V3ZKNK5D.js → chunk-OKCTLCKS.js} +9 -9
  69. package/{chunk-2R5EVB2O.js → chunk-PGO7O65Q.js} +5 -5
  70. package/{chunk-ZZCJUXUI.js → chunk-PHDKTASK.js} +2 -2
  71. package/{chunk-AETZ7AD6.js → chunk-Q554LLSI.js} +1 -1
  72. package/chunk-Q5FJJ6XI.js +103 -0
  73. package/{chunk-RILY7TKG.js → chunk-RHB6OCZS.js} +9 -9
  74. package/chunk-RJ3TDODF.js +665 -0
  75. package/{chunk-QC5LGHYP.js → chunk-TIJK4PBP.js} +10 -5
  76. package/{chunk-CGRJWXTE.js → chunk-UDK3ZSMN.js} +19 -15
  77. package/{chunk-E6RGHPDR.js → chunk-UINEAQ2R.js} +3 -5
  78. package/{chunk-DWPNOYMB.js → chunk-UQ45IHLM.js} +1 -1
  79. package/{chunk-ZY4K4CZR.js → chunk-UQYEVBMM.js} +684 -96
  80. package/{chunk-BJCWNHVU.js → chunk-US463UAD.js} +2 -2
  81. package/{chunk-ZLPA7K55.js → chunk-UUVQJZ75.js} +28 -9
  82. package/{chunk-DSRXPQWA.js → chunk-VEJ4BOQV.js} +43 -43
  83. package/{chunk-NHRQCXIQ.js → chunk-VMFTFOWF.js} +13 -3
  84. package/{chunk-UJ63UXGE.js → chunk-VRLI2WNW.js} +1073 -752
  85. package/{chunk-NG4UT4K4.js → chunk-WS22FPWT.js} +1 -1
  86. package/{chunk-MYU3MJCF.js → chunk-XCSSFPTB.js} +175 -7
  87. package/{chunk-MQ25G6VQ.js → chunk-XIYOAH3S.js} +3 -3
  88. package/{chunk-UDQWGU7F.js → chunk-YZHP76TR.js} +1 -1
  89. package/{chunk-GBPZKFYK.js → chunk-Z33ARZCP.js} +4 -4
  90. package/{contentThunks-3BFZJFHI.js → contentThunks-RYZTYVUV.js} +24 -24
  91. package/{createAgentAutomationAction-YCWUKLMK.js → createAgentAutomationAction-GUBB2LWY.js} +24 -24
  92. package/{createDialogAction-VULS2PKA.js → createDialogAction-577E6FB2.js} +27 -27
  93. package/{createPageAction-MZZLQPFE.js → createPageAction-4CNYIRJ5.js} +25 -25
  94. package/{dbSlice-GKGGFNOB.js → dbSlice-4CUQE35F.js} +7 -7
  95. package/{deleteFile-LWSR674W.js → deleteFile-YG6QMJLU.js} +3 -3
  96. package/{dialogCommands-G223U5WU.js → dialogCommands-U4RQIRKK.js} +29 -27
  97. package/{dialogSlice-NQO5ZETL.js → dialogSlice-YXMORK5T.js} +23 -23
  98. package/{docCreateCommands-2P47IJDK.js → docCreateCommands-AXXATGCL.js} +29 -27
  99. package/{docDeleteCommands-N3EGDOIC.js → docDeleteCommands-CRPIFYFA.js} +30 -28
  100. package/{docReadCommands-6BFV2HI7.js → docReadCommands-4IMZXFDR.js} +29 -27
  101. package/{docStore-AEJONTM4.js → docStore-3U5FBN2O.js} +8 -8
  102. package/{docUpdateCommands-ZTMPXHC5.js → docUpdateCommands-RRPRZXCE.js} +29 -27
  103. package/{fetchMessages-DRABNDPZ.js → fetchMessages-EIU7UFFK.js} +3 -4
  104. package/{getPricing-HRMSOF3E.js → getPricing-F2C65RIX.js} +4 -4
  105. package/{handleSendMessageAction-WIUO466V.js → handleSendMessageAction-BQIRKHC6.js} +23 -23
  106. package/index.js +61 -53
  107. package/{localDialogRead-PUQKFI73.js → localDialogRead-BTFJ4V2I.js} +2 -2
  108. package/{localRuntimeDb-P37ZTX55.js → localRuntimeDb-SYQGUF4U.js} +1 -1
  109. package/{machineCommands-FUA7HBND.js → machineCommands-RNBADNTE.js} +54 -52
  110. package/{machineWsRunDispatch-URIG5N2V.js → machineWsRunDispatch-7J6WNF57.js} +52 -50
  111. package/{memberThunks-KATHH3F4.js → memberThunks-N35XAOC6.js} +8 -8
  112. package/{models-GS72DVJS.js → models-WW7VFNXB.js} +2 -2
  113. package/package.json +1 -1
  114. package/providerPresetApply-SAJAK7C3.js +214 -0
  115. package/providerRegistry-COD57OVY.js +31 -0
  116. package/{read-LC6HVYBN.js → read-2PV4PN2E.js} +4 -3
  117. package/{readDocTool-N3ERJHHF.js → readDocTool-FGK5XGAW.js} +1 -1
  118. package/{readlineWorkspace-HVQLD7T3.js → readlineWorkspace-ZO2W3N4U.js} +135 -75
  119. package/{removeDialogAgentAction-F5GPTALR.js → removeDialogAgentAction-O2POGBOE.js} +10 -10
  120. package/{runAgentClientLoop-QHL2HNAI.js → runAgentClientLoop-KJZ7DK6D.js} +42 -42
  121. package/{runtimeDoctorCommands-CROTMULY.js → runtimeDoctorCommands-X6WDBEQX.js} +2 -2
  122. package/{setDialogExtraReferencesAction-AY4ZCF3A.js → setDialogExtraReferencesAction-KPSVVY3C.js} +8 -8
  123. package/{setPrimaryDialogAgentAction-HPMG7V3R.js → setPrimaryDialogAgentAction-RMJETONI.js} +10 -10
  124. package/{settingSlice-OEJA4NQO.js → settingSlice-I6MTTNDX.js} +9 -9
  125. package/{spaceCommands-MRP5U3C3.js → spaceCommands-VZRYKVWZ.js} +27 -25
  126. package/{streamAgentChatTurn-CE2H23VD.js → streamAgentChatTurn-L3SO4N2R.js} +54 -53
  127. package/{switchDialogAgentAction-HMDZTZ4I.js → switchDialogAgentAction-OQSGWVQQ.js} +7 -7
  128. package/{tools-F25QG6XS.js → tools-GRV74JPO.js} +38 -36
  129. package/tuiSummaryLlmCaller-ATDKMGI5.js +127 -0
  130. package/{updateDialogTitleAction-Z333XUN4.js → updateDialogTitleAction-KRUWX66L.js} +44 -27
  131. package/chunk-3IT2PFHL.js +0 -611
  132. package/chunk-I42VC5KR.js +0 -15
  133. package/codingSkills-E6KSDNSJ.js +0 -48
  134. package/tuiSummaryLlmCaller-3Z24VUWM.js +0 -116
  135. package/{chunk-3RAG2NAD.js → chunk-UKWGR5SS.js} +3 -3
  136. package/{db-VQSAOWAO.js → db-WK5MDZVN.js} +1 -1
  137. package/{localRuntimeAuthority-R5UBODT3.js → localRuntimeAuthority-6IR6BBXE.js} +3 -3
@@ -1,10 +1,11 @@
1
1
  import {
2
+ BUILTIN_DIALOG_LLM_FALLBACK_MODEL,
2
3
  BUILTIN_SUMMARY_LLM_CONFIG
3
- } from "./chunk-EVBFYPDC.js";
4
+ } from "./chunk-MC4XLIJ7.js";
4
5
  import {
5
6
  buildDialogAttachmentPlan,
6
7
  extractFileContentIds
7
- } from "./chunk-HQUORJTM.js";
8
+ } from "./chunk-3BMYXEUW.js";
8
9
  import {
9
10
  isOAuthApiKeyRef
10
11
  } from "./chunk-YYLHWIW6.js";
@@ -13,10 +14,10 @@ import {
13
14
  } from "./chunk-AGGIDPCZ.js";
14
15
  import {
15
16
  runLlm
16
- } from "./chunk-ZDONXM5U.js";
17
+ } from "./chunk-D4TJCP3V.js";
17
18
  import {
18
19
  cleanupCliSessionForDialog
19
- } from "./chunk-BJCWNHVU.js";
20
+ } from "./chunk-US463UAD.js";
20
21
  import {
21
22
  getActiveDialogAgentId,
22
23
  getDialogAgentIds,
@@ -54,7 +55,7 @@ import {
54
55
  getModelInfo,
55
56
  normalizeUsage,
56
57
  resolveAutoExecutionProfile
57
- } from "./chunk-DSRXPQWA.js";
58
+ } from "./chunk-VEJ4BOQV.js";
58
59
  import {
59
60
  COMPACTION_SUMMARY_SYSTEM_PROMPT,
60
61
  buildCompactionMetricsFromPlan,
@@ -65,17 +66,17 @@ import {
65
66
  normalizeAssistantContentBuffer,
66
67
  planCompression,
67
68
  serializeMessageContent
68
- } from "./chunk-E36HZARC.js";
69
+ } from "./chunk-KT6LENVP.js";
69
70
  import {
70
71
  findModelConfig,
71
72
  getModelConfig
72
- } from "./chunk-UJ63UXGE.js";
73
+ } from "./chunk-VRLI2WNW.js";
73
74
  import {
74
75
  toErrorMessage
75
76
  } from "./chunk-HNMXYYJR.js";
76
77
  import {
77
78
  fetchMessages
78
- } from "./chunk-BYEJ7K2Z.js";
79
+ } from "./chunk-7S4YWN7P.js";
79
80
  import {
80
81
  PLATFORM_HOSTED_DEEPSEEK_FLASH_MODEL,
81
82
  PLATFORM_HOSTED_DEEPSEEK_PRO_MODEL,
@@ -84,10 +85,10 @@ import {
84
85
  isPlatformHostedDeepSeekV4Model,
85
86
  isPlatformHostedImageModel,
86
87
  isPlatformHostedOpenAIImageModel
87
- } from "./chunk-AJHEFRGJ.js";
88
+ } from "./chunk-ASGDO77C.js";
88
89
  import {
89
90
  nolotusId
90
- } from "./chunk-XWNRAIUL.js";
91
+ } from "./chunk-IZAWJCG7.js";
91
92
  import {
92
93
  asRecordOrEmpty
93
94
  } from "./chunk-KX6YBIHG.js";
@@ -97,7 +98,7 @@ import {
97
98
  remove,
98
99
  selectById,
99
100
  write
100
- } from "./chunk-YFADVSZE.js";
101
+ } from "./chunk-5EJZGJS2.js";
101
102
  import {
102
103
  buildDialogAgentListIndexDeleteOps,
103
104
  createDialogMessageKeyAndId,
@@ -108,7 +109,7 @@ import {
108
109
  isDialogRecordKey,
109
110
  isPageKey,
110
111
  isTableMetaKey
111
- } from "./chunk-NHRQCXIQ.js";
112
+ } from "./chunk-VMFTFOWF.js";
112
113
  import {
113
114
  asOptionalFiniteNumber
114
115
  } from "./chunk-WWC7I6TA.js";
@@ -119,7 +120,7 @@ import {
119
120
  builtinAgentCatalogEntryById,
120
121
  builtinRuntimeFallbackEntries,
121
122
  isBuiltinPlatformAgentKey
122
- } from "./chunk-5J7W2VWW.js";
123
+ } from "./chunk-HJKGQPYF.js";
123
124
  import {
124
125
  extractCustomId,
125
126
  extractUserId,
@@ -135,7 +136,7 @@ import {
135
136
  getRuntimeServerContext,
136
137
  parseOwnerUserIdFromDbKey,
137
138
  scheduleDeleteReplication
138
- } from "./chunk-3RAG2NAD.js";
139
+ } from "./chunk-UKWGR5SS.js";
139
140
  import {
140
141
  createClientLogger,
141
142
  isAbortError
@@ -149,12 +150,12 @@ import {
149
150
  isTombstoneRecord,
150
151
  shouldReplaceWithNextRecord
151
152
  } from "./chunk-GBRG75BQ.js";
152
- import {
153
- asTrimmedString
154
- } from "./chunk-3EUW3WEO.js";
155
153
  import {
156
154
  isRecord
157
155
  } from "./chunk-KUG52IAP.js";
156
+ import {
157
+ asTrimmedString
158
+ } from "./chunk-3EUW3WEO.js";
158
159
  import {
159
160
  asOptionalTrimmedString
160
161
  } from "./chunk-G3SUCT4W.js";
@@ -3243,6 +3244,7 @@ var ai_locale_default = {
3243
3244
  textOnly: "Text-only",
3244
3245
  details: "Details",
3245
3246
  price: "Price",
3247
+ credits: "Credits",
3246
3248
  modelCost: "Model cost",
3247
3249
  inputCostPerMillionTokens: "Input",
3248
3250
  outputCostPerMillionTokens: "Output",
@@ -3633,6 +3635,7 @@ var ai_locale_default = {
3633
3635
  textOnly: "\u7EAF\u6587\u672C",
3634
3636
  details: "\u8BE6\u7EC6\u4FE1\u606F",
3635
3637
  price: "\u4EF7\u683C",
3638
+ credits: "\u79EF\u5206",
3636
3639
  modelCost: "\u6A21\u578B\u6210\u672C",
3637
3640
  inputCostPerMillionTokens: "\u8F93\u5165",
3638
3641
  outputCostPerMillionTokens: "\u8F93\u51FA",
@@ -4024,6 +4027,7 @@ var ai_locale_default = {
4024
4027
  textOnly: "\u7D14\u6587\u5B57",
4025
4028
  details: "\u8A73\u7D30\u8CC7\u8A0A",
4026
4029
  price: "\u50F9\u683C",
4030
+ credits: "\u7A4D\u5206",
4027
4031
  modelCost: "\u6A21\u578B\u6210\u672C",
4028
4032
  inputCostPerMillionTokens: "\u8F38\u5165",
4029
4033
  outputCostPerMillionTokens: "\u8F38\u51FA",
@@ -4337,6 +4341,7 @@ var ai_locale_default = {
4337
4341
  textOnly: "\u30C6\u30AD\u30B9\u30C8\u306E\u307F",
4338
4342
  details: "\u8A73\u7D30",
4339
4343
  price: "\u4FA1\u683C",
4344
+ credits: "\u30AF\u30EC\u30B8\u30C3\u30C8",
4340
4345
  modelCost: "\u30E2\u30C7\u30EB\u30B3\u30B9\u30C8",
4341
4346
  inputCostPerMillionTokens: "\u5165\u529B",
4342
4347
  outputCostPerMillionTokens: "\u51FA\u529B",
@@ -7987,14 +7992,55 @@ var interface_locale_default = {
7987
7992
  home: "Home",
7988
7993
  // === Combined Welcome Section ===
7989
7994
  welcomeSection: {
7990
- heroTitle: "AI that gets the work done with you",
7991
- heroDescription: "Say the goal. Finish it together.",
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
+ },
8036
+ heroTitle: "Let your strongest model plan. Let lower-cost agents execute.",
8037
+ heroDescription: "Nolo orchestrates your coding agents across models \u2014 so premium capacity handles the hard decisions, not every routine step.",
7992
8038
  ctaButton: "Start free",
7993
8039
  secondaryExplore: "Explore public agents",
7994
8040
  secondaryDownload: "Download desktop or mobile",
7995
8041
  secondaryPricing: "View pricing",
7996
8042
  trustMicro: "Free to join \xB7 No credit card needed \xB7 Cancel anytime",
7997
- heroLocalFirst: "Local-first \xB7 Works offline \xB7 Your data stays yours",
8043
+ heroLocalFirst: "Open-source client (MIT) \xB7 Local-first \xB7 Your data stays yours",
7998
8044
  socialProof: {
7999
8045
  label: "Supported models and platforms",
8000
8046
  platforms: "Web \xB7 Desktop \xB7 iOS"
@@ -8016,9 +8062,9 @@ var interface_locale_default = {
8016
8062
  title: "Made for people who want progress, not just prettier prompts",
8017
8063
  description: "Nolo is strongest when you need memory, delegation, and real outputs in one place instead of stitching together separate AI tabs and tools.",
8018
8064
  label: "Homepage proof points",
8019
- multiAgent: "Direct one agent or delegate to multiple agents",
8020
- multiOutput: "Turn ideas into docs, apps, images, videos, and workflows",
8021
- multiDevice: "Explore on the web, then continue on desktop or mobile"
8065
+ multiAgent: "Save premium-model capacity for hard problems. Route routine work to lower-cost agents.",
8066
+ multiOutput: "Interrupt or steer a run mid-task, schedule it, or run it on your own machine",
8067
+ multiDevice: "Step away from your desk \u2014 check progress, approve, and add instructions from your phone."
8022
8068
  },
8023
8069
  fit: {
8024
8070
  kicker: "Who it fits",
@@ -8430,7 +8476,7 @@ var interface_locale_default = {
8430
8476
  aiPlaza: "AI Plaza",
8431
8477
  shareCommunity: "Community Shares",
8432
8478
  custom: "Custom",
8433
- viewMore: "View more",
8479
+ viewMore: "View all",
8434
8480
  enterCommunity: "Enter community",
8435
8481
  viewCustom: "View details",
8436
8482
  myContentPageSubtitle: "Browse the latest pages, tables, apps, files, and conversations across all your spaces.",
@@ -9246,14 +9292,55 @@ var interface_locale_default = {
9246
9292
  home: "\u9996\u9875",
9247
9293
  // === Combined Welcome Section ===
9248
9294
  welcomeSection: {
9249
- heroTitle: "\u8BA9 Nolo \u548C\u4F60\u4E00\u8D77\u521B\u9020",
9250
- heroDescription: "\u8BF4\u51FA\u76EE\u6807\uFF0C\u4E00\u8D77\u628A\u5B83\u505A\u5B8C\u3002",
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
+ },
9336
+ heroTitle: "\u8BA9\u6700\u5F3A\u7684\u6A21\u578B\u89C4\u5212\uFF0C\u8BA9\u66F4\u4F4E\u6210\u672C\u7684 Agent \u6267\u884C\u3002",
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",
9251
9338
  ctaButton: "\u514D\u8D39\u5F00\u59CB",
9252
- secondaryExplore: "\u5148\u901B\u901B\u516C\u5F00 AI",
9339
+ secondaryExplore: "\u6D4F\u89C8\u516C\u5F00 AI",
9253
9340
  secondaryDownload: "\u4E0B\u8F7D\u684C\u9762\u7AEF\u6216\u79FB\u52A8\u7AEF",
9254
9341
  secondaryPricing: "\u4E86\u89E3\u5B9A\u4EF7",
9255
9342
  trustMicro: "\u514D\u8D39\u6CE8\u518C \xB7 \u65E0\u9700\u4FE1\u7528\u5361 \xB7 \u968F\u65F6\u53EF\u505C",
9256
- heroLocalFirst: "\u6570\u636E\u672C\u5730\u4F18\u5148 \xB7 \u79BB\u7EBF\u4E5F\u80FD\u7528 \xB7 \u5BF9\u8BDD\u5C5E\u4E8E\u4F60\u81EA\u5DF1",
9343
+ heroLocalFirst: "\u5BA2\u6237\u7AEF\u5F00\u6E90 (MIT) \xB7 \u672C\u5730\u4F18\u5148 \xB7 \u6570\u636E\u5C5E\u4E8E\u4F60\u81EA\u5DF1",
9257
9344
  socialProof: {
9258
9345
  label: "\u5DF2\u63A5\u5165\u7684 AI \u6A21\u578B\u4E0E\u5E73\u53F0",
9259
9346
  platforms: "Web \xB7 \u684C\u9762\u7AEF \xB7 iOS"
@@ -9272,12 +9359,12 @@ var interface_locale_default = {
9272
9359
  },
9273
9360
  proof: {
9274
9361
  kicker: "\u4E3A\u4EC0\u4E48\u4ECE\u8FD9\u91CC\u5F00\u59CB",
9275
- title: "\u66F4\u9002\u5408\u60F3\u8981\u63A8\u8FDB\u7ED3\u679C\u7684\u4EBA\uFF0C\u800C\u4E0D\u53EA\u662F\u60F3\u6362\u4E2A prompt \u76AE\u80A4\u7684\u4EBA",
9362
+ title: "\u66F4\u9002\u5408\u60F3\u628A\u7ED3\u679C\u63A8\u8FDB\u4E0B\u53BB\u7684\u4EBA\uFF0C\u800C\u4E0D\u662F\u53EA\u60F3\u6362\u5957\u63D0\u793A\u8BCD\u7684\u4EBA",
9276
9363
  description: "\u5982\u679C\u4F60\u9700\u8981\u7684\u662F\u8BB0\u4F4F\u4E0A\u4E0B\u6587\u3001\u628A\u4EFB\u52A1\u59D4\u6258\u51FA\u53BB\u3001\u6700\u540E\u62FF\u5230\u771F\u5B9E\u6210\u679C\uFF0C\u800C\u4E0D\u662F\u540C\u65F6\u5F00\u5F88\u591A AI \u6807\u7B7E\u9875\u81EA\u5DF1\u62FC\uFF0CNolo \u7684\u4EF7\u503C\u4F1A\u66F4\u660E\u663E\u3002",
9277
9364
  label: "\u9996\u9875\u80FD\u529B\u8BC1\u660E",
9278
- multiAgent: "\u4E00\u4E2A Agent \u81EA\u5DF1\u5E26\uFF0C\u591A\u4E2A Agent \u4E5F\u80FD\u5206\u5DE5\u534F\u4F5C",
9279
- multiOutput: "\u60F3\u6CD5\u53EF\u4EE5\u843D\u6210\u6587\u6863\u3001\u5E94\u7528\u3001\u56FE\u7247\u3001\u89C6\u9891\u548C\u53EF\u590D\u7528\u6D41\u7A0B",
9280
- multiDevice: "\u5148\u5728\u7F51\u9875\u4E0A\u4F53\u9A8C\uFF0C\u518D\u5230\u684C\u9762\u7AEF\u6216\u79FB\u52A8\u7AEF\u7EE7\u7EED"
9365
+ multiAgent: "\u628A\u6700\u5F3A\u6A21\u578B\u7684\u7B97\u529B\u7559\u7ED9\u771F\u6B63\u96BE\u7684\u95EE\u9898\uFF0C\u65E5\u5E38\u4EFB\u52A1\u4EA4\u7ED9\u6210\u672C\u66F4\u4F4E\u7684 Agent",
9366
+ multiOutput: "\u4E2D\u9014\u968F\u65F6\u53EB\u505C\u6216\u5F15\u5BFC\u4EFB\u52A1\uFF0C\u652F\u6301\u5B9A\u65F6\u8C03\u5EA6\uFF0C\u4E5F\u53EF\u76F4\u63A5\u5728\u4F60\u81EA\u5DF1\u7684\u673A\u5668\u4E0A\u8FD0\u884C",
9367
+ multiDevice: "\u79BB\u5F00\u7535\u8111\u4E5F\u4E0D\u5931\u63A7\u2014\u2014\u5728\u624B\u673A\u4E0A\u67E5\u770B\u8FDB\u5EA6\u3001\u6279\u51C6\u64CD\u4F5C\u3001\u8865\u5145\u6307\u4EE4"
9281
9368
  },
9282
9369
  fit: {
9283
9370
  kicker: "\u9002\u5408\u8C01",
@@ -9289,7 +9376,7 @@ var interface_locale_default = {
9289
9376
  faq: {
9290
9377
  kicker: "\u5E38\u89C1\u95EE\u9898",
9291
9378
  title: "Agent \u73A9\u5BB6\u771F\u6B63\u60F3\u77E5\u9053\u7684",
9292
- description: "\u7ED9\u5DF2\u7ECF\u5728\u73A9 Agent\u3001\u60F3\u771F\u6B63\u62FF\u6765\u5E72\u6D3B\u7684\u4EBA\uFF0C\u4E0D\u662F\u53EA\u60F3\u6362\u4E2A prompt \u76AE\u80A4\u7684\u4EBA\u3002",
9379
+ description: "\u7ED9\u5DF2\u7ECF\u5728\u7528 Agent\u3001\u60F3\u771F\u6B63\u62FF\u6765\u5E72\u6D3B\u7684\u4EBA\uFF0C\u4E0D\u662F\u53EA\u60F3\u6362\u5957\u63D0\u793A\u8BCD\u7684\u4EBA\u3002",
9293
9380
  context: {
9294
9381
  question: "Agent \u4E4B\u95F4\u7684\u4E0A\u4E0B\u6587\u662F\u5171\u4EAB\u7684\u5417\uFF1F",
9295
9382
  answer: "\u53EF\u4EE5\u3002\u4F60\u5B9A\u4E49\u7684\u89C4\u5219\u3001\u6302\u8F7D\u7684\u77E5\u8BC6\u548C\u5BF9\u8BDD\u5386\u53F2\u4F1A\u4FDD\u7559\u5728 Agent \u8EAB\u4E0A\u3002\u591A\u4E2A Agent \u534F\u4F5C\u65F6\uFF0C\u4E0A\u4E0B\u6587\u6309\u9700\u6D41\u8F6C\uFF0C\u4E0D\u4F1A\u6BCF\u4E2A\u4EFB\u52A1\u90FD\u4ECE\u96F6\u5F00\u59CB\u3002"
@@ -9300,7 +9387,7 @@ var interface_locale_default = {
9300
9387
  },
9301
9388
  entry: {
9302
9389
  question: "\u4E00\u4E2A\u4EFB\u52A1\u91CC\u53EF\u4EE5\u8C03\u5EA6\u591A\u4E2A Agent \u5417\uFF1F",
9303
- answer: "\u53EF\u4EE5\u3002Nolo \u4F1A\u6839\u636E\u4EFB\u52A1\u81EA\u52A8\u6216\u624B\u52A8\u5206\u53D1\u7ED9\u4E0D\u540C\u7684 Agent\uFF0C\u5B83\u4EEC\u53EF\u4EE5\u5E76\u884C\u5DE5\u4F5C\u3001\u4E92\u76F8 Review\uFF0C\u6700\u540E\u628A\u7ED3\u679C\u6C47\u603B\u7ED9\u4F60\u3002"
9390
+ answer: "\u53EF\u4EE5\u3002Nolo \u4F1A\u6839\u636E\u4EFB\u52A1\u81EA\u52A8\u6216\u624B\u52A8\u5206\u53D1\u7ED9\u4E0D\u540C\u7684 Agent\uFF0C\u5B83\u4EEC\u53EF\u4EE5\u5E76\u884C\u5DE5\u4F5C\u3001\u4E92\u76F8\u590D\u6838\uFF0C\u6700\u540E\u628A\u7ED3\u679C\u6C47\u603B\u7ED9\u4F60\u3002"
9304
9391
  },
9305
9392
  orchestration: {
9306
9393
  question: "\u7F16\u6392\u65B9\u5F0F\u662F\u56FA\u5B9A\u7684\u5417\uFF1F",
@@ -9487,8 +9574,8 @@ var interface_locale_default = {
9487
9574
  finalCta: {
9488
9575
  kicker: "\u51C6\u5907\u597D\u5C31\u5F00\u59CB",
9489
9576
  title: "\u77E5\u9053\u81EA\u5DF1\u8981\u505A\u4EC0\u4E48\uFF0C\u5C31\u76F4\u63A5\u642D\u8D77\u6765\u3002",
9490
- description: "\u514D\u8D39\u6CE8\u518C\uFF0C\u51E0\u5206\u949F\u5C31\u80FD\u914D\u597D\u4F60\u7684\u7B2C\u4E00\u4E2A\u642D\u6863\u3002\u7EE7\u7EED\u5F80\u4E0B\uFF0C\u4E5F\u80FD\u901B\u793E\u533A\u91CC\u7684\u516C\u5F00 AI\u3002",
9491
- primary: "\u521B\u5EFA\u6211\u7684\u5DE5\u4F5C\u53F0"
9577
+ description: "\u514D\u8D39\u6CE8\u518C\uFF0C\u51E0\u5206\u949F\u5C31\u80FD\u914D\u597D\u4F60\u7684\u7B2C\u4E00\u4E2A\u642D\u6863\u3002\u7EE7\u7EED\u5F80\u4E0B\uFF0C\u4E5F\u80FD\u6D4F\u89C8\u793E\u533A\u91CC\u7684\u516C\u5F00 AI\u3002",
9578
+ primary: "\u514D\u8D39\u5F00\u59CB"
9492
9579
  },
9493
9580
  cards: {
9494
9581
  create: {
@@ -10505,14 +10592,55 @@ var interface_locale_default = {
10505
10592
  home: "\u9996\u9801",
10506
10593
  // === Combined Welcome Section ===
10507
10594
  welcomeSection: {
10508
- heroTitle: "\u8B93 Nolo \u548C\u4F60\u4E00\u8D77\u5275\u9020",
10509
- heroDescription: "\u60A8\u8AAA\u76EE\u6A19\uFF0C\u5B83\u628A\u7D50\u679C\u4EA4\u5230\u60A8\u624B\u88E1\u3002",
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
+ },
10636
+ heroTitle: "\u8B93\u6700\u5F37\u6A21\u578B\u898F\u5283\uFF0C\u8B93\u66F4\u4F4E\u6210\u672C\u7684 Agent \u57F7\u884C\u3002",
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",
10510
10638
  ctaButton: "\u514D\u8CBB\u958B\u59CB",
10511
- secondaryExplore: "\u5148\u901B\u901B\u516C\u958B AI",
10639
+ secondaryExplore: "\u700F\u89BD\u516C\u958B AI",
10512
10640
  secondaryDownload: "\u4E0B\u8F09\u684C\u9762\u7AEF\u6216\u884C\u52D5\u7AEF",
10513
10641
  secondaryPricing: "\u4E86\u89E3\u5B9A\u50F9",
10514
10642
  trustMicro: "\u514D\u8CBB\u8A3B\u518A \xB7 \u7121\u9700\u4FE1\u7528\u5361 \xB7 \u96A8\u6642\u53EF\u505C",
10515
- heroLocalFirst: "\u6578\u64DA\u672C\u5730\u512A\u5148 \xB7 \u96E2\u7DDA\u4E5F\u80FD\u7528 \xB7 \u5C0D\u8A71\u5C6C\u65BC\u4F60\u81EA\u5DF1",
10643
+ heroLocalFirst: "\u7528\u6236\u7AEF\u958B\u6E90 (MIT) \xB7 \u672C\u5730\u512A\u5148 \xB7 \u6578\u64DA\u5C6C\u65BC\u4F60\u81EA\u5DF1",
10516
10644
  socialProof: {
10517
10645
  label: "\u5DF2\u63A5\u5165\u7684 AI \u6A21\u578B\u8207\u5E73\u53F0",
10518
10646
  platforms: "Web \xB7 \u684C\u9762\u7AEF \xB7 iOS"
@@ -10531,12 +10659,12 @@ var interface_locale_default = {
10531
10659
  },
10532
10660
  proof: {
10533
10661
  kicker: "\u70BA\u4EC0\u9EBC\u5F9E\u9019\u88E1\u958B\u59CB",
10534
- title: "\u66F4\u9069\u5408\u60F3\u63A8\u9032\u7D50\u679C\u7684\u4EBA\uFF0C\u800C\u4E0D\u53EA\u662F\u60F3\u63DB\u500B prompt \u5916\u76AE\u7684\u4EBA",
10662
+ title: "\u66F4\u9069\u5408\u60F3\u628A\u7D50\u679C\u63A8\u9032\u4E0B\u53BB\u7684\u4EBA\uFF0C\u800C\u4E0D\u662F\u53EA\u60F3\u63DB\u5957\u63D0\u793A\u8A5E\u7684\u4EBA",
10535
10663
  description: "\u5982\u679C\u60A8\u9700\u8981\u7684\u662F\u8A18\u4F4F\u4E0A\u4E0B\u6587\u3001\u628A\u4EFB\u52D9\u59D4\u8A17\u51FA\u53BB\u3001\u6700\u5F8C\u62FF\u5230\u771F\u5BE6\u6210\u679C\uFF0C\u800C\u4E0D\u662F\u540C\u6642\u958B\u5F88\u591A AI \u5206\u9801\u81EA\u5DF1\u62FC\uFF0CNolo \u7684\u50F9\u503C\u6703\u66F4\u660E\u986F\u3002",
10536
10664
  label: "\u9996\u9801\u80FD\u529B\u8B49\u660E",
10537
- multiAgent: "\u4E00\u500B Agent \u81EA\u5DF1\u5E36\uFF0C\u591A\u500B Agent \u4E5F\u80FD\u5206\u5DE5\u5354\u4F5C",
10538
- multiOutput: "\u60F3\u6CD5\u53EF\u4EE5\u843D\u6210\u6587\u4EF6\u3001\u61C9\u7528\u3001\u5716\u7247\u3001\u5F71\u7247\u8207\u53EF\u91CD\u8907\u4F7F\u7528\u6D41\u7A0B",
10539
- multiDevice: "\u5148\u5728\u7DB2\u9801\u4E0A\u9AD4\u9A57\uFF0C\u518D\u5230\u684C\u9762\u7AEF\u6216\u884C\u52D5\u7AEF\u7E7C\u7E8C"
10665
+ multiAgent: "\u628A\u6700\u5F37\u6A21\u578B\u7684\u7B97\u529B\u7559\u7D66\u771F\u6B63\u96E3\u7684\u554F\u984C\uFF0C\u65E5\u5E38\u4EFB\u52D9\u4EA4\u7D66\u6210\u672C\u66F4\u4F4E\u7684 Agent",
10666
+ multiOutput: "\u4E2D\u9014\u96A8\u6642\u53EB\u505C\u6216\u5F15\u5C0E\u4EFB\u52D9\uFF0C\u652F\u63F4\u5B9A\u6642\u6392\u7A0B\uFF0C\u4E5F\u53EF\u76F4\u63A5\u5728\u60A8\u81EA\u5DF1\u7684\u6A5F\u5668\u4E0A\u57F7\u884C",
10667
+ multiDevice: "\u96E2\u958B\u96FB\u8166\u4E5F\u4E0D\u5931\u63A7\u2014\u2014\u5728\u624B\u6A5F\u4E0A\u67E5\u770B\u9032\u5EA6\u3001\u6279\u51C6\u64CD\u4F5C\u3001\u88DC\u5145\u6307\u4EE4"
10540
10668
  },
10541
10669
  fit: {
10542
10670
  kicker: "\u9069\u5408\u8AB0",
@@ -10548,7 +10676,7 @@ var interface_locale_default = {
10548
10676
  faq: {
10549
10677
  kicker: "\u5E38\u898B\u554F\u984C",
10550
10678
  title: "Agent \u73A9\u5BB6\u771F\u6B63\u60F3\u77E5\u9053\u7684",
10551
- description: "\u7D66\u5DF2\u7D93\u5728\u73A9 Agent\u3001\u60F3\u771F\u6B63\u62FF\u4F86\u5E79\u6D3B\u7684\u4EBA\uFF0C\u4E0D\u662F\u53EA\u60F3\u63DB\u500B prompt \u5916\u76AE\u7684\u4EBA\u3002",
10679
+ description: "\u7D66\u5DF2\u7D93\u5728\u7528 Agent\u3001\u60F3\u771F\u6B63\u62FF\u4F86\u5E79\u6D3B\u7684\u4EBA\uFF0C\u4E0D\u662F\u53EA\u60F3\u63DB\u5957\u63D0\u793A\u8A5E\u7684\u4EBA\u3002",
10552
10680
  context: {
10553
10681
  question: "Agent \u4E4B\u9593\u7684\u4E0A\u4E0B\u6587\u662F\u5171\u4EAB\u7684\u55CE\uFF1F",
10554
10682
  answer: "\u53EF\u4EE5\u3002\u60A8\u5B9A\u7FA9\u7684\u898F\u5247\u3001\u639B\u8F09\u7684\u77E5\u8B58\u548C\u5C0D\u8A71\u6B77\u53F2\u6703\u4FDD\u7559\u5728 Agent \u8EAB\u4E0A\u3002\u591A\u500B Agent \u5354\u4F5C\u6642\uFF0C\u4E0A\u4E0B\u6587\u6309\u9700\u6D41\u8F49\uFF0C\u4E0D\u6703\u6BCF\u500B\u4EFB\u52D9\u90FD\u5F9E\u96F6\u958B\u59CB\u3002"
@@ -10559,7 +10687,7 @@ var interface_locale_default = {
10559
10687
  },
10560
10688
  entry: {
10561
10689
  question: "\u4E00\u500B\u4EFB\u52D9\u88E1\u53EF\u4EE5\u8ABF\u5EA6\u591A\u500B Agent \u55CE\uFF1F",
10562
- answer: "\u53EF\u4EE5\u3002Nolo \u6703\u6839\u64DA\u4EFB\u52D9\u81EA\u52D5\u6216\u624B\u52D5\u5206\u767C\u7D66\u4E0D\u540C\u7684 Agent\uFF0C\u5B83\u5011\u53EF\u4EE5\u4E26\u884C\u5DE5\u4F5C\u3001\u4E92\u76F8 Review\uFF0C\u6700\u5F8C\u628A\u7D50\u679C\u532F\u7E3D\u7D66\u60A8\u3002"
10690
+ answer: "\u53EF\u4EE5\u3002Nolo \u6703\u6839\u64DA\u4EFB\u52D9\u81EA\u52D5\u6216\u624B\u52D5\u5206\u767C\u7D66\u4E0D\u540C\u7684 Agent\uFF0C\u5B83\u5011\u53EF\u4EE5\u4E26\u884C\u5DE5\u4F5C\u3001\u4E92\u76F8\u8907\u6838\uFF0C\u6700\u5F8C\u628A\u7D50\u679C\u532F\u7E3D\u7D66\u60A8\u3002"
10563
10691
  },
10564
10692
  orchestration: {
10565
10693
  question: "\u7DE8\u6392\u65B9\u5F0F\u662F\u56FA\u5B9A\u7684\u55CE\uFF1F",
@@ -10746,8 +10874,8 @@ var interface_locale_default = {
10746
10874
  finalCta: {
10747
10875
  kicker: "\u6E96\u5099\u597D\u5C31\u958B\u59CB",
10748
10876
  title: "\u77E5\u9053\u81EA\u5DF1\u8981\u505A\u4EC0\u9EBC\uFF0C\u5C31\u76F4\u63A5\u642D\u8D77\u4F86\u3002",
10749
- description: "\u514D\u8CBB\u8A3B\u518A\uFF0C\u5E7E\u5206\u9418\u5C31\u80FD\u642D\u51FA\u60A8\u7684\u7B2C\u4E00\u500B AI\u3002\u7E7C\u7E8C\u5F80\u4E0B\uFF0C\u4E5F\u80FD\u901B\u793E\u7FA4\u88E1\u7684\u516C\u958B AI\u3002",
10750
- primary: "\u5EFA\u7ACB\u6211\u7684\u5DE5\u4F5C\u53F0"
10877
+ description: "\u514D\u8CBB\u8A3B\u518A\uFF0C\u5E7E\u5206\u9418\u5C31\u80FD\u642D\u51FA\u60A8\u7684\u7B2C\u4E00\u500B AI\u3002\u7E7C\u7E8C\u5F80\u4E0B\uFF0C\u4E5F\u80FD\u700F\u89BD\u793E\u7FA4\u88E1\u7684\u516C\u958B AI\u3002",
10878
+ primary: "\u514D\u8CBB\u958B\u59CB"
10751
10879
  },
10752
10880
  cards: {
10753
10881
  create: {
@@ -11686,14 +11814,55 @@ var interface_locale_default = {
11686
11814
  home: "\u30DB\u30FC\u30E0",
11687
11815
  // === Combined Welcome Section ===
11688
11816
  welcomeSection: {
11689
- heroTitle: "AI \u3068\u4E00\u7DD2\u306B\u4ED5\u4E8B\u3092\u4ED5\u4E0A\u3052\u308B",
11690
- heroDescription: "\u76EE\u6A19\u3092\u4F1D\u3048\u308C\u3070\u3001\u4F7F\u3048\u308B\u6210\u679C\u304C\u624B\u5143\u306B\u5C4A\u304F\u3002",
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
+ },
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",
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",
11691
11860
  ctaButton: "\u7121\u6599\u3067\u59CB\u3081\u308B",
11692
11861
  secondaryExplore: "\u516C\u958B AI \u3092\u898B\u308B",
11693
11862
  secondaryDownload: "\u30C7\u30B9\u30AF\u30C8\u30C3\u30D7 / \u30E2\u30D0\u30A4\u30EB\u3092\u5165\u624B",
11694
11863
  secondaryPricing: "\u6599\u91D1\u3092\u898B\u308B",
11695
11864
  trustMicro: "\u7121\u6599\u767B\u9332 \xB7 \u30AF\u30EC\u30B8\u30C3\u30C8\u30AB\u30FC\u30C9\u4E0D\u8981 \xB7 \u3044\u3064\u3067\u3082\u9000\u4F1A\u53EF",
11696
- heroLocalFirst: "\u30ED\u30FC\u30AB\u30EB\u512A\u5148 \xB7 \u30AA\u30D5\u30E9\u30A4\u30F3\u3067\u3082\u4F7F\u3048\u308B \xB7 \u30C7\u30FC\u30BF\u306F\u3042\u306A\u305F\u306E\u3082\u306E",
11865
+ heroLocalFirst: "\u30AA\u30FC\u30D7\u30F3\u30BD\u30FC\u30B9\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8 (MIT) \xB7 \u30ED\u30FC\u30AB\u30EB\u512A\u5148 \xB7 \u30C7\u30FC\u30BF\u306F\u3042\u306A\u305F\u306E\u3082\u306E",
11697
11866
  socialProof: {
11698
11867
  label: "\u5BFE\u5FDC\u30E2\u30C7\u30EB\u3068\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0",
11699
11868
  platforms: "Web \xB7 \u30C7\u30B9\u30AF\u30C8\u30C3\u30D7 \xB7 iOS"
@@ -11715,9 +11884,9 @@ var interface_locale_default = {
11715
11884
  title: "prompt \u3092\u5C11\u3057\u6574\u3048\u308B\u3088\u308A\u3001\u6210\u679C\u3092\u524D\u306B\u9032\u3081\u305F\u3044\u4EBA\u5411\u3051\u3067\u3059",
11716
11885
  description: "\u6587\u8108\u3092\u899A\u3048\u3001\u30BF\u30B9\u30AF\u3092\u4EFB\u305B\u3001\u6700\u5F8C\u306B\u4F7F\u3048\u308B\u6210\u679C\u3092\u53D7\u3051\u53D6\u308A\u305F\u3044\u4EBA\u306B\u306F\u3001\u8907\u6570\u306E AI \u30BF\u30D6\u3092\u81EA\u5206\u3067\u3064\u306A\u3050\u3088\u308A Nolo \u306E\u4FA1\u5024\u304C\u51FA\u307E\u3059\u3002",
11717
11886
  label: "\u30DB\u30FC\u30E0\u306E\u6839\u62E0\u30DD\u30A4\u30F3\u30C8",
11718
- multiAgent: "1 \u3064\u306E Agent \u3092\u81EA\u5206\u3067\u52D5\u304B\u3059\u3053\u3068\u3082\u3001\u8907\u6570 Agent \u306B\u5206\u62C5\u3055\u305B\u308B\u3053\u3068\u3082\u3067\u304D\u308B",
11719
- multiOutput: "\u30A2\u30A4\u30C7\u30A2\u3092\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3001\u30A2\u30D7\u30EA\u3001\u753B\u50CF\u3001\u52D5\u753B\u3001\u518D\u5229\u7528\u53EF\u80FD\u306A\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u306B\u3067\u304D\u308B",
11720
- multiDevice: "\u307E\u305A\u306F web \u3067\u8A66\u3057\u3001\u305D\u306E\u5F8C desktop / mobile \u306B\u79FB\u308C\u308B"
11887
+ multiAgent: "\u6700\u5F37\u30E2\u30C7\u30EB\u306E\u529B\u306F\u672C\u5F53\u306B\u96E3\u3057\u3044\u554F\u984C\u306E\u305F\u3081\u306B\u3002\u5B9A\u578B\u4F5C\u696D\u306F\u4F4E\u30B3\u30B9\u30C8\u306A\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u3078",
11888
+ multiOutput: "\u30BF\u30B9\u30AF\u306E\u9014\u4E2D\u3067\u3044\u3064\u3067\u3082\u4E2D\u65AD\u3084\u6307\u793A\u5909\u66F4\u304C\u53EF\u80FD\u3002\u5B9A\u671F\u5B9F\u884C\u3084\u30ED\u30FC\u30AB\u30EB\u30DE\u30B7\u30F3\u4E0A\u3067\u306E\u5B9F\u884C\u306B\u3082\u5BFE\u5FDC",
11889
+ multiDevice: "\u5E2D\u3092\u96E2\u308C\u3066\u3082\u5927\u4E08\u592B\u2014\u2014\u9032\u6357\u306E\u78BA\u8A8D\u3001\u627F\u8A8D\u3001\u6307\u793A\u306E\u8FFD\u52A0\u306F\u30B9\u30DE\u30DB\u304B\u3089"
11721
11890
  },
11722
11891
  fit: {
11723
11892
  kicker: "\u5411\u3044\u3066\u3044\u308B\u4EBA",
@@ -12508,7 +12677,7 @@ var seoLocale = {
12508
12677
  title: "Nolo.Chat | Not Just a Chatbot \u2014 Your Private AI Team",
12509
12678
  description: "While others chat, Nolo.Chat works. Orchestrate multiple AI agents that remember your rules, collaborate on complex tasks, and keep running overnight \u2014 delivering real results by morning.",
12510
12679
  home: {
12511
- title: "Nolo.Chat | AI that Remembers You and Gets the Work Done",
12680
+ title: "Nolo \u2014 Let your strongest model plan. Let lower-cost agents execute.",
12512
12681
  description: "Work with GPT, Claude, DeepSeek and more in one AI workspace. Nolo remembers your context, lets multiple agents debate and collaborate, and turns ideas into docs, images, apps, and deliverables."
12513
12682
  },
12514
12683
  pricing: {
@@ -12533,10 +12702,10 @@ var seoLocale = {
12533
12702
  }
12534
12703
  },
12535
12704
  ["zh-CN" /* ZH_CN */]: {
12536
- title: "Nolo.Chat | \u8BA9 Nolo \u8BA4\u8BC6\u4F60\uFF0C\u8BB0\u4F4F\u4F60\uFF0C\u548C\u4F60\u4E00\u8D77\u521B\u9020",
12705
+ title: "Nolo \u2014 \u8BA9\u6700\u5F3A\u7684\u6A21\u578B\u89C4\u5212\uFF0C\u8BA9\u66F4\u4F4E\u6210\u672C\u7684 Agent \u6267\u884C\u3002",
12537
12706
  description: "\u522B\u4EBA\u662F\u4E00\u4E2A AI \u5E2E\u4F60\u804A\uFF0C\u6211\u4EEC\u662F\u591A\u4E2A Agent \u5E2E\u4F60\u505A\u5B8C\u3002\u8BB0\u4F4F\u4F60\u7684\u89C4\u5219\u3001\u591A\u6A21\u578B\u534F\u4F5C\u3001\u591C\u95F4\u81EA\u52A8\u6267\u884C\u2014\u2014\u4ECA\u665A\u59D4\u6258\uFF0C\u660E\u65E9\u4EA4\u4ED8\u7F51\u9875\u3001\u56FE\u7247\u3001\u6587\u6863\u3002",
12538
12707
  home: {
12539
- title: "Nolo.Chat | \u8BA9 Nolo \u8BA4\u8BC6\u4F60\uFF0C\u8BB0\u4F4F\u4F60\uFF0C\u548C\u4F60\u4E00\u8D77\u521B\u9020",
12708
+ title: "Nolo \u2014 \u8BA9\u6700\u5F3A\u7684\u6A21\u578B\u89C4\u5212\uFF0C\u8BA9\u66F4\u4F4E\u6210\u672C\u7684 Agent \u6267\u884C\u3002",
12540
12709
  description: "\u628A GPT\u3001Claude\u3001DeepSeek \u653E\u8FDB\u540C\u4E00\u4E2A AI \u5DE5\u4F5C\u53F0\u3002Nolo \u80FD\u8BB0\u4F4F\u4F60\u7684\u4E0A\u4E0B\u6587\uFF0C\u8BA9\u591A\u4E2A Agent \u534F\u4F5C\u6216\u8FA9\u8BBA\uFF0C\u5E76\u76F4\u63A5\u4EA7\u51FA\u6587\u6863\u3001\u56FE\u7247\u3001\u7F51\u9875\u548C\u53EF\u4EA4\u4ED8\u7ED3\u679C\u3002"
12541
12710
  },
12542
12711
  pricing: {
@@ -12561,10 +12730,10 @@ var seoLocale = {
12561
12730
  }
12562
12731
  },
12563
12732
  ["zh-Hant" /* ZH_HANT */]: {
12564
- title: "Nolo.Chat | \u8B93 Nolo \u8A8D\u8B58\u4F60\uFF0C\u8A18\u4F4F\u4F60\uFF0C\u548C\u4F60\u4E00\u8D77\u5275\u9020",
12733
+ title: "Nolo \u2014 \u8B93\u6700\u5F37\u6A21\u578B\u898F\u5283\uFF0C\u8B93\u66F4\u4F4E\u6210\u672C\u7684 Agent \u57F7\u884C\u3002",
12565
12734
  description: "\u5225\u4EBA\u662F\u4E00\u500B AI \u5E6B\u4F60\u804A\uFF0C\u6211\u5011\u662F\u591A\u500B Agent \u5E6B\u4F60\u505A\u5B8C\u3002\u8A18\u4F4F\u4F60\u7684\u898F\u5247\u3001\u591A\u6A21\u578B\u5354\u4F5C\u3001\u591C\u9593\u81EA\u52D5\u57F7\u884C\u2014\u2014\u4ECA\u665A\u59D4\u8A17\uFF0C\u660E\u65E9\u4EA4\u4ED8\u7DB2\u9801\u3001\u5716\u7247\u3001\u6587\u4EF6\u3002",
12566
12735
  home: {
12567
- title: "Nolo.Chat | \u8B93 Nolo \u8A8D\u8B58\u4F60\uFF0C\u8A18\u4F4F\u4F60\uFF0C\u548C\u4F60\u4E00\u8D77\u5275\u9020",
12736
+ title: "Nolo \u2014 \u8B93\u6700\u5F37\u6A21\u578B\u898F\u5283\uFF0C\u8B93\u66F4\u4F4E\u6210\u672C\u7684 Agent \u57F7\u884C\u3002",
12568
12737
  description: "\u628A GPT\u3001Claude\u3001DeepSeek \u653E\u9032\u540C\u4E00\u500B AI \u5DE5\u4F5C\u53F0\u3002Nolo \u80FD\u8A18\u4F4F\u4F60\u7684\u4E0A\u4E0B\u6587\uFF0C\u8B93\u591A\u500B Agent \u5354\u4F5C\u6216\u8FAF\u8AD6\uFF0C\u4E26\u76F4\u63A5\u7522\u51FA\u6587\u4EF6\u3001\u5716\u7247\u3001\u7DB2\u9801\u548C\u53EF\u4EA4\u4ED8\u7D50\u679C\u3002"
12569
12738
  },
12570
12739
  pricing: {
@@ -12589,7 +12758,7 @@ var seoLocale = {
12589
12758
  }
12590
12759
  },
12591
12760
  ["ja" /* JA */]: {
12592
- title: "Nolo.Chat | \u30C1\u30E3\u30C3\u30C8\u3092\u8D85\u3048\u305F\u3001\u3042\u306A\u305F\u5C02\u5C5E\u306E AI \u30C1\u30FC\u30E0",
12761
+ title: "Nolo \u2014 \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",
12593
12762
  description: "\u4ED6\u793E\u304C\u300C\u4E00\u5BFE\u4E00\u306E\u4F1A\u8A71\u300D\u306A\u3089\u3001Nolo.Chat \u306F\u300C\u8907\u6570 Agent \u304C\u5354\u529B\u3057\u3066\u4ED5\u4E8B\u3092\u5B8C\u9042\u300D\u3002\u30EB\u30FC\u30EB\u3092\u8A18\u61B6\u3057\u3001\u591C\u9593\u3082\u81EA\u52D5\u5B9F\u884C\u3002\u671D\u306B\u306F\u6210\u679C\u7269\u304C\u5C4A\u304D\u307E\u3059\u3002",
12594
12763
  home: {
12595
12764
  title: "Nolo.Chat | \u6587\u8108\u3092\u899A\u3048\u3066\u3001\u4ED5\u4E8B\u3092\u4ED5\u4E0A\u3052\u308B AI \u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9",
@@ -14004,7 +14173,7 @@ var terms_locale_default = {
14004
14173
  ["zh-CN" /* ZH_CN */]: {
14005
14174
  translation: {
14006
14175
  terms: {
14007
- title: "\u670D\u52A1\u6761\u6B3E",
14176
+ title: "\u670D\u52A1\u6761\u6B3E (Terms of Service)",
14008
14177
  lastUpdated: "\u6700\u540E\u66F4\u65B0\u65E5\u671F\uFF1A2026\u5E748\u670827\u65E5",
14009
14178
  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",
14010
14179
  section1: {
@@ -14045,7 +14214,7 @@ var terms_locale_default = {
14045
14214
  ["zh-Hant" /* ZH_HANT */]: {
14046
14215
  translation: {
14047
14216
  terms: {
14048
- title: "\u670D\u52D9\u689D\u6B3E",
14217
+ title: "\u670D\u52D9\u689D\u6B3E (Terms of Service)",
14049
14218
  lastUpdated: "\u6700\u5F8C\u66F4\u65B0\u65E5\u671F\uFF1A2026\u5E748\u670827\u65E5",
14050
14219
  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",
14051
14220
  section1: {
@@ -14642,6 +14811,77 @@ var localFirst_locale_default = {
14642
14811
  }
14643
14812
  };
14644
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
+
14645
14885
  // packages/app/i18n/i18n.config.ts
14646
14886
  var resources = {
14647
14887
  ["en" /* EN */]: {
@@ -14656,6 +14896,7 @@ var resources = {
14656
14896
  ...aup_locale_default["en" /* EN */].translation,
14657
14897
  ...footer_locale_default["en" /* EN */].translation,
14658
14898
  ...localFirst_locale_default["en" /* EN */].translation,
14899
+ ...openAuditable_locale_default["en" /* EN */].translation,
14659
14900
  seo: seo_locale_default["en" /* EN */]
14660
14901
  },
14661
14902
  space: space_locale_default["en" /* EN */].translation,
@@ -14674,6 +14915,7 @@ var resources = {
14674
14915
  ...aup_locale_default["zh-CN" /* ZH_CN */].translation,
14675
14916
  ...footer_locale_default["zh-CN" /* ZH_CN */].translation,
14676
14917
  ...localFirst_locale_default["zh-CN" /* ZH_CN */].translation,
14918
+ ...openAuditable_locale_default["zh-CN" /* ZH_CN */].translation,
14677
14919
  seo: seo_locale_default["zh-CN" /* ZH_CN */]
14678
14920
  },
14679
14921
  space: space_locale_default["zh-CN" /* ZH_CN */].translation,
@@ -14692,6 +14934,7 @@ var resources = {
14692
14934
  ...aup_locale_default["zh-Hant" /* ZH_HANT */].translation,
14693
14935
  ...footer_locale_default["zh-Hant" /* ZH_HANT */].translation,
14694
14936
  ...localFirst_locale_default["zh-Hant" /* ZH_HANT */].translation,
14937
+ ...openAuditable_locale_default["zh-Hant" /* ZH_HANT */].translation,
14695
14938
  seo: seo_locale_default["zh-Hant" /* ZH_HANT */]
14696
14939
  },
14697
14940
  space: space_locale_default["zh-Hant" /* ZH_HANT */].translation,
@@ -14710,6 +14953,7 @@ var resources = {
14710
14953
  ...aup_locale_default["ja" /* JA */].translation,
14711
14954
  ...footer_locale_default["ja" /* JA */].translation,
14712
14955
  ...localFirst_locale_default["ja" /* JA */].translation,
14956
+ ...openAuditable_locale_default["ja" /* JA */].translation,
14713
14957
  seo: seo_locale_default["ja" /* JA */]
14714
14958
  },
14715
14959
  space: space_locale_default["ja" /* JA */].translation,
@@ -14728,6 +14972,7 @@ var resources = {
14728
14972
  ...aup_locale_default["ko" /* KO */]?.translation ?? aup_locale_default["en" /* EN */].translation,
14729
14973
  ...footer_locale_default["ko" /* KO */]?.translation ?? footer_locale_default["en" /* EN */].translation,
14730
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,
14731
14976
  seo: seo_locale_default["ko" /* KO */]
14732
14977
  },
14733
14978
  space: space_locale_default["ko" /* KO */]?.translation ?? space_locale_default["en" /* EN */].translation,
@@ -14924,16 +15169,35 @@ var updateDialogSummaryAction = async (args, thunkApi) => {
14924
15169
  fileOpsText
14925
15170
  });
14926
15171
  try {
14927
- const newSummary = await dispatch(
15172
+ const runSummaryLlm = (model) => dispatch(
14928
15173
  runLlm({
14929
15174
  llmConfig: {
14930
15175
  ...BUILTIN_SUMMARY_LLM_CONFIG,
15176
+ ...model ? { model } : {},
14931
15177
  prompt: COMPACTION_SUMMARY_SYSTEM_PROMPT
14932
15178
  },
14933
15179
  content: promptContent,
14934
15180
  billingDialogKey: dialogKey
14935
15181
  })
14936
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
+ }
14937
15201
  if (newSummary && typeof newSummary === "string" && newSummary.trim()) {
14938
15202
  const currentCount = dialogConfig.compressionCount || 0;
14939
15203
  await dispatch(
@@ -17122,7 +17386,7 @@ var messageSlice = createSliceWithThunks({
17122
17386
  runtimeOptions: args.runtimeOptions
17123
17387
  });
17124
17388
  if (agentKeyToUse) {
17125
- const { streamAgentChatTurn } = await import("./agentSlice-BLCUNM5V.js");
17389
+ const { streamAgentChatTurn } = await import("./agentSlice-PYJFXGZL.js");
17126
17390
  await dispatch(
17127
17391
  streamAgentChatTurn({
17128
17392
  agentKey: agentKeyToUse,
@@ -18193,7 +18457,7 @@ var deleteOwnedDialogAttachments = async (args) => {
18193
18457
  metadataReadFailures
18194
18458
  });
18195
18459
  if (!plan.deleteCandidates.length) return plan;
18196
- const { deleteFileAction } = await import("./deleteFile-LWSR674W.js");
18460
+ const { deleteFileAction } = await import("./deleteFile-YG6QMJLU.js");
18197
18461
  for (const candidate of plan.deleteCandidates) {
18198
18462
  if (candidate.fileDbKey) {
18199
18463
  await deleteFileAction(candidate.fileDbKey, args.thunkApi);
@@ -18255,7 +18519,7 @@ var deleteDialogThunk = async (payload, thunkApi) => {
18255
18519
  }
18256
18520
  if (isCurrentDialog) {
18257
18521
  await thunkApi.dispatch(resetMsgs());
18258
- const { clearPendingAttachments: clearPendingAttachments2 } = await import("./dialogSlice-NQO5ZETL.js");
18522
+ const { clearPendingAttachments: clearPendingAttachments2 } = await import("./dialogSlice-YXMORK5T.js");
18259
18523
  dispatch(clearPendingAttachments2());
18260
18524
  }
18261
18525
  return { dialogKey, isCurrentDialog, attachmentPlan };
@@ -18263,39 +18527,39 @@ var deleteDialogThunk = async (payload, thunkApi) => {
18263
18527
 
18264
18528
  // packages/chat/dialog/dialogSlice.ts
18265
18529
  var runCreateDialogAction = async (args, thunkApi) => {
18266
- const { createDialogAction } = await import("./createDialogAction-VULS2PKA.js");
18530
+ const { createDialogAction } = await import("./createDialogAction-577E6FB2.js");
18267
18531
  return createDialogAction(args, thunkApi);
18268
18532
  };
18269
18533
  var runCreateAgentAutomationAction = async (args, thunkApi) => {
18270
- const { createAgentAutomationAction } = await import("./createAgentAutomationAction-YCWUKLMK.js");
18534
+ const { createAgentAutomationAction } = await import("./createAgentAutomationAction-GUBB2LWY.js");
18271
18535
  return createAgentAutomationAction(args, thunkApi);
18272
18536
  };
18273
18537
  var runUpdateDialogTitleAction = async (args, thunkApi) => {
18274
- const { updateDialogTitleAction } = await import("./updateDialogTitleAction-Z333XUN4.js");
18538
+ const { updateDialogTitleAction } = await import("./updateDialogTitleAction-KRUWX66L.js");
18275
18539
  return updateDialogTitleAction(args, thunkApi);
18276
18540
  };
18277
18541
  var runAddDialogAgentAction = async (args, thunkApi) => {
18278
- const { addDialogAgentAction } = await import("./addDialogAgentAction-M7VLLBZM.js");
18542
+ const { addDialogAgentAction } = await import("./addDialogAgentAction-CIDFWATM.js");
18279
18543
  return addDialogAgentAction(args, thunkApi);
18280
18544
  };
18281
18545
  var runRemoveDialogAgentAction = async (args, thunkApi) => {
18282
- const { removeDialogAgentAction } = await import("./removeDialogAgentAction-F5GPTALR.js");
18546
+ const { removeDialogAgentAction } = await import("./removeDialogAgentAction-O2POGBOE.js");
18283
18547
  return removeDialogAgentAction(args, thunkApi);
18284
18548
  };
18285
18549
  var runSetPrimaryDialogAgentAction = async (args, thunkApi) => {
18286
- const { setPrimaryDialogAgentAction } = await import("./setPrimaryDialogAgentAction-HPMG7V3R.js");
18550
+ const { setPrimaryDialogAgentAction } = await import("./setPrimaryDialogAgentAction-RMJETONI.js");
18287
18551
  return setPrimaryDialogAgentAction(args, thunkApi);
18288
18552
  };
18289
18553
  var runSwitchDialogAgentAction = async (args, thunkApi) => {
18290
- const { switchDialogAgentAction } = await import("./switchDialogAgentAction-HMDZTZ4I.js");
18554
+ const { switchDialogAgentAction } = await import("./switchDialogAgentAction-OQSGWVQQ.js");
18291
18555
  return switchDialogAgentAction(args, thunkApi);
18292
18556
  };
18293
18557
  var runSetDialogExtraReferencesAction = async (args, thunkApi) => {
18294
- const { setDialogExtraReferencesAction } = await import("./setDialogExtraReferencesAction-AY4ZCF3A.js");
18558
+ const { setDialogExtraReferencesAction } = await import("./setDialogExtraReferencesAction-KPSVVY3C.js");
18295
18559
  return setDialogExtraReferencesAction(args, thunkApi);
18296
18560
  };
18297
18561
  var runHandleSendMessageAction = async (args, thunkApi) => {
18298
- const { handleSendMessageAction } = await import("./handleSendMessageAction-WIUO466V.js");
18562
+ const { handleSendMessageAction } = await import("./handleSendMessageAction-BQIRKHC6.js");
18299
18563
  return handleSendMessageAction(args, thunkApi);
18300
18564
  };
18301
18565
  function clearDialogState() {
@@ -18308,7 +18572,7 @@ var createPageAndAddReference = createAsyncThunk(
18308
18572
  async (payload, { dispatch, getState, rejectWithValue }) => {
18309
18573
  const { slateData, jsonData, title, type, fileId, groupId, dialogKey } = payload;
18310
18574
  try {
18311
- const { createDocState } = await import("./docStore-AEJONTM4.js");
18575
+ const { createDocState } = await import("./docStore-3U5FBN2O.js");
18312
18576
  const pageKey = await createDocState(
18313
18577
  { slateData, title },
18314
18578
  { dispatch, getState }