@quantulabs/8004-mcp 0.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.
- package/LICENSE +21 -0
- package/README.md +370 -0
- package/dist/chains/evm/index.d.ts +2 -0
- package/dist/chains/evm/index.d.ts.map +1 -0
- package/dist/chains/evm/index.js +3 -0
- package/dist/chains/evm/index.js.map +1 -0
- package/dist/chains/evm/provider.d.ts +48 -0
- package/dist/chains/evm/provider.d.ts.map +1 -0
- package/dist/chains/evm/provider.js +446 -0
- package/dist/chains/evm/provider.js.map +1 -0
- package/dist/chains/index.d.ts +3 -0
- package/dist/chains/index.d.ts.map +1 -0
- package/dist/chains/index.js +4 -0
- package/dist/chains/index.js.map +1 -0
- package/dist/chains/solana/data-source.d.ts +17 -0
- package/dist/chains/solana/data-source.d.ts.map +1 -0
- package/dist/chains/solana/data-source.js +65 -0
- package/dist/chains/solana/data-source.js.map +1 -0
- package/dist/chains/solana/index.d.ts +8 -0
- package/dist/chains/solana/index.d.ts.map +1 -0
- package/dist/chains/solana/index.js +9 -0
- package/dist/chains/solana/index.js.map +1 -0
- package/dist/chains/solana/parsers.d.ts +11 -0
- package/dist/chains/solana/parsers.d.ts.map +1 -0
- package/dist/chains/solana/parsers.js +94 -0
- package/dist/chains/solana/parsers.js.map +1 -0
- package/dist/chains/solana/provider.d.ts +33 -0
- package/dist/chains/solana/provider.d.ts.map +1 -0
- package/dist/chains/solana/provider.js +407 -0
- package/dist/chains/solana/provider.js.map +1 -0
- package/dist/chains/solana/state.d.ts +55 -0
- package/dist/chains/solana/state.d.ts.map +1 -0
- package/dist/chains/solana/state.js +162 -0
- package/dist/chains/solana/state.js.map +1 -0
- package/dist/chains/solana/tools/atom.d.ts +45 -0
- package/dist/chains/solana/tools/atom.d.ts.map +1 -0
- package/dist/chains/solana/tools/atom.js +115 -0
- package/dist/chains/solana/tools/atom.js.map +1 -0
- package/dist/chains/solana/tools/validation.d.ts +45 -0
- package/dist/chains/solana/tools/validation.d.ts.map +1 -0
- package/dist/chains/solana/tools/validation.js +212 -0
- package/dist/chains/solana/tools/validation.js.map +1 -0
- package/dist/chains/solana/tools/wallet.d.ts +45 -0
- package/dist/chains/solana/tools/wallet.d.ts.map +1 -0
- package/dist/chains/solana/tools/wallet.js +103 -0
- package/dist/chains/solana/tools/wallet.js.map +1 -0
- package/dist/config/defaults.d.ts +68 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +247 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/env.d.ts +33 -0
- package/dist/config/env.d.ts.map +1 -0
- package/dist/config/env.js +42 -0
- package/dist/config/env.js.map +1 -0
- package/dist/config/index.d.ts +3 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +3 -0
- package/dist/config/index.js.map +1 -0
- package/dist/core/cache/agent-cache.d.ts +36 -0
- package/dist/core/cache/agent-cache.d.ts.map +1 -0
- package/dist/core/cache/agent-cache.js +87 -0
- package/dist/core/cache/agent-cache.js.map +1 -0
- package/dist/core/cache/data-source.d.ts +31 -0
- package/dist/core/cache/data-source.d.ts.map +1 -0
- package/dist/core/cache/data-source.js +6 -0
- package/dist/core/cache/data-source.js.map +1 -0
- package/dist/core/cache/index.d.ts +7 -0
- package/dist/core/cache/index.d.ts.map +1 -0
- package/dist/core/cache/index.js +9 -0
- package/dist/core/cache/index.js.map +1 -0
- package/dist/core/cache/lazy-cache.d.ts +30 -0
- package/dist/core/cache/lazy-cache.d.ts.map +1 -0
- package/dist/core/cache/lazy-cache.js +79 -0
- package/dist/core/cache/lazy-cache.js.map +1 -0
- package/dist/core/cache/slim-store.d.ts +66 -0
- package/dist/core/cache/slim-store.d.ts.map +1 -0
- package/dist/core/cache/slim-store.js +285 -0
- package/dist/core/cache/slim-store.js.map +1 -0
- package/dist/core/cache/sqlite-store.d.ts +99 -0
- package/dist/core/cache/sqlite-store.d.ts.map +1 -0
- package/dist/core/cache/sqlite-store.js +470 -0
- package/dist/core/cache/sqlite-store.js.map +1 -0
- package/dist/core/cache/sync-manager.d.ts +38 -0
- package/dist/core/cache/sync-manager.d.ts.map +1 -0
- package/dist/core/cache/sync-manager.js +213 -0
- package/dist/core/cache/sync-manager.js.map +1 -0
- package/dist/core/errors/index.d.ts +2 -0
- package/dist/core/errors/index.d.ts.map +1 -0
- package/dist/core/errors/index.js +2 -0
- package/dist/core/errors/index.js.map +1 -0
- package/dist/core/errors/mcp-error.d.ts +39 -0
- package/dist/core/errors/mcp-error.d.ts.map +1 -0
- package/dist/core/errors/mcp-error.js +79 -0
- package/dist/core/errors/mcp-error.js.map +1 -0
- package/dist/core/interfaces/agent.d.ts +84 -0
- package/dist/core/interfaces/agent.d.ts.map +1 -0
- package/dist/core/interfaces/agent.js +40 -0
- package/dist/core/interfaces/agent.js.map +1 -0
- package/dist/core/interfaces/chain-provider.d.ts +50 -0
- package/dist/core/interfaces/chain-provider.d.ts.map +1 -0
- package/dist/core/interfaces/chain-provider.js +5 -0
- package/dist/core/interfaces/chain-provider.js.map +1 -0
- package/dist/core/interfaces/feedback.d.ts +46 -0
- package/dist/core/interfaces/feedback.d.ts.map +1 -0
- package/dist/core/interfaces/feedback.js +3 -0
- package/dist/core/interfaces/feedback.js.map +1 -0
- package/dist/core/interfaces/index.d.ts +6 -0
- package/dist/core/interfaces/index.d.ts.map +1 -0
- package/dist/core/interfaces/index.js +7 -0
- package/dist/core/interfaces/index.js.map +1 -0
- package/dist/core/interfaces/reputation.d.ts +47 -0
- package/dist/core/interfaces/reputation.d.ts.map +1 -0
- package/dist/core/interfaces/reputation.js +30 -0
- package/dist/core/interfaces/reputation.js.map +1 -0
- package/dist/core/interfaces/x402.d.ts +226 -0
- package/dist/core/interfaces/x402.d.ts.map +1 -0
- package/dist/core/interfaces/x402.js +120 -0
- package/dist/core/interfaces/x402.js.map +1 -0
- package/dist/core/parsers/common.d.ts +31 -0
- package/dist/core/parsers/common.d.ts.map +1 -0
- package/dist/core/parsers/common.js +185 -0
- package/dist/core/parsers/common.js.map +1 -0
- package/dist/core/parsers/index.d.ts +2 -0
- package/dist/core/parsers/index.d.ts.map +1 -0
- package/dist/core/parsers/index.js +2 -0
- package/dist/core/parsers/index.js.map +1 -0
- package/dist/core/registry/chain-registry.d.ts +26 -0
- package/dist/core/registry/chain-registry.d.ts.map +1 -0
- package/dist/core/registry/chain-registry.js +141 -0
- package/dist/core/registry/chain-registry.js.map +1 -0
- package/dist/core/registry/index.d.ts +3 -0
- package/dist/core/registry/index.d.ts.map +1 -0
- package/dist/core/registry/index.js +3 -0
- package/dist/core/registry/index.js.map +1 -0
- package/dist/core/registry/tool-registry.d.ts +23 -0
- package/dist/core/registry/tool-registry.d.ts.map +1 -0
- package/dist/core/registry/tool-registry.js +66 -0
- package/dist/core/registry/tool-registry.js.map +1 -0
- package/dist/core/serializers/common.d.ts +20 -0
- package/dist/core/serializers/common.d.ts.map +1 -0
- package/dist/core/serializers/common.js +76 -0
- package/dist/core/serializers/common.js.map +1 -0
- package/dist/core/serializers/index.d.ts +2 -0
- package/dist/core/serializers/index.d.ts.map +1 -0
- package/dist/core/serializers/index.js +2 -0
- package/dist/core/serializers/index.js.map +1 -0
- package/dist/core/services/index.d.ts +3 -0
- package/dist/core/services/index.d.ts.map +1 -0
- package/dist/core/services/index.js +3 -0
- package/dist/core/services/index.js.map +1 -0
- package/dist/core/services/ipfs-service.d.ts +59 -0
- package/dist/core/services/ipfs-service.d.ts.map +1 -0
- package/dist/core/services/ipfs-service.js +84 -0
- package/dist/core/services/ipfs-service.js.map +1 -0
- package/dist/core/utils/tags.d.ts +38 -0
- package/dist/core/utils/tags.d.ts.map +1 -0
- package/dist/core/utils/tags.js +77 -0
- package/dist/core/utils/tags.js.map +1 -0
- package/dist/core/utils/value-encoding.d.ts +36 -0
- package/dist/core/utils/value-encoding.d.ts.map +1 -0
- package/dist/core/utils/value-encoding.js +196 -0
- package/dist/core/utils/value-encoding.js.map +1 -0
- package/dist/core/wallet/index.d.ts +2 -0
- package/dist/core/wallet/index.d.ts.map +1 -0
- package/dist/core/wallet/index.js +3 -0
- package/dist/core/wallet/index.js.map +1 -0
- package/dist/core/wallet/wallet-manager.d.ts +86 -0
- package/dist/core/wallet/wallet-manager.d.ts.map +1 -0
- package/dist/core/wallet/wallet-manager.js +783 -0
- package/dist/core/wallet/wallet-manager.js.map +1 -0
- package/dist/core/x402/index.d.ts +2 -0
- package/dist/core/x402/index.d.ts.map +1 -0
- package/dist/core/x402/index.js +3 -0
- package/dist/core/x402/index.js.map +1 -0
- package/dist/core/x402/proof-validator.d.ts +57 -0
- package/dist/core/x402/proof-validator.d.ts.map +1 -0
- package/dist/core/x402/proof-validator.js +103 -0
- package/dist/core/x402/proof-validator.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +135 -0
- package/dist/index.js.map +1 -0
- package/dist/state/global-state.d.ts +98 -0
- package/dist/state/global-state.d.ts.map +1 -0
- package/dist/state/global-state.js +258 -0
- package/dist/state/global-state.js.map +1 -0
- package/dist/tools/definitions.d.ts +10 -0
- package/dist/tools/definitions.d.ts.map +1 -0
- package/dist/tools/definitions.js +163 -0
- package/dist/tools/definitions.js.map +1 -0
- package/dist/tools/unified/agent.d.ts +5 -0
- package/dist/tools/unified/agent.d.ts.map +1 -0
- package/dist/tools/unified/agent.js +300 -0
- package/dist/tools/unified/agent.js.map +1 -0
- package/dist/tools/unified/cache.d.ts +5 -0
- package/dist/tools/unified/cache.d.ts.map +1 -0
- package/dist/tools/unified/cache.js +207 -0
- package/dist/tools/unified/cache.js.map +1 -0
- package/dist/tools/unified/collection.d.ts +5 -0
- package/dist/tools/unified/collection.d.ts.map +1 -0
- package/dist/tools/unified/collection.js +162 -0
- package/dist/tools/unified/collection.js.map +1 -0
- package/dist/tools/unified/config.d.ts +5 -0
- package/dist/tools/unified/config.d.ts.map +1 -0
- package/dist/tools/unified/config.js +217 -0
- package/dist/tools/unified/config.js.map +1 -0
- package/dist/tools/unified/crawler.d.ts +5 -0
- package/dist/tools/unified/crawler.d.ts.map +1 -0
- package/dist/tools/unified/crawler.js +212 -0
- package/dist/tools/unified/crawler.js.map +1 -0
- package/dist/tools/unified/feedback.d.ts +5 -0
- package/dist/tools/unified/feedback.d.ts.map +1 -0
- package/dist/tools/unified/feedback.js +274 -0
- package/dist/tools/unified/feedback.js.map +1 -0
- package/dist/tools/unified/ipfs.d.ts +5 -0
- package/dist/tools/unified/ipfs.d.ts.map +1 -0
- package/dist/tools/unified/ipfs.js +156 -0
- package/dist/tools/unified/ipfs.js.map +1 -0
- package/dist/tools/unified/oasf.d.ts +5 -0
- package/dist/tools/unified/oasf.d.ts.map +1 -0
- package/dist/tools/unified/oasf.js +167 -0
- package/dist/tools/unified/oasf.js.map +1 -0
- package/dist/tools/unified/registration.d.ts +5 -0
- package/dist/tools/unified/registration.d.ts.map +1 -0
- package/dist/tools/unified/registration.js +223 -0
- package/dist/tools/unified/registration.js.map +1 -0
- package/dist/tools/unified/reputation.d.ts +5 -0
- package/dist/tools/unified/reputation.d.ts.map +1 -0
- package/dist/tools/unified/reputation.js +121 -0
- package/dist/tools/unified/reputation.js.map +1 -0
- package/dist/tools/unified/wallet.d.ts +5 -0
- package/dist/tools/unified/wallet.d.ts.map +1 -0
- package/dist/tools/unified/wallet.js +434 -0
- package/dist/tools/unified/wallet.js.map +1 -0
- package/dist/tools/unified/write-operations.d.ts +5 -0
- package/dist/tools/unified/write-operations.d.ts.map +1 -0
- package/dist/tools/unified/write-operations.js +582 -0
- package/dist/tools/unified/write-operations.js.map +1 -0
- package/dist/tools/unified/x402.d.ts +5 -0
- package/dist/tools/unified/x402.d.ts.map +1 -0
- package/dist/tools/unified/x402.js +594 -0
- package/dist/tools/unified/x402.js.map +1 -0
- package/package.json +67 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/interfaces/index.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAE1B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export declare enum TrustTier {
|
|
2
|
+
Unrated = 0,
|
|
3
|
+
Bronze = 1,
|
|
4
|
+
Silver = 2,
|
|
5
|
+
Gold = 3,
|
|
6
|
+
Platinum = 4
|
|
7
|
+
}
|
|
8
|
+
export interface IReputationSummary {
|
|
9
|
+
agentId: string;
|
|
10
|
+
chainType: 'solana' | 'evm';
|
|
11
|
+
trustTier: TrustTier;
|
|
12
|
+
trustTierName: string;
|
|
13
|
+
qualityScore: number;
|
|
14
|
+
totalFeedbacks: number;
|
|
15
|
+
averageScore: number;
|
|
16
|
+
recentTrend?: 'up' | 'down' | 'stable';
|
|
17
|
+
lastFeedbackAt?: number;
|
|
18
|
+
}
|
|
19
|
+
export interface ILeaderboardEntry {
|
|
20
|
+
rank: number;
|
|
21
|
+
agentId: string;
|
|
22
|
+
globalId: string;
|
|
23
|
+
name: string;
|
|
24
|
+
chainType: 'solana' | 'evm';
|
|
25
|
+
trustTier: TrustTier;
|
|
26
|
+
qualityScore: number;
|
|
27
|
+
totalFeedbacks: number;
|
|
28
|
+
}
|
|
29
|
+
export interface ILeaderboardOptions {
|
|
30
|
+
chainType?: 'solana' | 'evm';
|
|
31
|
+
chainPrefix?: string;
|
|
32
|
+
collection?: string;
|
|
33
|
+
minFeedbacks?: number;
|
|
34
|
+
limit?: number;
|
|
35
|
+
offset?: number;
|
|
36
|
+
}
|
|
37
|
+
export interface ILeaderboardResult {
|
|
38
|
+
entries: ILeaderboardEntry[];
|
|
39
|
+
total: number;
|
|
40
|
+
hasMore: boolean;
|
|
41
|
+
}
|
|
42
|
+
export declare function getTrustTierName(tier: TrustTier): string;
|
|
43
|
+
export declare function getTrustTierThreshold(tier: TrustTier): {
|
|
44
|
+
minScore: number;
|
|
45
|
+
minFeedbacks: number;
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=reputation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reputation.d.ts","sourceRoot":"","sources":["../../../src/core/interfaces/reputation.ts"],"names":[],"mappings":"AAEA,oBAAY,SAAS;IACnB,OAAO,IAAI;IACX,MAAM,IAAI;IACV,MAAM,IAAI;IACV,IAAI,IAAI;IACR,QAAQ,IAAI;CACb;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC5B,SAAS,EAAE,SAAS,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAC;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC5B,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CASxD;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,SAAS,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CASjG"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// Reputation interfaces for multi-chain support
|
|
2
|
+
export var TrustTier;
|
|
3
|
+
(function (TrustTier) {
|
|
4
|
+
TrustTier[TrustTier["Unrated"] = 0] = "Unrated";
|
|
5
|
+
TrustTier[TrustTier["Bronze"] = 1] = "Bronze";
|
|
6
|
+
TrustTier[TrustTier["Silver"] = 2] = "Silver";
|
|
7
|
+
TrustTier[TrustTier["Gold"] = 3] = "Gold";
|
|
8
|
+
TrustTier[TrustTier["Platinum"] = 4] = "Platinum";
|
|
9
|
+
})(TrustTier || (TrustTier = {}));
|
|
10
|
+
export function getTrustTierName(tier) {
|
|
11
|
+
const names = {
|
|
12
|
+
[TrustTier.Unrated]: 'Unrated',
|
|
13
|
+
[TrustTier.Bronze]: 'Bronze',
|
|
14
|
+
[TrustTier.Silver]: 'Silver',
|
|
15
|
+
[TrustTier.Gold]: 'Gold',
|
|
16
|
+
[TrustTier.Platinum]: 'Platinum',
|
|
17
|
+
};
|
|
18
|
+
return names[tier] ?? 'Unknown';
|
|
19
|
+
}
|
|
20
|
+
export function getTrustTierThreshold(tier) {
|
|
21
|
+
const thresholds = {
|
|
22
|
+
[TrustTier.Unrated]: { minScore: 0, minFeedbacks: 0 },
|
|
23
|
+
[TrustTier.Bronze]: { minScore: 50, minFeedbacks: 5 },
|
|
24
|
+
[TrustTier.Silver]: { minScore: 65, minFeedbacks: 20 },
|
|
25
|
+
[TrustTier.Gold]: { minScore: 80, minFeedbacks: 50 },
|
|
26
|
+
[TrustTier.Platinum]: { minScore: 90, minFeedbacks: 100 },
|
|
27
|
+
};
|
|
28
|
+
return thresholds[tier] ?? { minScore: 0, minFeedbacks: 0 };
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=reputation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reputation.js","sourceRoot":"","sources":["../../../src/core/interfaces/reputation.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAEhD,MAAM,CAAN,IAAY,SAMX;AAND,WAAY,SAAS;IACnB,+CAAW,CAAA;IACX,6CAAU,CAAA;IACV,6CAAU,CAAA;IACV,yCAAQ,CAAA;IACR,iDAAY,CAAA;AACd,CAAC,EANW,SAAS,KAAT,SAAS,QAMpB;AAwCD,MAAM,UAAU,gBAAgB,CAAC,IAAe;IAC9C,MAAM,KAAK,GAA8B;QACvC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,SAAS;QAC9B,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,QAAQ;QAC5B,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,QAAQ;QAC5B,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM;QACxB,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,UAAU;KACjC,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAe;IACnD,MAAM,UAAU,GAAkE;QAChF,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;QACrD,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE;QACrD,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE;QACtD,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE;QACpD,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE;KAC1D,CAAC;IACF,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;AAC9D,CAAC"}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
import type { ChainType } from './agent.js';
|
|
2
|
+
export declare const SOLANA_GENESIS_HASHES: {
|
|
3
|
+
readonly mainnet: "5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp";
|
|
4
|
+
readonly devnet: "EtWTRABZaYq6iMfeYKouRu166VU2xqa1";
|
|
5
|
+
readonly testnet: "4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z";
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Agent identity for x402 PaymentRequired responses
|
|
9
|
+
* Format follows CAIP-2 for registry addresses
|
|
10
|
+
*/
|
|
11
|
+
export interface X402AgentIdentity {
|
|
12
|
+
/**
|
|
13
|
+
* Registry address in CAIP-2 format
|
|
14
|
+
* EVM: "eip155:<chainId>:<address>" (e.g., "eip155:8453:0x1234...")
|
|
15
|
+
* Solana: "solana:<genesisHash>:<programId>" (e.g., "solana:EtWTRA...:HHCVWc...")
|
|
16
|
+
*/
|
|
17
|
+
agentRegistry: string;
|
|
18
|
+
/**
|
|
19
|
+
* Agent identifier
|
|
20
|
+
* EVM: Token ID (e.g., "123")
|
|
21
|
+
* Solana: Asset public key (base58)
|
|
22
|
+
*/
|
|
23
|
+
agentId: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Proof of payment from x402 settlement
|
|
27
|
+
* Used to link feedback to actual payment transactions
|
|
28
|
+
*/
|
|
29
|
+
export interface X402ProofOfPayment {
|
|
30
|
+
/**
|
|
31
|
+
* Payer address
|
|
32
|
+
* EVM: Hex address (0x...)
|
|
33
|
+
* Solana: Base58 public key
|
|
34
|
+
*/
|
|
35
|
+
fromAddress: string;
|
|
36
|
+
/**
|
|
37
|
+
* Payee address
|
|
38
|
+
* EVM: Hex address (0x...)
|
|
39
|
+
* Solana: Base58 public key
|
|
40
|
+
*/
|
|
41
|
+
toAddress: string;
|
|
42
|
+
/**
|
|
43
|
+
* Chain identifier
|
|
44
|
+
* EVM: Chain ID string (e.g., "8453" for Base)
|
|
45
|
+
* Solana: Genesis hash (e.g., "EtWTRABZaYq6iMfeYKouRu166VU2xqa1")
|
|
46
|
+
*/
|
|
47
|
+
chainId: string;
|
|
48
|
+
/**
|
|
49
|
+
* Transaction hash/signature
|
|
50
|
+
* EVM: Hex transaction hash (0x...)
|
|
51
|
+
* Solana: Base58 transaction signature
|
|
52
|
+
*/
|
|
53
|
+
txHash: string;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Settlement result from x402 payment flow
|
|
57
|
+
* Enriched information about the completed payment
|
|
58
|
+
*/
|
|
59
|
+
export interface X402Settlement {
|
|
60
|
+
/** Whether the settlement succeeded */
|
|
61
|
+
success: boolean;
|
|
62
|
+
/** Transaction hash/signature (same as ProofOfPayment.txHash) */
|
|
63
|
+
transaction: string;
|
|
64
|
+
/** Network in CAIP-2 format (e.g., "eip155:8453" or "solana:EtWTRA...") */
|
|
65
|
+
network: string;
|
|
66
|
+
/** Settlement timestamp in ISO 8601 format */
|
|
67
|
+
settledAt: string;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* x402 tag conventions for feedback categorization
|
|
71
|
+
*/
|
|
72
|
+
export declare const X402_TAGS: {
|
|
73
|
+
readonly CLIENT_TAGS: {
|
|
74
|
+
readonly RESOURCE_DELIVERED: "x402-resource-delivered";
|
|
75
|
+
readonly DELIVERY_FAILED: "x402-delivery-failed";
|
|
76
|
+
readonly DELIVERY_TIMEOUT: "x402-delivery-timeout";
|
|
77
|
+
readonly QUALITY_ISSUE: "x402-quality-issue";
|
|
78
|
+
};
|
|
79
|
+
readonly SERVER_TAGS: {
|
|
80
|
+
readonly GOOD_PAYER: "x402-good-payer";
|
|
81
|
+
readonly PAYMENT_FAILED: "x402-payment-failed";
|
|
82
|
+
readonly INSUFFICIENT_FUNDS: "x402-insufficient-funds";
|
|
83
|
+
};
|
|
84
|
+
readonly NETWORK_TAGS: {
|
|
85
|
+
readonly EVM: "exact-evm";
|
|
86
|
+
readonly SVM: "exact-svm";
|
|
87
|
+
};
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
* Feedback file structure for IPFS storage
|
|
91
|
+
* Conforms to x402 8004-reputation spec
|
|
92
|
+
*/
|
|
93
|
+
export interface X402FeedbackFile {
|
|
94
|
+
/** Registry in CAIP-2 format */
|
|
95
|
+
agentRegistry: string;
|
|
96
|
+
/** Agent ID (token ID or pubkey) */
|
|
97
|
+
agentId: string;
|
|
98
|
+
/** Client address in CAIP-2 format (e.g., "solana:EtWTRA...:ClientPubkey...") */
|
|
99
|
+
clientAddress: string;
|
|
100
|
+
/** Feedback creation timestamp (ISO 8601) */
|
|
101
|
+
createdAt: string;
|
|
102
|
+
/** Raw metric value (serialized as string for JSON compatibility) */
|
|
103
|
+
value: string;
|
|
104
|
+
/** Decimal precision (0-6), default 0 */
|
|
105
|
+
valueDecimals?: number;
|
|
106
|
+
/** Feedback score (0-100), optional */
|
|
107
|
+
score?: number;
|
|
108
|
+
/** Primary tag - delivery/payment status */
|
|
109
|
+
tag1: string;
|
|
110
|
+
/** Secondary tag - network type */
|
|
111
|
+
tag2: string;
|
|
112
|
+
/** Agent endpoint that was called */
|
|
113
|
+
endpoint?: string;
|
|
114
|
+
/** Proof of payment linking feedback to transaction */
|
|
115
|
+
proofOfPayment: X402ProofOfPayment;
|
|
116
|
+
/** Optional enriched settlement information */
|
|
117
|
+
x402Settlement?: X402Settlement;
|
|
118
|
+
/** Optional comment */
|
|
119
|
+
comment?: string;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Input for x402_feedback_submit tool
|
|
123
|
+
*/
|
|
124
|
+
export interface X402FeedbackSubmitInput {
|
|
125
|
+
/** Agent ID (global format like sol:xxx or chain:chainId:tokenId) */
|
|
126
|
+
agentId: string;
|
|
127
|
+
/** Raw metric value (required) */
|
|
128
|
+
value: bigint | number;
|
|
129
|
+
/** Decimal precision (0-6), default 0 */
|
|
130
|
+
valueDecimals?: number;
|
|
131
|
+
/** Feedback score (0-100), optional */
|
|
132
|
+
score?: number;
|
|
133
|
+
/** Primary tag (delivery/payment status) */
|
|
134
|
+
tag1: string;
|
|
135
|
+
/** Secondary tag (network type) */
|
|
136
|
+
tag2: string;
|
|
137
|
+
/** Agent endpoint that was called */
|
|
138
|
+
endpoint?: string;
|
|
139
|
+
/** Proof of payment */
|
|
140
|
+
proofOfPayment: X402ProofOfPayment;
|
|
141
|
+
/** Optional settlement info */
|
|
142
|
+
x402Settlement?: X402Settlement;
|
|
143
|
+
/** Optional comment */
|
|
144
|
+
comment?: string;
|
|
145
|
+
/** Validate proof on-chain (default: false) */
|
|
146
|
+
validateProof?: boolean;
|
|
147
|
+
/** Store feedback on IPFS (default: true) */
|
|
148
|
+
storeOnIpfs?: boolean;
|
|
149
|
+
/** Return unsigned transaction (default: false) */
|
|
150
|
+
skipSend?: boolean;
|
|
151
|
+
/** Signer public key if skipSend=true */
|
|
152
|
+
signer?: string;
|
|
153
|
+
/** Chain override (optional if using global ID) */
|
|
154
|
+
chain?: string;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Result from x402_feedback_submit when transaction is signed and sent
|
|
158
|
+
*/
|
|
159
|
+
export interface X402FeedbackSubmitSignedResult {
|
|
160
|
+
unsigned: false;
|
|
161
|
+
signature: string;
|
|
162
|
+
feedbackHash: string;
|
|
163
|
+
feedbackUri?: string;
|
|
164
|
+
agentId: string;
|
|
165
|
+
value: string;
|
|
166
|
+
valueDecimals: number;
|
|
167
|
+
score?: number;
|
|
168
|
+
tag1: string;
|
|
169
|
+
tag2: string;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Result from x402_feedback_submit when skipSend=true (unsigned)
|
|
173
|
+
*/
|
|
174
|
+
export interface X402FeedbackSubmitUnsignedResult {
|
|
175
|
+
unsigned: true;
|
|
176
|
+
/** Base64 serialized transaction (Solana) or transaction object (EVM) */
|
|
177
|
+
unsignedTx: string | X402EvmUnsignedTx;
|
|
178
|
+
feedbackHash: string;
|
|
179
|
+
feedbackUri?: string;
|
|
180
|
+
feedbackFile: X402FeedbackFile;
|
|
181
|
+
message: string;
|
|
182
|
+
hint: string;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* EVM unsigned transaction object for external wallet signing
|
|
186
|
+
*/
|
|
187
|
+
export interface X402EvmUnsignedTx {
|
|
188
|
+
to: string;
|
|
189
|
+
data: string;
|
|
190
|
+
chainId: number;
|
|
191
|
+
value: string;
|
|
192
|
+
}
|
|
193
|
+
export type X402FeedbackSubmitResult = X402FeedbackSubmitSignedResult | X402FeedbackSubmitUnsignedResult;
|
|
194
|
+
/**
|
|
195
|
+
* Helper to build CAIP-2 network identifier
|
|
196
|
+
*/
|
|
197
|
+
export declare function buildCaip2Network(chainType: ChainType, chainId: string | number): string;
|
|
198
|
+
/**
|
|
199
|
+
* Helper to build agent registry CAIP-2 identifier
|
|
200
|
+
* @throws Error if registryAddress is undefined/empty (chain not deployed)
|
|
201
|
+
*/
|
|
202
|
+
export declare function buildRegistryIdentifier(chainType: ChainType, chainId: string | number, registryAddress: string | undefined): string;
|
|
203
|
+
/**
|
|
204
|
+
* Helper to build client address CAIP-2 identifier
|
|
205
|
+
*/
|
|
206
|
+
export declare function buildClientAddress(chainType: ChainType, chainIdOrCluster: string | number, address: string): string;
|
|
207
|
+
/**
|
|
208
|
+
* Convert X402FeedbackFile to a plain JSON-serializable object
|
|
209
|
+
*/
|
|
210
|
+
export declare function feedbackFileToRecord(file: X402FeedbackFile): Record<string, unknown>;
|
|
211
|
+
/**
|
|
212
|
+
* Parse CAIP-2 network identifier
|
|
213
|
+
*/
|
|
214
|
+
export declare function parseCaip2Network(network: string): {
|
|
215
|
+
namespace: 'eip155' | 'solana';
|
|
216
|
+
reference: string;
|
|
217
|
+
} | null;
|
|
218
|
+
/**
|
|
219
|
+
* Get chain type from network tag
|
|
220
|
+
*/
|
|
221
|
+
export declare function getChainTypeFromNetworkTag(tag: string): ChainType | undefined;
|
|
222
|
+
/**
|
|
223
|
+
* Get network tag for chain type
|
|
224
|
+
*/
|
|
225
|
+
export declare function getNetworkTagForChainType(chainType: ChainType): string;
|
|
226
|
+
//# sourceMappingURL=x402.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"x402.d.ts","sourceRoot":"","sources":["../../../src/core/interfaces/x402.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
// x402 Protocol Interfaces for 8004-reputation extension
|
|
2
|
+
// Spec: https://github.com/coinbase/x402/issues/931
|
|
3
|
+
// CAIP-2 Network Identifiers
|
|
4
|
+
// EVM: eip155:<chainId> (e.g., eip155:8453 for Base)
|
|
5
|
+
// Solana Mainnet: solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
|
|
6
|
+
// Solana Devnet: solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1
|
|
7
|
+
export const SOLANA_GENESIS_HASHES = {
|
|
8
|
+
mainnet: '5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp',
|
|
9
|
+
devnet: 'EtWTRABZaYq6iMfeYKouRu166VU2xqa1',
|
|
10
|
+
testnet: '4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z',
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* x402 tag conventions for feedback categorization
|
|
14
|
+
*/
|
|
15
|
+
export const X402_TAGS = {
|
|
16
|
+
// Client → Server (tag1) - delivery status
|
|
17
|
+
CLIENT_TAGS: {
|
|
18
|
+
RESOURCE_DELIVERED: 'x402-resource-delivered',
|
|
19
|
+
DELIVERY_FAILED: 'x402-delivery-failed',
|
|
20
|
+
DELIVERY_TIMEOUT: 'x402-delivery-timeout',
|
|
21
|
+
QUALITY_ISSUE: 'x402-quality-issue',
|
|
22
|
+
},
|
|
23
|
+
// Server → Client (tag1) - payment status
|
|
24
|
+
SERVER_TAGS: {
|
|
25
|
+
GOOD_PAYER: 'x402-good-payer',
|
|
26
|
+
PAYMENT_FAILED: 'x402-payment-failed',
|
|
27
|
+
INSUFFICIENT_FUNDS: 'x402-insufficient-funds',
|
|
28
|
+
},
|
|
29
|
+
// Network types (tag2)
|
|
30
|
+
NETWORK_TAGS: {
|
|
31
|
+
EVM: 'exact-evm',
|
|
32
|
+
SVM: 'exact-svm',
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Helper to build CAIP-2 network identifier
|
|
37
|
+
*/
|
|
38
|
+
export function buildCaip2Network(chainType, chainId) {
|
|
39
|
+
if (chainType === 'solana') {
|
|
40
|
+
// chainId is cluster name, map to genesis hash
|
|
41
|
+
const cluster = String(chainId).toLowerCase();
|
|
42
|
+
const genesisHash = SOLANA_GENESIS_HASHES[cluster] ??
|
|
43
|
+
SOLANA_GENESIS_HASHES.devnet;
|
|
44
|
+
return `solana:${genesisHash}`;
|
|
45
|
+
}
|
|
46
|
+
// EVM
|
|
47
|
+
return `eip155:${chainId}`;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Helper to build agent registry CAIP-2 identifier
|
|
51
|
+
* @throws Error if registryAddress is undefined/empty (chain not deployed)
|
|
52
|
+
*/
|
|
53
|
+
export function buildRegistryIdentifier(chainType, chainId, registryAddress) {
|
|
54
|
+
if (!registryAddress) {
|
|
55
|
+
throw new Error(`Registry not deployed for chain ${chainType}:${chainId}`);
|
|
56
|
+
}
|
|
57
|
+
const network = buildCaip2Network(chainType, chainId);
|
|
58
|
+
return `${network}:${registryAddress}`;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Helper to build client address CAIP-2 identifier
|
|
62
|
+
*/
|
|
63
|
+
export function buildClientAddress(chainType, chainIdOrCluster, address) {
|
|
64
|
+
const network = buildCaip2Network(chainType, chainIdOrCluster);
|
|
65
|
+
return `${network}:${address}`;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Convert X402FeedbackFile to a plain JSON-serializable object
|
|
69
|
+
*/
|
|
70
|
+
export function feedbackFileToRecord(file) {
|
|
71
|
+
return {
|
|
72
|
+
agentRegistry: file.agentRegistry,
|
|
73
|
+
agentId: file.agentId,
|
|
74
|
+
clientAddress: file.clientAddress,
|
|
75
|
+
createdAt: file.createdAt,
|
|
76
|
+
value: file.value,
|
|
77
|
+
valueDecimals: file.valueDecimals,
|
|
78
|
+
score: file.score,
|
|
79
|
+
tag1: file.tag1,
|
|
80
|
+
tag2: file.tag2,
|
|
81
|
+
endpoint: file.endpoint,
|
|
82
|
+
proofOfPayment: file.proofOfPayment,
|
|
83
|
+
x402Settlement: file.x402Settlement,
|
|
84
|
+
comment: file.comment,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Parse CAIP-2 network identifier
|
|
89
|
+
*/
|
|
90
|
+
export function parseCaip2Network(network) {
|
|
91
|
+
const parts = network.split(':');
|
|
92
|
+
if (parts.length !== 2)
|
|
93
|
+
return null;
|
|
94
|
+
const namespace = parts[0];
|
|
95
|
+
const reference = parts[1];
|
|
96
|
+
if (namespace !== 'eip155' && namespace !== 'solana')
|
|
97
|
+
return null;
|
|
98
|
+
if (!reference)
|
|
99
|
+
return null;
|
|
100
|
+
return { namespace: namespace, reference };
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Get chain type from network tag
|
|
104
|
+
*/
|
|
105
|
+
export function getChainTypeFromNetworkTag(tag) {
|
|
106
|
+
if (tag === X402_TAGS.NETWORK_TAGS.SVM)
|
|
107
|
+
return 'solana';
|
|
108
|
+
if (tag === X402_TAGS.NETWORK_TAGS.EVM)
|
|
109
|
+
return 'evm';
|
|
110
|
+
return undefined;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Get network tag for chain type
|
|
114
|
+
*/
|
|
115
|
+
export function getNetworkTagForChainType(chainType) {
|
|
116
|
+
return chainType === 'solana'
|
|
117
|
+
? X402_TAGS.NETWORK_TAGS.SVM
|
|
118
|
+
: X402_TAGS.NETWORK_TAGS.EVM;
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=x402.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"x402.js","sourceRoot":"","sources":["../../../src/core/interfaces/x402.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export type JsonRecord = Record<string, unknown>;
|
|
2
|
+
export declare function isRecord(value: unknown): value is JsonRecord;
|
|
3
|
+
export declare function getArgs(args: unknown): JsonRecord;
|
|
4
|
+
export declare function readString(obj: JsonRecord, key: string, required: true): string;
|
|
5
|
+
export declare function readString(obj: JsonRecord, key: string, required?: false): string | undefined;
|
|
6
|
+
export declare function readStringOptional(obj: JsonRecord, key: string): string | undefined;
|
|
7
|
+
export declare function readNumber(obj: JsonRecord, key: string, required: true): number;
|
|
8
|
+
export declare function readNumber(obj: JsonRecord, key: string, required?: false): number | undefined;
|
|
9
|
+
export declare function readBoolean(obj: JsonRecord, key: string, required: true): boolean;
|
|
10
|
+
export declare function readBoolean(obj: JsonRecord, key: string, required?: false): boolean | undefined;
|
|
11
|
+
export declare function readRecord(obj: JsonRecord, key: string, required: true): JsonRecord;
|
|
12
|
+
export declare function readRecord(obj: JsonRecord, key: string, required?: false): JsonRecord | undefined;
|
|
13
|
+
export declare function readStringArray(obj: JsonRecord, key: string, required: true): string[];
|
|
14
|
+
export declare function readStringArray(obj: JsonRecord, key: string, required?: false): string[] | undefined;
|
|
15
|
+
export declare function readArray(obj: JsonRecord, key: string, required: true): unknown[];
|
|
16
|
+
export declare function readArray(obj: JsonRecord, key: string, required?: false): unknown[] | undefined;
|
|
17
|
+
export declare function parseBigIntInput(value: unknown, fieldName: string): bigint;
|
|
18
|
+
export declare function parseBuffer(value: unknown, fieldName: string): Buffer;
|
|
19
|
+
export declare function parseChainParam(obj: JsonRecord): {
|
|
20
|
+
chainType?: 'solana' | 'evm';
|
|
21
|
+
chainPrefix?: string;
|
|
22
|
+
chainId?: string;
|
|
23
|
+
};
|
|
24
|
+
export declare function parsePagination(obj: JsonRecord, defaults?: {
|
|
25
|
+
limit?: number;
|
|
26
|
+
offset?: number;
|
|
27
|
+
}): {
|
|
28
|
+
limit: number;
|
|
29
|
+
offset: number;
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=common.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/core/parsers/common.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEjD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAE5D;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,CAKjD;AAGD,wBAAgB,UAAU,CACxB,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,IAAI,GACb,MAAM,CAAC;AACV,wBAAgB,UAAU,CACxB,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,KAAK,GACf,MAAM,GAAG,SAAS,CAAC;AAoBtB,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEnF;AAED,wBAAgB,UAAU,CACxB,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,IAAI,GACb,MAAM,CAAC;AACV,wBAAgB,UAAU,CACxB,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,KAAK,GACf,MAAM,GAAG,SAAS,CAAC;AAmBtB,wBAAgB,WAAW,CACzB,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,IAAI,GACb,OAAO,CAAC;AACX,wBAAgB,WAAW,CACzB,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,KAAK,GACf,OAAO,GAAG,SAAS,CAAC;AAmBvB,wBAAgB,UAAU,CACxB,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,IAAI,GACb,UAAU,CAAC;AACd,wBAAgB,UAAU,CACxB,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,KAAK,GACf,UAAU,GAAG,SAAS,CAAC;AAmB1B,wBAAgB,eAAe,CAC7B,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,IAAI,GACb,MAAM,EAAE,CAAC;AACZ,wBAAgB,eAAe,CAC7B,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,KAAK,GACf,MAAM,EAAE,GAAG,SAAS,CAAC;AAwBxB,wBAAgB,SAAS,CACvB,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,IAAI,GACb,OAAO,EAAE,CAAC;AACb,wBAAgB,SAAS,CACvB,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,KAAK,GACf,OAAO,EAAE,GAAG,SAAS,CAAC;AAoBzB,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,MAAM,GAChB,MAAM,CAkBR;AAGD,wBAAgB,WAAW,CACzB,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,MAAM,GAChB,MAAM,CA2BR;AAGD,wBAAgB,eAAe,CAC7B,GAAG,EAAE,UAAU,GACd;IAAE,SAAS,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CA4B1E;AAGD,wBAAgB,eAAe,CAC7B,GAAG,EAAE,UAAU,EACf,QAAQ,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7C;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAOnC"}
|