apifox-workspace-mcp 2.0.8 → 2.1.0

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 (41) hide show
  1. package/dist/core/cache/unified-cache-manager.d.ts +60 -2
  2. package/dist/core/cache/unified-cache-manager.d.ts.map +1 -1
  3. package/dist/core/cache/unified-cache-manager.js +167 -2
  4. package/dist/core/cache/unified-cache-manager.js.map +1 -1
  5. package/dist/core/config/manager.d.ts +23 -0
  6. package/dist/core/config/manager.d.ts.map +1 -1
  7. package/dist/core/config/manager.js +90 -1
  8. package/dist/core/config/manager.js.map +1 -1
  9. package/dist/core/parser/index.d.ts +1 -1
  10. package/dist/core/parser/index.d.ts.map +1 -1
  11. package/dist/core/parser/index.js +1 -1
  12. package/dist/core/parser/index.js.map +1 -1
  13. package/dist/core/parser/llms.d.ts +12 -0
  14. package/dist/core/parser/llms.d.ts.map +1 -1
  15. package/dist/core/parser/llms.js +24 -0
  16. package/dist/core/parser/llms.js.map +1 -1
  17. package/dist/lib/env.d.ts.map +1 -1
  18. package/dist/lib/env.js.map +1 -1
  19. package/dist/server/handlers/get-interface-detail.d.ts.map +1 -1
  20. package/dist/server/handlers/get-interface-detail.js +14 -5
  21. package/dist/server/handlers/get-interface-detail.js.map +1 -1
  22. package/dist/server/handlers/index.d.ts +1 -0
  23. package/dist/server/handlers/index.d.ts.map +1 -1
  24. package/dist/server/handlers/index.js +1 -0
  25. package/dist/server/handlers/index.js.map +1 -1
  26. package/dist/server/handlers/list-project-interfaces.d.ts.map +1 -1
  27. package/dist/server/handlers/list-project-interfaces.js +23 -13
  28. package/dist/server/handlers/list-project-interfaces.js.map +1 -1
  29. package/dist/server/handlers/parse-and-add-project.d.ts.map +1 -1
  30. package/dist/server/handlers/parse-and-add-project.js +9 -9
  31. package/dist/server/handlers/parse-and-add-project.js.map +1 -1
  32. package/dist/server/handlers/query-interfaces.d.ts.map +1 -1
  33. package/dist/server/handlers/query-interfaces.js +12 -0
  34. package/dist/server/handlers/query-interfaces.js.map +1 -1
  35. package/dist/server/handlers/refresh-project-cache.d.ts +22 -0
  36. package/dist/server/handlers/refresh-project-cache.d.ts.map +1 -0
  37. package/dist/server/handlers/refresh-project-cache.js +45 -0
  38. package/dist/server/handlers/refresh-project-cache.js.map +1 -0
  39. package/dist/server/index.js +32 -4
  40. package/dist/server/index.js.map +1 -1
  41. package/package.json +1 -1
@@ -11,6 +11,7 @@
11
11
  * - 索引优化:使用 Map 建立索引,查找时间复杂度 O(1)
12
12
  * - 错误恢复:自动备份损坏的文件
13
13
  */
14
+ import type { ConfigManager } from '../config/manager.js';
14
15
  /**
15
16
  * 缓存的接口信息(只包含从 llms.txt 解析的基础信息)
16
17
  * 注意:不包含 method, path, description,这些信息每次查询详情时都重新获取
@@ -38,6 +39,12 @@ export interface ProjectCache {
38
39
  lastUpdated?: string;
39
40
  /** 接口列表(扁平数组) */
40
41
  interfaces: CachedInterface[];
42
+ /** 缓存过期时间(ISO 8601),新增字段 */
43
+ cacheExpiresAt?: string;
44
+ /** llms.txt 内容 Hash(16 位),新增字段 */
45
+ llmsContentHash?: string;
46
+ /** 接口数量(用于快速检测变化),新增字段 */
47
+ interfaceCount?: number;
41
48
  }
42
49
  /**
43
50
  * 统一缓存文件结构
@@ -106,13 +113,29 @@ export declare class UnifiedCacheManager {
106
113
  * 获取项目的接口列表
107
114
  */
108
115
  getInterfaces(projectName: string, keyword?: string): CachedInterface[];
116
+ /**
117
+ * 检查缓存是否过期(基于 TTL)
118
+ * @param project 项目缓存对象
119
+ * @param configManager 配置管理器(可选,用于获取 TTL)
120
+ * @returns 是否过期
121
+ */
122
+ isCacheExpired(project: ProjectCache, configManager?: ConfigManager): boolean;
123
+ /**
124
+ * 计算过期时间
125
+ * @param projectId 项目 ID
126
+ * @param configManager 配置管理器(可选)
127
+ * @returns ISO 8601 格式的过期时间字符串
128
+ */
129
+ private calculateExpiresAt;
109
130
  /**
110
131
  * 添加或更新项目元数据
132
+ * @param configManager 配置管理器(可选,用于设置 TTL)
111
133
  */
112
- upsertProjectMetadata(projectName: string, projectId: string, llmsUrl: string, shareId?: string): void;
134
+ upsertProjectMetadata(projectName: string, projectId: string, llmsUrl: string, shareId?: string, configManager?: ConfigManager): void;
113
135
  /**
114
136
  * 更新项目的接口列表(从 llms.txt 解析)
115
137
  * 支持增量更新:只更新变化的接口
138
+ * @param contentHash 内容 Hash(可选,用于版本检测)
116
139
  */
117
140
  updateInterfacesFromLlms(projectName: string, parsedInterfaces: Array<{
118
141
  id: string;
@@ -120,7 +143,7 @@ export declare class UnifiedCacheManager {
120
143
  folderPath: string;
121
144
  docUrl: string;
122
145
  version?: string;
123
- }>): void;
146
+ }>, contentHash?: string): void;
124
147
  /**
125
148
  * 列出所有项目
126
149
  */
@@ -145,5 +168,40 @@ export declare class UnifiedCacheManager {
145
168
  * 强制保存缓存(用于需要立即保存的场景)
146
169
  */
147
170
  flush(): Promise<void>;
171
+ /**
172
+ * 刷新策略枚举
173
+ */
174
+ static RefreshStrategy: {
175
+ readonly LAZY: "lazy";
176
+ readonly FORCE: "force";
177
+ readonly SKIP: "skip";
178
+ };
179
+ /**
180
+ * 检查项目是否需要刷新(基于版本检测)
181
+ * 性能优化:先检查 TTL,只有未过期时才进行版本检测
182
+ */
183
+ needsRefresh(project: ProjectCache, configManager?: ConfigManager): Promise<{
184
+ needsRefresh: boolean;
185
+ reason?: 'expired' | 'hash_mismatch' | 'count_mismatch' | 'version_mismatch';
186
+ }>;
187
+ /**
188
+ * 检查接口版本号是否变化
189
+ */
190
+ private checkVersionMismatch;
191
+ /**
192
+ * 智能刷新项目缓存
193
+ * @param projectName 项目名称
194
+ * @param configManager 配置管理器(可选)
195
+ * @param strategy 刷新策略
196
+ */
197
+ refreshProjectCache(projectName: string, configManager?: ConfigManager, strategy?: 'lazy' | 'force' | 'skip'): Promise<{
198
+ refreshed: boolean;
199
+ reason?: string;
200
+ interfaceCount?: number;
201
+ }>;
202
+ /**
203
+ * 执行刷新操作
204
+ */
205
+ private doRefresh;
148
206
  }
149
207
  //# sourceMappingURL=unified-cache-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"unified-cache-manager.d.ts","sourceRoot":"","sources":["../../../src/core/cache/unified-cache-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAiBH;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,WAAW;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB;IACjB,UAAU,EAAE,eAAe,EAAE,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,YAAY,EAAE,CAAC;AAqC1C;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,YAAY,CAAa;IAGjC,OAAO,CAAC,gBAAgB,CAAkC;IAC1D,OAAO,CAAC,cAAc,CAAkC;IACxD,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,cAAc,CAA+C;gBAEzD,WAAW,EAAE,MAAM;IAiC/B;;OAEG;IACH,OAAO,CAAC,YAAY;IA+BpB;;OAEG;IACH,OAAO,CAAC,SAAS;IA8EjB;;OAEG;IACH,OAAO,CAAC,SAAS;IAIjB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA6BhC;;;OAGG;YACW,SAAS;IAuFvB;;OAEG;IACH,OAAO,CAAC,aAAa;IA0BrB;;OAEG;IACH,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAK3D;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAKvD;;OAEG;IACH,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAK1D;;OAEG;IACH,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAK9C;;;OAGG;IACH,aAAa,CACX,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,eAAe,GAAG,IAAI;IAyBzB;;OAEG;IACH,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,eAAe,EAAE;IAmBvE;;OAEG;IACH,qBAAqB,CACnB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,GACf,IAAI;IAuFP;;;OAGG;IACH,wBAAwB,CACtB,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,KAAK,CAAC;QACtB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC,GACD,IAAI;IA2CP;;OAEG;IACH,YAAY,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAqBnD;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,aAAa,IAAI;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;KAC1B;IAqBD;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
1
+ {"version":3,"file":"unified-cache-manager.d.ts","sourceRoot":"","sources":["../../../src/core/cache/unified-cache-manager.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@
14
14
  import { existsSync, readFileSync, writeFileSync, mkdirSync, copyFileSync, statSync, openSync, closeSync, unlinkSync, constants, } from 'fs';
15
15
  import { dirname, join } from 'path';
16
16
  import { logger } from '../../lib/logger.js';
17
+ import { fetchAndParseLlmsWithHash } from '../parser/llms.js';
17
18
  /**
18
19
  * 运行时类型验证函数(简化版本,不依赖外部库)
19
20
  */
@@ -406,10 +407,46 @@ export class UnifiedCacheManager {
406
407
  }
407
408
  return interfaces;
408
409
  }
410
+ /**
411
+ * 检查缓存是否过期(基于 TTL)
412
+ * @param project 项目缓存对象
413
+ * @param configManager 配置管理器(可选,用于获取 TTL)
414
+ * @returns 是否过期
415
+ */
416
+ isCacheExpired(project, configManager) {
417
+ // 如果没有配置管理器,无法判断,返回 false(不强制刷新)
418
+ if (!configManager) {
419
+ return false;
420
+ }
421
+ if (!project.cacheExpiresAt) {
422
+ // 兼容旧数据:使用 lastUpdated + TTL
423
+ if (!project.lastUpdated)
424
+ return true;
425
+ const ttl = configManager.getProjectTTL(project.projectId);
426
+ const expiresAt = new Date(project.lastUpdated).getTime() + ttl * 1000;
427
+ return Date.now() > expiresAt;
428
+ }
429
+ return new Date(project.cacheExpiresAt).getTime() < Date.now();
430
+ }
431
+ /**
432
+ * 计算过期时间
433
+ * @param projectId 项目 ID
434
+ * @param configManager 配置管理器(可选)
435
+ * @returns ISO 8601 格式的过期时间字符串
436
+ */
437
+ calculateExpiresAt(projectId, configManager) {
438
+ if (!configManager) {
439
+ return undefined; // 如果没有配置管理器,不设置过期时间
440
+ }
441
+ const ttl = configManager.getProjectTTL(projectId);
442
+ const expiresAt = new Date(Date.now() + ttl * 1000);
443
+ return expiresAt.toISOString();
444
+ }
409
445
  /**
410
446
  * 添加或更新项目元数据
447
+ * @param configManager 配置管理器(可选,用于设置 TTL)
411
448
  */
412
- upsertProjectMetadata(projectName, projectId, llmsUrl, shareId) {
449
+ upsertProjectMetadata(projectName, projectId, llmsUrl, shareId, configManager) {
413
450
  let project = this.findProjectByName(projectName) || this.findProjectById(projectId);
414
451
  // 如果提供了 shareId,也尝试通过 shareId 查找
415
452
  if (!project && shareId) {
@@ -425,6 +462,10 @@ export class UnifiedCacheManager {
425
462
  lastUpdated: new Date().toISOString(),
426
463
  interfaces: [],
427
464
  };
465
+ // 如果有配置管理器,设置过期时间
466
+ if (configManager) {
467
+ project.cacheExpiresAt = this.calculateExpiresAt(projectId, configManager);
468
+ }
428
469
  this.cache.push(project);
429
470
  // 更新索引
430
471
  const newIndex = this.cache.length - 1;
@@ -447,6 +488,10 @@ export class UnifiedCacheManager {
447
488
  }
448
489
  project.llmsUrls = llmsUrl;
449
490
  project.lastUpdated = new Date().toISOString();
491
+ // 如果有配置管理器,设置过期时间
492
+ if (configManager) {
493
+ project.cacheExpiresAt = this.calculateExpiresAt(projectId, configManager);
494
+ }
450
495
  // 更新索引
451
496
  if (oldProjectName !== projectName) {
452
497
  const projectIndex = this.projectNameIndex.get(oldProjectName);
@@ -490,8 +535,9 @@ export class UnifiedCacheManager {
490
535
  /**
491
536
  * 更新项目的接口列表(从 llms.txt 解析)
492
537
  * 支持增量更新:只更新变化的接口
538
+ * @param contentHash 内容 Hash(可选,用于版本检测)
493
539
  */
494
- updateInterfacesFromLlms(projectName, parsedInterfaces) {
540
+ updateInterfacesFromLlms(projectName, parsedInterfaces, contentHash) {
495
541
  const project = this.findProjectByName(projectName);
496
542
  if (!project) {
497
543
  throw new Error(`项目 ${projectName} 不存在`);
@@ -517,6 +563,11 @@ export class UnifiedCacheManager {
517
563
  };
518
564
  });
519
565
  project.interfaces = newInterfaces;
566
+ // 保存 Hash 和接口数量(如果提供了)
567
+ if (contentHash) {
568
+ project.llmsContentHash = contentHash;
569
+ }
570
+ project.interfaceCount = parsedInterfaces.length;
520
571
  // 重建接口索引
521
572
  const interfaceMap = new Map();
522
573
  newInterfaces.forEach((iface, index) => {
@@ -583,5 +634,119 @@ export class UnifiedCacheManager {
583
634
  async flush() {
584
635
  await this.saveCache();
585
636
  }
637
+ /**
638
+ * 刷新策略枚举
639
+ */
640
+ static RefreshStrategy = {
641
+ LAZY: 'lazy', // 懒加载:只在访问时检查并刷新
642
+ FORCE: 'force', // 强制刷新:立即刷新,忽略缓存
643
+ SKIP: 'skip', // 跳过刷新:使用缓存,不检查更新
644
+ };
645
+ /**
646
+ * 检查项目是否需要刷新(基于版本检测)
647
+ * 性能优化:先检查 TTL,只有未过期时才进行版本检测
648
+ */
649
+ async needsRefresh(project, configManager) {
650
+ // 1. 如果没有配置管理器,不进行刷新检测(保持向后兼容)
651
+ if (!configManager) {
652
+ return { needsRefresh: false };
653
+ }
654
+ // 2. 先检查 TTL 是否过期(性能优化:避免不必要的网络请求)
655
+ if (this.isCacheExpired(project, configManager)) {
656
+ return { needsRefresh: true, reason: 'expired' };
657
+ }
658
+ // 3. 如果 TTL 未过期,检查 llms.txt 内容 Hash(可选检测)
659
+ if (project.llmsUrls && project.llmsContentHash) {
660
+ try {
661
+ const { contentHash, interfaces } = await fetchAndParseLlmsWithHash(project.llmsUrls);
662
+ // Hash 不匹配
663
+ if (contentHash !== project.llmsContentHash) {
664
+ return { needsRefresh: true, reason: 'hash_mismatch' };
665
+ }
666
+ // 接口数量变化
667
+ if (project.interfaceCount !== undefined && project.interfaceCount !== interfaces.length) {
668
+ return { needsRefresh: true, reason: 'count_mismatch' };
669
+ }
670
+ // 版本号检测
671
+ if (this.checkVersionMismatch(project.interfaces, interfaces)) {
672
+ return { needsRefresh: true, reason: 'version_mismatch' };
673
+ }
674
+ }
675
+ catch (error) {
676
+ // 检测失败,不强制刷新(避免网络问题导致的功能异常)
677
+ logger.warn(`版本检测失败: ${error instanceof Error ? error.message : String(error)}`);
678
+ }
679
+ }
680
+ return { needsRefresh: false };
681
+ }
682
+ /**
683
+ * 检查接口版本号是否变化
684
+ */
685
+ checkVersionMismatch(cached, remote) {
686
+ const cachedMap = new Map(cached.map((i) => [i.id, i.version]));
687
+ for (const remoteIface of remote) {
688
+ const cachedVersion = cachedMap.get(remoteIface.id);
689
+ if (remoteIface.version && cachedVersion !== remoteIface.version) {
690
+ return true;
691
+ }
692
+ }
693
+ return false;
694
+ }
695
+ /**
696
+ * 智能刷新项目缓存
697
+ * @param projectName 项目名称
698
+ * @param configManager 配置管理器(可选)
699
+ * @param strategy 刷新策略
700
+ */
701
+ async refreshProjectCache(projectName, configManager, strategy = 'lazy') {
702
+ const project = this.findProjectByName(projectName);
703
+ if (!project) {
704
+ throw new Error(`项目 ${projectName} 不存在`);
705
+ }
706
+ // 如果没有配置管理器,根据策略决定是否刷新
707
+ if (!configManager) {
708
+ if (strategy === 'force') {
709
+ // 强制刷新时,即使没有配置管理器也执行刷新(但不设置 TTL)
710
+ return await this.doRefresh(project, configManager);
711
+ }
712
+ return { refreshed: false, reason: 'no_config_manager' };
713
+ }
714
+ // 强制刷新
715
+ if (strategy === 'force') {
716
+ return await this.doRefresh(project, configManager);
717
+ }
718
+ // 跳过刷新
719
+ if (strategy === 'skip') {
720
+ return { refreshed: false, reason: 'skip' };
721
+ }
722
+ // 懒加载:检查是否需要刷新
723
+ const checkResult = await this.needsRefresh(project, configManager);
724
+ if (!checkResult.needsRefresh) {
725
+ return { refreshed: false, reason: 'up_to_date' };
726
+ }
727
+ // 执行刷新
728
+ return await this.doRefresh(project, configManager);
729
+ }
730
+ /**
731
+ * 执行刷新操作
732
+ */
733
+ async doRefresh(project, configManager) {
734
+ const { interfaces, contentHash } = await fetchAndParseLlmsWithHash(project.llmsUrls);
735
+ // 更新缓存
736
+ this.updateInterfacesFromLlms(project.projectName, interfaces, contentHash);
737
+ // 更新过期时间和元数据(如果有配置管理器)
738
+ project.lastUpdated = new Date().toISOString();
739
+ if (configManager) {
740
+ project.cacheExpiresAt = this.calculateExpiresAt(project.projectId, configManager);
741
+ }
742
+ project.llmsContentHash = contentHash;
743
+ project.interfaceCount = interfaces.length;
744
+ this.markDirty();
745
+ this.saveCacheSync();
746
+ return {
747
+ refreshed: true,
748
+ interfaceCount: interfaces.length,
749
+ };
750
+ }
586
751
  }
587
752
  //# sourceMappingURL=unified-cache-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"unified-cache-manager.js","sourceRoot":"","sources":["../../../src/core/cache/unified-cache-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"unified-cache-manager.js","sourceRoot":"","sources":["../../../src/core/cache/unified-cache-manager.ts"],"names":[],"mappings":"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"}
@@ -2,10 +2,25 @@
2
2
  * 配置管理器
3
3
  * 负责从环境变量中获取配置信息
4
4
  * APIFOX_ACCESS_TOKEN 和 APIFOX_API_BASE_URL 从环境变量中获取(MCP Server 的 env 配置)
5
+ * 缓存配置从 MCP 配置文件中读取(.cursor/mcp.json)
5
6
  */
6
7
  export declare class ConfigManager {
7
8
  private projectRoot;
9
+ private cacheConfig;
8
10
  constructor(projectRoot: string);
11
+ /**
12
+ * 从 MCP 配置文件中读取缓存配置
13
+ * 复用 src/lib/env.ts 的配置读取逻辑,但只读取 cache 字段
14
+ */
15
+ private loadCacheConfig;
16
+ /**
17
+ * 复用 src/lib/env.ts 的路径构建逻辑
18
+ */
19
+ private buildCandidatePaths;
20
+ /**
21
+ * 复用 src/lib/env.ts 的服务器配置选择逻辑
22
+ */
23
+ private pickServerConfig;
9
24
  /**
10
25
  * 从环境变量中获取 APIFOX_ACCESS_TOKEN
11
26
  * @returns access token 或 null
@@ -16,5 +31,13 @@ export declare class ConfigManager {
16
31
  * @returns API base URL 或 null
17
32
  */
18
33
  getApiBaseUrl(): string | null;
34
+ /**
35
+ * 获取项目的 TTL(优先使用项目特定 TTL,否则使用通用 TTL)
36
+ */
37
+ getProjectTTL(projectId: string): number;
38
+ /**
39
+ * 获取默认 TTL
40
+ */
41
+ getDefaultTTL(): number;
19
42
  }
20
43
  //# sourceMappingURL=manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/core/config/manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,WAAW;gBAAX,WAAW,EAAE,MAAM;IAIvC;;;OAGG;IACH,cAAc,IAAI,MAAM,GAAG,IAAI;IAO/B;;;OAGG;IACH,aAAa,IAAI,MAAM,GAAG,IAAI;CAQ/B"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/core/config/manager.ts"],"names":[],"mappings":"AAmBA;;;;;GAKG;AACH,qBAAa,aAAa;IAMZ,OAAO,CAAC,WAAW;IAL/B,OAAO,CAAC,WAAW,CAGH;gBAEI,WAAW,EAAE,MAAM;IAIvC;;;OAGG;IACH,OAAO,CAAC,eAAe;IAkCvB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAgB3B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAqBxB;;;OAGG;IACH,cAAc,IAAI,MAAM,GAAG,IAAI;IAO/B;;;OAGG;IACH,aAAa,IAAI,MAAM,GAAG,IAAI;IAS9B;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAOxC;;OAEG;IACH,aAAa,IAAI,MAAM;CAMxB"}
@@ -1,13 +1,84 @@
1
+ import { existsSync, readFileSync } from 'fs';
2
+ import { homedir } from 'os';
3
+ import { join, resolve } from 'path';
4
+ import { DEFAULT_SERVER_NAME } from '../../lib/env.js';
1
5
  /**
2
6
  * 配置管理器
3
7
  * 负责从环境变量中获取配置信息
4
8
  * APIFOX_ACCESS_TOKEN 和 APIFOX_API_BASE_URL 从环境变量中获取(MCP Server 的 env 配置)
9
+ * 缓存配置从 MCP 配置文件中读取(.cursor/mcp.json)
5
10
  */
6
11
  export class ConfigManager {
7
12
  projectRoot;
13
+ cacheConfig = null;
8
14
  constructor(projectRoot) {
9
15
  this.projectRoot = projectRoot;
10
- // projectRoot 保留用于未来可能的扩展,当前不使用
16
+ this.loadCacheConfig();
17
+ }
18
+ /**
19
+ * 从 MCP 配置文件中读取缓存配置
20
+ * 复用 src/lib/env.ts 的配置读取逻辑,但只读取 cache 字段
21
+ */
22
+ loadCacheConfig() {
23
+ const candidatePaths = this.buildCandidatePaths();
24
+ for (const path of candidatePaths) {
25
+ if (!path || !existsSync(path)) {
26
+ continue;
27
+ }
28
+ try {
29
+ const file = readFileSync(path, 'utf-8');
30
+ const config = JSON.parse(file);
31
+ const serverConfig = this.pickServerConfig(config, DEFAULT_SERVER_NAME);
32
+ if (serverConfig?.cache) {
33
+ this.cacheConfig = {
34
+ defaultTTL: serverConfig.cache.defaultTTL ?? 86400, // 默认 24 小时
35
+ projectTTL: serverConfig.cache.projectTTL ?? {},
36
+ };
37
+ break; // 找到第一个有效配置后停止
38
+ }
39
+ }
40
+ catch (error) {
41
+ // 忽略解析错误,继续尝试下一个配置文件
42
+ }
43
+ }
44
+ // 如果没有找到配置,使用默认值
45
+ if (!this.cacheConfig) {
46
+ this.cacheConfig = {
47
+ defaultTTL: 86400,
48
+ projectTTL: {},
49
+ };
50
+ }
51
+ }
52
+ /**
53
+ * 复用 src/lib/env.ts 的路径构建逻辑
54
+ */
55
+ buildCandidatePaths() {
56
+ const paths = new Set();
57
+ if (this.projectRoot) {
58
+ paths.add(resolve(this.projectRoot, '.cursor', 'mcp.json'));
59
+ }
60
+ if (process.env.APIFOX_MCP_CONFIG_PATH) {
61
+ paths.add(resolve(process.env.APIFOX_MCP_CONFIG_PATH));
62
+ }
63
+ paths.add(join(homedir(), '.cursor', 'mcp.json'));
64
+ return Array.from(paths);
65
+ }
66
+ /**
67
+ * 复用 src/lib/env.ts 的服务器配置选择逻辑
68
+ */
69
+ pickServerConfig(config, serverName) {
70
+ if (!config?.mcpServers) {
71
+ return null;
72
+ }
73
+ if (config.mcpServers[serverName]) {
74
+ return config.mcpServers[serverName];
75
+ }
76
+ // 回退:寻找 command 中包含 apifox 的 server
77
+ const fallback = Object.values(config.mcpServers).find((server) => !!server &&
78
+ typeof server === 'object' &&
79
+ typeof server.command === 'string' &&
80
+ server.command.includes('apifox'));
81
+ return fallback ?? null;
11
82
  }
12
83
  /**
13
84
  * 从环境变量中获取 APIFOX_ACCESS_TOKEN
@@ -30,5 +101,23 @@ export class ConfigManager {
30
101
  const trimmed = baseUrl.trim();
31
102
  return trimmed.length > 0 ? trimmed : null;
32
103
  }
104
+ /**
105
+ * 获取项目的 TTL(优先使用项目特定 TTL,否则使用通用 TTL)
106
+ */
107
+ getProjectTTL(projectId) {
108
+ if (!this.cacheConfig) {
109
+ return 86400; // 默认值
110
+ }
111
+ return this.cacheConfig.projectTTL[projectId] ?? this.cacheConfig.defaultTTL;
112
+ }
113
+ /**
114
+ * 获取默认 TTL
115
+ */
116
+ getDefaultTTL() {
117
+ if (!this.cacheConfig) {
118
+ return 86400; // 默认值
119
+ }
120
+ return this.cacheConfig.defaultTTL;
121
+ }
33
122
  }
34
123
  //# sourceMappingURL=manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/core/config/manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,OAAO,aAAa;IACJ;IAApB,YAAoB,WAAmB;QAAnB,gBAAW,GAAX,WAAW,CAAQ;QACrC,gCAAgC;IAClC,CAAC;IAED;;;OAGG;IACH,cAAc;QACZ,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;QAE9C,6BAA6B;QAC7B,OAAO,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IACrD,CAAC;IAED;;;OAGG;IACH,aAAa;QACX,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;QAChD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC/B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7C,CAAC;CACF"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/core/config/manager.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export { isValidApifoxUrl, parseApifoxUrl, ShareLinkType } from './url.js';
5
5
  export type { ParsedUrl } from './url.js';
6
- export { parseLlmsContent, fetchAndParseLlms } from './llms.js';
6
+ export { parseLlmsContent, fetchAndParseLlms, fetchAndParseLlmsWithHash, calculateLlmsHash, } from './llms.js';
7
7
  export type { ParsedInterface } from './llms.js';
8
8
  export { parseInterfaceFromMd } from './md-parser.js';
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/parser/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC3E,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAChE,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/parser/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC3E,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -2,6 +2,6 @@
2
2
  * 解析器模块
3
3
  */
4
4
  export { isValidApifoxUrl, parseApifoxUrl, ShareLinkType } from './url.js';
5
- export { parseLlmsContent, fetchAndParseLlms } from './llms.js';
5
+ export { parseLlmsContent, fetchAndParseLlms, fetchAndParseLlmsWithHash, calculateLlmsHash, } from './llms.js';
6
6
  export { parseInterfaceFromMd } from './md-parser.js';
7
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/parser/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE3E,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAEhE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/parser/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE3E,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -27,6 +27,10 @@ export interface ParsedInterface {
27
27
  * @returns 解析后的接口列表
28
28
  */
29
29
  export declare function parseLlmsContent(content: string): ParsedInterface[];
30
+ /**
31
+ * 计算 llms.txt 内容的 Hash(16 位)
32
+ */
33
+ export declare function calculateLlmsHash(content: string): string;
30
34
  /**
31
35
  * 从 llms.txt URL 获取并解析接口列表
32
36
  *
@@ -34,4 +38,12 @@ export declare function parseLlmsContent(content: string): ParsedInterface[];
34
38
  * @returns 解析后的接口列表
35
39
  */
36
40
  export declare function fetchAndParseLlms(llmsUrl: string): Promise<ParsedInterface[]>;
41
+ /**
42
+ * 从 llms.txt 获取接口列表和 Hash
43
+ * 这是 fetchAndParseLlms 的扩展版本,同时返回 Hash
44
+ */
45
+ export declare function fetchAndParseLlmsWithHash(llmsUrl: string): Promise<{
46
+ interfaces: ParsedInterface[];
47
+ contentHash: string;
48
+ }>;
37
49
  //# sourceMappingURL=llms.d.ts.map