@downcity/city 1.1.6 → 1.1.9
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/bin/cli/agent/AgentManager.js +1 -1
- package/bin/cli/agent/AgentManager.js.map +1 -1
- package/bin/cli/agent/AgentReset.js +1 -1
- package/bin/cli/agent/AgentReset.js.map +1 -1
- package/bin/cli/agent/Init.d.ts.map +1 -1
- package/bin/cli/agent/Init.js +4 -2
- package/bin/cli/agent/Init.js.map +1 -1
- package/bin/cli/agent/Run.d.ts.map +1 -1
- package/bin/cli/agent/Run.js +4 -1
- package/bin/cli/agent/Run.js.map +1 -1
- package/bin/cli/control-plane/ControlPlaneInit.js +1 -1
- package/bin/cli/control-plane/ControlPlaneInit.js.map +1 -1
- package/bin/cli/control-plane/ControlPlaneProcess.d.ts.map +1 -1
- package/bin/cli/control-plane/ControlPlaneProcess.js +2 -1
- package/bin/cli/control-plane/ControlPlaneProcess.js.map +1 -1
- package/bin/cli/model/ModelCommandShared.d.ts +1 -1
- package/bin/cli/model/ModelCommandShared.d.ts.map +1 -1
- package/bin/cli/model/ModelCommandShared.js +1 -1
- package/bin/cli/model/ModelCommandShared.js.map +1 -1
- package/bin/cli/model/ModelCreateCommand.js +1 -1
- package/bin/cli/model/ModelCreateCommand.js.map +1 -1
- package/bin/cli/model/ModelManager.js +1 -1
- package/bin/cli/model/ModelManager.js.map +1 -1
- package/bin/cli/model/ModelReadCommand.js +1 -1
- package/bin/cli/model/ModelReadCommand.js.map +1 -1
- package/bin/cli/service/ServiceCommandSupport.d.ts.map +1 -1
- package/bin/cli/service/ServiceCommandSupport.js +2 -1
- package/bin/cli/service/ServiceCommandSupport.js.map +1 -1
- package/bin/cli/shared/ChatAuth.d.ts.map +1 -1
- package/bin/cli/shared/ChatAuth.js +6 -5
- package/bin/cli/shared/ChatAuth.js.map +1 -1
- package/bin/cli/shared/ChatManager.d.ts.map +1 -1
- package/bin/cli/shared/ChatManager.js +11 -7
- package/bin/cli/shared/ChatManager.js.map +1 -1
- package/bin/cli/shared/Env.js +1 -1
- package/bin/cli/shared/Env.js.map +1 -1
- package/bin/cli/shared/Plugins.js +2 -1
- package/bin/cli/shared/Plugins.js.map +1 -1
- package/bin/cli/shared/PublicHostEnv.js +1 -1
- package/bin/cli/shared/PublicHostEnv.js.map +1 -1
- package/bin/config/Paths.d.ts +1 -5
- package/bin/config/Paths.d.ts.map +1 -1
- package/bin/config/Paths.js +2 -8
- package/bin/config/Paths.js.map +1 -1
- package/bin/control/ChannelAccountApiRoutes.d.ts.map +1 -1
- package/bin/control/ChannelAccountApiRoutes.js +2 -1
- package/bin/control/ChannelAccountApiRoutes.js.map +1 -1
- package/bin/control/EnvApiRoutes.js +1 -1
- package/bin/control/EnvApiRoutes.js.map +1 -1
- package/bin/control/ModelApiRoutes.js +1 -1
- package/bin/control/ModelApiRoutes.js.map +1 -1
- package/bin/control/ModelPoolService.js +1 -1
- package/bin/control/ModelPoolService.js.map +1 -1
- package/bin/control/PluginApiRoutes.d.ts.map +1 -1
- package/bin/control/PluginApiRoutes.js +2 -1
- package/bin/control/PluginApiRoutes.js.map +1 -1
- package/bin/control/gateway/AgentActions.d.ts.map +1 -1
- package/bin/control/gateway/AgentActions.js +4 -3
- package/bin/control/gateway/AgentActions.js.map +1 -1
- package/bin/control/gateway/AgentCatalog.js +4 -4
- package/bin/control/gateway/AgentCatalog.js.map +1 -1
- package/bin/http/auth/AuthService.d.ts.map +1 -1
- package/bin/http/auth/AuthService.js +1 -1
- package/bin/http/auth/AuthService.js.map +1 -1
- package/bin/http/auth/AuthStore.js +2 -2
- package/bin/http/auth/AuthStore.js.map +1 -1
- package/bin/platform/PluginLifecycle.d.ts +51 -0
- package/bin/platform/PluginLifecycle.d.ts.map +1 -0
- package/bin/platform/PluginLifecycle.js +98 -0
- package/bin/platform/PluginLifecycle.js.map +1 -0
- package/bin/platform/chatAuthorization/Store.d.ts +31 -0
- package/bin/platform/chatAuthorization/Store.d.ts.map +1 -0
- package/bin/platform/chatAuthorization/Store.js +145 -0
- package/bin/platform/chatAuthorization/Store.js.map +1 -0
- package/bin/platform/store/StoreChannelAccountRepository.d.ts +34 -0
- package/bin/platform/store/StoreChannelAccountRepository.d.ts.map +1 -0
- package/bin/platform/store/StoreChannelAccountRepository.js +198 -0
- package/bin/platform/store/StoreChannelAccountRepository.js.map +1 -0
- package/bin/platform/store/StoreEnvRepository.d.ts +98 -0
- package/bin/platform/store/StoreEnvRepository.d.ts.map +1 -0
- package/bin/platform/store/StoreEnvRepository.js +334 -0
- package/bin/platform/store/StoreEnvRepository.js.map +1 -0
- package/bin/platform/store/StoreModelRepository.d.ts +61 -0
- package/bin/platform/store/StoreModelRepository.d.ts.map +1 -0
- package/bin/platform/store/StoreModelRepository.js +278 -0
- package/bin/platform/store/StoreModelRepository.js.map +1 -0
- package/bin/platform/store/StoreSchema.d.ts +13 -0
- package/bin/platform/store/StoreSchema.d.ts.map +1 -0
- package/bin/platform/store/StoreSchema.js +319 -0
- package/bin/platform/store/StoreSchema.js.map +1 -0
- package/bin/platform/store/StoreSecureSettings.d.ts +33 -0
- package/bin/platform/store/StoreSecureSettings.d.ts.map +1 -0
- package/bin/platform/store/StoreSecureSettings.js +91 -0
- package/bin/platform/store/StoreSecureSettings.js.map +1 -0
- package/bin/platform/store/StoreShared.d.ts +44 -0
- package/bin/platform/store/StoreShared.d.ts.map +1 -0
- package/bin/platform/store/StoreShared.js +40 -0
- package/bin/platform/store/StoreShared.js.map +1 -0
- package/bin/platform/store/crypto.d.ts +24 -0
- package/bin/platform/store/crypto.d.ts.map +1 -0
- package/bin/platform/store/crypto.js +101 -0
- package/bin/platform/store/crypto.js.map +1 -0
- package/bin/platform/store/index.d.ts +230 -0
- package/bin/platform/store/index.d.ts.map +1 -0
- package/bin/platform/store/index.js +360 -0
- package/bin/platform/store/index.js.map +1 -0
- package/bin/platform/store/schema.d.ts +690 -0
- package/bin/platform/store/schema.d.ts.map +1 -0
- package/bin/platform/store/schema.js +81 -0
- package/bin/platform/store/schema.js.map +1 -0
- package/bin/process/registry/AgentHostRuntime.d.ts +9 -1
- package/bin/process/registry/AgentHostRuntime.d.ts.map +1 -1
- package/bin/process/registry/AgentHostRuntime.js +77 -3
- package/bin/process/registry/AgentHostRuntime.js.map +1 -1
- package/package.json +2 -2
- package/src/cli/agent/AgentManager.ts +1 -1
- package/src/cli/agent/AgentReset.ts +1 -1
- package/src/cli/agent/Init.ts +13 -8
- package/src/cli/agent/Run.ts +4 -1
- package/src/cli/control-plane/ControlPlaneInit.ts +1 -1
- package/src/cli/control-plane/ControlPlaneProcess.ts +2 -1
- package/src/cli/model/ModelCommandShared.ts +1 -1
- package/src/cli/model/ModelCreateCommand.ts +1 -1
- package/src/cli/model/ModelManager.ts +1 -1
- package/src/cli/model/ModelReadCommand.ts +1 -1
- package/src/cli/service/ServiceCommandSupport.ts +2 -1
- package/src/cli/shared/ChatAuth.ts +5 -6
- package/src/cli/shared/ChatManager.ts +12 -7
- package/src/cli/shared/Env.ts +1 -1
- package/src/cli/shared/Plugins.ts +1 -1
- package/src/cli/shared/PublicHostEnv.ts +1 -1
- package/src/config/Paths.ts +2 -9
- package/src/control/ChannelAccountApiRoutes.ts +2 -1
- package/src/control/EnvApiRoutes.ts +1 -1
- package/src/control/ModelApiRoutes.ts +1 -1
- package/src/control/ModelPoolService.ts +1 -1
- package/src/control/PluginApiRoutes.ts +4 -2
- package/src/control/gateway/AgentActions.ts +24 -17
- package/src/control/gateway/AgentCatalog.ts +4 -4
- package/src/http/auth/AuthService.ts +1 -1
- package/src/http/auth/AuthStore.ts +2 -2
- package/src/platform/PluginLifecycle.ts +132 -0
- package/src/platform/chatAuthorization/Store.ts +181 -0
- package/src/platform/store/StoreChannelAccountRepository.ts +269 -0
- package/src/platform/store/StoreEnvRepository.ts +452 -0
- package/src/platform/store/StoreModelRepository.ts +324 -0
- package/src/platform/store/StoreSchema.ts +344 -0
- package/src/platform/store/StoreSecureSettings.ts +126 -0
- package/src/platform/store/StoreShared.ts +67 -0
- package/src/platform/store/crypto.ts +112 -0
- package/src/platform/store/index.ts +497 -0
- package/src/platform/store/schema.ts +103 -0
- package/src/process/registry/AgentHostRuntime.ts +79 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StoreModelRepository.js","sourceRoot":"","sources":["../../../src/platform/store/StoreModelRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PlatformStore Schema 管理。
|
|
3
|
+
*
|
|
4
|
+
* 关键点(中文)
|
|
5
|
+
* - 负责 `PlatformStore` 的建表与轻量迁移。
|
|
6
|
+
* - 启动时执行,不承担任何查询写入业务逻辑。
|
|
7
|
+
*/
|
|
8
|
+
import type { PlatformStoreContext } from "./StoreShared.js";
|
|
9
|
+
/**
|
|
10
|
+
* 初始化 PlatformStore 所需表结构。
|
|
11
|
+
*/
|
|
12
|
+
export declare function ensurePlatformStoreSchema(context: PlatformStoreContext): void;
|
|
13
|
+
//# sourceMappingURL=StoreSchema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StoreSchema.d.ts","sourceRoot":"","sources":["../../../src/platform/store/StoreSchema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7D;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAoF7E"}
|
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PlatformStore Schema 管理。
|
|
3
|
+
*
|
|
4
|
+
* 关键点(中文)
|
|
5
|
+
* - 负责 `PlatformStore` 的建表与轻量迁移。
|
|
6
|
+
* - 启动时执行,不承担任何查询写入业务逻辑。
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* 初始化 PlatformStore 所需表结构。
|
|
10
|
+
*/
|
|
11
|
+
export function ensurePlatformStoreSchema(context) {
|
|
12
|
+
context.sqlite.exec(`
|
|
13
|
+
CREATE TABLE IF NOT EXISTS model_providers (
|
|
14
|
+
id TEXT PRIMARY KEY NOT NULL,
|
|
15
|
+
type TEXT NOT NULL,
|
|
16
|
+
base_url TEXT,
|
|
17
|
+
api_key_encrypted TEXT,
|
|
18
|
+
created_at TEXT NOT NULL,
|
|
19
|
+
updated_at TEXT NOT NULL
|
|
20
|
+
);
|
|
21
|
+
`);
|
|
22
|
+
context.sqlite.exec(`
|
|
23
|
+
CREATE TABLE IF NOT EXISTS models (
|
|
24
|
+
id TEXT PRIMARY KEY NOT NULL,
|
|
25
|
+
provider_id TEXT NOT NULL,
|
|
26
|
+
name TEXT NOT NULL,
|
|
27
|
+
temperature REAL,
|
|
28
|
+
max_tokens INTEGER,
|
|
29
|
+
top_p REAL,
|
|
30
|
+
frequency_penalty REAL,
|
|
31
|
+
presence_penalty REAL,
|
|
32
|
+
anthropic_version TEXT,
|
|
33
|
+
is_paused INTEGER NOT NULL DEFAULT 0,
|
|
34
|
+
created_at TEXT NOT NULL,
|
|
35
|
+
updated_at TEXT NOT NULL
|
|
36
|
+
);
|
|
37
|
+
`);
|
|
38
|
+
ensureModelsTableColumns(context);
|
|
39
|
+
context.sqlite.exec(`
|
|
40
|
+
CREATE INDEX IF NOT EXISTS models_provider_id_idx
|
|
41
|
+
ON models(provider_id);
|
|
42
|
+
`);
|
|
43
|
+
context.sqlite.exec(`
|
|
44
|
+
CREATE TABLE IF NOT EXISTS platform_secure_settings (
|
|
45
|
+
key TEXT PRIMARY KEY NOT NULL,
|
|
46
|
+
value_encrypted TEXT NOT NULL,
|
|
47
|
+
created_at TEXT NOT NULL,
|
|
48
|
+
updated_at TEXT NOT NULL
|
|
49
|
+
);
|
|
50
|
+
`);
|
|
51
|
+
context.sqlite.exec(`
|
|
52
|
+
CREATE TABLE IF NOT EXISTS env_entries (
|
|
53
|
+
scope TEXT NOT NULL,
|
|
54
|
+
agent_id TEXT NOT NULL DEFAULT '',
|
|
55
|
+
key TEXT NOT NULL,
|
|
56
|
+
description TEXT,
|
|
57
|
+
value_encrypted TEXT NOT NULL,
|
|
58
|
+
created_at TEXT NOT NULL,
|
|
59
|
+
updated_at TEXT NOT NULL,
|
|
60
|
+
PRIMARY KEY (scope, agent_id, key)
|
|
61
|
+
);
|
|
62
|
+
`);
|
|
63
|
+
context.sqlite.exec(`
|
|
64
|
+
CREATE INDEX IF NOT EXISTS env_entries_scope_idx
|
|
65
|
+
ON env_entries(scope);
|
|
66
|
+
`);
|
|
67
|
+
context.sqlite.exec(`
|
|
68
|
+
CREATE INDEX IF NOT EXISTS env_entries_agent_id_idx
|
|
69
|
+
ON env_entries(agent_id);
|
|
70
|
+
`);
|
|
71
|
+
ensureEnvEntriesMigration(context);
|
|
72
|
+
context.sqlite.exec(`
|
|
73
|
+
CREATE TABLE IF NOT EXISTS channel_accounts (
|
|
74
|
+
id TEXT PRIMARY KEY NOT NULL,
|
|
75
|
+
channel TEXT NOT NULL,
|
|
76
|
+
name TEXT NOT NULL,
|
|
77
|
+
identity TEXT,
|
|
78
|
+
owner TEXT,
|
|
79
|
+
creator TEXT,
|
|
80
|
+
bot_token_encrypted TEXT,
|
|
81
|
+
app_id_encrypted TEXT,
|
|
82
|
+
app_secret_encrypted TEXT,
|
|
83
|
+
domain TEXT,
|
|
84
|
+
sandbox INTEGER,
|
|
85
|
+
created_at TEXT NOT NULL,
|
|
86
|
+
updated_at TEXT NOT NULL
|
|
87
|
+
);
|
|
88
|
+
`);
|
|
89
|
+
context.sqlite.exec(`
|
|
90
|
+
CREATE INDEX IF NOT EXISTS channel_accounts_channel_idx
|
|
91
|
+
ON channel_accounts(channel);
|
|
92
|
+
`);
|
|
93
|
+
ensureChannelAccountsTableColumns(context);
|
|
94
|
+
ensureAuthSchema(context);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* 初始化平台认证与授权表结构。
|
|
98
|
+
*
|
|
99
|
+
* 关键点(中文)
|
|
100
|
+
* - 该 schema 属于平台级全局能力,不依赖任何单个 agent 项目。
|
|
101
|
+
* - V1 只建表与索引,不在这里写入默认数据,默认数据由 auth bootstrap 负责。
|
|
102
|
+
*/
|
|
103
|
+
function ensureAuthSchema(context) {
|
|
104
|
+
context.sqlite.exec(`
|
|
105
|
+
CREATE TABLE IF NOT EXISTS auth_users (
|
|
106
|
+
id TEXT PRIMARY KEY NOT NULL,
|
|
107
|
+
username TEXT NOT NULL,
|
|
108
|
+
password_hash TEXT NOT NULL,
|
|
109
|
+
display_name TEXT,
|
|
110
|
+
status TEXT NOT NULL,
|
|
111
|
+
created_at TEXT NOT NULL,
|
|
112
|
+
updated_at TEXT NOT NULL
|
|
113
|
+
);
|
|
114
|
+
`);
|
|
115
|
+
context.sqlite.exec(`
|
|
116
|
+
CREATE UNIQUE INDEX IF NOT EXISTS auth_users_username_uq
|
|
117
|
+
ON auth_users(username);
|
|
118
|
+
`);
|
|
119
|
+
context.sqlite.exec(`
|
|
120
|
+
CREATE TABLE IF NOT EXISTS auth_roles (
|
|
121
|
+
id TEXT PRIMARY KEY NOT NULL,
|
|
122
|
+
name TEXT NOT NULL,
|
|
123
|
+
description TEXT,
|
|
124
|
+
created_at TEXT NOT NULL,
|
|
125
|
+
updated_at TEXT NOT NULL
|
|
126
|
+
);
|
|
127
|
+
`);
|
|
128
|
+
context.sqlite.exec(`
|
|
129
|
+
CREATE UNIQUE INDEX IF NOT EXISTS auth_roles_name_uq
|
|
130
|
+
ON auth_roles(name);
|
|
131
|
+
`);
|
|
132
|
+
context.sqlite.exec(`
|
|
133
|
+
CREATE TABLE IF NOT EXISTS auth_permissions (
|
|
134
|
+
id TEXT PRIMARY KEY NOT NULL,
|
|
135
|
+
key TEXT NOT NULL,
|
|
136
|
+
description TEXT,
|
|
137
|
+
created_at TEXT NOT NULL,
|
|
138
|
+
updated_at TEXT NOT NULL
|
|
139
|
+
);
|
|
140
|
+
`);
|
|
141
|
+
context.sqlite.exec(`
|
|
142
|
+
CREATE UNIQUE INDEX IF NOT EXISTS auth_permissions_key_uq
|
|
143
|
+
ON auth_permissions(key);
|
|
144
|
+
`);
|
|
145
|
+
context.sqlite.exec(`
|
|
146
|
+
CREATE TABLE IF NOT EXISTS auth_user_roles (
|
|
147
|
+
id TEXT PRIMARY KEY NOT NULL,
|
|
148
|
+
user_id TEXT NOT NULL,
|
|
149
|
+
role_id TEXT NOT NULL,
|
|
150
|
+
created_at TEXT NOT NULL
|
|
151
|
+
);
|
|
152
|
+
`);
|
|
153
|
+
context.sqlite.exec(`
|
|
154
|
+
CREATE UNIQUE INDEX IF NOT EXISTS auth_user_roles_user_role_uq
|
|
155
|
+
ON auth_user_roles(user_id, role_id);
|
|
156
|
+
`);
|
|
157
|
+
context.sqlite.exec(`
|
|
158
|
+
CREATE INDEX IF NOT EXISTS auth_user_roles_user_id_idx
|
|
159
|
+
ON auth_user_roles(user_id);
|
|
160
|
+
`);
|
|
161
|
+
context.sqlite.exec(`
|
|
162
|
+
CREATE INDEX IF NOT EXISTS auth_user_roles_role_id_idx
|
|
163
|
+
ON auth_user_roles(role_id);
|
|
164
|
+
`);
|
|
165
|
+
context.sqlite.exec(`
|
|
166
|
+
CREATE TABLE IF NOT EXISTS auth_role_permissions (
|
|
167
|
+
id TEXT PRIMARY KEY NOT NULL,
|
|
168
|
+
role_id TEXT NOT NULL,
|
|
169
|
+
permission_id TEXT NOT NULL,
|
|
170
|
+
created_at TEXT NOT NULL
|
|
171
|
+
);
|
|
172
|
+
`);
|
|
173
|
+
context.sqlite.exec(`
|
|
174
|
+
CREATE UNIQUE INDEX IF NOT EXISTS auth_role_permissions_role_permission_uq
|
|
175
|
+
ON auth_role_permissions(role_id, permission_id);
|
|
176
|
+
`);
|
|
177
|
+
context.sqlite.exec(`
|
|
178
|
+
CREATE INDEX IF NOT EXISTS auth_role_permissions_role_id_idx
|
|
179
|
+
ON auth_role_permissions(role_id);
|
|
180
|
+
`);
|
|
181
|
+
context.sqlite.exec(`
|
|
182
|
+
CREATE INDEX IF NOT EXISTS auth_role_permissions_permission_id_idx
|
|
183
|
+
ON auth_role_permissions(permission_id);
|
|
184
|
+
`);
|
|
185
|
+
context.sqlite.exec(`
|
|
186
|
+
CREATE TABLE IF NOT EXISTS auth_tokens (
|
|
187
|
+
id TEXT PRIMARY KEY NOT NULL,
|
|
188
|
+
user_id TEXT NOT NULL,
|
|
189
|
+
name TEXT NOT NULL,
|
|
190
|
+
token_hash TEXT NOT NULL,
|
|
191
|
+
expires_at TEXT,
|
|
192
|
+
revoked_at TEXT,
|
|
193
|
+
last_used_at TEXT,
|
|
194
|
+
created_at TEXT NOT NULL,
|
|
195
|
+
updated_at TEXT NOT NULL
|
|
196
|
+
);
|
|
197
|
+
`);
|
|
198
|
+
context.sqlite.exec(`
|
|
199
|
+
CREATE UNIQUE INDEX IF NOT EXISTS auth_tokens_token_hash_uq
|
|
200
|
+
ON auth_tokens(token_hash);
|
|
201
|
+
`);
|
|
202
|
+
context.sqlite.exec(`
|
|
203
|
+
CREATE INDEX IF NOT EXISTS auth_tokens_user_id_idx
|
|
204
|
+
ON auth_tokens(user_id);
|
|
205
|
+
`);
|
|
206
|
+
context.sqlite.exec(`
|
|
207
|
+
CREATE INDEX IF NOT EXISTS auth_tokens_expires_at_idx
|
|
208
|
+
ON auth_tokens(expires_at);
|
|
209
|
+
`);
|
|
210
|
+
context.sqlite.exec(`
|
|
211
|
+
CREATE TABLE IF NOT EXISTS auth_audit_logs (
|
|
212
|
+
id TEXT PRIMARY KEY NOT NULL,
|
|
213
|
+
actor_user_id TEXT,
|
|
214
|
+
actor_token_id TEXT,
|
|
215
|
+
resource_type TEXT NOT NULL,
|
|
216
|
+
resource_id TEXT,
|
|
217
|
+
action TEXT NOT NULL,
|
|
218
|
+
result TEXT NOT NULL,
|
|
219
|
+
request_id TEXT,
|
|
220
|
+
ip TEXT,
|
|
221
|
+
user_agent TEXT,
|
|
222
|
+
meta_json TEXT,
|
|
223
|
+
created_at TEXT NOT NULL
|
|
224
|
+
);
|
|
225
|
+
`);
|
|
226
|
+
context.sqlite.exec(`
|
|
227
|
+
CREATE INDEX IF NOT EXISTS auth_audit_logs_actor_created_idx
|
|
228
|
+
ON auth_audit_logs(actor_user_id, created_at);
|
|
229
|
+
`);
|
|
230
|
+
context.sqlite.exec(`
|
|
231
|
+
CREATE INDEX IF NOT EXISTS auth_audit_logs_action_created_idx
|
|
232
|
+
ON auth_audit_logs(action, created_at);
|
|
233
|
+
`);
|
|
234
|
+
context.sqlite.exec(`
|
|
235
|
+
CREATE INDEX IF NOT EXISTS auth_audit_logs_resource_idx
|
|
236
|
+
ON auth_audit_logs(resource_type, resource_id);
|
|
237
|
+
`);
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* 补齐 models 表的增量列。
|
|
241
|
+
*/
|
|
242
|
+
function ensureModelsTableColumns(context) {
|
|
243
|
+
const rows = context.sqlite
|
|
244
|
+
.prepare("PRAGMA table_info(models)")
|
|
245
|
+
.all();
|
|
246
|
+
const columns = new Set(rows.map((row) => String(row.name || "").trim()).filter(Boolean));
|
|
247
|
+
if (!columns.has("is_paused")) {
|
|
248
|
+
context.sqlite.exec("ALTER TABLE models ADD COLUMN is_paused INTEGER NOT NULL DEFAULT 0;");
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* 补齐 channel_accounts 表的增量列。
|
|
253
|
+
*/
|
|
254
|
+
function ensureChannelAccountsTableColumns(context) {
|
|
255
|
+
const rows = context.sqlite
|
|
256
|
+
.prepare("PRAGMA table_info(channel_accounts)")
|
|
257
|
+
.all();
|
|
258
|
+
const columns = new Set(rows.map((row) => String(row.name || "").trim()).filter(Boolean));
|
|
259
|
+
if (!columns.has("owner")) {
|
|
260
|
+
context.sqlite.exec("ALTER TABLE channel_accounts ADD COLUMN owner TEXT;");
|
|
261
|
+
}
|
|
262
|
+
if (!columns.has("creator")) {
|
|
263
|
+
context.sqlite.exec("ALTER TABLE channel_accounts ADD COLUMN creator TEXT;");
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* 迁移历史 env 双表到统一单表。
|
|
268
|
+
*/
|
|
269
|
+
function ensureEnvEntriesMigration(context) {
|
|
270
|
+
const envEntryColumns = context.sqlite
|
|
271
|
+
.prepare("PRAGMA table_info(env_entries)")
|
|
272
|
+
.all();
|
|
273
|
+
const envEntryColumnNames = new Set(envEntryColumns.map((row) => String(row.name || "").trim()).filter(Boolean));
|
|
274
|
+
if (!envEntryColumnNames.has("description")) {
|
|
275
|
+
context.sqlite.exec("ALTER TABLE env_entries ADD COLUMN description TEXT;");
|
|
276
|
+
}
|
|
277
|
+
const tableRows = context.sqlite
|
|
278
|
+
.prepare("SELECT name FROM sqlite_master WHERE type = 'table' AND name IN ('global_env', 'agent_env');")
|
|
279
|
+
.all();
|
|
280
|
+
const tableNames = new Set(tableRows.map((row) => String(row.name || "").trim()).filter(Boolean));
|
|
281
|
+
if (tableNames.has("global_env")) {
|
|
282
|
+
context.sqlite.exec(`
|
|
283
|
+
INSERT OR IGNORE INTO env_entries (
|
|
284
|
+
scope, agent_id, key, description, value_encrypted, created_at, updated_at
|
|
285
|
+
)
|
|
286
|
+
SELECT
|
|
287
|
+
'global',
|
|
288
|
+
'',
|
|
289
|
+
key,
|
|
290
|
+
NULL,
|
|
291
|
+
value_encrypted,
|
|
292
|
+
created_at,
|
|
293
|
+
updated_at
|
|
294
|
+
FROM global_env;
|
|
295
|
+
`);
|
|
296
|
+
}
|
|
297
|
+
if (tableNames.has("agent_env")) {
|
|
298
|
+
context.sqlite.exec(`
|
|
299
|
+
INSERT OR IGNORE INTO env_entries (
|
|
300
|
+
scope, agent_id, key, description, value_encrypted, created_at, updated_at
|
|
301
|
+
)
|
|
302
|
+
SELECT
|
|
303
|
+
'agent',
|
|
304
|
+
agent_id,
|
|
305
|
+
key,
|
|
306
|
+
NULL,
|
|
307
|
+
value_encrypted,
|
|
308
|
+
created_at,
|
|
309
|
+
updated_at
|
|
310
|
+
FROM agent_env;
|
|
311
|
+
`);
|
|
312
|
+
context.sqlite.exec(`
|
|
313
|
+
UPDATE env_entries
|
|
314
|
+
SET agent_id = ''
|
|
315
|
+
WHERE scope = 'global' AND agent_id IS NULL;
|
|
316
|
+
`);
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
//# sourceMappingURL=StoreSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StoreSchema.js","sourceRoot":"","sources":["../../../src/platform/store/StoreSchema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PlatformStore 加密配置仓储。
|
|
3
|
+
*
|
|
4
|
+
* 关键点(中文)
|
|
5
|
+
* - 管理 `platform_secure_settings` 表。
|
|
6
|
+
* - 平台级与 agent 级敏感配置都复用这套存储。
|
|
7
|
+
*/
|
|
8
|
+
import type { PlatformStoreContext } from "./StoreShared.js";
|
|
9
|
+
/**
|
|
10
|
+
* 同步读取加密 JSON 配置。
|
|
11
|
+
*/
|
|
12
|
+
export declare function getSecureSettingJsonSync<T>(context: PlatformStoreContext, key: string): T | null;
|
|
13
|
+
/**
|
|
14
|
+
* 同步写入加密 JSON 配置。
|
|
15
|
+
*/
|
|
16
|
+
export declare function setSecureSettingJsonSync(context: PlatformStoreContext, key: string, value: unknown): void;
|
|
17
|
+
/**
|
|
18
|
+
* 删除加密配置。
|
|
19
|
+
*/
|
|
20
|
+
export declare function removeSecureSetting(context: PlatformStoreContext, key: string): void;
|
|
21
|
+
/**
|
|
22
|
+
* 异步读取加密 JSON 配置。
|
|
23
|
+
*/
|
|
24
|
+
export declare function getSecureSettingJson<T>(context: PlatformStoreContext, key: string): Promise<T | null>;
|
|
25
|
+
/**
|
|
26
|
+
* 异步写入加密 JSON 配置。
|
|
27
|
+
*/
|
|
28
|
+
export declare function setSecureSettingJson(context: PlatformStoreContext, key: string, value: unknown): Promise<void>;
|
|
29
|
+
/**
|
|
30
|
+
* 构造 agent 级加密配置 key。
|
|
31
|
+
*/
|
|
32
|
+
export declare function buildAgentSecureSettingKey(agentIdInput: string, keyInput: string): string;
|
|
33
|
+
//# sourceMappingURL=StoreSecureSettings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StoreSecureSettings.d.ts","sourceRoot":"","sources":["../../../src/platform/store/StoreSecureSettings.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAG7D;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,EACxC,OAAO,EAAE,oBAAoB,EAC7B,GAAG,EAAE,MAAM,GACV,CAAC,GAAG,IAAI,CAYV;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,oBAAoB,EAC7B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,GACb,IAAI,CAgBN;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,oBAAoB,EAC7B,GAAG,EAAE,MAAM,GACV,IAAI,CAKN;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,CAAC,EAC1C,OAAO,EAAE,oBAAoB,EAC7B,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAYnB;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,oBAAoB,EAC7B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,GACf,MAAM,CAIR"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PlatformStore 加密配置仓储。
|
|
3
|
+
*
|
|
4
|
+
* 关键点(中文)
|
|
5
|
+
* - 管理 `platform_secure_settings` 表。
|
|
6
|
+
* - 平台级与 agent 级敏感配置都复用这套存储。
|
|
7
|
+
*/
|
|
8
|
+
import { decryptText, decryptTextSync, encryptText, encryptTextSync } from "./crypto.js";
|
|
9
|
+
import { normalizeNonEmptyText, nowIso } from "./StoreShared.js";
|
|
10
|
+
/**
|
|
11
|
+
* 同步读取加密 JSON 配置。
|
|
12
|
+
*/
|
|
13
|
+
export function getSecureSettingJsonSync(context, key) {
|
|
14
|
+
const settingKey = normalizeNonEmptyText(key, "setting key");
|
|
15
|
+
const row = context.sqlite
|
|
16
|
+
.prepare("SELECT value_encrypted FROM platform_secure_settings WHERE key = ? LIMIT 1;")
|
|
17
|
+
.get(settingKey);
|
|
18
|
+
if (!row || typeof row.value_encrypted !== "string" || !row.value_encrypted) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
const raw = decryptTextSync(row.value_encrypted);
|
|
22
|
+
return JSON.parse(raw);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* 同步写入加密 JSON 配置。
|
|
26
|
+
*/
|
|
27
|
+
export function setSecureSettingJsonSync(context, key, value) {
|
|
28
|
+
const settingKey = normalizeNonEmptyText(key, "setting key");
|
|
29
|
+
const raw = JSON.stringify(value ?? null);
|
|
30
|
+
const encrypted = encryptTextSync(raw);
|
|
31
|
+
const now = nowIso();
|
|
32
|
+
context.sqlite
|
|
33
|
+
.prepare(`
|
|
34
|
+
INSERT INTO platform_secure_settings (key, value_encrypted, created_at, updated_at)
|
|
35
|
+
VALUES (?, ?, ?, ?)
|
|
36
|
+
ON CONFLICT(key) DO UPDATE SET
|
|
37
|
+
value_encrypted = excluded.value_encrypted,
|
|
38
|
+
updated_at = excluded.updated_at;
|
|
39
|
+
`)
|
|
40
|
+
.run(settingKey, encrypted, now, now);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* 删除加密配置。
|
|
44
|
+
*/
|
|
45
|
+
export function removeSecureSetting(context, key) {
|
|
46
|
+
const settingKey = normalizeNonEmptyText(key, "setting key");
|
|
47
|
+
context.sqlite
|
|
48
|
+
.prepare("DELETE FROM platform_secure_settings WHERE key = ?;")
|
|
49
|
+
.run(settingKey);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* 异步读取加密 JSON 配置。
|
|
53
|
+
*/
|
|
54
|
+
export async function getSecureSettingJson(context, key) {
|
|
55
|
+
const settingKey = normalizeNonEmptyText(key, "setting key");
|
|
56
|
+
const row = context.sqlite
|
|
57
|
+
.prepare("SELECT value_encrypted FROM platform_secure_settings WHERE key = ? LIMIT 1;")
|
|
58
|
+
.get(settingKey);
|
|
59
|
+
if (!row || typeof row.value_encrypted !== "string" || !row.value_encrypted) {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
const raw = await decryptText(row.value_encrypted);
|
|
63
|
+
return JSON.parse(raw);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* 异步写入加密 JSON 配置。
|
|
67
|
+
*/
|
|
68
|
+
export async function setSecureSettingJson(context, key, value) {
|
|
69
|
+
const settingKey = normalizeNonEmptyText(key, "setting key");
|
|
70
|
+
const raw = JSON.stringify(value ?? null);
|
|
71
|
+
const encrypted = await encryptText(raw);
|
|
72
|
+
const now = nowIso();
|
|
73
|
+
context.sqlite
|
|
74
|
+
.prepare(`
|
|
75
|
+
INSERT INTO platform_secure_settings (key, value_encrypted, created_at, updated_at)
|
|
76
|
+
VALUES (?, ?, ?, ?)
|
|
77
|
+
ON CONFLICT(key) DO UPDATE SET
|
|
78
|
+
value_encrypted = excluded.value_encrypted,
|
|
79
|
+
updated_at = excluded.updated_at;
|
|
80
|
+
`)
|
|
81
|
+
.run(settingKey, encrypted, now, now);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* 构造 agent 级加密配置 key。
|
|
85
|
+
*/
|
|
86
|
+
export function buildAgentSecureSettingKey(agentIdInput, keyInput) {
|
|
87
|
+
const agentId = normalizeNonEmptyText(agentIdInput, "agentId");
|
|
88
|
+
const key = normalizeNonEmptyText(keyInput, "agent secure setting key");
|
|
89
|
+
return `agent:${agentId}:${key}`;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=StoreSecureSettings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StoreSecureSettings.js","sourceRoot":"","sources":["../../../src/platform/store/StoreSecureSettings.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PlatformStore 共享内部工具。
|
|
3
|
+
*
|
|
4
|
+
* 关键点(中文)
|
|
5
|
+
* - 这里只放 `PlatformStore` 内部多个子模块共用的类型与纯函数。
|
|
6
|
+
* - 对外不暴露业务语义,只服务 `utils/store/*` 内部实现。
|
|
7
|
+
*/
|
|
8
|
+
import Database from "better-sqlite3";
|
|
9
|
+
import { drizzle } from "drizzle-orm/better-sqlite3";
|
|
10
|
+
import type { StoredChannelAccountChannel } from "@downcity/agent";
|
|
11
|
+
/**
|
|
12
|
+
* Drizzle SQLite 实例类型。
|
|
13
|
+
*/
|
|
14
|
+
export type PlatformDrizzleDb = ReturnType<typeof drizzle>;
|
|
15
|
+
/**
|
|
16
|
+
* PlatformStore 子模块上下文。
|
|
17
|
+
*/
|
|
18
|
+
export interface PlatformStoreContext {
|
|
19
|
+
/**
|
|
20
|
+
* 原始 SQLite 连接。
|
|
21
|
+
*/
|
|
22
|
+
sqlite: Database.Database;
|
|
23
|
+
/**
|
|
24
|
+
* Drizzle 查询实例。
|
|
25
|
+
*/
|
|
26
|
+
db: PlatformDrizzleDb;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* 返回当前时间的 ISO 字符串。
|
|
30
|
+
*/
|
|
31
|
+
export declare function nowIso(): string;
|
|
32
|
+
/**
|
|
33
|
+
* 归一化非空文本。
|
|
34
|
+
*/
|
|
35
|
+
export declare function normalizeNonEmptyText(value: string, fieldName: string): string;
|
|
36
|
+
/**
|
|
37
|
+
* 把字符串裁剪为可选文本。
|
|
38
|
+
*/
|
|
39
|
+
export declare function optionalTrimmedText(value: string | undefined): string | undefined;
|
|
40
|
+
/**
|
|
41
|
+
* 规范化 channel account 的 channel 字段。
|
|
42
|
+
*/
|
|
43
|
+
export declare function normalizeChannelAccountChannel(input: string): StoredChannelAccountChannel;
|
|
44
|
+
//# sourceMappingURL=StoreShared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StoreShared.d.ts","sourceRoot":"","sources":["../../../src/platform/store/StoreShared.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAEnE;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC;IAC1B;;OAEG;IACH,EAAE,EAAE,iBAAiB,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,MAAM,IAAI,MAAM,CAE/B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAI9E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAGjF;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,MAAM,GACZ,2BAA2B,CAM7B"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PlatformStore 共享内部工具。
|
|
3
|
+
*
|
|
4
|
+
* 关键点(中文)
|
|
5
|
+
* - 这里只放 `PlatformStore` 内部多个子模块共用的类型与纯函数。
|
|
6
|
+
* - 对外不暴露业务语义,只服务 `utils/store/*` 内部实现。
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* 返回当前时间的 ISO 字符串。
|
|
10
|
+
*/
|
|
11
|
+
export function nowIso() {
|
|
12
|
+
return new Date().toISOString();
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* 归一化非空文本。
|
|
16
|
+
*/
|
|
17
|
+
export function normalizeNonEmptyText(value, fieldName) {
|
|
18
|
+
const normalized = String(value || "").trim();
|
|
19
|
+
if (!normalized)
|
|
20
|
+
throw new Error(`${fieldName} cannot be empty`);
|
|
21
|
+
return normalized;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* 把字符串裁剪为可选文本。
|
|
25
|
+
*/
|
|
26
|
+
export function optionalTrimmedText(value) {
|
|
27
|
+
const normalized = String(value || "").trim();
|
|
28
|
+
return normalized || undefined;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* 规范化 channel account 的 channel 字段。
|
|
32
|
+
*/
|
|
33
|
+
export function normalizeChannelAccountChannel(input) {
|
|
34
|
+
const channel = String(input || "").trim().toLowerCase();
|
|
35
|
+
if (channel === "telegram" || channel === "feishu" || channel === "qq") {
|
|
36
|
+
return channel;
|
|
37
|
+
}
|
|
38
|
+
throw new Error(`Unsupported channel account type: ${input}`);
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=StoreShared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StoreShared.js","sourceRoot":"","sources":["../../../src/platform/store/StoreShared.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAyBH;;GAEG;AACH,MAAM,UAAU,MAAM;IACpB,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAa,EAAE,SAAiB;IACpE,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,IAAI,CAAC,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,kBAAkB,CAAC,CAAC;IACjE,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAyB;IAC3D,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,OAAO,UAAU,IAAI,SAAS,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,8BAA8B,CAC5C,KAAa;IAEb,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACzD,IAAI,OAAO,KAAK,UAAU,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACvE,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,qCAAqC,KAAK,EAAE,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 重置缓存密钥。
|
|
3
|
+
*
|
|
4
|
+
* 关键点(中文)
|
|
5
|
+
* - 仅在迁移阶段替换 key 文件后调用,确保后续解密重新从磁盘加载最新 key。
|
|
6
|
+
*/
|
|
7
|
+
export declare function resetModelDbKeyCache(): void;
|
|
8
|
+
/**
|
|
9
|
+
* 同步加密字符串(用于同步配置读取链路)。
|
|
10
|
+
*/
|
|
11
|
+
export declare function encryptTextSync(plainText: string): string;
|
|
12
|
+
/**
|
|
13
|
+
* 同步解密字符串(用于同步配置读取链路)。
|
|
14
|
+
*/
|
|
15
|
+
export declare function decryptTextSync(cipherText: string): string;
|
|
16
|
+
/**
|
|
17
|
+
* 加密字符串。
|
|
18
|
+
*/
|
|
19
|
+
export declare function encryptText(plainText: string): Promise<string>;
|
|
20
|
+
/**
|
|
21
|
+
* 解密字符串。
|
|
22
|
+
*/
|
|
23
|
+
export declare function decryptText(cipherText: string): Promise<string>;
|
|
24
|
+
//# sourceMappingURL=crypto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../../src/platform/store/crypto.ts"],"names":[],"mappings":"AAiBA;;;;;GAKG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AA0CD;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAOzD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAa1D;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGpE;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGrE"}
|