@dupecom/botcha-cloudflare 0.20.2 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/README.md +74 -9
  2. package/dist/agent-auth.d.ts +129 -0
  3. package/dist/agent-auth.d.ts.map +1 -0
  4. package/dist/agent-auth.js +210 -0
  5. package/dist/agents.d.ts +10 -0
  6. package/dist/agents.d.ts.map +1 -1
  7. package/dist/agents.js +51 -1
  8. package/dist/app-gate.d.ts +6 -0
  9. package/dist/app-gate.d.ts.map +1 -0
  10. package/dist/app-gate.js +69 -0
  11. package/dist/apps.d.ts +13 -4
  12. package/dist/apps.d.ts.map +1 -1
  13. package/dist/apps.js +30 -4
  14. package/dist/dashboard/account.d.ts +63 -0
  15. package/dist/dashboard/account.d.ts.map +1 -0
  16. package/dist/dashboard/account.js +488 -0
  17. package/dist/dashboard/api.js +15 -68
  18. package/dist/dashboard/auth.d.ts.map +1 -1
  19. package/dist/dashboard/auth.js +14 -14
  20. package/dist/dashboard/docs.d.ts.map +1 -1
  21. package/dist/dashboard/docs.js +146 -3
  22. package/dist/dashboard/layout.d.ts.map +1 -1
  23. package/dist/dashboard/layout.js +2 -2
  24. package/dist/dashboard/mcp-setup.d.ts +15 -0
  25. package/dist/dashboard/mcp-setup.d.ts.map +1 -0
  26. package/dist/dashboard/mcp-setup.js +391 -0
  27. package/dist/dashboard/showcase.d.ts +6 -10
  28. package/dist/dashboard/showcase.d.ts.map +1 -1
  29. package/dist/dashboard/showcase.js +67 -991
  30. package/dist/dashboard/whitepaper.d.ts.map +1 -1
  31. package/dist/dashboard/whitepaper.js +42 -4
  32. package/dist/index.d.ts +5 -0
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +660 -83
  35. package/dist/mcp.d.ts +20 -0
  36. package/dist/mcp.d.ts.map +1 -0
  37. package/dist/mcp.js +1290 -0
  38. package/dist/oauth-agent.d.ts +130 -0
  39. package/dist/oauth-agent.d.ts.map +1 -0
  40. package/dist/oauth-agent.js +194 -0
  41. package/dist/static.d.ts +781 -5
  42. package/dist/static.d.ts.map +1 -1
  43. package/dist/static.js +790 -111
  44. package/dist/tap-a2a-routes.d.ts +355 -0
  45. package/dist/tap-a2a-routes.d.ts.map +1 -0
  46. package/dist/tap-a2a-routes.js +475 -0
  47. package/dist/tap-a2a.d.ts +199 -0
  48. package/dist/tap-a2a.d.ts.map +1 -0
  49. package/dist/tap-a2a.js +502 -0
  50. package/dist/tap-agents.d.ts +15 -0
  51. package/dist/tap-agents.d.ts.map +1 -1
  52. package/dist/tap-agents.js +31 -1
  53. package/dist/tap-ans-routes.d.ts +302 -0
  54. package/dist/tap-ans-routes.d.ts.map +1 -0
  55. package/dist/tap-ans-routes.js +535 -0
  56. package/dist/tap-ans.d.ts +241 -0
  57. package/dist/tap-ans.d.ts.map +1 -0
  58. package/dist/tap-ans.js +481 -0
  59. package/dist/tap-delegation-routes.d.ts.map +1 -1
  60. package/dist/tap-delegation-routes.js +11 -0
  61. package/dist/tap-did.d.ts +140 -0
  62. package/dist/tap-did.d.ts.map +1 -0
  63. package/dist/tap-did.js +262 -0
  64. package/dist/tap-oidca-routes.d.ts +383 -0
  65. package/dist/tap-oidca-routes.d.ts.map +1 -0
  66. package/dist/tap-oidca-routes.js +597 -0
  67. package/dist/tap-oidca.d.ts +288 -0
  68. package/dist/tap-oidca.d.ts.map +1 -0
  69. package/dist/tap-oidca.js +461 -0
  70. package/dist/tap-routes.d.ts +24 -8
  71. package/dist/tap-routes.d.ts.map +1 -1
  72. package/dist/tap-routes.js +169 -23
  73. package/dist/tap-vc-routes.d.ts +358 -0
  74. package/dist/tap-vc-routes.d.ts.map +1 -0
  75. package/dist/tap-vc-routes.js +367 -0
  76. package/dist/tap-vc.d.ts +125 -0
  77. package/dist/tap-vc.d.ts.map +1 -0
  78. package/dist/tap-vc.js +245 -0
  79. package/dist/tap-x402-routes.d.ts +89 -0
  80. package/dist/tap-x402-routes.d.ts.map +1 -0
  81. package/dist/tap-x402-routes.js +579 -0
  82. package/dist/tap-x402.d.ts +222 -0
  83. package/dist/tap-x402.d.ts.map +1 -0
  84. package/dist/tap-x402.js +546 -0
  85. package/dist/webhooks.d.ts +99 -0
  86. package/dist/webhooks.d.ts.map +1 -0
  87. package/dist/webhooks.js +642 -0
  88. package/package.json +3 -1
@@ -0,0 +1,288 @@
1
+ /**
2
+ * BOTCHA OIDC-A Attestation Module
3
+ *
4
+ * Implements OIDC-A (OpenID Connect for Agents) attestation:
5
+ * - EAT (Entity Attestation Token) issuance per draft-ietf-rats-eat-25
6
+ * - OIDC-A compatible claims per draft-aap-oauth-profile (Feb 2026)
7
+ * - OAuth 2.0 AS metadata discovery per RFC 8414
8
+ * - Agent Authorization Grant per draft-rosenberg-oauth-aauth
9
+ * - OIDC-A UserInfo endpoint
10
+ *
11
+ * EAT tokens make BOTCHA an `agent_attestation` endpoint that enterprise
12
+ * auth servers embed in OpenID Connect for Agents token chains.
13
+ */
14
+ import type { KVNamespace } from './auth.js';
15
+ import type { ES256SigningKeyJWK } from './auth.js';
16
+ /**
17
+ * EAT (Entity Attestation Token) payload — draft-ietf-rats-eat-25
18
+ *
19
+ * JSON-encoded EAT as a JWT (JOSE-protected).
20
+ * Claims follow Section 4 of draft-ietf-rats-eat-25:
21
+ * - iat, exp, iss, sub: standard JWT claims (reused by EAT)
22
+ * - eat_nonce: anti-replay nonce (Section 4.1)
23
+ * - eat_profile: URI identifying the EAT profile (Section 4.3.2)
24
+ * - ueid: Universal Entity ID (Section 4.2.1) — base64url(sha256(agent_id))
25
+ * - oemid: Hardware OEM ID (Section 4.2.3) — for software agents, this is vendor
26
+ * - swname: Software name (Section 4.2.6)
27
+ * - swversion: Software version (Section 4.2.7)
28
+ * - dbgstat: Debug status (Section 4.2.9)
29
+ * - intuse: Intended use (Section 4.3.3)
30
+ * - botcha_*: BOTCHA-specific private claims
31
+ */
32
+ export interface EATPayload {
33
+ iss: string;
34
+ sub: string;
35
+ iat: number;
36
+ exp: number;
37
+ eat_profile: string;
38
+ eat_nonce: string;
39
+ ueid: string;
40
+ oemid: string;
41
+ swname: string;
42
+ swversion: string;
43
+ dbgstat: EATDebugStatus;
44
+ intuse: EATIntendedUse;
45
+ botcha_verified: true;
46
+ botcha_challenge_id: string;
47
+ botcha_solve_time_ms: number;
48
+ botcha_app_id?: string;
49
+ botcha_verification_method: 'speed-challenge' | 'hybrid-challenge' | 'reasoning-challenge';
50
+ }
51
+ /**
52
+ * EAT dbgstat values (Section 4.2.9 of draft-ietf-rats-eat-25)
53
+ */
54
+ export type EATDebugStatus = 'Enabled' | 'Disabled' | 'Disabled-Since-Boot' | 'Disabled-Permanently' | 'Disabled-Fully-And-Permanently';
55
+ /**
56
+ * EAT intuse values (Section 4.3.3 of draft-ietf-rats-eat-25)
57
+ */
58
+ export type EATIntendedUse = 'generic' | 'registration' | 'provisioning' | 'csr' | 'pop';
59
+ /**
60
+ * OIDC-A agent claims block — for embedding in enterprise ID tokens
61
+ *
62
+ * Based on:
63
+ * - draft-aap-oauth-profile Section 5 (JWT Claim Schema for Agents)
64
+ * - OIDC-A 1.0 agent extension claims
65
+ *
66
+ * Enterprise auth servers call /v1/attestation/oidc-agent-claims to enrich
67
+ * ID tokens with these claims before issuing them to clients.
68
+ */
69
+ export interface OIDCAgentClaims {
70
+ agent_model: string;
71
+ agent_version?: string;
72
+ agent_capabilities: string[];
73
+ agent_attestation: string;
74
+ delegation_chain: string[];
75
+ agent_id: string;
76
+ agent_operator?: string;
77
+ agent_verification: {
78
+ method: string;
79
+ solve_time_ms: number;
80
+ verified_at: string;
81
+ issuer: string;
82
+ challenge_id: string;
83
+ };
84
+ human_oversight_required: boolean;
85
+ oversight_contact?: string;
86
+ task_id?: string;
87
+ task_purpose?: string;
88
+ iat: number;
89
+ exp: number;
90
+ iss: string;
91
+ }
92
+ /**
93
+ * Agent Grant result — output of POST /v1/auth/agent-grant
94
+ *
95
+ * Implements the "Agent Authorization Grant" from draft-rosenberg-oauth-aauth.
96
+ * An agent presents its BOTCHA token and receives a scoped OAuth-style grant.
97
+ */
98
+ export interface AgentGrantResult {
99
+ grant_type: 'urn:ietf:params:oauth:grant-type:agent_authorization';
100
+ access_token: string;
101
+ token_type: 'Bearer';
102
+ expires_in: number;
103
+ scope: string;
104
+ agent_id: string;
105
+ app_id?: string;
106
+ human_oversight_required: boolean;
107
+ oversight_status: 'none' | 'pending' | 'approved' | 'denied';
108
+ oversight_polling_url?: string;
109
+ agent_claims: OIDCAgentClaims;
110
+ eat_token: string;
111
+ }
112
+ /**
113
+ * Stored grant state for HITL polling
114
+ */
115
+ export interface PendingGrant {
116
+ grant_id: string;
117
+ agent_id: string;
118
+ app_id?: string;
119
+ scope: string;
120
+ requested_at: number;
121
+ status: 'pending' | 'approved' | 'denied';
122
+ approved_at?: number;
123
+ denied_at?: number;
124
+ denial_reason?: string;
125
+ }
126
+ export declare const BOTCHA_EAT_PROFILE = "https://botcha.ai/eat-profile/v1";
127
+ export declare const BOTCHA_ISSUER = "botcha.ai";
128
+ export declare const EAT_TOKEN_TTL_SECONDS = 3600;
129
+ export declare const OIDC_CLAIMS_TTL_SECONDS = 3600;
130
+ export declare const AGENT_GRANT_TTL_SECONDS = 3600;
131
+ /**
132
+ * Well-known BOTCHA agent capabilities
133
+ * Enterprise auth servers can use these to filter agents by capability.
134
+ */
135
+ export declare const BOTCHA_AGENT_CAPABILITIES: string[];
136
+ /**
137
+ * Issue an EAT (Entity Attestation Token) from a valid BOTCHA access token.
138
+ *
139
+ * The EAT proves:
140
+ * 1. The agent solved a computational challenge (proving it is a bot)
141
+ * 2. The challenge was issued by botcha.ai
142
+ * 3. The solution time demonstrates AI-speed computation
143
+ * 4. The agent is registered with a specific app
144
+ *
145
+ * This token can be embedded as `agent_attestation` in OIDC-A tokens.
146
+ *
147
+ * @param botchaPayload - Verified BOTCHA access token payload
148
+ * @param signingKey - ES256 private key for signing (required for EAT)
149
+ * @param options - Optional parameters
150
+ * @returns Signed EAT JWT
151
+ */
152
+ export declare function issueEAT(botchaPayload: {
153
+ sub: string;
154
+ iat: number;
155
+ exp: number;
156
+ jti: string;
157
+ type: 'botcha-verified';
158
+ solveTime: number;
159
+ app_id?: string;
160
+ aud?: string;
161
+ }, signingKey: ES256SigningKeyJWK, options?: {
162
+ nonce?: string;
163
+ agentModel?: string;
164
+ ttlSeconds?: number;
165
+ verificationMethod?: 'speed-challenge' | 'hybrid-challenge' | 'reasoning-challenge';
166
+ }): Promise<string>;
167
+ /**
168
+ * Build OIDC-A compatible agent claims block.
169
+ *
170
+ * This is the full claims object that enterprise auth servers embed in their
171
+ * ID tokens for agent grants. It includes the EAT token as `agent_attestation`.
172
+ *
173
+ * @param botchaPayload - Verified BOTCHA access token payload
174
+ * @param eatToken - Signed EAT JWT (from issueEAT)
175
+ * @param signingKey - ES256 signing key
176
+ * @param options - Agent metadata and OIDC-A options
177
+ * @returns Signed OIDC-A claims JWT + plain claims object
178
+ */
179
+ export declare function buildOIDCAgentClaims(botchaPayload: {
180
+ sub: string;
181
+ iat: number;
182
+ exp: number;
183
+ jti: string;
184
+ type: 'botcha-verified';
185
+ solveTime: number;
186
+ app_id?: string;
187
+ aud?: string;
188
+ }, eatToken: string, signingKey: ES256SigningKeyJWK, options?: {
189
+ agentModel?: string;
190
+ agentVersion?: string;
191
+ agentCapabilities?: string[];
192
+ agentOperator?: string;
193
+ delegationChain?: string[];
194
+ humanOversightRequired?: boolean;
195
+ oversightContact?: string;
196
+ taskId?: string;
197
+ taskPurpose?: string;
198
+ scope?: string;
199
+ ttlSeconds?: number;
200
+ verificationMethod?: 'speed-challenge' | 'hybrid-challenge' | 'reasoning-challenge';
201
+ }): Promise<{
202
+ claims: OIDCAgentClaims;
203
+ claimsJwt: string;
204
+ }>;
205
+ /**
206
+ * Issue an Agent Authorization Grant.
207
+ *
208
+ * Implements draft-rosenberg-oauth-aauth "Agent Authorization Grant":
209
+ * - Agent presents BOTCHA access token as credential
210
+ * - Server issues a scoped grant JWT bound to the agent's identity
211
+ * - Optionally queued for human-in-the-loop approval
212
+ *
213
+ * Grant token is a signed JWT with AAP claims (draft-aap-oauth-profile §5).
214
+ *
215
+ * @param botchaPayload - Verified BOTCHA access token payload
216
+ * @param eatToken - EAT JWT from issueEAT
217
+ * @param oidcClaims - OIDC-A claims object from buildOIDCAgentClaims
218
+ * @param signingKey - ES256 signing key
219
+ * @param kv - KV namespace for storing pending grants (for HITL polling)
220
+ * @param options - Grant options
221
+ * @returns AgentGrantResult
222
+ */
223
+ export declare function issueAgentGrant(botchaPayload: {
224
+ sub: string;
225
+ iat: number;
226
+ exp: number;
227
+ jti: string;
228
+ type: 'botcha-verified';
229
+ solveTime: number;
230
+ app_id?: string;
231
+ }, eatToken: string, oidcClaims: OIDCAgentClaims, signingKey: ES256SigningKeyJWK, kv: KVNamespace, baseUrl: string, options?: {
232
+ scope?: string;
233
+ humanOversightRequired?: boolean;
234
+ ttlSeconds?: number;
235
+ taskId?: string;
236
+ taskPurpose?: string;
237
+ constraints?: Record<string, unknown>;
238
+ }): Promise<AgentGrantResult>;
239
+ /**
240
+ * Build OAuth 2.0 Authorization Server metadata (RFC 8414).
241
+ *
242
+ * This makes BOTCHA discoverable as an OAuth AS by enterprise auth servers
243
+ * that implement RFC 8414 auto-configuration.
244
+ *
245
+ * Extended with OIDC-A specific metadata for agent auth servers.
246
+ */
247
+ export declare function buildOAuthASMetadata(baseUrl: string): object;
248
+ /**
249
+ * Verify and decode a BOTCHA EAT token.
250
+ * Used by the UserInfo endpoint to extract agent identity.
251
+ *
252
+ * @param eatJwt - The EAT JWT to verify
253
+ * @param publicKey - ES256 public key JWK
254
+ * @returns Verified EAT payload or null
255
+ */
256
+ export declare function verifyEAT(eatJwt: string, publicKey: object): Promise<EATPayload | null>;
257
+ /**
258
+ * Poll the status of a pending human-in-the-loop grant.
259
+ *
260
+ * @param grantId - The grant ID to poll
261
+ * @param kv - KV namespace
262
+ * @returns Current grant status or null if not found
263
+ */
264
+ export declare function getGrantStatus(grantId: string, kv: KVNamespace): Promise<PendingGrant | null>;
265
+ /**
266
+ * Approve or deny a pending agent grant (admin action).
267
+ *
268
+ * @param grantId - The grant ID
269
+ * @param decision - 'approved' or 'denied'
270
+ * @param reason - Optional denial reason
271
+ * @param kv - KV namespace
272
+ */
273
+ export declare function resolveGrant(grantId: string, decision: 'approved' | 'denied', reason: string | undefined, kv: KVNamespace): Promise<{
274
+ success: boolean;
275
+ grant?: PendingGrant;
276
+ error?: string;
277
+ }>;
278
+ declare const _default: {
279
+ issueEAT: typeof issueEAT;
280
+ buildOIDCAgentClaims: typeof buildOIDCAgentClaims;
281
+ issueAgentGrant: typeof issueAgentGrant;
282
+ buildOAuthASMetadata: typeof buildOAuthASMetadata;
283
+ verifyEAT: typeof verifyEAT;
284
+ getGrantStatus: typeof getGrantStatus;
285
+ resolveGrant: typeof resolveGrant;
286
+ };
287
+ export default _default;
288
+ //# sourceMappingURL=tap-oidca.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tap-oidca.d.ts","sourceRoot":"","sources":["../src/tap-oidca.ts"],"names":[],"mappings":"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"}