@semiotic-labs/agentium-sdk 0.5.2 → 0.7.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 +234 -56
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -4
- package/dist/index.js.map +1 -1
- package/dist/telemetry.d.ts +128 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +148 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/wasm-url.d.ts +17 -0
- package/dist/wasm-url.d.ts.map +1 -0
- package/dist/wasm-url.js +20 -0
- package/dist/wasm-url.js.map +1 -0
- package/dist/wasm.d.ts +0 -5
- package/dist/wasm.d.ts.map +1 -1
- package/dist/wasm.js +1 -12
- package/dist/wasm.js.map +1 -1
- package/package.json +7 -1
- package/packages/agentium-native/wasm/pkg/agentium_sdk_wasm.d.ts +3 -9
- package/packages/agentium-native/wasm/pkg/agentium_sdk_wasm.js +10 -78
- package/packages/agentium-native/wasm/pkg/agentium_sdk_wasm_bg.wasm +0 -0
- package/packages/agentium-native/wasm/pkg/agentium_sdk_wasm_bg.wasm.d.ts +2 -2
package/README.md
CHANGED
|
@@ -6,112 +6,290 @@ SPDX-License-Identifier: MIT
|
|
|
6
6
|
|
|
7
7
|
# @semiotic-labs/agentium-sdk
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
TypeScript SDK for interacting with the Agentium Network API. Supports identity connection, OAuth token management, and W3C Verifiable Credentials (VCs) with Ed25519 signatures.
|
|
10
10
|
|
|
11
11
|
## Installation
|
|
12
12
|
|
|
13
|
-
Install the package using npm:
|
|
14
|
-
|
|
15
13
|
```bash
|
|
16
14
|
npm install @semiotic-labs/agentium-sdk
|
|
17
15
|
```
|
|
18
16
|
|
|
19
|
-
##
|
|
17
|
+
## Quick Start
|
|
18
|
+
|
|
19
|
+
```typescript
|
|
20
|
+
import { AgentiumClient } from '@semiotic-labs/agentium-sdk';
|
|
20
21
|
|
|
21
|
-
|
|
22
|
+
const client = new AgentiumClient();
|
|
23
|
+
|
|
24
|
+
// Connect with Google identity
|
|
25
|
+
const response = await client.connectGoogleIdentity(googleJwtToken);
|
|
26
|
+
console.log('User DID:', response.did);
|
|
27
|
+
console.log('Access Token:', response.accessToken);
|
|
28
|
+
```
|
|
22
29
|
|
|
23
|
-
|
|
30
|
+
## API Reference
|
|
31
|
+
|
|
32
|
+
### Client Setup
|
|
24
33
|
|
|
25
34
|
```typescript
|
|
26
35
|
import { AgentiumClient } from '@semiotic-labs/agentium-sdk';
|
|
27
36
|
|
|
37
|
+
// Default: https://api.agentium.network
|
|
28
38
|
const client = new AgentiumClient();
|
|
29
39
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
40
|
+
// Custom endpoint (for local/staging)
|
|
41
|
+
const client = new AgentiumClient({ baseURL: 'http://localhost:8080' });
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Identity Connection
|
|
45
|
+
|
|
46
|
+
#### `connectGoogleIdentity(googleToken, options?)`
|
|
47
|
+
|
|
48
|
+
Connects a Google identity to an Agentium identity.
|
|
49
|
+
|
|
50
|
+
```typescript
|
|
51
|
+
// Standard Google Sign-In
|
|
52
|
+
const response = await client.connectGoogleIdentity(googleJwtToken);
|
|
53
|
+
|
|
54
|
+
// External OAuth (e.g., zkLogin) - skip audience validation
|
|
55
|
+
const response = await client.connectGoogleIdentity(googleJwtToken, {
|
|
56
|
+
skipAudienceValidation: true,
|
|
57
|
+
});
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
**Returns:** `ConnectIdentityResponse` with `did`, `accessToken`, `refreshToken`, `expiresIn`, `isNew`, `badge`
|
|
61
|
+
|
|
62
|
+
### Token Management
|
|
63
|
+
|
|
64
|
+
#### `exchangeApiKey(apiKey)`
|
|
65
|
+
|
|
66
|
+
Exchanges an API key for JWT tokens (M2M authentication).
|
|
67
|
+
|
|
68
|
+
```typescript
|
|
69
|
+
const tokens = await client.exchangeApiKey('ak_your_api_key');
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
#### `refreshToken(refreshTokenValue)`
|
|
73
|
+
|
|
74
|
+
Refreshes an access token using a refresh token.
|
|
75
|
+
|
|
76
|
+
```typescript
|
|
77
|
+
const newTokens = await client.refreshToken(currentRefreshToken);
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
#### `exchangePrivyToken(idToken)`
|
|
81
|
+
|
|
82
|
+
Exchanges a Privy ID token for JWT tokens.
|
|
83
|
+
|
|
84
|
+
```typescript
|
|
85
|
+
const tokens = await client.exchangePrivyToken(privyIdToken);
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Verifiable Credentials
|
|
89
|
+
|
|
90
|
+
The SDK supports W3C Verifiable Credentials issued as JWTs with Ed25519 signatures.
|
|
91
|
+
|
|
92
|
+
#### Storage Setup
|
|
93
|
+
|
|
94
|
+
```typescript
|
|
95
|
+
import { createBrowserStorage, createMemoryStorage } from '@semiotic-labs/agentium-sdk';
|
|
96
|
+
|
|
97
|
+
// Browser environment (uses localStorage)
|
|
98
|
+
client.setVcStorage(createBrowserStorage());
|
|
99
|
+
|
|
100
|
+
// Node.js or testing (in-memory)
|
|
101
|
+
client.setVcStorage(createMemoryStorage());
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
#### `fetchMembershipCredential(token)`
|
|
105
|
+
|
|
106
|
+
Fetches a membership credential from the backend.
|
|
107
|
+
|
|
108
|
+
```typescript
|
|
109
|
+
const vcJwt = await client.fetchMembershipCredential(authToken);
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
#### `verifyCredential(jwt)`
|
|
113
|
+
|
|
114
|
+
Verifies a JWT-VC against the issuer's public key.
|
|
115
|
+
|
|
116
|
+
```typescript
|
|
117
|
+
const result = await client.verifyCredential(vcJwt);
|
|
118
|
+
|
|
119
|
+
if (result.valid) {
|
|
120
|
+
console.log('Subject DID:', result.claims?.sub);
|
|
121
|
+
} else {
|
|
122
|
+
console.error('Error:', result.error?.code, result.error?.message);
|
|
38
123
|
}
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
#### `connectAndStoreMembership(token)`
|
|
39
127
|
|
|
40
|
-
|
|
128
|
+
Full flow: fetch, verify, and store a membership credential.
|
|
129
|
+
|
|
130
|
+
```typescript
|
|
131
|
+
const result = await client.connectAndStoreMembership(authToken);
|
|
41
132
|
```
|
|
42
133
|
|
|
43
|
-
|
|
134
|
+
#### `getStoredCredential()`
|
|
44
135
|
|
|
45
|
-
|
|
136
|
+
Retrieves the stored VC JWT from storage.
|
|
46
137
|
|
|
47
138
|
```typescript
|
|
48
|
-
|
|
139
|
+
const storedVc = client.getStoredCredential();
|
|
140
|
+
```
|
|
49
141
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
});
|
|
142
|
+
### WASM Utilities
|
|
143
|
+
|
|
144
|
+
Low-level cryptographic operations for Ed25519.
|
|
54
145
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
146
|
+
```typescript
|
|
147
|
+
import {
|
|
148
|
+
ensureWasmReady,
|
|
149
|
+
verifyJwt,
|
|
150
|
+
generateKeypair,
|
|
151
|
+
getPublicKey,
|
|
152
|
+
} from '@semiotic-labs/agentium-sdk';
|
|
153
|
+
|
|
154
|
+
// For bundlers like Vite, provide WASM URL explicitly
|
|
155
|
+
import wasmUrl from '@semiotic-labs/agentium-sdk/wasm?url';
|
|
156
|
+
await ensureWasmReady(wasmUrl);
|
|
157
|
+
|
|
158
|
+
// Generate key pair
|
|
159
|
+
const { privateKey, publicKey } = await generateKeypair();
|
|
160
|
+
|
|
161
|
+
// Verify JWT directly
|
|
162
|
+
const result = await verifyJwt(jwtString, publicKeyJwk);
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### Error Handling
|
|
166
|
+
|
|
167
|
+
All API methods throw `AgentiumApiError` on failure:
|
|
168
|
+
|
|
169
|
+
```typescript
|
|
170
|
+
import { AgentiumApiError } from '@semiotic-labs/agentium-sdk';
|
|
171
|
+
|
|
172
|
+
try {
|
|
173
|
+
await client.connectGoogleIdentity(token);
|
|
174
|
+
} catch (error) {
|
|
175
|
+
if (error instanceof AgentiumApiError) {
|
|
176
|
+
console.error(`API Error (${error.statusCode}): ${error.message}`);
|
|
62
177
|
}
|
|
63
178
|
}
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
### Telemetry
|
|
182
|
+
|
|
183
|
+
The SDK provides a flexible telemetry system that forwards tracing events from the WASM layer to JavaScript. Consumers can define custom sinks to handle events (logging, analytics, monitoring services, etc.).
|
|
184
|
+
|
|
185
|
+
> **Note:** The WASM layer currently emits events only — spans are not yet supported.
|
|
186
|
+
|
|
187
|
+
#### Initialization
|
|
64
188
|
|
|
65
|
-
|
|
189
|
+
Telemetry must be initialized after WASM is ready and can only be called once. If not initialized, no telemetry is emitted (silent by default).
|
|
190
|
+
|
|
191
|
+
```typescript
|
|
192
|
+
import { ensureWasmReady, initTelemetry, consoleSink } from '@semiotic-labs/agentium-sdk';
|
|
193
|
+
|
|
194
|
+
await ensureWasmReady();
|
|
195
|
+
initTelemetry({ sink: consoleSink });
|
|
66
196
|
```
|
|
67
197
|
|
|
68
|
-
|
|
198
|
+
#### Built-in Sinks
|
|
69
199
|
|
|
70
|
-
|
|
200
|
+
- **`consoleSink`** — Logs events to the browser/Node console using the appropriate method (`console.error`, `console.warn`, etc.)
|
|
201
|
+
- **`nullSink`** — Discards all events (useful for explicitly disabling telemetry)
|
|
71
202
|
|
|
72
|
-
|
|
73
|
-
2. Install dependencies:
|
|
74
|
-
```bash
|
|
75
|
-
npm install
|
|
76
|
-
```
|
|
203
|
+
#### Filtering Events
|
|
77
204
|
|
|
78
|
-
|
|
205
|
+
Filter events by level or target module:
|
|
206
|
+
|
|
207
|
+
```typescript
|
|
208
|
+
import { withLevelFilter, withTargetFilter, consoleSink } from '@semiotic-labs/agentium-sdk';
|
|
79
209
|
|
|
80
|
-
|
|
210
|
+
// Only log errors and warnings
|
|
211
|
+
const errorSink = withLevelFilter(['error', 'warn'], consoleSink);
|
|
81
212
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
```
|
|
213
|
+
// Only log events from agentium modules
|
|
214
|
+
const agentiumSink = withTargetFilter(['agentium_sdk'], consoleSink);
|
|
215
|
+
```
|
|
86
216
|
|
|
87
|
-
|
|
217
|
+
#### Composing Sinks
|
|
88
218
|
|
|
89
|
-
|
|
219
|
+
Combine multiple sinks to forward events to different destinations:
|
|
90
220
|
|
|
91
|
-
```
|
|
92
|
-
|
|
221
|
+
```typescript
|
|
222
|
+
import { composeSinks, withLevelFilter, consoleSink, initTelemetry } from '@semiotic-labs/agentium-sdk';
|
|
223
|
+
|
|
224
|
+
const myAnalyticsSink = (event) => {
|
|
225
|
+
// Send to your analytics service
|
|
226
|
+
analytics.track('sdk_event', event);
|
|
227
|
+
};
|
|
228
|
+
|
|
229
|
+
initTelemetry({
|
|
230
|
+
sink: composeSinks(
|
|
231
|
+
withLevelFilter(['error', 'warn', 'info'], consoleSink),
|
|
232
|
+
myAnalyticsSink
|
|
233
|
+
),
|
|
234
|
+
filter: 'agentium_sdk=debug' // tracing-subscriber EnvFilter syntax
|
|
235
|
+
});
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
#### Event Structure
|
|
239
|
+
|
|
240
|
+
Events passed to sinks have the following shape:
|
|
241
|
+
|
|
242
|
+
```typescript
|
|
243
|
+
interface TelemetryEvent {
|
|
244
|
+
kind: 'event'; // Event type (currently always "event")
|
|
245
|
+
level: 'error' | 'warn' | 'info' | 'debug' | 'trace';
|
|
246
|
+
target: string; // Module path (e.g., "agentium_sdk_wasm::vc")
|
|
247
|
+
name?: string; // Event name
|
|
248
|
+
fields: Record<string, unknown>; // Structured fields from the event
|
|
249
|
+
ts_ms: number; // Timestamp in milliseconds
|
|
250
|
+
}
|
|
93
251
|
```
|
|
94
252
|
|
|
95
|
-
|
|
253
|
+
## API Documentation
|
|
96
254
|
|
|
97
|
-
|
|
255
|
+
Generate full API documentation from source:
|
|
98
256
|
|
|
99
257
|
```bash
|
|
100
|
-
npm run
|
|
258
|
+
npm run docs
|
|
101
259
|
```
|
|
102
260
|
|
|
103
|
-
|
|
261
|
+
Documentation is output to the `docs/` folder.
|
|
262
|
+
|
|
263
|
+
## Development
|
|
264
|
+
|
|
265
|
+
### Setup
|
|
104
266
|
|
|
105
|
-
|
|
267
|
+
```bash
|
|
268
|
+
git clone https://github.com/semiotic-agentium/agentium-sdk.git
|
|
269
|
+
cd agentium-sdk
|
|
270
|
+
npm install
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
### Scripts
|
|
106
274
|
|
|
107
275
|
```bash
|
|
108
|
-
npm test
|
|
276
|
+
npm test # Run tests
|
|
277
|
+
npm run build # Build (WASM + TypeScript)
|
|
278
|
+
npm run docs # Generate API docs
|
|
279
|
+
npm run lint # Lint code
|
|
280
|
+
npm run check # Lint + format check
|
|
109
281
|
```
|
|
110
282
|
|
|
111
|
-
###
|
|
283
|
+
### REUSE Compliance
|
|
112
284
|
|
|
113
|
-
|
|
285
|
+
This project follows the [REUSE Specification](https://reuse.software/spec/).
|
|
114
286
|
|
|
115
287
|
```bash
|
|
116
|
-
|
|
288
|
+
pip install reuse # Install REUSE tool
|
|
289
|
+
npm run reuse:check # Verify compliance
|
|
290
|
+
npm run reuse:write # Apply SPDX headers
|
|
117
291
|
```
|
|
292
|
+
|
|
293
|
+
## License
|
|
294
|
+
|
|
295
|
+
MIT
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { VcStorage, VerificationResult, DidDocument, JwtHeader } from './vc/index.js';
|
|
2
2
|
export * from './vc/index.js';
|
|
3
|
-
export { ensureWasmReady,
|
|
3
|
+
export { ensureWasmReady, verifyJwt, generateKeypair, getPublicKey } from './wasm.js';
|
|
4
|
+
export { initTelemetry, consoleSink, nullSink, withLevelFilter, withTargetFilter, composeSinks, type TelemetryEvent, type TelemetryLevel, type TelemetrySink, type InitTelemetryOptions, } from './telemetry.js';
|
|
4
5
|
/**
|
|
5
6
|
* Options for configuring the AgentiumClient.
|
|
6
7
|
*/
|
|
@@ -205,9 +206,9 @@ export declare class AgentiumClient {
|
|
|
205
206
|
*
|
|
206
207
|
* Per spec: errors are logged but user sees no change (silent failure).
|
|
207
208
|
*
|
|
208
|
-
* @param
|
|
209
|
+
* @param token - Server auth token for authorization
|
|
209
210
|
* @returns Verification result (always returns, never throws)
|
|
210
211
|
*/
|
|
211
|
-
connectAndStoreMembership(
|
|
212
|
+
connectAndStoreMembership(token: string): Promise<VerificationResult>;
|
|
212
213
|
}
|
|
213
214
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG3F,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -5,7 +5,9 @@ import axios, { isAxiosError } from 'axios';
|
|
|
5
5
|
import { verifyJwt } from './wasm.js';
|
|
6
6
|
// Re-export VC module types and utilities
|
|
7
7
|
export * from './vc/index.js';
|
|
8
|
-
export { ensureWasmReady,
|
|
8
|
+
export { ensureWasmReady, verifyJwt, generateKeypair, getPublicKey } from './wasm.js';
|
|
9
|
+
// Re-export telemetry module
|
|
10
|
+
export { initTelemetry, consoleSink, nullSink, withLevelFilter, withTargetFilter, composeSinks, } from './telemetry.js';
|
|
9
11
|
/**
|
|
10
12
|
* Custom error class for API-related errors from the AgentiumClient.
|
|
11
13
|
*/
|
|
@@ -290,12 +292,12 @@ export class AgentiumClient {
|
|
|
290
292
|
*
|
|
291
293
|
* Per spec: errors are logged but user sees no change (silent failure).
|
|
292
294
|
*
|
|
293
|
-
* @param
|
|
295
|
+
* @param token - Server auth token for authorization
|
|
294
296
|
* @returns Verification result (always returns, never throws)
|
|
295
297
|
*/
|
|
296
|
-
async connectAndStoreMembership(
|
|
298
|
+
async connectAndStoreMembership(token) {
|
|
297
299
|
try {
|
|
298
|
-
const jwt = await this.fetchMembershipCredential(
|
|
300
|
+
const jwt = await this.fetchMembershipCredential(token);
|
|
299
301
|
const result = await this.verifyCredential(jwt);
|
|
300
302
|
if (result.valid && this.vcStorage) {
|
|
301
303
|
this.vcStorage.set(jwt);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,EAAE;AACF,+BAA+B;AAE/B,OAAO,KAAK,EAAE,EAAE,YAAY,EAAsB,MAAM,OAAO,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,0CAA0C;AAC1C,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Log levels emitted by the WASM telemetry layer.
|
|
3
|
+
*/
|
|
4
|
+
export type TelemetryLevel = 'error' | 'warn' | 'info' | 'debug' | 'trace';
|
|
5
|
+
/**
|
|
6
|
+
* Telemetry event structure as serialized from Rust.
|
|
7
|
+
* This is the shape of events passed to sink callbacks.
|
|
8
|
+
*/
|
|
9
|
+
export interface TelemetryEvent {
|
|
10
|
+
/** Event kind (currently always "event") */
|
|
11
|
+
kind: 'event';
|
|
12
|
+
/** Log level */
|
|
13
|
+
level: TelemetryLevel;
|
|
14
|
+
/** Module/crate target (e.g., "agentium_sdk_wasm::vc") */
|
|
15
|
+
target: string;
|
|
16
|
+
/** Event name (from tracing span/event) */
|
|
17
|
+
name?: string;
|
|
18
|
+
/** Structured fields from the tracing event */
|
|
19
|
+
fields: Record<string, unknown>;
|
|
20
|
+
/** Timestamp in milliseconds (from JS Date.now()) */
|
|
21
|
+
ts_ms: number;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* A sink receives telemetry events and handles them (log, send to service, etc.).
|
|
25
|
+
*/
|
|
26
|
+
export type TelemetrySink = (event: TelemetryEvent) => void;
|
|
27
|
+
/**
|
|
28
|
+
* Console sink that logs events to the browser/Node console.
|
|
29
|
+
* Uses appropriate console method based on level (console.error, console.warn, etc.).
|
|
30
|
+
*/
|
|
31
|
+
export declare const consoleSink: TelemetrySink;
|
|
32
|
+
/**
|
|
33
|
+
* No-op sink that discards all events.
|
|
34
|
+
* Useful for explicitly disabling telemetry output.
|
|
35
|
+
*/
|
|
36
|
+
export declare const nullSink: TelemetrySink;
|
|
37
|
+
/**
|
|
38
|
+
* Wraps a sink with a level filter.
|
|
39
|
+
* Only events matching one of the specified levels are forwarded.
|
|
40
|
+
*
|
|
41
|
+
* @param levels - Array of levels to allow through
|
|
42
|
+
* @param sink - The sink to forward matching events to
|
|
43
|
+
* @returns Filtered sink
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```ts
|
|
47
|
+
* // Only log errors and warnings to console
|
|
48
|
+
* const errorSink = withLevelFilter(['error', 'warn'], consoleSink);
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export declare function withLevelFilter(levels: TelemetryLevel[], sink: TelemetrySink): TelemetrySink;
|
|
52
|
+
/**
|
|
53
|
+
* Wraps a sink with a target filter.
|
|
54
|
+
* Only events whose target starts with one of the specified prefixes are forwarded.
|
|
55
|
+
*
|
|
56
|
+
* @param prefixes - Array of target prefixes to allow
|
|
57
|
+
* @param sink - The sink to forward matching events to
|
|
58
|
+
* @returns Filtered sink
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```ts
|
|
62
|
+
* // Only log events from agentium modules
|
|
63
|
+
* const agentiumSink = withTargetFilter(['agentium_sdk'], consoleSink);
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
export declare function withTargetFilter(prefixes: string[], sink: TelemetrySink): TelemetrySink;
|
|
67
|
+
/**
|
|
68
|
+
* Composes multiple sinks into a single sink.
|
|
69
|
+
* Each event is forwarded to all sinks in order.
|
|
70
|
+
*
|
|
71
|
+
* @param sinks - Array of sinks to compose
|
|
72
|
+
* @returns Combined sink
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* ```ts
|
|
76
|
+
* const sink = composeSinks(
|
|
77
|
+
* withLevelFilter(['error', 'warn', 'info'], consoleSink),
|
|
78
|
+
* myPrometheusSink,
|
|
79
|
+
* myAnalyticsSink
|
|
80
|
+
* );
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
export declare function composeSinks(...sinks: TelemetrySink[]): TelemetrySink;
|
|
84
|
+
/**
|
|
85
|
+
* Options for initializing telemetry.
|
|
86
|
+
*/
|
|
87
|
+
export interface InitTelemetryOptions {
|
|
88
|
+
/**
|
|
89
|
+
* The sink to receive telemetry events.
|
|
90
|
+
* Use composeSinks() to combine multiple sinks.
|
|
91
|
+
*/
|
|
92
|
+
sink: TelemetrySink;
|
|
93
|
+
/**
|
|
94
|
+
* Tracing filter directive (e.g., "info", "debug", "agentium_sdk=trace").
|
|
95
|
+
* Uses tracing-subscriber's EnvFilter syntax.
|
|
96
|
+
* @default "info"
|
|
97
|
+
*/
|
|
98
|
+
filter?: string;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Initializes WASM telemetry with the provided sink.
|
|
102
|
+
*
|
|
103
|
+
* This must be called after ensureWasmReady() and can only be called once.
|
|
104
|
+
* If not called, no telemetry is emitted (silent by default).
|
|
105
|
+
*
|
|
106
|
+
* @param options - Telemetry configuration
|
|
107
|
+
*
|
|
108
|
+
* @example
|
|
109
|
+
* ```ts
|
|
110
|
+
* import { ensureWasmReady, initTelemetry, consoleSink, withLevelFilter, composeSinks } from 'agentium-sdk';
|
|
111
|
+
*
|
|
112
|
+
* await ensureWasmReady();
|
|
113
|
+
*
|
|
114
|
+
* // Simple: log everything to console
|
|
115
|
+
* initTelemetry({ sink: consoleSink });
|
|
116
|
+
*
|
|
117
|
+
* // Advanced: filter and compose
|
|
118
|
+
* initTelemetry({
|
|
119
|
+
* sink: composeSinks(
|
|
120
|
+
* withLevelFilter(['error', 'warn', 'info'], consoleSink),
|
|
121
|
+
* myCustomSink
|
|
122
|
+
* ),
|
|
123
|
+
* filter: 'agentium_sdk=debug'
|
|
124
|
+
* });
|
|
125
|
+
* ```
|
|
126
|
+
*/
|
|
127
|
+
export declare function initTelemetry(options: InitTelemetryOptions): Promise<void>;
|
|
128
|
+
//# sourceMappingURL=telemetry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAE3E;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,4CAA4C;IAC5C,IAAI,EAAE,OAAO,CAAC;IACd,gBAAgB;IAChB,KAAK,EAAE,cAAc,CAAC;IACtB,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;AAM5D;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,aAgBzB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,aAEtB,CAAC;AAMF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,aAAa,GAAG,aAAa,CAO5F;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,aAAa,GAAG,aAAa,CAMvF;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAAC,GAAG,KAAK,EAAE,aAAa,EAAE,GAAG,aAAa,CAMrE;AAQD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,IAAI,EAAE,aAAa,CAAC;IAEpB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBhF"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
// SPDX-FileCopyrightText: 2025 Semiotic AI, Inc.
|
|
2
|
+
//
|
|
3
|
+
// SPDX-License-Identifier: MIT
|
|
4
|
+
import { init_tracing as wasmInitTracing } from '../packages/agentium-native/wasm/pkg/agentium_sdk_wasm.js';
|
|
5
|
+
import { ensureWasmReady } from './wasm.js';
|
|
6
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
7
|
+
// Built-in Sinks
|
|
8
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
9
|
+
/**
|
|
10
|
+
* Console sink that logs events to the browser/Node console.
|
|
11
|
+
* Uses appropriate console method based on level (console.error, console.warn, etc.).
|
|
12
|
+
*/
|
|
13
|
+
export const consoleSink = (event) => {
|
|
14
|
+
const method = event.level === 'trace' ? 'debug' : event.level;
|
|
15
|
+
const consoleFn = console[method] ?? console.log;
|
|
16
|
+
const prefix = `[${event.target}]`;
|
|
17
|
+
// Format message from fields if present
|
|
18
|
+
const message = event.fields['message'] ?? event.name ?? '';
|
|
19
|
+
const otherFields = Object.fromEntries(Object.entries(event.fields).filter(([k]) => k !== 'message'));
|
|
20
|
+
if (Object.keys(otherFields).length > 0) {
|
|
21
|
+
consoleFn(prefix, message, otherFields);
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
consoleFn(prefix, message);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* No-op sink that discards all events.
|
|
29
|
+
* Useful for explicitly disabling telemetry output.
|
|
30
|
+
*/
|
|
31
|
+
export const nullSink = () => {
|
|
32
|
+
// Intentionally empty
|
|
33
|
+
};
|
|
34
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
35
|
+
// Composable Utilities
|
|
36
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
37
|
+
/**
|
|
38
|
+
* Wraps a sink with a level filter.
|
|
39
|
+
* Only events matching one of the specified levels are forwarded.
|
|
40
|
+
*
|
|
41
|
+
* @param levels - Array of levels to allow through
|
|
42
|
+
* @param sink - The sink to forward matching events to
|
|
43
|
+
* @returns Filtered sink
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```ts
|
|
47
|
+
* // Only log errors and warnings to console
|
|
48
|
+
* const errorSink = withLevelFilter(['error', 'warn'], consoleSink);
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export function withLevelFilter(levels, sink) {
|
|
52
|
+
const levelSet = new Set(levels);
|
|
53
|
+
return (event) => {
|
|
54
|
+
if (levelSet.has(event.level)) {
|
|
55
|
+
sink(event);
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Wraps a sink with a target filter.
|
|
61
|
+
* Only events whose target starts with one of the specified prefixes are forwarded.
|
|
62
|
+
*
|
|
63
|
+
* @param prefixes - Array of target prefixes to allow
|
|
64
|
+
* @param sink - The sink to forward matching events to
|
|
65
|
+
* @returns Filtered sink
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```ts
|
|
69
|
+
* // Only log events from agentium modules
|
|
70
|
+
* const agentiumSink = withTargetFilter(['agentium_sdk'], consoleSink);
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
export function withTargetFilter(prefixes, sink) {
|
|
74
|
+
return (event) => {
|
|
75
|
+
if (prefixes.some((prefix) => event.target.startsWith(prefix))) {
|
|
76
|
+
sink(event);
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Composes multiple sinks into a single sink.
|
|
82
|
+
* Each event is forwarded to all sinks in order.
|
|
83
|
+
*
|
|
84
|
+
* @param sinks - Array of sinks to compose
|
|
85
|
+
* @returns Combined sink
|
|
86
|
+
*
|
|
87
|
+
* @example
|
|
88
|
+
* ```ts
|
|
89
|
+
* const sink = composeSinks(
|
|
90
|
+
* withLevelFilter(['error', 'warn', 'info'], consoleSink),
|
|
91
|
+
* myPrometheusSink,
|
|
92
|
+
* myAnalyticsSink
|
|
93
|
+
* );
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
96
|
+
export function composeSinks(...sinks) {
|
|
97
|
+
return (event) => {
|
|
98
|
+
for (const sink of sinks) {
|
|
99
|
+
sink(event);
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
104
|
+
// Initialization
|
|
105
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
106
|
+
let telemetryInitialized = false;
|
|
107
|
+
/**
|
|
108
|
+
* Initializes WASM telemetry with the provided sink.
|
|
109
|
+
*
|
|
110
|
+
* This must be called after ensureWasmReady() and can only be called once.
|
|
111
|
+
* If not called, no telemetry is emitted (silent by default).
|
|
112
|
+
*
|
|
113
|
+
* @param options - Telemetry configuration
|
|
114
|
+
*
|
|
115
|
+
* @example
|
|
116
|
+
* ```ts
|
|
117
|
+
* import { ensureWasmReady, initTelemetry, consoleSink, withLevelFilter, composeSinks } from 'agentium-sdk';
|
|
118
|
+
*
|
|
119
|
+
* await ensureWasmReady();
|
|
120
|
+
*
|
|
121
|
+
* // Simple: log everything to console
|
|
122
|
+
* initTelemetry({ sink: consoleSink });
|
|
123
|
+
*
|
|
124
|
+
* // Advanced: filter and compose
|
|
125
|
+
* initTelemetry({
|
|
126
|
+
* sink: composeSinks(
|
|
127
|
+
* withLevelFilter(['error', 'warn', 'info'], consoleSink),
|
|
128
|
+
* myCustomSink
|
|
129
|
+
* ),
|
|
130
|
+
* filter: 'agentium_sdk=debug'
|
|
131
|
+
* });
|
|
132
|
+
* ```
|
|
133
|
+
*/
|
|
134
|
+
export async function initTelemetry(options) {
|
|
135
|
+
if (telemetryInitialized) {
|
|
136
|
+
console.warn('[Agentium] Telemetry already initialized, ignoring subsequent call');
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
await ensureWasmReady();
|
|
140
|
+
// Wrap the sink to handle the raw JsValue from WASM
|
|
141
|
+
const wrappedSink = (rawEvent) => {
|
|
142
|
+
// The event comes as a plain object from serde_wasm_bindgen
|
|
143
|
+
options.sink(rawEvent);
|
|
144
|
+
};
|
|
145
|
+
wasmInitTracing(wrappedSink, options.filter ?? null);
|
|
146
|
+
telemetryInitialized = true;
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=telemetry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pre-configured WASM URL for the agentium SDK.
|
|
3
|
+
*
|
|
4
|
+
* This resolves to the WASM binary file location relative to this module.
|
|
5
|
+
* Useful when you want the SDK to handle path resolution instead of manually
|
|
6
|
+
* importing the WASM file.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* import { ensureWasmReady } from '@semiotic-labs/agentium-sdk'
|
|
11
|
+
* import { wasmUrl } from '@semiotic-labs/agentium-sdk/wasm-url'
|
|
12
|
+
*
|
|
13
|
+
* await ensureWasmReady(wasmUrl)
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export declare const wasmUrl: string;
|
|
17
|
+
//# sourceMappingURL=wasm-url.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wasm-url.d.ts","sourceRoot":"","sources":["../src/wasm-url.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,OAAO,QAGd,CAAC"}
|
package/dist/wasm-url.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// SPDX-FileCopyrightText: 2025 Semiotic AI, Inc.
|
|
2
|
+
//
|
|
3
|
+
// SPDX-License-Identifier: MIT
|
|
4
|
+
/**
|
|
5
|
+
* Pre-configured WASM URL for the agentium SDK.
|
|
6
|
+
*
|
|
7
|
+
* This resolves to the WASM binary file location relative to this module.
|
|
8
|
+
* Useful when you want the SDK to handle path resolution instead of manually
|
|
9
|
+
* importing the WASM file.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* import { ensureWasmReady } from '@semiotic-labs/agentium-sdk'
|
|
14
|
+
* import { wasmUrl } from '@semiotic-labs/agentium-sdk/wasm-url'
|
|
15
|
+
*
|
|
16
|
+
* await ensureWasmReady(wasmUrl)
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export const wasmUrl = new URL('../packages/agentium-native/wasm/pkg/agentium_sdk_wasm_bg.wasm', import.meta.url).href;
|
|
20
|
+
//# sourceMappingURL=wasm-url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wasm-url.js","sourceRoot":"","sources":["../src/wasm-url.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,EAAE;AACF,+BAA+B;AAE/B;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,GAAG,CAC5B,gEAAgE,EAChE,MAAM,CAAC,IAAI,CAAC,GAAG,CAChB,CAAC,IAAI,CAAC"}
|
package/dist/wasm.d.ts
CHANGED
|
@@ -14,11 +14,6 @@ import type { VerificationResult, KeyPair } from './vc/types.js';
|
|
|
14
14
|
* @returns Promise that resolves when WASM is ready
|
|
15
15
|
*/
|
|
16
16
|
export declare function ensureWasmReady(wasmUrl?: InitInput): Promise<void>;
|
|
17
|
-
/**
|
|
18
|
-
* Initialize WASM logging to browser console.
|
|
19
|
-
* Call once after ensureWasmReady() to enable debug output.
|
|
20
|
-
*/
|
|
21
|
-
export declare function initLogging(): void;
|
|
22
17
|
/**
|
|
23
18
|
* Verify a JWT-VC against a public key.
|
|
24
19
|
*
|
package/dist/wasm.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wasm.d.ts","sourceRoot":"","sources":["../src/wasm.ts"],"names":[],"mappings":"AAIA,OAAa,
|
|
1
|
+
{"version":3,"file":"wasm.d.ts","sourceRoot":"","sources":["../src/wasm.ts"],"names":[],"mappings":"AAIA,OAAa,EAIX,KAAK,SAAS,EACf,MAAM,2DAA2D,CAAC;AACnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAIjE;;;;;;;;;;;;GAYG;AACH,wBAAsB,eAAe,CAAC,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAOxE;AAED;;;;;;;;;GASG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAG9F;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAGxD;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGzE"}
|
package/dist/wasm.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
// SPDX-FileCopyrightText: 2025 Semiotic AI, Inc.
|
|
2
2
|
//
|
|
3
3
|
// SPDX-License-Identifier: MIT
|
|
4
|
-
import init, { verify_jwt as wasmVerifyJwt, generate_keypair as wasmGenerateKeypair, get_public_key as wasmGetPublicKey,
|
|
4
|
+
import init, { verify_jwt as wasmVerifyJwt, generate_keypair as wasmGenerateKeypair, get_public_key as wasmGetPublicKey, } from '../packages/agentium-native/wasm/pkg/agentium_sdk_wasm.js';
|
|
5
5
|
let wasmInitialized = null;
|
|
6
|
-
let loggingInitialized = false;
|
|
7
6
|
/**
|
|
8
7
|
* Ensures the WASM module is loaded and ready.
|
|
9
8
|
* Uses lazy initialization - only loads on first call.
|
|
@@ -25,16 +24,6 @@ export async function ensureWasmReady(wasmUrl) {
|
|
|
25
24
|
}
|
|
26
25
|
await wasmInitialized;
|
|
27
26
|
}
|
|
28
|
-
/**
|
|
29
|
-
* Initialize WASM logging to browser console.
|
|
30
|
-
* Call once after ensureWasmReady() to enable debug output.
|
|
31
|
-
*/
|
|
32
|
-
export function initLogging() {
|
|
33
|
-
if (!loggingInitialized) {
|
|
34
|
-
wasmInitLogging();
|
|
35
|
-
loggingInitialized = true;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
27
|
/**
|
|
39
28
|
* Verify a JWT-VC against a public key.
|
|
40
29
|
*
|
package/dist/wasm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wasm.js","sourceRoot":"","sources":["../src/wasm.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,EAAE;AACF,+BAA+B;AAE/B,OAAO,IAAI,EAAE,EACX,UAAU,IAAI,aAAa,EAC3B,gBAAgB,IAAI,mBAAmB,EACvC,cAAc,IAAI,gBAAgB,
|
|
1
|
+
{"version":3,"file":"wasm.js","sourceRoot":"","sources":["../src/wasm.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,EAAE;AACF,+BAA+B;AAE/B,OAAO,IAAI,EAAE,EACX,UAAU,IAAI,aAAa,EAC3B,gBAAgB,IAAI,mBAAmB,EACvC,cAAc,IAAI,gBAAgB,GAEnC,MAAM,2DAA2D,CAAC;AAGnE,IAAI,eAAe,GAAyB,IAAI,CAAC;AAEjD;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAmB;IACvD,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;QAC7B,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;YACxC,6BAA6B;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC;IACD,MAAM,eAAe,CAAC;AACxB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAW,EAAE,YAAoB;IAC/D,MAAM,eAAe,EAAE,CAAC;IACxB,OAAO,aAAa,CAAC,GAAG,EAAE,YAAY,CAAuB,CAAC;AAChE,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,MAAM,eAAe,EAAE,CAAC;IACxB,OAAO,mBAAmB,EAAa,CAAC;AAC1C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,aAAqB;IACtD,MAAM,eAAe,EAAE,CAAC;IACxB,OAAO,gBAAgB,CAAC,aAAa,CAAC,CAAC;AACzC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@semiotic-labs/agentium-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -29,8 +29,14 @@
|
|
|
29
29
|
"author": "",
|
|
30
30
|
"exports": {
|
|
31
31
|
".": {
|
|
32
|
+
"types": "./dist/index.d.ts",
|
|
32
33
|
"import": "./dist/index.js",
|
|
33
34
|
"require": "./dist/index.js"
|
|
35
|
+
},
|
|
36
|
+
"./wasm": "./packages/agentium-native/wasm/pkg/agentium_sdk_wasm_bg.wasm",
|
|
37
|
+
"./wasm-url": {
|
|
38
|
+
"types": "./dist/wasm-url.d.ts",
|
|
39
|
+
"import": "./dist/wasm-url.js"
|
|
34
40
|
}
|
|
35
41
|
},
|
|
36
42
|
"license": "MIT",
|
|
@@ -20,13 +20,7 @@ export function generate_keypair(): any;
|
|
|
20
20
|
*/
|
|
21
21
|
export function get_public_key(private_key_jwk: string): string;
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
* Initialize logging for the WASM module.
|
|
25
|
-
*
|
|
26
|
-
* This sets up `tracing` to output to the browser console via `tracing-wasm`.
|
|
27
|
-
* Call this once before using any other functions from this library.
|
|
28
|
-
*/
|
|
29
|
-
export function init_logging(): void;
|
|
23
|
+
export function init_tracing(sink: Function, filter?: string | null): void;
|
|
30
24
|
|
|
31
25
|
/**
|
|
32
26
|
* Verify a JWT against a public key
|
|
@@ -47,15 +41,15 @@ export interface InitOutput {
|
|
|
47
41
|
readonly memory: WebAssembly.Memory;
|
|
48
42
|
readonly generate_keypair: () => [number, number, number];
|
|
49
43
|
readonly get_public_key: (a: number, b: number) => [number, number, number, number];
|
|
50
|
-
readonly init_logging: () => void;
|
|
51
44
|
readonly verify_jwt: (a: number, b: number, c: number, d: number) => [number, number, number];
|
|
45
|
+
readonly init_tracing: (a: any, b: number, c: number) => void;
|
|
52
46
|
readonly __wbindgen_exn_store: (a: number) => void;
|
|
53
47
|
readonly __externref_table_alloc: () => number;
|
|
54
48
|
readonly __wbindgen_externrefs: WebAssembly.Table;
|
|
55
|
-
readonly __wbindgen_free: (a: number, b: number, c: number) => void;
|
|
56
49
|
readonly __wbindgen_malloc: (a: number, b: number) => number;
|
|
57
50
|
readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
|
|
58
51
|
readonly __externref_table_dealloc: (a: number) => void;
|
|
52
|
+
readonly __wbindgen_free: (a: number, b: number, c: number) => void;
|
|
59
53
|
readonly __wbindgen_start: () => void;
|
|
60
54
|
}
|
|
61
55
|
|
|
@@ -11,14 +11,6 @@ function getArrayU8FromWasm0(ptr, len) {
|
|
|
11
11
|
return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
let cachedDataViewMemory0 = null;
|
|
15
|
-
function getDataViewMemory0() {
|
|
16
|
-
if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {
|
|
17
|
-
cachedDataViewMemory0 = new DataView(wasm.memory.buffer);
|
|
18
|
-
}
|
|
19
|
-
return cachedDataViewMemory0;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
14
|
function getStringFromWasm0(ptr, len) {
|
|
23
15
|
ptr = ptr >>> 0;
|
|
24
16
|
return decodeText(ptr, len);
|
|
@@ -165,13 +157,13 @@ export function get_public_key(private_key_jwk) {
|
|
|
165
157
|
}
|
|
166
158
|
|
|
167
159
|
/**
|
|
168
|
-
*
|
|
169
|
-
*
|
|
170
|
-
* This sets up `tracing` to output to the browser console via `tracing-wasm`.
|
|
171
|
-
* Call this once before using any other functions from this library.
|
|
160
|
+
* @param {Function} sink
|
|
161
|
+
* @param {string | null} [filter]
|
|
172
162
|
*/
|
|
173
|
-
export function
|
|
174
|
-
wasm.
|
|
163
|
+
export function init_tracing(sink, filter) {
|
|
164
|
+
var ptr0 = isLikeNone(filter) ? 0 : passStringToWasm0(filter, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
165
|
+
var len0 = WASM_VECTOR_LEN;
|
|
166
|
+
wasm.init_tracing(sink, ptr0, len0);
|
|
175
167
|
}
|
|
176
168
|
|
|
177
169
|
/**
|
|
@@ -271,17 +263,6 @@ function __wbg_get_imports() {
|
|
|
271
263
|
const ret = arg0.crypto;
|
|
272
264
|
return ret;
|
|
273
265
|
};
|
|
274
|
-
imports.wbg.__wbg_error_7534b8e9a36f1ab4 = function(arg0, arg1) {
|
|
275
|
-
let deferred0_0;
|
|
276
|
-
let deferred0_1;
|
|
277
|
-
try {
|
|
278
|
-
deferred0_0 = arg0;
|
|
279
|
-
deferred0_1 = arg1;
|
|
280
|
-
console.error(getStringFromWasm0(arg0, arg1));
|
|
281
|
-
} finally {
|
|
282
|
-
wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
|
|
283
|
-
}
|
|
284
|
-
};
|
|
285
266
|
imports.wbg.__wbg_getRandomValues_b8f5dbd5f3995a9e = function() { return handleError(function (arg0, arg1) {
|
|
286
267
|
arg0.getRandomValues(arg1);
|
|
287
268
|
}, arguments) };
|
|
@@ -293,47 +274,6 @@ function __wbg_get_imports() {
|
|
|
293
274
|
const ret = arg0.length;
|
|
294
275
|
return ret;
|
|
295
276
|
};
|
|
296
|
-
imports.wbg.__wbg_log_0cc1b7768397bcfe = function(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7) {
|
|
297
|
-
let deferred0_0;
|
|
298
|
-
let deferred0_1;
|
|
299
|
-
try {
|
|
300
|
-
deferred0_0 = arg0;
|
|
301
|
-
deferred0_1 = arg1;
|
|
302
|
-
console.log(getStringFromWasm0(arg0, arg1), getStringFromWasm0(arg2, arg3), getStringFromWasm0(arg4, arg5), getStringFromWasm0(arg6, arg7));
|
|
303
|
-
} finally {
|
|
304
|
-
wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
|
|
305
|
-
}
|
|
306
|
-
};
|
|
307
|
-
imports.wbg.__wbg_log_cb9e190acc5753fb = function(arg0, arg1) {
|
|
308
|
-
let deferred0_0;
|
|
309
|
-
let deferred0_1;
|
|
310
|
-
try {
|
|
311
|
-
deferred0_0 = arg0;
|
|
312
|
-
deferred0_1 = arg1;
|
|
313
|
-
console.log(getStringFromWasm0(arg0, arg1));
|
|
314
|
-
} finally {
|
|
315
|
-
wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
|
|
316
|
-
}
|
|
317
|
-
};
|
|
318
|
-
imports.wbg.__wbg_mark_7438147ce31e9d4b = function(arg0, arg1) {
|
|
319
|
-
performance.mark(getStringFromWasm0(arg0, arg1));
|
|
320
|
-
};
|
|
321
|
-
imports.wbg.__wbg_measure_fb7825c11612c823 = function() { return handleError(function (arg0, arg1, arg2, arg3) {
|
|
322
|
-
let deferred0_0;
|
|
323
|
-
let deferred0_1;
|
|
324
|
-
let deferred1_0;
|
|
325
|
-
let deferred1_1;
|
|
326
|
-
try {
|
|
327
|
-
deferred0_0 = arg0;
|
|
328
|
-
deferred0_1 = arg1;
|
|
329
|
-
deferred1_0 = arg2;
|
|
330
|
-
deferred1_1 = arg3;
|
|
331
|
-
performance.measure(getStringFromWasm0(arg0, arg1), getStringFromWasm0(arg2, arg3));
|
|
332
|
-
} finally {
|
|
333
|
-
wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
|
|
334
|
-
wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
335
|
-
}
|
|
336
|
-
}, arguments) };
|
|
337
277
|
imports.wbg.__wbg_msCrypto_a61aeb35a24c1329 = function(arg0) {
|
|
338
278
|
const ret = arg0.msCrypto;
|
|
339
279
|
return ret;
|
|
@@ -350,10 +290,6 @@ function __wbg_get_imports() {
|
|
|
350
290
|
const ret = new Array();
|
|
351
291
|
return ret;
|
|
352
292
|
};
|
|
353
|
-
imports.wbg.__wbg_new_8a6f238a6ece86ea = function() {
|
|
354
|
-
const ret = new Error();
|
|
355
|
-
return ret;
|
|
356
|
-
};
|
|
357
293
|
imports.wbg.__wbg_new_b546ae120718850e = function() {
|
|
358
294
|
const ret = new Map();
|
|
359
295
|
return ret;
|
|
@@ -370,6 +306,10 @@ function __wbg_get_imports() {
|
|
|
370
306
|
const ret = arg0.node;
|
|
371
307
|
return ret;
|
|
372
308
|
};
|
|
309
|
+
imports.wbg.__wbg_now_69d776cd24f5215b = function() {
|
|
310
|
+
const ret = Date.now();
|
|
311
|
+
return ret;
|
|
312
|
+
};
|
|
373
313
|
imports.wbg.__wbg_process_dc0fbacc7c1c06f7 = function(arg0) {
|
|
374
314
|
const ret = arg0.process;
|
|
375
315
|
return ret;
|
|
@@ -394,13 +334,6 @@ function __wbg_get_imports() {
|
|
|
394
334
|
const ret = arg0.set(arg1, arg2);
|
|
395
335
|
return ret;
|
|
396
336
|
};
|
|
397
|
-
imports.wbg.__wbg_stack_0ed75d68575b0f3c = function(arg0, arg1) {
|
|
398
|
-
const ret = arg1.stack;
|
|
399
|
-
const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
400
|
-
const len1 = WASM_VECTOR_LEN;
|
|
401
|
-
getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
|
|
402
|
-
getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
|
|
403
|
-
};
|
|
404
337
|
imports.wbg.__wbg_static_accessor_GLOBAL_769e6b65d6557335 = function() {
|
|
405
338
|
const ret = typeof global === 'undefined' ? null : global;
|
|
406
339
|
return isLikeNone(ret) ? 0 : addToExternrefTable0(ret);
|
|
@@ -461,7 +394,6 @@ function __wbg_get_imports() {
|
|
|
461
394
|
function __wbg_finalize_init(instance, module) {
|
|
462
395
|
wasm = instance.exports;
|
|
463
396
|
__wbg_init.__wbindgen_wasm_module = module;
|
|
464
|
-
cachedDataViewMemory0 = null;
|
|
465
397
|
cachedUint8ArrayMemory0 = null;
|
|
466
398
|
|
|
467
399
|
|
|
Binary file
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
export const memory: WebAssembly.Memory;
|
|
4
4
|
export const generate_keypair: () => [number, number, number];
|
|
5
5
|
export const get_public_key: (a: number, b: number) => [number, number, number, number];
|
|
6
|
-
export const init_logging: () => void;
|
|
7
6
|
export const verify_jwt: (a: number, b: number, c: number, d: number) => [number, number, number];
|
|
7
|
+
export const init_tracing: (a: any, b: number, c: number) => void;
|
|
8
8
|
export const __wbindgen_exn_store: (a: number) => void;
|
|
9
9
|
export const __externref_table_alloc: () => number;
|
|
10
10
|
export const __wbindgen_externrefs: WebAssembly.Table;
|
|
11
|
-
export const __wbindgen_free: (a: number, b: number, c: number) => void;
|
|
12
11
|
export const __wbindgen_malloc: (a: number, b: number) => number;
|
|
13
12
|
export const __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
|
|
14
13
|
export const __externref_table_dealloc: (a: number) => void;
|
|
14
|
+
export const __wbindgen_free: (a: number, b: number, c: number) => void;
|
|
15
15
|
export const __wbindgen_start: () => void;
|