@clearagents/sdk 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,212 @@
1
+ export declare const VERSION = "0.2.0";
2
+ export interface ClearAgentConfig {
3
+ apiKey: string;
4
+ baseUrl?: string;
5
+ }
6
+ export interface VerificationEvent {
7
+ id: string;
8
+ orgId: string;
9
+ agentId: string;
10
+ eventType: string;
11
+ eventCategory: string;
12
+ inputHash: string;
13
+ inputPayload: Record<string, unknown>;
14
+ outputPayload: Record<string, unknown> | null;
15
+ decision: string;
16
+ confidence: number | null;
17
+ reasoning: string | null;
18
+ sessionId: string | null;
19
+ parentEventId: string | null;
20
+ sequenceNum: number;
21
+ euAiActArticles: string[];
22
+ riskIndicators: Record<string, unknown>;
23
+ contentHash: string;
24
+ prevHash: string | null;
25
+ occurredAt: string;
26
+ recordedAt: string;
27
+ retentionExpiresAt: string;
28
+ status: string;
29
+ requiresReview: boolean;
30
+ humanReviews?: HumanReview[];
31
+ }
32
+ export interface HumanReview {
33
+ id: string;
34
+ orgId: string;
35
+ eventId: string;
36
+ reviewerId: string;
37
+ reviewerEmail: string;
38
+ reviewerRole: string;
39
+ action: "approve" | "reject" | "override";
40
+ originalDecision: string;
41
+ overrideDecision?: string;
42
+ justification: string;
43
+ escalatedFrom?: string;
44
+ escalationReason?: string;
45
+ reviewRequestedAt: string;
46
+ reviewCompletedAt: string;
47
+ reviewSlaMs?: number;
48
+ contentHash: string;
49
+ }
50
+ export interface Job {
51
+ jobId: string;
52
+ status: "queued" | "processing" | "completed" | "failed";
53
+ eventId?: string;
54
+ error?: string;
55
+ createdAt: string;
56
+ updatedAt: string;
57
+ }
58
+ export interface RegisteredAgent {
59
+ agentId: string;
60
+ apiKey: string;
61
+ status: string;
62
+ registeredAt: string;
63
+ }
64
+ export interface CompletedJob extends Job {
65
+ status: "completed";
66
+ eventId: string;
67
+ contentHash: string;
68
+ requiresReview: boolean;
69
+ }
70
+ export interface Agent {
71
+ agentId: string;
72
+ name: string;
73
+ externalId: string;
74
+ status: string;
75
+ registeredAt: string;
76
+ }
77
+ export interface AuditIntegrity {
78
+ totalEvents: number;
79
+ validChain: boolean;
80
+ merkleRoot: string;
81
+ checkedAt: string;
82
+ brokenAt: string | null;
83
+ }
84
+ export interface AuditExport {
85
+ exportId: string;
86
+ generatedAt: string;
87
+ fileHash: string;
88
+ recordCount: number;
89
+ filters: Record<string, unknown>;
90
+ events: VerificationEvent[];
91
+ reviews: HumanReview[];
92
+ }
93
+ export interface EventsListResponse {
94
+ data: VerificationEvent[];
95
+ pagination: {
96
+ total: number;
97
+ limit: number;
98
+ offset?: number;
99
+ hasMore: boolean;
100
+ nextCursor: string | null;
101
+ };
102
+ }
103
+ export interface PollOptions {
104
+ /** Maximum number of polling attempts. Default: 30 */
105
+ maxAttempts?: number;
106
+ /** Milliseconds between attempts. Default: 500 */
107
+ intervalMs?: number;
108
+ }
109
+ export declare class ClearAgentError extends Error {
110
+ readonly status: number;
111
+ readonly code?: string | undefined;
112
+ constructor(message: string, status: number, code?: string | undefined);
113
+ }
114
+ declare class HttpClient {
115
+ private readonly baseUrl;
116
+ private readonly apiKey;
117
+ constructor(config: ClearAgentConfig);
118
+ request<T>(method: string, path: string, body?: unknown): Promise<T>;
119
+ get<T>(path: string): Promise<T>;
120
+ post<T>(path: string, body: unknown): Promise<T>;
121
+ patch<T>(path: string, body: unknown): Promise<T>;
122
+ }
123
+ declare class AgentsResource {
124
+ private readonly http;
125
+ constructor(http: HttpClient);
126
+ register(data: {
127
+ name: string;
128
+ externalId: string;
129
+ modelProvider?: string;
130
+ modelId?: string;
131
+ description?: string;
132
+ }): Promise<RegisteredAgent>;
133
+ suspend(agentId: string): Promise<{
134
+ agentId: string;
135
+ status: string;
136
+ }>;
137
+ activate(agentId: string): Promise<{
138
+ agentId: string;
139
+ status: string;
140
+ }>;
141
+ flag(agentId: string): Promise<{
142
+ agentId: string;
143
+ status: string;
144
+ }>;
145
+ }
146
+ declare class EventsResource {
147
+ private readonly http;
148
+ constructor(http: HttpClient);
149
+ verify(data: {
150
+ input: Record<string, unknown>;
151
+ eventType?: string;
152
+ eventCategory?: string;
153
+ agentId?: string;
154
+ sessionId?: string;
155
+ parentEventId?: string;
156
+ sequenceNum?: number;
157
+ }): Promise<{
158
+ jobId: string;
159
+ status: string;
160
+ }>;
161
+ get(eventId: string): Promise<VerificationEvent>;
162
+ list(filters?: {
163
+ agentId?: string;
164
+ status?: string;
165
+ from?: string;
166
+ to?: string;
167
+ limit?: number;
168
+ cursor?: string;
169
+ }): Promise<EventsListResponse>;
170
+ }
171
+ declare class JobsResource {
172
+ private readonly http;
173
+ constructor(http: HttpClient);
174
+ get(jobId: string): Promise<Job>;
175
+ poll(jobId: string, options?: PollOptions): Promise<CompletedJob>;
176
+ }
177
+ declare class ReviewsResource {
178
+ private readonly http;
179
+ constructor(http: HttpClient);
180
+ submit(data: {
181
+ eventId: string;
182
+ action: "approve" | "reject" | "override";
183
+ justification: string;
184
+ reviewerId: string;
185
+ reviewerEmail: string;
186
+ reviewerRole: string;
187
+ overrideDecision?: string;
188
+ }): Promise<HumanReview>;
189
+ }
190
+ declare class AuditResource {
191
+ private readonly http;
192
+ constructor(http: HttpClient);
193
+ integrity(): Promise<AuditIntegrity>;
194
+ export(filters?: {
195
+ agentId?: string;
196
+ status?: string;
197
+ from?: string;
198
+ to?: string;
199
+ authorityName?: string;
200
+ authorityRef?: string;
201
+ }): Promise<AuditExport>;
202
+ }
203
+ export declare class ClearAgentClient {
204
+ readonly agents: AgentsResource;
205
+ readonly events: EventsResource;
206
+ readonly jobs: JobsResource;
207
+ readonly reviews: ReviewsResource;
208
+ readonly audit: AuditResource;
209
+ constructor(config: ClearAgentConfig);
210
+ }
211
+ export default ClearAgentClient;
212
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,177 @@
1
+ export const VERSION = "0.2.0";
2
+ // ─── Error ────────────────────────────────────────────────────────────────────
3
+ export class ClearAgentError extends Error {
4
+ status;
5
+ code;
6
+ constructor(message, status, code) {
7
+ super(message);
8
+ this.status = status;
9
+ this.code = code;
10
+ this.name = "ClearAgentError";
11
+ }
12
+ }
13
+ // ─── HTTP client ──────────────────────────────────────────────────────────────
14
+ class HttpClient {
15
+ baseUrl;
16
+ apiKey;
17
+ constructor(config) {
18
+ this.baseUrl = (config.baseUrl ?? "http://localhost:3000").replace(/\/$/, "");
19
+ this.apiKey = config.apiKey;
20
+ }
21
+ async request(method, path, body) {
22
+ const res = await fetch(`${this.baseUrl}${path}`, {
23
+ method,
24
+ headers: {
25
+ "Content-Type": "application/json",
26
+ Authorization: `Bearer ${this.apiKey}`,
27
+ },
28
+ body: body !== undefined ? JSON.stringify(body) : undefined,
29
+ });
30
+ if (!res.ok) {
31
+ const payload = await res.json().catch(() => ({}));
32
+ const errObj = payload["error"];
33
+ throw new ClearAgentError(errObj?.["message"] ?? res.statusText, res.status, errObj?.["code"]);
34
+ }
35
+ return res.json();
36
+ }
37
+ get(path) {
38
+ return this.request("GET", path);
39
+ }
40
+ post(path, body) {
41
+ return this.request("POST", path, body);
42
+ }
43
+ patch(path, body) {
44
+ return this.request("PATCH", path, body);
45
+ }
46
+ }
47
+ // ─── Resource classes ─────────────────────────────────────────────────────────
48
+ class AgentsResource {
49
+ http;
50
+ constructor(http) {
51
+ this.http = http;
52
+ }
53
+ register(data) {
54
+ return this.http.post("/v1/agents/register", data);
55
+ }
56
+ suspend(agentId) {
57
+ return this.http.patch(`/v1/agents/${agentId}/status`, { status: "suspended" });
58
+ }
59
+ activate(agentId) {
60
+ return this.http.patch(`/v1/agents/${agentId}/status`, { status: "active" });
61
+ }
62
+ flag(agentId) {
63
+ return this.http.patch(`/v1/agents/${agentId}/status`, { status: "flagged" });
64
+ }
65
+ }
66
+ class EventsResource {
67
+ http;
68
+ constructor(http) {
69
+ this.http = http;
70
+ }
71
+ verify(data) {
72
+ return this.http.post("/v1/events/verify", data);
73
+ }
74
+ get(eventId) {
75
+ return this.http.get(`/v1/events/${eventId}`);
76
+ }
77
+ list(filters) {
78
+ const params = new URLSearchParams();
79
+ if (filters?.agentId)
80
+ params.set("agent_id", filters.agentId);
81
+ if (filters?.status)
82
+ params.set("status", filters.status);
83
+ if (filters?.from)
84
+ params.set("from", filters.from);
85
+ if (filters?.to)
86
+ params.set("to", filters.to);
87
+ if (filters?.limit !== undefined)
88
+ params.set("limit", String(filters.limit));
89
+ if (filters?.cursor)
90
+ params.set("cursor", filters.cursor);
91
+ const qs = params.toString();
92
+ return this.http.get(`/v1/events${qs ? `?${qs}` : ""}`);
93
+ }
94
+ }
95
+ class JobsResource {
96
+ http;
97
+ constructor(http) {
98
+ this.http = http;
99
+ }
100
+ get(jobId) {
101
+ return this.http.get(`/v1/jobs/${jobId}`);
102
+ }
103
+ async poll(jobId, options = {}) {
104
+ const { maxAttempts = 30, intervalMs = 500 } = options;
105
+ for (let attempt = 0; attempt < maxAttempts; attempt++) {
106
+ const job = await this.get(jobId);
107
+ if (job.status === "completed" && job.eventId) {
108
+ const event = await this.http.get(`/v1/events/${job.eventId}`);
109
+ return {
110
+ ...job,
111
+ status: "completed",
112
+ eventId: job.eventId,
113
+ contentHash: event.contentHash,
114
+ requiresReview: event.requiresReview,
115
+ };
116
+ }
117
+ if (job.status === "failed") {
118
+ throw new ClearAgentError(job.error ?? "Verification job failed", 500, "verification_failed");
119
+ }
120
+ await new Promise((resolve) => setTimeout(resolve, intervalMs));
121
+ }
122
+ throw new ClearAgentError(`Job ${jobId} did not complete after ${maxAttempts} attempts`, 408, "poll_timeout");
123
+ }
124
+ }
125
+ class ReviewsResource {
126
+ http;
127
+ constructor(http) {
128
+ this.http = http;
129
+ }
130
+ submit(data) {
131
+ return this.http.post("/v1/reviews", data);
132
+ }
133
+ }
134
+ class AuditResource {
135
+ http;
136
+ constructor(http) {
137
+ this.http = http;
138
+ }
139
+ integrity() {
140
+ return this.http.get("/v1/audit/integrity");
141
+ }
142
+ export(filters) {
143
+ const params = new URLSearchParams();
144
+ if (filters?.agentId)
145
+ params.set("agent_id", filters.agentId);
146
+ if (filters?.status)
147
+ params.set("status", filters.status);
148
+ if (filters?.from)
149
+ params.set("from", filters.from);
150
+ if (filters?.to)
151
+ params.set("to", filters.to);
152
+ if (filters?.authorityName)
153
+ params.set("authority_name", filters.authorityName);
154
+ if (filters?.authorityRef)
155
+ params.set("authority_ref", filters.authorityRef);
156
+ const qs = params.toString();
157
+ return this.http.get(`/v1/audit/export${qs ? `?${qs}` : ""}`);
158
+ }
159
+ }
160
+ // ─── Main client ──────────────────────────────────────────────────────────────
161
+ export class ClearAgentClient {
162
+ agents;
163
+ events;
164
+ jobs;
165
+ reviews;
166
+ audit;
167
+ constructor(config) {
168
+ const http = new HttpClient(config);
169
+ this.agents = new AgentsResource(http);
170
+ this.events = new EventsResource(http);
171
+ this.jobs = new JobsResource(http);
172
+ this.reviews = new ReviewsResource(http);
173
+ this.audit = new AuditResource(http);
174
+ }
175
+ }
176
+ export default ClearAgentClient;
177
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,25 @@
1
+ {
2
+ "name": "@clearagents/sdk",
3
+ "version": "0.1.0",
4
+ "files": [
5
+ "dist",
6
+ "README.md"
7
+ ],
8
+ "main": "dist/index.js",
9
+ "types": "dist/index.d.ts",
10
+ "type": "module",
11
+ "exports": {
12
+ ".": {
13
+ "import": "./dist/index.js",
14
+ "types": "./dist/index.d.ts"
15
+ }
16
+ },
17
+ "scripts": {
18
+ "build": "tsc",
19
+ "prepublishOnly": "npm run build"
20
+ },
21
+ "devDependencies": {
22
+ "typescript": "^5.6.0",
23
+ "@types/node": "^22.0.0"
24
+ }
25
+ }