beam-protocol-sdk 0.3.0 → 0.5.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.
@@ -0,0 +1,80 @@
1
+ import { BeamIdentity } from './identity.js';
2
+ import { BeamDirectory } from './directory.js';
3
+ import { BeamCredentialsClient, BeamDID } from './did.js';
4
+ import type { AgentProfile, AgentRecord, BeamClientConfig, BeamIdString, BrowseFilters, BrowseResult, Delegation, DirectoryStats, DomainVerification, IntentFrame, KeyRotationResult, Report, ResultFrame, BeamIdentityData } from './types.js';
5
+ type IntentHandler = (frame: IntentFrame, respond: (options: {
6
+ success: boolean;
7
+ payload?: Record<string, unknown>;
8
+ error?: string;
9
+ errorCode?: string;
10
+ latency?: number;
11
+ }) => ResultFrame) => void | Promise<void>;
12
+ export declare class BeamClient {
13
+ private _identity;
14
+ private readonly _directory;
15
+ private readonly _did;
16
+ private readonly _credentials;
17
+ private readonly _directoryUrl;
18
+ private _ws;
19
+ private _wsConnected;
20
+ private readonly _pendingResults;
21
+ private readonly _intentHandlers;
22
+ constructor(config: BeamClientConfig);
23
+ get beamId(): BeamIdString;
24
+ get directory(): BeamDirectory;
25
+ get did(): BeamDID;
26
+ get credentials(): BeamCredentialsClient;
27
+ register(displayName: string, capabilities: string[]): Promise<AgentRecord>;
28
+ updateProfile(fields: {
29
+ description?: string;
30
+ logo_url?: string;
31
+ website?: string;
32
+ }): Promise<AgentProfile>;
33
+ verifyDomain(domain: string): Promise<DomainVerification>;
34
+ checkDomainVerification(): Promise<DomainVerification>;
35
+ rotateKeys(newKeyPair: BeamIdentity | BeamIdentityData): Promise<KeyRotationResult>;
36
+ browse(page?: number, filters?: BrowseFilters): Promise<BrowseResult>;
37
+ getStats(): Promise<DirectoryStats>;
38
+ delegate(targetBeamId: string, scope: string, expiresIn?: number): Promise<Delegation>;
39
+ report(targetBeamId: string, reason: string): Promise<Report>;
40
+ connect(): Promise<void>;
41
+ private _handleMessage;
42
+ send(to: BeamIdString, intent: string, payload?: Record<string, unknown>, timeoutMs?: number): Promise<ResultFrame>;
43
+ private _sendViaWebSocket;
44
+ private _sendViaHttp;
45
+ on(intent: string, handler: IntentHandler): this;
46
+ thread(to: BeamIdString, options?: {
47
+ language?: string;
48
+ timeoutMs?: number;
49
+ }): BeamThread;
50
+ talk(to: BeamIdString, message: string, options?: {
51
+ context?: Record<string, unknown>;
52
+ language?: string;
53
+ timeoutMs?: number;
54
+ threadId?: string;
55
+ }): Promise<{
56
+ message: string;
57
+ structured?: Record<string, unknown>;
58
+ threadId?: string;
59
+ raw: ResultFrame;
60
+ }>;
61
+ onTalk(handler: (message: string, from: BeamIdString, respond: (reply: string, structured?: Record<string, unknown>) => void, frame: IntentFrame) => void | Promise<void>): this;
62
+ disconnect(): void;
63
+ }
64
+ export declare class BeamThread {
65
+ readonly threadId: string;
66
+ private readonly _client;
67
+ private readonly _to;
68
+ private readonly _language?;
69
+ private readonly _timeoutMs;
70
+ constructor(client: BeamClient, to: BeamIdString, options?: {
71
+ language?: string;
72
+ timeoutMs?: number;
73
+ });
74
+ say(message: string, context?: Record<string, unknown>): Promise<{
75
+ message: string;
76
+ structured?: Record<string, unknown>;
77
+ }>;
78
+ }
79
+ export {};
80
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js ADDED
@@ -0,0 +1,295 @@
1
+ import { BeamIdentity } from './identity.js';
2
+ import { BeamDirectory } from './directory.js';
3
+ import { BeamCredentialsClient, BeamDID } from './did.js';
4
+ import { createIntentFrame, createResultFrame, signFrame, validateIntentFrame } from './frames.js';
5
+ async function openWebSocket(url) {
6
+ if (typeof globalThis.WebSocket !== 'undefined') {
7
+ return new globalThis.WebSocket(url);
8
+ }
9
+ const { default: WS } = await import('ws');
10
+ return new WS(url);
11
+ }
12
+ export class BeamClient {
13
+ _identity;
14
+ _directory;
15
+ _did;
16
+ _credentials;
17
+ _directoryUrl;
18
+ _ws = null;
19
+ _wsConnected = false;
20
+ _pendingResults = new Map();
21
+ _intentHandlers = new Map();
22
+ constructor(config) {
23
+ this._identity = BeamIdentity.fromData(config.identity);
24
+ this._directoryUrl = config.directoryUrl;
25
+ this._directory = new BeamDirectory({ baseUrl: config.directoryUrl });
26
+ this._did = new BeamDID({ baseUrl: config.directoryUrl, identity: this._identity });
27
+ this._credentials = new BeamCredentialsClient(config.directoryUrl);
28
+ }
29
+ get beamId() {
30
+ return this._identity.beamId;
31
+ }
32
+ get directory() {
33
+ return this._directory;
34
+ }
35
+ get did() {
36
+ return this._did;
37
+ }
38
+ get credentials() {
39
+ return this._credentials;
40
+ }
41
+ async register(displayName, capabilities) {
42
+ const parsed = BeamIdentity.parseBeamId(this._identity.beamId);
43
+ if (!parsed)
44
+ throw new Error('Invalid beam ID on identity');
45
+ return this._directory.register({
46
+ beamId: this._identity.beamId,
47
+ displayName,
48
+ capabilities,
49
+ publicKey: this._identity.publicKeyBase64,
50
+ org: parsed.org,
51
+ });
52
+ }
53
+ async updateProfile(fields) {
54
+ return this._directory.updateProfile(this._identity.beamId, fields);
55
+ }
56
+ async verifyDomain(domain) {
57
+ return this._directory.verifyDomain(this._identity.beamId, domain);
58
+ }
59
+ async checkDomainVerification() {
60
+ return this._directory.checkDomainVerification(this._identity.beamId);
61
+ }
62
+ async rotateKeys(newKeyPair) {
63
+ const identity = newKeyPair instanceof BeamIdentity ? newKeyPair : BeamIdentity.fromData(newKeyPair);
64
+ const result = await this._directory.rotateKeys(this._identity.beamId, identity.publicKeyBase64);
65
+ this._identity = identity;
66
+ return result;
67
+ }
68
+ async browse(page = 1, filters = {}) {
69
+ return this._directory.browse(page, filters);
70
+ }
71
+ async getStats() {
72
+ return this._directory.getStats();
73
+ }
74
+ async delegate(targetBeamId, scope, expiresIn) {
75
+ return this._directory.delegate(this._identity.beamId, targetBeamId, scope, expiresIn);
76
+ }
77
+ async report(targetBeamId, reason) {
78
+ return this._directory.report(this._identity.beamId, targetBeamId, reason);
79
+ }
80
+ async connect() {
81
+ if (this._ws && this._wsConnected)
82
+ return;
83
+ const wsUrl = this._directoryUrl
84
+ .replace(/^http:\/\//, 'ws://')
85
+ .replace(/^https:\/\//, 'wss://')
86
+ .replace(/\/$/, '') + `/ws?beamId=${encodeURIComponent(this._identity.beamId)}`;
87
+ return new Promise((resolve, reject) => {
88
+ openWebSocket(wsUrl).then((ws) => {
89
+ this._ws = ws;
90
+ ws.onopen = () => {
91
+ };
92
+ ws.onmessage = (event) => {
93
+ this._handleMessage(event.data);
94
+ };
95
+ ws.onclose = () => {
96
+ this._wsConnected = false;
97
+ this._ws = null;
98
+ for (const [nonce, pending] of this._pendingResults) {
99
+ clearTimeout(pending.timer);
100
+ pending.reject(new Error('WebSocket connection closed'));
101
+ this._pendingResults.delete(nonce);
102
+ }
103
+ };
104
+ ws.onerror = (event) => {
105
+ if (!this._wsConnected) {
106
+ reject(new Error(`WebSocket connection error: ${String(event)}`));
107
+ }
108
+ };
109
+ const originalHandleMessage = this._handleMessage.bind(this);
110
+ this._handleMessage = (data) => {
111
+ try {
112
+ const msg = JSON.parse(data);
113
+ if (msg.type === 'connected') {
114
+ this._wsConnected = true;
115
+ this._handleMessage = originalHandleMessage;
116
+ resolve();
117
+ return;
118
+ }
119
+ }
120
+ catch {
121
+ }
122
+ originalHandleMessage(data);
123
+ };
124
+ }).catch(reject);
125
+ });
126
+ }
127
+ _handleMessage(data) {
128
+ let msg;
129
+ try {
130
+ msg = JSON.parse(data);
131
+ }
132
+ catch {
133
+ return;
134
+ }
135
+ if (msg['type'] === 'result') {
136
+ const frame = msg['frame'];
137
+ if (!frame)
138
+ return;
139
+ const pending = this._pendingResults.get(frame.nonce);
140
+ if (pending) {
141
+ clearTimeout(pending.timer);
142
+ this._pendingResults.delete(frame.nonce);
143
+ pending.resolve(frame);
144
+ }
145
+ return;
146
+ }
147
+ if (msg['type'] !== 'intent') {
148
+ return;
149
+ }
150
+ const frame = msg['frame'];
151
+ const senderPublicKey = msg['senderPublicKey'];
152
+ if (!frame || !senderPublicKey)
153
+ return;
154
+ const validation = validateIntentFrame(frame, senderPublicKey);
155
+ if (!validation.valid)
156
+ return;
157
+ const handler = this._intentHandlers.get(frame.intent) ?? this._intentHandlers.get('*');
158
+ if (!handler)
159
+ return;
160
+ const startTime = Date.now();
161
+ const respond = (options) => {
162
+ const latency = options.latency ?? (Date.now() - startTime);
163
+ const resultFrame = createResultFrame({ ...options, nonce: frame.nonce, latency }, this._identity);
164
+ if (this._ws && this._wsConnected) {
165
+ this._ws.send(JSON.stringify({ type: 'result', frame: resultFrame }));
166
+ }
167
+ return resultFrame;
168
+ };
169
+ Promise.resolve(handler(frame, respond)).catch((error) => {
170
+ respond({
171
+ success: false,
172
+ error: error instanceof Error ? error.message : 'Unhandled intent error',
173
+ errorCode: 'INTENT_HANDLER_ERROR',
174
+ });
175
+ });
176
+ }
177
+ async send(to, intent, payload, timeoutMs = 30_000) {
178
+ const frame = createIntentFrame({ intent, from: this._identity.beamId, to, payload }, this._identity);
179
+ signFrame(frame, this._identity.export().privateKeyBase64);
180
+ if (this._ws && this._wsConnected) {
181
+ return this._sendViaWebSocket(frame, timeoutMs);
182
+ }
183
+ return this._sendViaHttp(frame);
184
+ }
185
+ _sendViaWebSocket(frame, timeoutMs) {
186
+ return new Promise((resolve, reject) => {
187
+ const timer = setTimeout(() => {
188
+ this._pendingResults.delete(frame.nonce);
189
+ reject(new Error(`Intent "${frame.intent}" timed out after ${timeoutMs}ms`));
190
+ }, timeoutMs);
191
+ this._pendingResults.set(frame.nonce, { resolve, reject, timer });
192
+ try {
193
+ this._ws.send(JSON.stringify({ type: 'intent', frame }));
194
+ }
195
+ catch (err) {
196
+ clearTimeout(timer);
197
+ this._pendingResults.delete(frame.nonce);
198
+ reject(err);
199
+ }
200
+ });
201
+ }
202
+ async _sendViaHttp(frame) {
203
+ const baseUrl = this._directoryUrl.replace(/\/$/, '');
204
+ const res = await fetch(`${baseUrl}/intents/send`, {
205
+ method: 'POST',
206
+ headers: { 'Content-Type': 'application/json' },
207
+ body: JSON.stringify(frame)
208
+ });
209
+ if (!res.ok) {
210
+ throw new Error(`HTTP intent delivery failed: ${res.status} ${res.statusText}`);
211
+ }
212
+ return res.json();
213
+ }
214
+ on(intent, handler) {
215
+ this._intentHandlers.set(intent, handler);
216
+ return this;
217
+ }
218
+ thread(to, options) {
219
+ return new BeamThread(this, to, options);
220
+ }
221
+ async talk(to, message, options) {
222
+ if (!message || message.length === 0) {
223
+ throw new Error('Message must be non-empty');
224
+ }
225
+ if (message.length > 32768) {
226
+ throw new Error('Message exceeds maximum length of 32768 characters');
227
+ }
228
+ const payload = { message };
229
+ if (options?.context)
230
+ payload['context'] = options.context;
231
+ if (options?.language)
232
+ payload['language'] = options.language;
233
+ if (options?.threadId)
234
+ payload['threadId'] = options.threadId;
235
+ const result = await this.send(to, 'conversation.message', payload, options?.timeoutMs ?? 60_000);
236
+ return {
237
+ message: result.payload?.['message'] ?? '',
238
+ structured: result.payload?.['structured'],
239
+ threadId: result.payload?.['threadId'] ?? options?.threadId,
240
+ raw: result,
241
+ };
242
+ }
243
+ onTalk(handler) {
244
+ this.on('conversation.message', (frame, rawRespond) => {
245
+ const message = frame.payload?.['message'] ?? '';
246
+ const respond = (reply, structured) => {
247
+ rawRespond({
248
+ success: true,
249
+ payload: {
250
+ message: reply,
251
+ ...(structured ? { structured } : {}),
252
+ },
253
+ });
254
+ };
255
+ return handler(message, frame.from, respond, frame);
256
+ });
257
+ return this;
258
+ }
259
+ disconnect() {
260
+ if (this._ws) {
261
+ this._wsConnected = false;
262
+ for (const [nonce, pending] of this._pendingResults) {
263
+ clearTimeout(pending.timer);
264
+ pending.reject(new Error('Client disconnected'));
265
+ this._pendingResults.delete(nonce);
266
+ }
267
+ this._ws.close();
268
+ this._ws = null;
269
+ }
270
+ }
271
+ }
272
+ export class BeamThread {
273
+ threadId;
274
+ _client;
275
+ _to;
276
+ _language;
277
+ _timeoutMs;
278
+ constructor(client, to, options) {
279
+ this._client = client;
280
+ this._to = to;
281
+ this._language = options?.language;
282
+ this._timeoutMs = options?.timeoutMs ?? 60_000;
283
+ this.threadId = BeamIdentity.generateNonce();
284
+ }
285
+ async say(message, context) {
286
+ const result = await this._client.talk(this._to, message, {
287
+ threadId: this.threadId,
288
+ context,
289
+ language: this._language,
290
+ timeoutMs: this._timeoutMs,
291
+ });
292
+ return { message: result.message, structured: result.structured };
293
+ }
294
+ }
295
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/did.d.ts ADDED
@@ -0,0 +1,85 @@
1
+ import { BeamIdentity } from './identity.js';
2
+ export type ServiceEndpointValue = string | string[] | Record<string, unknown>;
3
+ export interface VerificationMethod {
4
+ id: string;
5
+ type: 'Ed25519VerificationKey2020';
6
+ controller: string;
7
+ publicKeyMultibase: string;
8
+ }
9
+ export interface ServiceEndpoint {
10
+ id: string;
11
+ type: string;
12
+ serviceEndpoint: ServiceEndpointValue;
13
+ }
14
+ export interface DIDDocument {
15
+ '@context': string[];
16
+ id: string;
17
+ alsoKnownAs?: string[];
18
+ verificationMethod: VerificationMethod[];
19
+ authentication: string[];
20
+ assertionMethod: string[];
21
+ capabilityInvocation: string[];
22
+ capabilityDelegation: string[];
23
+ service?: ServiceEndpoint[];
24
+ created?: string;
25
+ updated?: string;
26
+ deactivated?: boolean;
27
+ }
28
+ export interface CredentialSubject {
29
+ id: string;
30
+ email?: string;
31
+ domain?: string;
32
+ business?: Record<string, unknown>;
33
+ verified: boolean;
34
+ }
35
+ export interface Proof {
36
+ type: 'Ed25519Signature2020';
37
+ created: string;
38
+ proofPurpose: 'assertionMethod';
39
+ verificationMethod: string;
40
+ proofValue: string;
41
+ publicKeyMultibase: string;
42
+ }
43
+ export interface VerifiableCredential {
44
+ '@context': string[];
45
+ id: string;
46
+ type: string[];
47
+ issuer: string;
48
+ issuanceDate: string;
49
+ credentialSubject: CredentialSubject;
50
+ proof: Proof;
51
+ }
52
+ type BeamDIDConfig = {
53
+ baseUrl: string;
54
+ identity?: BeamIdentity;
55
+ };
56
+ type CreateOptions = {
57
+ beamId?: string;
58
+ publicKey?: string;
59
+ format?: 'personal' | 'org' | 'key';
60
+ createdAt?: string;
61
+ updatedAt?: string;
62
+ };
63
+ export declare class BeamDID {
64
+ private readonly baseUrl;
65
+ private readonly identity?;
66
+ constructor(config: BeamDIDConfig);
67
+ create(options?: CreateOptions): DIDDocument;
68
+ resolve(did: string): Promise<DIDDocument | null>;
69
+ update(document: DIDDocument, patch: Partial<DIDDocument>): DIDDocument;
70
+ deactivate(document: DIDDocument): DIDDocument;
71
+ }
72
+ export declare class CredentialVerifier {
73
+ static verify(vc: VerifiableCredential): boolean;
74
+ }
75
+ export declare class BeamCredentialsClient {
76
+ private readonly baseUrl;
77
+ constructor(baseUrl: string);
78
+ issueEmailVC(beamId: string, email: string): Promise<VerifiableCredential>;
79
+ issueDomainVC(beamId: string, domain: string): Promise<VerifiableCredential>;
80
+ issueBusinessVC(beamId: string, businessInfo: Record<string, unknown>): Promise<VerifiableCredential>;
81
+ verify(vc: VerifiableCredential): boolean;
82
+ private post;
83
+ }
84
+ export {};
85
+ //# sourceMappingURL=did.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"did.d.ts","sourceRoot":"","sources":["../src/did.ts"],"names":[],"mappings":"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"}