@downcity/agent 1.1.6 → 1.1.8
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/agent/AgentContext.d.ts.map +1 -1
- package/bin/agent/AgentContext.js +1 -0
- package/bin/agent/AgentContext.js.map +1 -1
- package/bin/agent/AgentContextTypes.d.ts +5 -1
- package/bin/agent/AgentContextTypes.d.ts.map +1 -1
- package/bin/agent/AgentRuntime.d.ts +6 -1
- package/bin/agent/AgentRuntime.d.ts.map +1 -1
- package/bin/agent/AgentRuntime.js +22 -3
- package/bin/agent/AgentRuntime.js.map +1 -1
- package/bin/agent/AgentRuntimeState.d.ts.map +1 -1
- package/bin/agent/AgentRuntimeState.js +58 -2
- package/bin/agent/AgentRuntimeState.js.map +1 -1
- package/bin/agent/AgentRuntimeTypes.d.ts +5 -1
- package/bin/agent/AgentRuntimeTypes.d.ts.map +1 -1
- package/bin/agent/project/AgentInitializer.d.ts +3 -2
- package/bin/agent/project/AgentInitializer.d.ts.map +1 -1
- package/bin/agent/project/AgentInitializer.js +34 -44
- package/bin/agent/project/AgentInitializer.js.map +1 -1
- package/bin/config/Config.d.ts.map +1 -1
- package/bin/config/Config.js +2 -21
- package/bin/config/Config.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/host/daemon/ProjectSetup.d.ts +2 -1
- package/bin/host/daemon/ProjectSetup.d.ts.map +1 -1
- package/bin/host/daemon/ProjectSetup.js +14 -21
- package/bin/host/daemon/ProjectSetup.js.map +1 -1
- package/bin/host/runtime/AgentHostRuntime.d.ts.map +1 -1
- package/bin/host/runtime/AgentHostRuntime.js +1 -2
- package/bin/host/runtime/AgentHostRuntime.js.map +1 -1
- package/bin/host/runtime/CityPaths.d.ts +0 -3
- package/bin/host/runtime/CityPaths.d.ts.map +1 -1
- package/bin/host/runtime/CityPaths.js +0 -3
- package/bin/host/runtime/CityPaths.js.map +1 -1
- package/bin/host/sdk/Agent.d.ts +4 -0
- package/bin/host/sdk/Agent.d.ts.map +1 -1
- package/bin/host/sdk/Agent.js +71 -2
- package/bin/host/sdk/Agent.js.map +1 -1
- package/bin/host/sdk/AgentSdkTypes.d.ts +9 -0
- package/bin/host/sdk/AgentSdkTypes.d.ts.map +1 -1
- package/bin/host/sdk/SdkSessionSystemComposer.d.ts +11 -2
- package/bin/host/sdk/SdkSessionSystemComposer.d.ts.map +1 -1
- package/bin/host/sdk/SdkSessionSystemComposer.js +19 -2
- package/bin/host/sdk/SdkSessionSystemComposer.js.map +1 -1
- package/bin/host/sdk/Session.d.ts +10 -0
- package/bin/host/sdk/Session.d.ts.map +1 -1
- package/bin/host/sdk/Session.js +8 -0
- package/bin/host/sdk/Session.js.map +1 -1
- package/bin/http/Server.d.ts.map +1 -1
- package/bin/http/Server.js +1 -11
- package/bin/http/Server.js.map +1 -1
- package/bin/http/auth/AuthEnv.d.ts +0 -9
- package/bin/http/auth/AuthEnv.d.ts.map +1 -1
- package/bin/http/auth/AuthEnv.js +0 -9
- package/bin/http/auth/AuthEnv.js.map +1 -1
- package/bin/http/auth/CliAuthStateStore.d.ts +0 -4
- package/bin/http/auth/CliAuthStateStore.d.ts.map +1 -1
- package/bin/http/auth/CliAuthStateStore.js +0 -4
- package/bin/http/auth/CliAuthStateStore.js.map +1 -1
- package/bin/http/control/ModelRoutes.d.ts.map +1 -1
- package/bin/http/control/ModelRoutes.js +3 -8
- package/bin/http/control/ModelRoutes.js.map +1 -1
- package/bin/index.d.ts +2 -6
- package/bin/index.d.ts.map +1 -1
- package/bin/index.js +2 -6
- package/bin/index.js.map +1 -1
- package/bin/model/CreateModel.d.ts +2 -2
- package/bin/model/CreateModel.d.ts.map +1 -1
- package/bin/model/CreateModel.js +13 -12
- package/bin/model/CreateModel.js.map +1 -1
- package/bin/plugin/Activation.d.ts +4 -0
- package/bin/plugin/Activation.d.ts.map +1 -1
- package/bin/plugin/Activation.js +2 -2
- package/bin/plugin/Activation.js.map +1 -1
- package/bin/plugin/LocalExecution.d.ts.map +1 -1
- package/bin/plugin/LocalExecution.js +23 -2
- package/bin/plugin/LocalExecution.js.map +1 -1
- package/bin/plugin/PluginRegistry.js +2 -2
- package/bin/plugin/PluginRegistry.js.map +1 -1
- package/bin/plugins/asr/Plugin.d.ts.map +1 -1
- package/bin/plugins/asr/Plugin.js +4 -5
- package/bin/plugins/asr/Plugin.js.map +1 -1
- package/bin/plugins/auth/Plugin.d.ts.map +1 -1
- package/bin/plugins/auth/Plugin.js +1 -0
- package/bin/plugins/auth/Plugin.js.map +1 -1
- package/bin/plugins/auth/runtime/AuthorizationConfig.d.ts +4 -4
- package/bin/plugins/auth/runtime/AuthorizationConfig.d.ts.map +1 -1
- package/bin/plugins/auth/runtime/AuthorizationConfig.js +28 -26
- package/bin/plugins/auth/runtime/AuthorizationConfig.js.map +1 -1
- package/bin/plugins/auth/runtime/AuthorizationPolicy.d.ts +2 -0
- package/bin/plugins/auth/runtime/AuthorizationPolicy.d.ts.map +1 -1
- package/bin/plugins/auth/runtime/AuthorizationPolicy.js +3 -2
- package/bin/plugins/auth/runtime/AuthorizationPolicy.js.map +1 -1
- package/bin/plugins/auth/runtime/AuthorizationStore.d.ts +1 -1
- package/bin/plugins/auth/runtime/AuthorizationStore.d.ts.map +1 -1
- package/bin/plugins/auth/runtime/AuthorizationStore.js +3 -4
- package/bin/plugins/auth/runtime/AuthorizationStore.js.map +1 -1
- package/bin/plugins/skill/Plugin.js +2 -2
- package/bin/plugins/skill/Plugin.js.map +1 -1
- package/bin/plugins/tts/Plugin.d.ts.map +1 -1
- package/bin/plugins/tts/Plugin.js +4 -5
- package/bin/plugins/tts/Plugin.js.map +1 -1
- package/bin/plugins/web/Plugin.d.ts.map +1 -1
- package/bin/plugins/web/Plugin.js +4 -5
- package/bin/plugins/web/Plugin.js.map +1 -1
- package/bin/plugins/workboard/Plugin.js +2 -2
- package/bin/plugins/workboard/Plugin.js.map +1 -1
- package/bin/service/builtins/chat/accounts/ChannelAccountService.d.ts +4 -1
- package/bin/service/builtins/chat/accounts/ChannelAccountService.d.ts.map +1 -1
- package/bin/service/builtins/chat/accounts/ChannelAccountService.js +64 -91
- package/bin/service/builtins/chat/accounts/ChannelAccountService.js.map +1 -1
- package/bin/service/builtins/chat/runtime/ChatChannelActions.d.ts.map +1 -1
- package/bin/service/builtins/chat/runtime/ChatChannelActions.js +11 -18
- package/bin/service/builtins/chat/runtime/ChatChannelActions.js.map +1 -1
- package/bin/service/builtins/chat/runtime/ChatChannelCore.d.ts +1 -1
- package/bin/service/builtins/chat/runtime/ChatChannelCore.d.ts.map +1 -1
- package/bin/service/builtins/chat/runtime/ChatChannelCore.js +9 -17
- package/bin/service/builtins/chat/runtime/ChatChannelCore.js.map +1 -1
- package/bin/service/builtins/memory/Action.d.ts +1 -5
- package/bin/service/builtins/memory/Action.d.ts.map +1 -1
- package/bin/service/builtins/memory/Action.js +4 -42
- package/bin/service/builtins/memory/Action.js.map +1 -1
- package/bin/service/builtins/memory/MemoryService.d.ts.map +1 -1
- package/bin/service/builtins/memory/MemoryService.js +2 -32
- package/bin/service/builtins/memory/MemoryService.js.map +1 -1
- package/bin/service/builtins/memory/runtime/Search.d.ts +7 -3
- package/bin/service/builtins/memory/runtime/Search.d.ts.map +1 -1
- package/bin/service/builtins/memory/runtime/Search.js +220 -16
- package/bin/service/builtins/memory/runtime/Search.js.map +1 -1
- package/bin/service/builtins/memory/runtime/Store.d.ts +9 -50
- package/bin/service/builtins/memory/runtime/Store.d.ts.map +1 -1
- package/bin/service/builtins/memory/runtime/Store.js +10 -130
- package/bin/service/builtins/memory/runtime/Store.js.map +1 -1
- package/bin/service/builtins/memory/runtime/Writer.d.ts.map +1 -1
- package/bin/service/builtins/memory/runtime/Writer.js +1 -2
- package/bin/service/builtins/memory/runtime/Writer.js.map +1 -1
- package/bin/service/builtins/memory/types/Memory.d.ts +3 -57
- package/bin/service/builtins/memory/types/Memory.d.ts.map +1 -1
- package/bin/service/schedule/Store.d.ts +22 -25
- package/bin/service/schedule/Store.d.ts.map +1 -1
- package/bin/service/schedule/Store.js +172 -154
- package/bin/service/schedule/Store.js.map +1 -1
- package/bin/session/composer/system/default/SystemDomain.d.ts.map +1 -1
- package/bin/session/composer/system/default/SystemDomain.js +1 -0
- package/bin/session/composer/system/default/SystemDomain.js.map +1 -1
- package/bin/shared/types/AgentHost.d.ts +120 -4
- package/bin/shared/types/AgentHost.d.ts.map +1 -1
- package/bin/shared/types/Plugin.d.ts +5 -1
- package/bin/shared/types/Plugin.d.ts.map +1 -1
- package/package.json +1 -4
- package/src/agent/AgentContext.ts +1 -0
- package/src/agent/AgentContextTypes.ts +5 -0
- package/src/agent/AgentRuntime.ts +32 -3
- package/src/agent/AgentRuntimeState.ts +66 -2
- package/src/agent/AgentRuntimeTypes.ts +5 -0
- package/src/agent/project/AgentInitializer.ts +40 -42
- package/src/config/Config.ts +2 -17
- package/src/config/Paths.ts +2 -9
- package/src/host/daemon/ProjectSetup.ts +19 -21
- package/src/host/runtime/AgentHostRuntime.ts +0 -2
- package/src/host/runtime/CityPaths.ts +0 -3
- package/src/host/sdk/Agent.ts +67 -2
- package/src/host/sdk/AgentSdkTypes.ts +10 -0
- package/src/host/sdk/SdkSessionSystemComposer.ts +39 -2
- package/src/host/sdk/Session.ts +18 -0
- package/src/http/Server.ts +0 -13
- package/src/http/auth/AuthEnv.ts +0 -9
- package/src/http/auth/CliAuthStateStore.ts +0 -4
- package/src/http/control/ModelRoutes.ts +3 -9
- package/src/index.ts +2 -12
- package/src/model/CreateModel.ts +15 -13
- package/src/plugin/Activation.ts +6 -2
- package/src/plugin/LocalExecution.ts +24 -2
- package/src/plugin/PluginRegistry.ts +2 -2
- package/src/plugins/asr/Plugin.ts +4 -5
- package/src/plugins/auth/Plugin.ts +1 -0
- package/src/plugins/auth/runtime/AuthorizationConfig.ts +47 -37
- package/src/plugins/auth/runtime/AuthorizationPolicy.ts +5 -2
- package/src/plugins/auth/runtime/AuthorizationStore.ts +6 -5
- package/src/plugins/skill/Plugin.ts +2 -2
- package/src/plugins/tts/Plugin.ts +4 -5
- package/src/plugins/web/Plugin.ts +4 -5
- package/src/plugins/workboard/Plugin.ts +2 -2
- package/src/service/builtins/chat/accounts/ChannelAccountService.ts +42 -62
- package/src/service/builtins/chat/runtime/ChatChannelActions.ts +12 -18
- package/src/service/builtins/chat/runtime/ChatChannelCore.ts +9 -14
- package/src/service/builtins/memory/Action.ts +6 -47
- package/src/service/builtins/memory/MemoryService.ts +1 -33
- package/src/service/builtins/memory/runtime/Search.ts +256 -16
- package/src/service/builtins/memory/runtime/Store.ts +13 -185
- package/src/service/builtins/memory/runtime/Writer.ts +1 -2
- package/src/service/builtins/memory/types/Memory.ts +2 -59
- package/src/service/schedule/Store.ts +215 -175
- package/src/session/composer/system/default/SystemDomain.ts +1 -0
- package/src/shared/types/AgentHost.ts +138 -4
- package/src/shared/types/Plugin.ts +5 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/bin/http/auth/AuthMiddleware.d.ts +0 -36
- package/bin/http/auth/AuthMiddleware.d.ts.map +0 -1
- package/bin/http/auth/AuthMiddleware.js +0 -37
- package/bin/http/auth/AuthMiddleware.js.map +0 -1
- package/bin/http/auth/AuthRoutes.d.ts +0 -17
- package/bin/http/auth/AuthRoutes.d.ts.map +0 -1
- package/bin/http/auth/AuthRoutes.js +0 -78
- package/bin/http/auth/AuthRoutes.js.map +0 -1
- package/bin/http/auth/AuthService.d.ts +0 -119
- package/bin/http/auth/AuthService.d.ts.map +0 -1
- package/bin/http/auth/AuthService.js +0 -307
- package/bin/http/auth/AuthService.js.map +0 -1
- package/bin/http/auth/AuthStore.d.ts +0 -165
- package/bin/http/auth/AuthStore.d.ts.map +0 -1
- package/bin/http/auth/AuthStore.js +0 -442
- package/bin/http/auth/AuthStore.js.map +0 -1
- package/bin/http/auth/RoutePolicy.d.ts +0 -30
- package/bin/http/auth/RoutePolicy.d.ts.map +0 -1
- package/bin/http/auth/RoutePolicy.js +0 -229
- package/bin/http/auth/RoutePolicy.js.map +0 -1
- package/bin/plugin/Lifecycle.d.ts +0 -33
- package/bin/plugin/Lifecycle.d.ts.map +0 -1
- package/bin/plugin/Lifecycle.js +0 -102
- package/bin/plugin/Lifecycle.js.map +0 -1
- package/bin/service/builtins/memory/runtime/Indexer.d.ts +0 -71
- package/bin/service/builtins/memory/runtime/Indexer.d.ts.map +0 -1
- package/bin/service/builtins/memory/runtime/Indexer.js +0 -345
- package/bin/service/builtins/memory/runtime/Indexer.js.map +0 -1
- package/bin/service/schedule/Schema.d.ts +0 -171
- package/bin/service/schedule/Schema.d.ts.map +0 -1
- package/bin/service/schedule/Schema.js +0 -26
- package/bin/service/schedule/Schema.js.map +0 -1
- package/bin/shared/utils/store/StoreChannelAccountRepository.d.ts +0 -34
- package/bin/shared/utils/store/StoreChannelAccountRepository.d.ts.map +0 -1
- package/bin/shared/utils/store/StoreChannelAccountRepository.js +0 -198
- package/bin/shared/utils/store/StoreChannelAccountRepository.js.map +0 -1
- package/bin/shared/utils/store/StoreEnvRepository.d.ts +0 -98
- package/bin/shared/utils/store/StoreEnvRepository.d.ts.map +0 -1
- package/bin/shared/utils/store/StoreEnvRepository.js +0 -334
- package/bin/shared/utils/store/StoreEnvRepository.js.map +0 -1
- package/bin/shared/utils/store/StoreModelRepository.d.ts +0 -61
- package/bin/shared/utils/store/StoreModelRepository.d.ts.map +0 -1
- package/bin/shared/utils/store/StoreModelRepository.js +0 -278
- package/bin/shared/utils/store/StoreModelRepository.js.map +0 -1
- package/bin/shared/utils/store/StoreSchema.d.ts +0 -13
- package/bin/shared/utils/store/StoreSchema.d.ts.map +0 -1
- package/bin/shared/utils/store/StoreSchema.js +0 -319
- package/bin/shared/utils/store/StoreSchema.js.map +0 -1
- package/bin/shared/utils/store/StoreSecureSettings.d.ts +0 -33
- package/bin/shared/utils/store/StoreSecureSettings.d.ts.map +0 -1
- package/bin/shared/utils/store/StoreSecureSettings.js +0 -91
- package/bin/shared/utils/store/StoreSecureSettings.js.map +0 -1
- package/bin/shared/utils/store/StoreShared.d.ts +0 -44
- package/bin/shared/utils/store/StoreShared.d.ts.map +0 -1
- package/bin/shared/utils/store/StoreShared.js +0 -40
- package/bin/shared/utils/store/StoreShared.js.map +0 -1
- package/bin/shared/utils/store/crypto.d.ts +0 -24
- package/bin/shared/utils/store/crypto.d.ts.map +0 -1
- package/bin/shared/utils/store/crypto.js +0 -101
- package/bin/shared/utils/store/crypto.js.map +0 -1
- package/bin/shared/utils/store/index.d.ts +0 -230
- package/bin/shared/utils/store/index.d.ts.map +0 -1
- package/bin/shared/utils/store/index.js +0 -360
- package/bin/shared/utils/store/index.js.map +0 -1
- package/bin/shared/utils/store/schema.d.ts +0 -690
- package/bin/shared/utils/store/schema.d.ts.map +0 -1
- package/bin/shared/utils/store/schema.js +0 -81
- package/bin/shared/utils/store/schema.js.map +0 -1
- package/src/http/auth/AuthMiddleware.ts +0 -61
- package/src/http/auth/AuthRoutes.ts +0 -100
- package/src/http/auth/AuthService.ts +0 -367
- package/src/http/auth/AuthStore.ts +0 -572
- package/src/http/auth/RoutePolicy.ts +0 -255
- package/src/plugin/Lifecycle.ts +0 -116
- package/src/service/builtins/memory/runtime/Indexer.ts +0 -466
- package/src/service/schedule/Schema.ts +0 -34
- package/src/shared/utils/store/StoreChannelAccountRepository.ts +0 -269
- package/src/shared/utils/store/StoreEnvRepository.ts +0 -452
- package/src/shared/utils/store/StoreModelRepository.ts +0 -324
- package/src/shared/utils/store/StoreSchema.ts +0 -344
- package/src/shared/utils/store/StoreSecureSettings.ts +0 -126
- package/src/shared/utils/store/StoreShared.ts +0 -67
- package/src/shared/utils/store/crypto.ts +0 -112
- package/src/shared/utils/store/index.ts +0 -497
- package/src/shared/utils/store/schema.ts +0 -103
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* PlatformStore 模型与 Provider 仓储。
|
|
3
|
-
*
|
|
4
|
-
* 关键点(中文)
|
|
5
|
-
* - 只负责 model/provider 相关读写,不处理 env、channel account、secure settings。
|
|
6
|
-
* - 对外暴露纯函数,`PlatformStore` 作为门面调用。
|
|
7
|
-
*/
|
|
8
|
-
import type { StoredModel, StoredModelProvider, StoredProviderMeta, UpsertModelInput, UpsertModelProviderInput } from "../../../shared/types/Store.js";
|
|
9
|
-
import type { PlatformStoreContext } from "./StoreShared.js";
|
|
10
|
-
/**
|
|
11
|
-
* 列出 providers。
|
|
12
|
-
*/
|
|
13
|
-
export declare function listStoredProviders(context: PlatformStoreContext): Promise<StoredModelProvider[]>;
|
|
14
|
-
/**
|
|
15
|
-
* 同步列出 provider 元信息(不含 API Key)。
|
|
16
|
-
*/
|
|
17
|
-
export declare function listStoredProviderMetas(context: PlatformStoreContext): StoredProviderMeta[];
|
|
18
|
-
/**
|
|
19
|
-
* 获取单个 provider。
|
|
20
|
-
*/
|
|
21
|
-
export declare function getStoredProvider(context: PlatformStoreContext, providerId: string): Promise<StoredModelProvider | null>;
|
|
22
|
-
/**
|
|
23
|
-
* 新增或更新 provider。
|
|
24
|
-
*/
|
|
25
|
-
export declare function upsertStoredProvider(context: PlatformStoreContext, input: UpsertModelProviderInput): Promise<void>;
|
|
26
|
-
/**
|
|
27
|
-
* 删除 provider。
|
|
28
|
-
*/
|
|
29
|
-
export declare function removeStoredProvider(context: PlatformStoreContext, providerId: string): void;
|
|
30
|
-
/**
|
|
31
|
-
* 列出 models。
|
|
32
|
-
*/
|
|
33
|
-
export declare function listStoredModels(context: PlatformStoreContext): StoredModel[];
|
|
34
|
-
/**
|
|
35
|
-
* 获取单个 model。
|
|
36
|
-
*/
|
|
37
|
-
export declare function getStoredModel(context: PlatformStoreContext, modelId: string): StoredModel | null;
|
|
38
|
-
/**
|
|
39
|
-
* 新增或更新 model。
|
|
40
|
-
*/
|
|
41
|
-
export declare function upsertStoredModel(context: PlatformStoreContext, input: UpsertModelInput): void;
|
|
42
|
-
/**
|
|
43
|
-
* 切换 model 暂停状态。
|
|
44
|
-
*/
|
|
45
|
-
export declare function setStoredModelPaused(context: PlatformStoreContext, modelId: string, paused: boolean): void;
|
|
46
|
-
/**
|
|
47
|
-
* 删除 model。
|
|
48
|
-
*/
|
|
49
|
-
export declare function removeStoredModel(context: PlatformStoreContext, modelId: string): void;
|
|
50
|
-
/**
|
|
51
|
-
* 获取“model + provider”聚合信息。
|
|
52
|
-
*/
|
|
53
|
-
export declare function getResolvedStoredModel(context: PlatformStoreContext, modelId: string): Promise<{
|
|
54
|
-
model: StoredModel;
|
|
55
|
-
provider: StoredModelProvider;
|
|
56
|
-
} | null>;
|
|
57
|
-
/**
|
|
58
|
-
* 清空模型相关表。
|
|
59
|
-
*/
|
|
60
|
-
export declare function clearStoredModelsAndProviders(context: PlatformStoreContext): void;
|
|
61
|
-
//# sourceMappingURL=StoreModelRepository.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"StoreModelRepository.d.ts","sourceRoot":"","sources":["../../../../src/shared/utils/store/StoreModelRepository.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EACV,WAAW,EACX,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAG7D;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAkBhC;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,oBAAoB,GAC5B,kBAAkB,EAAE,CAOtB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,oBAAoB,EAC7B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAmBrC;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,oBAAoB,EAC7B,KAAK,EAAE,wBAAwB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAyCf;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,oBAAoB,EAC7B,UAAU,EAAE,MAAM,GACjB,IAAI,CAeN;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,oBAAoB,GAAG,WAAW,EAAE,CAgB7E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,oBAAoB,EAC7B,OAAO,EAAE,MAAM,GACd,WAAW,GAAG,IAAI,CAqBpB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,oBAAoB,EAC7B,KAAK,EAAE,gBAAgB,GACtB,IAAI,CAoDN;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,oBAAoB,EAC7B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,OAAO,GACd,IAAI,CAaN;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,oBAAoB,EAC7B,OAAO,EAAE,MAAM,GACd,IAAI,CAEN;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,oBAAoB,EAC7B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,mBAAmB,CAAA;CAAE,GAAG,IAAI,CAAC,CAMvE;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,oBAAoB,GAC5B,IAAI,CAGN"}
|
|
@@ -1,278 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* PlatformStore 模型与 Provider 仓储。
|
|
3
|
-
*
|
|
4
|
-
* 关键点(中文)
|
|
5
|
-
* - 只负责 model/provider 相关读写,不处理 env、channel account、secure settings。
|
|
6
|
-
* - 对外暴露纯函数,`PlatformStore` 作为门面调用。
|
|
7
|
-
*/
|
|
8
|
-
import { eq } from "drizzle-orm";
|
|
9
|
-
import { decryptText, encryptText } from "./crypto.js";
|
|
10
|
-
import { modelProvidersTable, modelsTable } from "./schema.js";
|
|
11
|
-
import { nowIso } from "./StoreShared.js";
|
|
12
|
-
/**
|
|
13
|
-
* 列出 providers。
|
|
14
|
-
*/
|
|
15
|
-
export async function listStoredProviders(context) {
|
|
16
|
-
const rows = context.db.select().from(modelProvidersTable).all();
|
|
17
|
-
const result = [];
|
|
18
|
-
for (const row of rows) {
|
|
19
|
-
let apiKey;
|
|
20
|
-
if (row.apiKeyEncrypted) {
|
|
21
|
-
apiKey = await decryptText(row.apiKeyEncrypted);
|
|
22
|
-
}
|
|
23
|
-
result.push({
|
|
24
|
-
id: row.id,
|
|
25
|
-
type: row.type,
|
|
26
|
-
baseUrl: row.baseUrl || undefined,
|
|
27
|
-
apiKey,
|
|
28
|
-
createdAt: row.createdAt,
|
|
29
|
-
updatedAt: row.updatedAt,
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
return result;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* 同步列出 provider 元信息(不含 API Key)。
|
|
36
|
-
*/
|
|
37
|
-
export function listStoredProviderMetas(context) {
|
|
38
|
-
const rows = context.db.select().from(modelProvidersTable).all();
|
|
39
|
-
return rows.map((row) => ({
|
|
40
|
-
id: row.id,
|
|
41
|
-
type: row.type,
|
|
42
|
-
baseUrl: row.baseUrl || undefined,
|
|
43
|
-
}));
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* 获取单个 provider。
|
|
47
|
-
*/
|
|
48
|
-
export async function getStoredProvider(context, providerId) {
|
|
49
|
-
const row = context.db
|
|
50
|
-
.select()
|
|
51
|
-
.from(modelProvidersTable)
|
|
52
|
-
.where(eq(modelProvidersTable.id, providerId))
|
|
53
|
-
.get();
|
|
54
|
-
if (!row)
|
|
55
|
-
return null;
|
|
56
|
-
let apiKey;
|
|
57
|
-
if (row.apiKeyEncrypted) {
|
|
58
|
-
apiKey = await decryptText(row.apiKeyEncrypted);
|
|
59
|
-
}
|
|
60
|
-
return {
|
|
61
|
-
id: row.id,
|
|
62
|
-
type: row.type,
|
|
63
|
-
baseUrl: row.baseUrl || undefined,
|
|
64
|
-
apiKey,
|
|
65
|
-
createdAt: row.createdAt,
|
|
66
|
-
updatedAt: row.updatedAt,
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* 新增或更新 provider。
|
|
71
|
-
*/
|
|
72
|
-
export async function upsertStoredProvider(context, input) {
|
|
73
|
-
const id = String(input.id || "").trim();
|
|
74
|
-
if (!id)
|
|
75
|
-
throw new Error("providerId cannot be empty");
|
|
76
|
-
const existing = context.db
|
|
77
|
-
.select()
|
|
78
|
-
.from(modelProvidersTable)
|
|
79
|
-
.where(eq(modelProvidersTable.id, id))
|
|
80
|
-
.get();
|
|
81
|
-
const createdAt = existing?.createdAt || nowIso();
|
|
82
|
-
const updatedAt = nowIso();
|
|
83
|
-
const hasApiKeyField = Object.prototype.hasOwnProperty.call(input, "apiKey");
|
|
84
|
-
let apiKeyEncrypted = existing?.apiKeyEncrypted || null;
|
|
85
|
-
if (hasApiKeyField) {
|
|
86
|
-
if (typeof input.apiKey === "string" && input.apiKey.length > 0) {
|
|
87
|
-
apiKeyEncrypted = await encryptText(input.apiKey);
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
apiKeyEncrypted = null;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
context.db
|
|
94
|
-
.insert(modelProvidersTable)
|
|
95
|
-
.values({
|
|
96
|
-
id,
|
|
97
|
-
type: input.type,
|
|
98
|
-
baseUrl: input.baseUrl || null,
|
|
99
|
-
apiKeyEncrypted,
|
|
100
|
-
createdAt,
|
|
101
|
-
updatedAt,
|
|
102
|
-
})
|
|
103
|
-
.onConflictDoUpdate({
|
|
104
|
-
target: modelProvidersTable.id,
|
|
105
|
-
set: {
|
|
106
|
-
type: input.type,
|
|
107
|
-
baseUrl: input.baseUrl || null,
|
|
108
|
-
apiKeyEncrypted,
|
|
109
|
-
updatedAt,
|
|
110
|
-
},
|
|
111
|
-
})
|
|
112
|
-
.run();
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* 删除 provider。
|
|
116
|
-
*/
|
|
117
|
-
export function removeStoredProvider(context, providerId) {
|
|
118
|
-
const refs = context.db
|
|
119
|
-
.select()
|
|
120
|
-
.from(modelsTable)
|
|
121
|
-
.where(eq(modelsTable.providerId, providerId))
|
|
122
|
-
.all();
|
|
123
|
-
if (refs.length > 0) {
|
|
124
|
-
throw new Error(`Provider "${providerId}" is referenced by models: ${refs.map((item) => item.id).join(", ")}`);
|
|
125
|
-
}
|
|
126
|
-
context.db
|
|
127
|
-
.delete(modelProvidersTable)
|
|
128
|
-
.where(eq(modelProvidersTable.id, providerId))
|
|
129
|
-
.run();
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* 列出 models。
|
|
133
|
-
*/
|
|
134
|
-
export function listStoredModels(context) {
|
|
135
|
-
const rows = context.db.select().from(modelsTable).all();
|
|
136
|
-
return rows.map((row) => ({
|
|
137
|
-
id: row.id,
|
|
138
|
-
providerId: row.providerId,
|
|
139
|
-
name: row.name,
|
|
140
|
-
temperature: row.temperature ?? undefined,
|
|
141
|
-
maxTokens: row.maxTokens ?? undefined,
|
|
142
|
-
topP: row.topP ?? undefined,
|
|
143
|
-
frequencyPenalty: row.frequencyPenalty ?? undefined,
|
|
144
|
-
presencePenalty: row.presencePenalty ?? undefined,
|
|
145
|
-
anthropicVersion: row.anthropicVersion ?? undefined,
|
|
146
|
-
isPaused: Number(row.isPaused || 0) === 1,
|
|
147
|
-
createdAt: row.createdAt,
|
|
148
|
-
updatedAt: row.updatedAt,
|
|
149
|
-
}));
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* 获取单个 model。
|
|
153
|
-
*/
|
|
154
|
-
export function getStoredModel(context, modelId) {
|
|
155
|
-
const row = context.db
|
|
156
|
-
.select()
|
|
157
|
-
.from(modelsTable)
|
|
158
|
-
.where(eq(modelsTable.id, modelId))
|
|
159
|
-
.get();
|
|
160
|
-
if (!row)
|
|
161
|
-
return null;
|
|
162
|
-
return {
|
|
163
|
-
id: row.id,
|
|
164
|
-
providerId: row.providerId,
|
|
165
|
-
name: row.name,
|
|
166
|
-
temperature: row.temperature ?? undefined,
|
|
167
|
-
maxTokens: row.maxTokens ?? undefined,
|
|
168
|
-
topP: row.topP ?? undefined,
|
|
169
|
-
frequencyPenalty: row.frequencyPenalty ?? undefined,
|
|
170
|
-
presencePenalty: row.presencePenalty ?? undefined,
|
|
171
|
-
anthropicVersion: row.anthropicVersion ?? undefined,
|
|
172
|
-
isPaused: Number(row.isPaused || 0) === 1,
|
|
173
|
-
createdAt: row.createdAt,
|
|
174
|
-
updatedAt: row.updatedAt,
|
|
175
|
-
};
|
|
176
|
-
}
|
|
177
|
-
/**
|
|
178
|
-
* 新增或更新 model。
|
|
179
|
-
*/
|
|
180
|
-
export function upsertStoredModel(context, input) {
|
|
181
|
-
const id = String(input.id || "").trim();
|
|
182
|
-
if (!id)
|
|
183
|
-
throw new Error("modelId cannot be empty");
|
|
184
|
-
const providerId = String(input.providerId || "").trim();
|
|
185
|
-
if (!providerId)
|
|
186
|
-
throw new Error("providerId cannot be empty");
|
|
187
|
-
const provider = context.db
|
|
188
|
-
.select()
|
|
189
|
-
.from(modelProvidersTable)
|
|
190
|
-
.where(eq(modelProvidersTable.id, providerId))
|
|
191
|
-
.get();
|
|
192
|
-
if (!provider)
|
|
193
|
-
throw new Error(`Provider not found: ${providerId}`);
|
|
194
|
-
const existing = context.db
|
|
195
|
-
.select()
|
|
196
|
-
.from(modelsTable)
|
|
197
|
-
.where(eq(modelsTable.id, id))
|
|
198
|
-
.get();
|
|
199
|
-
const createdAt = existing?.createdAt || nowIso();
|
|
200
|
-
const updatedAt = nowIso();
|
|
201
|
-
context.db
|
|
202
|
-
.insert(modelsTable)
|
|
203
|
-
.values({
|
|
204
|
-
id,
|
|
205
|
-
providerId,
|
|
206
|
-
name: input.name,
|
|
207
|
-
temperature: input.temperature ?? null,
|
|
208
|
-
maxTokens: input.maxTokens ?? null,
|
|
209
|
-
topP: input.topP ?? null,
|
|
210
|
-
frequencyPenalty: input.frequencyPenalty ?? null,
|
|
211
|
-
presencePenalty: input.presencePenalty ?? null,
|
|
212
|
-
anthropicVersion: input.anthropicVersion ?? null,
|
|
213
|
-
isPaused: input.isPaused === true ? 1 : 0,
|
|
214
|
-
createdAt,
|
|
215
|
-
updatedAt,
|
|
216
|
-
})
|
|
217
|
-
.onConflictDoUpdate({
|
|
218
|
-
target: modelsTable.id,
|
|
219
|
-
set: {
|
|
220
|
-
providerId,
|
|
221
|
-
name: input.name,
|
|
222
|
-
temperature: input.temperature ?? null,
|
|
223
|
-
maxTokens: input.maxTokens ?? null,
|
|
224
|
-
topP: input.topP ?? null,
|
|
225
|
-
frequencyPenalty: input.frequencyPenalty ?? null,
|
|
226
|
-
presencePenalty: input.presencePenalty ?? null,
|
|
227
|
-
anthropicVersion: input.anthropicVersion ?? null,
|
|
228
|
-
isPaused: input.isPaused === true ? 1 : 0,
|
|
229
|
-
updatedAt,
|
|
230
|
-
},
|
|
231
|
-
})
|
|
232
|
-
.run();
|
|
233
|
-
}
|
|
234
|
-
/**
|
|
235
|
-
* 切换 model 暂停状态。
|
|
236
|
-
*/
|
|
237
|
-
export function setStoredModelPaused(context, modelId, paused) {
|
|
238
|
-
const id = String(modelId || "").trim();
|
|
239
|
-
if (!id)
|
|
240
|
-
throw new Error("modelId cannot be empty");
|
|
241
|
-
const current = getStoredModel(context, id);
|
|
242
|
-
if (!current)
|
|
243
|
-
throw new Error(`Model not found: ${id}`);
|
|
244
|
-
context.db
|
|
245
|
-
.update(modelsTable)
|
|
246
|
-
.set({
|
|
247
|
-
isPaused: paused ? 1 : 0,
|
|
248
|
-
updatedAt: nowIso(),
|
|
249
|
-
})
|
|
250
|
-
.where(eq(modelsTable.id, id))
|
|
251
|
-
.run();
|
|
252
|
-
}
|
|
253
|
-
/**
|
|
254
|
-
* 删除 model。
|
|
255
|
-
*/
|
|
256
|
-
export function removeStoredModel(context, modelId) {
|
|
257
|
-
context.db.delete(modelsTable).where(eq(modelsTable.id, modelId)).run();
|
|
258
|
-
}
|
|
259
|
-
/**
|
|
260
|
-
* 获取“model + provider”聚合信息。
|
|
261
|
-
*/
|
|
262
|
-
export async function getResolvedStoredModel(context, modelId) {
|
|
263
|
-
const model = getStoredModel(context, modelId);
|
|
264
|
-
if (!model)
|
|
265
|
-
return null;
|
|
266
|
-
const provider = await getStoredProvider(context, model.providerId);
|
|
267
|
-
if (!provider)
|
|
268
|
-
return null;
|
|
269
|
-
return { model, provider };
|
|
270
|
-
}
|
|
271
|
-
/**
|
|
272
|
-
* 清空模型相关表。
|
|
273
|
-
*/
|
|
274
|
-
export function clearStoredModelsAndProviders(context) {
|
|
275
|
-
context.sqlite.exec("DELETE FROM models;");
|
|
276
|
-
context.sqlite.exec("DELETE FROM model_providers;");
|
|
277
|
-
}
|
|
278
|
-
//# sourceMappingURL=StoreModelRepository.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"StoreModelRepository.js","sourceRoot":"","sources":["../../../../src/shared/utils/store/StoreModelRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"StoreSchema.d.ts","sourceRoot":"","sources":["../../../../src/shared/utils/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"}
|
|
@@ -1,319 +0,0 @@
|
|
|
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
|