nolo-cli 0.81.0-alpha.1 → 0.81.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-L4LCNFID.js → _executeModel-JIG7MRXQ.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-D2WHTH7S.js → agentDeleteCommand-THAZ5GQS.js} +31 -29
  7. package/{agentEmailCommands-IHSX56GO.js → agentEmailCommands-A7T7AJA4.js} +67 -63
  8. package/{agentGrantCommands-R3VQEZJR.js → agentGrantCommands-M3XFO6EN.js} +2 -2
  9. package/{agentListCommands-R2DGZMFP.js → agentListCommands-BRZFEJQM.js} +40 -32
  10. package/{agentMachineCommands-UYDID3HQ.js → agentMachineCommands-DM4N5PK3.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-TTAEMNHB.js +128 -0
  14. package/{agentRunCommand-5PJF27JP.js → agentRunCommand-JVSTGVG2.js} +65 -61
  15. package/{agentRunControl-T44MESII.js → agentRunControl-WCTKX5VL.js} +2 -2
  16. package/{agentRuntimeLocal-VD4O2QFQ.js → agentRuntimeLocal-73CVIWBB.js} +27 -25
  17. package/{agentSlice-43ORUHTC.js → agentSlice-6X4JL2E3.js} +10 -10
  18. package/{appDeleteCommands-DXJA7XOZ.js → appDeleteCommands-S7CK4OYL.js} +31 -29
  19. package/{appDeployCommands-JL6XJZJE.js → appDeployCommands-U6TMS5GO.js} +31 -29
  20. package/{appDeployStatusCommands-MS2D2R6R.js → appDeployStatusCommands-DTNQJ3LJ.js} +31 -29
  21. package/{appGetCommands-BV2RDCEV.js → appGetCommands-3SHZEQD5.js} +31 -29
  22. package/{appListCommands-E2AM636N.js → appListCommands-E2ZMIUB6.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-F3IRDXDQ.js → chatQueueReduxAdapter-LAQEZQKE.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-HQUORJTM.js → chunk-3BMYXEUW.js} +1 -1
  31. package/{chunk-3QPYFHAH.js → chunk-3DII57IT.js} +1 -1
  32. package/{chunk-KIS76A2P.js → chunk-3IIEFNGY.js} +38 -4
  33. package/{chunk-NTW5GWDM.js → chunk-3VNWWVKB.js} +2 -0
  34. package/{chunk-JQBONKAV.js → chunk-3WD6RUUJ.js} +11 -173
  35. package/{chunk-DWUCB2A3.js → chunk-42V6BK2E.js} +1 -1
  36. package/{chunk-GBPZKFYK.js → chunk-53HEEOTT.js} +4 -4
  37. package/{chunk-GEH7MMBB.js → chunk-54ADB4W7.js} +1 -1
  38. package/{chunk-5XTOKQLW.js → chunk-5UTFL4QJ.js} +6 -2
  39. package/chunk-5ZUL4CUO.js +10 -0
  40. package/{chunk-E6RGHPDR.js → chunk-6D6VBVEW.js} +4 -6
  41. package/{chunk-QNWHWBB7.js → chunk-6FVRQBRR.js} +52 -30
  42. package/{chunk-CMH2SYHX.js → chunk-6OZ36FXI.js} +2 -2
  43. package/{chunk-NRALD3CC.js → chunk-76WEAXJB.js} +49 -10
  44. package/{chunk-DFJFH53D.js → chunk-7OLPQSMQ.js} +6 -6
  45. package/{chunk-BYEJ7K2Z.js → chunk-7S4YWN7P.js} +1 -1
  46. package/{chunk-SREASRV5.js → chunk-ABQYVJBJ.js} +1 -1
  47. package/chunk-ACTMNVHM.js +93 -0
  48. package/{chunk-XWNRAIUL.js → chunk-AFUORTY4.js} +6 -16
  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-4YCRJUQ2.js → chunk-ESWUWEFS.js} +10 -10
  55. package/{chunk-EXMHJN7C.js → chunk-EYAQT56M.js} +4 -3
  56. package/{chunk-CJCJF5XB.js → chunk-FDTR4QJ6.js} +4 -2
  57. package/{chunk-PYXL2CJL.js → chunk-GPCZ7UXG.js} +1 -1
  58. package/{chunk-K7AG465Q.js → chunk-GQBOR3G6.js} +4 -2
  59. package/{chunk-YFADVSZE.js → chunk-H62HCIUP.js} +6 -6
  60. package/{chunk-PZM3EENV.js → chunk-HJUYAD4A.js} +1 -1
  61. package/{chunk-3JQ2NRYU.js → chunk-HVURBGF3.js} +4 -4
  62. package/{chunk-DAIOZ3ZO.js → chunk-HWIZU4OL.js} +13 -15
  63. package/{chunk-ZVN6I33J.js → chunk-IIVGDG4I.js} +6 -5
  64. package/{chunk-UDQWGU7F.js → chunk-J4MOO56S.js} +1 -1
  65. package/{chunk-DSRXPQWA.js → chunk-JAXOVNM4.js} +43 -43
  66. package/{chunk-QQ7SX52C.js → chunk-JCIHVIVG.js} +15 -15
  67. package/{chunk-KC5FAHVS.js → chunk-JEDZAO7L.js} +1 -1
  68. package/{chunk-6XIE5ZGI.js → chunk-JPGCXHNM.js} +1 -1
  69. package/chunk-JRQFUXY7.js +1625 -0
  70. package/{chunk-J4R5XRX5.js → chunk-K4YGZD3P.js} +419 -72
  71. package/chunk-KQ4ONNQD.js +677 -0
  72. package/{chunk-RXX4GDIH.js → chunk-LS2ZANRJ.js} +1 -1
  73. package/{chunk-ODWEZBU6.js → chunk-LXF6XQDT.js} +1219 -57
  74. package/{chunk-CPSZJBLK.js → chunk-LZIWMYX4.js} +105 -26
  75. package/{chunk-BJIRLHJR.js → chunk-M2EJHDJP.js} +4 -0
  76. package/{chunk-EVBFYPDC.js → chunk-MC4XLIJ7.js} +6 -2
  77. package/{chunk-QC5LGHYP.js → chunk-OF7AQZUG.js} +10 -5
  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-IHTVDCWH.js → chunk-R2B3MIZA.js} +3 -3
  85. package/{chunk-YWG6EMH3.js → chunk-RG6JBBX5.js} +10 -6
  86. package/{chunk-QCZX4FTW.js → chunk-SH43IESU.js} +173 -15
  87. package/{chunk-FNGAF7C4.js → chunk-SNPMM7H3.js} +137 -12
  88. package/{chunk-XKNBWXDH.js → chunk-SQQVLHMH.js} +7 -7
  89. package/{chunk-SPAQ4PVV.js → chunk-SV5IJK6K.js} +1 -1
  90. package/{chunk-KVDUCO4Q.js → chunk-TDRTS7QW.js} +16 -12
  91. package/{chunk-BJCWNHVU.js → chunk-TOP2VXOR.js} +2 -2
  92. package/{chunk-QQBO3LQW.js → chunk-TZJJ77KQ.js} +155 -795
  93. package/{chunk-4EJ5QYB5.js → chunk-UKZDAFYT.js} +1 -1
  94. package/{chunk-PGSKWZCB.js → chunk-UZGQNTVW.js} +1 -1
  95. package/{chunk-ZZCJUXUI.js → chunk-V4MJDUSR.js} +2 -2
  96. package/{chunk-JYYZCK2Z.js → chunk-V7E4PXQD.js} +1 -1
  97. package/{chunk-OZX2IPKM.js → chunk-VLTIYV3X.js} +1 -1
  98. package/{chunk-NHRQCXIQ.js → chunk-VMFTFOWF.js} +13 -3
  99. package/{chunk-E36HZARC.js → chunk-WADCY6G6.js} +3 -3
  100. package/{chunk-HH65VA5U.js → chunk-WGR3J4Q6.js} +101 -4
  101. package/{chunk-5J7W2VWW.js → chunk-WV42OMV7.js} +6 -265
  102. package/{chunk-7QHSEMMD.js → chunk-Y5HW6GM2.js} +3 -3
  103. package/{chunk-DUJWWUGV.js → chunk-YQTQQX2H.js} +1 -1
  104. package/{chunk-QPJBFU7R.js → chunk-YVIV7WT4.js} +752 -80
  105. package/{chunk-BOYUESO7.js → chunk-Z77CRGTW.js} +1 -1
  106. package/{chunk-KSHYBTYH.js → chunk-ZWUOR654.js} +932 -299
  107. package/{contentThunks-FSQPOFYG.js → contentThunks-ATLWNC2D.js} +25 -25
  108. package/{cooldownCommands-BSCH2W7P.js → cooldownCommands-REAWYVTY.js} +2 -2
  109. package/{createAgentAutomationAction-VCHDRJ6X.js → createAgentAutomationAction-QYYWTVUR.js} +25 -25
  110. package/{createDialogAction-KZM5IE4P.js → createDialogAction-7I5VGWCR.js} +28 -28
  111. package/{createPageAction-IGMXJOY3.js → createPageAction-WNURYCWU.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-KJS57EDF.js → dialogCommands-RILHDRQ5.js} +35 -31
  115. package/{dialogSlice-YBTC3GAW.js → dialogSlice-W5BYELVR.js} +24 -24
  116. package/{docCreateCommands-MRGXJTB4.js → docCreateCommands-GSTPU7SG.js} +32 -30
  117. package/{docDeleteCommands-YCI75CBU.js → docDeleteCommands-2FC3LSUT.js} +33 -31
  118. package/{docReadCommands-JN3VHTQY.js → docReadCommands-27POBA34.js} +32 -30
  119. package/{docStore-SDPT23I6.js → docStore-7LAHBFP2.js} +9 -9
  120. package/{docUpdateCommands-7KBOENX7.js → docUpdateCommands-U4II6VCO.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-356IDG72.js → handleSendMessageAction-SKMJMVRU.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-FYIRYMDE.js → machineCommands-S2RNYKVJ.js} +64 -60
  128. package/{machineWsRunDispatch-J2FEYI4T.js → machineWsRunDispatch-JC44LBLP.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-OWBGR7QO.js → readlineWorkspace-VZSBXUH4.js} +188 -109
  138. package/{removeDialogAgentAction-F5GPTALR.js → removeDialogAgentAction-IX3MN2ZO.js} +11 -11
  139. package/{runAgentClientLoop-DKUUFUKT.js → runAgentClientLoop-ZYENU7GH.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-SSLCOSBH.js → spaceCommands-QB3NNEMN.js} +30 -28
  145. package/{streamAgentChatTurn-FHZZCANP.js → streamAgentChatTurn-43GPPQSN.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-QZJX3BIC.js → tools-SX6Y4STZ.js} +43 -43
  150. package/tuiSummaryLlmCaller-T2SHYMDZ.js +127 -0
  151. package/{updateCommands-Y363MC3L.js → updateCommands-2M74UL7P.js} +2 -2
  152. package/{updateDialogTitleAction-JJPNGTAP.js → updateDialogTitleAction-VAKA4ZNY.js} +45 -28
  153. package/agentRecordCommands-OFYTWZAA.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-XKNBWXDH.js";
17
+ } from "./chunk-SQQVLHMH.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-JAXOVNM4.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-WADCY6G6.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,10 +9293,52 @@ 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",
9256
- secondaryExplore: "\u5148\u901B\u901B\u516C\u5F00 AI",
9341
+ secondaryExplore: "\u6D4F\u89C8\u516C\u5F00 AI",
9257
9342
  secondaryDownload: "\u4E0B\u8F7D\u684C\u9762\u7AEF\u6216\u79FB\u52A8\u7AEF",
9258
9343
  secondaryPricing: "\u4E86\u89E3\u5B9A\u4EF7",
9259
9344
  trustMicro: "\u514D\u8D39\u6CE8\u518C \xB7 \u65E0\u9700\u4FE1\u7528\u5361 \xB7 \u968F\u65F6\u53EF\u505C",
@@ -9276,7 +9361,7 @@ var interface_locale_default = {
9276
9361
  },
9277
9362
  proof: {
9278
9363
  kicker: "\u4E3A\u4EC0\u4E48\u4ECE\u8FD9\u91CC\u5F00\u59CB",
9279
- 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",
9364
+ 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",
9280
9365
  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",
9281
9366
  label: "\u9996\u9875\u80FD\u529B\u8BC1\u660E",
9282
9367
  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",
@@ -9293,7 +9378,7 @@ var interface_locale_default = {
9293
9378
  faq: {
9294
9379
  kicker: "\u5E38\u89C1\u95EE\u9898",
9295
9380
  title: "Agent \u73A9\u5BB6\u771F\u6B63\u60F3\u77E5\u9053\u7684",
9296
- 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",
9381
+ 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",
9297
9382
  context: {
9298
9383
  question: "Agent \u4E4B\u95F4\u7684\u4E0A\u4E0B\u6587\u662F\u5171\u4EAB\u7684\u5417\uFF1F",
9299
9384
  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"
@@ -9304,7 +9389,7 @@ var interface_locale_default = {
9304
9389
  },
9305
9390
  entry: {
9306
9391
  question: "\u4E00\u4E2A\u4EFB\u52A1\u91CC\u53EF\u4EE5\u8C03\u5EA6\u591A\u4E2A Agent \u5417\uFF1F",
9307
- 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"
9392
+ 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"
9308
9393
  },
9309
9394
  orchestration: {
9310
9395
  question: "\u7F16\u6392\u65B9\u5F0F\u662F\u56FA\u5B9A\u7684\u5417\uFF1F",
@@ -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",
@@ -9491,8 +9576,8 @@ var interface_locale_default = {
9491
9576
  finalCta: {
9492
9577
  kicker: "\u51C6\u5907\u597D\u5C31\u5F00\u59CB",
9493
9578
  title: "\u77E5\u9053\u81EA\u5DF1\u8981\u505A\u4EC0\u4E48\uFF0C\u5C31\u76F4\u63A5\u642D\u8D77\u6765\u3002",
9494
- 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",
9495
- primary: "\u521B\u5EFA\u6211\u7684\u5DE5\u4F5C\u53F0"
9579
+ 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",
9580
+ primary: "\u514D\u8D39\u5F00\u59CB"
9496
9581
  },
9497
9582
  cards: {
9498
9583
  create: {
@@ -10509,10 +10594,52 @@ 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",
10515
- secondaryExplore: "\u5148\u901B\u901B\u516C\u958B AI",
10642
+ secondaryExplore: "\u700F\u89BD\u516C\u958B AI",
10516
10643
  secondaryDownload: "\u4E0B\u8F09\u684C\u9762\u7AEF\u6216\u884C\u52D5\u7AEF",
10517
10644
  secondaryPricing: "\u4E86\u89E3\u5B9A\u50F9",
10518
10645
  trustMicro: "\u514D\u8CBB\u8A3B\u518A \xB7 \u7121\u9700\u4FE1\u7528\u5361 \xB7 \u96A8\u6642\u53EF\u505C",
@@ -10535,7 +10662,7 @@ var interface_locale_default = {
10535
10662
  },
10536
10663
  proof: {
10537
10664
  kicker: "\u70BA\u4EC0\u9EBC\u5F9E\u9019\u88E1\u958B\u59CB",
10538
- title: "\u66F4\u9069\u5408\u60F3\u63A8\u9032\u7D50\u679C\u7684\u4EBA\uFF0C\u800C\u4E0D\u53EA\u662F\u60F3\u63DB\u500B prompt \u5916\u76AE\u7684\u4EBA",
10665
+ 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",
10539
10666
  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",
10540
10667
  label: "\u9996\u9801\u80FD\u529B\u8B49\u660E",
10541
10668
  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",
@@ -10552,7 +10679,7 @@ var interface_locale_default = {
10552
10679
  faq: {
10553
10680
  kicker: "\u5E38\u898B\u554F\u984C",
10554
10681
  title: "Agent \u73A9\u5BB6\u771F\u6B63\u60F3\u77E5\u9053\u7684",
10555
- 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",
10682
+ 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",
10556
10683
  context: {
10557
10684
  question: "Agent \u4E4B\u9593\u7684\u4E0A\u4E0B\u6587\u662F\u5171\u4EAB\u7684\u55CE\uFF1F",
10558
10685
  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"
@@ -10563,7 +10690,7 @@ var interface_locale_default = {
10563
10690
  },
10564
10691
  entry: {
10565
10692
  question: "\u4E00\u500B\u4EFB\u52D9\u88E1\u53EF\u4EE5\u8ABF\u5EA6\u591A\u500B Agent \u55CE\uFF1F",
10566
- 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"
10693
+ 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"
10567
10694
  },
10568
10695
  orchestration: {
10569
10696
  question: "\u7DE8\u6392\u65B9\u5F0F\u662F\u56FA\u5B9A\u7684\u55CE\uFF1F",
@@ -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",
@@ -10750,8 +10877,8 @@ var interface_locale_default = {
10750
10877
  finalCta: {
10751
10878
  kicker: "\u6E96\u5099\u597D\u5C31\u958B\u59CB",
10752
10879
  title: "\u77E5\u9053\u81EA\u5DF1\u8981\u505A\u4EC0\u9EBC\uFF0C\u5C31\u76F4\u63A5\u642D\u8D77\u4F86\u3002",
10753
- 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",
10754
- primary: "\u5EFA\u7ACB\u6211\u7684\u5DE5\u4F5C\u53F0"
10880
+ 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",
10881
+ primary: "\u514D\u8CBB\u958B\u59CB"
10755
10882
  },
10756
10883
  cards: {
10757
10884
  create: {
@@ -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
  }
@@ -14008,7 +14257,7 @@ var terms_locale_default = {
14008
14257
  ["zh-CN" /* ZH_CN */]: {
14009
14258
  translation: {
14010
14259
  terms: {
14011
- title: "\u670D\u52A1\u6761\u6B3E",
14260
+ title: "\u670D\u52A1\u6761\u6B3E (Terms of Service)",
14012
14261
  lastUpdated: "\u6700\u540E\u66F4\u65B0\u65E5\u671F\uFF1A2026\u5E748\u670827\u65E5",
14013
14262
  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",
14014
14263
  section1: {
@@ -14049,7 +14298,7 @@ var terms_locale_default = {
14049
14298
  ["zh-Hant" /* ZH_HANT */]: {
14050
14299
  translation: {
14051
14300
  terms: {
14052
- title: "\u670D\u52D9\u689D\u6B3E",
14301
+ title: "\u670D\u52D9\u689D\u6B3E (Terms of Service)",
14053
14302
  lastUpdated: "\u6700\u5F8C\u66F4\u65B0\u65E5\u671F\uFF1A2026\u5E748\u670827\u65E5",
14054
14303
  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",
14055
14304
  section1: {
@@ -14646,6 +14895,77 @@ var localFirst_locale_default = {
14646
14895
  }
14647
14896
  };
14648
14897
 
14898
+ // packages/app/i18n/translations/openAuditable.locale.ts
14899
+ var english = {
14900
+ openAuditable: {
14901
+ kicker: "Open & Auditable",
14902
+ title: "Don\u2019t trust the binary. Verify it.",
14903
+ 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.",
14904
+ viewSource: "View source",
14905
+ verifyRelease: "Verify current release",
14906
+ publicCommitTitle: "Exact public commit",
14907
+ publicCommitText: "Release metadata records the exact public projection SHA used for the build.",
14908
+ hashTitle: "Artifact checksum",
14909
+ hashText: "The public manifest records SHA-256 for each downloadable desktop artifact.",
14910
+ auditTitle: "Auditable client",
14911
+ auditText: "Inspect how the client reads files, invokes tools, and talks to model providers."
14912
+ }
14913
+ };
14914
+ var openAuditable_locale_default = {
14915
+ ["en" /* EN */]: { translation: english },
14916
+ ["zh-CN" /* ZH_CN */]: {
14917
+ translation: {
14918
+ openAuditable: {
14919
+ kicker: "\u5F00\u653E \xB7 \u53EF\u5BA1\u8BA1",
14920
+ title: "\u4E0D\u8981\u53EA\u4FE1\u5B89\u88C5\u5305\uFF0C\u81EA\u5DF1\u9A8C\u8BC1\u3002",
14921
+ 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",
14922
+ viewSource: "\u67E5\u770B\u6E90\u7801",
14923
+ verifyRelease: "\u9A8C\u8BC1\u5F53\u524D\u7248\u672C",
14924
+ publicCommitTitle: "\u5BF9\u5E94\u516C\u5F00\u63D0\u4EA4",
14925
+ publicCommitText: "\u53D1\u5E03\u5143\u6570\u636E\u4F1A\u8BB0\u5F55\u6784\u5EFA\u4F7F\u7528\u7684\u51C6\u786E\u516C\u5F00 projection SHA\u3002",
14926
+ hashTitle: "\u5B89\u88C5\u5305\u6821\u9A8C\u503C",
14927
+ hashText: "\u516C\u5F00 manifest \u4F1A\u8BB0\u5F55\u6BCF\u4E2A\u53EF\u4E0B\u8F7D\u684C\u9762\u5B89\u88C5\u5305\u7684 SHA-256\u3002",
14928
+ auditTitle: "\u5BA2\u6237\u7AEF\u53EF\u5BA1\u8BA1",
14929
+ 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"
14930
+ }
14931
+ }
14932
+ },
14933
+ ["zh-Hant" /* ZH_HANT */]: {
14934
+ translation: {
14935
+ openAuditable: {
14936
+ kicker: "\u958B\u653E \xB7 \u53EF\u7A3D\u6838",
14937
+ title: "\u4E0D\u8981\u53EA\u76F8\u4FE1\u5B89\u88DD\u6A94\uFF0C\u81EA\u5DF1\u9A57\u8B49\u3002",
14938
+ 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",
14939
+ viewSource: "\u67E5\u770B\u539F\u59CB\u78BC",
14940
+ verifyRelease: "\u9A57\u8B49\u76EE\u524D\u7248\u672C",
14941
+ publicCommitTitle: "\u5C0D\u61C9\u516C\u958B\u63D0\u4EA4",
14942
+ publicCommitText: "\u767C\u5E03\u4E2D\u7E7C\u8CC7\u6599\u6703\u8A18\u9304\u5EFA\u7F6E\u4F7F\u7528\u7684\u7CBE\u78BA\u516C\u958B projection SHA\u3002",
14943
+ hashTitle: "\u5B89\u88DD\u6A94\u6821\u9A57\u503C",
14944
+ hashText: "\u516C\u958B manifest \u6703\u8A18\u9304\u6BCF\u500B\u53EF\u4E0B\u8F09\u684C\u9762\u5B89\u88DD\u6A94\u7684 SHA-256\u3002",
14945
+ auditTitle: "\u7528\u6236\u7AEF\u53EF\u7A3D\u6838",
14946
+ 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"
14947
+ }
14948
+ }
14949
+ },
14950
+ ["ja" /* JA */]: {
14951
+ translation: {
14952
+ openAuditable: {
14953
+ kicker: "Open & Auditable",
14954
+ title: "\u30D0\u30A4\u30CA\u30EA\u3092\u305F\u3060\u4FE1\u3058\u305A\u3001\u81EA\u5206\u3067\u691C\u8A3C\u3067\u304D\u307E\u3059\u3002",
14955
+ 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",
14956
+ viewSource: "\u30BD\u30FC\u30B9\u3092\u898B\u308B",
14957
+ verifyRelease: "\u73FE\u5728\u306E\u30EA\u30EA\u30FC\u30B9\u3092\u691C\u8A3C",
14958
+ publicCommitTitle: "\u6B63\u78BA\u306A\u516C\u958B\u30B3\u30DF\u30C3\u30C8",
14959
+ 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",
14960
+ hashTitle: "\u6210\u679C\u7269\u30C1\u30A7\u30C3\u30AF\u30B5\u30E0",
14961
+ 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",
14962
+ auditTitle: "\u76E3\u67FB\u53EF\u80FD\u306A\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8",
14963
+ 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"
14964
+ }
14965
+ }
14966
+ }
14967
+ };
14968
+
14649
14969
  // packages/app/i18n/i18n.config.ts
14650
14970
  var resources = {
14651
14971
  ["en" /* EN */]: {
@@ -14660,6 +14980,7 @@ var resources = {
14660
14980
  ...aup_locale_default["en" /* EN */].translation,
14661
14981
  ...footer_locale_default["en" /* EN */].translation,
14662
14982
  ...localFirst_locale_default["en" /* EN */].translation,
14983
+ ...openAuditable_locale_default["en" /* EN */].translation,
14663
14984
  seo: seo_locale_default["en" /* EN */]
14664
14985
  },
14665
14986
  space: space_locale_default["en" /* EN */].translation,
@@ -14678,6 +14999,7 @@ var resources = {
14678
14999
  ...aup_locale_default["zh-CN" /* ZH_CN */].translation,
14679
15000
  ...footer_locale_default["zh-CN" /* ZH_CN */].translation,
14680
15001
  ...localFirst_locale_default["zh-CN" /* ZH_CN */].translation,
15002
+ ...openAuditable_locale_default["zh-CN" /* ZH_CN */].translation,
14681
15003
  seo: seo_locale_default["zh-CN" /* ZH_CN */]
14682
15004
  },
14683
15005
  space: space_locale_default["zh-CN" /* ZH_CN */].translation,
@@ -14696,6 +15018,7 @@ var resources = {
14696
15018
  ...aup_locale_default["zh-Hant" /* ZH_HANT */].translation,
14697
15019
  ...footer_locale_default["zh-Hant" /* ZH_HANT */].translation,
14698
15020
  ...localFirst_locale_default["zh-Hant" /* ZH_HANT */].translation,
15021
+ ...openAuditable_locale_default["zh-Hant" /* ZH_HANT */].translation,
14699
15022
  seo: seo_locale_default["zh-Hant" /* ZH_HANT */]
14700
15023
  },
14701
15024
  space: space_locale_default["zh-Hant" /* ZH_HANT */].translation,
@@ -14714,6 +15037,7 @@ var resources = {
14714
15037
  ...aup_locale_default["ja" /* JA */].translation,
14715
15038
  ...footer_locale_default["ja" /* JA */].translation,
14716
15039
  ...localFirst_locale_default["ja" /* JA */].translation,
15040
+ ...openAuditable_locale_default["ja" /* JA */].translation,
14717
15041
  seo: seo_locale_default["ja" /* JA */]
14718
15042
  },
14719
15043
  space: space_locale_default["ja" /* JA */].translation,
@@ -14732,6 +15056,7 @@ var resources = {
14732
15056
  ...aup_locale_default["ko" /* KO */]?.translation ?? aup_locale_default["en" /* EN */].translation,
14733
15057
  ...footer_locale_default["ko" /* KO */]?.translation ?? footer_locale_default["en" /* EN */].translation,
14734
15058
  ...localFirst_locale_default["ko" /* KO */]?.translation ?? localFirst_locale_default["en" /* EN */].translation,
15059
+ ...openAuditable_locale_default["ko" /* KO */]?.translation ?? openAuditable_locale_default["en" /* EN */].translation,
14735
15060
  seo: seo_locale_default["ko" /* KO */]
14736
15061
  },
14737
15062
  space: space_locale_default["ko" /* KO */]?.translation ?? space_locale_default["en" /* EN */].translation,
@@ -14928,16 +15253,35 @@ var updateDialogSummaryAction = async (args, thunkApi) => {
14928
15253
  fileOpsText
14929
15254
  });
14930
15255
  try {
14931
- const newSummary = await dispatch(
15256
+ const runSummaryLlm = (model) => dispatch(
14932
15257
  runLlm({
14933
15258
  llmConfig: {
14934
15259
  ...BUILTIN_SUMMARY_LLM_CONFIG,
15260
+ ...model ? { model } : {},
14935
15261
  prompt: COMPACTION_SUMMARY_SYSTEM_PROMPT
14936
15262
  },
14937
15263
  content: promptContent,
14938
15264
  billingDialogKey: dialogKey
14939
15265
  })
14940
15266
  ).unwrap();
15267
+ const isUsableSummary = (value) => typeof value === "string" && value.trim().length > 0;
15268
+ let newSummary = "";
15269
+ let primaryError;
15270
+ try {
15271
+ newSummary = await runSummaryLlm();
15272
+ } catch (error) {
15273
+ primaryError = error;
15274
+ }
15275
+ if (!isUsableSummary(newSummary)) {
15276
+ try {
15277
+ newSummary = await runSummaryLlm(BUILTIN_DIALOG_LLM_FALLBACK_MODEL);
15278
+ } catch (fallbackError) {
15279
+ throw primaryError ?? fallbackError;
15280
+ }
15281
+ if (!isUsableSummary(newSummary) && primaryError) {
15282
+ throw primaryError;
15283
+ }
15284
+ }
14941
15285
  if (newSummary && typeof newSummary === "string" && newSummary.trim()) {
14942
15286
  const currentCount = dialogConfig.compressionCount || 0;
14943
15287
  await dispatch(
@@ -17126,7 +17470,7 @@ var messageSlice = createSliceWithThunks({
17126
17470
  runtimeOptions: args.runtimeOptions
17127
17471
  });
17128
17472
  if (agentKeyToUse) {
17129
- const { streamAgentChatTurn } = await import("./agentSlice-43ORUHTC.js");
17473
+ const { streamAgentChatTurn } = await import("./agentSlice-6X4JL2E3.js");
17130
17474
  await dispatch(
17131
17475
  streamAgentChatTurn({
17132
17476
  agentKey: agentKeyToUse,
@@ -17232,6 +17576,9 @@ var sanitizeCost = (raw) => {
17232
17576
  };
17233
17577
  var resolveModelPrice = (model, usage) => {
17234
17578
  let activePrice = { ...model.price };
17579
+ if (typeof activePrice.inputCacheHit !== "number" && typeof activePrice.cachingRead === "number") {
17580
+ activePrice = { ...activePrice, inputCacheHit: activePrice.cachingRead };
17581
+ }
17235
17582
  if (model.pricingStrategy?.type === "tiered_context") {
17236
17583
  const contextSize = usage.input_tokens || 0;
17237
17584
  const tiers = model.pricingStrategy.tiers || [];
@@ -17592,7 +17939,7 @@ var calculatePrice = ({
17592
17939
  billingServiceTier,
17593
17940
  nowMs
17594
17941
  );
17595
- const openAIImageSurcharge = provider === "openai" ? resolveOpenAIBuiltInImageSurcharge(model, usage) : 0;
17942
+ const openAIImageSurcharge = provider === "openai" || isPlatformHostedOpenAIImageModel(modelName) ? resolveOpenAIBuiltInImageSurcharge(model, usage) : 0;
17596
17943
  const adjustedCosts = openAIImageSurcharge > 0 ? {
17597
17944
  ...costs,
17598
17945
  regular: costs.regular + openAIImageSurcharge,
@@ -18197,7 +18544,7 @@ var deleteOwnedDialogAttachments = async (args) => {
18197
18544
  metadataReadFailures
18198
18545
  });
18199
18546
  if (!plan.deleteCandidates.length) return plan;
18200
- const { deleteFileAction } = await import("./deleteFile-LWSR674W.js");
18547
+ const { deleteFileAction } = await import("./deleteFile-YG6QMJLU.js");
18201
18548
  for (const candidate of plan.deleteCandidates) {
18202
18549
  if (candidate.fileDbKey) {
18203
18550
  await deleteFileAction(candidate.fileDbKey, args.thunkApi);
@@ -18259,7 +18606,7 @@ var deleteDialogThunk = async (payload, thunkApi) => {
18259
18606
  }
18260
18607
  if (isCurrentDialog) {
18261
18608
  await thunkApi.dispatch(resetMsgs());
18262
- const { clearPendingAttachments: clearPendingAttachments2 } = await import("./dialogSlice-YBTC3GAW.js");
18609
+ const { clearPendingAttachments: clearPendingAttachments2 } = await import("./dialogSlice-W5BYELVR.js");
18263
18610
  dispatch(clearPendingAttachments2());
18264
18611
  }
18265
18612
  return { dialogKey, isCurrentDialog, attachmentPlan };
@@ -18267,39 +18614,39 @@ var deleteDialogThunk = async (payload, thunkApi) => {
18267
18614
 
18268
18615
  // packages/chat/dialog/dialogSlice.ts
18269
18616
  var runCreateDialogAction = async (args, thunkApi) => {
18270
- const { createDialogAction } = await import("./createDialogAction-KZM5IE4P.js");
18617
+ const { createDialogAction } = await import("./createDialogAction-7I5VGWCR.js");
18271
18618
  return createDialogAction(args, thunkApi);
18272
18619
  };
18273
18620
  var runCreateAgentAutomationAction = async (args, thunkApi) => {
18274
- const { createAgentAutomationAction } = await import("./createAgentAutomationAction-VCHDRJ6X.js");
18621
+ const { createAgentAutomationAction } = await import("./createAgentAutomationAction-QYYWTVUR.js");
18275
18622
  return createAgentAutomationAction(args, thunkApi);
18276
18623
  };
18277
18624
  var runUpdateDialogTitleAction = async (args, thunkApi) => {
18278
- const { updateDialogTitleAction } = await import("./updateDialogTitleAction-JJPNGTAP.js");
18625
+ const { updateDialogTitleAction } = await import("./updateDialogTitleAction-VAKA4ZNY.js");
18279
18626
  return updateDialogTitleAction(args, thunkApi);
18280
18627
  };
18281
18628
  var runAddDialogAgentAction = async (args, thunkApi) => {
18282
- const { addDialogAgentAction } = await import("./addDialogAgentAction-M7VLLBZM.js");
18629
+ const { addDialogAgentAction } = await import("./addDialogAgentAction-74OA7KYP.js");
18283
18630
  return addDialogAgentAction(args, thunkApi);
18284
18631
  };
18285
18632
  var runRemoveDialogAgentAction = async (args, thunkApi) => {
18286
- const { removeDialogAgentAction } = await import("./removeDialogAgentAction-F5GPTALR.js");
18633
+ const { removeDialogAgentAction } = await import("./removeDialogAgentAction-IX3MN2ZO.js");
18287
18634
  return removeDialogAgentAction(args, thunkApi);
18288
18635
  };
18289
18636
  var runSetPrimaryDialogAgentAction = async (args, thunkApi) => {
18290
- const { setPrimaryDialogAgentAction } = await import("./setPrimaryDialogAgentAction-HPMG7V3R.js");
18637
+ const { setPrimaryDialogAgentAction } = await import("./setPrimaryDialogAgentAction-4GMIQLOD.js");
18291
18638
  return setPrimaryDialogAgentAction(args, thunkApi);
18292
18639
  };
18293
18640
  var runSwitchDialogAgentAction = async (args, thunkApi) => {
18294
- const { switchDialogAgentAction } = await import("./switchDialogAgentAction-HMDZTZ4I.js");
18641
+ const { switchDialogAgentAction } = await import("./switchDialogAgentAction-N52LRPA3.js");
18295
18642
  return switchDialogAgentAction(args, thunkApi);
18296
18643
  };
18297
18644
  var runSetDialogExtraReferencesAction = async (args, thunkApi) => {
18298
- const { setDialogExtraReferencesAction } = await import("./setDialogExtraReferencesAction-AY4ZCF3A.js");
18645
+ const { setDialogExtraReferencesAction } = await import("./setDialogExtraReferencesAction-X4HCPNZL.js");
18299
18646
  return setDialogExtraReferencesAction(args, thunkApi);
18300
18647
  };
18301
18648
  var runHandleSendMessageAction = async (args, thunkApi) => {
18302
- const { handleSendMessageAction } = await import("./handleSendMessageAction-356IDG72.js");
18649
+ const { handleSendMessageAction } = await import("./handleSendMessageAction-SKMJMVRU.js");
18303
18650
  return handleSendMessageAction(args, thunkApi);
18304
18651
  };
18305
18652
  function clearDialogState() {
@@ -18312,7 +18659,7 @@ var createPageAndAddReference = createAsyncThunk(
18312
18659
  async (payload, { dispatch, getState, rejectWithValue }) => {
18313
18660
  const { slateData, jsonData, title, type, fileId, groupId, dialogKey } = payload;
18314
18661
  try {
18315
- const { createDocState } = await import("./docStore-SDPT23I6.js");
18662
+ const { createDocState } = await import("./docStore-7LAHBFP2.js");
18316
18663
  const pageKey = await createDocState(
18317
18664
  { slateData, title },
18318
18665
  { dispatch, getState }