nolo-cli 0.157.0-alpha.1 → 0.159.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{_executeModel-5WS2PA62.js → _executeModel-JISIM4PS.js} +41 -41
- package/{accountResolver-7RYB4D2P.js → accountResolver-55EDKEIK.js} +1 -1
- package/{action-ZJYUBXFC.js → action-GPPJC5TI.js} +4 -4
- package/{addContentAction-TVHB4526.js → addContentAction-BI6RDRTQ.js} +7 -7
- package/{addDialogAgentAction-FDPBU6K6.js → addDialogAgentAction-4RJYUSIK.js} +6 -6
- package/{agentDeleteCommand-Q6M4F3U6.js → agentDeleteCommand-2NMZDFL5.js} +54 -54
- package/{agentEmailCommands-FNH6FEHS.js → agentEmailCommands-VQ2QGKL4.js} +56 -56
- package/{agentListCommands-JUNMFS6E.js → agentListCommands-3CJ4GF6C.js} +21 -21
- package/{agentMachineCommands-VNLDEKNT.js → agentMachineCommands-BMOEPV5C.js} +20 -19
- package/{agentProviderCommands-X2HQE6HY.js → agentProviderCommands-CUBOAVPB.js} +2 -2
- package/{agentRecordCommands-47XXRVPI.js → agentRecordCommands-XRB7BLWV.js} +54 -54
- package/{agentRunCommand-QEXFJUXQ.js → agentRunCommand-VKCTAW55.js} +56 -55
- package/{agentRunControl-2C5GM3BW.js → agentRunControl-PPYWJRIJ.js} +4 -4
- package/{agentRuntimeLocal-O5GDAFTN.js → agentRuntimeLocal-7JDS3OAL.js} +14 -14
- package/{agentSlice-E3XS5FTQ.js → agentSlice-ST6QQ5FD.js} +7 -7
- package/{appDeleteCommands-C2J5RQ3I.js → appDeleteCommands-UVWHW4TJ.js} +19 -19
- package/{appDeployCommands-3YRK7PSU.js → appDeployCommands-67JPR4JU.js} +19 -19
- package/{appDeployStatusCommands-FPAX7MOK.js → appDeployStatusCommands-UTC6IR5V.js} +19 -19
- package/{appGetCommands-XAC2V766.js → appGetCommands-KLLIGWNC.js} +19 -19
- package/{appListCommands-ZJL2W5O7.js → appListCommands-AZKNWJUR.js} +19 -19
- package/{authCommand-J3XILHWW.js → authCommand-MSINEFHH.js} +12 -292
- package/{authCommands-77CHYBGF.js → authCommands-AMNIAKEG.js} +2 -2
- package/{builtinSkillRegistry-A6VSPJEJ.js → builtinSkillRegistry-H3AY27TR.js} +1 -1
- package/{chromeCommands-OBBNJCLS.js → chromeCommands-IY4NVSXZ.js} +17 -10
- package/{chunk-SW4S4XYB.js → chunk-2AB2HA4M.js} +84 -34
- package/{chunk-Z6KQDSZW.js → chunk-2SGAI64X.js} +2 -2
- package/{chunk-C5VPAHIU.js → chunk-32ZKZET7.js} +1 -1
- package/{chunk-XPWGOTBQ.js → chunk-3L2WKC3W.js} +1 -8
- package/{chunk-MM3662RS.js → chunk-42W7LKBM.js} +1 -1
- package/{chunk-FPWT3RH2.js → chunk-4CYTNZG3.js} +14 -14
- package/{chunk-L6EQV5OC.js → chunk-4JOZECCA.js} +3 -3
- package/{chunk-YBNHPX4S.js → chunk-4RJJDA57.js} +1 -1
- package/{chunk-B2EGWZJG.js → chunk-5MPS5OOY.js} +1 -1
- package/{chunk-TRW43TSC.js → chunk-6EQD4AQL.js} +41 -1
- package/{chunk-UUPR3TD7.js → chunk-7RF4O6AT.js} +1 -3
- package/{chunk-ZD2BLOY6.js → chunk-B5MSFO6R.js} +3 -3
- package/{chunk-2GGXHQIW.js → chunk-BLVSFYQ3.js} +4 -2
- package/{chunk-UTIMX333.js → chunk-C3WXTFRP.js} +1 -1
- package/{chunk-ROPSATAB.js → chunk-CON6SI7N.js} +1 -1
- package/{chunk-4Z245KOA.js → chunk-DC3SZCRR.js} +6 -2
- package/{chunk-X5SUT4CN.js → chunk-DD7BZWJ6.js} +6 -6
- package/{chunk-ANJTRG52.js → chunk-DFWLD7WU.js} +1 -38
- package/{chunk-PSJWPSKS.js → chunk-EWO77ZGF.js} +9 -43
- package/{chunk-DW7MGLMG.js → chunk-FUNTOSV3.js} +26 -22
- package/{chunk-MVJVF4ED.js → chunk-FVZVJA54.js} +7 -6
- package/{chunk-ZWG3C7VI.js → chunk-GB552UJS.js} +36 -1
- package/{chunk-EJU23ST5.js → chunk-GJNYJH7O.js} +682 -639
- package/{chunk-6MJNEXUU.js → chunk-HGDKT2D6.js} +4 -0
- package/{chunk-QDA4Y5O6.js → chunk-HXSN43Y5.js} +21 -17
- package/{chunk-7GC3EKUG.js → chunk-IE7G4BF5.js} +3 -3
- package/{chunk-T6CBQ6BN.js → chunk-INFHX73M.js} +1 -1
- package/{chunk-CE7PIHQD.js → chunk-IRTOYSA2.js} +3 -3
- package/{chunk-PEO24UB5.js → chunk-IULXURBL.js} +39 -12
- package/{chunk-WZ6OU4NX.js → chunk-J2ATF74A.js} +2 -2
- package/{chunk-SKPPKHD3.js → chunk-J4S44CSW.js} +2 -2
- package/{chunk-KOB75UNU.js → chunk-JKXXZUO4.js} +18 -2
- package/{chunk-K43ZF2C3.js → chunk-JPPQ3GUO.js} +1 -1
- package/{chunk-RUNKPFM5.js → chunk-JPSTJHGJ.js} +12 -8
- package/{chunk-I2ZMGXXF.js → chunk-KFHREHUQ.js} +1 -1
- package/{chunk-3C2QLERX.js → chunk-KMDDG73K.js} +1 -1
- package/{chunk-TZTWMGE3.js → chunk-M2P3OGXZ.js} +3 -3
- package/{chunk-IPAW7XLD.js → chunk-MFVOJ6KF.js} +2 -2
- package/{chunk-2MTE2PEH.js → chunk-MGSNS22D.js} +1 -1
- package/{chunk-FDT27L7S.js → chunk-MJKKEGF5.js} +8 -6
- package/{chunk-H4KACZMG.js → chunk-MNRZCEYU.js} +263 -128
- package/{chunk-CBHGZRCE.js → chunk-MYOH447Z.js} +1 -1
- package/{chunk-6MPAEODB.js → chunk-NDZOXXIM.js} +17 -3
- package/{chunk-VAZHH6FO.js → chunk-NJTXRGCJ.js} +18 -12
- package/{chunk-G47IPDOK.js → chunk-NUE735UT.js} +1 -1
- package/{chunk-HKT6QXP3.js → chunk-O4KVUI4W.js} +2 -2
- package/{chunk-36OMEXXR.js → chunk-OON4OBWI.js} +1 -1
- package/{chunk-7A4LJCDR.js → chunk-OVQFMCVI.js} +4 -4
- package/{chunk-SUKSWFLP.js → chunk-PIG2IUVZ.js} +1 -1
- package/{chunk-OH2M7WEU.js → chunk-PIYYH2LE.js} +3 -3
- package/{chunk-EM3YOZJ4.js → chunk-PKC7D6SX.js} +3 -3
- package/{chunk-SEJ5OS6F.js → chunk-PXYBUFDB.js} +4 -0
- package/{chunk-TYND6RDQ.js → chunk-QI2WVWXV.js} +73 -2
- package/{chunk-IYBIRCQV.js → chunk-QOYJE6NX.js} +1 -1
- package/{chunk-TNIX77YM.js → chunk-R5GO3YZP.js} +34 -1
- package/{chunk-XFKZ3MCV.js → chunk-R6ABE4UC.js} +223 -67
- package/{chunk-KX6LPG7W.js → chunk-RE5I35J7.js} +2 -2
- package/{chunk-VSOWPETY.js → chunk-RGYDJ352.js} +7 -7
- package/{chunk-D4OWHT5Y.js → chunk-SPKLALBU.js} +2 -2
- package/{chunk-JGRPBIZZ.js → chunk-SQX235S2.js} +1 -1
- package/{chunk-6TF64IF2.js → chunk-U6TTTB6V.js} +16 -2
- package/{chunk-3XZKV7QQ.js → chunk-US6MKPE7.js} +1 -1
- package/{chunk-I2RMFLLH.js → chunk-V7PCFWX3.js} +1 -1
- package/{chunk-HXHSTRGH.js → chunk-VYNMQ6HW.js} +0 -27
- package/{chunk-7BSQK2UC.js → chunk-WRCZXJ4N.js} +2 -2
- package/{chunk-ZEHTARJA.js → chunk-XEF4HW56.js} +42 -96
- package/chunk-Y5GCAMGP.js +9 -0
- package/{chunk-7KYVUFDG.js → chunk-YNCJYU4X.js} +2 -264
- package/{chunk-SCJD2PNK.js → chunk-YPG7TUQD.js} +3 -3
- package/{chunk-TJ2VPCBE.js → chunk-ZIGIN5IX.js} +2 -2
- package/{chunk-YANF2RR4.js → chunk-ZPKUJROL.js} +1 -1
- package/{chunk-HP6O6LTV.js → chunk-ZVQHBIWV.js} +6 -6
- package/{commandRegistry-OUBQIF62.js → commandRegistry-ROBNQFWA.js} +79 -87
- package/{contentThunks-B3FRQGP7.js → contentThunks-EWOJGG2I.js} +17 -16
- package/{createAgentAutomationAction-T2YFJ6MY.js → createAgentAutomationAction-I43ICGXU.js} +17 -16
- package/{createDialogAction-2NFGFBXW.js → createDialogAction-IIAHRXND.js} +18 -17
- package/{createPageAction-LDAVZDN7.js → createPageAction-OVK7PG4L.js} +17 -16
- package/{dbSlice-5QGKMQLO.js → dbSlice-DC2J53RC.js} +6 -6
- package/{deleteFile-EW6QNRRT.js → deleteFile-KYWEMNFX.js} +4 -4
- package/{dialogCommands-ZLBEAQHE.js → dialogCommands-K4OVKDYD.js} +22 -21
- package/{dialogSlice-64S3J6CP.js → dialogSlice-U22CFPRN.js} +16 -15
- package/{docCreateCommands-XOG5BBFQ.js → docCreateCommands-GI377ZFI.js} +17 -17
- package/{docDeleteCommands-NCW3BBRX.js → docDeleteCommands-NBQNTVHB.js} +18 -18
- package/{docReadCommands-OT7X44Y3.js → docReadCommands-6SKEW6AO.js} +17 -17
- package/{docStore-NIP7OO4I.js → docStore-SS2QUBG6.js} +7 -7
- package/{docUpdateCommands-JW7OWW2J.js → docUpdateCommands-NJ7JD6VA.js} +17 -17
- package/{getPricing-TX35D7PI.js → getPricing-XQ3N3RBP.js} +2 -2
- package/{handleSendMessageAction-TOKA7ED7.js → handleSendMessageAction-YVPRHPQR.js} +30 -29
- package/index.js +7 -7
- package/{localRuntimeAdapter-EQM6LFYC.js → localRuntimeAdapter-CC7ZPJRV.js} +54 -52
- package/{machineCommands-WJ7FZ67T.js → machineCommands-XEWIUHTY.js} +58 -56
- package/{machineWsRunDispatch-BQT4DEA2.js → machineWsRunDispatch-JYEWCXGP.js} +53 -53
- package/{memberThunks-KRV5YXOB.js → memberThunks-2DWKLE6W.js} +7 -7
- package/package.json +1 -1
- package/{profileConfig-ZGOFORWV.js → profileConfig-KN3N2BLF.js} +7 -1
- package/{providerPresetApply-CRZFMQD5.js → providerPresetApply-PKUOHQJT.js} +5 -5
- package/{providerRegistry-7IS43D3X.js → providerRegistry-HNQLIFN2.js} +5 -5
- package/{read-5KAZHHDM.js → read-L7QEJETH.js} +4 -4
- package/{readDocTool-5QO34OSX.js → readDocTool-QELXV2GW.js} +1 -1
- package/{readlineWorkspace-JHJSU5DS.js → readlineWorkspace-7MZPTN5U.js} +330 -117
- package/{removeDialogAgentAction-6X63HMI3.js → removeDialogAgentAction-376XSUP2.js} +8 -8
- package/{runAgentClientLoop-5QIGEALK.js → runAgentClientLoop-MLEVVWUH.js} +45 -40
- package/{runtimeDoctorCommands-56NWKNON.js → runtimeDoctorCommands-HEN5IPIH.js} +4 -4
- package/{secretCommands-ZXZRLR3R.js → secretCommands-DNY56NSU.js} +11 -1
- package/{setDialogExtraReferencesAction-4MAYKKYW.js → setDialogExtraReferencesAction-QBDSH63D.js} +7 -7
- package/{setPrimaryDialogAgentAction-EGBAMREH.js → setPrimaryDialogAgentAction-537QFGW3.js} +8 -8
- package/settingThunks-4Z43ZSAT.js +923 -0
- package/{spaceCommands-ZWDPTURU.js → spaceCommands-UM3ZQKJU.js} +17 -17
- package/{streamAgentChatTurn-456DWXNY.js → streamAgentChatTurn-J7HYND6V.js} +48 -48
- package/{switchDialogAgentAction-YBKTD6DO.js → switchDialogAgentAction-CSO6AKRL.js} +6 -6
- package/{tableCommands-U3QDY4L6.js → tableCommands-LBH3QPPO.js} +1 -1
- package/{toolApiClient-7WSJJJBV.js → toolApiClient-HGNO53TC.js} +2 -2
- package/{tools-IWNXKK4Y.js → tools-3CEH74XY.js} +34 -33
- package/{tuiSummaryLlmCaller-KLK6K3Q3.js → tuiSummaryLlmCaller-VSNIIH63.js} +6 -6
- package/{updateCommands-NQXAGFM7.js → updateCommands-LXZLG44Y.js} +2 -2
- package/{updateDialogTitleAction-SX53FZWO.js → updateDialogTitleAction-C557RTYG.js} +17 -16
- package/{workloadLifecycle-36DXRZKU.js → workloadLifecycle-6O6PMISX.js} +2 -2
- package/chunk-W4S6OTSC.js +0 -35
- package/settingThunks-FTDRZNSJ.js +0 -1371
|
@@ -1,1371 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
DEFAULT_USER_PREFERENCE_PROFILE,
|
|
3
|
-
SYSTEM_DEFAULT_AGENT_ID,
|
|
4
|
-
hasOwn,
|
|
5
|
-
normalizeAgentUpdateFieldList,
|
|
6
|
-
normalizeAuthorityHomeServerSetting,
|
|
7
|
-
normalizeDefaultAgentIdSetting,
|
|
8
|
-
normalizeFontPreset,
|
|
9
|
-
normalizePolicyLevelSetting,
|
|
10
|
-
normalizeSystemBuiltinSkills,
|
|
11
|
-
normalizeTonePresetSetting,
|
|
12
|
-
omitKeys,
|
|
13
|
-
resolveDefaultAgentIdSetting
|
|
14
|
-
} from "./chunk-HXHSTRGH.js";
|
|
15
|
-
import {
|
|
16
|
-
patch,
|
|
17
|
-
readAndWait,
|
|
18
|
-
toTimestampMs,
|
|
19
|
-
upsert,
|
|
20
|
-
write
|
|
21
|
-
} from "./chunk-HP6O6LTV.js";
|
|
22
|
-
import "./chunk-3PVYUPXK.js";
|
|
23
|
-
import "./chunk-6MPAEODB.js";
|
|
24
|
-
import "./chunk-D4OWHT5Y.js";
|
|
25
|
-
import "./chunk-Z6KQDSZW.js";
|
|
26
|
-
import "./chunk-UEILX4EV.js";
|
|
27
|
-
import {
|
|
28
|
-
createAction,
|
|
29
|
-
createAsyncThunk
|
|
30
|
-
} from "./chunk-7BSQK2UC.js";
|
|
31
|
-
import "./chunk-6Q7UTJKR.js";
|
|
32
|
-
import "./chunk-QQ56R7KS.js";
|
|
33
|
-
import "./chunk-OW765XBU.js";
|
|
34
|
-
import {
|
|
35
|
-
selectIdentityUserId
|
|
36
|
-
} from "./chunk-SEJ5OS6F.js";
|
|
37
|
-
import "./chunk-D2MDMY2M.js";
|
|
38
|
-
import {
|
|
39
|
-
DEFAULT_SYSTEM_AGENT_CAPABILITIES
|
|
40
|
-
} from "./chunk-EUGTFFO6.js";
|
|
41
|
-
import "./chunk-Y6ORVLSS.js";
|
|
42
|
-
import {
|
|
43
|
-
asRecordOrEmpty
|
|
44
|
-
} from "./chunk-KX6YBIHG.js";
|
|
45
|
-
import "./chunk-7DPNBQSV.js";
|
|
46
|
-
import "./chunk-LOEO7LRC.js";
|
|
47
|
-
import "./chunk-M2EJHDJP.js";
|
|
48
|
-
import {
|
|
49
|
-
createUserKey,
|
|
50
|
-
createUserPreferenceKey,
|
|
51
|
-
ulid
|
|
52
|
-
} from "./chunk-5EMSBTQ6.js";
|
|
53
|
-
import "./chunk-I42VC5KR.js";
|
|
54
|
-
import "./chunk-U6VC4MU4.js";
|
|
55
|
-
import "./chunk-WWC7I6TA.js";
|
|
56
|
-
import "./chunk-KUG52IAP.js";
|
|
57
|
-
import "./chunk-3EUW3WEO.js";
|
|
58
|
-
import "./chunk-LCBAMY2M.js";
|
|
59
|
-
import "./chunk-4SN6J65J.js";
|
|
60
|
-
import "./chunk-CF7PE763.js";
|
|
61
|
-
import "./chunk-G3SUCT4W.js";
|
|
62
|
-
import "./chunk-QSJ3HFEF.js";
|
|
63
|
-
import "./chunk-4VNS5WPM.js";
|
|
64
|
-
|
|
65
|
-
// packages/database/userPreferenceRegister.ts
|
|
66
|
-
var USER_PREFERENCE_NAMES = {
|
|
67
|
-
AUTHORITY_HOME: "authority_home",
|
|
68
|
-
DEFAULT_AGENT: "agent_default"
|
|
69
|
-
};
|
|
70
|
-
var nextRegisterUpdatedAt = (previousRecord) => {
|
|
71
|
-
const previousTimestamp = Math.max(
|
|
72
|
-
toTimestampMs(previousRecord?.updatedAt),
|
|
73
|
-
toTimestampMs(previousRecord?.createdAt)
|
|
74
|
-
);
|
|
75
|
-
return Math.max(Date.now(), previousTimestamp + 1);
|
|
76
|
-
};
|
|
77
|
-
var buildUserPreferenceRegisterRecord = ({
|
|
78
|
-
userId,
|
|
79
|
-
preferenceName,
|
|
80
|
-
value,
|
|
81
|
-
previousRecord
|
|
82
|
-
}) => {
|
|
83
|
-
const updatedAt = nextRegisterUpdatedAt(previousRecord ?? void 0);
|
|
84
|
-
return {
|
|
85
|
-
type: "setting" /* SETTING */,
|
|
86
|
-
registerType: "user_preference",
|
|
87
|
-
preferenceName,
|
|
88
|
-
schemaVersion: 1,
|
|
89
|
-
userId,
|
|
90
|
-
value,
|
|
91
|
-
opId: ulid(),
|
|
92
|
-
createdAt: toTimestampMs(previousRecord?.createdAt) || updatedAt,
|
|
93
|
-
updatedAt
|
|
94
|
-
};
|
|
95
|
-
};
|
|
96
|
-
var readUserPreferenceRegisterValue = (record, preferenceName) => {
|
|
97
|
-
if (!record || typeof record !== "object") return void 0;
|
|
98
|
-
if (record.registerType !== "user_preference") return void 0;
|
|
99
|
-
if (record.preferenceName !== preferenceName) return void 0;
|
|
100
|
-
if (!("value" in record)) return void 0;
|
|
101
|
-
return record.value;
|
|
102
|
-
};
|
|
103
|
-
var buildDefaultAgentPreferenceRegisterRecord = ({
|
|
104
|
-
userId,
|
|
105
|
-
defaultAgentId,
|
|
106
|
-
previousRecord
|
|
107
|
-
}) => buildUserPreferenceRegisterRecord({
|
|
108
|
-
userId,
|
|
109
|
-
preferenceName: USER_PREFERENCE_NAMES.DEFAULT_AGENT,
|
|
110
|
-
value: defaultAgentId,
|
|
111
|
-
previousRecord
|
|
112
|
-
});
|
|
113
|
-
|
|
114
|
-
// packages/app/theme/colors.ts
|
|
115
|
-
var semantic = {
|
|
116
|
-
light: { success: "#16A34A", warning: "#D97706", info: "#2563EB", error: "#DC2626" },
|
|
117
|
-
dark: { success: "#4ADE80", warning: "#FCD34D", info: "#60A5FA", error: "#F87171" }
|
|
118
|
-
};
|
|
119
|
-
var mkLight = (bg, bg2, bg3, textPrimary, textSec, textTer, border, borderL) => ({
|
|
120
|
-
background: bg,
|
|
121
|
-
backgroundSecondary: bg2,
|
|
122
|
-
backgroundTertiary: bg3,
|
|
123
|
-
backgroundGhost: bg + "F0",
|
|
124
|
-
backgroundHover: bg3,
|
|
125
|
-
backgroundSelected: border,
|
|
126
|
-
backgroundElevated: bg2,
|
|
127
|
-
text: textPrimary,
|
|
128
|
-
textSecondary: textSec,
|
|
129
|
-
textTertiary: textTer,
|
|
130
|
-
textQuaternary: textTer + "99",
|
|
131
|
-
textLight: border,
|
|
132
|
-
placeholder: textTer,
|
|
133
|
-
border,
|
|
134
|
-
borderLight: borderL,
|
|
135
|
-
borderHover: textTer,
|
|
136
|
-
messageBackground: bg2,
|
|
137
|
-
codeBackground: bg3,
|
|
138
|
-
shadowLight: `rgba(0,0,0,0.04)`,
|
|
139
|
-
shadowMedium: `rgba(0,0,0,0.08)`,
|
|
140
|
-
shadowHeavy: `rgba(0,0,0,0.14)`,
|
|
141
|
-
textOnPrimary: "#FFFFFF"
|
|
142
|
-
});
|
|
143
|
-
var mkDark = (bg, bg2, bg3, textPrimary, textSec, textTer, border, borderL, shadowBase = "0,0,0") => ({
|
|
144
|
-
background: bg,
|
|
145
|
-
backgroundSecondary: bg2,
|
|
146
|
-
backgroundTertiary: bg3,
|
|
147
|
-
backgroundGhost: bg2 + "F0",
|
|
148
|
-
backgroundHover: bg3,
|
|
149
|
-
backgroundSelected: border,
|
|
150
|
-
backgroundElevated: bg3,
|
|
151
|
-
text: textPrimary,
|
|
152
|
-
textSecondary: textSec,
|
|
153
|
-
textTertiary: textTer,
|
|
154
|
-
textQuaternary: textTer + "88",
|
|
155
|
-
textLight: border,
|
|
156
|
-
placeholder: textTer,
|
|
157
|
-
border,
|
|
158
|
-
borderLight: borderL,
|
|
159
|
-
borderHover: textTer,
|
|
160
|
-
messageBackground: bg2,
|
|
161
|
-
codeBackground: bg2,
|
|
162
|
-
shadowLight: `rgba(${shadowBase},0.18)`,
|
|
163
|
-
shadowMedium: `rgba(${shadowBase},0.30)`,
|
|
164
|
-
shadowHeavy: `rgba(${shadowBase},0.44)`,
|
|
165
|
-
textOnPrimary: "#FFFFFF"
|
|
166
|
-
});
|
|
167
|
-
var neutral = {
|
|
168
|
-
light: {
|
|
169
|
-
primary: "#71717A",
|
|
170
|
-
primaryLight: "#A1A1AA",
|
|
171
|
-
primaryDark: "#52525B",
|
|
172
|
-
primaryGradient: "linear-gradient(135deg, #71717A, #A1A1AA)",
|
|
173
|
-
primaryGhost: "rgba(113,113,122,0.08)",
|
|
174
|
-
primaryHover: "rgba(113,113,122,0.10)",
|
|
175
|
-
borderAccent: "#D4D4D8",
|
|
176
|
-
...semantic.light,
|
|
177
|
-
...mkLight("#FFFFFF", "#F4F4F5", "#E4E4E7", "#18181B", "#52525B", "#71717A", "#E4E4E7", "#F4F4F5")
|
|
178
|
-
},
|
|
179
|
-
dark: {
|
|
180
|
-
primary: "#A1A1AA",
|
|
181
|
-
primaryLight: "#D4D4D8",
|
|
182
|
-
primaryDark: "#71717A",
|
|
183
|
-
primaryGradient: "linear-gradient(135deg, #A1A1AA, #D4D4D8)",
|
|
184
|
-
primaryGhost: "rgba(161,161,170,0.10)",
|
|
185
|
-
primaryHover: "rgba(161,161,170,0.12)",
|
|
186
|
-
borderAccent: "#52525B",
|
|
187
|
-
...semantic.dark,
|
|
188
|
-
...mkDark("#18181B", "#27272A", "#3F3F46", "#FAFAFA", "#D4D4D8", "#A1A1AA", "#3F3F46", "#27272A", "24,24,27"),
|
|
189
|
-
textOnPrimary: "#18181B"
|
|
190
|
-
}
|
|
191
|
-
};
|
|
192
|
-
var ocean = {
|
|
193
|
-
light: {
|
|
194
|
-
primary: "#006EDC",
|
|
195
|
-
primaryLight: "#0874DC",
|
|
196
|
-
primaryDark: "#0052AD",
|
|
197
|
-
primaryGradient: "linear-gradient(135deg, #006EDC, #0874DC)",
|
|
198
|
-
primaryGhost: "rgba(0,110,220,0.08)",
|
|
199
|
-
primaryHover: "rgba(0,110,220,0.10)",
|
|
200
|
-
borderAccent: "#73BEFF",
|
|
201
|
-
...semantic.light,
|
|
202
|
-
...mkLight("#FFFFFF", "#F6F8FA", "#EBF0F4", "#1C2128", "#57606A", "#6E7781", "#D0D7DE", "#F6F8FA")
|
|
203
|
-
},
|
|
204
|
-
dark: {
|
|
205
|
-
primary: "#58A6FF",
|
|
206
|
-
primaryLight: "#79C0FF",
|
|
207
|
-
primaryDark: "#388BFD",
|
|
208
|
-
primaryGradient: "linear-gradient(135deg, #58A6FF, #79C0FF)",
|
|
209
|
-
primaryGhost: "rgba(88,166,255,0.10)",
|
|
210
|
-
primaryHover: "rgba(88,166,255,0.12)",
|
|
211
|
-
borderAccent: "#1F6FEB",
|
|
212
|
-
...semantic.dark,
|
|
213
|
-
...mkDark("#0D1117", "#161B22", "#21262D", "#E6EDF3", "#8B949E", "#6E7681", "#30363D", "#161B22", "13,17,23"),
|
|
214
|
-
textHeading: "#E6EDF3",
|
|
215
|
-
textOnPrimary: "#0D1117"
|
|
216
|
-
}
|
|
217
|
-
};
|
|
218
|
-
var iris = {
|
|
219
|
-
meta: { radiusBoost: -2, motionEase: "cubic-bezier(0.16, 1, 0.3, 1)" },
|
|
220
|
-
light: {
|
|
221
|
-
primary: "#5E6AD2",
|
|
222
|
-
primaryLight: "#8B9CF4",
|
|
223
|
-
primaryDark: "#4A55C0",
|
|
224
|
-
primaryGradient: "linear-gradient(135deg, #5E6AD2, #8B9CF4)",
|
|
225
|
-
primaryGhost: "rgba(94, 106, 210, 0.07)",
|
|
226
|
-
primaryHover: "rgba(94, 106, 210, 0.10)",
|
|
227
|
-
borderAccent: "#ADB5F7",
|
|
228
|
-
success: "#16A34A",
|
|
229
|
-
warning: "#D97706",
|
|
230
|
-
info: "#5E6AD2",
|
|
231
|
-
error: "#E5484D",
|
|
232
|
-
background: "#FBFBFD",
|
|
233
|
-
backgroundSecondary: "#F4F4F9",
|
|
234
|
-
backgroundTertiary: "#ECECF3",
|
|
235
|
-
backgroundGhost: "rgba(251, 251, 253, 0.94)",
|
|
236
|
-
backgroundHover: "#E4E4ED",
|
|
237
|
-
backgroundSelected: "#D8D8E3",
|
|
238
|
-
backgroundElevated: "#F7F7FB",
|
|
239
|
-
text: "#1A1730",
|
|
240
|
-
textSecondary: "#4E4B6B",
|
|
241
|
-
textTertiary: "#6E6A8A",
|
|
242
|
-
textQuaternary: "#9E9AB5",
|
|
243
|
-
textLight: "#C4C2D4",
|
|
244
|
-
placeholder: "#9E9AB5",
|
|
245
|
-
border: "#E4E4ED",
|
|
246
|
-
borderHover: "#CFCFD9",
|
|
247
|
-
borderLight: "#F2F2F7",
|
|
248
|
-
messageBackground: "#FFFFFF",
|
|
249
|
-
codeBackground: "#F2F2F7",
|
|
250
|
-
shadowLight: "rgba(26, 23, 48, 0.04)",
|
|
251
|
-
shadowMedium: "rgba(26, 23, 48, 0.08)",
|
|
252
|
-
shadowHeavy: "rgba(26, 23, 48, 0.13)",
|
|
253
|
-
textHeading: "#1A1730",
|
|
254
|
-
textOnPrimary: "#FFFFFF"
|
|
255
|
-
},
|
|
256
|
-
dark: {
|
|
257
|
-
primary: "#8B9CF4",
|
|
258
|
-
primaryLight: "#ADB5F7",
|
|
259
|
-
primaryDark: "#5E6AD2",
|
|
260
|
-
primaryGradient: "linear-gradient(135deg, #8B9CF4, #ADB5F7)",
|
|
261
|
-
primaryGhost: "rgba(139, 156, 244, 0.10)",
|
|
262
|
-
primaryHover: "rgba(139, 156, 244, 0.14)",
|
|
263
|
-
borderAccent: "#4A55C0",
|
|
264
|
-
success: "#26BD6C",
|
|
265
|
-
warning: "#F5A623",
|
|
266
|
-
info: "#8B9CF4",
|
|
267
|
-
error: "#EC5B6E",
|
|
268
|
-
background: "#0F0E17",
|
|
269
|
-
backgroundSecondary: "#16141F",
|
|
270
|
-
backgroundTertiary: "#1E1B2E",
|
|
271
|
-
backgroundGhost: "rgba(15, 14, 23, 0.94)",
|
|
272
|
-
backgroundHover: "#28253A",
|
|
273
|
-
backgroundSelected: "#36334D",
|
|
274
|
-
backgroundElevated: "#1E1B2E",
|
|
275
|
-
text: "#E8E5F7",
|
|
276
|
-
textSecondary: "#C0BDD8",
|
|
277
|
-
textTertiary: "#938AA9",
|
|
278
|
-
textQuaternary: "#5A5772",
|
|
279
|
-
textLight: "#36334D",
|
|
280
|
-
placeholder: "#5A5772",
|
|
281
|
-
border: "#272435",
|
|
282
|
-
borderHover: "#3A3650",
|
|
283
|
-
borderLight: "#16141F",
|
|
284
|
-
messageBackground: "#16141F",
|
|
285
|
-
codeBackground: "#0A0911",
|
|
286
|
-
shadowLight: "rgba(10, 9, 17, 0.20)",
|
|
287
|
-
shadowMedium: "rgba(10, 9, 17, 0.32)",
|
|
288
|
-
shadowHeavy: "rgba(10, 9, 17, 0.44)",
|
|
289
|
-
textHeading: "#E8E5F7",
|
|
290
|
-
textOnPrimary: "#0F0E17"
|
|
291
|
-
}
|
|
292
|
-
};
|
|
293
|
-
var forest = {
|
|
294
|
-
light: {
|
|
295
|
-
primary: "#059669",
|
|
296
|
-
primaryLight: "#10B981",
|
|
297
|
-
primaryDark: "#047857",
|
|
298
|
-
primaryGradient: "linear-gradient(135deg, #059669, #10B981)",
|
|
299
|
-
primaryGhost: "rgba(5,150,105,0.08)",
|
|
300
|
-
primaryHover: "rgba(5,150,105,0.10)",
|
|
301
|
-
borderAccent: "#6EE7B7",
|
|
302
|
-
...semantic.light,
|
|
303
|
-
...mkLight("#F6FAF6", "#EDF5EC", "#DDF0DB", "#1A2E18", "#3D6B3A", "#5C8A58", "#C3E0C0", "#EDF5EC")
|
|
304
|
-
},
|
|
305
|
-
dark: {
|
|
306
|
-
primary: "#34D399",
|
|
307
|
-
primaryLight: "#6EE7B7",
|
|
308
|
-
primaryDark: "#10B981",
|
|
309
|
-
primaryGradient: "linear-gradient(135deg, #34D399, #6EE7B7)",
|
|
310
|
-
primaryGhost: "rgba(52,211,153,0.10)",
|
|
311
|
-
primaryHover: "rgba(52,211,153,0.12)",
|
|
312
|
-
borderAccent: "#059669",
|
|
313
|
-
...semantic.dark,
|
|
314
|
-
...mkDark("#0C1209", "#121A0E", "#1A2416", "#E4F0E2", "#87A882", "#5E7A5A", "#1A2416", "#121A0E", "12,18,9"),
|
|
315
|
-
success: "#4ADE80",
|
|
316
|
-
textHeading: "#C8EEC4",
|
|
317
|
-
textOnPrimary: "#0C1209"
|
|
318
|
-
}
|
|
319
|
-
};
|
|
320
|
-
var trail = {
|
|
321
|
-
meta: { radiusBoost: 1, motionEase: "cubic-bezier(0.22, 1, 0.36, 1)" },
|
|
322
|
-
light: {
|
|
323
|
-
primary: "#2E7DB5",
|
|
324
|
-
primaryLight: "#6BB5E0",
|
|
325
|
-
primaryDark: "#1F5F94",
|
|
326
|
-
primaryGradient: "linear-gradient(135deg, #2E7DB5, #6BB5E0)",
|
|
327
|
-
primaryGhost: "rgba(46, 125, 181, 0.08)",
|
|
328
|
-
primaryHover: "rgba(46, 125, 181, 0.11)",
|
|
329
|
-
borderAccent: "#9EC9E8",
|
|
330
|
-
success: "#3F8F5C",
|
|
331
|
-
warning: "#D4A054",
|
|
332
|
-
info: "#4A9FD4",
|
|
333
|
-
error: "#C45C4A",
|
|
334
|
-
accentTrail: "#C9924E",
|
|
335
|
-
accentMoss: "#7A9B6E",
|
|
336
|
-
accentTrailGhost: "rgba(201, 146, 78, 0.10)",
|
|
337
|
-
accentMossGhost: "rgba(122, 155, 110, 0.10)",
|
|
338
|
-
background: "#FAFBFC",
|
|
339
|
-
backgroundSecondary: "#F4F7FA",
|
|
340
|
-
backgroundTertiary: "#E8EDF2",
|
|
341
|
-
backgroundGhost: "rgba(250, 251, 252, 0.94)",
|
|
342
|
-
backgroundHover: "#DCE4EC",
|
|
343
|
-
backgroundSelected: "#C8D4E0",
|
|
344
|
-
text: "#1C2430",
|
|
345
|
-
textSecondary: "#5C6775",
|
|
346
|
-
textTertiary: "#7A8796",
|
|
347
|
-
textQuaternary: "#A3B0BD",
|
|
348
|
-
textLight: "#C5CED8",
|
|
349
|
-
placeholder: "#A3B0BD",
|
|
350
|
-
border: "#D8E0E8",
|
|
351
|
-
borderHover: "#B8C5D4",
|
|
352
|
-
borderLight: "#EEF2F6",
|
|
353
|
-
messageBackground: "#FFFFFF",
|
|
354
|
-
codeBackground: "#EEF2F6",
|
|
355
|
-
shadowLight: "rgba(28, 36, 48, 0.05)",
|
|
356
|
-
shadowMedium: "rgba(28, 36, 48, 0.09)",
|
|
357
|
-
shadowHeavy: "rgba(28, 36, 48, 0.14)",
|
|
358
|
-
textHeading: "#1C2430",
|
|
359
|
-
textOnPrimary: "#FFFFFF"
|
|
360
|
-
},
|
|
361
|
-
dark: {
|
|
362
|
-
primary: "#5BA3D9",
|
|
363
|
-
primaryLight: "#7FBEE8",
|
|
364
|
-
primaryDark: "#3D85BF",
|
|
365
|
-
primaryGradient: "linear-gradient(135deg, #5BA3D9, #7FBEE8)",
|
|
366
|
-
primaryGhost: "rgba(91, 163, 217, 0.12)",
|
|
367
|
-
primaryHover: "rgba(91, 163, 217, 0.16)",
|
|
368
|
-
borderAccent: "#2F5F78",
|
|
369
|
-
success: "#5CB87A",
|
|
370
|
-
warning: "#E6B35C",
|
|
371
|
-
info: "#6BB8E8",
|
|
372
|
-
error: "#E07060",
|
|
373
|
-
accentTrail: "#D4A96A",
|
|
374
|
-
accentMoss: "#8FB896",
|
|
375
|
-
accentTrailGhost: "rgba(212, 169, 106, 0.12)",
|
|
376
|
-
accentMossGhost: "rgba(143, 184, 150, 0.12)",
|
|
377
|
-
background: "#0B1218",
|
|
378
|
-
backgroundSecondary: "#111A22",
|
|
379
|
-
backgroundTertiary: "#1A2630",
|
|
380
|
-
backgroundGhost: "rgba(11, 18, 24, 0.94)",
|
|
381
|
-
backgroundHover: "#243240",
|
|
382
|
-
backgroundSelected: "#2E4050",
|
|
383
|
-
text: "#EEF3F8",
|
|
384
|
-
textSecondary: "#A8B8C8",
|
|
385
|
-
textTertiary: "#7A8FA3",
|
|
386
|
-
textQuaternary: "#5A6F82",
|
|
387
|
-
textLight: "#3A4F62",
|
|
388
|
-
placeholder: "#5A6F82",
|
|
389
|
-
border: "#243240",
|
|
390
|
-
borderHover: "#3A5060",
|
|
391
|
-
borderLight: "#111A22",
|
|
392
|
-
messageBackground: "#111A22",
|
|
393
|
-
codeBackground: "#070D12",
|
|
394
|
-
shadowLight: "rgba(4, 8, 12, 0.22)",
|
|
395
|
-
shadowMedium: "rgba(4, 8, 12, 0.34)",
|
|
396
|
-
shadowHeavy: "rgba(4, 8, 12, 0.46)",
|
|
397
|
-
textHeading: "#E8F4FC",
|
|
398
|
-
textOnPrimary: "#0B1218"
|
|
399
|
-
}
|
|
400
|
-
};
|
|
401
|
-
var wave = {
|
|
402
|
-
light: {
|
|
403
|
-
// Kanagawa Lotus — lotusBlue3 accent(日式水墨蓝,与 Wave dark 气质呼应)
|
|
404
|
-
primary: "#4D699B",
|
|
405
|
-
primaryLight: "#6680B3",
|
|
406
|
-
primaryDark: "#3C5585",
|
|
407
|
-
primaryGradient: "linear-gradient(135deg, #4D699B, #6680B3)",
|
|
408
|
-
primaryGhost: "rgba(77, 105, 155, 0.08)",
|
|
409
|
-
primaryHover: "rgba(77, 105, 155, 0.10)",
|
|
410
|
-
borderAccent: "#8CA6CF",
|
|
411
|
-
success: "#6F894E",
|
|
412
|
-
warning: "#836F4A",
|
|
413
|
-
info: "#4D699B",
|
|
414
|
-
error: "#C84053",
|
|
415
|
-
// Surface overrides — Kanagawa Lotus palette
|
|
416
|
-
background: "#F5F4EF",
|
|
417
|
-
backgroundSecondary: "#FFFFFF",
|
|
418
|
-
backgroundTertiary: "#ECEAE3",
|
|
419
|
-
backgroundGhost: "rgba(245, 244, 239, 0.94)",
|
|
420
|
-
backgroundHover: "#E8E6DE",
|
|
421
|
-
backgroundSelected: "#DEDAD0",
|
|
422
|
-
text: "#1A1A22",
|
|
423
|
-
textSecondary: "#3D3B4F",
|
|
424
|
-
textTertiary: "#716E61",
|
|
425
|
-
textQuaternary: "#9E9B8E",
|
|
426
|
-
textLight: "#C3BBAA",
|
|
427
|
-
placeholder: "#9E9B8E",
|
|
428
|
-
border: "#D8D5C8",
|
|
429
|
-
borderHover: "#C4C0B2",
|
|
430
|
-
borderLight: "#ECEAE3",
|
|
431
|
-
messageBackground: "#FFFFFF",
|
|
432
|
-
codeBackground: "#ECEAE3",
|
|
433
|
-
shadowLight: "rgba(26, 26, 34, 0.05)",
|
|
434
|
-
shadowMedium: "rgba(26, 26, 34, 0.09)",
|
|
435
|
-
shadowHeavy: "rgba(26, 26, 34, 0.14)",
|
|
436
|
-
textOnPrimary: "#FFFFFF"
|
|
437
|
-
},
|
|
438
|
-
dark: {
|
|
439
|
-
// Kanagawa Wave — crystalBlue accent(#7E9CD8 是函数名颜色,最标志性的 Kanagawa 蓝)
|
|
440
|
-
primary: "#7E9CD8",
|
|
441
|
-
primaryLight: "#9DB4E8",
|
|
442
|
-
primaryDark: "#6688BC",
|
|
443
|
-
primaryGradient: "linear-gradient(135deg, #7E9CD8, #9DB4E8)",
|
|
444
|
-
primaryGhost: "rgba(126, 156, 216, 0.10)",
|
|
445
|
-
primaryHover: "rgba(126, 156, 216, 0.16)",
|
|
446
|
-
borderAccent: "#2D4F67",
|
|
447
|
-
success: "#98BB6C",
|
|
448
|
-
// bamboo green
|
|
449
|
-
warning: "#E6C384",
|
|
450
|
-
// autumn gold
|
|
451
|
-
info: "#7FB4CA",
|
|
452
|
-
// waveBlue
|
|
453
|
-
error: "#E82424",
|
|
454
|
-
// Surface overrides — Kanagawa Wave palette
|
|
455
|
-
background: "#1F1F28",
|
|
456
|
-
// surumiBlack — 墨色
|
|
457
|
-
backgroundSecondary: "#16161D",
|
|
458
|
-
// deeper ink
|
|
459
|
-
backgroundTertiary: "#2A2A37",
|
|
460
|
-
// waveBlue-dark
|
|
461
|
-
backgroundGhost: "rgba(22, 22, 29, 0.94)",
|
|
462
|
-
backgroundHover: "#363646",
|
|
463
|
-
backgroundSelected: "#54546D",
|
|
464
|
-
text: "#DCD7BA",
|
|
465
|
-
// fujiWhite — 宣纸暖白,365天的护眼体验
|
|
466
|
-
textSecondary: "#C8C093",
|
|
467
|
-
// oldWhite — 次级暖白
|
|
468
|
-
textTertiary: "#938AA9",
|
|
469
|
-
// springViolet2 — 注释紫,Kanagawa 气质核心
|
|
470
|
-
textQuaternary: "#727169",
|
|
471
|
-
// fujiGray
|
|
472
|
-
textLight: "#54546D",
|
|
473
|
-
placeholder: "#727169",
|
|
474
|
-
border: "#2A2A37",
|
|
475
|
-
borderHover: "#54546D",
|
|
476
|
-
borderLight: "#1F1F28",
|
|
477
|
-
messageBackground: "#16161D",
|
|
478
|
-
codeBackground: "#0D0C0C",
|
|
479
|
-
// 比背景更深的墨黑
|
|
480
|
-
shadowLight: "rgba(13, 12, 12, 0.18)",
|
|
481
|
-
shadowMedium: "rgba(13, 12, 12, 0.28)",
|
|
482
|
-
shadowHeavy: "rgba(13, 12, 12, 0.38)",
|
|
483
|
-
textHeading: "#DCD7BA",
|
|
484
|
-
// fujiWhite — 暖色标题
|
|
485
|
-
textOnPrimary: "#1F1F28"
|
|
486
|
-
}
|
|
487
|
-
};
|
|
488
|
-
var rose = {
|
|
489
|
-
light: {
|
|
490
|
-
// Rosé Pine Dawn
|
|
491
|
-
primary: "#D14D72",
|
|
492
|
-
primaryLight: "#E87C9D",
|
|
493
|
-
primaryDark: "#B03060",
|
|
494
|
-
primaryGradient: "linear-gradient(135deg, #D14D72, #E87C9D)",
|
|
495
|
-
primaryGhost: "rgba(209, 77, 114, 0.08)",
|
|
496
|
-
primaryHover: "rgba(209, 77, 114, 0.10)",
|
|
497
|
-
borderAccent: "#F2BFCC",
|
|
498
|
-
success: "#56949F",
|
|
499
|
-
warning: "#EA9D34",
|
|
500
|
-
info: "#286983",
|
|
501
|
-
error: "#B4637A",
|
|
502
|
-
background: "#FAF4ED",
|
|
503
|
-
backgroundSecondary: "#FFFAF3",
|
|
504
|
-
backgroundTertiary: "#F2E9E1",
|
|
505
|
-
backgroundGhost: "rgba(250, 244, 237, 0.94)",
|
|
506
|
-
backgroundHover: "#EDE3DA",
|
|
507
|
-
backgroundSelected: "#DFD3C7",
|
|
508
|
-
text: "#575279",
|
|
509
|
-
textSecondary: "#6E6A86",
|
|
510
|
-
textTertiary: "#797593",
|
|
511
|
-
textQuaternary: "#9893A5",
|
|
512
|
-
textLight: "#CECACD",
|
|
513
|
-
placeholder: "#9893A5",
|
|
514
|
-
border: "#DFDAD9",
|
|
515
|
-
borderHover: "#C5BFB3",
|
|
516
|
-
borderLight: "#F2E9E1",
|
|
517
|
-
messageBackground: "#FFFAF3",
|
|
518
|
-
codeBackground: "#F2E9E1",
|
|
519
|
-
shadowLight: "rgba(87, 82, 121, 0.05)",
|
|
520
|
-
shadowMedium: "rgba(87, 82, 121, 0.09)",
|
|
521
|
-
shadowHeavy: "rgba(87, 82, 121, 0.14)",
|
|
522
|
-
textOnPrimary: "#FFFFFF"
|
|
523
|
-
},
|
|
524
|
-
dark: {
|
|
525
|
-
// Rosé Pine main
|
|
526
|
-
primary: "#EB6F92",
|
|
527
|
-
primaryLight: "#F0A8BF",
|
|
528
|
-
primaryDark: "#C4637A",
|
|
529
|
-
primaryGradient: "linear-gradient(135deg, #EB6F92, #F0A8BF)",
|
|
530
|
-
primaryGhost: "rgba(235, 111, 146, 0.10)",
|
|
531
|
-
primaryHover: "rgba(235, 111, 146, 0.14)",
|
|
532
|
-
borderAccent: "#6E3050",
|
|
533
|
-
success: "#9CCFD8",
|
|
534
|
-
warning: "#F6C177",
|
|
535
|
-
info: "#C4A7E7",
|
|
536
|
-
error: "#EB6F92",
|
|
537
|
-
background: "#191724",
|
|
538
|
-
backgroundSecondary: "#1F1D2E",
|
|
539
|
-
backgroundTertiary: "#26233A",
|
|
540
|
-
backgroundGhost: "rgba(25, 23, 36, 0.94)",
|
|
541
|
-
backgroundHover: "#312E45",
|
|
542
|
-
backgroundSelected: "#403D52",
|
|
543
|
-
text: "#E0DEF4",
|
|
544
|
-
textSecondary: "#C4C1D9",
|
|
545
|
-
textTertiary: "#908CAA",
|
|
546
|
-
textQuaternary: "#6E6A86",
|
|
547
|
-
textLight: "#403D52",
|
|
548
|
-
placeholder: "#6E6A86",
|
|
549
|
-
border: "#26233A",
|
|
550
|
-
borderHover: "#6E6A86",
|
|
551
|
-
borderLight: "#1F1D2E",
|
|
552
|
-
messageBackground: "#1F1D2E",
|
|
553
|
-
codeBackground: "#12101E",
|
|
554
|
-
shadowLight: "rgba(12, 10, 20, 0.20)",
|
|
555
|
-
shadowMedium: "rgba(12, 10, 20, 0.30)",
|
|
556
|
-
shadowHeavy: "rgba(12, 10, 20, 0.44)",
|
|
557
|
-
textHeading: "#E0DEF4",
|
|
558
|
-
textOnPrimary: "#191724"
|
|
559
|
-
}
|
|
560
|
-
};
|
|
561
|
-
var mono = {
|
|
562
|
-
meta: { radiusBoost: 0, motionEase: "cubic-bezier(0.4, 0, 0.2, 1)" },
|
|
563
|
-
light: {
|
|
564
|
-
// open-props: --orange-6 = #FF9500, --orange-3 = #FFD599, --orange-7 = #E68600
|
|
565
|
-
primary: "#FF9500",
|
|
566
|
-
primaryLight: "#FFD599",
|
|
567
|
-
primaryDark: "#E68600",
|
|
568
|
-
primaryGradient: "linear-gradient(135deg, #FF9500, #FFD599)",
|
|
569
|
-
primaryGhost: "rgba(255,149,0,0.08)",
|
|
570
|
-
primaryHover: "rgba(255,149,0,0.12)",
|
|
571
|
-
borderAccent: "#FFBF66",
|
|
572
|
-
success: "#16A34A",
|
|
573
|
-
warning: "#D97706",
|
|
574
|
-
info: "#2563EB",
|
|
575
|
-
error: "#DC2626",
|
|
576
|
-
// 采用 open-props 默认的冷系 slate-gray 调色(H=210, S=10%),完美消除泥土发灰感
|
|
577
|
-
background: "#FCFCFD",
|
|
578
|
-
// gray-0
|
|
579
|
-
backgroundSecondary: "#F9FAFA",
|
|
580
|
-
// gray-1
|
|
581
|
-
backgroundTertiary: "#F1F2F4",
|
|
582
|
-
// gray-2
|
|
583
|
-
backgroundGhost: "rgba(252,252,253,0.94)",
|
|
584
|
-
backgroundHover: "#EBEDEF",
|
|
585
|
-
// gray-3
|
|
586
|
-
backgroundSelected: "#C1C7CD",
|
|
587
|
-
// gray-6
|
|
588
|
-
backgroundElevated: "#FFFFFF",
|
|
589
|
-
text: "#292E32",
|
|
590
|
-
// gray-12
|
|
591
|
-
textSecondary: "#57616B",
|
|
592
|
-
// gray-10
|
|
593
|
-
textTertiary: "#7B8793",
|
|
594
|
-
// gray-8
|
|
595
|
-
textQuaternary: "#9DA6AF",
|
|
596
|
-
// gray-7
|
|
597
|
-
textLight: "#C1C7CD",
|
|
598
|
-
placeholder: "#9DA6AF",
|
|
599
|
-
border: "#E6E8EA",
|
|
600
|
-
// gray-4
|
|
601
|
-
borderHover: "#C1C7CD",
|
|
602
|
-
borderLight: "#F1F2F4",
|
|
603
|
-
messageBackground: "#FFFFFF",
|
|
604
|
-
codeBackground: "#F1F2F4",
|
|
605
|
-
// 基于 slate-gray 调色 #292E32 (RGB 41, 46, 50) 的有机冷调阴影
|
|
606
|
-
shadowLight: "rgba(41, 46, 50, 0.05)",
|
|
607
|
-
shadowMedium: "rgba(41, 46, 50, 0.09)",
|
|
608
|
-
shadowHeavy: "rgba(41, 46, 50, 0.15)",
|
|
609
|
-
textHeading: "#292E32",
|
|
610
|
-
textOnPrimary: "#FFFFFF"
|
|
611
|
-
},
|
|
612
|
-
// dim 是 mono 的"主"暗态:用 open-props 经典 slate-gray 暗色(gray-12..9)做画布,
|
|
613
|
-
// 完美对应参考图中的深石墨色/冷灰色调,对比极强、层次细腻。
|
|
614
|
-
dark: {
|
|
615
|
-
// open-props: --orange-3 = #FFD599, --orange-4 = #FFBF66, --orange-5 = #FFAA33
|
|
616
|
-
primary: "#FFBF66",
|
|
617
|
-
primaryLight: "#FFD599",
|
|
618
|
-
primaryDark: "#FFAA33",
|
|
619
|
-
primaryGradient: "linear-gradient(135deg, #FFBF66, #FFAA33)",
|
|
620
|
-
primaryGhost: "rgba(255,191,102,0.12)",
|
|
621
|
-
primaryHover: "rgba(255,191,102,0.18)",
|
|
622
|
-
borderAccent: "#FFAA33",
|
|
623
|
-
success: "#4ADE80",
|
|
624
|
-
warning: "#FCD34D",
|
|
625
|
-
info: "#60A5FA",
|
|
626
|
-
error: "#F87171",
|
|
627
|
-
// open-props 冷系 slate-gray 暗色画布(H=210, S=10%)
|
|
628
|
-
background: "#292E32",
|
|
629
|
-
// gray-12
|
|
630
|
-
backgroundSecondary: "#3E454C",
|
|
631
|
-
// gray-11
|
|
632
|
-
backgroundTertiary: "#57616B",
|
|
633
|
-
// gray-10
|
|
634
|
-
backgroundGhost: "rgba(41,46,50,0.94)",
|
|
635
|
-
backgroundHover: "#4F5862",
|
|
636
|
-
// ~gray-10.5
|
|
637
|
-
backgroundSelected: "#6E7A87",
|
|
638
|
-
// gray-9
|
|
639
|
-
backgroundElevated: "#3E454C",
|
|
640
|
-
text: "#EBEDEF",
|
|
641
|
-
// gray-3
|
|
642
|
-
textSecondary: "#DDE0E3",
|
|
643
|
-
// gray-5
|
|
644
|
-
textTertiary: "#C1C7CD",
|
|
645
|
-
// gray-6
|
|
646
|
-
textQuaternary: "#7B8793",
|
|
647
|
-
// gray-8
|
|
648
|
-
textLight: "#3E454C",
|
|
649
|
-
placeholder: "#7B8793",
|
|
650
|
-
// 边框必须比所在表面亮一档,否则夜间卡片/分割线全部融进背景
|
|
651
|
-
border: "#4A525A",
|
|
652
|
-
borderHover: "#6E7A87",
|
|
653
|
-
borderLight: "#343A40",
|
|
654
|
-
messageBackground: "#3E454C",
|
|
655
|
-
codeBackground: "#1A1D20",
|
|
656
|
-
// 略深于 canvas 的冷墨色
|
|
657
|
-
// 基于深 slate-gray #0F1113 (RGB 15, 17, 19) 的有机阴影,在冷深色背景上极其细腻浮空
|
|
658
|
-
shadowLight: "rgba(15, 17, 19, 0.28)",
|
|
659
|
-
shadowMedium: "rgba(15, 17, 19, 0.45)",
|
|
660
|
-
shadowHeavy: "rgba(15, 17, 19, 0.65)",
|
|
661
|
-
textHeading: "#F1F2F4",
|
|
662
|
-
// 近白标题;橙色 heading 在夜间大标题上过于突兀
|
|
663
|
-
textOnPrimary: "#2E2E2E"
|
|
664
|
-
}
|
|
665
|
-
};
|
|
666
|
-
var catppuccin = {
|
|
667
|
-
// 保留 catppuccin 的柔和圆角 + 弹性缓动;light surface 沿用 GitHub Light palette,
|
|
668
|
-
// light accent 为品牌海蓝(非 GitHub 蓝),dark 为 Catppuccin Mocha。合成后名字/位次不变;默认主题已改为 nature(2026-10)。
|
|
669
|
-
// Reviewer 改进:dark textTertiary/quaternary 提亮达 WCAG AA;light warning 改琥珀色;
|
|
670
|
-
// light backgroundElevated 拉开与画布的层级,大圆角浮层不再粘连。
|
|
671
|
-
meta: { radiusBoost: 2, motionEase: "cubic-bezier(0.22, 1, 0.36, 1)" },
|
|
672
|
-
light: {
|
|
673
|
-
// 纯白 canvas + 海蓝 accent(#006EDC:白字 4.93:1,#F6F8FA 上 4.63:1;品牌见 docs/brand-outdoor-aesthetic.md)
|
|
674
|
-
primary: "#006EDC",
|
|
675
|
-
primaryLight: "#0874DC",
|
|
676
|
-
primaryDark: "#0052AD",
|
|
677
|
-
primaryGradient: "linear-gradient(135deg, #006EDC, #0874DC)",
|
|
678
|
-
primaryGhost: "rgba(0,110,220,0.08)",
|
|
679
|
-
primaryHover: "rgba(0,110,220,0.10)",
|
|
680
|
-
borderAccent: "#73BEFF",
|
|
681
|
-
success: "#116329",
|
|
682
|
-
warning: "#9A6700",
|
|
683
|
-
info: "#006EDC",
|
|
684
|
-
error: "#CF222E",
|
|
685
|
-
background: "#FFFFFF",
|
|
686
|
-
backgroundSecondary: "#F6F8FA",
|
|
687
|
-
backgroundTertiary: "#E8ECF0",
|
|
688
|
-
backgroundGhost: "rgba(255,255,255,0.94)",
|
|
689
|
-
backgroundHover: "#E8ECF0",
|
|
690
|
-
backgroundSelected: "#D0D7DE",
|
|
691
|
-
backgroundElevated: "#F6F8FA",
|
|
692
|
-
text: "#1F2328",
|
|
693
|
-
textSecondary: "#57606A",
|
|
694
|
-
textTertiary: "#6E7781",
|
|
695
|
-
textQuaternary: "#8C959F",
|
|
696
|
-
textLight: "#D0D7DE",
|
|
697
|
-
placeholder: "#6E7781",
|
|
698
|
-
border: "#D0D7DE",
|
|
699
|
-
borderHover: "#B1BAC4",
|
|
700
|
-
borderLight: "#D8DEE4",
|
|
701
|
-
messageBackground: "#F6F8FA",
|
|
702
|
-
codeBackground: "#F6F8FA",
|
|
703
|
-
shadowLight: "rgba(0,0,0,0.04)",
|
|
704
|
-
shadowMedium: "rgba(0,0,0,0.08)",
|
|
705
|
-
shadowHeavy: "rgba(0,0,0,0.14)",
|
|
706
|
-
textOnPrimary: "#FFFFFF"
|
|
707
|
-
},
|
|
708
|
-
dark: {
|
|
709
|
-
// Catppuccin Mocha — 柔和夜间色调(告别高对比刺眼黑白,偏向 Ghostty Catppuccin Mocha)
|
|
710
|
-
primary: "#89B4FA",
|
|
711
|
-
primaryLight: "#B4BEFE",
|
|
712
|
-
primaryDark: "#74C7EC",
|
|
713
|
-
primaryGradient: "linear-gradient(135deg, #89B4FA, #B4BEFE)",
|
|
714
|
-
primaryGhost: "rgba(137,180,250,0.12)",
|
|
715
|
-
primaryHover: "rgba(137,180,250,0.16)",
|
|
716
|
-
borderAccent: "#89B4FA",
|
|
717
|
-
success: "#A6E3A1",
|
|
718
|
-
warning: "#F9E2AF",
|
|
719
|
-
info: "#89B4FA",
|
|
720
|
-
error: "#F38BA8",
|
|
721
|
-
background: "#1E1E2E",
|
|
722
|
-
backgroundSecondary: "#181825",
|
|
723
|
-
backgroundTertiary: "#313244",
|
|
724
|
-
backgroundGhost: "rgba(30,30,46,0.94)",
|
|
725
|
-
backgroundHover: "#313244",
|
|
726
|
-
backgroundSelected: "#45475A",
|
|
727
|
-
backgroundElevated: "#181825",
|
|
728
|
-
text: "#CDD6F4",
|
|
729
|
-
textSecondary: "#BAC2DE",
|
|
730
|
-
textTertiary: "#A6ADC8",
|
|
731
|
-
textQuaternary: "#6C7086",
|
|
732
|
-
textLight: "#45475A",
|
|
733
|
-
placeholder: "#6C7086",
|
|
734
|
-
border: "#313244",
|
|
735
|
-
borderHover: "#45475A",
|
|
736
|
-
borderLight: "#181825",
|
|
737
|
-
messageBackground: "#181825",
|
|
738
|
-
codeBackground: "#11111B",
|
|
739
|
-
shadowLight: "rgba(17,17,27,0.22)",
|
|
740
|
-
shadowMedium: "rgba(17,17,27,0.36)",
|
|
741
|
-
shadowHeavy: "rgba(17,17,27,0.52)",
|
|
742
|
-
textHeading: "#CDD6F4",
|
|
743
|
-
textOnPrimary: "#1E1E2E"
|
|
744
|
-
}
|
|
745
|
-
};
|
|
746
|
-
var nature = {
|
|
747
|
-
meta: { radiusBoost: 2, motionEase: "cubic-bezier(0.22, 1, 0.36, 1)" },
|
|
748
|
-
light: {
|
|
749
|
-
primary: "#1A5FA4",
|
|
750
|
-
primaryLight: "#2879CD",
|
|
751
|
-
// --hl-blue
|
|
752
|
-
primaryDark: "#154F8A",
|
|
753
|
-
primaryGradient: "linear-gradient(135deg, #1A5FA4, #2879CD)",
|
|
754
|
-
primaryGhost: "rgba(40,121,205,0.08)",
|
|
755
|
-
primaryHover: "rgba(40,121,205,0.12)",
|
|
756
|
-
borderAccent: "#8DB8E4",
|
|
757
|
-
success: "#2F6B36",
|
|
758
|
-
// --hl-green-ink(paper 5.79:1)
|
|
759
|
-
warning: "#8A6320",
|
|
760
|
-
// --hl-sand 压暗(paper 4.89:1)
|
|
761
|
-
info: "#1A5FA4",
|
|
762
|
-
error: "#B3361F",
|
|
763
|
-
// --hl-danger 压暗(paper 5.48:1,surface-sub 4.98:1)
|
|
764
|
-
background: "#FAF8F4",
|
|
765
|
-
// --hl-paper
|
|
766
|
-
backgroundSecondary: "#F3F0EA",
|
|
767
|
-
// --hl-surface-sub
|
|
768
|
-
backgroundTertiary: "#EBE7DF",
|
|
769
|
-
backgroundGhost: "rgba(250,248,244,0.94)",
|
|
770
|
-
backgroundHover: "#EBE7DF",
|
|
771
|
-
backgroundSelected: "#E4DFD5",
|
|
772
|
-
backgroundElevated: "#FFFEFB",
|
|
773
|
-
// --hl-surface
|
|
774
|
-
text: "#1F2733",
|
|
775
|
-
// --hl-ink
|
|
776
|
-
textSecondary: "#5B6472",
|
|
777
|
-
// --hl-muted
|
|
778
|
-
textTertiary: "#5F6773",
|
|
779
|
-
// paper 5.17:1 / surface-sub 4.69:1(侧栏 11px 分组标题落在 surface-sub 上,需过 AA)
|
|
780
|
-
textQuaternary: "#8A8F96",
|
|
781
|
-
textLight: "#E0DFDD",
|
|
782
|
-
placeholder: "#5F6773",
|
|
783
|
-
border: "#E0DFDD",
|
|
784
|
-
// --hl-line:ink 12% on paper
|
|
785
|
-
borderHover: "#CACAC9",
|
|
786
|
-
// ink 22% on paper
|
|
787
|
-
borderLight: "#EBE9E7",
|
|
788
|
-
// ink 7% on paper
|
|
789
|
-
messageBackground: "#F3F0EA",
|
|
790
|
-
codeBackground: "#FFFEFB",
|
|
791
|
-
shadowLight: "rgba(120,90,60,0.06)",
|
|
792
|
-
// --hl-shadow 调性
|
|
793
|
-
shadowMedium: "rgba(120,90,60,0.10)",
|
|
794
|
-
shadowHeavy: "rgba(120,90,60,0.16)",
|
|
795
|
-
textHeading: "#1F2733",
|
|
796
|
-
textOnPrimary: "#FFFEFA"
|
|
797
|
-
// --hl-on-ink
|
|
798
|
-
},
|
|
799
|
-
dark: {
|
|
800
|
-
primary: "#6AA8EA",
|
|
801
|
-
// --hl-blue(夜)
|
|
802
|
-
primaryLight: "#8FBEF0",
|
|
803
|
-
primaryDark: "#4F93DC",
|
|
804
|
-
primaryGradient: "linear-gradient(135deg, #6AA8EA, #8FBEF0)",
|
|
805
|
-
primaryGhost: "rgba(106,168,234,0.12)",
|
|
806
|
-
primaryHover: "rgba(106,168,234,0.16)",
|
|
807
|
-
borderAccent: "#6AA8EA",
|
|
808
|
-
success: "#8FD09B",
|
|
809
|
-
// --hl-green-ink(夜)
|
|
810
|
-
warning: "#D9B26A",
|
|
811
|
-
// --hl-sand(夜)
|
|
812
|
-
info: "#6AA8EA",
|
|
813
|
-
error: "#F08A7A",
|
|
814
|
-
// --hl-danger(夜)
|
|
815
|
-
background: "#1C1B20",
|
|
816
|
-
// --hl-paper(夜)
|
|
817
|
-
backgroundSecondary: "#25242A",
|
|
818
|
-
// --hl-surface(夜)
|
|
819
|
-
backgroundTertiary: "#2E2C34",
|
|
820
|
-
// --hl-surface-sub(夜)
|
|
821
|
-
backgroundGhost: "rgba(28,27,32,0.94)",
|
|
822
|
-
backgroundHover: "#2E2C34",
|
|
823
|
-
backgroundSelected: "#38363F",
|
|
824
|
-
backgroundElevated: "#25242A",
|
|
825
|
-
text: "#ECE6DC",
|
|
826
|
-
// --hl-ink(夜)
|
|
827
|
-
textSecondary: "#C9C2B6",
|
|
828
|
-
// --hl-nav(夜)
|
|
829
|
-
textTertiary: "#A7A197",
|
|
830
|
-
// --hl-muted(夜)
|
|
831
|
-
textQuaternary: "#8F8A82",
|
|
832
|
-
textLight: "#38363F",
|
|
833
|
-
placeholder: "#8F8A82",
|
|
834
|
-
border: "#353337",
|
|
835
|
-
// ink 12% on paper(夜)
|
|
836
|
-
borderHover: "#4A4849",
|
|
837
|
-
borderLight: "#2B292D",
|
|
838
|
-
messageBackground: "#25242A",
|
|
839
|
-
codeBackground: "#16151A",
|
|
840
|
-
shadowLight: "rgba(0,0,0,0.22)",
|
|
841
|
-
shadowMedium: "rgba(0,0,0,0.36)",
|
|
842
|
-
shadowHeavy: "rgba(0,0,0,0.52)",
|
|
843
|
-
textHeading: "#ECE6DC",
|
|
844
|
-
textOnPrimary: "#1C1B20"
|
|
845
|
-
// --hl-on-ink(夜)
|
|
846
|
-
}
|
|
847
|
-
};
|
|
848
|
-
|
|
849
|
-
// packages/app/theme/theme.config.ts
|
|
850
|
-
var THEME_COLORS = {
|
|
851
|
-
nature,
|
|
852
|
-
catppuccin,
|
|
853
|
-
trail,
|
|
854
|
-
wave,
|
|
855
|
-
iris,
|
|
856
|
-
rose,
|
|
857
|
-
mono
|
|
858
|
-
};
|
|
859
|
-
var THEME_NAME_ALIASES = {
|
|
860
|
-
// 原核心主题被精简
|
|
861
|
-
ocean: "catppuccin",
|
|
862
|
-
forest: "wave",
|
|
863
|
-
neutral: "catppuccin",
|
|
864
|
-
// 原向后兼容 alias
|
|
865
|
-
blue: "catppuccin",
|
|
866
|
-
purple: "iris",
|
|
867
|
-
green: "wave",
|
|
868
|
-
orange: "mono",
|
|
869
|
-
yellow: "mono",
|
|
870
|
-
graphite: "catppuccin",
|
|
871
|
-
pink: "rose",
|
|
872
|
-
red: "mono",
|
|
873
|
-
mocha: "catppuccin"
|
|
874
|
-
};
|
|
875
|
-
|
|
876
|
-
// packages/app/theme/themeModeBootstrap.ts
|
|
877
|
-
var SYSTEM_DARK_MEDIA_QUERY = "(prefers-color-scheme: dark)";
|
|
878
|
-
var normalizeThemeName = (value) => {
|
|
879
|
-
if (typeof value !== "string") return void 0;
|
|
880
|
-
const canonicalName = value in THEME_NAME_ALIASES ? THEME_NAME_ALIASES[value] : value;
|
|
881
|
-
return canonicalName in THEME_COLORS ? canonicalName : void 0;
|
|
882
|
-
};
|
|
883
|
-
var resolveThemeModeIsDark = (themeMode, systemPrefersDark) => themeMode === "dark" ? true : themeMode === "light" ? false : systemPrefersDark;
|
|
884
|
-
|
|
885
|
-
// packages/app/settings/settingActions.ts
|
|
886
|
-
var updateSettingsState = createAction(
|
|
887
|
-
"settings/_updateSettingsState"
|
|
888
|
-
);
|
|
889
|
-
|
|
890
|
-
// packages/app/settings/dbActionThunks.ts
|
|
891
|
-
var getDefaultSettingDbActionThunks = () => ({
|
|
892
|
-
readAndWait,
|
|
893
|
-
patch,
|
|
894
|
-
upsert,
|
|
895
|
-
write
|
|
896
|
-
});
|
|
897
|
-
var settingDbActionThunksOverrideKey = Symbol.for(
|
|
898
|
-
"bun-nolo.app.settings.dbActionThunksOverride"
|
|
899
|
-
);
|
|
900
|
-
var getSettingDbActionThunks = () => {
|
|
901
|
-
const globalOverride = globalThis[settingDbActionThunksOverrideKey];
|
|
902
|
-
return globalOverride ?? getDefaultSettingDbActionThunks();
|
|
903
|
-
};
|
|
904
|
-
|
|
905
|
-
// packages/app/settings/settingsRecord.ts
|
|
906
|
-
var SETTINGS_RECORD_SCHEMA_VERSION = 1;
|
|
907
|
-
var withSettingsRecordSchema = (changes) => ({
|
|
908
|
-
...changes,
|
|
909
|
-
schemaVersion: SETTINGS_RECORD_SCHEMA_VERSION
|
|
910
|
-
});
|
|
911
|
-
|
|
912
|
-
// packages/app/settings/settingPersistence.ts
|
|
913
|
-
var normalizeSettingChanges = (changes) => {
|
|
914
|
-
let normalizedChanges = changes;
|
|
915
|
-
if (hasOwn(normalizedChanges, "defaultAgentId")) {
|
|
916
|
-
normalizedChanges = {
|
|
917
|
-
...normalizedChanges,
|
|
918
|
-
defaultAgentId: normalizeDefaultAgentIdSetting(
|
|
919
|
-
normalizedChanges.defaultAgentId
|
|
920
|
-
)
|
|
921
|
-
};
|
|
922
|
-
}
|
|
923
|
-
if (hasOwn(normalizedChanges, "defaultSpaceId")) {
|
|
924
|
-
normalizedChanges = omitKeys(normalizedChanges, [
|
|
925
|
-
"defaultSpaceId"
|
|
926
|
-
]);
|
|
927
|
-
}
|
|
928
|
-
if (hasOwn(normalizedChanges, "themeName")) {
|
|
929
|
-
const themeName = normalizeThemeName(normalizedChanges.themeName);
|
|
930
|
-
normalizedChanges = themeName ? { ...normalizedChanges, themeName } : omitKeys(normalizedChanges, ["themeName"]);
|
|
931
|
-
}
|
|
932
|
-
if (hasOwn(normalizedChanges, "fontPreset")) {
|
|
933
|
-
const fontPreset = normalizeFontPreset(normalizedChanges.fontPreset);
|
|
934
|
-
normalizedChanges = fontPreset ? { ...normalizedChanges, fontPreset } : omitKeys(normalizedChanges, ["fontPreset"]);
|
|
935
|
-
}
|
|
936
|
-
if (hasOwn(normalizedChanges, "userTonePreset")) {
|
|
937
|
-
normalizedChanges = {
|
|
938
|
-
...normalizedChanges,
|
|
939
|
-
userTonePreset: normalizeTonePresetSetting(
|
|
940
|
-
normalizedChanges.userTonePreset
|
|
941
|
-
)
|
|
942
|
-
};
|
|
943
|
-
}
|
|
944
|
-
if (hasOwn(normalizedChanges, "knowledgeCaptureLevel")) {
|
|
945
|
-
normalizedChanges = {
|
|
946
|
-
...normalizedChanges,
|
|
947
|
-
knowledgeCaptureLevel: normalizePolicyLevelSetting(
|
|
948
|
-
normalizedChanges.knowledgeCaptureLevel,
|
|
949
|
-
DEFAULT_USER_PREFERENCE_PROFILE.knowledgeCaptureLevel
|
|
950
|
-
)
|
|
951
|
-
};
|
|
952
|
-
}
|
|
953
|
-
if (hasOwn(normalizedChanges, "spaceContextLevel")) {
|
|
954
|
-
normalizedChanges = {
|
|
955
|
-
...normalizedChanges,
|
|
956
|
-
spaceContextLevel: normalizePolicyLevelSetting(
|
|
957
|
-
normalizedChanges.spaceContextLevel,
|
|
958
|
-
DEFAULT_USER_PREFERENCE_PROFILE.spaceContextLevel
|
|
959
|
-
)
|
|
960
|
-
};
|
|
961
|
-
}
|
|
962
|
-
if (hasOwn(normalizedChanges, "autoApproveSelfUpdateFields")) {
|
|
963
|
-
normalizedChanges = {
|
|
964
|
-
...normalizedChanges,
|
|
965
|
-
autoApproveSelfUpdateFields: normalizeAgentUpdateFieldList(
|
|
966
|
-
normalizedChanges.autoApproveSelfUpdateFields
|
|
967
|
-
)
|
|
968
|
-
};
|
|
969
|
-
}
|
|
970
|
-
if (hasOwn(normalizedChanges, "systemBuiltinSkills")) {
|
|
971
|
-
normalizedChanges = {
|
|
972
|
-
...normalizedChanges,
|
|
973
|
-
systemBuiltinSkills: normalizeSystemBuiltinSkills(
|
|
974
|
-
normalizedChanges.systemBuiltinSkills,
|
|
975
|
-
DEFAULT_SYSTEM_AGENT_CAPABILITIES
|
|
976
|
-
)
|
|
977
|
-
};
|
|
978
|
-
}
|
|
979
|
-
return normalizedChanges;
|
|
980
|
-
};
|
|
981
|
-
var LOCAL_APPEARANCE_KEY_NAMES = [
|
|
982
|
-
"themeName",
|
|
983
|
-
"themeMode",
|
|
984
|
-
"isDark",
|
|
985
|
-
"density",
|
|
986
|
-
"fontPreset"
|
|
987
|
-
];
|
|
988
|
-
var GUEST_UPDATABLE_KEY_NAMES = [
|
|
989
|
-
...LOCAL_APPEARANCE_KEY_NAMES,
|
|
990
|
-
"sidebarWidth"
|
|
991
|
-
];
|
|
992
|
-
var LOCAL_FIRST_APPEARANCE_KEYS = Object.freeze(
|
|
993
|
-
Object.fromEntries(
|
|
994
|
-
LOCAL_APPEARANCE_KEY_NAMES.map((key) => [key, true])
|
|
995
|
-
)
|
|
996
|
-
);
|
|
997
|
-
var GUEST_UPDATABLE_KEYS = Object.freeze(
|
|
998
|
-
Object.fromEntries(
|
|
999
|
-
GUEST_UPDATABLE_KEY_NAMES.map((key) => [key, true])
|
|
1000
|
-
)
|
|
1001
|
-
);
|
|
1002
|
-
var isGuestUpdatableKey = (key) => key in GUEST_UPDATABLE_KEYS;
|
|
1003
|
-
var isLocalFirstAppearanceChange = (changes) => {
|
|
1004
|
-
const keys = Object.keys(changes);
|
|
1005
|
-
if (keys.length === 0) return false;
|
|
1006
|
-
return keys.every(
|
|
1007
|
-
(key) => isGuestUpdatableKey(key)
|
|
1008
|
-
);
|
|
1009
|
-
};
|
|
1010
|
-
var stripRegisterBackedFieldsFromSettingsWrite = (changes) => {
|
|
1011
|
-
return omitKeys(changes, [
|
|
1012
|
-
"autoApproveCredits",
|
|
1013
|
-
"defaultSpaceId",
|
|
1014
|
-
"userAuthorityRegistry",
|
|
1015
|
-
...LOCAL_APPEARANCE_KEY_NAMES
|
|
1016
|
-
]);
|
|
1017
|
-
};
|
|
1018
|
-
var sanitizeStoredSettingsRecord = (settingsRecord) => {
|
|
1019
|
-
if (!settingsRecord || typeof settingsRecord !== "object") {
|
|
1020
|
-
return null;
|
|
1021
|
-
}
|
|
1022
|
-
const record = settingsRecord;
|
|
1023
|
-
const sanitizedSettings = omitKeys(record, [
|
|
1024
|
-
"autoApproveCredits",
|
|
1025
|
-
"defaultSpaceId",
|
|
1026
|
-
"schemaVersion",
|
|
1027
|
-
...LOCAL_APPEARANCE_KEY_NAMES
|
|
1028
|
-
]);
|
|
1029
|
-
return Object.keys(sanitizedSettings).length > 0 ? sanitizedSettings : null;
|
|
1030
|
-
};
|
|
1031
|
-
var hydrateStoredSettings = ({
|
|
1032
|
-
userId,
|
|
1033
|
-
settingsRecord,
|
|
1034
|
-
authorityHomeServer
|
|
1035
|
-
}) => {
|
|
1036
|
-
const record = settingsRecord ?? {};
|
|
1037
|
-
const resolvedDefaultAgentId = normalizeDefaultAgentIdSetting(record.defaultAgentId) ?? SYSTEM_DEFAULT_AGENT_ID;
|
|
1038
|
-
const baseSettings = sanitizeStoredSettingsRecord(settingsRecord) ?? {};
|
|
1039
|
-
const normalizedAuthorityHome = normalizeAuthorityHomeServerSetting(authorityHomeServer);
|
|
1040
|
-
const existingRegistry = asRecordOrEmpty(
|
|
1041
|
-
baseSettings.userAuthorityRegistry
|
|
1042
|
-
);
|
|
1043
|
-
const userAuthorityRegistry = userId && normalizedAuthorityHome ? { ...existingRegistry, [userId]: normalizedAuthorityHome } : existingRegistry;
|
|
1044
|
-
const userAuthorityRegistryIsEmpty = Object.keys(userAuthorityRegistry).length === 0;
|
|
1045
|
-
const hydratedSettings = {
|
|
1046
|
-
...baseSettings,
|
|
1047
|
-
// 服务端独占字段:只读回显(缺失时沿用初始值 0,非法值按 0)
|
|
1048
|
-
...hasOwn(record, "autoApproveCredits") ? { autoApproveCredits: typeof record.autoApproveCredits === "number" && Number.isFinite(record.autoApproveCredits) && record.autoApproveCredits >= 0 ? record.autoApproveCredits : 0 } : {},
|
|
1049
|
-
...userAuthorityRegistryIsEmpty ? {} : { userAuthorityRegistry },
|
|
1050
|
-
defaultAgentId: resolvedDefaultAgentId
|
|
1051
|
-
};
|
|
1052
|
-
return Object.keys(hydratedSettings).length > 0 ? hydratedSettings : null;
|
|
1053
|
-
};
|
|
1054
|
-
var buildSettingsPersistencePlan = ({
|
|
1055
|
-
userId,
|
|
1056
|
-
currentSettings,
|
|
1057
|
-
changes,
|
|
1058
|
-
previousDefaultAgentRecord
|
|
1059
|
-
}) => {
|
|
1060
|
-
const normalizedChanges = normalizeSettingChanges(changes);
|
|
1061
|
-
const persistedChanges = stripRegisterBackedFieldsFromSettingsWrite(normalizedChanges);
|
|
1062
|
-
const previousDefaultAgentId = normalizeDefaultAgentIdSetting(currentSettings.defaultAgentId) ?? SYSTEM_DEFAULT_AGENT_ID;
|
|
1063
|
-
const nextDefaultAgentId = normalizeDefaultAgentIdSetting(normalizedChanges.defaultAgentId) ?? null;
|
|
1064
|
-
const previousDefaultAgentValue = readUserPreferenceRegisterValue(
|
|
1065
|
-
previousDefaultAgentRecord,
|
|
1066
|
-
USER_PREFERENCE_NAMES.DEFAULT_AGENT
|
|
1067
|
-
) ?? null;
|
|
1068
|
-
const defaultAgentRegisterWrite = hasOwn(normalizedChanges, "defaultAgentId") && previousDefaultAgentId !== (nextDefaultAgentId ?? SYSTEM_DEFAULT_AGENT_ID) && (!previousDefaultAgentRecord || previousDefaultAgentValue !== nextDefaultAgentId) ? {
|
|
1069
|
-
customKey: createUserPreferenceKey.defaultAgent(userId),
|
|
1070
|
-
data: buildDefaultAgentPreferenceRegisterRecord({
|
|
1071
|
-
userId,
|
|
1072
|
-
defaultAgentId: nextDefaultAgentId,
|
|
1073
|
-
previousRecord: previousDefaultAgentRecord
|
|
1074
|
-
})
|
|
1075
|
-
} : null;
|
|
1076
|
-
const settingsPatch = Object.keys(persistedChanges).length > 0 ? {
|
|
1077
|
-
dbKey: createUserKey.settings(userId),
|
|
1078
|
-
changes: withSettingsRecordSchema(
|
|
1079
|
-
persistedChanges
|
|
1080
|
-
)
|
|
1081
|
-
} : null;
|
|
1082
|
-
return {
|
|
1083
|
-
normalizedChanges,
|
|
1084
|
-
defaultAgentRegisterWrite,
|
|
1085
|
-
settingsPatch
|
|
1086
|
-
};
|
|
1087
|
-
};
|
|
1088
|
-
var getCachedDefaultAgentRegisterRecord = (getState, registerKey) => {
|
|
1089
|
-
const record = getState().db.entities[registerKey];
|
|
1090
|
-
if (!record || typeof record !== "object") return null;
|
|
1091
|
-
return record;
|
|
1092
|
-
};
|
|
1093
|
-
var persistDefaultAgentRegister = async (dispatch, getState, userId, value) => {
|
|
1094
|
-
const registerKey = createUserPreferenceKey.defaultAgent(userId);
|
|
1095
|
-
let previousRecord = getCachedDefaultAgentRegisterRecord(getState, registerKey);
|
|
1096
|
-
if (!previousRecord) {
|
|
1097
|
-
previousRecord = await dispatch(
|
|
1098
|
-
getSettingDbActionThunks().readAndWait(registerKey)
|
|
1099
|
-
).unwrap().catch(() => null);
|
|
1100
|
-
}
|
|
1101
|
-
const previousValue = readUserPreferenceRegisterValue(
|
|
1102
|
-
previousRecord,
|
|
1103
|
-
USER_PREFERENCE_NAMES.DEFAULT_AGENT
|
|
1104
|
-
) ?? null;
|
|
1105
|
-
if (previousRecord && previousValue === value) {
|
|
1106
|
-
return;
|
|
1107
|
-
}
|
|
1108
|
-
await dispatch(
|
|
1109
|
-
getSettingDbActionThunks().write({
|
|
1110
|
-
customKey: registerKey,
|
|
1111
|
-
data: buildDefaultAgentPreferenceRegisterRecord({
|
|
1112
|
-
userId,
|
|
1113
|
-
defaultAgentId: value,
|
|
1114
|
-
previousRecord
|
|
1115
|
-
})
|
|
1116
|
-
})
|
|
1117
|
-
).unwrap();
|
|
1118
|
-
};
|
|
1119
|
-
|
|
1120
|
-
// packages/app/settings/settingThunks.ts
|
|
1121
|
-
var getSettings = createAsyncThunk("settings/getSettings", async (_, { dispatch, getState }) => {
|
|
1122
|
-
const userId = selectIdentityUserId(getState());
|
|
1123
|
-
if (!userId) return null;
|
|
1124
|
-
const settingsKey = createUserKey.settings(userId);
|
|
1125
|
-
const authorityHomeKey = createUserPreferenceKey.authorityHome(userId);
|
|
1126
|
-
const [settingsRecord, authorityHomeRecord] = await Promise.all([
|
|
1127
|
-
dispatch(getSettingDbActionThunks().readAndWait(settingsKey)).unwrap().catch(() => null),
|
|
1128
|
-
dispatch(getSettingDbActionThunks().readAndWait(authorityHomeKey)).unwrap().catch(() => null)
|
|
1129
|
-
]);
|
|
1130
|
-
const authorityHomeServer = readUserPreferenceRegisterValue(
|
|
1131
|
-
authorityHomeRecord,
|
|
1132
|
-
USER_PREFERENCE_NAMES.AUTHORITY_HOME
|
|
1133
|
-
) ?? null;
|
|
1134
|
-
const hydrated = hydrateStoredSettings({
|
|
1135
|
-
userId,
|
|
1136
|
-
settingsRecord,
|
|
1137
|
-
authorityHomeServer
|
|
1138
|
-
});
|
|
1139
|
-
if (hydrated) {
|
|
1140
|
-
const normalizedPayload = normalizeSettingChanges(
|
|
1141
|
-
hydrated
|
|
1142
|
-
);
|
|
1143
|
-
const { currentServer: _ignored, ...settingsToApply } = normalizedPayload;
|
|
1144
|
-
dispatch(updateSettingsState(settingsToApply));
|
|
1145
|
-
}
|
|
1146
|
-
return hydrated;
|
|
1147
|
-
});
|
|
1148
|
-
var setSettings = createAsyncThunk("settings/setSettings", async (changes, { dispatch, getState }) => {
|
|
1149
|
-
const currentSettings = getState().settings;
|
|
1150
|
-
const normalizedChanges = normalizeSettingChanges(changes);
|
|
1151
|
-
const previousDefaultAgentId = normalizeDefaultAgentIdSetting(currentSettings.defaultAgentId) ?? SYSTEM_DEFAULT_AGENT_ID;
|
|
1152
|
-
const userId = selectIdentityUserId(getState());
|
|
1153
|
-
if (!userId) {
|
|
1154
|
-
const hasAppearanceChanges = Object.keys(normalizedChanges).length > 0;
|
|
1155
|
-
if (hasAppearanceChanges) {
|
|
1156
|
-
if (!isLocalFirstAppearanceChange(normalizedChanges)) {
|
|
1157
|
-
throw new Error("User not found for persisting settings.");
|
|
1158
|
-
}
|
|
1159
|
-
} else {
|
|
1160
|
-
throw new Error("User not found for persisting settings.");
|
|
1161
|
-
}
|
|
1162
|
-
dispatch(updateSettingsState(normalizedChanges));
|
|
1163
|
-
return normalizedChanges;
|
|
1164
|
-
}
|
|
1165
|
-
const persistencePlan = buildSettingsPersistencePlan({
|
|
1166
|
-
userId,
|
|
1167
|
-
currentSettings,
|
|
1168
|
-
changes: normalizedChanges,
|
|
1169
|
-
previousDefaultAgentRecord: null
|
|
1170
|
-
});
|
|
1171
|
-
dispatch(updateSettingsState(persistencePlan.normalizedChanges));
|
|
1172
|
-
const nextDefaultAgentId = normalizeDefaultAgentIdSetting(
|
|
1173
|
-
persistencePlan.normalizedChanges.defaultAgentId
|
|
1174
|
-
) ?? null;
|
|
1175
|
-
if (hasOwn(changes, "defaultAgentId") && previousDefaultAgentId !== (nextDefaultAgentId ?? SYSTEM_DEFAULT_AGENT_ID)) {
|
|
1176
|
-
await persistDefaultAgentRegister(
|
|
1177
|
-
dispatch,
|
|
1178
|
-
getState,
|
|
1179
|
-
userId,
|
|
1180
|
-
nextDefaultAgentId
|
|
1181
|
-
);
|
|
1182
|
-
}
|
|
1183
|
-
if (persistencePlan.settingsPatch) {
|
|
1184
|
-
await dispatch(
|
|
1185
|
-
getSettingDbActionThunks().upsert({
|
|
1186
|
-
dbKey: persistencePlan.settingsPatch.dbKey,
|
|
1187
|
-
data: persistencePlan.settingsPatch.changes
|
|
1188
|
-
})
|
|
1189
|
-
).unwrap();
|
|
1190
|
-
}
|
|
1191
|
-
return persistencePlan.normalizedChanges;
|
|
1192
|
-
});
|
|
1193
|
-
var changeTheme = createAsyncThunk(
|
|
1194
|
-
"settings/changeTheme",
|
|
1195
|
-
async (themeName, { dispatch }) => dispatch(setSettings({ themeName })).unwrap()
|
|
1196
|
-
);
|
|
1197
|
-
var changeDensity = createAsyncThunk(
|
|
1198
|
-
"settings/changeDensity",
|
|
1199
|
-
async (density, { dispatch }) => dispatch(setSettings({ density })).unwrap()
|
|
1200
|
-
);
|
|
1201
|
-
var changeFontPreset = createAsyncThunk(
|
|
1202
|
-
"settings/changeFontPreset",
|
|
1203
|
-
async (fontPreset, { dispatch }) => {
|
|
1204
|
-
const normalized = normalizeFontPreset(fontPreset) ?? fontPreset;
|
|
1205
|
-
return dispatch(setSettings({ fontPreset: normalized })).unwrap();
|
|
1206
|
-
}
|
|
1207
|
-
);
|
|
1208
|
-
var changeDarkMode = createAsyncThunk(
|
|
1209
|
-
"settings/changeDarkMode",
|
|
1210
|
-
async (isDark, { dispatch }) => dispatch(
|
|
1211
|
-
setSettings({ isDark, themeMode: isDark ? "dark" : "light" })
|
|
1212
|
-
).unwrap()
|
|
1213
|
-
);
|
|
1214
|
-
var toggleShowThinking = createAsyncThunk(
|
|
1215
|
-
"settings/toggleShowThinking",
|
|
1216
|
-
async (_, { dispatch, getState }) => {
|
|
1217
|
-
const currentShowThinking = getState().settings.showThinking;
|
|
1218
|
-
return dispatch(
|
|
1219
|
-
setSettings({ showThinking: !currentShowThinking })
|
|
1220
|
-
).unwrap();
|
|
1221
|
-
}
|
|
1222
|
-
);
|
|
1223
|
-
var setThemeFollowsSystem = createAsyncThunk(
|
|
1224
|
-
"settings/setThemeFollowsSystem",
|
|
1225
|
-
async (follows, { dispatch }) => dispatch(setSettings({ themeMode: follows ? "system" : "light" })).unwrap()
|
|
1226
|
-
);
|
|
1227
|
-
var setSidebarWidth = createAsyncThunk(
|
|
1228
|
-
"settings/setSidebarWidth",
|
|
1229
|
-
async (sidebarWidth, { dispatch }) => dispatch(setSettings({ sidebarWidth })).unwrap()
|
|
1230
|
-
);
|
|
1231
|
-
var toggleEnableReadCurrentSpace = createAsyncThunk(
|
|
1232
|
-
"settings/toggleEnableReadCurrentSpace",
|
|
1233
|
-
async (_, { dispatch, getState }) => {
|
|
1234
|
-
const current = getState().settings.enableReadCurrentSpace;
|
|
1235
|
-
return dispatch(
|
|
1236
|
-
setSettings({
|
|
1237
|
-
enableReadCurrentSpace: !current,
|
|
1238
|
-
spaceContextLevel: current ? 1 : DEFAULT_USER_PREFERENCE_PROFILE.spaceContextLevel
|
|
1239
|
-
})
|
|
1240
|
-
).unwrap();
|
|
1241
|
-
}
|
|
1242
|
-
);
|
|
1243
|
-
var setEditorDefaultMode = createAsyncThunk(
|
|
1244
|
-
"settings/setEditorDefaultMode",
|
|
1245
|
-
async (mode, { dispatch }) => dispatch(setSettings({ editorDefaultMode: mode })).unwrap()
|
|
1246
|
-
);
|
|
1247
|
-
var setEditorLightCodeTheme = createAsyncThunk(
|
|
1248
|
-
"settings/setEditorLightCodeTheme",
|
|
1249
|
-
async (theme, { dispatch }) => dispatch(setSettings({ editorLightCodeTheme: theme })).unwrap()
|
|
1250
|
-
);
|
|
1251
|
-
var setEditorDarkCodeTheme = createAsyncThunk(
|
|
1252
|
-
"settings/setEditorDarkCodeTheme",
|
|
1253
|
-
async (theme, { dispatch }) => dispatch(setSettings({ editorDarkCodeTheme: theme })).unwrap()
|
|
1254
|
-
);
|
|
1255
|
-
var setEditorCodeTheme = createAsyncThunk(
|
|
1256
|
-
"settings/setEditorCodeTheme",
|
|
1257
|
-
async (theme, { dispatch }) => dispatch(
|
|
1258
|
-
setSettings({
|
|
1259
|
-
editorLightCodeTheme: theme,
|
|
1260
|
-
editorDarkCodeTheme: theme
|
|
1261
|
-
})
|
|
1262
|
-
).unwrap()
|
|
1263
|
-
);
|
|
1264
|
-
var toggleEditorWordCount = createAsyncThunk(
|
|
1265
|
-
"settings/toggleEditorWordCount",
|
|
1266
|
-
async (_, { dispatch, getState }) => {
|
|
1267
|
-
const current = getState().settings.editorWordCountEnabled;
|
|
1268
|
-
return dispatch(setSettings({ editorWordCountEnabled: !current })).unwrap();
|
|
1269
|
-
}
|
|
1270
|
-
);
|
|
1271
|
-
var toggleEditorShortcut = createAsyncThunk(
|
|
1272
|
-
"settings/toggleEditorShortcut",
|
|
1273
|
-
async (key, { dispatch, getState }) => {
|
|
1274
|
-
const currentShortcuts = getState().settings.editorShortcuts;
|
|
1275
|
-
const newShortcuts = {
|
|
1276
|
-
...currentShortcuts,
|
|
1277
|
-
[key]: !currentShortcuts[key]
|
|
1278
|
-
};
|
|
1279
|
-
return dispatch(setSettings({ editorShortcuts: newShortcuts })).unwrap();
|
|
1280
|
-
}
|
|
1281
|
-
);
|
|
1282
|
-
var setEditorFontSize = createAsyncThunk(
|
|
1283
|
-
"settings/setEditorFontSize",
|
|
1284
|
-
async (fontSize, { dispatch }) => dispatch(setSettings({ editorFontSize: fontSize })).unwrap()
|
|
1285
|
-
);
|
|
1286
|
-
var toggleEditorAutoSave = createAsyncThunk(
|
|
1287
|
-
"settings/toggleEditorAutoSave",
|
|
1288
|
-
async (_, { dispatch, getState }) => {
|
|
1289
|
-
const current = getState().settings.editorAutoSave;
|
|
1290
|
-
return dispatch(setSettings({ editorAutoSave: !current })).unwrap();
|
|
1291
|
-
}
|
|
1292
|
-
);
|
|
1293
|
-
var setEditorAutoSaveInterval = createAsyncThunk(
|
|
1294
|
-
"settings/setEditorAutoSaveInterval",
|
|
1295
|
-
async (interval, { dispatch }) => dispatch(setSettings({ editorAutoSaveInterval: interval })).unwrap()
|
|
1296
|
-
);
|
|
1297
|
-
var setGlobalPrompt = createAsyncThunk(
|
|
1298
|
-
"settings/setGlobalPrompt",
|
|
1299
|
-
async (prompt, { dispatch }) => dispatch(setSettings({ globalPrompt: prompt })).unwrap()
|
|
1300
|
-
);
|
|
1301
|
-
var setUserTonePreset = createAsyncThunk(
|
|
1302
|
-
"settings/setUserTonePreset",
|
|
1303
|
-
async (tone, { dispatch }) => dispatch(setSettings({ userTonePreset: tone })).unwrap()
|
|
1304
|
-
);
|
|
1305
|
-
var setKnowledgeCaptureLevel = createAsyncThunk(
|
|
1306
|
-
"settings/setKnowledgeCaptureLevel",
|
|
1307
|
-
async (level, { dispatch }) => dispatch(setSettings({ knowledgeCaptureLevel: level })).unwrap()
|
|
1308
|
-
);
|
|
1309
|
-
var setSpaceContextLevel = createAsyncThunk(
|
|
1310
|
-
"settings/setSpaceContextLevel",
|
|
1311
|
-
async (level, { dispatch }) => dispatch(
|
|
1312
|
-
setSettings({
|
|
1313
|
-
spaceContextLevel: level,
|
|
1314
|
-
enableReadCurrentSpace: level > 1
|
|
1315
|
-
})
|
|
1316
|
-
).unwrap()
|
|
1317
|
-
);
|
|
1318
|
-
var setAiRecentContentLimit = createAsyncThunk(
|
|
1319
|
-
"settings/setAiRecentContentLimit",
|
|
1320
|
-
async (limit, { dispatch }) => dispatch(setSettings({ aiRecentContentLimit: limit })).unwrap()
|
|
1321
|
-
);
|
|
1322
|
-
var setMaxExecutionTime = createAsyncThunk(
|
|
1323
|
-
"settings/setMaxExecutionTime",
|
|
1324
|
-
async (time, { dispatch }) => dispatch(setSettings({ maxExecutionTime: time })).unwrap()
|
|
1325
|
-
);
|
|
1326
|
-
var setDefaultAgentId = createAsyncThunk(
|
|
1327
|
-
"settings/setDefaultAgentId",
|
|
1328
|
-
async (agentId, { dispatch }) => dispatch(
|
|
1329
|
-
setSettings({
|
|
1330
|
-
defaultAgentId: resolveDefaultAgentIdSetting(agentId)
|
|
1331
|
-
})
|
|
1332
|
-
).unwrap()
|
|
1333
|
-
);
|
|
1334
|
-
var setThemeMode = createAsyncThunk(
|
|
1335
|
-
"settings/setThemeMode",
|
|
1336
|
-
async (mode, { dispatch }) => {
|
|
1337
|
-
const changes = { themeMode: mode };
|
|
1338
|
-
const systemPrefersDark = typeof window !== "undefined" && window.matchMedia(SYSTEM_DARK_MEDIA_QUERY).matches;
|
|
1339
|
-
changes.isDark = resolveThemeModeIsDark(mode, systemPrefersDark);
|
|
1340
|
-
return dispatch(setSettings(changes)).unwrap();
|
|
1341
|
-
}
|
|
1342
|
-
);
|
|
1343
|
-
export {
|
|
1344
|
-
changeDarkMode,
|
|
1345
|
-
changeDensity,
|
|
1346
|
-
changeFontPreset,
|
|
1347
|
-
changeTheme,
|
|
1348
|
-
getSettings,
|
|
1349
|
-
setAiRecentContentLimit,
|
|
1350
|
-
setDefaultAgentId,
|
|
1351
|
-
setEditorAutoSaveInterval,
|
|
1352
|
-
setEditorCodeTheme,
|
|
1353
|
-
setEditorDarkCodeTheme,
|
|
1354
|
-
setEditorDefaultMode,
|
|
1355
|
-
setEditorFontSize,
|
|
1356
|
-
setEditorLightCodeTheme,
|
|
1357
|
-
setGlobalPrompt,
|
|
1358
|
-
setKnowledgeCaptureLevel,
|
|
1359
|
-
setMaxExecutionTime,
|
|
1360
|
-
setSettings,
|
|
1361
|
-
setSidebarWidth,
|
|
1362
|
-
setSpaceContextLevel,
|
|
1363
|
-
setThemeFollowsSystem,
|
|
1364
|
-
setThemeMode,
|
|
1365
|
-
setUserTonePreset,
|
|
1366
|
-
toggleEditorAutoSave,
|
|
1367
|
-
toggleEditorShortcut,
|
|
1368
|
-
toggleEditorWordCount,
|
|
1369
|
-
toggleEnableReadCurrentSpace,
|
|
1370
|
-
toggleShowThinking
|
|
1371
|
-
};
|