@a5c-ai/agent-catalog 5.0.1-staging.e6f9d98bf → 5.0.1-staging.eaefc7aec
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/dist/data.d.ts.map +1 -1
- package/dist/data.js +92 -30
- package/dist/discovery-snapshot.json +11740 -11688
- package/dist/models.d.ts +39 -0
- package/dist/models.d.ts.map +1 -1
- package/dist/sdk.d.ts +16 -1
- package/dist/sdk.d.ts.map +1 -1
- package/dist/sdk.js +78 -0
- package/package.json +2 -2
package/dist/data.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"AAiDA,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,
|
|
1
|
+
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"AAiDA,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EAEZ,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EAIpB,WAAW,EAEX,cAAc,EAEd,aAAa,EAKb,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,EAGlB,sBAAsB,EACtB,iBAAiB,EACjB,aAAa,EAEb,mBAAmB,EACnB,cAAc,EACf,MAAM,UAAU,CAAC;AAk1BlB,UAAU,qBAAqB;IAC7B,KAAK,EAAE,YAAY,CAAC;IACpB,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,cAAc,CAAC;IAC/B,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,SAAS,EAAE,oBAAoB,EAAE,CAAC;IAClC,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,YAAY,EAAE,oBAAoB,EAAE,CAAC;IACrC,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;IACxC,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACxC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACxD,sBAAsB,EAAE,qBAAqB,EAAE,CAAC;IAChD,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;IAC1D,aAAa,EAAE,iBAAiB,EAAE,CAAC;IACnC,aAAa,EAAE,sBAAsB,EAAE,CAAC;IACxC,oBAAoB,EAAE,mBAAmB,EAAE,CAAC;IAC5C,YAAY,EAAE,YAAY,CAAC;CAC5B;AA2FD,wBAAgB,0BAA0B,IAAI,IAAI,CAGjD;AAED,wBAAgB,mBAAmB,IAAI,qBAAqB,CAK3D;AAoDD,eAAO,MAAM,cAAc,eAA8D,CAAC;AAC1F,eAAO,MAAM,eAAe,gBAA+D,CAAC;AAC5F,eAAO,MAAM,QAAQ,kBAAwD,CAAC;AAC9E,eAAO,MAAM,MAAM,eAAsD,CAAC;AAC1E,eAAO,MAAM,SAAS,wBAAyD,CAAC;AAChF,eAAO,MAAM,MAAM,gBAAsD,CAAC;AAC1E,eAAO,MAAM,UAAU,uBAA0D,CAAC;AAClF,eAAO,MAAM,YAAY,wBAA4D,CAAC;AACtF,eAAO,MAAM,UAAU,sBAA0D,CAAC;AAClF,eAAO,MAAM,KAAK,kBAAqD,CAAC;AACxE,eAAO,MAAM,eAAe,iBAA8D,CAAC;AAC3F,eAAO,MAAM,iBAAiB,mBAAgE,CAAC;AAC/F,eAAO,MAAM,SAAS,qBAAyD,CAAC;AAChF,eAAO,MAAM,oBAAoB,qBAAkE,CAAC;AACpG,eAAO,MAAM,MAAM,gBAAsD,CAAC;AAC1E,eAAO,MAAM,eAAe,0BAA8D,CAAC;AAC3F,eAAO,MAAM,oBAAoB,qCAAmE,CAAC;AACrG,eAAO,MAAM,yBAAyB,yBAAsE,CAAC;AAC7G,eAAO,MAAM,iBAAiB,yCAAiE,CAAC;AAChG,eAAO,MAAM,cAAc,qBAA6D,CAAC;AACzF,eAAO,MAAM,cAAc,0BAA6D,CAAC;AACzF,eAAO,MAAM,qBAAqB,uBAAoE,CAAC;AACvG,eAAO,MAAM,aAAa,cAA6D,CAAC"}
|
package/dist/data.js
CHANGED
|
@@ -121,6 +121,7 @@ function toTransportDescriptor(node) {
|
|
|
121
121
|
persistentSession: Boolean(node.persistentSession),
|
|
122
122
|
stdinInjection: Boolean(node.stdinInjection),
|
|
123
123
|
blockingStopHook: Boolean(node.blockingStopHook),
|
|
124
|
+
codecCapabilities: parseCodecCapabilities(node.codecCapabilities),
|
|
124
125
|
evidenceIds: nodeEvidenceIds(node),
|
|
125
126
|
};
|
|
126
127
|
}
|
|
@@ -265,21 +266,14 @@ function agentPluginTargetIds(agentNodeId) {
|
|
|
265
266
|
.map((node) => valueAsString(node.targetId))
|
|
266
267
|
.filter(Boolean);
|
|
267
268
|
}
|
|
268
|
-
function matchesAgentId(nodeAgentId, targetAgentId
|
|
269
|
+
function matchesAgentId(nodeAgentId, targetAgentId) {
|
|
269
270
|
if (nodeAgentId === targetAgentId)
|
|
270
271
|
return true;
|
|
271
272
|
// Handle "agent:codex" matching "codex"
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
if (
|
|
273
|
+
if (nodeAgentId.startsWith("agent:") && nodeAgentId.slice("agent:".length) === targetAgentId)
|
|
274
|
+
return true;
|
|
275
|
+
if (targetAgentId.startsWith("agent:") && targetAgentId.slice("agent:".length) === nodeAgentId)
|
|
275
276
|
return true;
|
|
276
|
-
// Handle host renames via aliases (e.g. agentId "gemini" with alias "gemini-cli")
|
|
277
|
-
if (targetAliases) {
|
|
278
|
-
for (const alias of targetAliases) {
|
|
279
|
-
if (nodeSlug === alias)
|
|
280
|
-
return true;
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
277
|
return false;
|
|
284
278
|
}
|
|
285
279
|
function agentSessionNuanceIds(agentNodeId) {
|
|
@@ -288,14 +282,13 @@ function agentSessionNuanceIds(agentNodeId) {
|
|
|
288
282
|
.filter(Boolean);
|
|
289
283
|
if (edgeBased.length > 0)
|
|
290
284
|
return edgeBased;
|
|
291
|
-
// Fallback: find SessionSemantics nodes whose agentId matches
|
|
285
|
+
// Fallback: find SessionSemantics nodes whose agentId matches
|
|
292
286
|
const agentNode = (0, atlas_bridge_1.getNodeById)(agentNodeId);
|
|
293
287
|
const agentId = valueAsString(agentNode?.agentId);
|
|
294
288
|
if (!agentId)
|
|
295
289
|
return [];
|
|
296
|
-
const aliases = stringArray(agentNode?.aliases);
|
|
297
290
|
return (0, atlas_bridge_1.listNodesByKind)("SessionSemantics")
|
|
298
|
-
.filter((node) => matchesAgentId(valueAsString(node.agentId), agentId
|
|
291
|
+
.filter((node) => matchesAgentId(valueAsString(node.agentId), agentId))
|
|
299
292
|
.map((node) => valueAsString(node.sessionSemanticsId))
|
|
300
293
|
.filter(Boolean);
|
|
301
294
|
}
|
|
@@ -305,16 +298,15 @@ function agentLifecycleNuanceIds(agentNodeId) {
|
|
|
305
298
|
.filter(Boolean);
|
|
306
299
|
if (edgeBased.length > 0)
|
|
307
300
|
return edgeBased;
|
|
308
|
-
// Fallback: find LifecycleSemantics nodes whose agentId and versionRange match
|
|
301
|
+
// Fallback: find LifecycleSemantics nodes whose agentId and versionRange match
|
|
309
302
|
const agentNode = (0, atlas_bridge_1.getNodeById)(agentNodeId);
|
|
310
303
|
const agentId = valueAsString(agentNode?.agentId);
|
|
311
304
|
const agentVersionRange = valueAsString(agentNode?.versionRange);
|
|
312
305
|
if (!agentId)
|
|
313
306
|
return [];
|
|
314
|
-
const aliases = stringArray(agentNode?.aliases);
|
|
315
307
|
return (0, atlas_bridge_1.listNodesByKind)("LifecycleSemantics")
|
|
316
308
|
.filter((node) => {
|
|
317
|
-
if (!matchesAgentId(valueAsString(node.agentId), agentId
|
|
309
|
+
if (!matchesAgentId(valueAsString(node.agentId), agentId))
|
|
318
310
|
return false;
|
|
319
311
|
// If agent has a specific version range, match lifecycle nodes with same or broader range
|
|
320
312
|
if (agentVersionRange) {
|
|
@@ -327,6 +319,76 @@ function agentLifecycleNuanceIds(agentNodeId) {
|
|
|
327
319
|
.map((node) => valueAsString(node.lifecycleSemanticsId))
|
|
328
320
|
.filter(Boolean);
|
|
329
321
|
}
|
|
322
|
+
function toHookSupportLevel(value) {
|
|
323
|
+
const normalized = valueAsString(value);
|
|
324
|
+
if (normalized === 'native' || normalized === 'emulated')
|
|
325
|
+
return normalized;
|
|
326
|
+
return 'unsupported';
|
|
327
|
+
}
|
|
328
|
+
function parseHookSupportMap(value) {
|
|
329
|
+
const obj = (value && typeof value === 'object') ? value : {};
|
|
330
|
+
return {
|
|
331
|
+
sessionStart: toHookSupportLevel(obj.sessionStart),
|
|
332
|
+
stop: toHookSupportLevel(obj.stop),
|
|
333
|
+
userPromptSubmit: toHookSupportLevel(obj.userPromptSubmit),
|
|
334
|
+
preToolUse: toHookSupportLevel(obj.preToolUse),
|
|
335
|
+
sessionEnd: toHookSupportLevel(obj.sessionEnd),
|
|
336
|
+
};
|
|
337
|
+
}
|
|
338
|
+
function parsePartialHookSupportMap(value) {
|
|
339
|
+
const obj = (value && typeof value === 'object') ? value : {};
|
|
340
|
+
const result = {};
|
|
341
|
+
if (obj.sessionStart != null)
|
|
342
|
+
result.sessionStart = toHookSupportLevel(obj.sessionStart);
|
|
343
|
+
if (obj.stop != null)
|
|
344
|
+
result.stop = toHookSupportLevel(obj.stop);
|
|
345
|
+
if (obj.userPromptSubmit != null)
|
|
346
|
+
result.userPromptSubmit = toHookSupportLevel(obj.userPromptSubmit);
|
|
347
|
+
if (obj.preToolUse != null)
|
|
348
|
+
result.preToolUse = toHookSupportLevel(obj.preToolUse);
|
|
349
|
+
if (obj.sessionEnd != null)
|
|
350
|
+
result.sessionEnd = toHookSupportLevel(obj.sessionEnd);
|
|
351
|
+
return result;
|
|
352
|
+
}
|
|
353
|
+
function parseHookSupport(value) {
|
|
354
|
+
if (!value || typeof value !== 'object')
|
|
355
|
+
return undefined;
|
|
356
|
+
const obj = value;
|
|
357
|
+
if (!obj.interactive || typeof obj.interactive !== 'object')
|
|
358
|
+
return undefined;
|
|
359
|
+
return {
|
|
360
|
+
interactive: parseHookSupportMap(obj.interactive),
|
|
361
|
+
nonInteractive: parsePartialHookSupportMap(obj.nonInteractive),
|
|
362
|
+
};
|
|
363
|
+
}
|
|
364
|
+
function parseBridgeCapabilities(value) {
|
|
365
|
+
if (!value || typeof value !== 'object')
|
|
366
|
+
return undefined;
|
|
367
|
+
const obj = value;
|
|
368
|
+
return {
|
|
369
|
+
interactiveBridge: Boolean(obj.interactiveBridge),
|
|
370
|
+
sessionResume: Boolean(obj.sessionResume),
|
|
371
|
+
positionalPrompt: Boolean(obj.positionalPrompt),
|
|
372
|
+
};
|
|
373
|
+
}
|
|
374
|
+
function parseToolSchemaFormat(value) {
|
|
375
|
+
const normalized = valueAsString(value);
|
|
376
|
+
if (normalized === "openai" || normalized === "anthropic" || normalized === "google")
|
|
377
|
+
return normalized;
|
|
378
|
+
return "none";
|
|
379
|
+
}
|
|
380
|
+
function parseCodecCapabilities(value) {
|
|
381
|
+
if (!value || typeof value !== 'object')
|
|
382
|
+
return undefined;
|
|
383
|
+
const obj = value;
|
|
384
|
+
return {
|
|
385
|
+
supportsTools: obj.supportsTools === true || obj.supportsTools === "true",
|
|
386
|
+
supportsStreaming: obj.supportsStreaming === true || obj.supportsStreaming === "true",
|
|
387
|
+
supportsTokenCounting: obj.supportsTokenCounting === true || obj.supportsTokenCounting === "true",
|
|
388
|
+
costTracking: obj.costTracking === true || obj.costTracking === "true",
|
|
389
|
+
toolSchemaFormat: parseToolSchemaFormat(obj.toolSchemaFormat),
|
|
390
|
+
};
|
|
391
|
+
}
|
|
330
392
|
function toAgentVersion(node) {
|
|
331
393
|
return {
|
|
332
394
|
agentId: valueAsString(node.agentId),
|
|
@@ -350,6 +412,14 @@ function toAgentVersion(node) {
|
|
|
350
412
|
sessionNuanceIds: agentSessionNuanceIds(node.id),
|
|
351
413
|
lifecycleNuanceIds: agentLifecycleNuanceIds(node.id),
|
|
352
414
|
evidenceIds: nodeEvidenceIds(node),
|
|
415
|
+
interactiveSignals: node.interactiveSignals != null ? {
|
|
416
|
+
turnCompletePattern: valueAsString(node.interactiveSignals?.turnCompletePattern) || undefined,
|
|
417
|
+
exitOnNonInteractive: node.interactiveSignals?.exitOnNonInteractive === true ? true : undefined,
|
|
418
|
+
nonInteractiveMode: valueAsString(node.interactiveSignals?.nonInteractiveMode) || undefined,
|
|
419
|
+
interactiveMode: valueAsString(node.interactiveSignals?.interactiveMode),
|
|
420
|
+
} : undefined,
|
|
421
|
+
hookSupport: parseHookSupport(node.hookSupport),
|
|
422
|
+
bridgeCapabilities: parseBridgeCapabilities(node.bridgeCapabilities),
|
|
353
423
|
};
|
|
354
424
|
}
|
|
355
425
|
function evidenceIdFromNode(node) {
|
|
@@ -418,25 +488,16 @@ function synthesizeClaimsFromEvidenceRefs(node) {
|
|
|
418
488
|
});
|
|
419
489
|
}
|
|
420
490
|
if (webIds.length > 0) {
|
|
421
|
-
// Look for existing Claim
|
|
422
|
-
|
|
423
|
-
const capabilityId = valueAsString(node.capabilityId);
|
|
424
|
-
const allWebClaims = (0, atlas_bridge_1.listNodesByKind)("Claim").filter((claimNode) => {
|
|
491
|
+
// Look for an existing Claim node matching a web evidence ID
|
|
492
|
+
const matchedWebClaim = (0, atlas_bridge_1.listNodesByKind)("Claim").find((claimNode) => {
|
|
425
493
|
const claimEvidenceIds = stringArray(claimNode.evidenceIds);
|
|
426
494
|
return claimEvidenceIds.some((id) => webIds.includes(id)) && valueAsString(claimNode.provenanceKind) !== "repo-observation";
|
|
427
495
|
});
|
|
428
|
-
// Sort: prefer claims whose claimId contains the capabilityId (more specific)
|
|
429
|
-
const sortedWebClaims = [...allWebClaims].sort((a, b) => {
|
|
430
|
-
const aSpecific = valueAsString(a.claimId).includes(capabilityId) ? 1 : 0;
|
|
431
|
-
const bSpecific = valueAsString(b.claimId).includes(capabilityId) ? 1 : 0;
|
|
432
|
-
return bSpecific - aSpecific;
|
|
433
|
-
});
|
|
434
|
-
const matchedWebClaim = sortedWebClaims[0];
|
|
435
496
|
if (matchedWebClaim) {
|
|
436
497
|
const claim = toClaimRecord(matchedWebClaim);
|
|
437
|
-
// Ensure partial
|
|
498
|
+
// Ensure partial vendor claims always have unresolved gaps
|
|
438
499
|
if (claim.evidenceStrength !== "corroborated" && claim.unresolvedGaps.length === 0) {
|
|
439
|
-
claim.unresolvedGaps = [`Vendor evidence for ${capabilityId} has not been fully corroborated.`];
|
|
500
|
+
claim.unresolvedGaps = [`Vendor evidence for ${valueAsString(node.capabilityId)} has not been fully corroborated.`];
|
|
440
501
|
}
|
|
441
502
|
claims.push(claim);
|
|
442
503
|
}
|
|
@@ -637,6 +698,7 @@ const BABYSITTER_PLUGIN_TARGETS = new Set([
|
|
|
637
698
|
"plugin-target:claude-code", "plugin-target:codex", "plugin-target:cursor",
|
|
638
699
|
"plugin-target:gemini-cli", "plugin-target:copilot-cli", "plugin-target:pi",
|
|
639
700
|
"plugin-target:omp", "plugin-target:opencode", "plugin-target:openclaw",
|
|
701
|
+
"plugin-target:hermes",
|
|
640
702
|
]);
|
|
641
703
|
// Atlas uses different IDs for some targets
|
|
642
704
|
const TARGET_ID_ALIASES = {
|