@a5c-ai/agent-catalog 5.0.1-staging.88ee6beee → 5.0.1-staging.8993636db

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.
@@ -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,CAelD;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"}
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"}
@@ -32,7 +32,7 @@ const AGENT_CATALOG_KINDS = new Set([
32
32
  "HookMapping", "HookSurface", "LifecycleSemantics", "Modality",
33
33
  "ModelFamily", "ModelProviderProduct", "ModelProviderVersion", "ModelVersion",
34
34
  "PackageSurface", "PathDescriptor", "PluginArtifact", "PluginTarget",
35
- "ProcessDescriptor", "SessionSemantics", "TransportProtocol", "TransportRuntime",
35
+ "ProcessDescriptor", "ProviderTranslation", "SessionSemantics", "TransportProtocol", "TransportRuntime",
36
36
  ]);
37
37
  function isAgentCatalogRecord(record) {
38
38
  return AGENT_CATALOG_KINDS.has(record._kind);
@@ -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":"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"}
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
- return (0, atlas_bridge_1.listOutgoingTargets)(nodeId, "supported_by_claim").filter((node) => node.kind === "Claim");
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 = (0, atlas_bridge_1.listGraphEdges)()
298
- .filter((edge) => edge.from === node.id && edge.relation === "wraps_graph")
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,
@@ -1 +1 @@
1
- {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"AA6CA,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;AAymBlB,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"}
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;AAq3BlB,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,19 +114,20 @@ function toModelVersion(node) {
111
114
  }
112
115
  function toTransportDescriptor(node) {
113
116
  return {
114
- transportId: valueAsString(node.runtimeId),
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),
118
121
  persistentSession: Boolean(node.persistentSession),
119
122
  stdinInjection: Boolean(node.stdinInjection),
120
123
  blockingStopHook: Boolean(node.blockingStopHook),
124
+ codecCapabilities: parseCodecCapabilities(node.codecCapabilities),
121
125
  evidenceIds: nodeEvidenceIds(node),
122
126
  };
123
127
  }
124
128
  function toCapabilityDescriptor(node) {
125
129
  return {
126
- capabilityId: valueAsString(node.capabilityId),
130
+ capabilityId: valueAsString(node.capabilityId) || String(node.id).replace(/^capability:/, ""),
127
131
  namespace: valueAsString(node.namespace),
128
132
  label: valueAsString(node.label),
129
133
  description: valueAsString(node.description),
@@ -196,19 +200,49 @@ function toProcessDescriptor(node) {
196
200
  };
197
201
  }
198
202
  function agentCapabilityIds(agentNodeId) {
199
- return (0, atlas_bridge_1.listOutgoingTargets)(agentNodeId, "supports_capability")
203
+ // First try graph edges
204
+ const edgeBased = (0, atlas_bridge_1.listOutgoingTargets)(agentNodeId, "supports_capability")
200
205
  .map((supportNode) => valueAsString(supportNode.capabilityId) || valueAsString((0, atlas_bridge_1.listOutgoingTargets)(supportNode.id, "for_capability")[0]?.capabilityId))
201
206
  .filter(Boolean);
207
+ if (edgeBased.length > 0)
208
+ return edgeBased;
209
+ // Fallback: find CapabilitySupport nodes whose subjectId matches
210
+ return Array.from(new Set((0, atlas_bridge_1.listNodesByKind)("CapabilitySupport")
211
+ .filter((node) => valueAsString(node.subjectId) === agentNodeId)
212
+ .map((node) => valueAsString(node.capabilityId))
213
+ .filter(Boolean)));
202
214
  }
203
215
  function agentHookIds(agentNodeId) {
204
- return (0, atlas_bridge_1.listOutgoingTargets)(agentNodeId, "emits_hook")
216
+ const edgeBased = (0, atlas_bridge_1.listOutgoingTargets)(agentNodeId, "emits_hook")
205
217
  .map((mapping) => valueAsString(mapping.hookId))
206
218
  .filter(Boolean);
219
+ if (edgeBased.length > 0)
220
+ return edgeBased;
221
+ // Fallback: derive from agent's plugin targets and their hook mappings
222
+ const targetIds = agentPluginTargetIds(agentNodeId);
223
+ const hookFamilies = new Set();
224
+ for (const node of (0, atlas_bridge_1.listNodesByKind)("PluginTarget")) {
225
+ const targetId = pluginTargetId(node.id);
226
+ if (targetIds.includes(targetId)) {
227
+ const adapterName = valueAsString(node.adapterName);
228
+ if (adapterName)
229
+ hookFamilies.add(adapterName);
230
+ if (targetId !== adapterName)
231
+ hookFamilies.add(targetId);
232
+ }
233
+ }
234
+ return Array.from(new Set((0, atlas_bridge_1.listNodesByKind)("HookMapping")
235
+ .filter((mapping) => hookFamilies.has(valueAsString(mapping.adapterFamily)))
236
+ .map((mapping) => valueAsString(mapping.hookId))
237
+ .filter(Boolean)));
238
+ }
239
+ function transportRuntimeId(node) {
240
+ return valueAsString(node.runtimeId) || valueAsString(node.runtimeKind) || String(node.id).replace(/^transport-runtime:/, "");
207
241
  }
208
242
  function agentTransportIds(agentNodeId) {
209
243
  return (0, atlas_bridge_1.listOutgoingTargets)(agentNodeId, "uses_transport")
210
244
  .filter((node) => node.kind === "TransportRuntime")
211
- .map((node) => valueAsString(node.runtimeId))
245
+ .map((node) => transportRuntimeId(node))
212
246
  .filter(Boolean);
213
247
  }
214
248
  function agentModalityIds(agentNodeId) {
@@ -232,15 +266,162 @@ function agentPluginTargetIds(agentNodeId) {
232
266
  .map((node) => valueAsString(node.targetId))
233
267
  .filter(Boolean);
234
268
  }
269
+ function matchesAgentId(nodeAgentId, targetAgentId) {
270
+ if (nodeAgentId === targetAgentId)
271
+ return true;
272
+ // Handle "agent:codex" matching "codex"
273
+ if (nodeAgentId.startsWith("agent:") && nodeAgentId.slice("agent:".length) === targetAgentId)
274
+ return true;
275
+ if (targetAgentId.startsWith("agent:") && targetAgentId.slice("agent:".length) === nodeAgentId)
276
+ return true;
277
+ return false;
278
+ }
235
279
  function agentSessionNuanceIds(agentNodeId) {
236
- return (0, atlas_bridge_1.listOutgoingTargets)(agentNodeId, "uses_session_semantics")
280
+ const edgeBased = (0, atlas_bridge_1.listOutgoingTargets)(agentNodeId, "uses_session_semantics")
281
+ .map((node) => valueAsString(node.sessionSemanticsId))
282
+ .filter(Boolean);
283
+ if (edgeBased.length > 0)
284
+ return edgeBased;
285
+ // Fallback: find SessionSemantics nodes whose agentId matches
286
+ const agentNode = (0, atlas_bridge_1.getNodeById)(agentNodeId);
287
+ const agentId = valueAsString(agentNode?.agentId);
288
+ if (!agentId)
289
+ return [];
290
+ return (0, atlas_bridge_1.listNodesByKind)("SessionSemantics")
291
+ .filter((node) => matchesAgentId(valueAsString(node.agentId), agentId))
237
292
  .map((node) => valueAsString(node.sessionSemanticsId))
238
293
  .filter(Boolean);
239
294
  }
240
295
  function agentLifecycleNuanceIds(agentNodeId) {
241
- return (0, atlas_bridge_1.listOutgoingTargets)(agentNodeId, "uses_lifecycle_semantics")
296
+ const edgeBased = (0, atlas_bridge_1.listOutgoingTargets)(agentNodeId, "uses_lifecycle_semantics")
242
297
  .map((node) => valueAsString(node.lifecycleSemanticsId))
243
298
  .filter(Boolean);
299
+ if (edgeBased.length > 0)
300
+ return edgeBased;
301
+ // Fallback: find LifecycleSemantics nodes whose agentId and versionRange match
302
+ const agentNode = (0, atlas_bridge_1.getNodeById)(agentNodeId);
303
+ const agentId = valueAsString(agentNode?.agentId);
304
+ const agentVersionRange = valueAsString(agentNode?.versionRange);
305
+ if (!agentId)
306
+ return [];
307
+ return (0, atlas_bridge_1.listNodesByKind)("LifecycleSemantics")
308
+ .filter((node) => {
309
+ if (!matchesAgentId(valueAsString(node.agentId), agentId))
310
+ return false;
311
+ // If agent has a specific version range, match lifecycle nodes with same or broader range
312
+ if (agentVersionRange) {
313
+ const lcRange = valueAsString(node.versionRange);
314
+ if (lcRange && lcRange !== agentVersionRange)
315
+ return false;
316
+ }
317
+ return true;
318
+ })
319
+ .map((node) => valueAsString(node.lifecycleSemanticsId))
320
+ .filter(Boolean);
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 parseAdapterMetadata(value) {
375
+ if (!value || typeof value !== 'object')
376
+ return undefined;
377
+ const obj = value;
378
+ return {
379
+ installCommands: Array.isArray(obj.installCommands) ? obj.installCommands.map((c) => {
380
+ const cmd = c;
381
+ return { type: valueAsString(cmd.type), command: valueAsString(cmd.command) };
382
+ }) : undefined,
383
+ authMethods: Array.isArray(obj.authMethods) ? obj.authMethods.map((m) => {
384
+ const method = m;
385
+ return {
386
+ type: valueAsString(method.type),
387
+ name: valueAsString(method.name),
388
+ envVars: Array.isArray(method.envVars) ? method.envVars.map(String) : undefined,
389
+ };
390
+ }) : undefined,
391
+ authFiles: Array.isArray(obj.authFiles) ? obj.authFiles.map(String) : undefined,
392
+ hostEnvSignals: Array.isArray(obj.hostEnvSignals) ? obj.hostEnvSignals.map(String) : undefined,
393
+ sessionDir: valueAsString(obj.sessionDir) || undefined,
394
+ sessionPersistence: (['file', 'sqlite', 'none'].includes(valueAsString(obj.sessionPersistence)) ? valueAsString(obj.sessionPersistence) : undefined),
395
+ automationEnv: obj.automationEnv && typeof obj.automationEnv === 'object' ? Object.fromEntries(Object.entries(obj.automationEnv).map(([k, v]) => [k, String(v)])) : undefined,
396
+ approvalModes: Array.isArray(obj.approvalModes) ? obj.approvalModes.map(String) : undefined,
397
+ capabilityFlags: obj.capabilityFlags && typeof obj.capabilityFlags === 'object' ? obj.capabilityFlags : undefined,
398
+ runtimeHooks: obj.runtimeHooks && typeof obj.runtimeHooks === 'object' ? obj.runtimeHooks : undefined,
399
+ configSchema: obj.configSchema && typeof obj.configSchema === 'object' ? {
400
+ configFormat: valueAsString(obj.configSchema.configFormat) || undefined,
401
+ configFilePaths: Array.isArray(obj.configSchema.configFilePaths) ? obj.configSchema.configFilePaths.map(String) : undefined,
402
+ projectConfigFilePaths: Array.isArray(obj.configSchema.projectConfigFilePaths) ? obj.configSchema.projectConfigFilePaths.map(String) : undefined,
403
+ } : undefined,
404
+ displayName: valueAsString(obj.displayName) || undefined,
405
+ defaultModelId: valueAsString(obj.defaultModelId) || undefined,
406
+ };
407
+ }
408
+ function parseToolSchemaFormat(value) {
409
+ const normalized = valueAsString(value);
410
+ if (normalized === "openai" || normalized === "anthropic" || normalized === "google")
411
+ return normalized;
412
+ return "none";
413
+ }
414
+ function parseCodecCapabilities(value) {
415
+ if (!value || typeof value !== 'object')
416
+ return undefined;
417
+ const obj = value;
418
+ return {
419
+ supportsTools: obj.supportsTools === true || obj.supportsTools === "true",
420
+ supportsStreaming: obj.supportsStreaming === true || obj.supportsStreaming === "true",
421
+ supportsTokenCounting: obj.supportsTokenCounting === true || obj.supportsTokenCounting === "true",
422
+ costTracking: obj.costTracking === true || obj.costTracking === "true",
423
+ toolSchemaFormat: parseToolSchemaFormat(obj.toolSchemaFormat),
424
+ };
244
425
  }
245
426
  function toAgentVersion(node) {
246
427
  return {
@@ -265,19 +446,35 @@ function toAgentVersion(node) {
265
446
  sessionNuanceIds: agentSessionNuanceIds(node.id),
266
447
  lifecycleNuanceIds: agentLifecycleNuanceIds(node.id),
267
448
  evidenceIds: nodeEvidenceIds(node),
449
+ interactiveSignals: node.interactiveSignals != null ? {
450
+ turnCompletePattern: valueAsString(node.interactiveSignals?.turnCompletePattern) || undefined,
451
+ exitOnNonInteractive: node.interactiveSignals?.exitOnNonInteractive === true ? true : undefined,
452
+ nonInteractiveMode: valueAsString(node.interactiveSignals?.nonInteractiveMode) || undefined,
453
+ interactiveMode: valueAsString(node.interactiveSignals?.interactiveMode),
454
+ } : undefined,
455
+ hookSupport: parseHookSupport(node.hookSupport),
456
+ bridgeCapabilities: parseBridgeCapabilities(node.bridgeCapabilities),
457
+ adapterMetadata: parseAdapterMetadata(node.adapterMetadata),
268
458
  };
269
459
  }
460
+ function evidenceIdFromNode(node) {
461
+ const explicit = valueAsString(node.evidenceId);
462
+ if (explicit)
463
+ return explicit;
464
+ return evidenceIdFromNodeId(String(node.id));
465
+ }
270
466
  function toEvidenceRecord(node, evidenceClaims) {
467
+ const evidenceId = evidenceIdFromNode(node);
271
468
  const freshnessWindowDays = typeof node.freshnessWindowDays === "number" && Number.isFinite(node.freshnessWindowDays)
272
469
  ? node.freshnessWindowDays
273
470
  : undefined;
274
471
  return {
275
- evidenceId: valueAsString(node.evidenceId),
472
+ evidenceId,
276
473
  kind: valueAsString(node.kindLabel) === "web" ? "web" : "repo",
277
- sourcePathOrUrl: valueAsString(node.sourcePathOrUrl),
474
+ sourcePathOrUrl: valueAsString(node.sourcePathOrUrl) || valueAsString(node.filePath),
278
475
  excerptLocator: valueAsString(node.locator),
279
- claim: getEvidenceClaimStatement(valueAsString(node.evidenceId), evidenceClaims),
280
- capturedAt: valueAsString(node.capturedAt),
476
+ claim: getEvidenceClaimStatement(evidenceId, evidenceClaims),
477
+ capturedAt: valueAsString(node.capturedAt) || valueAsString(node.observedAt),
281
478
  trustLevel: valueAsString(node.trustLevel),
282
479
  reviewOwner: valueAsString(node.reviewOwner),
283
480
  reviewedAt: valueAsString(node.reviewedAt),
@@ -299,13 +496,74 @@ function toClaimRecord(node) {
299
496
  unresolvedGaps: (0, transport_mux_cutover_1.effectiveTransportMuxUnresolvedGaps)(stringArray(node.unresolvedGaps), evidenceIds),
300
497
  };
301
498
  }
499
+ function synthesizeClaimsFromEvidenceRefs(node) {
500
+ const evidenceIds = nodeEvidenceIds(node);
501
+ if (evidenceIds.length === 0)
502
+ return [];
503
+ const repoIds = evidenceIds.filter((id) => id.startsWith("repo-"));
504
+ const webIds = evidenceIds.filter((id) => id.startsWith("web-"));
505
+ const claims = [];
506
+ if (repoIds.length > 0) {
507
+ // Look for an existing Claim node matching a repo evidence ID
508
+ const matchedRepoClaim = (0, atlas_bridge_1.listNodesByKind)("Claim").find((claimNode) => {
509
+ const claimEvidenceIds = stringArray(claimNode.evidenceIds);
510
+ return claimEvidenceIds.some((id) => repoIds.includes(id)) && valueAsString(claimNode.provenanceKind) === "repo-observation";
511
+ });
512
+ claims.push(matchedRepoClaim ? toClaimRecord(matchedRepoClaim) : {
513
+ claimId: repoIds[0],
514
+ statement: `Repo evidence supports capability: ${valueAsString(node.capabilityId)} for ${valueAsString(node.subjectId)}`,
515
+ subjectKind: valueAsString(node.subjectKind),
516
+ subjectId: valueAsString(node.subjectId),
517
+ confidence: "high",
518
+ status: "current",
519
+ provenanceKind: "repo-observation",
520
+ evidenceStrength: repoIds.length >= 2 ? "corroborated" : "partial",
521
+ evidenceIds: repoIds,
522
+ unresolvedGaps: [],
523
+ });
524
+ }
525
+ if (webIds.length > 0) {
526
+ // Look for an existing Claim node matching a web evidence ID
527
+ const matchedWebClaim = (0, atlas_bridge_1.listNodesByKind)("Claim").find((claimNode) => {
528
+ const claimEvidenceIds = stringArray(claimNode.evidenceIds);
529
+ return claimEvidenceIds.some((id) => webIds.includes(id)) && valueAsString(claimNode.provenanceKind) !== "repo-observation";
530
+ });
531
+ if (matchedWebClaim) {
532
+ const claim = toClaimRecord(matchedWebClaim);
533
+ // Ensure partial vendor claims always have unresolved gaps
534
+ if (claim.evidenceStrength !== "corroborated" && claim.unresolvedGaps.length === 0) {
535
+ claim.unresolvedGaps = [`Vendor evidence for ${valueAsString(node.capabilityId)} has not been fully corroborated.`];
536
+ }
537
+ claims.push(claim);
538
+ }
539
+ else {
540
+ claims.push({
541
+ claimId: webIds[0],
542
+ statement: `Vendor documentation supports capability: ${valueAsString(node.capabilityId)} for ${valueAsString(node.subjectId)}`,
543
+ subjectKind: valueAsString(node.subjectKind),
544
+ subjectId: valueAsString(node.subjectId),
545
+ confidence: webIds.length >= 2 ? "high" : "medium",
546
+ status: "current",
547
+ provenanceKind: "vendor-documentation",
548
+ evidenceStrength: webIds.length >= 2 ? "corroborated" : "partial",
549
+ evidenceIds: webIds,
550
+ unresolvedGaps: webIds.length >= 2 ? [] : [`Only ${webIds.length} web evidence source(s) found for this capability.`],
551
+ });
552
+ }
553
+ }
554
+ return claims;
555
+ }
302
556
  function buildCapabilityAssertions() {
303
557
  return (0, atlas_bridge_1.listNodesByKind)("CapabilitySupport")
304
558
  .filter((node) => (0, transport_mux_cutover_1.shouldSurfaceCapabilitySupport)(valueAsString(node.subjectKind), valueAsString(node.subjectId), nodeEvidenceIds(node)))
305
559
  .map((node) => {
306
- const supportingClaims = (0, atlas_bridge_1.listOutgoingTargets)(node.id, "supported_by_claim")
560
+ let supportingClaims = (0, atlas_bridge_1.listOutgoingTargets)(node.id, "supported_by_claim")
307
561
  .filter((claim) => claim.kind === "Claim")
308
562
  .map(toClaimRecord);
563
+ // Fall back to synthesized claims when no explicit claim edges exist
564
+ if (supportingClaims.length === 0) {
565
+ supportingClaims = synthesizeClaimsFromEvidenceRefs(node);
566
+ }
309
567
  const vendorClaims = supportingClaims.filter((claim) => claim.provenanceKind !== "repo-observation");
310
568
  const primaryClaims = vendorClaims.length > 0 ? vendorClaims : supportingClaims;
311
569
  const evidenceStrength = primaryClaims.reduce((strongest, claim) => evidenceStrengthRank(claim.evidenceStrength) > evidenceStrengthRank(strongest)
@@ -475,6 +733,7 @@ const BABYSITTER_PLUGIN_TARGETS = new Set([
475
733
  "plugin-target:claude-code", "plugin-target:codex", "plugin-target:cursor",
476
734
  "plugin-target:gemini-cli", "plugin-target:copilot-cli", "plugin-target:pi",
477
735
  "plugin-target:omp", "plugin-target:opencode", "plugin-target:openclaw",
736
+ "plugin-target:hermes",
478
737
  ]);
479
738
  // Atlas uses different IDs for some targets
480
739
  const TARGET_ID_ALIASES = {
@@ -574,6 +833,17 @@ function buildPluginTargetDescriptors(_hooks) {
574
833
  defaultStepCount: typeof node.defaultStepCount === "number" ? node.defaultStepCount : undefined,
575
834
  skillSystemLabel: valueAsString(node.skillSystemLabel) || undefined,
576
835
  defaultTransportId: valueAsString(node.defaultTransportId) || undefined,
836
+ hooksMuxFamily: valueAsString(node.hooksMuxFamily) || undefined,
837
+ sessionIdQuality: valueAsString(node.sessionIdQuality) || undefined,
838
+ supportsOrderedFanout: node.supportsOrderedFanout === true || node.supportsOrderedFanout === "true" ? true : node.supportsOrderedFanout === false || node.supportsOrderedFanout === "false" ? false : undefined,
839
+ supportsNativeAdditionalContext: node.supportsNativeAdditionalContext === true || node.supportsNativeAdditionalContext === "true" ? true : node.supportsNativeAdditionalContext === false || node.supportsNativeAdditionalContext === "false" ? false : undefined,
840
+ supportsBlock: node.supportsBlock === true || node.supportsBlock === "true" ? true : node.supportsBlock === false || node.supportsBlock === "false" ? false : undefined,
841
+ supportsAsk: node.supportsAsk === true || node.supportsAsk === "true" ? true : node.supportsAsk === false || node.supportsAsk === "false" ? false : undefined,
842
+ supportsToolInputMutation: node.supportsToolInputMutation === true || node.supportsToolInputMutation === "true" ? true : node.supportsToolInputMutation === false || node.supportsToolInputMutation === "false" ? false : undefined,
843
+ supportsToolResultMutation: node.supportsToolResultMutation === true || node.supportsToolResultMutation === "true" ? true : node.supportsToolResultMutation === false || node.supportsToolResultMutation === "false" ? false : undefined,
844
+ supportsPersistedEnv: node.supportsPersistedEnv === true || node.supportsPersistedEnv === "true" ? true : node.supportsPersistedEnv === false || node.supportsPersistedEnv === "false" ? false : undefined,
845
+ envPersistenceMode: valueAsString(node.envPersistenceMode) || undefined,
846
+ toolInterceptionScope: valueAsString(node.toolInterceptionScope) || undefined,
577
847
  supportedHooks: supportedHooksForTarget(targetId),
578
848
  evidenceIds: [],
579
849
  };
@@ -592,7 +862,7 @@ function buildDataState() {
592
862
  const providers = (0, atlas_bridge_1.listNodesByKind)("ModelProviderVersion").map(toModelProviderVersion);
593
863
  const models = (0, atlas_bridge_1.listNodesByKind)("ModelVersion").map(toModelVersion);
594
864
  const transports = (0, atlas_bridge_1.listNodesByKind)("TransportRuntime")
595
- .filter((node) => (0, transport_mux_cutover_1.shouldSurfaceTransportRuntime)(valueAsString(node.runtimeId)))
865
+ .filter((node) => (0, transport_mux_cutover_1.shouldSurfaceTransportRuntime)(transportRuntimeId(node)))
596
866
  .map(toTransportDescriptor);
597
867
  const capabilities = (0, atlas_bridge_1.listNodesByKind)("Capability").map(toCapabilityDescriptor);
598
868
  const modalities = (0, atlas_bridge_1.listNodesByKind)("Modality")