nolo-cli 0.82.0-alpha.5 → 0.82.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 (161) hide show
  1. package/README.md +2 -2
  2. package/{_executeModel-225YRU52.js → _executeModel-FHVQOYWX.js} +48 -48
  3. package/{action-D22U6CTH.js → action-YVYQEAAV.js} +11 -11
  4. package/{addContentAction-XAPUTGL4.js → addContentAction-O7R66HEX.js} +9 -9
  5. package/{addDialogAgentAction-M7VLLBZM.js → addDialogAgentAction-74OA7KYP.js} +8 -8
  6. package/{agentDeleteCommand-ZJNQGVR2.js → agentDeleteCommand-4427YKQF.js} +31 -29
  7. package/{agentEmailCommands-VLVWFWX2.js → agentEmailCommands-LYDIAUOP.js} +67 -63
  8. package/{agentGrantCommands-R3VQEZJR.js → agentGrantCommands-M3XFO6EN.js} +2 -2
  9. package/{agentListCommands-GHQGLAUU.js → agentListCommands-O4AEMQVV.js} +40 -32
  10. package/{agentMachineCommands-QDXYENZJ.js → agentMachineCommands-F6IHXMPD.js} +31 -29
  11. package/{agentProviderCommands-65ZC2WB4.js → agentProviderCommands-GNPTL5XR.js} +87 -0
  12. package/{agentPullCommand-N7L2CT7L.js → agentPullCommand-O5MPVJ5E.js} +3 -3
  13. package/agentRecordCommands-BDLFOU7E.js +128 -0
  14. package/{agentRunCommand-YSCD65HH.js → agentRunCommand-HSSYFGMC.js} +65 -61
  15. package/{agentRunControl-T44MESII.js → agentRunControl-WCTKX5VL.js} +2 -2
  16. package/{agentRuntimeLocal-ZOHB7OOO.js → agentRuntimeLocal-IW3IM5P6.js} +27 -25
  17. package/{agentSlice-O2SBU5TK.js → agentSlice-G54NT6PX.js} +10 -10
  18. package/{appDeleteCommands-PRT6K5N2.js → appDeleteCommands-ZXLXNRHF.js} +31 -29
  19. package/{appDeployCommands-63ZONFAN.js → appDeployCommands-PWB4YERK.js} +31 -29
  20. package/{appDeployStatusCommands-AFAYCVR3.js → appDeployStatusCommands-2EZKZP7Y.js} +31 -29
  21. package/{appGetCommands-TNZDZE36.js → appGetCommands-JNUKOWHO.js} +31 -29
  22. package/{appListCommands-IA4SPG2X.js → appListCommands-6X3H67SS.js} +31 -29
  23. package/{authCommand-EVGFLAHO.js → authCommand-F4EFRRX6.js} +164 -24
  24. package/{authCommands-ILTBI6JV.js → authCommands-RGOGCPP6.js} +4 -5
  25. package/builtinSkillRegistry-FUAVTRVZ.js +33 -0
  26. package/{chatQueueReduxAdapter-4SM3DAWX.js → chatQueueReduxAdapter-VJXYSZ2D.js} +24 -24
  27. package/{chromeCommands-VOIRNJBL.js → chromeCommands-FZYAU75D.js} +1 -1
  28. package/{chromeOpsCommands-M7DPCX2T.js → chromeOpsCommands-62P2Q2YB.js} +31 -1
  29. package/{chunk-C3FZR5EC.js → chunk-2F7RJC6L.js} +1 -1
  30. package/{chunk-QC5LGHYP.js → chunk-2YMRWISD.js} +10 -5
  31. package/{chunk-HQUORJTM.js → chunk-3BMYXEUW.js} +1 -1
  32. package/{chunk-3QPYFHAH.js → chunk-3DII57IT.js} +1 -1
  33. package/{chunk-NTW5GWDM.js → chunk-3VNWWVKB.js} +2 -0
  34. package/{chunk-DWUCB2A3.js → chunk-42V6BK2E.js} +1 -1
  35. package/{chunk-KIS76A2P.js → chunk-4EZHSKTB.js} +38 -4
  36. package/{chunk-GBPZKFYK.js → chunk-53HEEOTT.js} +4 -4
  37. package/{chunk-5XTOKQLW.js → chunk-5UTFL4QJ.js} +6 -2
  38. package/chunk-5ZUL4CUO.js +10 -0
  39. package/{chunk-E6RGHPDR.js → chunk-6D6VBVEW.js} +4 -6
  40. package/{chunk-CMH2SYHX.js → chunk-6OZ36FXI.js} +2 -2
  41. package/{chunk-NRALD3CC.js → chunk-76WEAXJB.js} +49 -10
  42. package/{chunk-3W2JJOH3.js → chunk-7REEVK4I.js} +3 -3
  43. package/{chunk-BYEJ7K2Z.js → chunk-7S4YWN7P.js} +1 -1
  44. package/{chunk-SREASRV5.js → chunk-ABQYVJBJ.js} +1 -1
  45. package/chunk-ACTMNVHM.js +93 -0
  46. package/{chunk-XWNRAIUL.js → chunk-AFUORTY4.js} +6 -16
  47. package/{chunk-E36HZARC.js → chunk-ASQYTZTR.js} +46 -9
  48. package/{chunk-73IOJLK2.js → chunk-AVV3M6CX.js} +10 -10
  49. package/{chunk-WL2RKIBF.js → chunk-BLJWCTRL.js} +1 -1
  50. package/chunk-BNGW5ASC.js +344 -0
  51. package/{chunk-SZLVDREM.js → chunk-BP4XNZRM.js} +3 -3
  52. package/{chunk-2KDR4CWE.js → chunk-BYMV6QZG.js} +24 -1
  53. package/{chunk-MYU3MJCF.js → chunk-DHDMC6FO.js} +175 -7
  54. package/{chunk-FP27MNSX.js → chunk-DL2LVM5E.js} +3 -3
  55. package/{chunk-EXMHJN7C.js → chunk-EYAQT56M.js} +4 -3
  56. package/{chunk-5LSS6MFZ.js → chunk-F5OE5KSJ.js} +13 -15
  57. package/{chunk-CJCJF5XB.js → chunk-FDTR4QJ6.js} +4 -2
  58. package/{chunk-NJ6WLAPS.js → chunk-FEEHCOBD.js} +1 -1
  59. package/{chunk-YSKEOTPH.js → chunk-GGMVRZRO.js} +155 -795
  60. package/{chunk-PYXL2CJL.js → chunk-GPCZ7UXG.js} +1 -1
  61. package/{chunk-K7AG465Q.js → chunk-GQBOR3G6.js} +4 -2
  62. package/{chunk-YFADVSZE.js → chunk-H62HCIUP.js} +6 -6
  63. package/{chunk-PZM3EENV.js → chunk-HJUYAD4A.js} +1 -1
  64. package/{chunk-A3NNC2LA.js → chunk-HOBJGHLD.js} +1235 -59
  65. package/{chunk-3JQ2NRYU.js → chunk-HVURBGF3.js} +4 -4
  66. package/{chunk-6SD5OPQ4.js → chunk-IIBAPOTQ.js} +11 -173
  67. package/{chunk-ZVN6I33J.js → chunk-IIVGDG4I.js} +6 -5
  68. package/{chunk-UDQWGU7F.js → chunk-J4MOO56S.js} +1 -1
  69. package/{chunk-KC5FAHVS.js → chunk-JEDZAO7L.js} +1 -1
  70. package/{chunk-6XIE5ZGI.js → chunk-JPGCXHNM.js} +1 -1
  71. package/chunk-JRQFUXY7.js +1625 -0
  72. package/chunk-KQ4ONNQD.js +677 -0
  73. package/{chunk-CPSZJBLK.js → chunk-L7I247DF.js} +105 -26
  74. package/{chunk-RXX4GDIH.js → chunk-LS2ZANRJ.js} +1 -1
  75. package/{chunk-BJIRLHJR.js → chunk-M2EJHDJP.js} +4 -0
  76. package/{chunk-EVBFYPDC.js → chunk-MC4XLIJ7.js} +6 -2
  77. package/{chunk-DSRXPQWA.js → chunk-NEDZDG3M.js} +43 -43
  78. package/{chunk-UJ63UXGE.js → chunk-OIVSQH2O.js} +1006 -801
  79. package/{chunk-AETZ7AD6.js → chunk-Q554LLSI.js} +1 -1
  80. package/chunk-Q5FJJ6XI.js +103 -0
  81. package/{chunk-AJHEFRGJ.js → chunk-Q67DOFOO.js} +214 -5
  82. package/{chunk-UZ6XXCVR.js → chunk-QDSINZM3.js} +15 -2
  83. package/{chunk-D6XYLSOS.js → chunk-QIAVMDHY.js} +1 -1
  84. package/{chunk-YWG6EMH3.js → chunk-RG6JBBX5.js} +10 -6
  85. package/{chunk-YXLXHIT2.js → chunk-RTUYRRBM.js} +6 -6
  86. package/{chunk-HHLTFENG.js → chunk-SDTTBMBU.js} +907 -317
  87. package/{chunk-QCZX4FTW.js → chunk-SH43IESU.js} +173 -15
  88. package/{chunk-LSZXYE64.js → chunk-SL4QHSPQ.js} +756 -80
  89. package/{chunk-FNGAF7C4.js → chunk-SNPMM7H3.js} +137 -12
  90. package/{chunk-EM6MPSEI.js → chunk-SPUTJ4DW.js} +52 -30
  91. package/{chunk-SO7B7NW3.js → chunk-STHU4Y5X.js} +413 -62
  92. package/{chunk-SPAQ4PVV.js → chunk-SV5IJK6K.js} +1 -1
  93. package/{chunk-KVDUCO4Q.js → chunk-TDRTS7QW.js} +16 -12
  94. package/{chunk-BJCWNHVU.js → chunk-TOP2VXOR.js} +2 -2
  95. package/{chunk-4EJ5QYB5.js → chunk-UKZDAFYT.js} +1 -1
  96. package/{chunk-PGSKWZCB.js → chunk-UZGQNTVW.js} +1 -1
  97. package/{chunk-ZZCJUXUI.js → chunk-V4MJDUSR.js} +2 -2
  98. package/{chunk-JYYZCK2Z.js → chunk-V7E4PXQD.js} +1 -1
  99. package/{chunk-OZX2IPKM.js → chunk-VLTIYV3X.js} +1 -1
  100. package/{chunk-NHRQCXIQ.js → chunk-VMFTFOWF.js} +13 -3
  101. package/{chunk-4UW2LDVA.js → chunk-VQW3EKYS.js} +15 -15
  102. package/{chunk-HH65VA5U.js → chunk-WGR3J4Q6.js} +101 -4
  103. package/{chunk-5J7W2VWW.js → chunk-WV42OMV7.js} +6 -265
  104. package/{chunk-Q46HQOW3.js → chunk-XTAZCQUT.js} +7 -7
  105. package/{chunk-DUJWWUGV.js → chunk-YQTQQX2H.js} +1 -1
  106. package/{chunk-BOYUESO7.js → chunk-Z77CRGTW.js} +1 -1
  107. package/{contentThunks-ENAVF2YU.js → contentThunks-D6QQKIPF.js} +25 -25
  108. package/{cooldownCommands-BSCH2W7P.js → cooldownCommands-REAWYVTY.js} +2 -2
  109. package/{createAgentAutomationAction-CH6BYC7K.js → createAgentAutomationAction-UIPWW4DG.js} +25 -25
  110. package/{createDialogAction-23UDOXSO.js → createDialogAction-573VVP3X.js} +28 -28
  111. package/{createPageAction-J6AEMLHK.js → createPageAction-LRFSS6TD.js} +26 -26
  112. package/{dbSlice-GKGGFNOB.js → dbSlice-XVWBAGYN.js} +8 -8
  113. package/{deleteFile-LWSR674W.js → deleteFile-YG6QMJLU.js} +3 -3
  114. package/{dialogCommands-BJJGCCQR.js → dialogCommands-KFK2FF5B.js} +35 -31
  115. package/{dialogSlice-F7RD6PUY.js → dialogSlice-EXLC5XTD.js} +24 -24
  116. package/{docCreateCommands-53GB2FU3.js → docCreateCommands-V777WOZ7.js} +32 -30
  117. package/{docDeleteCommands-TAW5JEBU.js → docDeleteCommands-5KHT7Z5Q.js} +33 -31
  118. package/{docReadCommands-F5N7N5E3.js → docReadCommands-BLROGWP3.js} +32 -30
  119. package/{docStore-WX4YBGXC.js → docStore-DZNGJXX7.js} +9 -9
  120. package/{docUpdateCommands-YQ7TRT35.js → docUpdateCommands-QXOZHQ5H.js} +32 -30
  121. package/{fetchMessages-DRABNDPZ.js → fetchMessages-EIU7UFFK.js} +3 -4
  122. package/{getPricing-HRMSOF3E.js → getPricing-LUSEABA6.js} +4 -4
  123. package/{handleSendMessageAction-CW4LULIR.js → handleSendMessageAction-OROTZBPO.js} +24 -24
  124. package/index.js +102 -85
  125. package/{localDialogRead-PUQKFI73.js → localDialogRead-BTFJ4V2I.js} +2 -2
  126. package/{localRuntimeDb-P37ZTX55.js → localRuntimeDb-SYQGUF4U.js} +1 -1
  127. package/{machineCommands-FIYWY5EU.js → machineCommands-IJWERHRH.js} +64 -60
  128. package/{machineWsRunDispatch-KQ4OFFNR.js → machineWsRunDispatch-XQ36M4L7.js} +62 -58
  129. package/{memberThunks-KATHH3F4.js → memberThunks-QGFLFVCI.js} +9 -9
  130. package/{models-GS72DVJS.js → models-T3SG6MJ5.js} +2 -2
  131. package/{offlineMarxistsAgentCommand-GEH6SNNA.js → offlineMarxistsAgentCommand-HGXZV4XJ.js} +1 -1
  132. package/package.json +1 -1
  133. package/providerPresetApply-FG6NZ57W.js +214 -0
  134. package/providerRegistry-757OWH3O.js +31 -0
  135. package/{read-LC6HVYBN.js → read-COE3ZYR6.js} +5 -4
  136. package/{readDocTool-N3ERJHHF.js → readDocTool-5USN4A6V.js} +1 -1
  137. package/{readlineWorkspace-QYI6BRNA.js → readlineWorkspace-EB3362L3.js} +144 -108
  138. package/{removeDialogAgentAction-F5GPTALR.js → removeDialogAgentAction-IX3MN2ZO.js} +11 -11
  139. package/{runAgentClientLoop-GZ5VUGAW.js → runAgentClientLoop-3MR2NPWR.js} +47 -47
  140. package/{runtimeDoctorCommands-CROTMULY.js → runtimeDoctorCommands-X6WDBEQX.js} +2 -2
  141. package/{setDialogExtraReferencesAction-AY4ZCF3A.js → setDialogExtraReferencesAction-X4HCPNZL.js} +9 -9
  142. package/{setPrimaryDialogAgentAction-HPMG7V3R.js → setPrimaryDialogAgentAction-4GMIQLOD.js} +11 -11
  143. package/{settingSlice-OEJA4NQO.js → settingSlice-ZQZVUPKK.js} +10 -10
  144. package/{spaceCommands-IYMIXCMC.js → spaceCommands-TIDVUPDV.js} +30 -28
  145. package/{streamAgentChatTurn-EAXIUJTK.js → streamAgentChatTurn-CLP2JWCQ.js} +59 -58
  146. package/{switchDialogAgentAction-HMDZTZ4I.js → switchDialogAgentAction-N52LRPA3.js} +8 -8
  147. package/{tableCommands-SUNTHAYX.js → tableCommands-O6NWHFKV.js} +1 -1
  148. package/{toolApiClient-VGYUB4P5.js → toolApiClient-QVJ6HDNN.js} +2 -2
  149. package/{tools-QWQOW6J4.js → tools-OXEEBABR.js} +43 -43
  150. package/tuiSummaryLlmCaller-VJY3YD2Q.js +127 -0
  151. package/{updateCommands-Y363MC3L.js → updateCommands-2M74UL7P.js} +2 -2
  152. package/{updateDialogTitleAction-2HCE2M7S.js → updateDialogTitleAction-4YWKF2OE.js} +45 -28
  153. package/agentRecordCommands-AQFYM5HS.js +0 -124
  154. package/chunk-3IT2PFHL.js +0 -611
  155. package/chunk-I42VC5KR.js +0 -15
  156. package/chunk-NG4UT4K4.js +0 -79
  157. package/codingSkills-E6KSDNSJ.js +0 -48
  158. package/tuiSummaryLlmCaller-3Z24VUWM.js +0 -116
  159. package/{chunk-3RAG2NAD.js → chunk-UKWGR5SS.js} +3 -3
  160. package/{db-VQSAOWAO.js → db-WK5MDZVN.js} +1 -1
  161. 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-Q46HQOW3.js";
17
+ } from "./chunk-XTAZCQUT.js";
17
18
  import {
18
19
  cleanupCliSessionForDialog
19
- } from "./chunk-BJCWNHVU.js";
20
+ } from "./chunk-TOP2VXOR.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-NEDZDG3M.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-ASQYTZTR.js";
69
70
  import {
70
71
  findModelConfig,
71
72
  getModelConfig
72
- } from "./chunk-UJ63UXGE.js";
73
+ } from "./chunk-OIVSQH2O.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-Q67DOFOO.js";
88
89
  import {
89
90
  nolotusId
90
- } from "./chunk-XWNRAIUL.js";
91
+ } from "./chunk-QDSINZM3.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-H62HCIUP.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,13 +120,13 @@ import {
119
120
  builtinAgentCatalogEntryById,
120
121
  builtinRuntimeFallbackEntries,
121
122
  isBuiltinPlatformAgentKey
122
- } from "./chunk-5J7W2VWW.js";
123
+ } from "./chunk-BNGW5ASC.js";
123
124
  import {
124
125
  extractCustomId,
125
126
  extractUserId,
126
127
  parsePublicAgentId,
127
128
  publicAgentKey
128
- } from "./chunk-BJIRLHJR.js";
129
+ } from "./chunk-M2EJHDJP.js";
129
130
  import {
130
131
  asyncThunkCreator,
131
132
  buildCreateSlice,
@@ -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";
@@ -7991,6 +7992,48 @@ 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: "You already use multiple AIs. Nolo makes them work as one.",
7998
+ description: "Use subscriptions and APIs together. Put the right model on each task for quality, speed, and cost \u2014 across coding, research, visual work, and more.",
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
+ "Use the subscriptions you already pay for",
8004
+ "Choose the best model for each task",
8005
+ "Open source and auditable"
8006
+ ],
8007
+ contrastsLabel: "Why Nolo",
8008
+ proofKicker: "Nolo in action",
8009
+ balanceKicker: "Human judgment",
8010
+ principles: [
8011
+ {
8012
+ title: "Good collaboration compounds",
8013
+ proof: "Memory \xB7 Space \xB7 Context",
8014
+ description: "Real work has history, rules, files, and lessons learned. Agents keep useful long-term context, so working together gets smoother over time."
8015
+ },
8016
+ {
8017
+ title: "Use the right intelligence for the right work",
8018
+ proof: "Routing \xB7 Delegation",
8019
+ 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."
8020
+ },
8021
+ {
8022
+ title: "Respect your judgment. Challenge your blind spots.",
8023
+ proof: "Divergence \xB7 Review",
8024
+ description: "Nolo does more than execute. It respects your intent and choices while surfacing alternatives, risks, and possibilities worth considering."
8025
+ }
8026
+ ],
8027
+ balanceTitle: "Automate what should be automated. Keep the choices that matter.",
8028
+ balanceDescription: "Attention is finite. Nolo keeps routine complexity in the background and asks for your judgment only where it truly matters.",
8029
+ systemLabel: "Nolo handles",
8030
+ systemItems: ["Model selection", "Agent orchestration", "Context management", "Cost and speed", "Repeatable execution"],
8031
+ youLabel: "You decide",
8032
+ youItems: ["Goals", "Which risks are worth taking", "Taste", "Direction", "What you truly want to create"],
8033
+ closingLead: "AI can research, execute, compare, verify, and move in parallel.",
8034
+ closingLines: ["Why you do it.", "What good looks like.", "What you truly want to create."],
8035
+ closingEnd: "That remains yours."
8036
+ },
7994
8037
  heroTitle: "Let your strongest model plan. Let lower-cost agents execute.",
7995
8038
  heroDescription: "Nolo orchestrates your coding agents across models \u2014 so premium capacity handles the hard decisions, not every routine step.",
7996
8039
  ctaButton: "Start free",
@@ -8068,7 +8111,7 @@ var interface_locale_default = {
8068
8111
  exampleLabel: "Example \xB7 coding delivery",
8069
8112
  badge: "Example orchestration",
8070
8113
  title: "Coding tasks: from split work to shipped result",
8071
- desc: "One common pattern\u2014coordinate, build in parallel, review, iterate, and release. Not the only way to run a multi-agent team.",
8114
+ desc: "A common pattern\u2014a strong model plans and coordinates, faster and cheaper models build in parallel, and a specialist model reviews before release. Not the only way to run a multi-agent team.",
8072
8115
  input: "Input",
8073
8116
  dispatch: "Dispatch",
8074
8117
  submit: "Submit",
@@ -8088,16 +8131,16 @@ var interface_locale_default = {
8088
8131
  desc: "Start in chat or on the task board with what you want done."
8089
8132
  },
8090
8133
  {
8091
- title: "Work gets routed",
8092
- desc: "A coordinator agent assigns the right roles to the task."
8134
+ title: "Plan with a strong model",
8135
+ desc: "A strong model plans the work and assigns each role to the right agent."
8093
8136
  },
8094
8137
  {
8095
8138
  title: "Build in parallel",
8096
- desc: "UI, logic, and data can move forward at the same time."
8139
+ desc: "Faster, cheaper models handle UI, logic, and data at the same time."
8097
8140
  },
8098
8141
  {
8099
8142
  title: "Review and iterate",
8100
- desc: "If it is not good enough yet, agents send it back and improve it."
8143
+ desc: "A specialist model checks quality and sends work back until it passes."
8101
8144
  },
8102
8145
  {
8103
8146
  title: "Ship the result",
@@ -9250,6 +9293,48 @@ var interface_locale_default = {
9250
9293
  home: "\u9996\u9875",
9251
9294
  // === Combined Welcome Section ===
9252
9295
  welcomeSection: {
9296
+ brandLanding: {
9297
+ kicker: "Nolo \xB7 Agent Harness",
9298
+ title: "\u4F60\u5DF2\u7ECF\u5728\u7528\u4E0D\u6B62\u4E00\u4E2A AI\u3002\u8BA9 Nolo \u628A\u5B83\u4EEC\u771F\u6B63\u7EC4\u5408\u8D77\u6765\u3002",
9299
+ description: "\u628A\u8BA2\u9605\u548C API \u653E\u8FDB\u540C\u4E00\u4E2A\u5DE5\u4F5C\u6D41\uFF0C\u6839\u636E\u8D28\u91CF\u3001\u901F\u5EA6\u548C\u6210\u672C\uFF0C\u628A\u4E0D\u540C\u4EFB\u52A1\u4EA4\u7ED9\u66F4\u5408\u9002\u7684\u6A21\u578B\u2014\u2014\u4ECE\u7F16\u7801\u3001\u7814\u7A76\u5230\u89C6\u89C9\u4E0E\u521B\u4F5C\u3002",
9300
+ continuity: "\u6A21\u578B\u4F1A\u53D8\u3002\u4F60\u7684\u5DE5\u4F5C\u65B9\u5F0F\u4E0D\u5FC5\u91CD\u6765\u3002",
9301
+ primaryCta: "\u514D\u8D39\u5F00\u59CB",
9302
+ secondaryCta: "\u4E0B\u8F7D Nolo",
9303
+ contrasts: [
9304
+ "\u4F18\u5148\u5229\u7528\u4F60\u5DF2\u7ECF\u8D2D\u4E70\u7684\u8BA2\u9605",
9305
+ "\u4E0D\u540C\u4EFB\u52A1\u4F7F\u7528\u66F4\u5408\u9002\u7684\u6A21\u578B",
9306
+ "\u5F00\u6E90\uFF0C\u53EF\u5BA1\u8BA1"
9307
+ ],
9308
+ contrastsLabel: "\u4E3A\u4EC0\u4E48\u662F Nolo",
9309
+ proofKicker: "\u4EA7\u54C1\u5B9E\u51B5",
9310
+ balanceKicker: "\u4EBA\u7684\u5224\u65AD",
9311
+ principles: [
9312
+ {
9313
+ title: "\u597D\u7684\u5408\u4F5C\u4F1A\u79EF\u7D2F",
9314
+ proof: "\u8BB0\u5FC6 \xB7 \u7A7A\u95F4 \xB7 \u4E0A\u4E0B\u6587",
9315
+ 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"
9316
+ },
9317
+ {
9318
+ title: "\u5408\u9002\u7684\u667A\u80FD\uFF0C\u505A\u5408\u9002\u7684\u5DE5\u4F5C",
9319
+ proof: "\u8DEF\u7531 \xB7 \u6D3E\u53D1",
9320
+ 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"
9321
+ },
9322
+ {
9323
+ title: "\u5C0A\u91CD\u4F60\u7684\u5224\u65AD\uFF0C\u4E5F\u6311\u6218\u4F60\u7684\u76F2\u533A",
9324
+ proof: "\u53D1\u6563 \xB7 \u590D\u6838",
9325
+ 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"
9326
+ }
9327
+ ],
9328
+ balanceTitle: "\u8BE5\u81EA\u52A8\u7684\u81EA\u52A8\uFF0C\u8BE5\u9009\u62E9\u7684\u7531\u4F60\u9009\u62E9",
9329
+ 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",
9330
+ systemLabel: "Nolo \u5C3D\u91CF\u5904\u7406",
9331
+ systemItems: ["\u6A21\u578B\u9009\u62E9", "Agent \u8C03\u5EA6", "\u4E0A\u4E0B\u6587\u6574\u7406", "\u6210\u672C\u4E0E\u901F\u5EA6", "\u91CD\u590D\u6267\u884C"],
9332
+ youLabel: "\u7559\u7ED9\u4F60\u51B3\u5B9A",
9333
+ youItems: ["\u76EE\u6807", "\u613F\u610F\u627F\u62C5\u4EC0\u4E48\u98CE\u9669", "\u5BA1\u7F8E", "\u65B9\u5411", "\u771F\u6B63\u60F3\u521B\u9020\u4EC0\u4E48"],
9334
+ closingLead: "AI \u53EF\u4EE5\u7814\u7A76\u3001\u6267\u884C\u3001\u6BD4\u8F83\u3001\u68C0\u67E5\u548C\u5E76\u884C\u63A8\u8FDB\u3002",
9335
+ closingLines: ["\u4F60\u4E3A\u4EC0\u4E48\u505A\u3002", "\u4EC0\u4E48\u662F\u597D\u7684\u3002", "\u4F60\u771F\u6B63\u60F3\u521B\u9020\u4EC0\u4E48\u3002"],
9336
+ closingEnd: "\u59CB\u7EC8\u662F\u4F60\u3002"
9337
+ },
9253
9338
  heroTitle: "\u8BA9\u6700\u5F3A\u7684\u6A21\u578B\u89C4\u5212\uFF0C\u8BA9\u66F4\u4F4E\u6210\u672C\u7684 Agent \u6267\u884C\u3002",
9254
9339
  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
9340
  ctaButton: "\u514D\u8D39\u5F00\u59CB",
@@ -9327,7 +9412,7 @@ var interface_locale_default = {
9327
9412
  exampleLabel: "\u793A\u4F8B \xB7 \u7F16\u7801\u4EA4\u4ED8",
9328
9413
  badge: "\u7F16\u6392\u793A\u4F8B",
9329
9414
  title: "\u7F16\u7801\u4EFB\u52A1\uFF1A\u4ECE\u5206\u5DE5\u5230\u4EA4\u4ED8",
9330
- desc: "\u8FD9\u662F\u4E00\u79CD\u5E38\u89C1\u7684\u591A Agent \u7F16\u6392\u2014\u2014\u534F\u8C03\u3001\u5E76\u884C\u5B9E\u73B0\u3001\u8D28\u91CF\u68C0\u67E5\u3001\u81EA\u52A8\u8FD4\u5DE5\uFF0C\u76F4\u5230\u53EF\u4E0A\u7EBF\u3002\u4E0D\u662F\u552F\u4E00\u7684\u7EC4\u961F\u65B9\u5F0F\u3002",
9415
+ desc: "\u4E00\u79CD\u5E38\u89C1\u6A21\u5F0F\u2014\u2014\u66F4\u5F3A\u7684\u6A21\u578B\u89C4\u5212\u548C\u534F\u8C03\uFF0C\u66F4\u5FEB\u3001\u66F4\u4FBF\u5B9C\u7684\u6A21\u578B\u5E76\u884C\u5F00\u53D1\uFF0C\u53D1\u5E03\u524D\u518D\u7531\u4E13\u95E8\u7684\u6A21\u578B\u628A\u5173\u3002\u4E0D\u662F\u552F\u4E00\u7684\u7EC4\u961F\u65B9\u5F0F\u3002",
9331
9416
  input: "\u8F93\u5165",
9332
9417
  dispatch: "\u5206\u53D1",
9333
9418
  submit: "\u63D0\u4EA4",
@@ -9347,16 +9432,16 @@ var interface_locale_default = {
9347
9432
  desc: "\u5728\u5BF9\u8BDD\u6216\u4EFB\u52A1\u770B\u677F\u91CC\u63CF\u8FF0\u4F60\u60F3\u5B8C\u6210\u7684\u4E8B\u3002"
9348
9433
  },
9349
9434
  {
9350
- title: "\u81EA\u52A8\u5206\u5DE5",
9351
- desc: "\u534F\u8C03 Agent \u628A\u4EFB\u52A1\u5206\u7ED9\u5408\u9002\u7684\u89D2\u8272\u5E76\u884C\u63A8\u8FDB\u3002"
9435
+ title: "\u5F3A\u6A21\u578B\u89C4\u5212",
9436
+ desc: "\u66F4\u5F3A\u7684\u6A21\u578B\u89C4\u5212\u5DE5\u4F5C\uFF0C\u628A\u4EFB\u52A1\u5206\u7ED9\u5408\u9002\u7684\u89D2\u8272\u3002"
9352
9437
  },
9353
9438
  {
9354
- title: "\u5E76\u884C\u5B9E\u73B0",
9355
- desc: "\u754C\u9762\u3001\u903B\u8F91\u3001\u6570\u636E\u53EF\u4EE5\u540C\u65F6\u5F80\u524D\u63A8\u8FDB\u3002"
9439
+ title: "\u5E76\u884C\u5F00\u53D1",
9440
+ desc: "\u66F4\u5FEB\u3001\u66F4\u4FBF\u5B9C\u7684\u6A21\u578B\u540C\u65F6\u63A8\u8FDB\u754C\u9762\u3001\u903B\u8F91\u548C\u6570\u636E\u3002"
9356
9441
  },
9357
9442
  {
9358
- title: "\u68C0\u67E5\u4E0E\u8FD4\u5DE5",
9359
- desc: "\u8D28\u91CF\u4E0D\u8FC7\u5173\u4F1A\u81EA\u52A8\u6253\u56DE\u4F18\u5316\uFF0C\u76F4\u5230\u8FBE\u6807\u3002"
9443
+ title: "\u4E13\u95E8\u8BC4\u5BA1",
9444
+ desc: "\u4E13\u95E8\u7684\u6A21\u578B\u68C0\u67E5\u8D28\u91CF\uFF0C\u4E0D\u8FBE\u6807\u5C31\u9000\u56DE\u4F18\u5316\u3002"
9360
9445
  },
9361
9446
  {
9362
9447
  title: "\u4EA4\u4ED8\u4E0A\u7EBF",
@@ -10509,6 +10594,48 @@ var interface_locale_default = {
10509
10594
  home: "\u9996\u9801",
10510
10595
  // === Combined Welcome Section ===
10511
10596
  welcomeSection: {
10597
+ brandLanding: {
10598
+ kicker: "Nolo \xB7 Agent Harness",
10599
+ title: "\u4F60\u5DF2\u7D93\u5728\u4E0D\u53EA\u7528\u4E00\u500B AI\u3002\u8B93 Nolo \u628A\u5B83\u5011\u771F\u6B63\u7D44\u5408\u8D77\u4F86\u3002",
10600
+ description: "\u628A\u8A02\u95B1\u548C API \u653E\u9032\u540C\u4E00\u500B\u5DE5\u4F5C\u6D41\uFF0C\u6839\u64DA\u54C1\u8CEA\u3001\u901F\u5EA6\u548C\u6210\u672C\uFF0C\u628A\u4E0D\u540C\u4EFB\u52D9\u4EA4\u7D66\u66F4\u5408\u9069\u7684\u6A21\u578B\u2014\u2014\u5F9E\u7DE8\u78BC\u3001\u7814\u7A76\u5230\u8996\u89BA\u8207\u5275\u4F5C\u3002",
10601
+ continuity: "\u6A21\u578B\u6703\u8B8A\u3002\u4F60\u7684\u5DE5\u4F5C\u65B9\u5F0F\u4E0D\u5FC5\u91CD\u4F86\u3002",
10602
+ primaryCta: "\u514D\u8CBB\u958B\u59CB",
10603
+ secondaryCta: "\u4E0B\u8F09 Nolo",
10604
+ contrasts: [
10605
+ "\u512A\u5148\u5229\u7528\u4F60\u5DF2\u7D93\u8CFC\u8CB7\u7684\u8A02\u95B1",
10606
+ "\u4E0D\u540C\u4EFB\u52D9\u4F7F\u7528\u66F4\u5408\u9069\u7684\u6A21\u578B",
10607
+ "\u958B\u6E90\uFF0C\u53EF\u5BE9\u8A08"
10608
+ ],
10609
+ contrastsLabel: "\u70BA\u4EC0\u9EBC\u662F Nolo",
10610
+ proofKicker: "\u7522\u54C1\u5BE6\u6CC1",
10611
+ balanceKicker: "\u4EBA\u7684\u5224\u65B7",
10612
+ principles: [
10613
+ {
10614
+ title: "\u597D\u7684\u5408\u4F5C\u6703\u7D2F\u7A4D",
10615
+ proof: "\u8A18\u61B6 \xB7 \u7A7A\u9593 \xB7 \u4E0A\u4E0B\u6587",
10616
+ 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"
10617
+ },
10618
+ {
10619
+ title: "\u5408\u9069\u7684\u667A\u80FD\uFF0C\u505A\u5408\u9069\u7684\u5DE5\u4F5C",
10620
+ proof: "\u8DEF\u7531 \xB7 \u59D4\u6D3E",
10621
+ 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"
10622
+ },
10623
+ {
10624
+ title: "\u5C0A\u91CD\u4F60\u7684\u5224\u65B7\uFF0C\u4E5F\u6311\u6230\u4F60\u7684\u76F2\u5340",
10625
+ proof: "\u767C\u6563 \xB7 \u8907\u6838",
10626
+ 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"
10627
+ }
10628
+ ],
10629
+ balanceTitle: "\u8A72\u81EA\u52D5\u7684\u81EA\u52D5\uFF0C\u8A72\u9078\u64C7\u7684\u7531\u4F60\u9078\u64C7",
10630
+ 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",
10631
+ systemLabel: "Nolo \u76E1\u91CF\u8655\u7406",
10632
+ systemItems: ["\u6A21\u578B\u9078\u64C7", "Agent \u8ABF\u5EA6", "\u4E0A\u4E0B\u6587\u6574\u7406", "\u6210\u672C\u8207\u901F\u5EA6", "\u91CD\u8907\u57F7\u884C"],
10633
+ youLabel: "\u7559\u7D66\u4F60\u6C7A\u5B9A",
10634
+ youItems: ["\u76EE\u6A19", "\u9858\u610F\u627F\u64D4\u4EC0\u9EBC\u98A8\u96AA", "\u5BE9\u7F8E", "\u65B9\u5411", "\u771F\u6B63\u60F3\u5275\u9020\u4EC0\u9EBC"],
10635
+ closingLead: "AI \u53EF\u4EE5\u7814\u7A76\u3001\u57F7\u884C\u3001\u6BD4\u8F03\u3001\u6AA2\u67E5\u548C\u4E26\u884C\u63A8\u9032\u3002",
10636
+ closingLines: ["\u4F60\u70BA\u4EC0\u9EBC\u505A\u3002", "\u4EC0\u9EBC\u662F\u597D\u7684\u3002", "\u4F60\u771F\u6B63\u60F3\u5275\u9020\u4EC0\u9EBC\u3002"],
10637
+ closingEnd: "\u59CB\u7D42\u662F\u4F60\u3002"
10638
+ },
10512
10639
  heroTitle: "\u8B93\u6700\u5F37\u6A21\u578B\u898F\u5283\uFF0C\u8B93\u66F4\u4F4E\u6210\u672C\u7684 Agent \u57F7\u884C\u3002",
10513
10640
  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
10641
  ctaButton: "\u514D\u8CBB\u958B\u59CB",
@@ -10586,7 +10713,7 @@ var interface_locale_default = {
10586
10713
  exampleLabel: "\u793A\u4F8B \xB7 \u7DE8\u78BC\u4EA4\u4ED8",
10587
10714
  badge: "\u7DE8\u6392\u793A\u4F8B",
10588
10715
  title: "\u7DE8\u78BC\u4EFB\u52D9\uFF1A\u5F9E\u5206\u5DE5\u5230\u4EA4\u4ED8",
10589
- desc: "\u9019\u662F\u4E00\u7A2E\u5E38\u898B\u7684\u591A Agent \u7DE8\u6392\u2014\u2014\u5354\u8ABF\u3001\u4E26\u884C\u5BE6\u73FE\u3001\u54C1\u8CEA\u6AA2\u67E5\u3001\u81EA\u52D5\u8FD4\u5DE5\uFF0C\u76F4\u5230\u53EF\u4E0A\u7DDA\u3002\u4E0D\u662F\u552F\u4E00\u7684\u7D44\u968A\u65B9\u5F0F\u3002",
10716
+ desc: "\u4E00\u7A2E\u5E38\u898B\u6A21\u5F0F\u2014\u2014\u66F4\u5F37\u7684\u6A21\u578B\u898F\u5283\u548C\u5354\u8ABF\uFF0C\u66F4\u5FEB\u3001\u66F4\u4FBF\u5B9C\u7684\u6A21\u578B\u4E26\u884C\u958B\u767C\uFF0C\u767C\u5E03\u524D\u518D\u7531\u5C08\u9580\u7684\u6A21\u578B\u628A\u95DC\u3002\u4E0D\u662F\u552F\u4E00\u7684\u7D44\u968A\u65B9\u5F0F\u3002",
10590
10717
  input: "\u8F38\u5165",
10591
10718
  dispatch: "\u5206\u767C",
10592
10719
  submit: "\u63D0\u4EA4",
@@ -10606,16 +10733,16 @@ var interface_locale_default = {
10606
10733
  desc: "\u5728\u5C0D\u8A71\u6216\u4EFB\u52D9\u770B\u677F\u88E1\u63CF\u8FF0\u60A8\u60F3\u5B8C\u6210\u7684\u4E8B\u3002"
10607
10734
  },
10608
10735
  {
10609
- title: "\u81EA\u52D5\u5206\u5DE5",
10610
- desc: "\u5354\u8ABF Agent \u628A\u4EFB\u52D9\u5206\u7D66\u5408\u9069\u7684\u89D2\u8272\u4E26\u884C\u63A8\u9032\u3002"
10736
+ title: "\u5F37\u6A21\u578B\u898F\u5283",
10737
+ desc: "\u66F4\u5F37\u7684\u6A21\u578B\u898F\u5283\u5DE5\u4F5C\uFF0C\u628A\u4EFB\u52D9\u5206\u7D66\u5408\u9069\u7684\u89D2\u8272\u3002"
10611
10738
  },
10612
10739
  {
10613
- title: "\u4E26\u884C\u5BE6\u73FE",
10614
- desc: "\u4ECB\u9762\u3001\u908F\u8F2F\u3001\u8CC7\u6599\u53EF\u4EE5\u540C\u6642\u5F80\u524D\u63A8\u9032\u3002"
10740
+ title: "\u4E26\u884C\u958B\u767C",
10741
+ desc: "\u66F4\u5FEB\u3001\u66F4\u4FBF\u5B9C\u7684\u6A21\u578B\u540C\u6642\u63A8\u9032\u4ECB\u9762\u3001\u908F\u8F2F\u548C\u8CC7\u6599\u3002"
10615
10742
  },
10616
10743
  {
10617
- title: "\u6AA2\u67E5\u8207\u8FD4\u5DE5",
10618
- desc: "\u54C1\u8CEA\u4E0D\u904E\u95DC\u6703\u81EA\u52D5\u6253\u56DE\u512A\u5316\uFF0C\u76F4\u5230\u9054\u6A19\u3002"
10744
+ title: "\u5C08\u9580\u8A55\u5BE9",
10745
+ desc: "\u5C08\u9580\u7684\u6A21\u578B\u6AA2\u67E5\u54C1\u8CEA\uFF0C\u4E0D\u9054\u6A19\u5C31\u9000\u56DE\u512A\u5316\u3002"
10619
10746
  },
10620
10747
  {
10621
10748
  title: "\u4EA4\u4ED8\u4E0A\u7DDA",
@@ -11690,6 +11817,48 @@ var interface_locale_default = {
11690
11817
  home: "\u30DB\u30FC\u30E0",
11691
11818
  // === Combined Welcome Section ===
11692
11819
  welcomeSection: {
11820
+ brandLanding: {
11821
+ kicker: "Nolo \xB7 Agent Harness",
11822
+ title: "\u3059\u3067\u306B\u8907\u6570\u306E AI \u3092\u4F7F\u3063\u3066\u3044\u307E\u3059\u3002Nolo \u306F\u305D\u308C\u3089\u3092\u4E00\u3064\u306E\u30C1\u30FC\u30E0\u306B\u3057\u307E\u3059\u3002",
11823
+ description: "\u30B5\u30D6\u30B9\u30AF\u30EA\u30D7\u30B7\u30E7\u30F3\u3068 API \u3092\u4E00\u3064\u306E\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC\u306B\u3002\u54C1\u8CEA\u30FB\u901F\u5EA6\u30FB\u30B3\u30B9\u30C8\u3092\u898B\u306A\u304C\u3089\u3001\u30BF\u30B9\u30AF\u3054\u3068\u306B\u9069\u3057\u305F\u30E2\u30C7\u30EB\u3092\u4F7F\u3044\u5206\u3051\u308B\u2014\u2014\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u3001\u30EA\u30B5\u30FC\u30C1\u3001\u30D3\u30B8\u30E5\u30A2\u30EB\u5236\u4F5C\u306A\u3069\u306B\u3082\u3002",
11824
+ 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",
11825
+ primaryCta: "\u7121\u6599\u3067\u59CB\u3081\u308B",
11826
+ secondaryCta: "Nolo \u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9",
11827
+ contrasts: [
11828
+ "\u3059\u3067\u306B\u6255\u3063\u3066\u3044\u308B\u30B5\u30D6\u30B9\u30AF\u30EA\u30D7\u30B7\u30E7\u30F3\u3092\u6D3B\u304B\u3059",
11829
+ "\u30BF\u30B9\u30AF\u3054\u3068\u306B\u6700\u9069\u306A\u30E2\u30C7\u30EB\u3092\u9078\u3076",
11830
+ "\u30AA\u30FC\u30D7\u30F3\u30BD\u30FC\u30B9\u3067\u76E3\u67FB\u3067\u304D\u308B"
11831
+ ],
11832
+ contrastsLabel: "\u306A\u305C Nolo \u304B",
11833
+ proofKicker: "\u88FD\u54C1\u306E\u5B9F\u969B",
11834
+ balanceKicker: "\u4EBA\u306E\u5224\u65AD",
11835
+ principles: [
11836
+ {
11837
+ title: "\u826F\u3044\u5354\u50CD\u306F\u84C4\u7A4D\u3055\u308C\u308B",
11838
+ proof: "\u30E1\u30E2\u30EA \xB7 \u30B9\u30DA\u30FC\u30B9 \xB7 \u30B3\u30F3\u30C6\u30AD\u30B9\u30C8",
11839
+ 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"
11840
+ },
11841
+ {
11842
+ title: "\u9069\u5207\u306A\u77E5\u80FD\u3092\u3001\u9069\u5207\u306A\u4ED5\u4E8B\u306B",
11843
+ proof: "\u30EB\u30FC\u30C6\u30A3\u30F3\u30B0 \xB7 \u59D4\u8B72",
11844
+ 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"
11845
+ },
11846
+ {
11847
+ title: "\u3042\u306A\u305F\u306E\u5224\u65AD\u3092\u5C0A\u91CD\u3057\u3001\u76F2\u70B9\u306B\u6311\u3080",
11848
+ proof: "\u767A\u6563 \xB7 \u30EC\u30D3\u30E5\u30FC",
11849
+ 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"
11850
+ }
11851
+ ],
11852
+ 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",
11853
+ 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",
11854
+ systemLabel: "Nolo \u304C\u51E6\u7406\u3059\u308B",
11855
+ 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"],
11856
+ youLabel: "\u3042\u306A\u305F\u304C\u6C7A\u3081\u308B",
11857
+ 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"],
11858
+ 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",
11859
+ 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"],
11860
+ closingEnd: "\u305D\u308C\u306F\u3001\u3042\u306A\u305F\u306E\u3082\u306E\u3060\u3002"
11861
+ },
11693
11862
  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
11863
  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
11864
  ctaButton: "\u7121\u6599\u3067\u59CB\u3081\u308B",
@@ -11767,7 +11936,7 @@ var interface_locale_default = {
11767
11936
  exampleLabel: "\u4F8B \xB7 \u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u7D0D\u54C1",
11768
11937
  badge: "\u30AA\u30FC\u30B1\u30B9\u30C8\u30EC\u30FC\u30B7\u30E7\u30F3\u4F8B",
11769
11938
  title: "\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u30BF\u30B9\u30AF\uFF1A\u5206\u62C5\u304B\u3089\u7D0D\u54C1\u307E\u3067",
11770
- desc: "\u3088\u304F\u3042\u308B\u8907\u6570 Agent \u30D1\u30BF\u30FC\u30F3\u306E\u4E00\u3064\u2014\u2014\u8ABF\u6574\u3001\u4E26\u884C\u5B9F\u88C5\u3001\u30EC\u30D3\u30E5\u30FC\u3001\u6539\u5584\u3001\u30EA\u30EA\u30FC\u30B9\u3002\u552F\u4E00\u306E\u7D44\u307F\u65B9\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002",
11939
+ desc: "\u3088\u304F\u3042\u308B\u30D1\u30BF\u30FC\u30F3\u306E\u4E00\u3064\u2014\u2014\u5F37\u3044\u30E2\u30C7\u30EB\u304C\u8A08\u753B\u3068\u8ABF\u6574\u3092\u62C5\u3044\u3001\u3088\u308A\u901F\u304F\u5B89\u3044\u30E2\u30C7\u30EB\u304C\u4E26\u884C\u3057\u3066\u5B9F\u88C5\u3057\u3001\u5C02\u9580\u306E\u30E2\u30C7\u30EB\u304C\u516C\u958B\u524D\u306B\u30EC\u30D3\u30E5\u30FC\u3059\u308B\u3002\u552F\u4E00\u306E\u7D44\u307F\u65B9\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002",
11771
11940
  input: "\u5165\u529B",
11772
11941
  dispatch: "\u632F\u308A\u5206\u3051",
11773
11942
  submit: "\u9001\u4FE1",
@@ -11787,16 +11956,16 @@ var interface_locale_default = {
11787
11956
  desc: "\u30C1\u30E3\u30C3\u30C8\u3084\u30BF\u30B9\u30AF\u30DC\u30FC\u30C9\u3067\u3001\u3084\u308A\u305F\u3044\u3053\u3068\u3092\u305D\u306E\u307E\u307E\u66F8\u304D\u307E\u3059\u3002"
11788
11957
  },
11789
11958
  {
11790
- title: "\u81EA\u52D5\u3067\u5206\u62C5",
11791
- desc: "\u8ABF\u6574 Agent \u304C\u3001\u9069\u5207\u306A\u5F79\u5272\u3078\u30BF\u30B9\u30AF\u3092\u632F\u308A\u5206\u3051\u307E\u3059\u3002"
11959
+ title: "\u5F37\u3044\u30E2\u30C7\u30EB\u304C\u8A08\u753B",
11960
+ desc: "\u5F37\u3044\u30E2\u30C7\u30EB\u304C\u4F5C\u696D\u3092\u8A08\u753B\u3057\u3001\u5404\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u306B\u9069\u3057\u305F\u5F79\u5272\u3092\u5272\u308A\u5F53\u3066\u307E\u3059\u3002"
11792
11961
  },
11793
11962
  {
11794
11963
  title: "\u4E26\u884C\u3057\u3066\u5B9F\u88C5",
11795
- desc: "UI\u3001\u30ED\u30B8\u30C3\u30AF\u3001\u30C7\u30FC\u30BF\u3092\u540C\u6642\u306B\u524D\u306B\u9032\u3081\u3089\u308C\u307E\u3059\u3002"
11964
+ desc: "\u3088\u308A\u901F\u304F\u5B89\u3044\u30E2\u30C7\u30EB\u304C\u3001UI\u30FB\u30ED\u30B8\u30C3\u30AF\u30FB\u30C7\u30FC\u30BF\u3092\u540C\u6642\u306B\u9032\u3081\u307E\u3059\u3002"
11796
11965
  },
11797
11966
  {
11798
- title: "\u78BA\u8A8D\u3068\u6539\u5584",
11799
- desc: "\u57FA\u6E96\u306B\u5C4A\u304B\u306A\u3051\u308C\u3070\u623B\u3057\u3066\u3001\u6539\u5584\u3092\u7E70\u308A\u8FD4\u3057\u307E\u3059\u3002"
11967
+ title: "\u5C02\u9580\u30EC\u30D3\u30E5\u30FC",
11968
+ desc: "\u5C02\u9580\u306E\u30E2\u30C7\u30EB\u304C\u54C1\u8CEA\u3092\u78BA\u8A8D\u3057\u3001\u57FA\u6E96\u3092\u6E80\u305F\u3059\u307E\u3067\u5DEE\u3057\u623B\u3057\u307E\u3059\u3002"
11800
11969
  },
11801
11970
  {
11802
11971
  title: "\u7D0D\u54C1\u30FB\u516C\u958B",
@@ -13109,12 +13278,14 @@ var pricing_locale_default = {
13109
13278
  title: "Pay-As-You-Go",
13110
13279
  subtitle: `Billed by actual token usage. Points never expire.
13111
13280
  Pro unlocks at ${ADVANCED_FEATURE_MIN_BALANCE} points. No subscription lock-in.`,
13281
+ headerTrust: ["No subscription", "Pay per use", "Points never expire"],
13112
13282
  free: "Free",
13113
13283
  points: "{{num}} Points",
13114
13284
  tiers: {
13115
13285
  starter: {
13116
13286
  name: "Starter",
13117
13287
  meta: "Free upon Signup",
13288
+ bestFor: "Just exploring",
13118
13289
  price: "Free",
13119
13290
  features: [
13120
13291
  "Standard LLM models",
@@ -13126,6 +13297,7 @@ Pro unlocks at ${ADVANCED_FEATURE_MIN_BALANCE} points. No subscription lock-in.`
13126
13297
  pro: {
13127
13298
  name: "Pro",
13128
13299
  meta: `Balance at ${ADVANCED_FEATURE_MIN_BALANCE} Points`,
13300
+ bestFor: "Daily driver",
13129
13301
  price: `Unlock at ${ADVANCED_FEATURE_MIN_BALANCE} Points`,
13130
13302
  features: [
13131
13303
  "Batch file analysis",
@@ -13137,6 +13309,7 @@ Pro unlocks at ${ADVANCED_FEATURE_MIN_BALANCE} points. No subscription lock-in.`
13137
13309
  advanced: {
13138
13310
  name: "Advanced",
13139
13311
  meta: `Single recharge \u2265 ${GPT_PRO_REQUIRED_RECHARGE_AMOUNT} Points`,
13312
+ bestFor: "Heavy lifting",
13140
13313
  price: `Unlock with a ${GPT_PRO_REQUIRED_RECHARGE_AMOUNT}-Point recharge`,
13141
13314
  features: [
13142
13315
  "Advanced reasoning models",
@@ -13192,6 +13365,22 @@ Pro unlocks at ${ADVANCED_FEATURE_MIN_BALANCE} points. No subscription lock-in.`
13192
13365
  {
13193
13366
  q: "Is it more cost-effective than subscriptions?",
13194
13367
  a: "Usually yes. Nolo uses transparent pay-as-you-go pricing based on actual token usage, with no subscription lock-in."
13368
+ },
13369
+ {
13370
+ q: "Can I get a refund after recharging?",
13371
+ a: "Yes, but only for points you purchased yourself; bonus or gifted points are non-refundable. Refunds cover the unused portion of purchased points\u2014consumed and gifted points are not returned."
13372
+ },
13373
+ {
13374
+ q: `Does Pro expire if my balance drops below ${ADVANCED_FEATURE_MIN_BALANCE} points?`,
13375
+ a: `Pro is determined by your current balance in real time: it unlocks at ${ADVANCED_FEATURE_MIN_BALANCE} points and falls back to Starter when you drop below, then restores on your next recharge. Nothing you've used is affected.`
13376
+ },
13377
+ {
13378
+ q: "Which models does the Advanced tier unlock?",
13379
+ a: `It unlocks higher-tier models such as the GPT Pro series, Claude Opus, and Kimi K3, plus an isolated VM execution environment and support for long-running tasks. A single recharge of ${GPT_PRO_REQUIRED_RECHARGE_AMOUNT} points activates it.`
13380
+ },
13381
+ {
13382
+ q: "How are points deducted?",
13383
+ a: "Each call deducts the model's unit price times the actual input/output tokens consumed; cached repeated input is billed at a lower cached rate. See the comparison table below for each model's unit price."
13195
13384
  }
13196
13385
  ]
13197
13386
  }
@@ -13203,12 +13392,14 @@ Pro unlocks at ${ADVANCED_FEATURE_MIN_BALANCE} points. No subscription lock-in.`
13203
13392
  title: "\u6309\u91CF\u4ED8\u8D39",
13204
13393
  subtitle: `\u6309\u5B9E\u9645\u6D88\u8017\u7684 Token \u6263\u8D39\uFF0C\u79EF\u5206\u6C38\u4E45\u6709\u6548\u3002
13205
13394
  \u4F59\u989D\u8FBE\u5230 ${ADVANCED_FEATURE_MIN_BALANCE} \u81EA\u52A8\u89E3\u9501\u4E13\u4E1A\u7248\uFF0C\u65E0\u8BA2\u9605\u7ED1\u5B9A\uFF0C\u968F\u65F6\u964D\u6863\u3002`,
13395
+ headerTrust: ["\u65E0\u8BA2\u9605\u7ED1\u5B9A", "\u6309\u91CF\u8BA1\u8D39", "\u79EF\u5206\u6C38\u4E45\u6709\u6548"],
13206
13396
  free: "\u514D\u8D39",
13207
13397
  points: "{{num}} \u79EF\u5206",
13208
13398
  tiers: {
13209
13399
  starter: {
13210
13400
  name: "\u57FA\u7840\u7248",
13211
13401
  meta: "\u6CE8\u518C\u5373\u53EF\u4F7F\u7528",
13402
+ bestFor: "\u5148\u8BD5\u8BD5\u6C34",
13212
13403
  price: "\u514D\u8D39",
13213
13404
  features: [
13214
13405
  "\u6807\u51C6 LLM \u6A21\u578B",
@@ -13220,6 +13411,7 @@ Pro unlocks at ${ADVANCED_FEATURE_MIN_BALANCE} points. No subscription lock-in.`
13220
13411
  pro: {
13221
13412
  name: "\u4E13\u4E1A\u7248",
13222
13413
  meta: `\u4F59\u989D\u8FBE\u5230 ${ADVANCED_FEATURE_MIN_BALANCE} \u79EF\u5206`,
13414
+ bestFor: "\u65E5\u5E38\u4E3B\u529B",
13223
13415
  price: `\u4F59\u989D\u6EE1 ${ADVANCED_FEATURE_MIN_BALANCE} \u79EF\u5206\u89E3\u9501`,
13224
13416
  features: [
13225
13417
  "\u6279\u91CF\u6587\u4EF6\u5206\u6790",
@@ -13231,6 +13423,7 @@ Pro unlocks at ${ADVANCED_FEATURE_MIN_BALANCE} points. No subscription lock-in.`
13231
13423
  advanced: {
13232
13424
  name: "\u9AD8\u9636\u7248",
13233
13425
  meta: `\u5355\u7B14\u5145\u503C \u2265 ${GPT_PRO_REQUIRED_RECHARGE_AMOUNT} \u79EF\u5206`,
13426
+ bestFor: "\u91CD\u8F7D\u4EFB\u52A1",
13234
13427
  price: `\u5145\u503C ${GPT_PRO_REQUIRED_RECHARGE_AMOUNT} \u79EF\u5206\u89E3\u9501`,
13235
13428
  features: [
13236
13429
  "GPT Pro \u7CFB\u5217\u6A21\u578B",
@@ -13287,6 +13480,22 @@ Pro unlocks at ${ADVANCED_FEATURE_MIN_BALANCE} points. No subscription lock-in.`
13287
13480
  {
13288
13481
  q: "\u6BD4\u5305\u6708\u8BA2\u9605\u66F4\u5212\u7B97\u5417\uFF1F",
13289
13482
  a: "\u901A\u5E38\u66F4\u5212\u7B97\u3002Nolo \u6309\u5B9E\u9645 Token \u6D88\u8017\u900F\u660E\u8BA1\u8D39\uFF0C\u65E0\u8BA2\u9605\u7ED1\u5B9A\uFF0C\u53EA\u4E3A\u5B9E\u9645\u7528\u91CF\u4ED8\u8D39\u3002"
13483
+ },
13484
+ {
13485
+ q: "\u5145\u503C\u540E\u80FD\u9000\u6B3E\u5417\uFF1F",
13486
+ a: "\u652F\u6301\uFF0C\u4F46\u4EC5\u9650\u4F60\u81EA\u5DF1\u5145\u503C\u7684\u79EF\u5206\uFF1B\u6D3B\u52A8\u6216\u6CE8\u518C\u8D60\u9001\u7684\u79EF\u5206\u4E0D\u53EF\u9000\u3002\u9000\u6B3E\u6309\u5145\u503C\u79EF\u5206\u7684\u672A\u6D88\u8017\u90E8\u5206\u8FD4\u8FD8\uFF0C\u5DF2\u6D88\u8017\u4E0E\u8D60\u9001\u90E8\u5206\u4E0D\u9000\u3002"
13487
+ },
13488
+ {
13489
+ q: `\u4F59\u989D\u964D\u5230 ${ADVANCED_FEATURE_MIN_BALANCE} \u79EF\u5206\u4EE5\u4E0B\uFF0C\u4E13\u4E1A\u7248\u4F1A\u5931\u6548\u5417\uFF1F`,
13490
+ a: `\u4E13\u4E1A\u7248\u6309\u5F53\u524D\u4F59\u989D\u5B9E\u65F6\u5224\u5B9A\uFF1A\u4F59\u989D\u8FBE\u5230 ${ADVANCED_FEATURE_MIN_BALANCE} \u79EF\u5206\u5373\u89E3\u9501\uFF0C\u4F4E\u4E8E\u540E\u81EA\u52A8\u56DE\u843D\u5230\u57FA\u7840\u7248\uFF0C\u518D\u5145\u503C\u5373\u6062\u590D\uFF0C\u4E0D\u5F71\u54CD\u5DF2\u7528\u529F\u80FD\u3002`
13491
+ },
13492
+ {
13493
+ q: "\u9AD8\u9636\u7248\u80FD\u7528\u54EA\u4E9B\u6A21\u578B\uFF1F",
13494
+ a: `\u89E3\u9501 GPT Pro \u7CFB\u5217\u3001Claude Opus\u3001Kimi K3 \u7B49\u9AD8\u9636\u6A21\u578B\uFF0C\u5E76\u83B7\u5F97\u72EC\u7ACB\u865A\u62DF\u673A\u6267\u884C\u73AF\u5883\u4E0E\u957F\u65F6\u95F4\u4EFB\u52A1\u652F\u6301\u3002\u5355\u7B14\u5145\u503C ${GPT_PRO_REQUIRED_RECHARGE_AMOUNT} \u79EF\u5206\u5373\u5F00\u901A\u3002`
13495
+ },
13496
+ {
13497
+ q: "\u79EF\u5206\u6309\u4EC0\u4E48\u6263\uFF1F",
13498
+ a: "\u6309\u6BCF\u6B21\u8C03\u7528\u7684\u5B9E\u9645\u8F93\u5165/\u8F93\u51FA Token \u6570\uFF0C\u4E58\u4EE5\u5BF9\u5E94\u6A21\u578B\u5355\u4EF7\u6263\u9664\uFF1B\u547D\u4E2D\u7F13\u5B58\u7684\u91CD\u590D\u8F93\u5165\u6309\u66F4\u4F4E\u7684\u7F13\u5B58\u4EF7\u8BA1\u3002\u5404\u6A21\u578B\u5355\u4EF7\u89C1\u4E0B\u65B9\u5BF9\u6BD4\u8868\u3002"
13290
13499
  }
13291
13500
  ]
13292
13501
  }
@@ -13298,12 +13507,14 @@ Pro unlocks at ${ADVANCED_FEATURE_MIN_BALANCE} points. No subscription lock-in.`
13298
13507
  title: "\u6309\u91CF\u4ED8\u8CBB",
13299
13508
  subtitle: `\u6309\u5BE6\u969B\u6D88\u8017\u7684 Token \u6263\u8CBB\uFF0C\u7A4D\u5206\u6C38\u4E45\u6709\u6548\u3002
13300
13509
  \u9918\u984D\u9054\u5230 ${ADVANCED_FEATURE_MIN_BALANCE} \u81EA\u52D5\u89E3\u9396\u5C08\u696D\u7248\uFF0C\u7121\u8A02\u95B1\u7D81\u5B9A\uFF0C\u96A8\u6642\u964D\u6A94\u3002`,
13510
+ headerTrust: ["\u7121\u8A02\u95B1\u7D81\u5B9A", "\u6309\u91CF\u8A08\u8CBB", "\u7A4D\u5206\u6C38\u4E45\u6709\u6548"],
13301
13511
  free: "\u514D\u8CBB",
13302
13512
  points: "{{num}} \u7A4D\u5206",
13303
13513
  tiers: {
13304
13514
  starter: {
13305
13515
  name: "\u57FA\u790E\u7248",
13306
13516
  meta: "\u8A3B\u518A\u5373\u53EF\u4F7F\u7528",
13517
+ bestFor: "\u5148\u8A66\u8A66\u6C34",
13307
13518
  price: "\u514D\u8CBB",
13308
13519
  features: [
13309
13520
  "\u6A19\u6E96 LLM \u6A21\u578B",
@@ -13315,6 +13526,7 @@ Pro unlocks at ${ADVANCED_FEATURE_MIN_BALANCE} points. No subscription lock-in.`
13315
13526
  pro: {
13316
13527
  name: "\u5C08\u696D\u7248",
13317
13528
  meta: `\u9918\u984D\u9054\u5230 ${ADVANCED_FEATURE_MIN_BALANCE} \u7A4D\u5206`,
13529
+ bestFor: "\u65E5\u5E38\u4E3B\u529B",
13318
13530
  price: `\u9918\u984D\u6EFF ${ADVANCED_FEATURE_MIN_BALANCE} \u7A4D\u5206\u89E3\u9396`,
13319
13531
  features: [
13320
13532
  "\u6279\u6B21\u6A94\u6848\u5206\u6790",
@@ -13326,6 +13538,7 @@ Pro unlocks at ${ADVANCED_FEATURE_MIN_BALANCE} points. No subscription lock-in.`
13326
13538
  advanced: {
13327
13539
  name: "\u9AD8\u968E\u7248",
13328
13540
  meta: `\u55AE\u7B46\u5145\u503C \u2265 ${GPT_PRO_REQUIRED_RECHARGE_AMOUNT} \u7A4D\u5206`,
13541
+ bestFor: "\u91CD\u8F09\u4EFB\u52D9",
13329
13542
  price: `\u5145\u503C ${GPT_PRO_REQUIRED_RECHARGE_AMOUNT} \u7A4D\u5206\u89E3\u9396`,
13330
13543
  features: [
13331
13544
  "GPT Pro \u7CFB\u5217\u6A21\u578B",
@@ -13381,6 +13594,22 @@ Pro unlocks at ${ADVANCED_FEATURE_MIN_BALANCE} points. No subscription lock-in.`
13381
13594
  {
13382
13595
  q: "\u6BD4\u5305\u6708\u8A02\u95B1\u66F4\u5212\u7B97\u55CE\uFF1F",
13383
13596
  a: "\u901A\u5E38\u66F4\u5212\u7B97\u3002Nolo \u6309\u5BE6\u969B API \u6210\u672C\u900F\u660E\u8A08\u8CBB\uFF0C\u6C92\u6709\u8A02\u95B1\u6EA2\u50F9\uFF0C\u53EA\u70BA\u5BE6\u969B\u6D88\u8017\u4ED8\u8CBB\u3002"
13597
+ },
13598
+ {
13599
+ q: "\u5145\u503C\u5F8C\u80FD\u9000\u6B3E\u55CE\uFF1F",
13600
+ a: "\u652F\u63F4\uFF0C\u4F46\u50C5\u9650\u60A8\u81EA\u884C\u5145\u503C\u7684\u7A4D\u5206\uFF1B\u6D3B\u52D5\u6216\u8A3B\u518A\u8D08\u9001\u7684\u7A4D\u5206\u4E0D\u53EF\u9000\u3002\u9000\u6B3E\u6309\u5145\u503C\u7A4D\u5206\u7684\u672A\u6D88\u8017\u90E8\u5206\u8FD4\u9084\uFF0C\u5DF2\u6D88\u8017\u8207\u8D08\u9001\u90E8\u5206\u4E0D\u9000\u3002"
13601
+ },
13602
+ {
13603
+ q: `\u9918\u984D\u964D\u5230 ${ADVANCED_FEATURE_MIN_BALANCE} \u7A4D\u5206\u4EE5\u4E0B\uFF0C\u5C08\u696D\u7248\u6703\u5931\u6548\u55CE\uFF1F`,
13604
+ a: `\u5C08\u696D\u7248\u6309\u7576\u524D\u9918\u984D\u5373\u6642\u5224\u5B9A\uFF1A\u9918\u984D\u9054\u5230 ${ADVANCED_FEATURE_MIN_BALANCE} \u7A4D\u5206\u5373\u89E3\u9396\uFF0C\u4F4E\u65BC\u5F8C\u81EA\u52D5\u56DE\u843D\u5230\u57FA\u790E\u7248\uFF0C\u518D\u5145\u503C\u5373\u6062\u5FA9\uFF0C\u4E0D\u5F71\u97FF\u5DF2\u7528\u529F\u80FD\u3002`
13605
+ },
13606
+ {
13607
+ q: "\u9AD8\u968E\u7248\u80FD\u7528\u54EA\u4E9B\u6A21\u578B\uFF1F",
13608
+ a: `\u89E3\u9396 GPT Pro \u7CFB\u5217\u3001Claude Opus\u3001Kimi K3 \u7B49\u9AD8\u968E\u6A21\u578B\uFF0C\u4E26\u7372\u5F97\u7368\u7ACB\u865B\u64EC\u6A5F\u57F7\u884C\u74B0\u5883\u8207\u9577\u6642\u9593\u4EFB\u52D9\u652F\u63F4\u3002\u55AE\u7B46\u5145\u503C ${GPT_PRO_REQUIRED_RECHARGE_AMOUNT} \u7A4D\u5206\u5373\u958B\u901A\u3002`
13609
+ },
13610
+ {
13611
+ q: "\u7A4D\u5206\u6309\u4EC0\u9EBC\u6263\uFF1F",
13612
+ a: "\u6309\u6BCF\u6B21\u8ABF\u7528\u7684\u5BE6\u969B\u8F38\u5165/\u8F38\u51FA Token \u6578\uFF0C\u4E58\u4EE5\u5C0D\u61C9\u6A21\u578B\u55AE\u50F9\u6263\u9664\uFF1B\u547D\u4E2D\u5FEB\u53D6\u7684\u91CD\u8907\u8F38\u5165\u6309\u66F4\u4F4E\u7684\u5FEB\u53D6\u50F9\u8A08\u3002\u5404\u6A21\u578B\u55AE\u50F9\u898B\u4E0B\u65B9\u5C0D\u6BD4\u8868\u3002"
13384
13613
  }
13385
13614
  ]
13386
13615
  }
@@ -13392,12 +13621,14 @@ Pro unlocks at ${ADVANCED_FEATURE_MIN_BALANCE} points. No subscription lock-in.`
13392
13621
  title: "\u5F93\u91CF\u8AB2\u91D1\u5236",
13393
13622
  subtitle: `\u5B9F\u969B\u306E\u30C8\u30FC\u30AF\u30F3\u6D88\u8CBB\u91CF\u306B\u57FA\u3065\u3044\u3066\u30DD\u30A4\u30F3\u30C8\u3092\u6E1B\u7B97\u3002\u30DD\u30A4\u30F3\u30C8\u306E\u6709\u52B9\u671F\u9650\u306F\u3042\u308A\u307E\u305B\u3093\u3002
13394
13623
  \u6B8B\u9AD8\u304C${ADVANCED_FEATURE_MIN_BALANCE}\u30DD\u30A4\u30F3\u30C8\u306B\u9054\u3059\u308B\u3068\u81EA\u52D5\u7684\u306B\u30D7\u30ED\u7248\u304C\u30A2\u30F3\u30ED\u30C3\u30AF\u3055\u308C\u307E\u3059\u3002\u3044\u3064\u3067\u3082\u30C0\u30A6\u30F3\u30B0\u30EC\u30FC\u30C9\u53EF\u80FD\u3067\u3001\u5B9A\u671F\u8CFC\u5165\u306E\u7E1B\u308A\u306F\u3042\u308A\u307E\u305B\u3093\u3002`,
13624
+ headerTrust: ["\u30B5\u30D6\u30B9\u30AF\u4E0D\u8981", "\u5F93\u91CF\u8AB2\u91D1", "\u30DD\u30A4\u30F3\u30C8\u7121\u671F\u9650"],
13395
13625
  free: "\u7121\u6599",
13396
13626
  points: "{{num}} \u30DD\u30A4\u30F3\u30C8",
13397
13627
  tiers: {
13398
13628
  starter: {
13399
13629
  name: "\u30B9\u30BF\u30FC\u30BF\u30FC",
13400
13630
  meta: "\u767B\u9332\u3067\u3059\u3050\u306B\u4F7F\u7528\u53EF\u80FD",
13631
+ bestFor: "\u307E\u305A\u8A66\u3059",
13401
13632
  price: "\u7121\u6599",
13402
13633
  features: [
13403
13634
  "\u6A19\u6E96\u7684\u306ALLM\u30E2\u30C7\u30EB",
@@ -13409,6 +13640,7 @@ Pro unlocks at ${ADVANCED_FEATURE_MIN_BALANCE} points. No subscription lock-in.`
13409
13640
  pro: {
13410
13641
  name: "\u30D7\u30ED",
13411
13642
  meta: `\u6B8B\u9AD8${ADVANCED_FEATURE_MIN_BALANCE}\u30DD\u30A4\u30F3\u30C8\u5230\u9054`,
13643
+ bestFor: "\u65E5\u5E38\u306E\u4E3B\u529B",
13412
13644
  price: `${ADVANCED_FEATURE_MIN_BALANCE}\u30DD\u30A4\u30F3\u30C8\u3067\u30A2\u30F3\u30ED\u30C3\u30AF`,
13413
13645
  features: [
13414
13646
  "\u8907\u6570\u30D5\u30A1\u30A4\u30EB\u5206\u6790",
@@ -13420,6 +13652,7 @@ Pro unlocks at ${ADVANCED_FEATURE_MIN_BALANCE} points. No subscription lock-in.`
13420
13652
  advanced: {
13421
13653
  name: "\u30A2\u30C9\u30D0\u30F3\u30B9\u30C9",
13422
13654
  meta: `1\u56DE\u306E\u30C1\u30E3\u30FC\u30B8\u304C${GPT_PRO_REQUIRED_RECHARGE_AMOUNT}\u30DD\u30A4\u30F3\u30C8\u4EE5\u4E0A`,
13655
+ bestFor: "\u91CD\u3044\u30BF\u30B9\u30AF",
13423
13656
  price: `${GPT_PRO_REQUIRED_RECHARGE_AMOUNT}\u30DD\u30A4\u30F3\u30C8\u306E\u30C1\u30E3\u30FC\u30B8\u3067\u30A2\u30F3\u30ED\u30C3\u30AF`,
13424
13657
  features: [
13425
13658
  "GPT Pro \u7CFB\u5217\u30E2\u30C7\u30EB",
@@ -13475,6 +13708,22 @@ Pro unlocks at ${ADVANCED_FEATURE_MIN_BALANCE} points. No subscription lock-in.`
13475
13708
  {
13476
13709
  q: "\u6708\u984D\u30B5\u30D6\u30B9\u30AF\u30EA\u30D7\u30B7\u30E7\u30F3\u3088\u308A\u304A\u5F97\u3067\u3059\u304B\uFF1F",
13477
13710
  a: "\u901A\u5E38\u306F\u304A\u5F97\u3067\u3059\u3002Nolo \u306F\u5B9F\u969B\u306E API \u30B3\u30B9\u30C8\u306B\u57FA\u3065\u3044\u3066\u900F\u660E\u6027\u306E\u9AD8\u3044\u8AB2\u91D1\u3092\u884C\u3044\u3001\u5B9F\u969B\u306E\u6D88\u8CBB\u5206\u3060\u3051\u3092\u652F\u6255\u3044\u307E\u3059\u3002"
13711
+ },
13712
+ {
13713
+ q: "\u30C1\u30E3\u30FC\u30B8\u5F8C\u306B\u8FD4\u91D1\u3067\u304D\u307E\u3059\u304B\uFF1F",
13714
+ a: "\u306F\u3044\u3002\u305F\u3060\u3057\u3054\u81EA\u8EAB\u3067\u30C1\u30E3\u30FC\u30B8\u3057\u305F\u30DD\u30A4\u30F3\u30C8\u306E\u307F\u5BFE\u8C61\u3067\u3001\u30AD\u30E3\u30F3\u30DA\u30FC\u30F3\u3084\u767B\u9332\u6642\u306B\u4ED8\u4E0E\u3055\u308C\u305F\u30DD\u30A4\u30F3\u30C8\u306F\u8FD4\u91D1\u3067\u304D\u307E\u305B\u3093\u3002\u8FD4\u91D1\u306F\u30C1\u30E3\u30FC\u30B8\u5206\u306E\u672A\u4F7F\u7528\u90E8\u5206\u306E\u307F\u3067\u3001\u6D88\u8CBB\u6E08\u307F\u30FB\u4ED8\u4E0E\u5206\u306F\u542B\u307E\u308C\u307E\u305B\u3093\u3002"
13715
+ },
13716
+ {
13717
+ q: `\u6B8B\u9AD8\u304C${ADVANCED_FEATURE_MIN_BALANCE}\u30DD\u30A4\u30F3\u30C8\u3092\u4E0B\u56DE\u308B\u3068 Pro \u306F\u5931\u52B9\u3057\u307E\u3059\u304B\uFF1F`,
13718
+ a: `Pro \u306F\u73FE\u5728\u306E\u6B8B\u9AD8\u306B\u5FDC\u3058\u3066\u30EA\u30A2\u30EB\u30BF\u30A4\u30E0\u3067\u5224\u5B9A\u3055\u308C\u307E\u3059\u3002${ADVANCED_FEATURE_MIN_BALANCE}\u30DD\u30A4\u30F3\u30C8\u3067\u30A2\u30F3\u30ED\u30C3\u30AF\u3055\u308C\u3001\u4E0B\u56DE\u308B\u3068 Starter \u306B\u623B\u308A\u3001\u6B21\u56DE\u30C1\u30E3\u30FC\u30B8\u3067\u5FA9\u5E30\u3057\u307E\u3059\u3002\u5229\u7528\u6E08\u307F\u306E\u6A5F\u80FD\u306B\u306F\u5F71\u97FF\u3057\u307E\u305B\u3093\u3002`
13719
+ },
13720
+ {
13721
+ q: "\u30A2\u30C9\u30D0\u30F3\u30B9\u30C9\u30C6\u30A3\u30A2\u3067\u306F\u3069\u306E\u30E2\u30C7\u30EB\u304C\u4F7F\u3048\u307E\u3059\u304B\uFF1F",
13722
+ a: `GPT Pro \u30B7\u30EA\u30FC\u30BA\u3001Claude Opus\u3001Kimi K3 \u306A\u3069\u306E\u4E0A\u4F4D\u30E2\u30C7\u30EB\u306B\u52A0\u3048\u3001\u5206\u96E2\u3055\u308C\u305F VM \u5B9F\u884C\u74B0\u5883\u3068\u9577\u6642\u9593\u30BF\u30B9\u30AF\u306E\u30B5\u30DD\u30FC\u30C8\u304C\u5229\u7528\u3067\u304D\u307E\u3059\u3002${GPT_PRO_REQUIRED_RECHARGE_AMOUNT}\u30DD\u30A4\u30F3\u30C8\u306E\u4E00\u56DE\u30C1\u30E3\u30FC\u30B8\u3067\u6709\u52B9\u306B\u306A\u308A\u307E\u3059\u3002`
13723
+ },
13724
+ {
13725
+ q: "\u30DD\u30A4\u30F3\u30C8\u306F\u3069\u306E\u3088\u3046\u306B\u5DEE\u3057\u5F15\u304B\u308C\u307E\u3059\u304B\uFF1F",
13726
+ a: "\u5404\u547C\u3073\u51FA\u3057\u3067\u3001\u30E2\u30C7\u30EB\u306E\u5358\u4FA1\u306B\u5B9F\u969B\u306E\u5165\u51FA\u529B\u30C8\u30FC\u30AF\u30F3\u6570\u3092\u639B\u3051\u3066\u5DEE\u3057\u5F15\u304D\u307E\u3059\u3002\u30AD\u30E3\u30C3\u30B7\u30E5\u306B\u30D2\u30C3\u30C8\u3057\u305F\u91CD\u8907\u5165\u529B\u306F\u4F4E\u3044\u30AD\u30E3\u30C3\u30B7\u30E5\u6599\u91D1\u304C\u9069\u7528\u3055\u308C\u307E\u3059\u3002\u5404\u30E2\u30C7\u30EB\u306E\u5358\u4FA1\u306F\u4E0B\u306E\u6BD4\u8F03\u8868\u3092\u3054\u89A7\u304F\u3060\u3055\u3044\u3002"
13478
13727
  }
13479
13728
  ]
13480
13729
  }
@@ -13540,7 +13789,8 @@ var recharge_locale_default = {
13540
13789
  loginRequired: "Please sign in before recharging",
13541
13790
  serverUnavailable: "The server is unavailable. Please try again later.",
13542
13791
  createOrder: "Failed to create the payment order",
13543
- createAddress: "Failed to get the {{token}} address"
13792
+ createAddress: "Failed to get the {{token}} address",
13793
+ methodUnavailable: "This payment method is currently unavailable. Please pick another one."
13544
13794
  },
13545
13795
  notesTitle: "Notes",
13546
13796
  notes: [
@@ -13608,7 +13858,8 @@ var recharge_locale_default = {
13608
13858
  loginRequired: "\u8BF7\u5148\u767B\u5F55\u540E\u518D\u5145\u503C",
13609
13859
  serverUnavailable: "\u5F53\u524D\u670D\u52A1\u5668\u4E0D\u53EF\u7528\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5",
13610
13860
  createOrder: "\u521B\u5EFA\u652F\u4ED8\u8BA2\u5355\u5931\u8D25",
13611
- createAddress: "\u521B\u5EFA {{token}} \u5730\u5740\u5931\u8D25"
13861
+ createAddress: "\u521B\u5EFA {{token}} \u5730\u5740\u5931\u8D25",
13862
+ methodUnavailable: "\u8BE5\u652F\u4ED8\u65B9\u5F0F\u5F53\u524D\u4E0D\u53EF\u7528\uFF0C\u8BF7\u9009\u62E9\u5176\u4ED6\u65B9\u5F0F\u3002"
13612
13863
  },
13613
13864
  notesTitle: "\u63D0\u793A",
13614
13865
  notes: [
@@ -13676,7 +13927,8 @@ var recharge_locale_default = {
13676
13927
  loginRequired: "\u8ACB\u5148\u767B\u5165\u5F8C\u518D\u5132\u503C",
13677
13928
  serverUnavailable: "\u76EE\u524D\u4F3A\u670D\u5668\u7121\u6CD5\u4F7F\u7528\uFF0C\u8ACB\u7A0D\u5F8C\u91CD\u8A66",
13678
13929
  createOrder: "\u5EFA\u7ACB\u652F\u4ED8\u8A02\u55AE\u5931\u6557",
13679
- createAddress: "\u5EFA\u7ACB {{token}} \u5730\u5740\u5931\u6557"
13930
+ createAddress: "\u5EFA\u7ACB {{token}} \u5730\u5740\u5931\u6557",
13931
+ methodUnavailable: "\u8A72\u652F\u4ED8\u65B9\u5F0F\u76EE\u524D\u4E0D\u53EF\u7528\uFF0C\u8ACB\u9078\u64C7\u5176\u4ED6\u65B9\u5F0F\u3002"
13680
13932
  },
13681
13933
  notesTitle: "\u63D0\u793A",
13682
13934
  notes: [
@@ -13744,7 +13996,8 @@ var recharge_locale_default = {
13744
13996
  loginRequired: "\u30C1\u30E3\u30FC\u30B8\u306E\u524D\u306B\u30ED\u30B0\u30A4\u30F3\u3057\u3066\u304F\u3060\u3055\u3044",
13745
13997
  serverUnavailable: "\u30B5\u30FC\u30D0\u30FC\u304C\u5229\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u3057\u3070\u3089\u304F\u3057\u3066\u304B\u3089\u304A\u8A66\u3057\u304F\u3060\u3055\u3044",
13746
13998
  createOrder: "\u6C7A\u6E08\u6CE8\u6587\u306E\u4F5C\u6210\u306B\u5931\u6557\u3057\u307E\u3057\u305F",
13747
- createAddress: "{{token}} \u30A2\u30C9\u30EC\u30B9\u306E\u53D6\u5F97\u306B\u5931\u6557\u3057\u307E\u3057\u305F"
13999
+ createAddress: "{{token}} \u30A2\u30C9\u30EC\u30B9\u306E\u53D6\u5F97\u306B\u5931\u6557\u3057\u307E\u3057\u305F",
14000
+ methodUnavailable: "\u3053\u306E\u652F\u6255\u3044\u65B9\u6CD5\u306F\u73FE\u5728\u3054\u5229\u7528\u3044\u305F\u3060\u3051\u307E\u305B\u3093\u3002\u5225\u306E\u65B9\u6CD5\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002"
13748
14001
  },
13749
14002
  notesTitle: "\u3054\u6848\u5185",
13750
14003
  notes: [
@@ -14646,6 +14899,77 @@ var localFirst_locale_default = {
14646
14899
  }
14647
14900
  };
14648
14901
 
14902
+ // packages/app/i18n/translations/openAuditable.locale.ts
14903
+ var english = {
14904
+ openAuditable: {
14905
+ kicker: "Open & Auditable",
14906
+ title: "Don\u2019t trust the binary. Verify it.",
14907
+ 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.",
14908
+ viewSource: "View source",
14909
+ verifyRelease: "Verify current release",
14910
+ publicCommitTitle: "Exact public commit",
14911
+ publicCommitText: "Release metadata records the exact public projection SHA used for the build.",
14912
+ hashTitle: "Artifact checksum",
14913
+ hashText: "The public manifest records SHA-256 for each downloadable desktop artifact.",
14914
+ auditTitle: "Auditable client",
14915
+ auditText: "Inspect how the client reads files, invokes tools, and talks to model providers."
14916
+ }
14917
+ };
14918
+ var openAuditable_locale_default = {
14919
+ ["en" /* EN */]: { translation: english },
14920
+ ["zh-CN" /* ZH_CN */]: {
14921
+ translation: {
14922
+ openAuditable: {
14923
+ kicker: "\u5F00\u653E \xB7 \u53EF\u5BA1\u8BA1",
14924
+ title: "\u4E0D\u8981\u53EA\u4FE1\u5B89\u88C5\u5305\uFF0C\u81EA\u5DF1\u9A8C\u8BC1\u3002",
14925
+ 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",
14926
+ viewSource: "\u67E5\u770B\u6E90\u7801",
14927
+ verifyRelease: "\u9A8C\u8BC1\u5F53\u524D\u7248\u672C",
14928
+ publicCommitTitle: "\u5BF9\u5E94\u516C\u5F00\u63D0\u4EA4",
14929
+ publicCommitText: "\u53D1\u5E03\u5143\u6570\u636E\u4F1A\u8BB0\u5F55\u6784\u5EFA\u4F7F\u7528\u7684\u51C6\u786E\u516C\u5F00 projection SHA\u3002",
14930
+ hashTitle: "\u5B89\u88C5\u5305\u6821\u9A8C\u503C",
14931
+ hashText: "\u516C\u5F00 manifest \u4F1A\u8BB0\u5F55\u6BCF\u4E2A\u53EF\u4E0B\u8F7D\u684C\u9762\u5B89\u88C5\u5305\u7684 SHA-256\u3002",
14932
+ auditTitle: "\u5BA2\u6237\u7AEF\u53EF\u5BA1\u8BA1",
14933
+ 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"
14934
+ }
14935
+ }
14936
+ },
14937
+ ["zh-Hant" /* ZH_HANT */]: {
14938
+ translation: {
14939
+ openAuditable: {
14940
+ kicker: "\u958B\u653E \xB7 \u53EF\u7A3D\u6838",
14941
+ title: "\u4E0D\u8981\u53EA\u76F8\u4FE1\u5B89\u88DD\u6A94\uFF0C\u81EA\u5DF1\u9A57\u8B49\u3002",
14942
+ 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",
14943
+ viewSource: "\u67E5\u770B\u539F\u59CB\u78BC",
14944
+ verifyRelease: "\u9A57\u8B49\u76EE\u524D\u7248\u672C",
14945
+ publicCommitTitle: "\u5C0D\u61C9\u516C\u958B\u63D0\u4EA4",
14946
+ publicCommitText: "\u767C\u5E03\u4E2D\u7E7C\u8CC7\u6599\u6703\u8A18\u9304\u5EFA\u7F6E\u4F7F\u7528\u7684\u7CBE\u78BA\u516C\u958B projection SHA\u3002",
14947
+ hashTitle: "\u5B89\u88DD\u6A94\u6821\u9A57\u503C",
14948
+ hashText: "\u516C\u958B manifest \u6703\u8A18\u9304\u6BCF\u500B\u53EF\u4E0B\u8F09\u684C\u9762\u5B89\u88DD\u6A94\u7684 SHA-256\u3002",
14949
+ auditTitle: "\u7528\u6236\u7AEF\u53EF\u7A3D\u6838",
14950
+ 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"
14951
+ }
14952
+ }
14953
+ },
14954
+ ["ja" /* JA */]: {
14955
+ translation: {
14956
+ openAuditable: {
14957
+ kicker: "Open & Auditable",
14958
+ title: "\u30D0\u30A4\u30CA\u30EA\u3092\u305F\u3060\u4FE1\u3058\u305A\u3001\u81EA\u5206\u3067\u691C\u8A3C\u3067\u304D\u307E\u3059\u3002",
14959
+ 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",
14960
+ viewSource: "\u30BD\u30FC\u30B9\u3092\u898B\u308B",
14961
+ verifyRelease: "\u73FE\u5728\u306E\u30EA\u30EA\u30FC\u30B9\u3092\u691C\u8A3C",
14962
+ publicCommitTitle: "\u6B63\u78BA\u306A\u516C\u958B\u30B3\u30DF\u30C3\u30C8",
14963
+ 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",
14964
+ hashTitle: "\u6210\u679C\u7269\u30C1\u30A7\u30C3\u30AF\u30B5\u30E0",
14965
+ 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",
14966
+ auditTitle: "\u76E3\u67FB\u53EF\u80FD\u306A\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8",
14967
+ 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"
14968
+ }
14969
+ }
14970
+ }
14971
+ };
14972
+
14649
14973
  // packages/app/i18n/i18n.config.ts
14650
14974
  var resources = {
14651
14975
  ["en" /* EN */]: {
@@ -14660,6 +14984,7 @@ var resources = {
14660
14984
  ...aup_locale_default["en" /* EN */].translation,
14661
14985
  ...footer_locale_default["en" /* EN */].translation,
14662
14986
  ...localFirst_locale_default["en" /* EN */].translation,
14987
+ ...openAuditable_locale_default["en" /* EN */].translation,
14663
14988
  seo: seo_locale_default["en" /* EN */]
14664
14989
  },
14665
14990
  space: space_locale_default["en" /* EN */].translation,
@@ -14678,6 +15003,7 @@ var resources = {
14678
15003
  ...aup_locale_default["zh-CN" /* ZH_CN */].translation,
14679
15004
  ...footer_locale_default["zh-CN" /* ZH_CN */].translation,
14680
15005
  ...localFirst_locale_default["zh-CN" /* ZH_CN */].translation,
15006
+ ...openAuditable_locale_default["zh-CN" /* ZH_CN */].translation,
14681
15007
  seo: seo_locale_default["zh-CN" /* ZH_CN */]
14682
15008
  },
14683
15009
  space: space_locale_default["zh-CN" /* ZH_CN */].translation,
@@ -14696,6 +15022,7 @@ var resources = {
14696
15022
  ...aup_locale_default["zh-Hant" /* ZH_HANT */].translation,
14697
15023
  ...footer_locale_default["zh-Hant" /* ZH_HANT */].translation,
14698
15024
  ...localFirst_locale_default["zh-Hant" /* ZH_HANT */].translation,
15025
+ ...openAuditable_locale_default["zh-Hant" /* ZH_HANT */].translation,
14699
15026
  seo: seo_locale_default["zh-Hant" /* ZH_HANT */]
14700
15027
  },
14701
15028
  space: space_locale_default["zh-Hant" /* ZH_HANT */].translation,
@@ -14714,6 +15041,7 @@ var resources = {
14714
15041
  ...aup_locale_default["ja" /* JA */].translation,
14715
15042
  ...footer_locale_default["ja" /* JA */].translation,
14716
15043
  ...localFirst_locale_default["ja" /* JA */].translation,
15044
+ ...openAuditable_locale_default["ja" /* JA */].translation,
14717
15045
  seo: seo_locale_default["ja" /* JA */]
14718
15046
  },
14719
15047
  space: space_locale_default["ja" /* JA */].translation,
@@ -14732,6 +15060,7 @@ var resources = {
14732
15060
  ...aup_locale_default["ko" /* KO */]?.translation ?? aup_locale_default["en" /* EN */].translation,
14733
15061
  ...footer_locale_default["ko" /* KO */]?.translation ?? footer_locale_default["en" /* EN */].translation,
14734
15062
  ...localFirst_locale_default["ko" /* KO */]?.translation ?? localFirst_locale_default["en" /* EN */].translation,
15063
+ ...openAuditable_locale_default["ko" /* KO */]?.translation ?? openAuditable_locale_default["en" /* EN */].translation,
14735
15064
  seo: seo_locale_default["ko" /* KO */]
14736
15065
  },
14737
15066
  space: space_locale_default["ko" /* KO */]?.translation ?? space_locale_default["en" /* EN */].translation,
@@ -14928,16 +15257,35 @@ var updateDialogSummaryAction = async (args, thunkApi) => {
14928
15257
  fileOpsText
14929
15258
  });
14930
15259
  try {
14931
- const newSummary = await dispatch(
15260
+ const runSummaryLlm = (model) => dispatch(
14932
15261
  runLlm({
14933
15262
  llmConfig: {
14934
15263
  ...BUILTIN_SUMMARY_LLM_CONFIG,
15264
+ ...model ? { model } : {},
14935
15265
  prompt: COMPACTION_SUMMARY_SYSTEM_PROMPT
14936
15266
  },
14937
15267
  content: promptContent,
14938
15268
  billingDialogKey: dialogKey
14939
15269
  })
14940
15270
  ).unwrap();
15271
+ const isUsableSummary = (value) => typeof value === "string" && value.trim().length > 0;
15272
+ let newSummary = "";
15273
+ let primaryError;
15274
+ try {
15275
+ newSummary = await runSummaryLlm();
15276
+ } catch (error) {
15277
+ primaryError = error;
15278
+ }
15279
+ if (!isUsableSummary(newSummary)) {
15280
+ try {
15281
+ newSummary = await runSummaryLlm(BUILTIN_DIALOG_LLM_FALLBACK_MODEL);
15282
+ } catch (fallbackError) {
15283
+ throw primaryError ?? fallbackError;
15284
+ }
15285
+ if (!isUsableSummary(newSummary) && primaryError) {
15286
+ throw primaryError;
15287
+ }
15288
+ }
14941
15289
  if (newSummary && typeof newSummary === "string" && newSummary.trim()) {
14942
15290
  const currentCount = dialogConfig.compressionCount || 0;
14943
15291
  await dispatch(
@@ -17126,7 +17474,7 @@ var messageSlice = createSliceWithThunks({
17126
17474
  runtimeOptions: args.runtimeOptions
17127
17475
  });
17128
17476
  if (agentKeyToUse) {
17129
- const { streamAgentChatTurn } = await import("./agentSlice-O2SBU5TK.js");
17477
+ const { streamAgentChatTurn } = await import("./agentSlice-G54NT6PX.js");
17130
17478
  await dispatch(
17131
17479
  streamAgentChatTurn({
17132
17480
  agentKey: agentKeyToUse,
@@ -17232,6 +17580,9 @@ var sanitizeCost = (raw) => {
17232
17580
  };
17233
17581
  var resolveModelPrice = (model, usage) => {
17234
17582
  let activePrice = { ...model.price };
17583
+ if (typeof activePrice.inputCacheHit !== "number" && typeof activePrice.cachingRead === "number") {
17584
+ activePrice = { ...activePrice, inputCacheHit: activePrice.cachingRead };
17585
+ }
17235
17586
  if (model.pricingStrategy?.type === "tiered_context") {
17236
17587
  const contextSize = usage.input_tokens || 0;
17237
17588
  const tiers = model.pricingStrategy.tiers || [];
@@ -17592,7 +17943,7 @@ var calculatePrice = ({
17592
17943
  billingServiceTier,
17593
17944
  nowMs
17594
17945
  );
17595
- const openAIImageSurcharge = provider === "openai" ? resolveOpenAIBuiltInImageSurcharge(model, usage) : 0;
17946
+ const openAIImageSurcharge = provider === "openai" || isPlatformHostedOpenAIImageModel(modelName) ? resolveOpenAIBuiltInImageSurcharge(model, usage) : 0;
17596
17947
  const adjustedCosts = openAIImageSurcharge > 0 ? {
17597
17948
  ...costs,
17598
17949
  regular: costs.regular + openAIImageSurcharge,
@@ -18197,7 +18548,7 @@ var deleteOwnedDialogAttachments = async (args) => {
18197
18548
  metadataReadFailures
18198
18549
  });
18199
18550
  if (!plan.deleteCandidates.length) return plan;
18200
- const { deleteFileAction } = await import("./deleteFile-LWSR674W.js");
18551
+ const { deleteFileAction } = await import("./deleteFile-YG6QMJLU.js");
18201
18552
  for (const candidate of plan.deleteCandidates) {
18202
18553
  if (candidate.fileDbKey) {
18203
18554
  await deleteFileAction(candidate.fileDbKey, args.thunkApi);
@@ -18259,7 +18610,7 @@ var deleteDialogThunk = async (payload, thunkApi) => {
18259
18610
  }
18260
18611
  if (isCurrentDialog) {
18261
18612
  await thunkApi.dispatch(resetMsgs());
18262
- const { clearPendingAttachments: clearPendingAttachments2 } = await import("./dialogSlice-F7RD6PUY.js");
18613
+ const { clearPendingAttachments: clearPendingAttachments2 } = await import("./dialogSlice-EXLC5XTD.js");
18263
18614
  dispatch(clearPendingAttachments2());
18264
18615
  }
18265
18616
  return { dialogKey, isCurrentDialog, attachmentPlan };
@@ -18267,39 +18618,39 @@ var deleteDialogThunk = async (payload, thunkApi) => {
18267
18618
 
18268
18619
  // packages/chat/dialog/dialogSlice.ts
18269
18620
  var runCreateDialogAction = async (args, thunkApi) => {
18270
- const { createDialogAction } = await import("./createDialogAction-23UDOXSO.js");
18621
+ const { createDialogAction } = await import("./createDialogAction-573VVP3X.js");
18271
18622
  return createDialogAction(args, thunkApi);
18272
18623
  };
18273
18624
  var runCreateAgentAutomationAction = async (args, thunkApi) => {
18274
- const { createAgentAutomationAction } = await import("./createAgentAutomationAction-CH6BYC7K.js");
18625
+ const { createAgentAutomationAction } = await import("./createAgentAutomationAction-UIPWW4DG.js");
18275
18626
  return createAgentAutomationAction(args, thunkApi);
18276
18627
  };
18277
18628
  var runUpdateDialogTitleAction = async (args, thunkApi) => {
18278
- const { updateDialogTitleAction } = await import("./updateDialogTitleAction-2HCE2M7S.js");
18629
+ const { updateDialogTitleAction } = await import("./updateDialogTitleAction-4YWKF2OE.js");
18279
18630
  return updateDialogTitleAction(args, thunkApi);
18280
18631
  };
18281
18632
  var runAddDialogAgentAction = async (args, thunkApi) => {
18282
- const { addDialogAgentAction } = await import("./addDialogAgentAction-M7VLLBZM.js");
18633
+ const { addDialogAgentAction } = await import("./addDialogAgentAction-74OA7KYP.js");
18283
18634
  return addDialogAgentAction(args, thunkApi);
18284
18635
  };
18285
18636
  var runRemoveDialogAgentAction = async (args, thunkApi) => {
18286
- const { removeDialogAgentAction } = await import("./removeDialogAgentAction-F5GPTALR.js");
18637
+ const { removeDialogAgentAction } = await import("./removeDialogAgentAction-IX3MN2ZO.js");
18287
18638
  return removeDialogAgentAction(args, thunkApi);
18288
18639
  };
18289
18640
  var runSetPrimaryDialogAgentAction = async (args, thunkApi) => {
18290
- const { setPrimaryDialogAgentAction } = await import("./setPrimaryDialogAgentAction-HPMG7V3R.js");
18641
+ const { setPrimaryDialogAgentAction } = await import("./setPrimaryDialogAgentAction-4GMIQLOD.js");
18291
18642
  return setPrimaryDialogAgentAction(args, thunkApi);
18292
18643
  };
18293
18644
  var runSwitchDialogAgentAction = async (args, thunkApi) => {
18294
- const { switchDialogAgentAction } = await import("./switchDialogAgentAction-HMDZTZ4I.js");
18645
+ const { switchDialogAgentAction } = await import("./switchDialogAgentAction-N52LRPA3.js");
18295
18646
  return switchDialogAgentAction(args, thunkApi);
18296
18647
  };
18297
18648
  var runSetDialogExtraReferencesAction = async (args, thunkApi) => {
18298
- const { setDialogExtraReferencesAction } = await import("./setDialogExtraReferencesAction-AY4ZCF3A.js");
18649
+ const { setDialogExtraReferencesAction } = await import("./setDialogExtraReferencesAction-X4HCPNZL.js");
18299
18650
  return setDialogExtraReferencesAction(args, thunkApi);
18300
18651
  };
18301
18652
  var runHandleSendMessageAction = async (args, thunkApi) => {
18302
- const { handleSendMessageAction } = await import("./handleSendMessageAction-CW4LULIR.js");
18653
+ const { handleSendMessageAction } = await import("./handleSendMessageAction-OROTZBPO.js");
18303
18654
  return handleSendMessageAction(args, thunkApi);
18304
18655
  };
18305
18656
  function clearDialogState() {
@@ -18312,7 +18663,7 @@ var createPageAndAddReference = createAsyncThunk(
18312
18663
  async (payload, { dispatch, getState, rejectWithValue }) => {
18313
18664
  const { slateData, jsonData, title, type, fileId, groupId, dialogKey } = payload;
18314
18665
  try {
18315
- const { createDocState } = await import("./docStore-WX4YBGXC.js");
18666
+ const { createDocState } = await import("./docStore-DZNGJXX7.js");
18316
18667
  const pageKey = await createDocState(
18317
18668
  { slateData, title },
18318
18669
  { dispatch, getState }