@a5c-ai/agent-catalog 5.0.1-staging.49991ee2 → 5.0.1-staging.4ab05d2e5

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.
Files changed (37) hide show
  1. package/dist/atlas-bridge.d.ts.map +1 -1
  2. package/dist/atlas-bridge.js +4 -0
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +15 -3
  5. package/dist/data.d.ts.map +1 -1
  6. package/dist/data.js +294 -16
  7. package/dist/discovery-snapshot.json +87059 -22842
  8. package/dist/index.d.ts +0 -3
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +0 -5
  11. package/dist/models.d.ts +75 -0
  12. package/dist/models.d.ts.map +1 -1
  13. package/dist/sdk.d.ts +33 -2
  14. package/dist/sdk.d.ts.map +1 -1
  15. package/dist/sdk.js +346 -29
  16. package/package.json +6 -13
  17. package/dist/assets.d.ts +0 -4
  18. package/dist/assets.d.ts.map +0 -1
  19. package/dist/assets.js +0 -76
  20. package/dist/evidence-projection.d.ts +0 -4
  21. package/dist/evidence-projection.d.ts.map +0 -1
  22. package/dist/evidence-projection.js +0 -34
  23. package/dist/evidence.d.ts +0 -13
  24. package/dist/evidence.d.ts.map +0 -1
  25. package/dist/evidence.js +0 -227
  26. package/dist/graph.d.ts +0 -20
  27. package/dist/graph.d.ts.map +0 -1
  28. package/dist/graph.js +0 -194
  29. package/evidence/ontology-evidence/claims/catalog-processes-and-packaging.json +0 -89
  30. package/evidence/ontology-evidence/claims/plugins-hooks-discovery.json +0 -136
  31. package/evidence/ontology-evidence/claims/runtime-core.json +0 -18944
  32. package/evidence/ontology-evidence/claims/vendor-web.json +0 -977
  33. package/evidence/ontology-evidence/evidence-sources/catalog-processes-and-packaging.json +0 -103
  34. package/evidence/ontology-evidence/evidence-sources/plugins-hooks-discovery.json +0 -46
  35. package/evidence/ontology-evidence/evidence-sources/runtime-core.json +0 -736
  36. package/evidence/ontology-evidence/evidence-sources/vendor-web.json +0 -3206
  37. package/evidence/ontology-evidence/manifest.json +0 -38
@@ -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"}
@@ -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":"AAkBA,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EAIpB,WAAW,EACX,cAAc,EAEd,aAAa,EAEb,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;AAqlBlB,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;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
@@ -4,7 +4,33 @@ exports.AGENT_CATALOG = exports.CAPABILITY_ASSERTIONS = exports.PLUGIN_TARGETS =
4
4
  exports.clearAgentCatalogDataCache = clearAgentCatalogDataCache;
5
5
  exports.getCatalogDataState = getCatalogDataState;
6
6
  const atlas_bridge_1 = require("./atlas-bridge");
7
- const evidence_projection_1 = require("./evidence-projection");
7
+ // Evidence projection — inlined from deleted evidence-projection.ts
8
+ function evidenceIdFromNodeId(nodeId) {
9
+ return nodeId.startsWith("evidence:") ? nodeId.slice("evidence:".length) : nodeId;
10
+ }
11
+ function buildClaimsByEvidence(claimNodes, evidenceNodes, relationships) {
12
+ const claimsByGraphId = new Map(Array.from(claimNodes, (node) => [String(node.id), node]));
13
+ const evidenceByGraphId = new Map(Array.from(evidenceNodes, (node) => [String(node.id), node]));
14
+ const claimsByEvidence = new Map();
15
+ for (const rel of relationships) {
16
+ if (rel.relation !== "sourced_from")
17
+ continue;
18
+ const claimNode = claimsByGraphId.get(rel.from);
19
+ const evidenceNode = evidenceByGraphId.get(rel.to);
20
+ if (!claimNode || !evidenceNode)
21
+ continue;
22
+ const evidenceId = valueAsString(evidenceNode.evidenceId) || evidenceIdFromNodeId(String(evidenceNode.id));
23
+ const bucket = claimsByEvidence.get(evidenceId);
24
+ if (bucket)
25
+ bucket.push(claimNode);
26
+ else
27
+ claimsByEvidence.set(evidenceId, [claimNode]);
28
+ }
29
+ return claimsByEvidence;
30
+ }
31
+ function getEvidenceClaimStatement(evidenceId, claimsByEvidence) {
32
+ return valueAsString(claimsByEvidence.get(evidenceId)?.[0]?.statement);
33
+ }
8
34
  const transport_mux_cutover_1 = require("./transport-mux-cutover");
9
35
  const FALLBACK_SESSION_DIR = ".a5c/runs";
10
36
  function valueAsString(value) {
@@ -88,19 +114,20 @@ function toModelVersion(node) {
88
114
  }
89
115
  function toTransportDescriptor(node) {
90
116
  return {
91
- transportId: valueAsString(node.runtimeId),
117
+ transportId: transportRuntimeId(node),
92
118
  label: valueAsString(node.label),
93
119
  status: (0, transport_mux_cutover_1.effectiveTransportMuxClaimStatus)(valueAsString(node.status), nodeEvidenceIds(node)),
94
120
  interactive: Boolean(node.persistentSession) || Boolean(node.stdinInjection),
95
121
  persistentSession: Boolean(node.persistentSession),
96
122
  stdinInjection: Boolean(node.stdinInjection),
97
123
  blockingStopHook: Boolean(node.blockingStopHook),
124
+ codecCapabilities: parseCodecCapabilities(node.codecCapabilities),
98
125
  evidenceIds: nodeEvidenceIds(node),
99
126
  };
100
127
  }
101
128
  function toCapabilityDescriptor(node) {
102
129
  return {
103
- capabilityId: valueAsString(node.capabilityId),
130
+ capabilityId: valueAsString(node.capabilityId) || String(node.id).replace(/^capability:/, ""),
104
131
  namespace: valueAsString(node.namespace),
105
132
  label: valueAsString(node.label),
106
133
  description: valueAsString(node.description),
@@ -173,19 +200,49 @@ function toProcessDescriptor(node) {
173
200
  };
174
201
  }
175
202
  function agentCapabilityIds(agentNodeId) {
176
- 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")
177
205
  .map((supportNode) => valueAsString(supportNode.capabilityId) || valueAsString((0, atlas_bridge_1.listOutgoingTargets)(supportNode.id, "for_capability")[0]?.capabilityId))
178
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)));
179
214
  }
180
215
  function agentHookIds(agentNodeId) {
181
- return (0, atlas_bridge_1.listOutgoingTargets)(agentNodeId, "emits_hook")
216
+ const edgeBased = (0, atlas_bridge_1.listOutgoingTargets)(agentNodeId, "emits_hook")
182
217
  .map((mapping) => valueAsString(mapping.hookId))
183
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:/, "");
184
241
  }
185
242
  function agentTransportIds(agentNodeId) {
186
243
  return (0, atlas_bridge_1.listOutgoingTargets)(agentNodeId, "uses_transport")
187
244
  .filter((node) => node.kind === "TransportRuntime")
188
- .map((node) => valueAsString(node.runtimeId))
245
+ .map((node) => transportRuntimeId(node))
189
246
  .filter(Boolean);
190
247
  }
191
248
  function agentModalityIds(agentNodeId) {
@@ -209,16 +266,129 @@ function agentPluginTargetIds(agentNodeId) {
209
266
  .map((node) => valueAsString(node.targetId))
210
267
  .filter(Boolean);
211
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
+ }
212
279
  function agentSessionNuanceIds(agentNodeId) {
213
- 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))
214
292
  .map((node) => valueAsString(node.sessionSemanticsId))
215
293
  .filter(Boolean);
216
294
  }
217
295
  function agentLifecycleNuanceIds(agentNodeId) {
218
- return (0, atlas_bridge_1.listOutgoingTargets)(agentNodeId, "uses_lifecycle_semantics")
296
+ const edgeBased = (0, atlas_bridge_1.listOutgoingTargets)(agentNodeId, "uses_lifecycle_semantics")
297
+ .map((node) => valueAsString(node.lifecycleSemanticsId))
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
+ })
219
319
  .map((node) => valueAsString(node.lifecycleSemanticsId))
220
320
  .filter(Boolean);
221
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
+ }
222
392
  function toAgentVersion(node) {
223
393
  return {
224
394
  agentId: valueAsString(node.agentId),
@@ -242,19 +412,34 @@ function toAgentVersion(node) {
242
412
  sessionNuanceIds: agentSessionNuanceIds(node.id),
243
413
  lifecycleNuanceIds: agentLifecycleNuanceIds(node.id),
244
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),
245
423
  };
246
424
  }
425
+ function evidenceIdFromNode(node) {
426
+ const explicit = valueAsString(node.evidenceId);
427
+ if (explicit)
428
+ return explicit;
429
+ return evidenceIdFromNodeId(String(node.id));
430
+ }
247
431
  function toEvidenceRecord(node, evidenceClaims) {
432
+ const evidenceId = evidenceIdFromNode(node);
248
433
  const freshnessWindowDays = typeof node.freshnessWindowDays === "number" && Number.isFinite(node.freshnessWindowDays)
249
434
  ? node.freshnessWindowDays
250
435
  : undefined;
251
436
  return {
252
- evidenceId: valueAsString(node.evidenceId),
437
+ evidenceId,
253
438
  kind: valueAsString(node.kindLabel) === "web" ? "web" : "repo",
254
- sourcePathOrUrl: valueAsString(node.sourcePathOrUrl),
439
+ sourcePathOrUrl: valueAsString(node.sourcePathOrUrl) || valueAsString(node.filePath),
255
440
  excerptLocator: valueAsString(node.locator),
256
- claim: (0, evidence_projection_1.getEvidenceClaimStatement)(valueAsString(node.evidenceId), evidenceClaims),
257
- capturedAt: valueAsString(node.capturedAt),
441
+ claim: getEvidenceClaimStatement(evidenceId, evidenceClaims),
442
+ capturedAt: valueAsString(node.capturedAt) || valueAsString(node.observedAt),
258
443
  trustLevel: valueAsString(node.trustLevel),
259
444
  reviewOwner: valueAsString(node.reviewOwner),
260
445
  reviewedAt: valueAsString(node.reviewedAt),
@@ -276,13 +461,74 @@ function toClaimRecord(node) {
276
461
  unresolvedGaps: (0, transport_mux_cutover_1.effectiveTransportMuxUnresolvedGaps)(stringArray(node.unresolvedGaps), evidenceIds),
277
462
  };
278
463
  }
464
+ function synthesizeClaimsFromEvidenceRefs(node) {
465
+ const evidenceIds = nodeEvidenceIds(node);
466
+ if (evidenceIds.length === 0)
467
+ return [];
468
+ const repoIds = evidenceIds.filter((id) => id.startsWith("repo-"));
469
+ const webIds = evidenceIds.filter((id) => id.startsWith("web-"));
470
+ const claims = [];
471
+ if (repoIds.length > 0) {
472
+ // Look for an existing Claim node matching a repo evidence ID
473
+ const matchedRepoClaim = (0, atlas_bridge_1.listNodesByKind)("Claim").find((claimNode) => {
474
+ const claimEvidenceIds = stringArray(claimNode.evidenceIds);
475
+ return claimEvidenceIds.some((id) => repoIds.includes(id)) && valueAsString(claimNode.provenanceKind) === "repo-observation";
476
+ });
477
+ claims.push(matchedRepoClaim ? toClaimRecord(matchedRepoClaim) : {
478
+ claimId: repoIds[0],
479
+ statement: `Repo evidence supports capability: ${valueAsString(node.capabilityId)} for ${valueAsString(node.subjectId)}`,
480
+ subjectKind: valueAsString(node.subjectKind),
481
+ subjectId: valueAsString(node.subjectId),
482
+ confidence: "high",
483
+ status: "current",
484
+ provenanceKind: "repo-observation",
485
+ evidenceStrength: repoIds.length >= 2 ? "corroborated" : "partial",
486
+ evidenceIds: repoIds,
487
+ unresolvedGaps: [],
488
+ });
489
+ }
490
+ if (webIds.length > 0) {
491
+ // Look for an existing Claim node matching a web evidence ID
492
+ const matchedWebClaim = (0, atlas_bridge_1.listNodesByKind)("Claim").find((claimNode) => {
493
+ const claimEvidenceIds = stringArray(claimNode.evidenceIds);
494
+ return claimEvidenceIds.some((id) => webIds.includes(id)) && valueAsString(claimNode.provenanceKind) !== "repo-observation";
495
+ });
496
+ if (matchedWebClaim) {
497
+ const claim = toClaimRecord(matchedWebClaim);
498
+ // Ensure partial vendor claims always have unresolved gaps
499
+ if (claim.evidenceStrength !== "corroborated" && claim.unresolvedGaps.length === 0) {
500
+ claim.unresolvedGaps = [`Vendor evidence for ${valueAsString(node.capabilityId)} has not been fully corroborated.`];
501
+ }
502
+ claims.push(claim);
503
+ }
504
+ else {
505
+ claims.push({
506
+ claimId: webIds[0],
507
+ statement: `Vendor documentation supports capability: ${valueAsString(node.capabilityId)} for ${valueAsString(node.subjectId)}`,
508
+ subjectKind: valueAsString(node.subjectKind),
509
+ subjectId: valueAsString(node.subjectId),
510
+ confidence: webIds.length >= 2 ? "high" : "medium",
511
+ status: "current",
512
+ provenanceKind: "vendor-documentation",
513
+ evidenceStrength: webIds.length >= 2 ? "corroborated" : "partial",
514
+ evidenceIds: webIds,
515
+ unresolvedGaps: webIds.length >= 2 ? [] : [`Only ${webIds.length} web evidence source(s) found for this capability.`],
516
+ });
517
+ }
518
+ }
519
+ return claims;
520
+ }
279
521
  function buildCapabilityAssertions() {
280
522
  return (0, atlas_bridge_1.listNodesByKind)("CapabilitySupport")
281
523
  .filter((node) => (0, transport_mux_cutover_1.shouldSurfaceCapabilitySupport)(valueAsString(node.subjectKind), valueAsString(node.subjectId), nodeEvidenceIds(node)))
282
524
  .map((node) => {
283
- const supportingClaims = (0, atlas_bridge_1.listOutgoingTargets)(node.id, "supported_by_claim")
525
+ let supportingClaims = (0, atlas_bridge_1.listOutgoingTargets)(node.id, "supported_by_claim")
284
526
  .filter((claim) => claim.kind === "Claim")
285
527
  .map(toClaimRecord);
528
+ // Fall back to synthesized claims when no explicit claim edges exist
529
+ if (supportingClaims.length === 0) {
530
+ supportingClaims = synthesizeClaimsFromEvidenceRefs(node);
531
+ }
286
532
  const vendorClaims = supportingClaims.filter((claim) => claim.provenanceKind !== "repo-observation");
287
533
  const primaryClaims = vendorClaims.length > 0 ? vendorClaims : supportingClaims;
288
534
  const evidenceStrength = primaryClaims.reduce((strongest, claim) => evidenceStrengthRank(claim.evidenceStrength) > evidenceStrengthRank(strongest)
@@ -452,10 +698,11 @@ const BABYSITTER_PLUGIN_TARGETS = new Set([
452
698
  "plugin-target:claude-code", "plugin-target:codex", "plugin-target:cursor",
453
699
  "plugin-target:gemini-cli", "plugin-target:copilot-cli", "plugin-target:pi",
454
700
  "plugin-target:omp", "plugin-target:opencode", "plugin-target:openclaw",
701
+ "plugin-target:hermes",
455
702
  ]);
456
703
  // Atlas uses different IDs for some targets
457
704
  const TARGET_ID_ALIASES = {
458
- "plugin-target:gemini-cli": "gemini",
705
+ "plugin-target:gemini-cli": "gemini-cli",
459
706
  "plugin-target:copilot-cli": "github-copilot",
460
707
  "plugin-target:omp": "oh-my-pi",
461
708
  };
@@ -531,6 +778,37 @@ function buildPluginTargetDescriptors(_hooks) {
531
778
  installLayout,
532
779
  packageMetadata,
533
780
  componentSupport,
781
+ cliCommand: valueAsString(node.cliCommand) || undefined,
782
+ callerEnvVars: stringArray(node.callerEnvVars),
783
+ configPaths: stringArray(node.configPaths),
784
+ processNames: stringArray(node.processNames),
785
+ harnessCapabilities: stringArray(node.capabilities),
786
+ externalRepo: valueAsString(node.externalRepo) || undefined,
787
+ externalPackageName: node.externalPackageName === null ? null : valueAsString(node.externalPackageName) || undefined,
788
+ generatedSourceDir: valueAsString(node.generatedSourceDir) || undefined,
789
+ requiredSurfaceFile: node.requiredSurfaceFile === null ? null : valueAsString(node.requiredSurfaceFile) || undefined,
790
+ promptCapabilities: stringArray(node.promptCapabilities),
791
+ loopControlTerm: valueAsString(node.loopControlTerm) || undefined,
792
+ hookDriven: node.hookDriven === true || node.hookDriven === "true" ? true : node.hookDriven === false || node.hookDriven === "false" ? false : undefined,
793
+ interactiveToolName: typeof node.interactiveToolName === "string" ? node.interactiveToolName : undefined,
794
+ sessionEnvVarsDescription: valueAsString(node.sessionEnvVarsDescription) || undefined,
795
+ hasIntentFidelityChecks: node.hasIntentFidelityChecks === true || node.hasIntentFidelityChecks === "true" ? true : false,
796
+ hasNonNegotiables: node.hasNonNegotiables === true || node.hasNonNegotiables === "true" ? true : false,
797
+ cliSetupMode: valueAsString(node.cliSetupMode) || undefined,
798
+ defaultStepCount: typeof node.defaultStepCount === "number" ? node.defaultStepCount : undefined,
799
+ skillSystemLabel: valueAsString(node.skillSystemLabel) || undefined,
800
+ defaultTransportId: valueAsString(node.defaultTransportId) || undefined,
801
+ hooksMuxFamily: valueAsString(node.hooksMuxFamily) || undefined,
802
+ sessionIdQuality: valueAsString(node.sessionIdQuality) || undefined,
803
+ supportsOrderedFanout: node.supportsOrderedFanout === true || node.supportsOrderedFanout === "true" ? true : node.supportsOrderedFanout === false || node.supportsOrderedFanout === "false" ? false : undefined,
804
+ supportsNativeAdditionalContext: node.supportsNativeAdditionalContext === true || node.supportsNativeAdditionalContext === "true" ? true : node.supportsNativeAdditionalContext === false || node.supportsNativeAdditionalContext === "false" ? false : undefined,
805
+ supportsBlock: node.supportsBlock === true || node.supportsBlock === "true" ? true : node.supportsBlock === false || node.supportsBlock === "false" ? false : undefined,
806
+ supportsAsk: node.supportsAsk === true || node.supportsAsk === "true" ? true : node.supportsAsk === false || node.supportsAsk === "false" ? false : undefined,
807
+ supportsToolInputMutation: node.supportsToolInputMutation === true || node.supportsToolInputMutation === "true" ? true : node.supportsToolInputMutation === false || node.supportsToolInputMutation === "false" ? false : undefined,
808
+ supportsToolResultMutation: node.supportsToolResultMutation === true || node.supportsToolResultMutation === "true" ? true : node.supportsToolResultMutation === false || node.supportsToolResultMutation === "false" ? false : undefined,
809
+ supportsPersistedEnv: node.supportsPersistedEnv === true || node.supportsPersistedEnv === "true" ? true : node.supportsPersistedEnv === false || node.supportsPersistedEnv === "false" ? false : undefined,
810
+ envPersistenceMode: valueAsString(node.envPersistenceMode) || undefined,
811
+ toolInterceptionScope: valueAsString(node.toolInterceptionScope) || undefined,
534
812
  supportedHooks: supportedHooksForTarget(targetId),
535
813
  evidenceIds: [],
536
814
  };
@@ -543,13 +821,13 @@ function buildDataState() {
543
821
  const ontologySchema = (0, atlas_bridge_1.getOntologySchema)();
544
822
  const evidenceNodes = (0, atlas_bridge_1.listNodesByKind)("EvidenceSource");
545
823
  const claimNodes = (0, atlas_bridge_1.listNodesByKind)("Claim");
546
- const evidenceClaims = (0, evidence_projection_1.buildClaimsByEvidence)(claimNodes, evidenceNodes, (0, atlas_bridge_1.listRelationshipsByRelation)("sourced_from"));
824
+ const evidenceClaims = buildClaimsByEvidence(claimNodes, evidenceNodes, (0, atlas_bridge_1.listRelationshipsByRelation)("sourced_from"));
547
825
  const evidence = evidenceNodes.map((node) => toEvidenceRecord(node, evidenceClaims));
548
826
  const claims = claimNodes.map(toClaimRecord);
549
827
  const providers = (0, atlas_bridge_1.listNodesByKind)("ModelProviderVersion").map(toModelProviderVersion);
550
828
  const models = (0, atlas_bridge_1.listNodesByKind)("ModelVersion").map(toModelVersion);
551
829
  const transports = (0, atlas_bridge_1.listNodesByKind)("TransportRuntime")
552
- .filter((node) => (0, transport_mux_cutover_1.shouldSurfaceTransportRuntime)(valueAsString(node.runtimeId)))
830
+ .filter((node) => (0, transport_mux_cutover_1.shouldSurfaceTransportRuntime)(transportRuntimeId(node)))
553
831
  .map(toTransportDescriptor);
554
832
  const capabilities = (0, atlas_bridge_1.listNodesByKind)("Capability").map(toCapabilityDescriptor);
555
833
  const modalities = (0, atlas_bridge_1.listNodesByKind)("Modality")