@diap/sdk 0.1.1 → 0.1.2

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 (125) hide show
  1. package/dist/agent-auth.d.ts +96 -0
  2. package/dist/agent-auth.d.ts.map +1 -0
  3. package/dist/agent-auth.js +343 -0
  4. package/dist/agent-auth.js.map +1 -0
  5. package/dist/agent-verification.d.ts +158 -0
  6. package/dist/agent-verification.d.ts.map +1 -0
  7. package/dist/agent-verification.js +237 -0
  8. package/dist/agent-verification.js.map +1 -0
  9. package/dist/config-manager.d.ts +156 -0
  10. package/dist/config-manager.d.ts.map +1 -0
  11. package/dist/config-manager.js +241 -0
  12. package/dist/config-manager.js.map +1 -0
  13. package/dist/did-builder.d.ts +62 -0
  14. package/dist/did-builder.d.ts.map +1 -0
  15. package/dist/did-builder.js +314 -0
  16. package/dist/did-builder.js.map +1 -0
  17. package/dist/did-cache.d.ts +133 -0
  18. package/dist/did-cache.d.ts.map +1 -0
  19. package/dist/did-cache.js +273 -0
  20. package/dist/did-cache.js.map +1 -0
  21. package/dist/identity-manager.d.ts +87 -0
  22. package/dist/identity-manager.d.ts.map +1 -0
  23. package/dist/identity-manager.js +196 -0
  24. package/dist/identity-manager.js.map +1 -0
  25. package/dist/index.d.ts +43 -0
  26. package/dist/index.d.ts.map +1 -0
  27. package/dist/index.js +52 -0
  28. package/dist/index.js.map +1 -0
  29. package/dist/ipfs-bidirectional-verification.d.ts +201 -0
  30. package/dist/ipfs-bidirectional-verification.d.ts.map +1 -0
  31. package/dist/ipfs-bidirectional-verification.js +298 -0
  32. package/dist/ipfs-bidirectional-verification.js.map +1 -0
  33. package/dist/ipfs-client.d.ts +151 -0
  34. package/dist/ipfs-client.d.ts.map +1 -0
  35. package/dist/ipfs-client.js +623 -0
  36. package/dist/ipfs-client.js.map +1 -0
  37. package/dist/ipfs-node-manager.d.ts +136 -0
  38. package/dist/ipfs-node-manager.d.ts.map +1 -0
  39. package/dist/ipfs-node-manager.js +232 -0
  40. package/dist/ipfs-node-manager.js.map +1 -0
  41. package/dist/ipns-manager.d.ts +182 -0
  42. package/dist/ipns-manager.d.ts.map +1 -0
  43. package/dist/ipns-manager.js +268 -0
  44. package/dist/ipns-manager.js.map +1 -0
  45. package/dist/key-manager.d.ts +48 -0
  46. package/dist/key-manager.d.ts.map +1 -0
  47. package/dist/key-manager.js +231 -0
  48. package/dist/key-manager.js.map +1 -0
  49. package/dist/kubo-installer.d.ts +115 -0
  50. package/dist/kubo-installer.d.ts.map +1 -0
  51. package/dist/kubo-installer.js +205 -0
  52. package/dist/kubo-installer.js.map +1 -0
  53. package/dist/libp2p/encrypted-peer-id.d.ts +24 -0
  54. package/dist/libp2p/encrypted-peer-id.d.ts.map +1 -0
  55. package/dist/libp2p/encrypted-peer-id.js +134 -0
  56. package/dist/libp2p/encrypted-peer-id.js.map +1 -0
  57. package/dist/nonce-manager.d.ts +176 -0
  58. package/dist/nonce-manager.d.ts.map +1 -0
  59. package/dist/nonce-manager.js +382 -0
  60. package/dist/nonce-manager.js.map +1 -0
  61. package/dist/p2p/hyperswarm-communicator.d.ts +252 -0
  62. package/dist/p2p/hyperswarm-communicator.d.ts.map +1 -0
  63. package/dist/p2p/hyperswarm-communicator.js +469 -0
  64. package/dist/p2p/hyperswarm-communicator.js.map +1 -0
  65. package/dist/p2p/iroh-communicator.d.ts +216 -0
  66. package/dist/p2p/iroh-communicator.d.ts.map +1 -0
  67. package/dist/p2p/iroh-communicator.js +408 -0
  68. package/dist/p2p/iroh-communicator.js.map +1 -0
  69. package/dist/pubsub-authenticator.d.ts +246 -0
  70. package/dist/pubsub-authenticator.d.ts.map +1 -0
  71. package/dist/pubsub-authenticator.js +384 -0
  72. package/dist/pubsub-authenticator.js.map +1 -0
  73. package/dist/real-name-auth.d.ts +238 -0
  74. package/dist/real-name-auth.d.ts.map +1 -0
  75. package/dist/real-name-auth.js +259 -0
  76. package/dist/real-name-auth.js.map +1 -0
  77. package/dist/types/did.d.ts +76 -0
  78. package/dist/types/did.d.ts.map +1 -0
  79. package/dist/types/did.js +5 -0
  80. package/dist/types/did.js.map +1 -0
  81. package/dist/types/errors.d.ts +42 -0
  82. package/dist/types/errors.d.ts.map +1 -0
  83. package/dist/types/errors.js +69 -0
  84. package/dist/types/errors.js.map +1 -0
  85. package/dist/types/index.d.ts +9 -0
  86. package/dist/types/index.d.ts.map +1 -0
  87. package/dist/types/index.js +9 -0
  88. package/dist/types/index.js.map +1 -0
  89. package/dist/types/key.d.ts +43 -0
  90. package/dist/types/key.d.ts.map +1 -0
  91. package/dist/types/key.js +5 -0
  92. package/dist/types/key.js.map +1 -0
  93. package/dist/types/zkp.d.ts +80 -0
  94. package/dist/types/zkp.d.ts.map +1 -0
  95. package/dist/types/zkp.js +16 -0
  96. package/dist/types/zkp.js.map +1 -0
  97. package/dist/utils/crypto.d.ts +24 -0
  98. package/dist/utils/crypto.d.ts.map +1 -0
  99. package/dist/utils/crypto.js +65 -0
  100. package/dist/utils/crypto.js.map +1 -0
  101. package/dist/utils/encoding.d.ts +36 -0
  102. package/dist/utils/encoding.d.ts.map +1 -0
  103. package/dist/utils/encoding.js +80 -0
  104. package/dist/utils/encoding.js.map +1 -0
  105. package/dist/utils/logger.d.ts +24 -0
  106. package/dist/utils/logger.d.ts.map +1 -0
  107. package/dist/utils/logger.js +37 -0
  108. package/dist/utils/logger.js.map +1 -0
  109. package/dist/zkp/key-generator.d.ts +56 -0
  110. package/dist/zkp/key-generator.d.ts.map +1 -0
  111. package/dist/zkp/key-generator.js +165 -0
  112. package/dist/zkp/key-generator.js.map +1 -0
  113. package/dist/zkp/simplified-backend.d.ts +23 -0
  114. package/dist/zkp/simplified-backend.d.ts.map +1 -0
  115. package/dist/zkp/simplified-backend.js +77 -0
  116. package/dist/zkp/simplified-backend.js.map +1 -0
  117. package/dist/zkp/snarkjs-backend.d.ts +150 -0
  118. package/dist/zkp/snarkjs-backend.d.ts.map +1 -0
  119. package/dist/zkp/snarkjs-backend.js +218 -0
  120. package/dist/zkp/snarkjs-backend.js.map +1 -0
  121. package/dist/zkp/universal-manager.d.ts +44 -0
  122. package/dist/zkp/universal-manager.d.ts.map +1 -0
  123. package/dist/zkp/universal-manager.js +181 -0
  124. package/dist/zkp/universal-manager.js.map +1 -0
  125. package/package.json +2 -2
@@ -0,0 +1,237 @@
1
+ /**
2
+ * DIAP TypeScript SDK - 智能体验证模块
3
+ * 验证智能体身份和认证状态
4
+ */
5
+ import { logger } from './utils/logger.js';
6
+ /**
7
+ * 验证状态
8
+ */
9
+ export var VerificationStatus;
10
+ (function (VerificationStatus) {
11
+ /** 未验证 */
12
+ VerificationStatus["Unverified"] = "unverified";
13
+ /** 验证中 */
14
+ VerificationStatus["Verifying"] = "verifying";
15
+ /** 已验证 */
16
+ VerificationStatus["Verified"] = "verified";
17
+ /** 验证失败 */
18
+ VerificationStatus["Failed"] = "failed";
19
+ /** 已过期 */
20
+ VerificationStatus["Expired"] = "expired";
21
+ })(VerificationStatus || (VerificationStatus = {}));
22
+ /**
23
+ * 验证类型
24
+ */
25
+ export var VerificationType;
26
+ (function (VerificationType) {
27
+ /** 身份验证 */
28
+ VerificationType["Identity"] = "identity";
29
+ /** ZKP 验证 */
30
+ VerificationType["ZKP"] = "zkp";
31
+ /** 双向验证 */
32
+ VerificationType["Bidirectional"] = "bidirectional";
33
+ /** 实名认证 */
34
+ VerificationType["RealName"] = "real_name";
35
+ })(VerificationType || (VerificationType = {}));
36
+ /**
37
+ * 智能体验证管理器
38
+ */
39
+ export class AgentVerificationManager {
40
+ /** 待验证请求 */
41
+ pendingRequests;
42
+ /** 已验证记录 */
43
+ verifiedRecords;
44
+ /** 验证超时(毫秒) */
45
+ verificationTimeout;
46
+ /**
47
+ * 创建验证管理器
48
+ */
49
+ constructor(verificationTimeout = 300000) {
50
+ this.pendingRequests = new Map();
51
+ this.verifiedRecords = new Map();
52
+ this.verificationTimeout = verificationTimeout;
53
+ logger.info('✅ 智能体验证管理器已创建');
54
+ }
55
+ /**
56
+ * 创建验证请求
57
+ */
58
+ createVerificationRequest(agentDid, verifierDid, verificationType, metadata) {
59
+ const requestId = this.generateRequestId();
60
+ const now = Date.now();
61
+ const request = {
62
+ requestId,
63
+ agentDid,
64
+ verifierDid,
65
+ verificationType,
66
+ requestedAt: now,
67
+ expiresAt: now + this.verificationTimeout,
68
+ metadata,
69
+ };
70
+ this.pendingRequests.set(requestId, request);
71
+ logger.info(`📝 创建验证请求: ${requestId}`);
72
+ return request;
73
+ }
74
+ /**
75
+ * 验证身份
76
+ */
77
+ async verifyIdentity(request, proof) {
78
+ logger.info(`🔍 验证身份: ${request.agentDid}`);
79
+ try {
80
+ // 模拟验证过程
81
+ await this.simulateVerification(request.verificationType);
82
+ const result = {
83
+ isValid: true,
84
+ status: VerificationStatus.Verified,
85
+ verifiedAt: Date.now(),
86
+ verifierDid: request.verifierDid,
87
+ details: {
88
+ verificationType: request.verificationType,
89
+ proofProvided: !!proof,
90
+ },
91
+ };
92
+ // 存储验证结果
93
+ this.verifiedRecords.set(request.agentDid, result);
94
+ // 从待验证队列移除
95
+ this.pendingRequests.delete(request.requestId);
96
+ logger.info(`✅ 身份验证成功: ${request.agentDid}`);
97
+ return result;
98
+ }
99
+ catch (error) {
100
+ logger.error(`❌ 身份验证失败: ${error}`);
101
+ const result = {
102
+ isValid: false,
103
+ status: VerificationStatus.Failed,
104
+ verifiedAt: Date.now(),
105
+ details: { error: String(error) },
106
+ };
107
+ this.verifiedRecords.set(request.agentDid, result);
108
+ this.pendingRequests.delete(request.requestId);
109
+ return result;
110
+ }
111
+ }
112
+ /**
113
+ * 验证 ZKP 证明
114
+ */
115
+ async verifyZKP(agentDid, proof, publicInputs) {
116
+ logger.info(`🔐 验证 ZKP: ${agentDid}`);
117
+ try {
118
+ // 模拟 ZKP 验证
119
+ await this.simulateVerification(VerificationType.ZKP);
120
+ const result = {
121
+ isValid: true,
122
+ status: VerificationStatus.Verified,
123
+ verifiedAt: Date.now(),
124
+ details: {
125
+ verificationType: VerificationType.ZKP,
126
+ proofLength: proof.length,
127
+ },
128
+ };
129
+ this.verifiedRecords.set(agentDid, result);
130
+ return result;
131
+ }
132
+ catch (error) {
133
+ logger.error(`❌ ZKP 验证失败: ${error}`);
134
+ return {
135
+ isValid: false,
136
+ status: VerificationStatus.Failed,
137
+ verifiedAt: Date.now(),
138
+ details: { error: String(error) },
139
+ };
140
+ }
141
+ }
142
+ /**
143
+ * 执行双向验证
144
+ */
145
+ async verifyBidirectional(agent1Did, agent2Did) {
146
+ logger.info(`🔄 双向验证: ${agent1Did} <-> ${agent2Did}`);
147
+ const [result1, result2] = await Promise.all([
148
+ this.verifyIdentity(this.createVerificationRequest(agent1Did, agent2Did, VerificationType.Bidirectional)),
149
+ this.verifyIdentity(this.createVerificationRequest(agent2Did, agent1Did, VerificationType.Bidirectional)),
150
+ ]);
151
+ logger.info(`✅ 双向验证完成`);
152
+ return { result1, result2 };
153
+ }
154
+ /**
155
+ * 获取验证状态
156
+ */
157
+ getVerificationStatus(agentDid) {
158
+ const record = this.verifiedRecords.get(agentDid);
159
+ if (!record) {
160
+ return VerificationStatus.Unverified;
161
+ }
162
+ // 检查是否过期
163
+ if (record.verifiedAt + this.verificationTimeout < Date.now()) {
164
+ return VerificationStatus.Expired;
165
+ }
166
+ return record.status;
167
+ }
168
+ /**
169
+ * 检查是否已验证
170
+ */
171
+ isVerified(agentDid) {
172
+ return this.getVerificationStatus(agentDid) === VerificationStatus.Verified;
173
+ }
174
+ /**
175
+ * 获取验证结果
176
+ */
177
+ getVerificationResult(agentDid) {
178
+ return this.verifiedRecords.get(agentDid) || null;
179
+ }
180
+ /**
181
+ * 撤销验证
182
+ */
183
+ revokeVerification(agentDid) {
184
+ if (this.verifiedRecords.has(agentDid)) {
185
+ this.verifiedRecords.delete(agentDid);
186
+ logger.info(`🔙 撤销验证: ${agentDid}`);
187
+ return true;
188
+ }
189
+ return false;
190
+ }
191
+ /**
192
+ * 获取待验证请求数
193
+ */
194
+ getPendingCount() {
195
+ return this.pendingRequests.size;
196
+ }
197
+ /**
198
+ * 获取已验证记录数
199
+ */
200
+ getVerifiedCount() {
201
+ return this.verifiedRecords.size;
202
+ }
203
+ /**
204
+ * 清空所有记录
205
+ */
206
+ clear() {
207
+ this.pendingRequests.clear();
208
+ this.verifiedRecords.clear();
209
+ logger.info('🧹 已清空所有验证记录');
210
+ }
211
+ /**
212
+ * 生成请求 ID
213
+ */
214
+ generateRequestId() {
215
+ return `vr_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
216
+ }
217
+ /**
218
+ * 模拟验证过程
219
+ */
220
+ async simulateVerification(type) {
221
+ return new Promise((resolve) => setTimeout(resolve, 100));
222
+ }
223
+ }
224
+ // ============================================================================
225
+ // 便捷函数
226
+ // ============================================================================
227
+ /**
228
+ * 创建验证管理器(便捷函数)
229
+ */
230
+ export function createVerificationManager(verificationTimeout) {
231
+ return new AgentVerificationManager(verificationTimeout);
232
+ }
233
+ // ============================================================================
234
+ // 导出
235
+ // ============================================================================
236
+ // 注意: 所有类型已在声明时导出
237
+ //# sourceMappingURL=agent-verification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-verification.js","sourceRoot":"","sources":["../src/agent-verification.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,156 @@
1
+ /**
2
+ * DIAP TypeScript SDK - 配置管理模块
3
+ * Decentralized Intelligent Agent Protocol
4
+ * 负责加载、保存和管理 SDK 配置
5
+ */
6
+ /**
7
+ * SDK 配置
8
+ */
9
+ export interface DIAPConfig {
10
+ /** 智能体配置 */
11
+ agent: AgentConfig;
12
+ /** IPFS 配置 */
13
+ ipfs: IpfsConfig;
14
+ /** IPNS 配置 */
15
+ ipns: IpnsConfig;
16
+ /** 缓存配置 */
17
+ cache: CacheConfig;
18
+ /** 日志配置 */
19
+ logging: LoggingConfig;
20
+ }
21
+ /**
22
+ * 智能体配置
23
+ */
24
+ export interface AgentConfig {
25
+ /** 智能体名称 */
26
+ name: string;
27
+ /** 私钥文件路径 */
28
+ privateKeyPath: string;
29
+ /** 是否自动生成密钥(如果文件不存在) */
30
+ autoGenerateKey: boolean;
31
+ }
32
+ /**
33
+ * IPFS 配置
34
+ */
35
+ export interface IpfsConfig {
36
+ /** AWS IPFS 节点 API 地址(优先) */
37
+ awsApiUrl?: string;
38
+ /** AWS IPFS 网关地址 */
39
+ awsGatewayUrl?: string;
40
+ /** Pinata API 密钥(备用) */
41
+ pinataApiKey?: string;
42
+ /** Pinata API 密钥 */
43
+ pinataApiSecret?: string;
44
+ /** 超时时间(秒) */
45
+ timeoutSeconds: number;
46
+ }
47
+ /**
48
+ * IPNS 配置
49
+ */
50
+ export interface IpnsConfig {
51
+ /** 是否使用 w3name(优先) */
52
+ useW3name: boolean;
53
+ /** 是否使用 IPFS 节点(备用) */
54
+ useIpfsNode: boolean;
55
+ /** IPNS 记录有效期(天) */
56
+ validityDays: number;
57
+ }
58
+ /**
59
+ * 缓存配置
60
+ */
61
+ export interface CacheConfig {
62
+ /** 是否启用缓存 */
63
+ enabled: boolean;
64
+ /** 缓存 TTL(秒) */
65
+ ttlSeconds: number;
66
+ /** 最大缓存条目数 */
67
+ maxEntries: number;
68
+ /** 缓存目录 */
69
+ cacheDir?: string;
70
+ }
71
+ /**
72
+ * 日志配置
73
+ */
74
+ export interface LoggingConfig {
75
+ /** 日志级别: trace, debug, info, warn, error */
76
+ level: string;
77
+ }
78
+ /**
79
+ * 获取默认配置文件路径
80
+ */
81
+ export declare function getDefaultConfigPath(): string;
82
+ /**
83
+ * 获取默认数据目录
84
+ */
85
+ export declare function getDefaultDataDir(): string;
86
+ /**
87
+ * 获取默认缓存目录
88
+ */
89
+ export declare function getDefaultCacheDir(): string;
90
+ /**
91
+ * 创建默认配置
92
+ */
93
+ export declare function createDefaultConfig(): DIAPConfig;
94
+ /**
95
+ * 配置管理器
96
+ */
97
+ export declare class ConfigManager {
98
+ private config;
99
+ private configPath;
100
+ /**
101
+ * 创建配置管理器
102
+ */
103
+ constructor(config: DIAPConfig, configPath: string);
104
+ /**
105
+ * 从文件加载配置
106
+ */
107
+ static fromFile(configPath: string): ConfigManager;
108
+ /**
109
+ * 创建或加载配置
110
+ */
111
+ static load(): Promise<ConfigManager>;
112
+ /**
113
+ * 获取当前配置
114
+ */
115
+ getConfig(): DIAPConfig;
116
+ /**
117
+ * 获取配置路径
118
+ */
119
+ getConfigPath(): string;
120
+ /**
121
+ * 更新配置
122
+ */
123
+ updateConfig(newConfig: Partial<DIAPConfig>): void;
124
+ /**
125
+ * 保存配置到文件
126
+ */
127
+ saveToFile(): Promise<void>;
128
+ /**
129
+ * 验证配置
130
+ */
131
+ validate(): {
132
+ valid: boolean;
133
+ errors: string[];
134
+ };
135
+ /**
136
+ * 创建子配置访问器
137
+ */
138
+ getAgentConfig(): AgentConfig;
139
+ getIpfsConfig(): IpfsConfig;
140
+ getIpnsConfig(): IpnsConfig;
141
+ getCacheConfig(): CacheConfig;
142
+ getLoggingConfig(): LoggingConfig;
143
+ }
144
+ /**
145
+ * 加载配置(便捷函数)
146
+ */
147
+ export declare function loadConfig(): Promise<ConfigManager>;
148
+ /**
149
+ * 获取默认配置(便捷函数)
150
+ */
151
+ export declare function getDefaultConfig(): DIAPConfig;
152
+ /**
153
+ * 保存配置到指定路径
154
+ */
155
+ export declare function saveConfig(config: DIAPConfig, configPath?: string): Promise<void>;
156
+ //# sourceMappingURL=config-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-manager.d.ts","sourceRoot":"","sources":["../src/config-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,241 @@
1
+ /**
2
+ * DIAP TypeScript SDK - 配置管理模块
3
+ * Decentralized Intelligent Agent Protocol
4
+ * 负责加载、保存和管理 SDK 配置
5
+ */
6
+ import * as fs from 'fs';
7
+ import * as path from 'path';
8
+ import { logger } from './utils/logger.js';
9
+ // ============================================================================
10
+ // 默认值
11
+ // ============================================================================
12
+ const DEFAULT_TIMEOUT_SECONDS = 30;
13
+ const DEFAULT_IPNS_VALIDITY_DAYS = 365;
14
+ const DEFAULT_CACHE_TTL_SECONDS = 21600; // 6小时
15
+ const DEFAULT_CACHE_MAX_ENTRIES = 1000;
16
+ const DEFAULT_LOG_LEVEL = 'info';
17
+ /**
18
+ * 获取默认配置文件路径
19
+ */
20
+ export function getDefaultConfigPath() {
21
+ // 在 Node.js 中使用 home 目录
22
+ const homeDir = process.env.HOME || process.env.USERPROFILE || '.';
23
+ return path.join(homeDir, '.config', 'diap-ts-sdk', 'config.json');
24
+ }
25
+ /**
26
+ * 获取默认数据目录
27
+ */
28
+ export function getDefaultDataDir() {
29
+ const homeDir = process.env.HOME || process.env.USERPROFILE || '.';
30
+ return path.join(homeDir, '.local', 'share', 'diap-ts-sdk');
31
+ }
32
+ /**
33
+ * 获取默认缓存目录
34
+ */
35
+ export function getDefaultCacheDir() {
36
+ const homeDir = process.env.HOME || process.env.USERPROFILE || '.';
37
+ return path.join(homeDir, '.cache', 'diap-ts-sdk');
38
+ }
39
+ // ============================================================================
40
+ // 默认配置
41
+ // ============================================================================
42
+ /**
43
+ * 创建默认配置
44
+ */
45
+ export function createDefaultConfig() {
46
+ const dataDir = getDefaultDataDir();
47
+ const cacheDir = getDefaultCacheDir();
48
+ return {
49
+ agent: {
50
+ name: 'DIAP Agent',
51
+ privateKeyPath: path.join(dataDir, 'keys', 'agent.key'),
52
+ autoGenerateKey: true,
53
+ },
54
+ ipfs: {
55
+ timeoutSeconds: DEFAULT_TIMEOUT_SECONDS,
56
+ },
57
+ ipns: {
58
+ useW3name: true,
59
+ useIpfsNode: true,
60
+ validityDays: DEFAULT_IPNS_VALIDITY_DAYS,
61
+ },
62
+ cache: {
63
+ enabled: true,
64
+ ttlSeconds: DEFAULT_CACHE_TTL_SECONDS,
65
+ maxEntries: DEFAULT_CACHE_MAX_ENTRIES,
66
+ cacheDir: cacheDir,
67
+ },
68
+ logging: {
69
+ level: DEFAULT_LOG_LEVEL,
70
+ },
71
+ };
72
+ }
73
+ // ============================================================================
74
+ // ConfigManager 类
75
+ // ============================================================================
76
+ /**
77
+ * 配置管理器
78
+ */
79
+ export class ConfigManager {
80
+ config;
81
+ configPath;
82
+ /**
83
+ * 创建配置管理器
84
+ */
85
+ constructor(config, configPath) {
86
+ this.config = config;
87
+ this.configPath = configPath;
88
+ logger.debug(`配置管理器已创建,路径: ${configPath}`);
89
+ }
90
+ /**
91
+ * 从文件加载配置
92
+ */
93
+ static fromFile(configPath) {
94
+ logger.info(`从文件加载配置: ${configPath}`);
95
+ try {
96
+ if (fs.existsSync(configPath)) {
97
+ const content = fs.readFileSync(configPath, 'utf-8');
98
+ const config = JSON.parse(content);
99
+ logger.info('配置加载成功');
100
+ return new ConfigManager(config, configPath);
101
+ }
102
+ else {
103
+ logger.warn(`配置文件不存在: ${configPath}`);
104
+ throw new Error(`配置文件不存在: ${configPath}`);
105
+ }
106
+ }
107
+ catch (error) {
108
+ logger.error(`加载配置失败: ${error}`);
109
+ throw error;
110
+ }
111
+ }
112
+ /**
113
+ * 创建或加载配置
114
+ */
115
+ static async load() {
116
+ const configPath = getDefaultConfigPath();
117
+ logger.info(`加载配置,路径: ${configPath}`);
118
+ if (fs.existsSync(configPath)) {
119
+ return ConfigManager.fromFile(configPath);
120
+ }
121
+ // 创建默认配置并保存
122
+ logger.info('使用默认配置');
123
+ const config = createDefaultConfig();
124
+ const manager = new ConfigManager(config, configPath);
125
+ // 尝试保存默认配置
126
+ try {
127
+ await manager.saveToFile();
128
+ logger.info(`已保存默认配置到: ${configPath}`);
129
+ }
130
+ catch (error) {
131
+ logger.warn(`无法保存默认配置: ${error}`);
132
+ }
133
+ return manager;
134
+ }
135
+ /**
136
+ * 获取当前配置
137
+ */
138
+ getConfig() {
139
+ return this.config;
140
+ }
141
+ /**
142
+ * 获取配置路径
143
+ */
144
+ getConfigPath() {
145
+ return this.configPath;
146
+ }
147
+ /**
148
+ * 更新配置
149
+ */
150
+ updateConfig(newConfig) {
151
+ this.config = {
152
+ ...this.config,
153
+ ...newConfig,
154
+ };
155
+ logger.debug('配置已更新');
156
+ }
157
+ /**
158
+ * 保存配置到文件
159
+ */
160
+ async saveToFile() {
161
+ try {
162
+ // 确保目录存在
163
+ const dir = path.dirname(this.configPath);
164
+ if (!fs.existsSync(dir)) {
165
+ fs.mkdirSync(dir, { recursive: true });
166
+ }
167
+ const content = JSON.stringify(this.config, null, 2);
168
+ fs.writeFileSync(this.configPath, content, 'utf-8');
169
+ logger.info(`配置已保存到: ${this.configPath}`);
170
+ }
171
+ catch (error) {
172
+ logger.error(`保存配置失败: ${error}`);
173
+ throw error;
174
+ }
175
+ }
176
+ /**
177
+ * 验证配置
178
+ */
179
+ validate() {
180
+ const errors = [];
181
+ // 验证 IPFS 配置
182
+ if (!this.config.ipfs.awsApiUrl && !this.config.ipfs.pinataApiKey) {
183
+ errors.push('必须配置 AWS IPFS 节点或 Pinata');
184
+ }
185
+ // 验证 IPNS 配置
186
+ if (!this.config.ipns.useW3name && !this.config.ipns.useIpfsNode) {
187
+ errors.push('必须至少启用一种 IPNS 发布方式');
188
+ }
189
+ // 验证日志级别
190
+ const validLevels = ['trace', 'debug', 'info', 'warn', 'error'];
191
+ if (!validLevels.includes(this.config.logging.level)) {
192
+ errors.push(`无效的日志级别: ${this.config.logging.level}`);
193
+ }
194
+ return {
195
+ valid: errors.length === 0,
196
+ errors,
197
+ };
198
+ }
199
+ /**
200
+ * 创建子配置访问器
201
+ */
202
+ getAgentConfig() {
203
+ return this.config.agent;
204
+ }
205
+ getIpfsConfig() {
206
+ return this.config.ipfs;
207
+ }
208
+ getIpnsConfig() {
209
+ return this.config.ipns;
210
+ }
211
+ getCacheConfig() {
212
+ return this.config.cache;
213
+ }
214
+ getLoggingConfig() {
215
+ return this.config.logging;
216
+ }
217
+ }
218
+ // ============================================================================
219
+ // 便捷函数
220
+ // ============================================================================
221
+ /**
222
+ * 加载配置(便捷函数)
223
+ */
224
+ export async function loadConfig() {
225
+ return ConfigManager.load();
226
+ }
227
+ /**
228
+ * 获取默认配置(便捷函数)
229
+ */
230
+ export function getDefaultConfig() {
231
+ return createDefaultConfig();
232
+ }
233
+ /**
234
+ * 保存配置到指定路径
235
+ */
236
+ export async function saveConfig(config, configPath) {
237
+ const path = configPath || getDefaultConfigPath();
238
+ const manager = new ConfigManager(config, path);
239
+ await manager.saveToFile();
240
+ }
241
+ //# sourceMappingURL=config-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-manager.js","sourceRoot":"","sources":["../src/config-manager.ts"],"names":[],"mappings":"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"}