@vorionsys/agentanchor-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.
- package/CHANGELOG.md +9 -0
- package/LICENSE +190 -0
- package/README.md +249 -0
- package/dist/car/index.d.ts +247 -0
- package/dist/car/index.d.ts.map +1 -0
- package/dist/car/index.js +372 -0
- package/dist/car/index.js.map +1 -0
- package/dist/client.d.ts +233 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +408 -0
- package/dist/client.js.map +1 -0
- package/dist/index.d.ts +42 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +73 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +515 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +147 -0
- package/dist/types.js.map +1 -0
- package/package.json +75 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/car/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,372 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview CAR (Categorical Agentic Registry) parsing and validation
|
|
3
|
+
* @module @vorionsys/agentanchor-sdk/car
|
|
4
|
+
*/
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
import { CapabilityLevel } from '../types.js';
|
|
7
|
+
// ============================================================================
|
|
8
|
+
// Constants
|
|
9
|
+
// ============================================================================
|
|
10
|
+
/**
|
|
11
|
+
* Valid domain codes
|
|
12
|
+
*/
|
|
13
|
+
export const DOMAIN_CODES = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'S'];
|
|
14
|
+
/**
|
|
15
|
+
* Domain code descriptions
|
|
16
|
+
*/
|
|
17
|
+
export const DOMAIN_NAMES = {
|
|
18
|
+
A: 'Administration',
|
|
19
|
+
B: 'Business',
|
|
20
|
+
C: 'Communications',
|
|
21
|
+
D: 'Data',
|
|
22
|
+
E: 'External',
|
|
23
|
+
F: 'Finance',
|
|
24
|
+
G: 'Governance',
|
|
25
|
+
H: 'Hospitality',
|
|
26
|
+
I: 'Infrastructure',
|
|
27
|
+
S: 'Security',
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Domain bitmask values
|
|
31
|
+
*/
|
|
32
|
+
export const DOMAIN_BITS = {
|
|
33
|
+
A: 0x001,
|
|
34
|
+
B: 0x002,
|
|
35
|
+
C: 0x004,
|
|
36
|
+
D: 0x008,
|
|
37
|
+
E: 0x010,
|
|
38
|
+
F: 0x020,
|
|
39
|
+
G: 0x040,
|
|
40
|
+
H: 0x080,
|
|
41
|
+
I: 0x100,
|
|
42
|
+
S: 0x200,
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* CAR regex pattern
|
|
46
|
+
*
|
|
47
|
+
* Format: {registry}.{org}.{class}:{domains}-L{level}@{version}[#extensions]
|
|
48
|
+
*
|
|
49
|
+
* Examples:
|
|
50
|
+
* - a3i.vorion.banquet-advisor:FHC-L3@1.2.0
|
|
51
|
+
* - a3i.acme.support-agent:CD-L2@1.0.0#policy=strict
|
|
52
|
+
*/
|
|
53
|
+
export const CAR_REGEX = /^([a-z0-9]+)\.([a-z0-9-]+)\.([a-z0-9-]+):([A-Z]+)-L([0-7])@(\d+\.\d+\.\d+)(?:#(.+))?$/;
|
|
54
|
+
/**
|
|
55
|
+
* Semver regex pattern
|
|
56
|
+
*/
|
|
57
|
+
export const SEMVER_REGEX = /^\d+\.\d+\.\d+$/;
|
|
58
|
+
// ============================================================================
|
|
59
|
+
// Parsing Functions
|
|
60
|
+
// ============================================================================
|
|
61
|
+
/**
|
|
62
|
+
* Parse a CAR ID string into components
|
|
63
|
+
*
|
|
64
|
+
* @param carId - CAR ID string to parse
|
|
65
|
+
* @returns Parsed CAR ID components
|
|
66
|
+
* @throws Error if CAR ID is invalid
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```typescript
|
|
70
|
+
* const parsed = parseCAR('a3i.vorion.banquet-advisor:FHC-L3@1.2.0');
|
|
71
|
+
* console.log(parsed.domains); // ['F', 'H', 'C']
|
|
72
|
+
* console.log(parsed.level); // 3
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
export function parseCAR(carId) {
|
|
76
|
+
const result = tryParseCAR(carId);
|
|
77
|
+
if (!result) {
|
|
78
|
+
throw new Error(`Invalid CAR ID format: ${carId}`);
|
|
79
|
+
}
|
|
80
|
+
return result;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Try to parse a CAR ID string, returning undefined if invalid
|
|
84
|
+
*
|
|
85
|
+
* @param carId - CAR ID string to parse
|
|
86
|
+
* @returns Parsed CAR ID or undefined
|
|
87
|
+
*/
|
|
88
|
+
export function tryParseCAR(carId) {
|
|
89
|
+
if (typeof carId !== 'string' || !carId) {
|
|
90
|
+
return undefined;
|
|
91
|
+
}
|
|
92
|
+
const match = CAR_REGEX.exec(carId);
|
|
93
|
+
if (!match) {
|
|
94
|
+
return undefined;
|
|
95
|
+
}
|
|
96
|
+
const [, registry, organization, agentClass, domainsStr, levelStr, version, extensions] = match;
|
|
97
|
+
// Parse domains
|
|
98
|
+
const domains = parseDomainString(domainsStr);
|
|
99
|
+
if (!domains) {
|
|
100
|
+
return undefined;
|
|
101
|
+
}
|
|
102
|
+
// Parse level
|
|
103
|
+
const level = parseInt(levelStr, 10);
|
|
104
|
+
if (level < 0 || level > 7) {
|
|
105
|
+
return undefined;
|
|
106
|
+
}
|
|
107
|
+
// Calculate domain bitmask
|
|
108
|
+
const domainsBitmask = encodeDomains(domains);
|
|
109
|
+
// Parse extensions if present
|
|
110
|
+
let parsedExtensions;
|
|
111
|
+
if (extensions) {
|
|
112
|
+
parsedExtensions = {};
|
|
113
|
+
for (const pair of extensions.split(',')) {
|
|
114
|
+
const [key, value] = pair.split('=');
|
|
115
|
+
if (key && value !== undefined) {
|
|
116
|
+
parsedExtensions[key] = value;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return {
|
|
121
|
+
registry,
|
|
122
|
+
organization,
|
|
123
|
+
agentClass,
|
|
124
|
+
domains,
|
|
125
|
+
domainsBitmask,
|
|
126
|
+
level,
|
|
127
|
+
version,
|
|
128
|
+
extensions,
|
|
129
|
+
parsedExtensions,
|
|
130
|
+
raw: carId,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Parse a domain string into array of domain codes
|
|
135
|
+
*
|
|
136
|
+
* @param domainString - Domain string (e.g., 'FHC')
|
|
137
|
+
* @returns Array of domain codes or undefined if invalid
|
|
138
|
+
*/
|
|
139
|
+
export function parseDomainString(domainString) {
|
|
140
|
+
if (!domainString || typeof domainString !== 'string') {
|
|
141
|
+
return undefined;
|
|
142
|
+
}
|
|
143
|
+
const domains = [];
|
|
144
|
+
for (const char of domainString) {
|
|
145
|
+
if (!isDomainCode(char)) {
|
|
146
|
+
return undefined;
|
|
147
|
+
}
|
|
148
|
+
domains.push(char);
|
|
149
|
+
}
|
|
150
|
+
return domains;
|
|
151
|
+
}
|
|
152
|
+
// ============================================================================
|
|
153
|
+
// Validation Functions
|
|
154
|
+
// ============================================================================
|
|
155
|
+
/**
|
|
156
|
+
* Validate a CAR ID string
|
|
157
|
+
*
|
|
158
|
+
* @param carId - CAR ID string to validate
|
|
159
|
+
* @returns Validation result with errors and warnings
|
|
160
|
+
*/
|
|
161
|
+
export function validateCAR(carId) {
|
|
162
|
+
const errors = [];
|
|
163
|
+
const warnings = [];
|
|
164
|
+
// Check type
|
|
165
|
+
if (typeof carId !== 'string') {
|
|
166
|
+
errors.push({
|
|
167
|
+
code: 'INVALID_TYPE',
|
|
168
|
+
message: 'CAR ID must be a string',
|
|
169
|
+
});
|
|
170
|
+
return { valid: false, errors, warnings };
|
|
171
|
+
}
|
|
172
|
+
// Check empty
|
|
173
|
+
if (!carId.trim()) {
|
|
174
|
+
errors.push({
|
|
175
|
+
code: 'EMPTY_CAR',
|
|
176
|
+
message: 'CAR ID cannot be empty',
|
|
177
|
+
});
|
|
178
|
+
return { valid: false, errors, warnings };
|
|
179
|
+
}
|
|
180
|
+
// Check format
|
|
181
|
+
if (!CAR_REGEX.test(carId)) {
|
|
182
|
+
errors.push({
|
|
183
|
+
code: 'INVALID_FORMAT',
|
|
184
|
+
message: 'CAR ID does not match expected format: {registry}.{org}.{class}:{domains}-L{level}@{version}',
|
|
185
|
+
});
|
|
186
|
+
return { valid: false, errors, warnings };
|
|
187
|
+
}
|
|
188
|
+
// Try to parse
|
|
189
|
+
const parsed = tryParseCAR(carId);
|
|
190
|
+
if (!parsed) {
|
|
191
|
+
errors.push({
|
|
192
|
+
code: 'PARSE_ERROR',
|
|
193
|
+
message: 'Failed to parse CAR ID components',
|
|
194
|
+
});
|
|
195
|
+
return { valid: false, errors, warnings };
|
|
196
|
+
}
|
|
197
|
+
// Validate registry
|
|
198
|
+
const knownRegistries = ['a3i', 'eu-ai', 'self'];
|
|
199
|
+
if (!knownRegistries.includes(parsed.registry)) {
|
|
200
|
+
warnings.push({
|
|
201
|
+
code: 'UNKNOWN_REGISTRY',
|
|
202
|
+
message: `Registry '${parsed.registry}' is not a known registry`,
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
// Validate organization format
|
|
206
|
+
if (parsed.organization.startsWith('-') || parsed.organization.endsWith('-')) {
|
|
207
|
+
errors.push({
|
|
208
|
+
code: 'INVALID_ORGANIZATION',
|
|
209
|
+
message: 'Organization cannot start or end with hyphen',
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
// Validate version
|
|
213
|
+
if (!SEMVER_REGEX.test(parsed.version)) {
|
|
214
|
+
errors.push({
|
|
215
|
+
code: 'INVALID_VERSION',
|
|
216
|
+
message: 'Version must be valid semver (MAJOR.MINOR.PATCH)',
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
// Check for duplicate domains
|
|
220
|
+
const uniqueDomains = new Set(parsed.domains);
|
|
221
|
+
if (uniqueDomains.size !== parsed.domains.length) {
|
|
222
|
+
warnings.push({
|
|
223
|
+
code: 'DUPLICATE_DOMAINS',
|
|
224
|
+
message: 'Domain string contains duplicate domain codes',
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
return {
|
|
228
|
+
valid: errors.length === 0,
|
|
229
|
+
errors,
|
|
230
|
+
warnings,
|
|
231
|
+
parsed: errors.length === 0 ? parsed : undefined,
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Check if a CAR ID string is valid
|
|
236
|
+
*
|
|
237
|
+
* @param carId - CAR ID string to check
|
|
238
|
+
* @returns Whether the CAR ID is valid
|
|
239
|
+
*/
|
|
240
|
+
export function isValidCAR(carId) {
|
|
241
|
+
return validateCAR(carId).valid;
|
|
242
|
+
}
|
|
243
|
+
// ============================================================================
|
|
244
|
+
// Generation Functions
|
|
245
|
+
// ============================================================================
|
|
246
|
+
/**
|
|
247
|
+
* Generate a CAR ID string from components
|
|
248
|
+
*
|
|
249
|
+
* @param options - CAR ID components
|
|
250
|
+
* @returns Generated CAR ID string
|
|
251
|
+
*
|
|
252
|
+
* @example
|
|
253
|
+
* ```typescript
|
|
254
|
+
* const carId = generateCAR({
|
|
255
|
+
* registry: 'a3i',
|
|
256
|
+
* organization: 'vorion',
|
|
257
|
+
* agentClass: 'banquet-advisor',
|
|
258
|
+
* domains: ['F', 'H', 'C'],
|
|
259
|
+
* level: CapabilityLevel.L3_EXECUTE,
|
|
260
|
+
* version: '1.2.0',
|
|
261
|
+
* });
|
|
262
|
+
* // Result: 'a3i.vorion.banquet-advisor:FHC-L3@1.2.0'
|
|
263
|
+
* ```
|
|
264
|
+
*/
|
|
265
|
+
export function generateCAR(options) {
|
|
266
|
+
const { registry, organization, agentClass, domains, level, version, extensions, } = options;
|
|
267
|
+
// Sort and dedupe domains for consistency
|
|
268
|
+
const sortedDomains = [...new Set(domains)].sort();
|
|
269
|
+
const domainString = sortedDomains.join('');
|
|
270
|
+
let carId = `${registry}.${organization}.${agentClass}:${domainString}-L${level}@${version}`;
|
|
271
|
+
// Add extensions if present
|
|
272
|
+
if (extensions && Object.keys(extensions).length > 0) {
|
|
273
|
+
const extString = Object.entries(extensions)
|
|
274
|
+
.map(([k, v]) => `${k}=${v}`)
|
|
275
|
+
.join(',');
|
|
276
|
+
carId += `#${extString}`;
|
|
277
|
+
}
|
|
278
|
+
return carId;
|
|
279
|
+
}
|
|
280
|
+
// ============================================================================
|
|
281
|
+
// Domain Utilities
|
|
282
|
+
// ============================================================================
|
|
283
|
+
/**
|
|
284
|
+
* Check if a string is a valid domain code
|
|
285
|
+
*/
|
|
286
|
+
export function isDomainCode(code) {
|
|
287
|
+
return DOMAIN_CODES.includes(code);
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Encode domain codes to bitmask
|
|
291
|
+
*
|
|
292
|
+
* @param domains - Array of domain codes
|
|
293
|
+
* @returns Bitmask representation
|
|
294
|
+
*/
|
|
295
|
+
export function encodeDomains(domains) {
|
|
296
|
+
return domains.reduce((mask, code) => mask | DOMAIN_BITS[code], 0);
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Decode bitmask to domain codes
|
|
300
|
+
*
|
|
301
|
+
* @param bitmask - Domain bitmask
|
|
302
|
+
* @returns Array of domain codes
|
|
303
|
+
*/
|
|
304
|
+
export function decodeDomains(bitmask) {
|
|
305
|
+
return DOMAIN_CODES.filter(code => (bitmask & DOMAIN_BITS[code]) !== 0);
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* Check if domains satisfy required domains
|
|
309
|
+
*
|
|
310
|
+
* @param agentDomains - Agent's domains
|
|
311
|
+
* @param requiredDomains - Required domains
|
|
312
|
+
* @returns Whether agent has all required domains
|
|
313
|
+
*/
|
|
314
|
+
export function satisfiesDomainRequirements(agentDomains, requiredDomains) {
|
|
315
|
+
const agentMask = encodeDomains(agentDomains);
|
|
316
|
+
const requiredMask = encodeDomains(requiredDomains);
|
|
317
|
+
return (agentMask & requiredMask) === requiredMask;
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* Get domain name from code
|
|
321
|
+
*/
|
|
322
|
+
export function getDomainName(code) {
|
|
323
|
+
return DOMAIN_NAMES[code];
|
|
324
|
+
}
|
|
325
|
+
// ============================================================================
|
|
326
|
+
// Level Utilities
|
|
327
|
+
// ============================================================================
|
|
328
|
+
/**
|
|
329
|
+
* Level names
|
|
330
|
+
*/
|
|
331
|
+
export const LEVEL_NAMES = {
|
|
332
|
+
[CapabilityLevel.L0_OBSERVE]: 'Observe',
|
|
333
|
+
[CapabilityLevel.L1_ADVISE]: 'Advise',
|
|
334
|
+
[CapabilityLevel.L2_DRAFT]: 'Draft',
|
|
335
|
+
[CapabilityLevel.L3_EXECUTE]: 'Execute',
|
|
336
|
+
[CapabilityLevel.L4_STANDARD]: 'Standard',
|
|
337
|
+
[CapabilityLevel.L5_TRUSTED]: 'Trusted',
|
|
338
|
+
[CapabilityLevel.L6_CERTIFIED]: 'Certified',
|
|
339
|
+
[CapabilityLevel.L7_AUTONOMOUS]: 'Autonomous',
|
|
340
|
+
};
|
|
341
|
+
/**
|
|
342
|
+
* Check if agent level meets required level
|
|
343
|
+
*
|
|
344
|
+
* @param agentLevel - Agent's capability level
|
|
345
|
+
* @param requiredLevel - Required level
|
|
346
|
+
* @returns Whether agent meets requirement
|
|
347
|
+
*/
|
|
348
|
+
export function meetsLevelRequirement(agentLevel, requiredLevel) {
|
|
349
|
+
return agentLevel >= requiredLevel;
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* Get level name from enum value
|
|
353
|
+
*/
|
|
354
|
+
export function getLevelName(level) {
|
|
355
|
+
return LEVEL_NAMES[level] ?? 'Unknown';
|
|
356
|
+
}
|
|
357
|
+
// ============================================================================
|
|
358
|
+
// Zod Schemas
|
|
359
|
+
// ============================================================================
|
|
360
|
+
export const domainCodeSchema = z.enum(DOMAIN_CODES);
|
|
361
|
+
export const capabilityLevelSchema = z.nativeEnum(CapabilityLevel);
|
|
362
|
+
export const carIdStringSchema = z.string().regex(CAR_REGEX, 'Invalid CAR ID format');
|
|
363
|
+
export const generateCAROptionsSchema = z.object({
|
|
364
|
+
registry: z.string().min(1),
|
|
365
|
+
organization: z.string().min(2).max(63).regex(/^[a-z0-9-]+$/),
|
|
366
|
+
agentClass: z.string().min(2).max(63).regex(/^[a-z0-9-]+$/),
|
|
367
|
+
domains: z.array(domainCodeSchema).min(1),
|
|
368
|
+
level: capabilityLevelSchema,
|
|
369
|
+
version: z.string().regex(SEMVER_REGEX),
|
|
370
|
+
extensions: z.record(z.string()).optional(),
|
|
371
|
+
});
|
|
372
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/car/index.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Agent Anchor SDK Client
|
|
3
|
+
* @module @vorionsys/agentanchor-sdk
|
|
4
|
+
*/
|
|
5
|
+
import { type AgentAnchorConfig, type RegisterAgentOptions, type Agent, type TrustScore, type SubmitAttestationOptions, type Attestation, type StateTransitionRequest, type StateTransitionResult, type AgentQueryFilter, type PaginatedResult, type A2AInvokeOptions, type A2AInvokeResult, type A2ADiscoverOptions, type A2AEndpoint, type A2AChainInfo, type A2APingResult } from './types.js';
|
|
6
|
+
import { type CARValidationResult } from './car/index.js';
|
|
7
|
+
/**
|
|
8
|
+
* Agent Anchor SDK Client
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import { AgentAnchor } from '@vorionsys/agentanchor-sdk';
|
|
13
|
+
*
|
|
14
|
+
* const anchor = new AgentAnchor({ apiKey: 'your-api-key' });
|
|
15
|
+
*
|
|
16
|
+
* // Register an agent
|
|
17
|
+
* const agent = await anchor.registerAgent({
|
|
18
|
+
* organization: 'acme',
|
|
19
|
+
* agentClass: 'invoice-bot',
|
|
20
|
+
* domains: ['A', 'B', 'F'],
|
|
21
|
+
* level: 3,
|
|
22
|
+
* version: '1.0.0',
|
|
23
|
+
* });
|
|
24
|
+
*
|
|
25
|
+
* // Get trust score
|
|
26
|
+
* const score = await anchor.getTrustScore(agent.car);
|
|
27
|
+
* console.log(`Trust: ${score.score} (${score.tier})`);
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export declare class AgentAnchor {
|
|
31
|
+
private readonly config;
|
|
32
|
+
constructor(config: AgentAnchorConfig);
|
|
33
|
+
/**
|
|
34
|
+
* Register a new agent with Agent Anchor
|
|
35
|
+
*
|
|
36
|
+
* @param options - Registration options
|
|
37
|
+
* @returns The registered agent with assigned CAR ID
|
|
38
|
+
*/
|
|
39
|
+
registerAgent(options: RegisterAgentOptions): Promise<Agent>;
|
|
40
|
+
/**
|
|
41
|
+
* Get agent details by CAR ID
|
|
42
|
+
*
|
|
43
|
+
* @param car - CAR ID string
|
|
44
|
+
* @returns Agent details including current trust score
|
|
45
|
+
*/
|
|
46
|
+
getAgent(car: string): Promise<Agent>;
|
|
47
|
+
/**
|
|
48
|
+
* Update agent metadata
|
|
49
|
+
*
|
|
50
|
+
* @param car - CAR ID string
|
|
51
|
+
* @param updates - Fields to update
|
|
52
|
+
* @returns Updated agent
|
|
53
|
+
*/
|
|
54
|
+
updateAgent(car: string, updates: Partial<Pick<Agent, 'metadata' | 'description'>>): Promise<Agent>;
|
|
55
|
+
/**
|
|
56
|
+
* Deregister an agent
|
|
57
|
+
*
|
|
58
|
+
* @param car - CAR ID string
|
|
59
|
+
* @param reason - Reason for deregistration
|
|
60
|
+
*/
|
|
61
|
+
deregisterAgent(car: string, reason: string): Promise<void>;
|
|
62
|
+
/**
|
|
63
|
+
* Query agents with filters
|
|
64
|
+
*
|
|
65
|
+
* @param filter - Query filters
|
|
66
|
+
* @returns Paginated list of agents
|
|
67
|
+
*/
|
|
68
|
+
queryAgents(filter?: AgentQueryFilter): Promise<PaginatedResult<Agent>>;
|
|
69
|
+
/**
|
|
70
|
+
* Get current trust score for an agent
|
|
71
|
+
*
|
|
72
|
+
* @param car - CAR ID string
|
|
73
|
+
* @param forceRefresh - Bypass cache and recalculate
|
|
74
|
+
* @returns Trust score with factor breakdown
|
|
75
|
+
*/
|
|
76
|
+
getTrustScore(car: string, forceRefresh?: boolean): Promise<TrustScore>;
|
|
77
|
+
/**
|
|
78
|
+
* Submit an attestation for an agent
|
|
79
|
+
*
|
|
80
|
+
* @param options - Attestation details
|
|
81
|
+
* @returns The created attestation record
|
|
82
|
+
*/
|
|
83
|
+
submitAttestation(options: SubmitAttestationOptions): Promise<Attestation>;
|
|
84
|
+
/**
|
|
85
|
+
* Get attestations for an agent
|
|
86
|
+
*
|
|
87
|
+
* @param car - CAR ID string
|
|
88
|
+
* @param limit - Maximum number to return (default 50)
|
|
89
|
+
* @returns List of attestations
|
|
90
|
+
*/
|
|
91
|
+
getAttestations(car: string, limit?: number): Promise<Attestation[]>;
|
|
92
|
+
/**
|
|
93
|
+
* Trigger a lifecycle state transition
|
|
94
|
+
*
|
|
95
|
+
* @param request - Transition request
|
|
96
|
+
* @returns Transition result
|
|
97
|
+
*/
|
|
98
|
+
transitionState(request: StateTransitionRequest): Promise<StateTransitionResult>;
|
|
99
|
+
/**
|
|
100
|
+
* Validate a CAR ID string
|
|
101
|
+
*
|
|
102
|
+
* @param car - CAR ID string to validate
|
|
103
|
+
* @returns Validation result with parsed components
|
|
104
|
+
*/
|
|
105
|
+
validateCAR(car: string): CARValidationResult;
|
|
106
|
+
/**
|
|
107
|
+
* Parse a CAR ID string (throws on invalid)
|
|
108
|
+
*
|
|
109
|
+
* @param car - CAR ID string to parse
|
|
110
|
+
* @returns Parsed CAR ID components
|
|
111
|
+
*/
|
|
112
|
+
parseCAR(car: string): import("./car/index.js").ParsedCAR;
|
|
113
|
+
/**
|
|
114
|
+
* Check if a CAR ID is registered with Agent Anchor
|
|
115
|
+
*
|
|
116
|
+
* @param car - CAR ID string to check
|
|
117
|
+
* @returns Whether the CAR ID is registered
|
|
118
|
+
*/
|
|
119
|
+
isRegistered(car: string): Promise<boolean>;
|
|
120
|
+
/**
|
|
121
|
+
* Invoke an action on another agent
|
|
122
|
+
*
|
|
123
|
+
* @param callerCarId - Your agent's CAR ID (the caller)
|
|
124
|
+
* @param options - Invoke options
|
|
125
|
+
* @returns Invoke result with response data and metrics
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* ```typescript
|
|
129
|
+
* const result = await anchor.a2aInvoke('a3i.acme.invoice-bot:ABF-L3@1.0.0', {
|
|
130
|
+
* targetCarId: 'a3i.acme.payment-processor:AF-L4@2.0.0',
|
|
131
|
+
* action: 'processPayment',
|
|
132
|
+
* params: { invoiceId: '12345', amount: 100 },
|
|
133
|
+
* });
|
|
134
|
+
*
|
|
135
|
+
* if (result.success) {
|
|
136
|
+
* console.log('Payment processed:', result.result);
|
|
137
|
+
* }
|
|
138
|
+
* ```
|
|
139
|
+
*/
|
|
140
|
+
a2aInvoke(callerCarId: string, options: A2AInvokeOptions): Promise<A2AInvokeResult>;
|
|
141
|
+
/**
|
|
142
|
+
* Discover available agents for A2A communication
|
|
143
|
+
*
|
|
144
|
+
* @param options - Discovery filters
|
|
145
|
+
* @returns List of available endpoints
|
|
146
|
+
*
|
|
147
|
+
* @example
|
|
148
|
+
* ```typescript
|
|
149
|
+
* // Find agents that can process payments
|
|
150
|
+
* const endpoints = await anchor.a2aDiscover({
|
|
151
|
+
* capabilities: ['payments'],
|
|
152
|
+
* minTier: 4,
|
|
153
|
+
* });
|
|
154
|
+
* ```
|
|
155
|
+
*/
|
|
156
|
+
a2aDiscover(options?: A2ADiscoverOptions): Promise<A2AEndpoint[]>;
|
|
157
|
+
/**
|
|
158
|
+
* Ping another agent to check availability
|
|
159
|
+
*
|
|
160
|
+
* @param targetCarId - Target agent CAR ID
|
|
161
|
+
* @returns Ping result with availability status
|
|
162
|
+
*/
|
|
163
|
+
a2aPing(targetCarId: string): Promise<A2APingResult>;
|
|
164
|
+
/**
|
|
165
|
+
* Get chain-of-trust information for an A2A request
|
|
166
|
+
*
|
|
167
|
+
* @param requestId - A2A request ID
|
|
168
|
+
* @returns Chain information and validation
|
|
169
|
+
*/
|
|
170
|
+
a2aGetChain(requestId: string): Promise<A2AChainInfo>;
|
|
171
|
+
/**
|
|
172
|
+
* Register this agent as an A2A endpoint
|
|
173
|
+
*
|
|
174
|
+
* @param endpoint - Endpoint configuration
|
|
175
|
+
*
|
|
176
|
+
* @example
|
|
177
|
+
* ```typescript
|
|
178
|
+
* await anchor.a2aRegisterEndpoint({
|
|
179
|
+
* car: 'a3i.acme.my-agent:ABF-L3@1.0.0',
|
|
180
|
+
* url: 'https://my-agent.example.com/a2a',
|
|
181
|
+
* capabilities: ['data-processing'],
|
|
182
|
+
* actions: [{
|
|
183
|
+
* name: 'processData',
|
|
184
|
+
* description: 'Process incoming data',
|
|
185
|
+
* minTier: 3,
|
|
186
|
+
* streaming: false,
|
|
187
|
+
* }],
|
|
188
|
+
* });
|
|
189
|
+
* ```
|
|
190
|
+
*/
|
|
191
|
+
a2aRegisterEndpoint(endpoint: {
|
|
192
|
+
car: string;
|
|
193
|
+
url: string;
|
|
194
|
+
capabilities?: string[];
|
|
195
|
+
actions?: Array<{
|
|
196
|
+
name: string;
|
|
197
|
+
description: string;
|
|
198
|
+
minTier?: number;
|
|
199
|
+
streaming?: boolean;
|
|
200
|
+
}>;
|
|
201
|
+
trustRequirements?: {
|
|
202
|
+
minTier?: number;
|
|
203
|
+
requiredCapabilities?: string[];
|
|
204
|
+
};
|
|
205
|
+
}): Promise<void>;
|
|
206
|
+
/**
|
|
207
|
+
* Unregister this agent from A2A
|
|
208
|
+
*
|
|
209
|
+
* @param car - Agent CAR ID to unregister
|
|
210
|
+
*/
|
|
211
|
+
a2aUnregisterEndpoint(car: string): Promise<void>;
|
|
212
|
+
/**
|
|
213
|
+
* Make an authenticated API request
|
|
214
|
+
*/
|
|
215
|
+
private request;
|
|
216
|
+
/**
|
|
217
|
+
* Create SDK error from API response
|
|
218
|
+
*/
|
|
219
|
+
private createErrorFromResponse;
|
|
220
|
+
/**
|
|
221
|
+
* Map HTTP status to SDK error code
|
|
222
|
+
*/
|
|
223
|
+
private mapStatusToErrorCode;
|
|
224
|
+
/**
|
|
225
|
+
* Validate CAR ID or throw
|
|
226
|
+
*/
|
|
227
|
+
private validateCAROrThrow;
|
|
228
|
+
/**
|
|
229
|
+
* Sleep for specified milliseconds
|
|
230
|
+
*/
|
|
231
|
+
private sleep;
|
|
232
|
+
}
|
|
233
|
+
//# 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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"}
|