@a5c-ai/agent-catalog 5.0.1-staging.89df3b1fa → 5.0.1-staging.8a38571d3
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/atlas-bridge.d.ts.map +1 -1
- package/dist/atlas-bridge.js +4 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +15 -3
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +187 -14
- package/dist/discovery-snapshot.json +54269 -25892
- package/dist/models.d.ts +16 -0
- package/dist/models.d.ts.map +1 -1
- package/dist/sdk.d.ts +18 -2
- package/dist/sdk.d.ts.map +1 -1
- package/dist/sdk.js +237 -14
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"atlas-bridge.d.ts","sourceRoot":"","sources":["../src/atlas-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,SAAS,EACT,SAAS,EACT,iBAAiB,EACjB,cAAc,EACf,MAAM,UAAU,CAAC;AAuElB,wBAAgB,cAAc,IAAI,SAAS,EAAE,CAE5C;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,EAAE,CAEpE;AAED,wBAAgB,WAAW,CAAC,KAAK,SAAS,SAAS,GAAG,SAAS,EAC7D,MAAM,EAAE,MAAM,GACb,KAAK,GAAG,SAAS,CAGnB;AAED,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,MAAM,GACf,iBAAiB,EAAE,CAErB;AAED,wBAAgB,cAAc,IAAI,iBAAiB,EAAE,CAEpD;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,SAAS,EAAE,CAOb;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,SAAS,EAAE,CAOb;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAI5E;AAMD,wBAAgB,gBAAgB,IAAI,aAAa,CAYhD;AAED,wBAAgB,iBAAiB,IAAI,cAAc,
|
|
1
|
+
{"version":3,"file":"atlas-bridge.d.ts","sourceRoot":"","sources":["../src/atlas-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,SAAS,EACT,SAAS,EACT,iBAAiB,EACjB,cAAc,EACf,MAAM,UAAU,CAAC;AAuElB,wBAAgB,cAAc,IAAI,SAAS,EAAE,CAE5C;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,EAAE,CAEpE;AAED,wBAAgB,WAAW,CAAC,KAAK,SAAS,SAAS,GAAG,SAAS,EAC7D,MAAM,EAAE,MAAM,GACb,KAAK,GAAG,SAAS,CAGnB;AAED,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,MAAM,GACf,iBAAiB,EAAE,CAErB;AAED,wBAAgB,cAAc,IAAI,iBAAiB,EAAE,CAEpD;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,SAAS,EAAE,CAOb;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,SAAS,EAAE,CAOb;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAI5E;AAMD,wBAAgB,gBAAgB,IAAI,aAAa,CAYhD;AAED,wBAAgB,iBAAiB,IAAI,cAAc,CAmBlD;AAED,wBAAgB,eAAe,IAAI,YAAY,CAO9C;AAMD,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE;IAAE,KAAK,EAAE,SAAS,EAAE,CAAA;CAAE,EAC/B,MAAM,EAAE,MAAM,GACb,SAAS,EAAE,CAIb;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE;IAAE,KAAK,EAAE,SAAS,EAAE,CAAA;CAAE,EAC/B,QAAQ,EAAE,MAAM,GACf,SAAS,EAAE,CAEb;AAED,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C;AAMD,wBAAgB,qBAAqB,IAAI,IAAI,CAI5C"}
|
package/dist/atlas-bridge.js
CHANGED
|
@@ -144,8 +144,12 @@ function getOntologySchema() {
|
|
|
144
144
|
return {
|
|
145
145
|
kind: "OntologySchema",
|
|
146
146
|
id: "schema:agent-catalog-ontology",
|
|
147
|
+
schemaId: "schema:agent-catalog-ontology",
|
|
148
|
+
version: "2026.04.agent-catalog-v2",
|
|
147
149
|
nodeKinds,
|
|
148
150
|
edgeKinds,
|
|
151
|
+
versionScopingRules: [],
|
|
152
|
+
deprecationRules: [],
|
|
149
153
|
};
|
|
150
154
|
}
|
|
151
155
|
function getCatalogGraph() {
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -12,6 +12,7 @@ exports.listCliCapabilitySupport = listCliCapabilitySupport;
|
|
|
12
12
|
exports.listCliAgentRelations = listCliAgentRelations;
|
|
13
13
|
exports.listCliPackageRelations = listCliPackageRelations;
|
|
14
14
|
exports.listCliProcessRelations = listCliProcessRelations;
|
|
15
|
+
const atlas_1 = require("@a5c-ai/atlas");
|
|
15
16
|
const data_1 = require("./data");
|
|
16
17
|
const atlas_bridge_1 = require("./atlas-bridge");
|
|
17
18
|
const transport_mux_cutover_1 = require("./transport-mux-cutover");
|
|
@@ -87,7 +88,18 @@ function toCliGraphEdgeRow(edge) {
|
|
|
87
88
|
};
|
|
88
89
|
}
|
|
89
90
|
function claimNodesFor(nodeId) {
|
|
90
|
-
|
|
91
|
+
const edgeBased = (0, atlas_bridge_1.listOutgoingTargets)(nodeId, "supported_by_claim").filter((node) => node.kind === "Claim");
|
|
92
|
+
if (edgeBased.length > 0)
|
|
93
|
+
return edgeBased;
|
|
94
|
+
// Fallback: find Claim nodes whose evidenceIds overlap with the node's evidenceRefs
|
|
95
|
+
const node = (0, atlas_bridge_1.getNodeById)(nodeId);
|
|
96
|
+
if (!node)
|
|
97
|
+
return [];
|
|
98
|
+
const evidenceIds = stringArray(node.evidenceRefs);
|
|
99
|
+
if (evidenceIds.length === 0)
|
|
100
|
+
return [];
|
|
101
|
+
return (0, atlas_bridge_1.listGraphNodes)()
|
|
102
|
+
.filter((candidate) => candidate.kind === "Claim" && stringArray(candidate.evidenceIds).some((id) => evidenceIds.includes(id)));
|
|
91
103
|
}
|
|
92
104
|
function sourceNodesForClaim(claimNodeId) {
|
|
93
105
|
const claimNode = (0, atlas_bridge_1.getNodeById)(claimNodeId);
|
|
@@ -294,8 +306,8 @@ function listCliPackageRelations(packageId) {
|
|
|
294
306
|
const processes = (0, atlas_bridge_1.listOutgoingTargets)(node.id, "surfaces_process");
|
|
295
307
|
const paths = (0, atlas_bridge_1.listOutgoingTargets)(node.id, "references_path");
|
|
296
308
|
const ciSurfaces = (0, atlas_bridge_1.listOutgoingTargets)(node.id, "validated_by_ci");
|
|
297
|
-
const graphIds = (
|
|
298
|
-
.filter((edge) => edge.
|
|
309
|
+
const graphIds = atlas_1.atlas.getOutgoing(node.id)
|
|
310
|
+
.filter((edge) => edge.kind === "wraps_graph")
|
|
299
311
|
.map((edge) => edge.to);
|
|
300
312
|
return {
|
|
301
313
|
nodeId: node.id,
|
package/dist/data.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"AAiDA,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EAIpB,WAAW,EACX,cAAc,EAEd,aAAa,EAGb,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,EACb,mBAAmB,EACnB,cAAc,EACf,MAAM,UAAU,CAAC;AA0xBlB,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
|
@@ -5,6 +5,9 @@ exports.clearAgentCatalogDataCache = clearAgentCatalogDataCache;
|
|
|
5
5
|
exports.getCatalogDataState = getCatalogDataState;
|
|
6
6
|
const atlas_bridge_1 = require("./atlas-bridge");
|
|
7
7
|
// Evidence projection — inlined from deleted evidence-projection.ts
|
|
8
|
+
function evidenceIdFromNodeId(nodeId) {
|
|
9
|
+
return nodeId.startsWith("evidence:") ? nodeId.slice("evidence:".length) : nodeId;
|
|
10
|
+
}
|
|
8
11
|
function buildClaimsByEvidence(claimNodes, evidenceNodes, relationships) {
|
|
9
12
|
const claimsByGraphId = new Map(Array.from(claimNodes, (node) => [String(node.id), node]));
|
|
10
13
|
const evidenceByGraphId = new Map(Array.from(evidenceNodes, (node) => [String(node.id), node]));
|
|
@@ -16,7 +19,7 @@ function buildClaimsByEvidence(claimNodes, evidenceNodes, relationships) {
|
|
|
16
19
|
const evidenceNode = evidenceByGraphId.get(rel.to);
|
|
17
20
|
if (!claimNode || !evidenceNode)
|
|
18
21
|
continue;
|
|
19
|
-
const evidenceId = valueAsString(evidenceNode.evidenceId);
|
|
22
|
+
const evidenceId = valueAsString(evidenceNode.evidenceId) || evidenceIdFromNodeId(String(evidenceNode.id));
|
|
20
23
|
const bucket = claimsByEvidence.get(evidenceId);
|
|
21
24
|
if (bucket)
|
|
22
25
|
bucket.push(claimNode);
|
|
@@ -111,7 +114,7 @@ function toModelVersion(node) {
|
|
|
111
114
|
}
|
|
112
115
|
function toTransportDescriptor(node) {
|
|
113
116
|
return {
|
|
114
|
-
transportId:
|
|
117
|
+
transportId: transportRuntimeId(node),
|
|
115
118
|
label: valueAsString(node.label),
|
|
116
119
|
status: (0, transport_mux_cutover_1.effectiveTransportMuxClaimStatus)(valueAsString(node.status), nodeEvidenceIds(node)),
|
|
117
120
|
interactive: Boolean(node.persistentSession) || Boolean(node.stdinInjection),
|
|
@@ -123,7 +126,7 @@ function toTransportDescriptor(node) {
|
|
|
123
126
|
}
|
|
124
127
|
function toCapabilityDescriptor(node) {
|
|
125
128
|
return {
|
|
126
|
-
capabilityId: valueAsString(node.capabilityId),
|
|
129
|
+
capabilityId: valueAsString(node.capabilityId) || String(node.id).replace(/^capability:/, ""),
|
|
127
130
|
namespace: valueAsString(node.namespace),
|
|
128
131
|
label: valueAsString(node.label),
|
|
129
132
|
description: valueAsString(node.description),
|
|
@@ -196,19 +199,49 @@ function toProcessDescriptor(node) {
|
|
|
196
199
|
};
|
|
197
200
|
}
|
|
198
201
|
function agentCapabilityIds(agentNodeId) {
|
|
199
|
-
|
|
202
|
+
// First try graph edges
|
|
203
|
+
const edgeBased = (0, atlas_bridge_1.listOutgoingTargets)(agentNodeId, "supports_capability")
|
|
200
204
|
.map((supportNode) => valueAsString(supportNode.capabilityId) || valueAsString((0, atlas_bridge_1.listOutgoingTargets)(supportNode.id, "for_capability")[0]?.capabilityId))
|
|
201
205
|
.filter(Boolean);
|
|
206
|
+
if (edgeBased.length > 0)
|
|
207
|
+
return edgeBased;
|
|
208
|
+
// Fallback: find CapabilitySupport nodes whose subjectId matches
|
|
209
|
+
return Array.from(new Set((0, atlas_bridge_1.listNodesByKind)("CapabilitySupport")
|
|
210
|
+
.filter((node) => valueAsString(node.subjectId) === agentNodeId)
|
|
211
|
+
.map((node) => valueAsString(node.capabilityId))
|
|
212
|
+
.filter(Boolean)));
|
|
202
213
|
}
|
|
203
214
|
function agentHookIds(agentNodeId) {
|
|
204
|
-
|
|
215
|
+
const edgeBased = (0, atlas_bridge_1.listOutgoingTargets)(agentNodeId, "emits_hook")
|
|
205
216
|
.map((mapping) => valueAsString(mapping.hookId))
|
|
206
217
|
.filter(Boolean);
|
|
218
|
+
if (edgeBased.length > 0)
|
|
219
|
+
return edgeBased;
|
|
220
|
+
// Fallback: derive from agent's plugin targets and their hook mappings
|
|
221
|
+
const targetIds = agentPluginTargetIds(agentNodeId);
|
|
222
|
+
const hookFamilies = new Set();
|
|
223
|
+
for (const node of (0, atlas_bridge_1.listNodesByKind)("PluginTarget")) {
|
|
224
|
+
const targetId = pluginTargetId(node.id);
|
|
225
|
+
if (targetIds.includes(targetId)) {
|
|
226
|
+
const adapterName = valueAsString(node.adapterName);
|
|
227
|
+
if (adapterName)
|
|
228
|
+
hookFamilies.add(adapterName);
|
|
229
|
+
if (targetId !== adapterName)
|
|
230
|
+
hookFamilies.add(targetId);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
return Array.from(new Set((0, atlas_bridge_1.listNodesByKind)("HookMapping")
|
|
234
|
+
.filter((mapping) => hookFamilies.has(valueAsString(mapping.adapterFamily)))
|
|
235
|
+
.map((mapping) => valueAsString(mapping.hookId))
|
|
236
|
+
.filter(Boolean)));
|
|
237
|
+
}
|
|
238
|
+
function transportRuntimeId(node) {
|
|
239
|
+
return valueAsString(node.runtimeId) || valueAsString(node.runtimeKind) || String(node.id).replace(/^transport-runtime:/, "");
|
|
207
240
|
}
|
|
208
241
|
function agentTransportIds(agentNodeId) {
|
|
209
242
|
return (0, atlas_bridge_1.listOutgoingTargets)(agentNodeId, "uses_transport")
|
|
210
243
|
.filter((node) => node.kind === "TransportRuntime")
|
|
211
|
-
.map((node) =>
|
|
244
|
+
.map((node) => transportRuntimeId(node))
|
|
212
245
|
.filter(Boolean);
|
|
213
246
|
}
|
|
214
247
|
function agentModalityIds(agentNodeId) {
|
|
@@ -232,13 +265,65 @@ function agentPluginTargetIds(agentNodeId) {
|
|
|
232
265
|
.map((node) => valueAsString(node.targetId))
|
|
233
266
|
.filter(Boolean);
|
|
234
267
|
}
|
|
268
|
+
function matchesAgentId(nodeAgentId, targetAgentId, targetAliases) {
|
|
269
|
+
if (nodeAgentId === targetAgentId)
|
|
270
|
+
return true;
|
|
271
|
+
// Handle "agent:codex" matching "codex"
|
|
272
|
+
const nodeSlug = nodeAgentId.startsWith("agent:") ? nodeAgentId.slice("agent:".length) : nodeAgentId;
|
|
273
|
+
const targetSlug = targetAgentId.startsWith("agent:") ? targetAgentId.slice("agent:".length) : targetAgentId;
|
|
274
|
+
if (nodeSlug === targetSlug)
|
|
275
|
+
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
|
+
return false;
|
|
284
|
+
}
|
|
235
285
|
function agentSessionNuanceIds(agentNodeId) {
|
|
236
|
-
|
|
286
|
+
const edgeBased = (0, atlas_bridge_1.listOutgoingTargets)(agentNodeId, "uses_session_semantics")
|
|
287
|
+
.map((node) => valueAsString(node.sessionSemanticsId))
|
|
288
|
+
.filter(Boolean);
|
|
289
|
+
if (edgeBased.length > 0)
|
|
290
|
+
return edgeBased;
|
|
291
|
+
// Fallback: find SessionSemantics nodes whose agentId matches (including aliases)
|
|
292
|
+
const agentNode = (0, atlas_bridge_1.getNodeById)(agentNodeId);
|
|
293
|
+
const agentId = valueAsString(agentNode?.agentId);
|
|
294
|
+
if (!agentId)
|
|
295
|
+
return [];
|
|
296
|
+
const aliases = stringArray(agentNode?.aliases);
|
|
297
|
+
return (0, atlas_bridge_1.listNodesByKind)("SessionSemantics")
|
|
298
|
+
.filter((node) => matchesAgentId(valueAsString(node.agentId), agentId, aliases))
|
|
237
299
|
.map((node) => valueAsString(node.sessionSemanticsId))
|
|
238
300
|
.filter(Boolean);
|
|
239
301
|
}
|
|
240
302
|
function agentLifecycleNuanceIds(agentNodeId) {
|
|
241
|
-
|
|
303
|
+
const edgeBased = (0, atlas_bridge_1.listOutgoingTargets)(agentNodeId, "uses_lifecycle_semantics")
|
|
304
|
+
.map((node) => valueAsString(node.lifecycleSemanticsId))
|
|
305
|
+
.filter(Boolean);
|
|
306
|
+
if (edgeBased.length > 0)
|
|
307
|
+
return edgeBased;
|
|
308
|
+
// Fallback: find LifecycleSemantics nodes whose agentId and versionRange match (including aliases)
|
|
309
|
+
const agentNode = (0, atlas_bridge_1.getNodeById)(agentNodeId);
|
|
310
|
+
const agentId = valueAsString(agentNode?.agentId);
|
|
311
|
+
const agentVersionRange = valueAsString(agentNode?.versionRange);
|
|
312
|
+
if (!agentId)
|
|
313
|
+
return [];
|
|
314
|
+
const aliases = stringArray(agentNode?.aliases);
|
|
315
|
+
return (0, atlas_bridge_1.listNodesByKind)("LifecycleSemantics")
|
|
316
|
+
.filter((node) => {
|
|
317
|
+
if (!matchesAgentId(valueAsString(node.agentId), agentId, aliases))
|
|
318
|
+
return false;
|
|
319
|
+
// If agent has a specific version range, match lifecycle nodes with same or broader range
|
|
320
|
+
if (agentVersionRange) {
|
|
321
|
+
const lcRange = valueAsString(node.versionRange);
|
|
322
|
+
if (lcRange && lcRange !== agentVersionRange)
|
|
323
|
+
return false;
|
|
324
|
+
}
|
|
325
|
+
return true;
|
|
326
|
+
})
|
|
242
327
|
.map((node) => valueAsString(node.lifecycleSemanticsId))
|
|
243
328
|
.filter(Boolean);
|
|
244
329
|
}
|
|
@@ -267,17 +352,24 @@ function toAgentVersion(node) {
|
|
|
267
352
|
evidenceIds: nodeEvidenceIds(node),
|
|
268
353
|
};
|
|
269
354
|
}
|
|
355
|
+
function evidenceIdFromNode(node) {
|
|
356
|
+
const explicit = valueAsString(node.evidenceId);
|
|
357
|
+
if (explicit)
|
|
358
|
+
return explicit;
|
|
359
|
+
return evidenceIdFromNodeId(String(node.id));
|
|
360
|
+
}
|
|
270
361
|
function toEvidenceRecord(node, evidenceClaims) {
|
|
362
|
+
const evidenceId = evidenceIdFromNode(node);
|
|
271
363
|
const freshnessWindowDays = typeof node.freshnessWindowDays === "number" && Number.isFinite(node.freshnessWindowDays)
|
|
272
364
|
? node.freshnessWindowDays
|
|
273
365
|
: undefined;
|
|
274
366
|
return {
|
|
275
|
-
evidenceId
|
|
367
|
+
evidenceId,
|
|
276
368
|
kind: valueAsString(node.kindLabel) === "web" ? "web" : "repo",
|
|
277
|
-
sourcePathOrUrl: valueAsString(node.sourcePathOrUrl),
|
|
369
|
+
sourcePathOrUrl: valueAsString(node.sourcePathOrUrl) || valueAsString(node.filePath),
|
|
278
370
|
excerptLocator: valueAsString(node.locator),
|
|
279
|
-
claim: getEvidenceClaimStatement(
|
|
280
|
-
capturedAt: valueAsString(node.capturedAt),
|
|
371
|
+
claim: getEvidenceClaimStatement(evidenceId, evidenceClaims),
|
|
372
|
+
capturedAt: valueAsString(node.capturedAt) || valueAsString(node.observedAt),
|
|
281
373
|
trustLevel: valueAsString(node.trustLevel),
|
|
282
374
|
reviewOwner: valueAsString(node.reviewOwner),
|
|
283
375
|
reviewedAt: valueAsString(node.reviewedAt),
|
|
@@ -299,13 +391,83 @@ function toClaimRecord(node) {
|
|
|
299
391
|
unresolvedGaps: (0, transport_mux_cutover_1.effectiveTransportMuxUnresolvedGaps)(stringArray(node.unresolvedGaps), evidenceIds),
|
|
300
392
|
};
|
|
301
393
|
}
|
|
394
|
+
function synthesizeClaimsFromEvidenceRefs(node) {
|
|
395
|
+
const evidenceIds = nodeEvidenceIds(node);
|
|
396
|
+
if (evidenceIds.length === 0)
|
|
397
|
+
return [];
|
|
398
|
+
const repoIds = evidenceIds.filter((id) => id.startsWith("repo-"));
|
|
399
|
+
const webIds = evidenceIds.filter((id) => id.startsWith("web-"));
|
|
400
|
+
const claims = [];
|
|
401
|
+
if (repoIds.length > 0) {
|
|
402
|
+
// Look for an existing Claim node matching a repo evidence ID
|
|
403
|
+
const matchedRepoClaim = (0, atlas_bridge_1.listNodesByKind)("Claim").find((claimNode) => {
|
|
404
|
+
const claimEvidenceIds = stringArray(claimNode.evidenceIds);
|
|
405
|
+
return claimEvidenceIds.some((id) => repoIds.includes(id)) && valueAsString(claimNode.provenanceKind) === "repo-observation";
|
|
406
|
+
});
|
|
407
|
+
claims.push(matchedRepoClaim ? toClaimRecord(matchedRepoClaim) : {
|
|
408
|
+
claimId: repoIds[0],
|
|
409
|
+
statement: `Repo evidence supports capability: ${valueAsString(node.capabilityId)} for ${valueAsString(node.subjectId)}`,
|
|
410
|
+
subjectKind: valueAsString(node.subjectKind),
|
|
411
|
+
subjectId: valueAsString(node.subjectId),
|
|
412
|
+
confidence: "high",
|
|
413
|
+
status: "current",
|
|
414
|
+
provenanceKind: "repo-observation",
|
|
415
|
+
evidenceStrength: repoIds.length >= 2 ? "corroborated" : "partial",
|
|
416
|
+
evidenceIds: repoIds,
|
|
417
|
+
unresolvedGaps: [],
|
|
418
|
+
});
|
|
419
|
+
}
|
|
420
|
+
if (webIds.length > 0) {
|
|
421
|
+
// Look for existing Claim nodes matching web evidence IDs
|
|
422
|
+
// Prefer claims whose claimId contains the support node's capability ID
|
|
423
|
+
const capabilityId = valueAsString(node.capabilityId);
|
|
424
|
+
const allWebClaims = (0, atlas_bridge_1.listNodesByKind)("Claim").filter((claimNode) => {
|
|
425
|
+
const claimEvidenceIds = stringArray(claimNode.evidenceIds);
|
|
426
|
+
return claimEvidenceIds.some((id) => webIds.includes(id)) && valueAsString(claimNode.provenanceKind) !== "repo-observation";
|
|
427
|
+
});
|
|
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
|
+
if (matchedWebClaim) {
|
|
436
|
+
const claim = toClaimRecord(matchedWebClaim);
|
|
437
|
+
// Ensure partial/inferred vendor claims always have unresolved gaps
|
|
438
|
+
if (claim.evidenceStrength !== "corroborated" && claim.unresolvedGaps.length === 0) {
|
|
439
|
+
claim.unresolvedGaps = [`Vendor evidence for ${capabilityId} has not been fully corroborated.`];
|
|
440
|
+
}
|
|
441
|
+
claims.push(claim);
|
|
442
|
+
}
|
|
443
|
+
else {
|
|
444
|
+
claims.push({
|
|
445
|
+
claimId: webIds[0],
|
|
446
|
+
statement: `Vendor documentation supports capability: ${valueAsString(node.capabilityId)} for ${valueAsString(node.subjectId)}`,
|
|
447
|
+
subjectKind: valueAsString(node.subjectKind),
|
|
448
|
+
subjectId: valueAsString(node.subjectId),
|
|
449
|
+
confidence: webIds.length >= 2 ? "high" : "medium",
|
|
450
|
+
status: "current",
|
|
451
|
+
provenanceKind: "vendor-documentation",
|
|
452
|
+
evidenceStrength: webIds.length >= 2 ? "corroborated" : "partial",
|
|
453
|
+
evidenceIds: webIds,
|
|
454
|
+
unresolvedGaps: webIds.length >= 2 ? [] : [`Only ${webIds.length} web evidence source(s) found for this capability.`],
|
|
455
|
+
});
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
return claims;
|
|
459
|
+
}
|
|
302
460
|
function buildCapabilityAssertions() {
|
|
303
461
|
return (0, atlas_bridge_1.listNodesByKind)("CapabilitySupport")
|
|
304
462
|
.filter((node) => (0, transport_mux_cutover_1.shouldSurfaceCapabilitySupport)(valueAsString(node.subjectKind), valueAsString(node.subjectId), nodeEvidenceIds(node)))
|
|
305
463
|
.map((node) => {
|
|
306
|
-
|
|
464
|
+
let supportingClaims = (0, atlas_bridge_1.listOutgoingTargets)(node.id, "supported_by_claim")
|
|
307
465
|
.filter((claim) => claim.kind === "Claim")
|
|
308
466
|
.map(toClaimRecord);
|
|
467
|
+
// Fall back to synthesized claims when no explicit claim edges exist
|
|
468
|
+
if (supportingClaims.length === 0) {
|
|
469
|
+
supportingClaims = synthesizeClaimsFromEvidenceRefs(node);
|
|
470
|
+
}
|
|
309
471
|
const vendorClaims = supportingClaims.filter((claim) => claim.provenanceKind !== "repo-observation");
|
|
310
472
|
const primaryClaims = vendorClaims.length > 0 ? vendorClaims : supportingClaims;
|
|
311
473
|
const evidenceStrength = primaryClaims.reduce((strongest, claim) => evidenceStrengthRank(claim.evidenceStrength) > evidenceStrengthRank(strongest)
|
|
@@ -574,6 +736,17 @@ function buildPluginTargetDescriptors(_hooks) {
|
|
|
574
736
|
defaultStepCount: typeof node.defaultStepCount === "number" ? node.defaultStepCount : undefined,
|
|
575
737
|
skillSystemLabel: valueAsString(node.skillSystemLabel) || undefined,
|
|
576
738
|
defaultTransportId: valueAsString(node.defaultTransportId) || undefined,
|
|
739
|
+
hooksMuxFamily: valueAsString(node.hooksMuxFamily) || undefined,
|
|
740
|
+
sessionIdQuality: valueAsString(node.sessionIdQuality) || undefined,
|
|
741
|
+
supportsOrderedFanout: node.supportsOrderedFanout === true || node.supportsOrderedFanout === "true" ? true : node.supportsOrderedFanout === false || node.supportsOrderedFanout === "false" ? false : undefined,
|
|
742
|
+
supportsNativeAdditionalContext: node.supportsNativeAdditionalContext === true || node.supportsNativeAdditionalContext === "true" ? true : node.supportsNativeAdditionalContext === false || node.supportsNativeAdditionalContext === "false" ? false : undefined,
|
|
743
|
+
supportsBlock: node.supportsBlock === true || node.supportsBlock === "true" ? true : node.supportsBlock === false || node.supportsBlock === "false" ? false : undefined,
|
|
744
|
+
supportsAsk: node.supportsAsk === true || node.supportsAsk === "true" ? true : node.supportsAsk === false || node.supportsAsk === "false" ? false : undefined,
|
|
745
|
+
supportsToolInputMutation: node.supportsToolInputMutation === true || node.supportsToolInputMutation === "true" ? true : node.supportsToolInputMutation === false || node.supportsToolInputMutation === "false" ? false : undefined,
|
|
746
|
+
supportsToolResultMutation: node.supportsToolResultMutation === true || node.supportsToolResultMutation === "true" ? true : node.supportsToolResultMutation === false || node.supportsToolResultMutation === "false" ? false : undefined,
|
|
747
|
+
supportsPersistedEnv: node.supportsPersistedEnv === true || node.supportsPersistedEnv === "true" ? true : node.supportsPersistedEnv === false || node.supportsPersistedEnv === "false" ? false : undefined,
|
|
748
|
+
envPersistenceMode: valueAsString(node.envPersistenceMode) || undefined,
|
|
749
|
+
toolInterceptionScope: valueAsString(node.toolInterceptionScope) || undefined,
|
|
577
750
|
supportedHooks: supportedHooksForTarget(targetId),
|
|
578
751
|
evidenceIds: [],
|
|
579
752
|
};
|
|
@@ -592,7 +765,7 @@ function buildDataState() {
|
|
|
592
765
|
const providers = (0, atlas_bridge_1.listNodesByKind)("ModelProviderVersion").map(toModelProviderVersion);
|
|
593
766
|
const models = (0, atlas_bridge_1.listNodesByKind)("ModelVersion").map(toModelVersion);
|
|
594
767
|
const transports = (0, atlas_bridge_1.listNodesByKind)("TransportRuntime")
|
|
595
|
-
.filter((node) => (0, transport_mux_cutover_1.shouldSurfaceTransportRuntime)(
|
|
768
|
+
.filter((node) => (0, transport_mux_cutover_1.shouldSurfaceTransportRuntime)(transportRuntimeId(node)))
|
|
596
769
|
.map(toTransportDescriptor);
|
|
597
770
|
const capabilities = (0, atlas_bridge_1.listNodesByKind)("Capability").map(toCapabilityDescriptor);
|
|
598
771
|
const modalities = (0, atlas_bridge_1.listNodesByKind)("Modality")
|