@skillsmith/mcp-server 0.3.4 → 0.3.6

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 (175) hide show
  1. package/README.md +1 -1
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/src/__tests__/LocalIndexer.test.d.ts +5 -0
  4. package/dist/src/__tests__/LocalIndexer.test.d.ts.map +1 -0
  5. package/dist/src/__tests__/LocalIndexer.test.js +396 -0
  6. package/dist/src/__tests__/LocalIndexer.test.js.map +1 -0
  7. package/dist/src/__tests__/get-skill.test.js +195 -0
  8. package/dist/src/__tests__/get-skill.test.js.map +1 -1
  9. package/dist/src/__tests__/index-local.test.d.ts +5 -0
  10. package/dist/src/__tests__/index-local.test.d.ts.map +1 -0
  11. package/dist/src/__tests__/index-local.test.js +203 -0
  12. package/dist/src/__tests__/index-local.test.js.map +1 -0
  13. package/dist/src/__tests__/recommend.test.d.ts +7 -0
  14. package/dist/src/__tests__/recommend.test.d.ts.map +1 -0
  15. package/dist/src/__tests__/recommend.test.js +277 -0
  16. package/dist/src/__tests__/recommend.test.js.map +1 -0
  17. package/dist/src/__tests__/search.test.js +138 -0
  18. package/dist/src/__tests__/search.test.js.map +1 -1
  19. package/dist/src/context.d.ts +6 -0
  20. package/dist/src/context.d.ts.map +1 -1
  21. package/dist/src/context.js +7 -1
  22. package/dist/src/context.js.map +1 -1
  23. package/dist/src/index.js +14 -0
  24. package/dist/src/index.js.map +1 -1
  25. package/dist/src/indexer/FrontmatterParser.d.ts +30 -0
  26. package/dist/src/indexer/FrontmatterParser.d.ts.map +1 -0
  27. package/dist/src/indexer/FrontmatterParser.js +109 -0
  28. package/dist/src/indexer/FrontmatterParser.js.map +1 -0
  29. package/dist/src/indexer/LocalIndexer.d.ts +136 -0
  30. package/dist/src/indexer/LocalIndexer.d.ts.map +1 -0
  31. package/dist/src/indexer/LocalIndexer.js +271 -0
  32. package/dist/src/indexer/LocalIndexer.js.map +1 -0
  33. package/dist/src/indexer/index.d.ts +8 -0
  34. package/dist/src/indexer/index.d.ts.map +1 -0
  35. package/dist/src/indexer/index.js +8 -0
  36. package/dist/src/indexer/index.js.map +1 -0
  37. package/dist/src/llm/failover.d.ts +11 -1
  38. package/dist/src/llm/failover.d.ts.map +1 -1
  39. package/dist/src/llm/failover.js.map +1 -1
  40. package/dist/src/middleware/errorFormatter.d.ts +27 -0
  41. package/dist/src/middleware/errorFormatter.d.ts.map +1 -1
  42. package/dist/src/middleware/errorFormatter.js +95 -0
  43. package/dist/src/middleware/errorFormatter.js.map +1 -1
  44. package/dist/src/middleware/index.d.ts +1 -1
  45. package/dist/src/middleware/index.d.ts.map +1 -1
  46. package/dist/src/middleware/index.js.map +1 -1
  47. package/dist/src/middleware/quota-helpers.d.ts +40 -0
  48. package/dist/src/middleware/quota-helpers.d.ts.map +1 -0
  49. package/dist/src/middleware/quota-helpers.js +90 -0
  50. package/dist/src/middleware/quota-helpers.js.map +1 -0
  51. package/dist/src/middleware/quota-types.d.ts +105 -0
  52. package/dist/src/middleware/quota-types.d.ts.map +1 -0
  53. package/dist/src/middleware/quota-types.js +4 -0
  54. package/dist/src/middleware/quota-types.js.map +1 -0
  55. package/dist/src/middleware/quota.d.ts +3 -97
  56. package/dist/src/middleware/quota.d.ts.map +1 -1
  57. package/dist/src/middleware/quota.js +2 -87
  58. package/dist/src/middleware/quota.js.map +1 -1
  59. package/dist/src/tools/LocalSkillSearch.d.ts +32 -0
  60. package/dist/src/tools/LocalSkillSearch.d.ts.map +1 -0
  61. package/dist/src/tools/LocalSkillSearch.js +74 -0
  62. package/dist/src/tools/LocalSkillSearch.js.map +1 -0
  63. package/dist/src/tools/compare.helpers.js.map +1 -1
  64. package/dist/src/tools/compare.types.d.ts +1 -0
  65. package/dist/src/tools/compare.types.d.ts.map +1 -1
  66. package/dist/src/tools/compare.types.js +2 -0
  67. package/dist/src/tools/compare.types.js.map +1 -1
  68. package/dist/src/tools/get-skill.js +3 -0
  69. package/dist/src/tools/get-skill.js.map +1 -1
  70. package/dist/src/tools/index-local.d.ts +117 -0
  71. package/dist/src/tools/index-local.d.ts.map +1 -0
  72. package/dist/src/tools/index-local.js +126 -0
  73. package/dist/src/tools/index-local.js.map +1 -0
  74. package/dist/src/tools/index.d.ts +2 -0
  75. package/dist/src/tools/index.d.ts.map +1 -1
  76. package/dist/src/tools/index.js +2 -0
  77. package/dist/src/tools/index.js.map +1 -1
  78. package/dist/src/tools/install.conflict-helpers.d.ts +64 -0
  79. package/dist/src/tools/install.conflict-helpers.d.ts.map +1 -0
  80. package/dist/src/tools/install.conflict-helpers.js +165 -0
  81. package/dist/src/tools/install.conflict-helpers.js.map +1 -0
  82. package/dist/src/tools/install.conflict-helpers.test.d.ts +15 -0
  83. package/dist/src/tools/install.conflict-helpers.test.d.ts.map +1 -0
  84. package/dist/src/tools/install.conflict-helpers.test.js +243 -0
  85. package/dist/src/tools/install.conflict-helpers.test.js.map +1 -0
  86. package/dist/src/tools/install.conflict.d.ts +58 -0
  87. package/dist/src/tools/install.conflict.d.ts.map +1 -0
  88. package/dist/src/tools/install.conflict.js +160 -0
  89. package/dist/src/tools/install.conflict.js.map +1 -0
  90. package/dist/src/tools/install.conflict.test.d.ts +15 -0
  91. package/dist/src/tools/install.conflict.test.d.ts.map +1 -0
  92. package/dist/src/tools/install.conflict.test.js +354 -0
  93. package/dist/src/tools/install.conflict.test.js.map +1 -0
  94. package/dist/src/tools/install.d.ts +5 -0
  95. package/dist/src/tools/install.d.ts.map +1 -1
  96. package/dist/src/tools/install.helpers.d.ts +5 -4
  97. package/dist/src/tools/install.helpers.d.ts.map +1 -1
  98. package/dist/src/tools/install.helpers.js +13 -4
  99. package/dist/src/tools/install.helpers.js.map +1 -1
  100. package/dist/src/tools/install.js +96 -17
  101. package/dist/src/tools/install.js.map +1 -1
  102. package/dist/src/tools/install.types.d.ts +75 -11
  103. package/dist/src/tools/install.types.d.ts.map +1 -1
  104. package/dist/src/tools/install.types.js +15 -1
  105. package/dist/src/tools/install.types.js.map +1 -1
  106. package/dist/src/tools/merge.d.ts +53 -0
  107. package/dist/src/tools/merge.d.ts.map +1 -0
  108. package/dist/src/tools/merge.js +276 -0
  109. package/dist/src/tools/merge.js.map +1 -0
  110. package/dist/src/tools/merge.test.d.ts +11 -0
  111. package/dist/src/tools/merge.test.d.ts.map +1 -0
  112. package/dist/src/tools/merge.test.js +224 -0
  113. package/dist/src/tools/merge.test.js.map +1 -0
  114. package/dist/src/tools/recommend.d.ts +1 -0
  115. package/dist/src/tools/recommend.d.ts.map +1 -1
  116. package/dist/src/tools/recommend.js +165 -38
  117. package/dist/src/tools/recommend.js.map +1 -1
  118. package/dist/src/tools/search.d.ts.map +1 -1
  119. package/dist/src/tools/search.js +31 -4
  120. package/dist/src/tools/search.js.map +1 -1
  121. package/dist/src/utils/validation.d.ts +6 -2
  122. package/dist/src/utils/validation.d.ts.map +1 -1
  123. package/dist/src/utils/validation.js +11 -2
  124. package/dist/src/utils/validation.js.map +1 -1
  125. package/dist/src/webhooks/webhook-endpoint.d.ts +4 -49
  126. package/dist/src/webhooks/webhook-endpoint.d.ts.map +1 -1
  127. package/dist/src/webhooks/webhook-endpoint.js +3 -125
  128. package/dist/src/webhooks/webhook-endpoint.js.map +1 -1
  129. package/dist/src/webhooks/webhook-helpers.d.ts +69 -0
  130. package/dist/src/webhooks/webhook-helpers.d.ts.map +1 -0
  131. package/dist/src/webhooks/webhook-helpers.js +146 -0
  132. package/dist/src/webhooks/webhook-helpers.js.map +1 -0
  133. package/dist/tests/e2e/conflict-resolution.e2e.test.d.ts +12 -0
  134. package/dist/tests/e2e/conflict-resolution.e2e.test.d.ts.map +1 -0
  135. package/dist/tests/e2e/conflict-resolution.e2e.test.js +343 -0
  136. package/dist/tests/e2e/conflict-resolution.e2e.test.js.map +1 -0
  137. package/dist/tests/integration/fixtures/development-skills.d.ts +22 -0
  138. package/dist/tests/integration/fixtures/development-skills.d.ts.map +1 -0
  139. package/dist/tests/integration/fixtures/development-skills.js +165 -0
  140. package/dist/tests/integration/fixtures/development-skills.js.map +1 -0
  141. package/dist/tests/integration/fixtures/devops-skills.d.ts +10 -0
  142. package/dist/tests/integration/fixtures/devops-skills.d.ts.map +1 -0
  143. package/dist/tests/integration/fixtures/devops-skills.js +70 -0
  144. package/dist/tests/integration/fixtures/devops-skills.js.map +1 -0
  145. package/dist/tests/integration/fixtures/experimental-skills.d.ts +14 -0
  146. package/dist/tests/integration/fixtures/experimental-skills.d.ts.map +1 -0
  147. package/dist/tests/integration/fixtures/experimental-skills.js +255 -0
  148. package/dist/tests/integration/fixtures/experimental-skills.js.map +1 -0
  149. package/dist/tests/integration/fixtures/skill-types.d.ts +18 -0
  150. package/dist/tests/integration/fixtures/skill-types.d.ts.map +1 -0
  151. package/dist/tests/integration/fixtures/skill-types.js +6 -0
  152. package/dist/tests/integration/fixtures/skill-types.js.map +1 -0
  153. package/dist/tests/integration/fixtures/test-skills.d.ts +10 -14
  154. package/dist/tests/integration/fixtures/test-skills.d.ts.map +1 -1
  155. package/dist/tests/integration/fixtures/test-skills.js +23 -590
  156. package/dist/tests/integration/fixtures/test-skills.js.map +1 -1
  157. package/dist/tests/integration/fixtures/testing-skills.d.ts +10 -0
  158. package/dist/tests/integration/fixtures/testing-skills.d.ts.map +1 -0
  159. package/dist/tests/integration/fixtures/testing-skills.js +70 -0
  160. package/dist/tests/integration/fixtures/testing-skills.js.map +1 -0
  161. package/dist/tests/integration/fixtures/verified-skills.d.ts +11 -0
  162. package/dist/tests/integration/fixtures/verified-skills.d.ts.map +1 -0
  163. package/dist/tests/integration/fixtures/verified-skills.js +91 -0
  164. package/dist/tests/integration/fixtures/verified-skills.js.map +1 -0
  165. package/dist/tests/integration/install-conflict.integration.test.d.ts +8 -0
  166. package/dist/tests/integration/install-conflict.integration.test.d.ts.map +1 -0
  167. package/dist/tests/integration/install-conflict.integration.test.js +384 -0
  168. package/dist/tests/integration/install-conflict.integration.test.js.map +1 -0
  169. package/dist/tests/integration/install-trust-parsing.integration.test.d.ts +13 -0
  170. package/dist/tests/integration/install-trust-parsing.integration.test.d.ts.map +1 -0
  171. package/dist/tests/integration/install-trust-parsing.integration.test.js +290 -0
  172. package/dist/tests/integration/install-trust-parsing.integration.test.js.map +1 -0
  173. package/dist/tests/integration/install.integration.test.js +3 -0
  174. package/dist/tests/integration/install.integration.test.js.map +1 -1
  175. package/package.json +7 -6
@@ -0,0 +1,90 @@
1
+ // SPDX-License-Identifier: Elastic-2.0
2
+ // Copyright 2024-2025 Smith Horn Group Ltd
3
+ // ============================================================================
4
+ // In-Memory Storage (Default)
5
+ // ============================================================================
6
+ /**
7
+ * Simple in-memory storage for quota tracking
8
+ * Note: This resets on server restart. Use a database-backed storage
9
+ * in production via the storage option.
10
+ */
11
+ export class InMemoryQuotaStorage {
12
+ usage = new Map();
13
+ async getUsage(customerId) {
14
+ const now = new Date();
15
+ const existing = this.usage.get(customerId);
16
+ // If we have existing data and it's still in the current period, return it
17
+ if (existing && existing.periodEnd > now) {
18
+ return existing;
19
+ }
20
+ // Otherwise, create a new period
21
+ const periodStart = this.getMonthStart(now);
22
+ const periodEnd = this.getMonthEnd(now);
23
+ const newUsage = { used: 0, periodStart, periodEnd };
24
+ this.usage.set(customerId, newUsage);
25
+ return newUsage;
26
+ }
27
+ async incrementUsage(customerId, cost) {
28
+ const usage = await this.getUsage(customerId);
29
+ usage.used += cost;
30
+ }
31
+ async initializePeriod(customerId, _limit) {
32
+ const now = new Date();
33
+ this.usage.set(customerId, {
34
+ used: 0,
35
+ periodStart: this.getMonthStart(now),
36
+ periodEnd: this.getMonthEnd(now),
37
+ });
38
+ }
39
+ getMonthStart(date) {
40
+ return new Date(date.getFullYear(), date.getMonth(), 1);
41
+ }
42
+ getMonthEnd(date) {
43
+ return new Date(date.getFullYear(), date.getMonth() + 1, 1);
44
+ }
45
+ }
46
+ // ============================================================================
47
+ // Helper Functions
48
+ // ============================================================================
49
+ /**
50
+ * Get the warning level based on percentage used
51
+ */
52
+ export function getWarningLevel(percentUsed) {
53
+ if (percentUsed >= 100)
54
+ return 100;
55
+ if (percentUsed >= 90)
56
+ return 90;
57
+ if (percentUsed >= 80)
58
+ return 80;
59
+ return 0;
60
+ }
61
+ /**
62
+ * Get warning message based on level and current usage
63
+ */
64
+ export function getWarningMessage(warningLevel, used, limit, _tier) {
65
+ if (warningLevel === 0)
66
+ return undefined;
67
+ const remaining = Math.max(0, limit - used);
68
+ switch (warningLevel) {
69
+ case 100:
70
+ return `API quota exceeded (${used.toLocaleString()}/${limit.toLocaleString()} calls). Upgrade to continue.`;
71
+ case 90:
72
+ return `Warning: 90% of API quota used (${remaining.toLocaleString()} calls remaining). Consider upgrading.`;
73
+ case 80:
74
+ return `Notice: 80% of API quota used (${remaining.toLocaleString()} calls remaining).`;
75
+ default:
76
+ return undefined;
77
+ }
78
+ }
79
+ /**
80
+ * Generate a customer ID from license info
81
+ * Falls back to 'anonymous' for community users without an organization ID
82
+ */
83
+ export function getCustomerId(licenseInfo, providedId) {
84
+ if (providedId)
85
+ return providedId;
86
+ if (licenseInfo?.organizationId)
87
+ return licenseInfo.organizationId;
88
+ return 'anonymous';
89
+ }
90
+ //# sourceMappingURL=quota-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quota-helpers.js","sourceRoot":"","sources":["../../../src/middleware/quota-helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * SMI-1091: Quota Types - Type definitions for quota enforcement
3
+ *
4
+ * Extracted from quota.ts to reduce file size.
5
+ *
6
+ * @see quota.ts for main middleware implementation
7
+ */
8
+ import type { LicenseInfo } from './license.js';
9
+ import type { MCPErrorResponse } from './errorFormatter.js';
10
+ /**
11
+ * Warning threshold type for quota levels
12
+ */
13
+ export type WarningLevel = 0 | 80 | 90 | 100;
14
+ /**
15
+ * Quota check result returned after validating usage
16
+ */
17
+ export interface QuotaCheckResult {
18
+ /** Whether the tool call is allowed */
19
+ allowed: boolean;
20
+ /** Remaining API calls in the current period */
21
+ remaining: number;
22
+ /** Total limit for the current tier (-1 for unlimited) */
23
+ limit: number;
24
+ /** Percentage of quota used (0-100+) */
25
+ percentUsed: number;
26
+ /** Current warning level (0, 80, 90, or 100) */
27
+ warningLevel: WarningLevel;
28
+ /** When the quota resets (start of next billing period) */
29
+ resetAt: Date;
30
+ /** Warning or error message if applicable */
31
+ message?: string;
32
+ /** Upgrade URL if quota is exceeded or near limit */
33
+ upgradeUrl?: string;
34
+ }
35
+ /**
36
+ * Quota information to include in response metadata
37
+ */
38
+ export interface QuotaMetadata {
39
+ /** Remaining API calls */
40
+ remaining: number;
41
+ /** Total limit (-1 for unlimited) */
42
+ limit: number;
43
+ /** When the quota resets */
44
+ resetAt: string;
45
+ /** Warning message if approaching limit */
46
+ warning?: string;
47
+ }
48
+ /**
49
+ * Interface for quota storage adapters
50
+ */
51
+ export interface QuotaStorage {
52
+ /** Get current usage for a customer in the current period */
53
+ getUsage(customerId: string): Promise<{
54
+ used: number;
55
+ periodStart: Date;
56
+ periodEnd: Date;
57
+ }>;
58
+ /** Increment usage count */
59
+ incrementUsage(customerId: string, cost: number): Promise<void>;
60
+ /** Initialize quota for a new billing period */
61
+ initializePeriod(customerId: string, limit: number): Promise<void>;
62
+ }
63
+ /**
64
+ * Quota middleware configuration options
65
+ */
66
+ export interface QuotaMiddlewareOptions {
67
+ /**
68
+ * Cost of each API call (default: 1)
69
+ * Can be customized per tool if some tools are more expensive
70
+ */
71
+ defaultCost?: number;
72
+ /**
73
+ * Whether to track usage even for unlimited tiers (enterprise)
74
+ * Useful for analytics purposes
75
+ */
76
+ trackUnlimited?: boolean;
77
+ /**
78
+ * Custom storage adapter for quota tracking
79
+ * If not provided, uses in-memory storage (resets on restart)
80
+ */
81
+ storage?: QuotaStorage;
82
+ }
83
+ /**
84
+ * Quota middleware instance
85
+ */
86
+ export interface QuotaMiddleware {
87
+ /**
88
+ * Check if a tool call is allowed and track usage
89
+ * Call this BEFORE executing the tool
90
+ */
91
+ checkAndTrack(toolName: string, licenseInfo: LicenseInfo | null, customerId?: string): Promise<QuotaCheckResult>;
92
+ /**
93
+ * Get current quota status without incrementing
94
+ */
95
+ getStatus(licenseInfo: LicenseInfo | null, customerId?: string): Promise<QuotaCheckResult>;
96
+ /**
97
+ * Build quota metadata for response _meta field
98
+ */
99
+ buildMetadata(result: QuotaCheckResult): QuotaMetadata;
100
+ /**
101
+ * Build error response for quota exceeded
102
+ */
103
+ buildExceededResponse(result: QuotaCheckResult): MCPErrorResponse;
104
+ }
105
+ //# sourceMappingURL=quota-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quota-types.d.ts","sourceRoot":"","sources":["../../../src/middleware/quota-types.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAE3D;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAA;AAE5C;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uCAAuC;IACvC,OAAO,EAAE,OAAO,CAAA;IAChB,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAA;IACjB,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAA;IACb,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAA;IACnB,gDAAgD;IAChD,YAAY,EAAE,YAAY,CAAA;IAC1B,2DAA2D;IAC3D,OAAO,EAAE,IAAI,CAAA;IACb,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAA;IACjB,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAA;IACb,4BAA4B;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,6DAA6D;IAC7D,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,IAAI,CAAC;QAAC,SAAS,EAAE,IAAI,CAAA;KAAE,CAAC,CAAA;IAC3F,4BAA4B;IAC5B,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/D,gDAAgD;IAChD,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACnE;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IAExB;;;OAGG;IACH,OAAO,CAAC,EAAE,YAAY,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,aAAa,CACX,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,WAAW,GAAG,IAAI,EAC/B,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAE5B;;OAEG;IACH,SAAS,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAE1F;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,aAAa,CAAA;IAEtD;;OAEG;IACH,qBAAqB,CAAC,MAAM,EAAE,gBAAgB,GAAG,gBAAgB,CAAA;CAClE"}
@@ -0,0 +1,4 @@
1
+ // SPDX-License-Identifier: Elastic-2.0
2
+ // Copyright 2024-2025 Smith Horn Group Ltd
3
+ export {};
4
+ //# sourceMappingURL=quota-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quota-types.js","sourceRoot":"","sources":["../../../src/middleware/quota-types.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,2CAA2C"}
@@ -13,103 +13,10 @@
13
13
  * @see SMI-1055: Add license middleware to MCP server
14
14
  * @see packages/enterprise/src/quota/QuotaEnforcementService.ts
15
15
  */
16
- import type { LicenseMiddleware, LicenseInfo, LicenseTier } from './license.js';
16
+ import type { LicenseMiddleware, LicenseTier } from './license.js';
17
17
  import { type MCPErrorResponse } from './errorFormatter.js';
18
- /**
19
- * Warning threshold type for quota levels
20
- */
21
- type WarningLevel = 0 | 80 | 90 | 100;
22
- /**
23
- * Quota check result returned after validating usage
24
- */
25
- export interface QuotaCheckResult {
26
- /** Whether the tool call is allowed */
27
- allowed: boolean;
28
- /** Remaining API calls in the current period */
29
- remaining: number;
30
- /** Total limit for the current tier (-1 for unlimited) */
31
- limit: number;
32
- /** Percentage of quota used (0-100+) */
33
- percentUsed: number;
34
- /** Current warning level (0, 80, 90, or 100) */
35
- warningLevel: WarningLevel;
36
- /** When the quota resets (start of next billing period) */
37
- resetAt: Date;
38
- /** Warning or error message if applicable */
39
- message?: string;
40
- /** Upgrade URL if quota is exceeded or near limit */
41
- upgradeUrl?: string;
42
- }
43
- /**
44
- * Quota information to include in response metadata
45
- */
46
- export interface QuotaMetadata {
47
- /** Remaining API calls */
48
- remaining: number;
49
- /** Total limit (-1 for unlimited) */
50
- limit: number;
51
- /** When the quota resets */
52
- resetAt: string;
53
- /** Warning message if approaching limit */
54
- warning?: string;
55
- }
56
- /**
57
- * Quota middleware configuration options
58
- */
59
- export interface QuotaMiddlewareOptions {
60
- /**
61
- * Cost of each API call (default: 1)
62
- * Can be customized per tool if some tools are more expensive
63
- */
64
- defaultCost?: number;
65
- /**
66
- * Whether to track usage even for unlimited tiers (enterprise)
67
- * Useful for analytics purposes
68
- */
69
- trackUnlimited?: boolean;
70
- /**
71
- * Custom storage adapter for quota tracking
72
- * If not provided, uses in-memory storage (resets on restart)
73
- */
74
- storage?: QuotaStorage;
75
- }
76
- /**
77
- * Interface for quota storage adapters
78
- */
79
- export interface QuotaStorage {
80
- /** Get current usage for a customer in the current period */
81
- getUsage(customerId: string): Promise<{
82
- used: number;
83
- periodStart: Date;
84
- periodEnd: Date;
85
- }>;
86
- /** Increment usage count */
87
- incrementUsage(customerId: string, cost: number): Promise<void>;
88
- /** Initialize quota for a new billing period */
89
- initializePeriod(customerId: string, limit: number): Promise<void>;
90
- }
91
- /**
92
- * Quota middleware instance
93
- */
94
- export interface QuotaMiddleware {
95
- /**
96
- * Check if a tool call is allowed and track usage
97
- * Call this BEFORE executing the tool
98
- */
99
- checkAndTrack(toolName: string, licenseInfo: LicenseInfo | null, customerId?: string): Promise<QuotaCheckResult>;
100
- /**
101
- * Get current quota status without incrementing
102
- */
103
- getStatus(licenseInfo: LicenseInfo | null, customerId?: string): Promise<QuotaCheckResult>;
104
- /**
105
- * Build quota metadata for response _meta field
106
- */
107
- buildMetadata(result: QuotaCheckResult): QuotaMetadata;
108
- /**
109
- * Build error response for quota exceeded
110
- */
111
- buildExceededResponse(result: QuotaCheckResult): MCPErrorResponse;
112
- }
18
+ export type { QuotaCheckResult, QuotaMetadata, QuotaMiddlewareOptions, QuotaStorage, QuotaMiddleware, WarningLevel, } from './quota-types.js';
19
+ import type { QuotaMiddlewareOptions, QuotaMiddleware } from './quota-types.js';
113
20
  /**
114
21
  * Create a quota enforcement middleware
115
22
  *
@@ -178,5 +85,4 @@ export declare function getQuotaLimit(tier: LicenseTier): number;
178
85
  * Format quota remaining for display
179
86
  */
180
87
  export declare function formatQuotaRemaining(remaining: number, limit: number): string;
181
- export {};
182
88
  //# sourceMappingURL=quota.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"quota.d.ts","sourceRoot":"","sources":["../../../src/middleware/quota.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quota.d.ts","sourceRoot":"","sources":["../../../src/middleware/quota.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAe,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/E,OAAO,EAA8B,KAAK,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAGvF,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,sBAAsB,EACtB,YAAY,EACZ,eAAe,EACf,YAAY,GACb,MAAM,kBAAkB,CAAA;AAEzB,OAAO,KAAK,EAGV,sBAAsB,EACtB,eAAe,EAChB,MAAM,kBAAkB,CAAA;AAkCzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,sBAA2B,GAAG,eAAe,CA6H3F;AAMD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EACnD,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,EAC9C,iBAAiB,EAAE,iBAAiB,EACpC,eAAe,EAAE,eAAe,GAC/B,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,GAAG,gBAAgB,CAAC,CAgB5E;AAMD;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAE1D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAEvD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAK7E"}
@@ -1,6 +1,8 @@
1
1
  // SPDX-License-Identifier: Elastic-2.0
2
2
  // Copyright 2024-2025 Smith Horn Group Ltd
3
3
  import { buildQuotaExceededResponse } from './errorFormatter.js';
4
+ // Import helpers from quota-helpers.ts
5
+ import { InMemoryQuotaStorage, getWarningLevel, getWarningMessage, getCustomerId, } from './quota-helpers.js';
4
6
  // ============================================================================
5
7
  // Configuration
6
8
  // ============================================================================
@@ -19,93 +21,6 @@ const TIER_QUOTAS = {
19
21
  */
20
22
  const UPGRADE_URL = 'https://skillsmith.app/upgrade';
21
23
  // ============================================================================
22
- // In-Memory Storage (Default)
23
- // ============================================================================
24
- /**
25
- * Simple in-memory storage for quota tracking
26
- * Note: This resets on server restart. Use a database-backed storage
27
- * in production via the storage option.
28
- */
29
- class InMemoryQuotaStorage {
30
- usage = new Map();
31
- async getUsage(customerId) {
32
- const now = new Date();
33
- const existing = this.usage.get(customerId);
34
- // If we have existing data and it's still in the current period, return it
35
- if (existing && existing.periodEnd > now) {
36
- return existing;
37
- }
38
- // Otherwise, create a new period
39
- const periodStart = this.getMonthStart(now);
40
- const periodEnd = this.getMonthEnd(now);
41
- const newUsage = { used: 0, periodStart, periodEnd };
42
- this.usage.set(customerId, newUsage);
43
- return newUsage;
44
- }
45
- async incrementUsage(customerId, cost) {
46
- const usage = await this.getUsage(customerId);
47
- usage.used += cost;
48
- }
49
- async initializePeriod(customerId, _limit) {
50
- const now = new Date();
51
- this.usage.set(customerId, {
52
- used: 0,
53
- periodStart: this.getMonthStart(now),
54
- periodEnd: this.getMonthEnd(now),
55
- });
56
- }
57
- getMonthStart(date) {
58
- return new Date(date.getFullYear(), date.getMonth(), 1);
59
- }
60
- getMonthEnd(date) {
61
- return new Date(date.getFullYear(), date.getMonth() + 1, 1);
62
- }
63
- }
64
- // ============================================================================
65
- // Helper Functions
66
- // ============================================================================
67
- /**
68
- * Get the warning level based on percentage used
69
- */
70
- function getWarningLevel(percentUsed) {
71
- if (percentUsed >= 100)
72
- return 100;
73
- if (percentUsed >= 90)
74
- return 90;
75
- if (percentUsed >= 80)
76
- return 80;
77
- return 0;
78
- }
79
- /**
80
- * Get warning message based on level and current usage
81
- */
82
- function getWarningMessage(warningLevel, used, limit, _tier) {
83
- if (warningLevel === 0)
84
- return undefined;
85
- const remaining = Math.max(0, limit - used);
86
- switch (warningLevel) {
87
- case 100:
88
- return `API quota exceeded (${used.toLocaleString()}/${limit.toLocaleString()} calls). Upgrade to continue.`;
89
- case 90:
90
- return `Warning: 90% of API quota used (${remaining.toLocaleString()} calls remaining). Consider upgrading.`;
91
- case 80:
92
- return `Notice: 80% of API quota used (${remaining.toLocaleString()} calls remaining).`;
93
- default:
94
- return undefined;
95
- }
96
- }
97
- /**
98
- * Generate a customer ID from license info
99
- * Falls back to 'anonymous' for community users without an organization ID
100
- */
101
- function getCustomerId(licenseInfo, providedId) {
102
- if (providedId)
103
- return providedId;
104
- if (licenseInfo?.organizationId)
105
- return licenseInfo.organizationId;
106
- return 'anonymous';
107
- }
108
- // ============================================================================
109
24
  // Quota Middleware Factory
110
25
  // ============================================================================
111
26
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"quota.js","sourceRoot":"","sources":["../../../src/middleware/quota.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quota.js","sourceRoot":"","sources":["../../../src/middleware/quota.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @fileoverview Local skill search functionality for MCP Search Tool
3
+ * @module @skillsmith/mcp-server/tools/LocalSkillSearch
4
+ * @see SMI-1809: Local skill search integration
5
+ * @see SMI-1830: Extracted from search.ts to comply with 500-line limit
6
+ *
7
+ * Provides local skill indexing and search:
8
+ * - Singleton LocalIndexer management
9
+ * - Local skill to search result conversion
10
+ * - Filtered local skill search
11
+ */
12
+ import { type SkillSearchResult, type SearchFilters } from '@skillsmith/core';
13
+ import { LocalIndexer, type LocalSkill } from '../indexer/LocalIndexer.js';
14
+ /**
15
+ * Get or create the local indexer instance
16
+ */
17
+ export declare function getLocalIndexer(): LocalIndexer;
18
+ /**
19
+ * Convert a LocalSkill to SkillSearchResult format.
20
+ * SMI-1809: Marks local skills with source: "local" for identification.
21
+ */
22
+ export declare function localSkillToSearchResult(skill: LocalSkill): SkillSearchResult;
23
+ /**
24
+ * Search local skills and convert to SkillSearchResult format.
25
+ * SMI-1809: Returns matching local skills for search integration.
26
+ *
27
+ * @param query - Search query string
28
+ * @param filters - Search filters to apply
29
+ * @returns Array of matching local skills as SkillSearchResult
30
+ */
31
+ export declare function searchLocalSkills(query: string, filters: SearchFilters): Promise<SkillSearchResult[]>;
32
+ //# sourceMappingURL=LocalSkillSearch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocalSkillSearch.d.ts","sourceRoot":"","sources":["../../../src/tools/LocalSkillSearch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAEnB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,YAAY,EAAE,KAAK,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAK1E;;GAEG;AACH,wBAAgB,eAAe,IAAI,YAAY,CAK9C;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,UAAU,GAAG,iBAAiB,CAW7E;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,iBAAiB,EAAE,CAAC,CA8B9B"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * @fileoverview Local skill search functionality for MCP Search Tool
3
+ * @module @skillsmith/mcp-server/tools/LocalSkillSearch
4
+ * @see SMI-1809: Local skill search integration
5
+ * @see SMI-1830: Extracted from search.ts to comply with 500-line limit
6
+ *
7
+ * Provides local skill indexing and search:
8
+ * - Singleton LocalIndexer management
9
+ * - Local skill to search result conversion
10
+ * - Filtered local skill search
11
+ */
12
+ import { extractCategoryFromTags } from '../utils/validation.js';
13
+ import { LocalIndexer } from '../indexer/LocalIndexer.js';
14
+ // Singleton local indexer for performance
15
+ let localIndexer = null;
16
+ /**
17
+ * Get or create the local indexer instance
18
+ */
19
+ export function getLocalIndexer() {
20
+ if (!localIndexer) {
21
+ localIndexer = new LocalIndexer();
22
+ }
23
+ return localIndexer;
24
+ }
25
+ /**
26
+ * Convert a LocalSkill to SkillSearchResult format.
27
+ * SMI-1809: Marks local skills with source: "local" for identification.
28
+ */
29
+ export function localSkillToSearchResult(skill) {
30
+ return {
31
+ id: skill.id,
32
+ name: skill.name,
33
+ description: skill.description || '',
34
+ author: skill.author,
35
+ category: extractCategoryFromTags(skill.tags),
36
+ trustTier: 'local',
37
+ score: skill.qualityScore,
38
+ source: 'local',
39
+ };
40
+ }
41
+ /**
42
+ * Search local skills and convert to SkillSearchResult format.
43
+ * SMI-1809: Returns matching local skills for search integration.
44
+ *
45
+ * @param query - Search query string
46
+ * @param filters - Search filters to apply
47
+ * @returns Array of matching local skills as SkillSearchResult
48
+ */
49
+ export async function searchLocalSkills(query, filters) {
50
+ const indexer = getLocalIndexer();
51
+ // Index local skills (uses cache if valid)
52
+ const localSkills = await indexer.index();
53
+ // If no local skills, return empty
54
+ if (localSkills.length === 0) {
55
+ return [];
56
+ }
57
+ // Filter by query if provided
58
+ let matchingSkills = query ? indexer.search(query, localSkills) : localSkills;
59
+ // Apply min_score filter
60
+ if (filters.minScore !== undefined) {
61
+ const minScorePercent = filters.minScore * 100; // Convert from 0-1 to 0-100
62
+ matchingSkills = matchingSkills.filter((skill) => skill.qualityScore >= minScorePercent);
63
+ }
64
+ // Apply category filter
65
+ if (filters.category) {
66
+ matchingSkills = matchingSkills.filter((skill) => {
67
+ const skillCategory = extractCategoryFromTags(skill.tags);
68
+ return skillCategory === filters.category;
69
+ });
70
+ }
71
+ // Convert to SkillSearchResult format
72
+ return matchingSkills.map(localSkillToSearchResult);
73
+ }
74
+ //# sourceMappingURL=LocalSkillSearch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocalSkillSearch.js","sourceRoot":"","sources":["../../../src/tools/LocalSkillSearch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AAChE,OAAO,EAAE,YAAY,EAAmB,MAAM,4BAA4B,CAAA;AAE1E,0CAA0C;AAC1C,IAAI,YAAY,GAAwB,IAAI,CAAA;AAE5C;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,YAAY,GAAG,IAAI,YAAY,EAAE,CAAA;IACnC,CAAC;IACD,OAAO,YAAY,CAAA;AACrB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAiB;IACxD,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE;QACpC,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,QAAQ,EAAE,uBAAuB,CAAC,KAAK,CAAC,IAAI,CAAC;QAC7C,SAAS,EAAE,OAAoB;QAC/B,KAAK,EAAE,KAAK,CAAC,YAAY;QACzB,MAAM,EAAE,OAAO;KAChB,CAAA;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,KAAa,EACb,OAAsB;IAEtB,MAAM,OAAO,GAAG,eAAe,EAAE,CAAA;IAEjC,2CAA2C;IAC3C,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;IAEzC,mCAAmC;IACnC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,CAAA;IACX,CAAC;IAED,8BAA8B;IAC9B,IAAI,cAAc,GAAiB,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAA;IAE3F,yBAAyB;IACzB,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAA,CAAC,4BAA4B;QAC3E,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,IAAI,eAAe,CAAC,CAAA;IAC1F,CAAC;IAED,wBAAwB;IACxB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YAC/C,MAAM,aAAa,GAAG,uBAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YACzD,OAAO,aAAa,KAAK,OAAO,CAAC,QAAQ,CAAA;QAC3C,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,sCAAsC;IACtC,OAAO,cAAc,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;AACrD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"compare.helpers.js","sourceRoot":"","sources":["../../../src/tools/compare.helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compare.helpers.js","sourceRoot":"","sources":["../../../src/tools/compare.helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AAOpF,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEpD;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,KAAoB;IAC5C,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,aAAa,EAAE,KAAK,CAAC,KAAK;QAC1B,eAAe,EAAE,KAAK,CAAC,cAAc,IAAI,IAAI;QAC7C,UAAU,EAAE,KAAK,CAAC,SAAS;QAC3B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI;QAC9B,YAAY,EAAE,KAAK,CAAC,YAAY;KACjC,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAqB,EACrB,MAAqB;IAErB,MAAM,WAAW,GAAsB,EAAE,CAAA;IAEzC,2BAA2B;IAC3B,WAAW,CAAC,IAAI,CAAC;QACf,KAAK,EAAE,eAAe;QACtB,OAAO,EAAE,MAAM,CAAC,KAAK;QACrB,OAAO,EAAE,MAAM,CAAC,KAAK;QACrB,MAAM,EAAE,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;KACtF,CAAC,CAAA;IAEF,wBAAwB;IACxB,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IACpD,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IACpD,WAAW,CAAC,IAAI,CAAC;QACf,KAAK,EAAE,YAAY;QACnB,OAAO,EAAE,MAAM,CAAC,SAAS;QACzB,OAAO,EAAE,MAAM,CAAC,SAAS;QACzB,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;KAC9E,CAAC,CAAA;IAEF,yCAAyC;IACzC,WAAW,CAAC,IAAI,CAAC;QACf,KAAK,EAAE,oBAAoB;QAC3B,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC,MAAM;QACnC,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC,MAAM;QACnC,MAAM,EACJ,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM;YACrD,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM;gBACvD,CAAC,CAAC,GAAG;gBACL,CAAC,CAAC,KAAK;KACd,CAAC,CAAA;IAEF,oCAAoC;IACpC,WAAW,CAAC,IAAI,CAAC;QACf,KAAK,EAAE,gBAAgB;QACvB,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;QAC/B,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;QAC/B,MAAM,EACJ,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM;YAC7C,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM;gBAC/C,CAAC,CAAC,GAAG;gBACL,CAAC,CAAC,KAAK;KACd,CAAC,CAAA;IAEF,6BAA6B;IAC7B,IAAI,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QACnD,KAAK,MAAM,GAAG,IAAI;YAChB,SAAS;YACT,YAAY;YACZ,aAAa;YACb,UAAU;YACV,eAAe;SACP,EAAE,CAAC;YACX,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;YACvC,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;YACvC,WAAW,CAAC,IAAI,CAAC;gBACf,KAAK,EAAE,SAAS,GAAG,EAAE;gBACrB,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;aACtD,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,WAAW;IACX,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxC,WAAW,CAAC,IAAI,CAAC;YACf,KAAK,EAAE,UAAU;YACjB,OAAO,EAAE,MAAM,CAAC,QAAQ;YACxB,OAAO,EAAE,MAAM,CAAC,QAAQ;SACzB,CAAC,CAAA;IACJ,CAAC;IAED,SAAS;IACT,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;QACpC,WAAW,CAAC,IAAI,CAAC;YACf,KAAK,EAAE,QAAQ;YACf,OAAO,EAAE,MAAM,CAAC,MAAM;YACtB,OAAO,EAAE,MAAM,CAAC,MAAM;SACvB,CAAC,CAAA;IACJ,CAAC;IAED,kBAAkB;IAClB,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/E,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/E,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrD,WAAW,CAAC,IAAI,CAAC;YACf,KAAK,EAAE,aAAa;YACpB,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,WAAW;SACrB,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,WAAW,CAAA;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAqB,EACrB,MAAqB,EACrB,WAA8B;IAE9B,aAAa;IACb,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,KAAK,GAAG,CAAC,CAAA;IAEb,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG;YAAE,KAAK,EAAE,CAAA;aAC3B,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG;YAAE,KAAK,EAAE,CAAA;IACvC,CAAC;IAED,sCAAsC;IACtC,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IACpD,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IAEpD,qCAAqC;IACrC,IAAI,UAAU,KAAK,CAAC;QAAE,KAAK,IAAI,CAAC,CAAA;IAChC,IAAI,UAAU,KAAK,CAAC;QAAE,KAAK,IAAI,CAAC,CAAA;IAEhC,kCAAkC;IAClC,IAAI,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC;QAAE,KAAK,IAAI,CAAC,CAAA;IAC/C,IAAI,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC;QAAE,KAAK,IAAI,CAAC,CAAA;IAE/C,IAAI,MAAyB,CAAA;IAC7B,IAAI,cAAsB,CAAA;IAE1B,IAAI,KAAK,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,CAAA;QACZ,cAAc,GAAG,GAAG,MAAM,CAAC,IAAI,0BAA0B,CAAA;QACzD,MAAM,OAAO,GAAa,EAAE,CAAA;QAE5B,IAAI,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,yBAAyB,MAAM,CAAC,KAAK,OAAO,MAAM,CAAC,KAAK,GAAG,CAAC,CAAA;QAC3E,CAAC;QACD,IAAI,UAAU,GAAG,UAAU,EAAE,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,sBAAsB,MAAM,CAAC,SAAS,GAAG,CAAC,CAAA;QACzD,CAAC;QACD,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;YAC5D,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;QACpC,CAAC;QAED,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,yBAAyB,CAAA;QAE3F,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpD,cAAc,IAAI,aAAa,MAAM,CAAC,IAAI,wBAAwB,CAAA;QACpE,CAAC;IACH,CAAC;SAAM,IAAI,KAAK,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,CAAA;QACZ,cAAc,GAAG,GAAG,MAAM,CAAC,IAAI,0BAA0B,CAAA;QACzD,MAAM,OAAO,GAAa,EAAE,CAAA;QAE5B,IAAI,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,yBAAyB,MAAM,CAAC,KAAK,OAAO,MAAM,CAAC,KAAK,GAAG,CAAC,CAAA;QAC3E,CAAC;QACD,IAAI,UAAU,GAAG,UAAU,EAAE,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,sBAAsB,MAAM,CAAC,SAAS,GAAG,CAAC,CAAA;QACzD,CAAC;QACD,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;YAC5D,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;QACpC,CAAC;QAED,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,yBAAyB,CAAA;QAE3F,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpD,cAAc,IAAI,aAAa,MAAM,CAAC,IAAI,wBAAwB,CAAA;QACpE,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,KAAK,CAAA;QACd,cAAc,GAAG,8BAA8B,CAAA;QAE/C,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,EAAE,CAAC;YACxC,cAAc,IAAI,UAAU,MAAM,CAAC,IAAI,QAAQ,MAAM,CAAC,IAAI;iBACvD,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;iBAC/C,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;iBACX,IAAI,CAAC,GAAG,CAAC,cAAc,CAAA;YAC1B,cAAc,IAAI,MAAM,MAAM,CAAC,IAAI,QAAQ,MAAM,CAAC,IAAI;iBACnD,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;iBAC/C,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;iBACX,IAAI,CAAC,GAAG,CAAC,aAAa,CAAA;QAC3B,CAAC;aAAM,CAAC;YACN,cAAc,IAAI,GAAG,MAAM,CAAC,IAAI,kBAAkB,MAAM,CAAC,QAAQ,WAAW,MAAM,CAAC,IAAI,cAAc,MAAM,CAAC,QAAQ,GAAG,CAAA;QACzH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,CAAA;AACnC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAsB;IACtD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAA;IAC/B,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE;QACtC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,SAAS;QACnC,UAAU,EAAE,OAAO,CAAC,OAAO,IAAI,SAAS;QACxC,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,uBAAuB,CAAC,IAAI,CAAC;QACvC,SAAS,EAAE,kBAAkB,CAAC,OAAO,CAAC,SAAsB,CAAC;QAC7D,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;QACpD,cAAc,EAAE,SAAS;QACzB,IAAI;QACJ,cAAc,EAAE,mBAAmB,GAAG,OAAO,CAAC,EAAE;QAChD,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,gFAAgF;QAChF,YAAY,EAAE,EAAE;QAChB,8CAA8C;QAC9C,QAAQ,EAAE,IAAI,CAAC,MAAM,CACnB,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC;YACC,aAAa;YACb,SAAS;YACT,eAAe;YACf,QAAQ;YACR,UAAU;YACV,UAAU;YACV,cAAc;YACd,aAAa;YACb,OAAO;YACP,OAAO;SACR,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAC9B;KACF,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,GAAW,EAAE,MAAc;IAChD,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,KAAa;IACzD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,CAAA;IAC7C,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,CAAA;IACxD,OAAO,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC1C,CAAC"}
@@ -113,6 +113,7 @@ export type ExtendedSkill = Skill & {
113
113
  };
114
114
  /**
115
115
  * Trust tier ranking for comparison
116
+ * SMI-1809: Added 'local' tier for local skills
116
117
  */
117
118
  export declare const TRUST_TIER_RANK: Record<TrustTier, number>;
118
119
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"compare.types.d.ts","sourceRoot":"","sources":["../../../src/tools/compare.types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,KAAK,EAAE,QAAQ,IAAI,KAAK,EAAE,YAAY,IAAI,SAAS,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEpG;;GAEG;AACH,eAAO,MAAM,kBAAkB;IAC7B,gCAAgC;;IAEhC,iCAAiC;;;;;;;;EAEjC,CAAA;AAEF;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAE7D;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,uBAAuB;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,wBAAwB;IACxB,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa;IACb,MAAM,EAAE,MAAM,CAAA;IACd,4BAA4B;IAC5B,aAAa,EAAE,MAAM,CAAA;IACrB,kCAAkC;IAClC,eAAe,EAAE,cAAc,GAAG,IAAI,CAAA;IACtC,iBAAiB;IACjB,UAAU,EAAE,SAAS,CAAA;IACrB,eAAe;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW;IACX,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,2BAA2B;IAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,mBAAmB;IACnB,YAAY,EAAE,MAAM,EAAE,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,yBAAyB;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,yBAAyB;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,2BAA2B;IAC3B,MAAM,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,CAAA;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,UAAU,EAAE;QACV,CAAC,EAAE,YAAY,CAAA;QACf,CAAC,EAAE,YAAY,CAAA;KAChB,CAAA;IACD,yCAAyC;IACzC,WAAW,EAAE,eAAe,EAAE,CAAA;IAC9B,0BAA0B;IAC1B,cAAc,EAAE,MAAM,CAAA;IACtB,qCAAqC;IACrC,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,CAAA;IACzB,yBAAyB;IACzB,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAA;KAChB,CAAA;CACF;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;CAkB7B,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG;IAAE,YAAY,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAA;AAElF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAKrD,CAAA;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB"}
1
+ {"version":3,"file":"compare.types.d.ts","sourceRoot":"","sources":["../../../src/tools/compare.types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,KAAK,EAAE,QAAQ,IAAI,KAAK,EAAE,YAAY,IAAI,SAAS,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEpG;;GAEG;AACH,eAAO,MAAM,kBAAkB;IAC7B,gCAAgC;;IAEhC,iCAAiC;;;;;;;;EAEjC,CAAA;AAEF;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAE7D;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,uBAAuB;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,wBAAwB;IACxB,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa;IACb,MAAM,EAAE,MAAM,CAAA;IACd,4BAA4B;IAC5B,aAAa,EAAE,MAAM,CAAA;IACrB,kCAAkC;IAClC,eAAe,EAAE,cAAc,GAAG,IAAI,CAAA;IACtC,iBAAiB;IACjB,UAAU,EAAE,SAAS,CAAA;IACrB,eAAe;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW;IACX,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,2BAA2B;IAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,mBAAmB;IACnB,YAAY,EAAE,MAAM,EAAE,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,yBAAyB;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,yBAAyB;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,2BAA2B;IAC3B,MAAM,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,CAAA;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,UAAU,EAAE;QACV,CAAC,EAAE,YAAY,CAAA;QACf,CAAC,EAAE,YAAY,CAAA;KAChB,CAAA;IACD,yCAAyC;IACzC,WAAW,EAAE,eAAe,EAAE,CAAA;IAC9B,0BAA0B;IAC1B,cAAc,EAAE,MAAM,CAAA;IACtB,qCAAqC;IACrC,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,CAAA;IACzB,yBAAyB;IACzB,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAA;KAChB,CAAA;CACF;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;CAkB7B,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG;IAAE,YAAY,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAA;AAElF;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAMrD,CAAA;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB"}