@foruai/shared 0.1.0 → 0.2.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/README.md +126 -0
- package/dist/constants.d.ts +13 -2
- package/dist/constants.d.ts.map +1 -1
- package/dist/index.js +92 -4
- package/dist/types.d.ts +115 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +13 -1
- package/src/constants.ts +0 -14
- package/src/index.ts +0 -2
- package/src/types.ts +0 -130
- package/tsconfig.json +0 -8
package/README.md
ADDED
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
# @foruai/shared
|
|
2
|
+
|
|
3
|
+
Shared types, constants, and API path definitions for the ForU Gatekeeper AI ecosystem.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @foruai/shared
|
|
9
|
+
# or
|
|
10
|
+
pnpm add @foruai/shared
|
|
11
|
+
# or
|
|
12
|
+
bun add @foruai/shared
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Usage
|
|
16
|
+
|
|
17
|
+
### Types
|
|
18
|
+
|
|
19
|
+
```typescript
|
|
20
|
+
import type {
|
|
21
|
+
// Badge verification
|
|
22
|
+
VerifyBadgeRequest,
|
|
23
|
+
VerifyBadgeResponse,
|
|
24
|
+
VerifiedBadge,
|
|
25
|
+
BadgeInfo,
|
|
26
|
+
BadgeRuleInfo,
|
|
27
|
+
OnchainProof,
|
|
28
|
+
AwardSource,
|
|
29
|
+
MintingInfo,
|
|
30
|
+
ChainConfig,
|
|
31
|
+
|
|
32
|
+
// Discord
|
|
33
|
+
DiscordCheckRequest,
|
|
34
|
+
DiscordCheckResponse,
|
|
35
|
+
DiscordServerStatus,
|
|
36
|
+
|
|
37
|
+
// Profile
|
|
38
|
+
ProfileRequest,
|
|
39
|
+
ProfileResponse,
|
|
40
|
+
|
|
41
|
+
// Chat
|
|
42
|
+
ChatRequest,
|
|
43
|
+
ChatResponse,
|
|
44
|
+
|
|
45
|
+
// Auth
|
|
46
|
+
HmacToken,
|
|
47
|
+
|
|
48
|
+
// Discovery
|
|
49
|
+
HealthResponse,
|
|
50
|
+
ServicesCatalog,
|
|
51
|
+
ServiceEntry,
|
|
52
|
+
} from '@foruai/shared'
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Constants
|
|
56
|
+
|
|
57
|
+
```typescript
|
|
58
|
+
import {
|
|
59
|
+
API_PATHS,
|
|
60
|
+
BADGE_STATUS,
|
|
61
|
+
HMAC_MAX_AGE_MS,
|
|
62
|
+
VALIDATOR_CATEGORIES,
|
|
63
|
+
VALIDATOR_LABELS,
|
|
64
|
+
} from '@foruai/shared'
|
|
65
|
+
|
|
66
|
+
// API endpoint paths
|
|
67
|
+
console.log(API_PATHS.VERIFY_BADGE) // '/v1/verify-badge'
|
|
68
|
+
console.log(API_PATHS.CHAT) // '/v1/chat'
|
|
69
|
+
console.log(API_PATHS.DISCORD) // '/v1/discord'
|
|
70
|
+
console.log(API_PATHS.PROFILE) // '/v1/profile'
|
|
71
|
+
console.log(API_PATHS.BADGES) // '/v1/badges'
|
|
72
|
+
console.log(API_PATHS.HEALTH) // '/v1/health'
|
|
73
|
+
console.log(API_PATHS.SERVICES) // '/v1/services'
|
|
74
|
+
|
|
75
|
+
// Badge statuses
|
|
76
|
+
console.log(BADGE_STATUS.VERIFIED) // 'verified'
|
|
77
|
+
console.log(BADGE_STATUS.NOT_VERIFIED) // 'not_verified'
|
|
78
|
+
console.log(BADGE_STATUS.NOT_FOUND) // 'not_found'
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Type Reference
|
|
82
|
+
|
|
83
|
+
#### Badge Verification
|
|
84
|
+
|
|
85
|
+
| Type | Description |
|
|
86
|
+
|------|-------------|
|
|
87
|
+
| `VerifyBadgeRequest` | Request body for badge verification. Identify user by `user_address`, `username`, or `discord_username`. Optionally filter by `badge_id`. |
|
|
88
|
+
| `VerifyBadgeResponse` | Response containing `badges[]` with confidence scores, rules breakdown, on-chain proofs, and attribution. |
|
|
89
|
+
| `VerifiedBadge` | Individual badge with `status`, `confidence` (0-1), `badge_type`, `rules_breakdown`, `rules[]`, `awarded_via`, `minting`, `onchain_proof`, `chains[]`, `exp_earned`. |
|
|
90
|
+
| `BadgeRuleInfo` | Single rule: `validator_key`, `validator_label`, `operator`, `value`, `params_schema` (may include chain/contract info). |
|
|
91
|
+
| `OnchainProof` | On-chain verification: `contract_address`, `chain_id`, `wallet_address`, `balance`, `verified_onchain`. |
|
|
92
|
+
| `AwardSource` | Attribution: `source_type` (campaign/quest), campaign/quest names, community, rank, rep score. |
|
|
93
|
+
| `MintingInfo` | NFT minting status: `is_minted`, `mint_hash`, `chain_name`, `token_id`, `minting_cost`. |
|
|
94
|
+
| `BadgeInfo` | Badge catalog entry: `id`, `name`, `description`, `image`, `shape`, `source`. |
|
|
95
|
+
|
|
96
|
+
#### Discord
|
|
97
|
+
|
|
98
|
+
| Type | Description |
|
|
99
|
+
|------|-------------|
|
|
100
|
+
| `DiscordCheckRequest` | Identify user + optional `server_id` filter. |
|
|
101
|
+
| `DiscordCheckResponse` | `linked` status, `discord_username`, `servers[]` with membership details. |
|
|
102
|
+
| `DiscordServerStatus` | Per-server: `is_member`, `joined_at`, `nickname`, `roles[]`. |
|
|
103
|
+
|
|
104
|
+
#### Profile
|
|
105
|
+
|
|
106
|
+
| Type | Description |
|
|
107
|
+
|------|-------------|
|
|
108
|
+
| `ProfileRequest` | Identify user by any linked account. |
|
|
109
|
+
| `ProfileResponse` | `wallets[]`, `twitter`, `discord`, `badges` (total + minted counts). |
|
|
110
|
+
|
|
111
|
+
#### Chat & Auth
|
|
112
|
+
|
|
113
|
+
| Type | Description |
|
|
114
|
+
|------|-------------|
|
|
115
|
+
| `ChatRequest` | `message` + optional `sessionId` for conversation continuity. |
|
|
116
|
+
| `ChatResponse` | `reply`, `sessionId`, optional `routed` (which intent was matched). |
|
|
117
|
+
| `HmacToken` | `nonce`, `timestamp`, `signature` for HMAC-SHA256 authentication. |
|
|
118
|
+
|
|
119
|
+
## Companion Packages
|
|
120
|
+
|
|
121
|
+
- [`@foruai/gatekeeper-server`](https://www.npmjs.com/package/@foruai/gatekeeper-server) — Server-side HMAC token signing
|
|
122
|
+
- [`@foruai/gatekeeper-client`](https://www.npmjs.com/package/@foruai/gatekeeper-client) — Full API client for browser & Node.js
|
|
123
|
+
|
|
124
|
+
## License
|
|
125
|
+
|
|
126
|
+
MIT
|
package/dist/constants.d.ts
CHANGED
|
@@ -4,10 +4,21 @@ export declare const BADGE_STATUS: {
|
|
|
4
4
|
readonly NOT_FOUND: "not_found";
|
|
5
5
|
};
|
|
6
6
|
export declare const API_PATHS: {
|
|
7
|
-
readonly VERIFY: "/v1/verify";
|
|
8
|
-
readonly BADGES: "/v1/badges";
|
|
9
7
|
readonly HEALTH: "/v1/health";
|
|
8
|
+
readonly BADGES: "/v1/badges";
|
|
9
|
+
readonly VERIFY: "/v1/verify";
|
|
10
|
+
readonly VERIFY_BADGE: "/v1/verify-badge";
|
|
10
11
|
readonly CHAT: "/v1/chat";
|
|
12
|
+
readonly DISCORD: "/v1/discord";
|
|
13
|
+
readonly PROFILE: "/v1/profile";
|
|
14
|
+
readonly SERVICES: "/v1/services";
|
|
11
15
|
};
|
|
12
16
|
export declare const HMAC_MAX_AGE_MS: number;
|
|
17
|
+
export declare const NONCE_PRUNE_INTERVAL_MS: number;
|
|
18
|
+
export declare const SESSION_TTL_MS: number;
|
|
19
|
+
export declare const MAX_CHAT_HISTORY = 20;
|
|
20
|
+
export declare const AGENT_TIMEOUT_MS = 120000;
|
|
21
|
+
export declare const VALIDATOR_CATEGORIES: Record<string, string[]>;
|
|
22
|
+
export declare const VALIDATOR_LABELS: Record<string, string>;
|
|
23
|
+
export declare const RPC_URLS: Record<number, string>;
|
|
13
24
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY;;;;CAIf,CAAA;AAEV,eAAO,MAAM,SAAS
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY;;;;CAIf,CAAA;AAEV,eAAO,MAAM,SAAS;;;;;;;;;CASZ,CAAA;AAEV,eAAO,MAAM,eAAe,QAAgB,CAAA;AAC5C,eAAO,MAAM,uBAAuB,QAAiB,CAAA;AACrD,eAAO,MAAM,cAAc,QAAiB,CAAA;AAC5C,eAAO,MAAM,gBAAgB,KAAK,CAAA;AAClC,eAAO,MAAM,gBAAgB,SAAU,CAAA;AAEvC,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAoBzD,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA+BnD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAG3C,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -6,14 +6,102 @@ var BADGE_STATUS = {
|
|
|
6
6
|
NOT_FOUND: "not_found"
|
|
7
7
|
};
|
|
8
8
|
var API_PATHS = {
|
|
9
|
-
VERIFY: "/v1/verify",
|
|
10
|
-
BADGES: "/v1/badges",
|
|
11
9
|
HEALTH: "/v1/health",
|
|
12
|
-
|
|
10
|
+
BADGES: "/v1/badges",
|
|
11
|
+
VERIFY: "/v1/verify",
|
|
12
|
+
VERIFY_BADGE: "/v1/verify-badge",
|
|
13
|
+
CHAT: "/v1/chat",
|
|
14
|
+
DISCORD: "/v1/discord",
|
|
15
|
+
PROFILE: "/v1/profile",
|
|
16
|
+
SERVICES: "/v1/services"
|
|
13
17
|
};
|
|
14
18
|
var HMAC_MAX_AGE_MS = 5 * 60 * 1000;
|
|
19
|
+
var NONCE_PRUNE_INTERVAL_MS = 10 * 60 * 1000;
|
|
20
|
+
var SESSION_TTL_MS = 30 * 60 * 1000;
|
|
21
|
+
var MAX_CHAT_HISTORY = 20;
|
|
22
|
+
var AGENT_TIMEOUT_MS = 120000;
|
|
23
|
+
var VALIDATOR_CATEGORIES = {
|
|
24
|
+
onchain: [
|
|
25
|
+
"nft_holder_validator",
|
|
26
|
+
"evm_balance_validator",
|
|
27
|
+
"evm_transaction_count",
|
|
28
|
+
"evm_wallet_age",
|
|
29
|
+
"evm_token_holder_count",
|
|
30
|
+
"multi_nft_holder",
|
|
31
|
+
"nft_holder_count_validator",
|
|
32
|
+
"onchain_community_membership",
|
|
33
|
+
"badge_minted_count",
|
|
34
|
+
"lilstar_nft_testnet_snapshot_holder_validator"
|
|
35
|
+
],
|
|
36
|
+
social: [
|
|
37
|
+
"follower_count_twitter",
|
|
38
|
+
"reply_count_twitter",
|
|
39
|
+
"twitter_age",
|
|
40
|
+
"twitter_relationship",
|
|
41
|
+
"connected_twitter",
|
|
42
|
+
"discord_role",
|
|
43
|
+
"discord_age"
|
|
44
|
+
],
|
|
45
|
+
ai: ["required_persona", "fused_ai_did"],
|
|
46
|
+
platform: [
|
|
47
|
+
"user",
|
|
48
|
+
"required_badge",
|
|
49
|
+
"daily_checkin_streak",
|
|
50
|
+
"foru_miniapp_explorer",
|
|
51
|
+
"foru_ai_agent_early_bird"
|
|
52
|
+
],
|
|
53
|
+
campaign: [
|
|
54
|
+
"somnia_7d_leaderboard_kaito_yapper",
|
|
55
|
+
"somnia_yapstorm_core",
|
|
56
|
+
"somnia_yapstorm_yapper",
|
|
57
|
+
"airdrop_og"
|
|
58
|
+
]
|
|
59
|
+
};
|
|
60
|
+
var VALIDATOR_LABELS = {
|
|
61
|
+
user: "Registered user account",
|
|
62
|
+
empty_rule: "Auto-awarded (no specific requirement)",
|
|
63
|
+
nft_holder_validator: "Must hold NFT on-chain",
|
|
64
|
+
discord_role: "Must have a specific Discord role",
|
|
65
|
+
fused_ai_did: "Must have a Fused AI DID",
|
|
66
|
+
minimum_achieved_loyalty_daily_checkin_leaderboard: "Daily check-in leaderboard rank",
|
|
67
|
+
required_persona: "Must have a specific persona",
|
|
68
|
+
daily_checkin_streak: "Daily check-in streak count",
|
|
69
|
+
follower_count_twitter: "Minimum Twitter/X follower count",
|
|
70
|
+
discord_age: "Discord account age requirement",
|
|
71
|
+
evm_balance_validator: "Minimum EVM wallet balance",
|
|
72
|
+
twitter_age: "Twitter/X account age requirement",
|
|
73
|
+
twitter_relationship: "Twitter/X relationship (following/followed)",
|
|
74
|
+
evm_transaction_count: "Minimum EVM transaction count",
|
|
75
|
+
evm_wallet_age: "EVM wallet age requirement",
|
|
76
|
+
foru_miniapp_explorer: "ForU mini-app explorer activity",
|
|
77
|
+
lilstar_nft_testnet_snapshot_holder_validator: "LilStar NFT testnet snapshot holder",
|
|
78
|
+
onchain_community_membership: "On-chain community membership",
|
|
79
|
+
required_badge: "Must hold a prerequisite badge",
|
|
80
|
+
airdrop_og: "Original airdrop participant",
|
|
81
|
+
badge_minted_count: "Number of badges minted",
|
|
82
|
+
connected_twitter: "Must have connected Twitter/X account",
|
|
83
|
+
evm_token_holder_count: "EVM token holder count",
|
|
84
|
+
foru_ai_agent_early_bird: "ForU AI Agent early bird",
|
|
85
|
+
multi_nft_holder: "Must hold multiple NFTs",
|
|
86
|
+
nft_holder_count_validator: "NFT holder count threshold",
|
|
87
|
+
reply_count_twitter: "Twitter/X reply count",
|
|
88
|
+
somnia_7d_leaderboard_kaito_yapper: "Somnia 7-day Kaito Yapper leaderboard",
|
|
89
|
+
somnia_yapstorm_core: "Somnia YapStorm core participant",
|
|
90
|
+
somnia_yapstorm_yapper: "Somnia YapStorm yapper"
|
|
91
|
+
};
|
|
92
|
+
var RPC_URLS = {
|
|
93
|
+
56: process.env.BSC_RPC_URL || "https://bsc-dataseed.bnbchain.org",
|
|
94
|
+
5031: "https://dream-rpc.somnia.network"
|
|
95
|
+
};
|
|
15
96
|
export {
|
|
97
|
+
VALIDATOR_LABELS,
|
|
98
|
+
VALIDATOR_CATEGORIES,
|
|
99
|
+
SESSION_TTL_MS,
|
|
100
|
+
RPC_URLS,
|
|
101
|
+
NONCE_PRUNE_INTERVAL_MS,
|
|
102
|
+
MAX_CHAT_HISTORY,
|
|
16
103
|
HMAC_MAX_AGE_MS,
|
|
17
104
|
BADGE_STATUS,
|
|
18
|
-
API_PATHS
|
|
105
|
+
API_PATHS,
|
|
106
|
+
AGENT_TIMEOUT_MS
|
|
19
107
|
};
|
package/dist/types.d.ts
CHANGED
|
@@ -111,5 +111,120 @@ export interface ChatRequest {
|
|
|
111
111
|
export interface ChatResponse {
|
|
112
112
|
reply: string;
|
|
113
113
|
sessionId: string;
|
|
114
|
+
routed?: string;
|
|
115
|
+
}
|
|
116
|
+
export interface VerifyBadgeRequest {
|
|
117
|
+
user_address?: string;
|
|
118
|
+
username?: string;
|
|
119
|
+
discord_username?: string;
|
|
120
|
+
badge_id?: number;
|
|
121
|
+
}
|
|
122
|
+
export interface VerifyBadgeResponse {
|
|
123
|
+
user_address: string;
|
|
124
|
+
total_badges: number;
|
|
125
|
+
badges: VerifiedBadge[];
|
|
126
|
+
verified_at: string;
|
|
127
|
+
}
|
|
128
|
+
export interface VerifiedBadge {
|
|
129
|
+
badge_id: number;
|
|
130
|
+
name: string | null;
|
|
131
|
+
description: string | null;
|
|
132
|
+
image: string | null;
|
|
133
|
+
status: string;
|
|
134
|
+
badge_type: 'rule_based' | 'campaign_reward' | 'admin_grant' | 'auto_awarded';
|
|
135
|
+
confidence: number;
|
|
136
|
+
unlocked_at?: string;
|
|
137
|
+
rules_breakdown: {
|
|
138
|
+
total: number;
|
|
139
|
+
by_category: Record<string, number>;
|
|
140
|
+
};
|
|
141
|
+
rules: BadgeRuleInfo[];
|
|
142
|
+
awarded_via?: AwardSource;
|
|
143
|
+
minting?: MintingInfo;
|
|
144
|
+
onchain_proof?: OnchainProof;
|
|
145
|
+
chains?: ChainConfig[];
|
|
146
|
+
exp_earned?: string;
|
|
147
|
+
identifi_reward?: string;
|
|
148
|
+
}
|
|
149
|
+
export interface ChainConfig {
|
|
150
|
+
chain_id: number;
|
|
151
|
+
chain_name: string | null;
|
|
152
|
+
contract_address: string;
|
|
153
|
+
}
|
|
154
|
+
export interface DiscordCheckRequest {
|
|
155
|
+
user_address?: string;
|
|
156
|
+
username?: string;
|
|
157
|
+
discord_username?: string;
|
|
158
|
+
server_id?: string;
|
|
159
|
+
}
|
|
160
|
+
export interface DiscordCheckResponse {
|
|
161
|
+
linked: boolean;
|
|
162
|
+
discord_username: string | null;
|
|
163
|
+
discord_id?: string;
|
|
164
|
+
servers: DiscordServerStatus[];
|
|
165
|
+
checked_at: string;
|
|
166
|
+
}
|
|
167
|
+
export interface DiscordServerStatus {
|
|
168
|
+
server_id: string;
|
|
169
|
+
server_name: string | null;
|
|
170
|
+
is_member: boolean;
|
|
171
|
+
joined_at?: string | null;
|
|
172
|
+
nickname?: string | null;
|
|
173
|
+
roles?: string[];
|
|
174
|
+
}
|
|
175
|
+
export interface ProfileRequest {
|
|
176
|
+
user_address?: string;
|
|
177
|
+
username?: string;
|
|
178
|
+
discord_username?: string;
|
|
179
|
+
}
|
|
180
|
+
export interface ProfileResponse {
|
|
181
|
+
wallets: {
|
|
182
|
+
address: string;
|
|
183
|
+
is_primary: boolean;
|
|
184
|
+
}[];
|
|
185
|
+
twitter: {
|
|
186
|
+
username: string | null;
|
|
187
|
+
linked: boolean;
|
|
188
|
+
};
|
|
189
|
+
discord: {
|
|
190
|
+
username: string | null;
|
|
191
|
+
discord_id?: string;
|
|
192
|
+
linked: boolean;
|
|
193
|
+
};
|
|
194
|
+
badges: {
|
|
195
|
+
total: number;
|
|
196
|
+
minted: number;
|
|
197
|
+
};
|
|
198
|
+
resolved_at: string;
|
|
199
|
+
}
|
|
200
|
+
export interface ServicesCatalog {
|
|
201
|
+
name: string;
|
|
202
|
+
version: string;
|
|
203
|
+
description: string;
|
|
204
|
+
services: ServiceEntry[];
|
|
205
|
+
authentication: {
|
|
206
|
+
schemes: string[];
|
|
207
|
+
hmac_format: string;
|
|
208
|
+
bearer_format: string;
|
|
209
|
+
};
|
|
210
|
+
erc8004: {
|
|
211
|
+
status: string;
|
|
212
|
+
registry: string;
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
export interface ServiceEntry {
|
|
216
|
+
id: string;
|
|
217
|
+
name: string;
|
|
218
|
+
description: string;
|
|
219
|
+
endpoint: string;
|
|
220
|
+
input?: Record<string, string>;
|
|
221
|
+
output?: string;
|
|
222
|
+
pricing?: {
|
|
223
|
+
amount: string;
|
|
224
|
+
asset?: string;
|
|
225
|
+
network?: string;
|
|
226
|
+
note?: string;
|
|
227
|
+
};
|
|
228
|
+
status?: string;
|
|
114
229
|
}
|
|
115
230
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE;QACR,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,CAAA;IACD,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE;QACR,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;QAC/B,cAAc,CAAC,EAAE,MAAM,CAAA;QACvB,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,CAAA;IACD,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,WAAW,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,aAAa,CAAC,EAAE,YAAY,CAAA;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,gBAAgB,EAAE,MAAM,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,gBAAgB,EAAE,OAAO,CAAA;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,aAAa,EAAE,CAAA;IACtB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,OAAO,CAAC,EAAE,WAAW,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAED,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,OAAO,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE;QACd,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,gBAAgB,CAAC,EAAE,MAAM,CAAA;QACzB,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KACvB,CAAA;CACF;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,UAAU,GAAG,gBAAgB,CAAA;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,OAAO,CAAA;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,cAAc,GAAG,WAAW,CAAA;AAEnE,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,IAAI,GAAG,OAAO,CAAA;IACtB,EAAE,EAAE,WAAW,GAAG,cAAc,CAAA;IAChC,SAAS,EAAE,MAAM,CAAA;CAClB;AAID,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAID,MAAM,WAAW,kBAAkB;IACjC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,aAAa,EAAE,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,YAAY,GAAG,iBAAiB,GAAG,aAAa,GAAG,cAAc,CAAA;IAC7E,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE;QACf,KAAK,EAAE,MAAM,CAAA;QACb,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KACpC,CAAA;IACD,KAAK,EAAE,aAAa,EAAE,CAAA;IACtB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,OAAO,CAAC,EAAE,WAAW,CAAA;IACrB,aAAa,CAAC,EAAE,YAAY,CAAA;IAC5B,MAAM,CAAC,EAAE,WAAW,EAAE,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,OAAO,CAAA;IACf,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,mBAAmB,EAAE,CAAA;IAC9B,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,SAAS,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,EAAE,CAAA;IACnD,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAA;IACrD,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAA;IAC1E,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IACzC,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,YAAY,EAAE,CAAA;IACxB,cAAc,EAAE;QACd,OAAO,EAAE,MAAM,EAAE,CAAA;QACjB,WAAW,EAAE,MAAM,CAAA;QACnB,aAAa,EAAE,MAAM,CAAA;KACtB,CAAA;IACD,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAA;QACd,QAAQ,EAAE,MAAM,CAAA;KACjB,CAAA;CACF;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@foruai/shared",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "Shared types, constants, and API path definitions for the ForU Gatekeeper AI ecosystem",
|
|
4
5
|
"type": "module",
|
|
5
6
|
"main": "dist/index.js",
|
|
6
7
|
"types": "dist/index.d.ts",
|
|
8
|
+
"files": ["dist", "README.md"],
|
|
7
9
|
"scripts": {
|
|
8
10
|
"build": "bun build src/index.ts --outdir dist --target bun && tsc --emitDeclarationOnly"
|
|
9
11
|
},
|
|
12
|
+
"keywords": ["foruai", "gatekeeper", "badges", "web3", "erc-8004", "types"],
|
|
13
|
+
"license": "MIT",
|
|
14
|
+
"repository": {
|
|
15
|
+
"type": "git",
|
|
16
|
+
"url": "https://github.com/untukmuai/foru-gatekeeper-ai",
|
|
17
|
+
"directory": "packages/shared"
|
|
18
|
+
},
|
|
19
|
+
"publishConfig": {
|
|
20
|
+
"access": "public"
|
|
21
|
+
},
|
|
10
22
|
"devDependencies": {
|
|
11
23
|
"bun-types": "latest",
|
|
12
24
|
"typescript": "^5.7.0"
|
package/src/constants.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export const BADGE_STATUS = {
|
|
2
|
-
VERIFIED: 'verified',
|
|
3
|
-
NOT_VERIFIED: 'not_verified',
|
|
4
|
-
NOT_FOUND: 'not_found',
|
|
5
|
-
} as const
|
|
6
|
-
|
|
7
|
-
export const API_PATHS = {
|
|
8
|
-
VERIFY: '/v1/verify',
|
|
9
|
-
BADGES: '/v1/badges',
|
|
10
|
-
HEALTH: '/v1/health',
|
|
11
|
-
CHAT: '/v1/chat',
|
|
12
|
-
} as const
|
|
13
|
-
|
|
14
|
-
export const HMAC_MAX_AGE_MS = 5 * 60 * 1000 // 5 minutes
|
package/src/index.ts
DELETED
package/src/types.ts
DELETED
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
export interface VerificationRequest {
|
|
2
|
-
identity: {
|
|
3
|
-
wallet_address?: string
|
|
4
|
-
x_username?: string
|
|
5
|
-
}
|
|
6
|
-
badge_ids?: number[]
|
|
7
|
-
discord_server_id?: string
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export interface VerificationResponse {
|
|
11
|
-
identity: {
|
|
12
|
-
resolved_user_id: number | null
|
|
13
|
-
wallet_address?: string
|
|
14
|
-
x_username?: string
|
|
15
|
-
}
|
|
16
|
-
badges: BadgeResult[]
|
|
17
|
-
discord?: DiscordResult
|
|
18
|
-
verified_at: string
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export interface BadgeResult {
|
|
22
|
-
badge_id: number
|
|
23
|
-
name?: string
|
|
24
|
-
description?: string
|
|
25
|
-
status: BadgeStatus
|
|
26
|
-
image?: string
|
|
27
|
-
rarity?: string
|
|
28
|
-
unlocked_at?: string
|
|
29
|
-
reason?: BadgeReason
|
|
30
|
-
onchain_proof?: OnchainProof
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export interface OnchainProof {
|
|
34
|
-
contract_address: string
|
|
35
|
-
chain_id: number
|
|
36
|
-
rpc_url: string
|
|
37
|
-
nft_erc_type: string
|
|
38
|
-
wallet_address: string
|
|
39
|
-
balance: string
|
|
40
|
-
proof_method: string
|
|
41
|
-
verified_onchain: boolean
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
export interface BadgeReason {
|
|
45
|
-
rules: BadgeRuleInfo[]
|
|
46
|
-
awarded_via?: AwardSource
|
|
47
|
-
minting?: MintingInfo
|
|
48
|
-
exp_earned?: string
|
|
49
|
-
identifi_reward?: string
|
|
50
|
-
metadata?: Record<string, unknown>
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
export interface BadgeRuleInfo {
|
|
54
|
-
validator_key: string
|
|
55
|
-
validator_label: string
|
|
56
|
-
operator: string
|
|
57
|
-
value: unknown
|
|
58
|
-
value_type: string
|
|
59
|
-
params_schema?: {
|
|
60
|
-
rpc_url?: string
|
|
61
|
-
chain_id?: number
|
|
62
|
-
contract_address?: string
|
|
63
|
-
nft_erc_type?: string
|
|
64
|
-
[key: string]: unknown
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
export interface AwardSource {
|
|
69
|
-
source_type: 'campaign' | 'quest_campaign'
|
|
70
|
-
campaign_id?: number
|
|
71
|
-
campaign_name?: string
|
|
72
|
-
quest_campaign_id?: number
|
|
73
|
-
quest_name?: string
|
|
74
|
-
community_name?: string
|
|
75
|
-
user_rank?: number
|
|
76
|
-
user_rep_score?: string
|
|
77
|
-
claimed_at?: string
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
export interface MintingInfo {
|
|
81
|
-
is_minted: boolean
|
|
82
|
-
mint_hash?: string
|
|
83
|
-
chain_name?: string
|
|
84
|
-
chain_id?: number
|
|
85
|
-
contract_address?: string
|
|
86
|
-
token_id?: string
|
|
87
|
-
minting_cost?: string
|
|
88
|
-
minting_cost_asset?: string
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
export interface DiscordResult {
|
|
92
|
-
server_id: string
|
|
93
|
-
is_member: boolean
|
|
94
|
-
discord_username?: string
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
export type BadgeStatus = 'verified' | 'not_verified' | 'not_found'
|
|
98
|
-
|
|
99
|
-
export interface BadgeInfo {
|
|
100
|
-
id: number
|
|
101
|
-
name: string
|
|
102
|
-
description: string | null
|
|
103
|
-
image: string | null
|
|
104
|
-
shape: string | null
|
|
105
|
-
source: string | null
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
export interface HealthResponse {
|
|
109
|
-
status: 'ok' | 'error'
|
|
110
|
-
db: 'connected' | 'disconnected'
|
|
111
|
-
timestamp: string
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
// HMAC auth types
|
|
115
|
-
|
|
116
|
-
export interface HmacToken {
|
|
117
|
-
nonce: string
|
|
118
|
-
timestamp: number
|
|
119
|
-
signature: string
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
export interface ChatRequest {
|
|
123
|
-
message: string
|
|
124
|
-
sessionId?: string
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
export interface ChatResponse {
|
|
128
|
-
reply: string
|
|
129
|
-
sessionId: string
|
|
130
|
-
}
|