@chatbi-v/vue 3.0.0 → 3.1.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.
Files changed (80) hide show
  1. package/README.md +36 -0
  2. package/dist/core/src/adapters/AdapterInterface.d.ts +111 -0
  3. package/dist/core/src/adapters/AdapterRegistry.d.ts +88 -0
  4. package/dist/core/src/adapters/index.d.ts +7 -0
  5. package/dist/core/src/adapters/local-storage-adapter.d.ts +61 -0
  6. package/dist/core/src/adapters/scoped-storage-adapter.d.ts +61 -0
  7. package/dist/core/src/ai/function/index.d.ts +1 -0
  8. package/dist/core/src/ai/function/registry.d.ts +28 -0
  9. package/dist/core/src/ai/index.d.ts +8 -0
  10. package/dist/core/src/ai/providers/index.d.ts +2 -0
  11. package/dist/core/src/ai/providers/mock.d.ts +28 -0
  12. package/dist/core/src/ai/providers/openai.d.ts +17 -0
  13. package/dist/core/src/ai/session/index.d.ts +3 -0
  14. package/dist/core/src/ai/session/manager.d.ts +19 -0
  15. package/dist/core/src/ai/session/storage.d.ts +9 -0
  16. package/dist/core/src/ai/session/types.d.ts +14 -0
  17. package/dist/core/src/ai/store.d.ts +23 -0
  18. package/dist/core/src/ai/types.d.ts +57 -0
  19. package/dist/core/src/ai/utils.d.ts +7 -0
  20. package/dist/core/src/api/adapters/axios-adapter.d.ts +10 -0
  21. package/dist/core/src/api/engine.d.ts +101 -0
  22. package/dist/core/src/api/index.d.ts +5 -0
  23. package/dist/core/src/api/utils.d.ts +14 -0
  24. package/dist/core/src/application/service-registry.d.ts +57 -0
  25. package/dist/core/src/config-manager.d.ts +52 -0
  26. package/dist/core/src/dependency/ConflictResolver.d.ts +46 -0
  27. package/dist/core/src/dependency/CycleDetector.d.ts +47 -0
  28. package/dist/core/src/dependency/DependencyGraph.d.ts +85 -0
  29. package/dist/core/src/dependency/NpmRegistry.d.ts +78 -0
  30. package/dist/core/src/dependency/SharedDepsDetector.d.ts +49 -0
  31. package/dist/core/src/dependency/index.d.ts +9 -0
  32. package/dist/core/src/domain/auto-loader.d.ts +36 -0
  33. package/dist/core/src/domain/errors.d.ts +68 -0
  34. package/dist/core/src/domain/models.d.ts +42 -0
  35. package/dist/core/src/domain/performance/collector.d.ts +70 -0
  36. package/dist/core/src/domain/performance/index.d.ts +27 -0
  37. package/dist/core/src/domain/performance/lifecycle.d.ts +34 -0
  38. package/dist/core/src/domain/performance/storage.d.ts +79 -0
  39. package/dist/core/src/domain/performance/types.d.ts +67 -0
  40. package/dist/core/src/domain/plugin-manager.d.ts +327 -0
  41. package/dist/core/src/domain/plugin-runtime.d.ts +74 -0
  42. package/dist/core/src/domain/plugin-sandbox.d.ts +40 -0
  43. package/dist/core/src/domain/storage-manager.d.ts +81 -0
  44. package/dist/core/src/event-bus.d.ts +55 -0
  45. package/dist/core/src/feature-flag/FeatureRegistry.d.ts +75 -0
  46. package/dist/core/src/feature-flag/RuleEngine.d.ts +44 -0
  47. package/dist/core/src/feature-flag/index.d.ts +6 -0
  48. package/dist/core/src/index.d.ts +37 -0
  49. package/dist/core/src/manifest/ManifestValidator.d.ts +33 -0
  50. package/dist/core/src/manifest/ManifestWrapper.d.ts +23 -0
  51. package/dist/core/src/manifest/PluginManifest.d.ts +524 -0
  52. package/dist/core/src/manifest/index.d.ts +9 -0
  53. package/dist/core/src/ports/api-port.d.ts +136 -0
  54. package/dist/core/src/ports/event-bus-port.d.ts +32 -0
  55. package/dist/core/src/ports/plugin-port.d.ts +345 -0
  56. package/dist/core/src/ports/storage-port.d.ts +49 -0
  57. package/dist/core/src/remote/RemoteCache.d.ts +57 -0
  58. package/dist/core/src/remote/RemoteLoader.d.ts +85 -0
  59. package/dist/core/src/remote/RemotePluginSource.d.ts +88 -0
  60. package/dist/core/src/remote/RetryStrategy.d.ts +43 -0
  61. package/dist/core/src/remote/index.d.ts +8 -0
  62. package/dist/core/src/sandbox/proxy-sandbox.d.ts +74 -0
  63. package/dist/core/src/semver/SemverResolver.d.ts +79 -0
  64. package/dist/core/src/store.d.ts +30 -0
  65. package/dist/core/src/types/branded.d.ts +54 -0
  66. package/dist/core/src/types/index.d.ts +8 -0
  67. package/dist/core/src/types/template-literals.d.ts +58 -0
  68. package/dist/core/src/types/utils.d.ts +133 -0
  69. package/dist/core/src/utils/date.d.ts +32 -0
  70. package/dist/core/src/utils/index.d.ts +4 -0
  71. package/dist/core/src/utils/logger.d.ts +108 -0
  72. package/dist/core/src/utils/url.d.ts +16 -0
  73. package/dist/index.js +1899 -1842
  74. package/dist/index.umd.cjs +19 -19
  75. package/dist/vue/src/components/PluginErrorBoundary.vue.d.ts +20 -0
  76. package/dist/vue/src/components/PluginSlot.vue.d.ts +8 -0
  77. package/dist/vue/src/composables/useCoreStore.d.ts +9 -0
  78. package/dist/vue/src/composables/useService.d.ts +6 -0
  79. package/dist/vue/src/index.d.ts +18 -0
  80. package/package.json +10 -8
@@ -0,0 +1,101 @@
1
+ import { ApiAdapter, ApiConfig, ApiEndpointConfig, ApiInterceptor, RequestOptions } from '../ports/api-port';
2
+ /**
3
+ * API 引擎核心类
4
+ * @description 负责加载配置并执行请求,支持策略模式切换底层请求实现
5
+ */
6
+ export declare class ApiEngine {
7
+ private adapter;
8
+ private config;
9
+ private interceptors;
10
+ /** 可配置的成功码 */
11
+ private successCodes;
12
+ constructor(adapter?: ApiAdapter);
13
+ /**
14
+ * 注册拦截器
15
+ */
16
+ registerInterceptor(interceptor: ApiInterceptor): void;
17
+ /**
18
+ * 移除拦截器
19
+ */
20
+ unregisterInterceptor(interceptor: ApiInterceptor): void;
21
+ /**
22
+ * 设置成功码
23
+ */
24
+ setSuccessCodes(codes: string[]): void;
25
+ /**
26
+ * 切换请求适配器
27
+ * @param adapter 新的适配器实例
28
+ */
29
+ useAdapter(adapter: ApiAdapter): void;
30
+ /**
31
+ * 注册 API 配置
32
+ * @param config 配置对象
33
+ */
34
+ register(config: ApiConfig): void;
35
+ /**
36
+ * 获取接口配置
37
+ */
38
+ getEndpoint(module: string, action: string): ApiEndpointConfig | undefined;
39
+ /**
40
+ * 发起 API 请求
41
+ * @param module 模块名
42
+ * @param action 动作名
43
+ * @param data 请求数据 (Body 或 Query)
44
+ * @param options 请求选项
45
+ */
46
+ call<T = any>(module: string, action: string, data?: any, options?: RequestOptions): Promise<T>;
47
+ /**
48
+ * 发起流式请求
49
+ * @param module 模块名
50
+ * @param action 动作名
51
+ * @param data 请求数据
52
+ * @param options 请求选项
53
+ */
54
+ stream(module: string, action: string, data?: any, options?: RequestOptions): Promise<void>;
55
+ /**
56
+ * 准备请求配置,应用 URL 参数替换和请求拦截器
57
+ */
58
+ private prepareRequestConfig;
59
+ /**
60
+ * 应用所有请求拦截器
61
+ */
62
+ private applyRequestInterceptors;
63
+ /**
64
+ * 应用所有响应拦截器
65
+ * @returns 是否被劫持
66
+ */
67
+ private applyResponseInterceptors;
68
+ /**
69
+ * 检查 HTTP 状态码
70
+ */
71
+ private checkHttpStatus;
72
+ /**
73
+ * 提取响应数据
74
+ */
75
+ private extractResponseData;
76
+ /**
77
+ * 处理业务错误
78
+ */
79
+ private handleBusinessError;
80
+ /**
81
+ * 检查响应是否成功
82
+ */
83
+ protected isSuccess(response: any): boolean;
84
+ /**
85
+ * 处理响应错误
86
+ */
87
+ protected handleResponseError(response: any, context: any): void;
88
+ /**
89
+ * 判断是否为 BaseResponse
90
+ */
91
+ private isBaseResponse;
92
+ /**
93
+ * 严格判断是否为 AxiosResponse
94
+ */
95
+ private isAxiosResponse;
96
+ /**
97
+ * 创建拦截上下文
98
+ */
99
+ private createInterceptorContext;
100
+ }
101
+ export declare const apiEngine: ApiEngine;
@@ -0,0 +1,5 @@
1
+ export * from './adapters/axios-adapter';
2
+ export * from './engine';
3
+ export * from './utils';
4
+ export * from '../domain/models';
5
+ export * from '../ports/api-port';
@@ -0,0 +1,14 @@
1
+ import { ApiConfig } from '../ports/api-port';
2
+ /**
3
+ * 自动检测是否处于 Mock 模式
4
+ */
5
+ export declare function isMockMode(): boolean;
6
+ /**
7
+ * 从文件模块映射中解析 API 配置
8
+ * @description 配合 Vite 的 import.meta.glob 使用,自动匹配定义文件和 Mock 文件
9
+ * @param definitionsMap API 定义文件映射 (import.meta.glob('./modules/*.ts', { eager: true }))
10
+ * @param mocksMap Mock 文件映射 (import.meta.glob('./modules/*.mock.ts', { eager: true }))
11
+ * @param useMock 是否启用 Mock (如果不传,将自动调用 isMockMode())
12
+ * @returns 合并后的 ApiConfig
13
+ */
14
+ export declare function resolveApiModules(definitionsMap: Record<string, any>, mocksMap?: Record<string, any>): ApiConfig;
@@ -0,0 +1,57 @@
1
+ /**
2
+ * 服务注册中心 (Service Registry)
3
+ * @description 核心应用层服务,作为微内核架构中的“中枢调度员”。
4
+ * 主要职责:
5
+ * 1. 服务解耦:允许插件将其内部功能暴露为“服务”,而无需与其他插件产生物理依赖。
6
+ * 2. 动态发现:提供按名称查找服务的能力,支持服务热插拔。
7
+ * 3. 依赖协调:通过 `waitFor` 机制解决插件间由于加载顺序导致的初始化依赖问题。
8
+ *
9
+ * 建议的服务命名规范: `pluginId.serviceName` (例如: `auth.sessionService`)
10
+ */
11
+ export declare class ServiceRegistry {
12
+ /** 存储已注册服务的 Map 对象 */
13
+ private services;
14
+ /** 存储正在等待特定服务的监听器集合 */
15
+ private listeners;
16
+ /**
17
+ * 注册一个服务实现
18
+ * @param name - 唯一的服务名称
19
+ * @param service - 服务实例或对象
20
+ */
21
+ register(name: string, service: any): void;
22
+ /**
23
+ * 同步获取服务实例
24
+ * @template T - 服务类型的泛型
25
+ * @param name - 服务名称
26
+ * @returns 服务实例,若不存在则返回 undefined
27
+ */
28
+ get<T = any>(name: string): T | undefined;
29
+ /**
30
+ * 异步等待并获取服务
31
+ * @description 如果服务尚未注册,将返回一个 Promise,直到该服务被注册时 resolve。
32
+ * 支持设置超时时间,防止因插件加载失败导致的永久挂起。
33
+ *
34
+ * @template T - 服务类型的泛型
35
+ * @param name - 待等待的服务名称
36
+ * @param timeout - 超时时间 (毫秒),默认 10000ms (10秒)。若为 0 则永不超时。
37
+ * @returns 包含服务实例的 Promise
38
+ * @throws {Error} 若在规定时间内服务未注册,则抛出超时异常。
39
+ */
40
+ waitFor<T = any>(name: string, timeout?: number): Promise<T>;
41
+ /**
42
+ * 检查服务是否已注册
43
+ * @param name - 服务名称
44
+ */
45
+ has(name: string): boolean;
46
+ /**
47
+ * 注销特定的服务
48
+ * @param name - 服务名称
49
+ */
50
+ unregister(name: string): void;
51
+ /**
52
+ * 清除所有已注册的服务和监听器
53
+ * @description 通常仅在系统重置或大型热更新时使用。
54
+ */
55
+ clear(): void;
56
+ }
57
+ export declare const serviceRegistry: ServiceRegistry;
@@ -0,0 +1,52 @@
1
+ /**
2
+ * 配置管理器
3
+ * @description 核心工具类,负责管理应用的全局系统配置以及各插件的初始化业务配置。
4
+ * 配置数据通常在应用启动时通过 `usePluginLoader` 注入,并作为插件运行时的取值回退来源。
5
+ */
6
+ export declare class ConfigManager<T = Record<string, unknown>> {
7
+ /** 内部存储配置的 Map 对象 */
8
+ private config;
9
+ /**
10
+ * 设置特定的配置项
11
+ * @param key - 配置键名(如 'system' 或插件 ID)
12
+ * @param value - 配置内容对象
13
+ */
14
+ set<K extends keyof T>(key: K, value: T[K]): void;
15
+ set(key: string, value: unknown): void;
16
+ /**
17
+ * 获取指定的配置项
18
+ * @param key - 配置键名
19
+ * @returns 配置内容,若不存在则返回 undefined
20
+ */
21
+ get<K extends keyof T>(key: K): T[K] | undefined;
22
+ get(key: string): unknown;
23
+ /**
24
+ * 深度合并配置对象
25
+ * @description 对配置进行深度合并,嵌套对象会被递归合并而非完全覆盖。
26
+ * @param config - 待合并的配置对象映射
27
+ */
28
+ merge(config: Partial<T> & Record<string, unknown>): void;
29
+ /**
30
+ * 深度合并两个对象
31
+ */
32
+ private deepMerge;
33
+ /**
34
+ * 获取当前存储的所有配置快照
35
+ * @returns 包含所有配置的普通对象
36
+ */
37
+ getAll(): T;
38
+ /**
39
+ * 检查配置项是否存在
40
+ */
41
+ has(key: string): boolean;
42
+ /**
43
+ * 删除指定配置项
44
+ */
45
+ delete(key: string): boolean;
46
+ /**
47
+ * 清空所有配置
48
+ */
49
+ clear(): void;
50
+ }
51
+ /** 全局配置管理器单例 */
52
+ export declare const configManager: ConfigManager<Record<string, unknown>>;
@@ -0,0 +1,46 @@
1
+ import type { SharedDependencyResult } from './SharedDepsDetector.js';
2
+ /** 冲突解决结果 */
3
+ export interface ConflictResolution {
4
+ /** 包 ID */
5
+ packageId: string;
6
+ /** 请求的版本列表 */
7
+ requestedVersions: string[];
8
+ /** 解析后的版本 */
9
+ resolvedVersion: string;
10
+ /** 解决策略 */
11
+ strategy: 'highest' | 'lowest' | 'user-selected';
12
+ /** 请求者列表 */
13
+ requestedBy: string[];
14
+ }
15
+ /**
16
+ * 版本冲突解决器
17
+ * @description 使用最高版本策略 (默认) 解决版本冲突
18
+ */
19
+ export declare class ConflictResolver {
20
+ /**
21
+ * 解决版本冲突
22
+ * @param deps 共享依赖检测结果
23
+ * @param strategy 解决策略,默认 highest
24
+ * @returns 冲突解决结果
25
+ */
26
+ resolve(deps: SharedDependencyResult[], strategy?: 'highest' | 'lowest'): ConflictResolution[];
27
+ /**
28
+ * 使用最高版本策略解决
29
+ * @param dep 共享依赖
30
+ * @returns 解决的版本
31
+ */
32
+ resolveHighest(dep: SharedDependencyResult): string;
33
+ /**
34
+ * 使用最低版本策略解决
35
+ * @param dep 共享依赖
36
+ * @returns 解决的版本
37
+ */
38
+ resolveLowest(dep: SharedDependencyResult): string;
39
+ /**
40
+ * 使用 maxSatisfying 解析版本范围
41
+ * @param range 版本范围
42
+ * @param versions 可用版本列表
43
+ * @returns 满足范围的最高版本
44
+ */
45
+ resolveWithRange(range: string, versions: string[]): string | null;
46
+ }
@@ -0,0 +1,47 @@
1
+ /**
2
+ * 循环依赖检测
3
+ * @description 使用 DFS 检测插件依赖中的循环引用,生成警告日志
4
+ */
5
+ import type { Dependency } from '../manifest/PluginManifest.js';
6
+ /** 插件依赖输入 */
7
+ export interface CycleDetectorInput {
8
+ id: string;
9
+ dependencies: Dependency[];
10
+ }
11
+ /** 循环警告 */
12
+ export interface CycleWarning {
13
+ /** 循环路径 */
14
+ cycle: string[];
15
+ /** 完整路径 */
16
+ path: string[];
17
+ }
18
+ /**
19
+ * 循环依赖检测器
20
+ * @description 使用 DFS 检测循环依赖,生成警告但不阻断加载
21
+ */
22
+ export declare class CycleDetector {
23
+ /**
24
+ * 检测循环依赖
25
+ * @param plugins 插件列表
26
+ * @returns 循环警告列表
27
+ */
28
+ detect(plugins: CycleDetectorInput[]): CycleWarning[];
29
+ /**
30
+ * 从依赖图检测循环
31
+ * @param graph 依赖图
32
+ * @returns 循环警告列表
33
+ */
34
+ detectFromGraph(graph: Map<string, string[]>): CycleWarning[];
35
+ /**
36
+ * 生成循环警告消息
37
+ * @param warning 循环警告
38
+ * @returns 警告消息
39
+ */
40
+ formatWarning(warning: CycleWarning): string;
41
+ /**
42
+ * 格式化所有警告
43
+ * @param warnings 循环警告列表
44
+ * @returns 警告消息列表
45
+ */
46
+ formatWarnings(warnings: CycleWarning[]): string[];
47
+ }
@@ -0,0 +1,85 @@
1
+ /**
2
+ * 依赖图构建器
3
+ * @description 提供插件依赖拓扑构建、依赖查询功能
4
+ */
5
+ /** 依赖节点 */
6
+ export interface DependencyNode {
7
+ /** 节点 ID (插件或包名) */
8
+ id: string;
9
+ /** 直接依赖列表 */
10
+ dependencies: string[];
11
+ /** 版本 */
12
+ version: string;
13
+ }
14
+ /** 依赖边 */
15
+ export interface DependencyEdge {
16
+ from: string;
17
+ to: string;
18
+ }
19
+ /**
20
+ * 依赖图
21
+ * @description 构建和管理插件依赖拓扑
22
+ */
23
+ export declare class DependencyGraph {
24
+ private nodes;
25
+ private edges;
26
+ /**
27
+ * 添加依赖节点
28
+ * @param node 依赖节点
29
+ */
30
+ addNode(node: DependencyNode): void;
31
+ /**
32
+ * 添加依赖边
33
+ * @param from 依赖者 ID
34
+ * @param to 被依赖者 ID
35
+ */
36
+ addEdge(from: string, to: string): void;
37
+ /**
38
+ * 获取依赖指定包的所有插件
39
+ * @param packageId 包 ID
40
+ * @returns 依赖该包的插件列表
41
+ */
42
+ getDependents(packageId: string): string[];
43
+ /**
44
+ * 获取指定插件的所有依赖
45
+ * @param pluginId 插件 ID
46
+ * @returns 依赖列表
47
+ */
48
+ getDependencies(pluginId: string): string[];
49
+ /**
50
+ * 获取完整依赖图
51
+ * @returns 节点 ID 到依赖列表的映射
52
+ */
53
+ getGraph(): Map<string, string[]>;
54
+ /**
55
+ * 获取所有节点
56
+ * @returns 节点列表
57
+ */
58
+ getNodes(): DependencyNode[];
59
+ /**
60
+ * 获取所有边
61
+ * @returns 边列表
62
+ */
63
+ getEdges(): DependencyEdge[];
64
+ /**
65
+ * 检查节点是否存在
66
+ * @param id 节点 ID
67
+ * @returns 是否存在
68
+ */
69
+ hasNode(id: string): boolean;
70
+ /**
71
+ * 获取节点
72
+ * @param id 节点 ID
73
+ * @returns 节点,不存在返回 undefined
74
+ */
75
+ getNode(id: string): DependencyNode | undefined;
76
+ /**
77
+ * 清空图
78
+ */
79
+ clear(): void;
80
+ /**
81
+ * 获取图的大小
82
+ * @returns 节点数量
83
+ */
84
+ size(): number;
85
+ }
@@ -0,0 +1,78 @@
1
+ /** npm 包元数据 */
2
+ export interface NpmPackageMeta {
3
+ name: string;
4
+ versions: Record<string, unknown>;
5
+ 'dist-tags': Record<string, string>;
6
+ time?: Record<string, string>;
7
+ }
8
+ /** 版本信息 */
9
+ export interface VersionInfo {
10
+ version: string;
11
+ date?: string;
12
+ deprecated?: boolean;
13
+ }
14
+ /**
15
+ * NPM Registry 客户端
16
+ * @description 集成 npm Registry API,支持包元数据查询、版本解析和缓存
17
+ */
18
+ export declare class NpmRegistry {
19
+ private client;
20
+ private cache;
21
+ /**
22
+ * 创建 NPM Registry 客户端
23
+ * @param baseUrl Registry 基础 URL,默认 https://registry.npmjs.org
24
+ */
25
+ constructor(baseUrl?: string);
26
+ /**
27
+ * 获取包元数据
28
+ * @param packageName 包名
29
+ * @param useCache 是否使用缓存,默认 true
30
+ * @returns 包元数据,不存在返回 null
31
+ */
32
+ getPackageMeta(packageName: string, useCache?: boolean): Promise<NpmPackageMeta | null>;
33
+ /**
34
+ * 获取包的所有版本
35
+ * @param packageName 包名
36
+ * @returns 版本列表
37
+ */
38
+ getVersions(packageName: string): Promise<string[]>;
39
+ /**
40
+ * 获取包的最新版本
41
+ * @param packageName 包名
42
+ * @returns 最新版本,不存在返回 null
43
+ */
44
+ getLatestVersion(packageName: string): Promise<string | null>;
45
+ /**
46
+ * 从版本范围解析最佳版本
47
+ * @param packageName 包名
48
+ * @param range 版本范围 (如 ^1.0.0, >=1.0.0)
49
+ * @returns 满足范围的最高版本,不存在返回 null
50
+ */
51
+ resolveVersion(packageName: string, range: string): Promise<string | null>;
52
+ /**
53
+ * 获取指定版本的详细信息
54
+ * @param packageName 包名
55
+ * @param version 版本号
56
+ * @returns 版本信息,不存在返回 null
57
+ */
58
+ getVersionInfo(packageName: string, version: string): Promise<VersionInfo | null>;
59
+ /**
60
+ * 批量解析依赖
61
+ * @param dependencies 依赖列表 [{ id, version }]
62
+ * @returns 包名到解析后版本的映射
63
+ */
64
+ resolveDependencies(dependencies: Array<{
65
+ id: string;
66
+ version: string;
67
+ }>): Promise<Map<string, string>>;
68
+ /**
69
+ * 清除缓存
70
+ * @param packageName 包名,不提供则清除所有缓存
71
+ */
72
+ clearCache(packageName?: string): void;
73
+ }
74
+ /**
75
+ * 获取默认 Registry 实例
76
+ * @returns 默认 NpmRegistry 实例
77
+ */
78
+ export declare function getDefaultRegistry(): NpmRegistry;
@@ -0,0 +1,49 @@
1
+ import type { Dependency } from '../manifest/PluginManifest.js';
2
+ /** 插件依赖输入 */
3
+ export interface PluginDependencyInput {
4
+ id: string;
5
+ dependencies: Dependency[];
6
+ }
7
+ /** 共享依赖检测结果 */
8
+ export interface SharedDependencyResult {
9
+ /** 包 ID */
10
+ packageId: string;
11
+ /** 请求的版本列表 */
12
+ requestedVersions: string[];
13
+ /** 解析后的版本 */
14
+ resolvedVersion: string;
15
+ /** 请求者列表 */
16
+ requestedBy: string[];
17
+ /** 是否有冲突 */
18
+ hasConflict: boolean;
19
+ }
20
+ /**
21
+ * 共享依赖检测器
22
+ * @description 识别多个插件共享的 npm 包,检查版本冲突,使用最高版本策略解决
23
+ */
24
+ export declare class SharedDepsDetector {
25
+ /**
26
+ * 检测共享依赖
27
+ * @param plugins 插件列表
28
+ * @returns 共享依赖检测结果
29
+ */
30
+ detect(plugins: PluginDependencyInput[]): SharedDependencyResult[];
31
+ /**
32
+ * 检查版本是否冲突
33
+ * @param versions 版本列表
34
+ * @returns 是否有冲突
35
+ */
36
+ private checkConflict;
37
+ /**
38
+ * 最高版本策略
39
+ * @param versions 版本列表
40
+ * @returns 最高兼容版本
41
+ */
42
+ resolveHighest(versions: string[]): string;
43
+ /**
44
+ * 最低版本策略
45
+ * @param versions 版本列表
46
+ * @returns 最低兼容版本
47
+ */
48
+ resolveLowest(versions: string[]): string;
49
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * 依赖解析模块
3
+ * @description 提供共享依赖解析系统,包括依赖图构建、共享依赖检测、npm Registry 集成、版本冲突解决和循环依赖检测
4
+ */
5
+ export * from './ConflictResolver';
6
+ export * from './CycleDetector';
7
+ export * from './DependencyGraph';
8
+ export * from './NpmRegistry';
9
+ export * from './SharedDepsDetector';
@@ -0,0 +1,36 @@
1
+ /**
2
+ * 插件注册表接口
3
+ * @description 键为插件 ID,值为一个返回插件定义的异步加载函数。
4
+ */
5
+ export interface PluginRegistry {
6
+ [pluginId: string]: () => Promise<any>;
7
+ }
8
+ /**
9
+ * 插件自动发现规则
10
+ */
11
+ export interface DiscoveryRule {
12
+ /**
13
+ * 路径匹配标识。
14
+ * @example 'plugins' 或 '@chatbi-plugins'
15
+ */
16
+ pathSegment: string;
17
+ /**
18
+ * 生成插件 ID 时的前缀。
19
+ * @example '@chatbi-v/plugin',最终生成如 '@chatbi-v/plugin-demo'
20
+ */
21
+ idPrefix: string;
22
+ }
23
+ /**
24
+ * 解析插件注册表
25
+ * @description 核心逻辑:将 Vite 的 `import.meta.glob` 结果映射为标准的插件注册表。
26
+ * 它会根据预定义的路径匹配规则,从文件路径中提取插件目录名,并拼接前缀生成唯一的插件 ID。
27
+ *
28
+ * @param options - 包含待处理模块和匹配规则的选项对象
29
+ * @returns 解析后的 PluginRegistry 对象
30
+ */
31
+ export declare const resolvePluginRegistry: (options: {
32
+ /** 原始模块映射 (来自 Vite glob) */
33
+ modules: Record<string, () => Promise<any>>;
34
+ /** 自定义发现规则 (可选) */
35
+ rules?: DiscoveryRule[];
36
+ }) => PluginRegistry;
@@ -0,0 +1,68 @@
1
+ /**
2
+ * @file errors.ts
3
+ * @description Core 层统一错误处理定义
4
+ */
5
+ import { createLogger } from '../utils/logger';
6
+ /**
7
+ * 核心错误码枚举
8
+ */
9
+ export declare enum CoreErrorCode {
10
+ UNKNOWN = "1000",
11
+ NOT_FOUND = "1001",
12
+ INVALID_PARAMS = "1002",
13
+ TIMEOUT = "1003",
14
+ PLUGIN_NOT_FOUND = "2001",
15
+ PLUGIN_LOAD_FAILED = "2002",
16
+ PLUGIN_MOUNT_FAILED = "2003",
17
+ PLUGIN_UNMOUNT_FAILED = "2004",
18
+ PLUGIN_DEPENDENCY_MISSING = "2005",
19
+ PLUGIN_CIRCULAR_DEPENDENCY = "2006",
20
+ PLUGIN_INIT_FAILED = "2007",
21
+ STORAGE_READ_FAILED = "3001",
22
+ STORAGE_WRITE_FAILED = "3002",
23
+ STORAGE_SCHEMA_VIOLATION = "3003",
24
+ STORAGE_QUOTA_EXCEEDED = "3004",
25
+ API_REQUEST_FAILED = "4001",
26
+ API_RESPONSE_INVALID = "4002",
27
+ API_NETWORK_ERROR = "4003",
28
+ API_TIMEOUT = "4004",
29
+ API_UNAUTHORIZED = "4005",
30
+ SANDBOX_EVAL_FAILED = "5001",
31
+ SANDBOX_ISOLATION_BREACHED = "5002",
32
+ SANDBOX_MEMORY_LIMIT = "5003",
33
+ SERVICE_NOT_FOUND = "6001",
34
+ SERVICE_REGISTER_FAILED = "6002",
35
+ SERVICE_WAIT_TIMEOUT = "6003"
36
+ }
37
+ /**
38
+ * 错误处理策略
39
+ */
40
+ export declare enum CoreErrorStrategy {
41
+ THROW = "throw",// 抛出异常
42
+ RESOLVE = "resolve",// 返回默认值
43
+ REJECT = "reject",// 返回 Promise reject
44
+ SILENT = "silent"
45
+ }
46
+ /**
47
+ * 错误处理选项
48
+ */
49
+ export interface ErrorHandlerOptions {
50
+ code: CoreErrorCode;
51
+ strategy: CoreErrorStrategy;
52
+ defaultValue?: any;
53
+ logger?: ReturnType<typeof createLogger>;
54
+ context?: Record<string, any>;
55
+ }
56
+ /**
57
+ * 核心错误类
58
+ */
59
+ export declare class CoreError extends Error {
60
+ readonly code: CoreErrorCode;
61
+ readonly originalError?: Error;
62
+ readonly context?: Record<string, any>;
63
+ constructor(code: CoreErrorCode, message: string, originalError?: Error, context?: Record<string, any>);
64
+ }
65
+ /**
66
+ * 统一错误处理函数
67
+ */
68
+ export declare function handleError(error: unknown, options: ErrorHandlerOptions): any;