@a5c-ai/agent-catalog 0.1.0 → 5.0.1-staging.13b6281a

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.
@@ -0,0 +1,4 @@
1
+ export declare function resolveCatalogAssetPath(relativeAssetPath: string): string;
2
+ export declare function resolveCatalogGraphAssetPath(...segments: string[]): string;
3
+ export declare function resolveCatalogEvidenceAssetPath(...segments: string[]): string;
4
+ //# sourceMappingURL=assets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../src/assets.ts"],"names":[],"mappings":"AA6DA,wBAAgB,uBAAuB,CAAC,iBAAiB,EAAE,MAAM,GAAG,MAAM,CAezE;AAED,wBAAgB,4BAA4B,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAE1E;AAED,wBAAgB,+BAA+B,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAE7E"}
package/dist/assets.js ADDED
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.resolveCatalogAssetPath = resolveCatalogAssetPath;
7
+ exports.resolveCatalogGraphAssetPath = resolveCatalogGraphAssetPath;
8
+ exports.resolveCatalogEvidenceAssetPath = resolveCatalogEvidenceAssetPath;
9
+ const node_fs_1 = __importDefault(require("node:fs"));
10
+ const node_path_1 = __importDefault(require("node:path"));
11
+ const PACKAGE_NAME = "@a5c-ai/agent-catalog";
12
+ const PACKAGE_ROOT = node_path_1.default.resolve(__dirname, "..");
13
+ const ALLOWED_ASSET_ROOTS = new Set(["graph", "evidence", "docs"]);
14
+ function normalizeAssetPath(relativeAssetPath) {
15
+ const normalized = relativeAssetPath.replace(/\\/g, "/").replace(/^\.\/+/, "");
16
+ if (!normalized || node_path_1.default.isAbsolute(normalized)) {
17
+ throw new Error(`Expected a relative asset path within ${PACKAGE_NAME}, got "${relativeAssetPath}".`);
18
+ }
19
+ const segments = normalized.split("/").filter(Boolean);
20
+ if (segments.length === 0 || segments.some((segment) => segment === "..")) {
21
+ throw new Error(`Asset path must stay within ${PACKAGE_NAME}, got "${relativeAssetPath}".`);
22
+ }
23
+ if (!ALLOWED_ASSET_ROOTS.has(segments[0])) {
24
+ throw new Error(`Asset path must start with one of ${[...ALLOWED_ASSET_ROOTS].join(", ")}; got "${relativeAssetPath}".`);
25
+ }
26
+ return segments.join("/");
27
+ }
28
+ function resolveExportedAssetPath(relativeAssetPath) {
29
+ try {
30
+ return require.resolve(`${PACKAGE_NAME}/${relativeAssetPath}`);
31
+ }
32
+ catch {
33
+ return undefined;
34
+ }
35
+ }
36
+ function resolvePackageRootCandidates() {
37
+ const candidates = new Set();
38
+ try {
39
+ candidates.add(node_path_1.default.dirname(require.resolve(`${PACKAGE_NAME}/package.json`)));
40
+ }
41
+ catch {
42
+ // Ignore packaged/bundled environments that do not expose package.json.
43
+ }
44
+ candidates.add(PACKAGE_ROOT);
45
+ let currentDir = process.cwd();
46
+ while (true) {
47
+ candidates.add(node_path_1.default.join(currentDir, "packages", "agent-catalog"));
48
+ candidates.add(node_path_1.default.join(currentDir, "agent-catalog"));
49
+ const parentDir = node_path_1.default.dirname(currentDir);
50
+ if (parentDir === currentDir) {
51
+ break;
52
+ }
53
+ currentDir = parentDir;
54
+ }
55
+ return [...candidates];
56
+ }
57
+ function resolveCatalogAssetPath(relativeAssetPath) {
58
+ const normalized = normalizeAssetPath(relativeAssetPath);
59
+ const exportedPath = resolveExportedAssetPath(normalized);
60
+ if (exportedPath && node_fs_1.default.existsSync(exportedPath)) {
61
+ return exportedPath;
62
+ }
63
+ for (const packageRoot of resolvePackageRootCandidates()) {
64
+ const localPath = node_path_1.default.join(packageRoot, normalized);
65
+ if (node_fs_1.default.existsSync(localPath)) {
66
+ return localPath;
67
+ }
68
+ }
69
+ throw new Error(`Asset "${relativeAssetPath}" is unavailable for ${PACKAGE_NAME}.`);
70
+ }
71
+ function resolveCatalogGraphAssetPath(...segments) {
72
+ return resolveCatalogAssetPath(node_path_1.default.posix.join("graph", ...segments.map((segment) => segment.replace(/\\/g, "/"))));
73
+ }
74
+ function resolveCatalogEvidenceAssetPath(...segments) {
75
+ return resolveCatalogAssetPath(node_path_1.default.posix.join("evidence", ...segments.map((segment) => segment.replace(/\\/g, "/"))));
76
+ }
package/dist/cli.d.ts ADDED
@@ -0,0 +1,168 @@
1
+ import type { GraphNode } from "./models";
2
+ export interface CliCatalogRow {
3
+ agent: string;
4
+ version: string;
5
+ providers: string;
6
+ hooks: string;
7
+ capabilities: string;
8
+ }
9
+ export interface CliCatalogSummary {
10
+ schemaVersion: string;
11
+ graphId: string;
12
+ totalAgents: number;
13
+ totalCapabilities: number;
14
+ totalModelProviders: number;
15
+ }
16
+ export interface CliGraphNodeRow {
17
+ nodeId: string;
18
+ kind: GraphNode["kind"];
19
+ label: string;
20
+ evidenceIds: string[];
21
+ attributes: Record<string, unknown>;
22
+ }
23
+ export interface CliGraphEdgeRow {
24
+ edgeId: string;
25
+ relation: string;
26
+ fromNodeId: string;
27
+ fromKind?: GraphNode["kind"];
28
+ fromLabel: string;
29
+ toNodeId: string;
30
+ toKind?: GraphNode["kind"];
31
+ toLabel: string;
32
+ versionRange?: string;
33
+ evidenceIds: string[];
34
+ attributes: Record<string, unknown>;
35
+ }
36
+ export interface CliNodeRelationRow extends CliGraphEdgeRow {
37
+ direction: "incoming" | "outgoing";
38
+ relatedNodeId: string;
39
+ relatedNodeKind?: GraphNode["kind"];
40
+ relatedLabel: string;
41
+ }
42
+ export interface CliNodeQuery {
43
+ node: CliGraphNodeRow;
44
+ outgoing: CliNodeRelationRow[];
45
+ incoming: CliNodeRelationRow[];
46
+ claims: CliEvidenceClaimRow[];
47
+ evidenceSources: CliEvidenceSourceRow[];
48
+ }
49
+ export interface CliEvidenceClaimRow {
50
+ claimId: string;
51
+ subjectKind: string;
52
+ subjectId: string;
53
+ statement: string;
54
+ confidence: string;
55
+ status: string;
56
+ evidenceIds: string[];
57
+ sourceIds: string[];
58
+ }
59
+ export interface CliEvidenceSourceRow {
60
+ evidenceId: string;
61
+ kind: string;
62
+ sourcePathOrUrl: string;
63
+ locator: string;
64
+ capturedAt: string;
65
+ trustLevel: string;
66
+ claimIds: string[];
67
+ }
68
+ export interface CliCapabilitySupportRow {
69
+ supportId: string;
70
+ capabilityId: string;
71
+ capabilityLabel: string;
72
+ supportLevel: string;
73
+ subjectKind: string;
74
+ subjectId: string;
75
+ subjectLabel: string;
76
+ versionRange: string;
77
+ notes?: string;
78
+ claimIds: string[];
79
+ sourceIds: string[];
80
+ evidenceIds: string[];
81
+ }
82
+ export interface CliAgentRelationRow {
83
+ nodeId: string;
84
+ agentId: string;
85
+ displayName: string;
86
+ versionRange: string;
87
+ providerIds: string[];
88
+ modelIds: string[];
89
+ transportIds: string[];
90
+ modalityIds: string[];
91
+ hookIds: string[];
92
+ pluginTargetIds: string[];
93
+ sessionNuanceIds: string[];
94
+ lifecycleNuanceIds: string[];
95
+ evidenceIds: string[];
96
+ }
97
+ export interface CliPackageRelationRow {
98
+ nodeId: string;
99
+ packageId: string;
100
+ packageName: string;
101
+ workspacePath: string;
102
+ moduleType: string;
103
+ sourceOfTruthRole: string;
104
+ surfaceKinds: string[];
105
+ processIds: string[];
106
+ pathIds: string[];
107
+ paths: string[];
108
+ ciIds: string[];
109
+ graphIds: string[];
110
+ evidenceIds: string[];
111
+ }
112
+ export interface CliProcessRelationRow {
113
+ nodeId: string;
114
+ processId: string;
115
+ displayName: string;
116
+ category: string;
117
+ ownerPackageId: string;
118
+ pathIds: string[];
119
+ paths: string[];
120
+ inputs: string[];
121
+ outputs: string[];
122
+ evidenceIds: string[];
123
+ }
124
+ export interface CliGraphEdgeFilter {
125
+ relation?: string;
126
+ fromNodeId?: string;
127
+ toNodeId?: string;
128
+ nodeId?: string;
129
+ }
130
+ export interface CliNodeRelationFilter {
131
+ nodeId: string;
132
+ direction?: "incoming" | "outgoing" | "both";
133
+ relation?: string;
134
+ }
135
+ export interface CliEvidenceClaimFilter {
136
+ claimId?: string;
137
+ subjectId?: string;
138
+ subjectKind?: string;
139
+ nodeId?: string;
140
+ evidenceId?: string;
141
+ }
142
+ export interface CliEvidenceSourceFilter {
143
+ evidenceId?: string;
144
+ claimId?: string;
145
+ nodeId?: string;
146
+ }
147
+ export interface CliCapabilitySupportFilter {
148
+ supportId?: string;
149
+ capabilityId?: string;
150
+ subjectKind?: string;
151
+ subjectId?: string;
152
+ subjectIdPrefix?: string;
153
+ supportLevel?: string;
154
+ versionRange?: string;
155
+ }
156
+ export declare function listCliRows(): CliCatalogRow[];
157
+ export declare function getCliCatalogSummary(): CliCatalogSummary;
158
+ export declare function listCliGraphNodes(kind?: GraphNode["kind"]): CliGraphNodeRow[];
159
+ export declare function listCliGraphEdges(filter?: CliGraphEdgeFilter): CliGraphEdgeRow[];
160
+ export declare function listCliNodeRelations(filter: CliNodeRelationFilter): CliNodeRelationRow[];
161
+ export declare function getCliNodeQuery(nodeId: string): CliNodeQuery | undefined;
162
+ export declare function listCliEvidenceClaims(filter?: CliEvidenceClaimFilter): CliEvidenceClaimRow[];
163
+ export declare function listCliEvidenceSources(filter?: CliEvidenceSourceFilter): CliEvidenceSourceRow[];
164
+ export declare function listCliCapabilitySupport(filter?: CliCapabilitySupportFilter): CliCapabilitySupportRow[];
165
+ export declare function listCliAgentRelations(agentId?: string): CliAgentRelationRow[];
166
+ export declare function listCliPackageRelations(packageId?: string): CliPackageRelationRow[];
167
+ export declare function listCliProcessRelations(processId?: string): CliProcessRelationRow[];
168
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/cli.js ADDED
@@ -0,0 +1,336 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listCliRows = listCliRows;
4
+ exports.getCliCatalogSummary = getCliCatalogSummary;
5
+ exports.listCliGraphNodes = listCliGraphNodes;
6
+ exports.listCliGraphEdges = listCliGraphEdges;
7
+ exports.listCliNodeRelations = listCliNodeRelations;
8
+ exports.getCliNodeQuery = getCliNodeQuery;
9
+ exports.listCliEvidenceClaims = listCliEvidenceClaims;
10
+ exports.listCliEvidenceSources = listCliEvidenceSources;
11
+ exports.listCliCapabilitySupport = listCliCapabilitySupport;
12
+ exports.listCliAgentRelations = listCliAgentRelations;
13
+ exports.listCliPackageRelations = listCliPackageRelations;
14
+ exports.listCliProcessRelations = listCliProcessRelations;
15
+ const data_1 = require("./data");
16
+ const graph_1 = require("./graph");
17
+ const transport_mux_cutover_1 = require("./transport-mux-cutover");
18
+ function valueAsString(value) {
19
+ return typeof value === "string" ? value : "";
20
+ }
21
+ function stringArray(value) {
22
+ return Array.isArray(value) ? value.filter((entry) => typeof entry === "string") : [];
23
+ }
24
+ function uniqueStrings(values) {
25
+ return Array.from(new Set(values.filter(Boolean)));
26
+ }
27
+ function displayLabel(node) {
28
+ if (!node) {
29
+ return "";
30
+ }
31
+ const candidates = [
32
+ node.displayName,
33
+ node.label,
34
+ node.canonicalName,
35
+ node.packageName,
36
+ node.statement,
37
+ node.path,
38
+ node.sourcePathOrUrl,
39
+ node.agentId,
40
+ node.providerId,
41
+ node.modelId,
42
+ node.runtimeId,
43
+ node.modalityId,
44
+ node.hookId,
45
+ node.capabilityId,
46
+ node.processId,
47
+ node.packageId,
48
+ node.pathId,
49
+ node.targetId,
50
+ node.evidenceId,
51
+ node.claimId,
52
+ node.sessionSemanticsId,
53
+ node.lifecycleSemanticsId,
54
+ node.signalId,
55
+ node.mappingId,
56
+ node.artifactId,
57
+ node.id,
58
+ ];
59
+ return candidates.map(valueAsString).find(Boolean) ?? node.id;
60
+ }
61
+ function toCliGraphNodeRow(node) {
62
+ const { id, kind, evidenceRefs, ...attributes } = node;
63
+ return {
64
+ nodeId: id,
65
+ kind,
66
+ label: displayLabel(node),
67
+ evidenceIds: stringArray(evidenceRefs),
68
+ attributes,
69
+ };
70
+ }
71
+ function toCliGraphEdgeRow(edge) {
72
+ const fromNode = (0, graph_1.getNodeById)(edge.from);
73
+ const toNode = (0, graph_1.getNodeById)(edge.to);
74
+ const { id, relation, from, to, evidenceRefs, ...attributes } = edge;
75
+ return {
76
+ edgeId: id,
77
+ relation,
78
+ fromNodeId: from,
79
+ fromKind: fromNode?.kind,
80
+ fromLabel: displayLabel(fromNode),
81
+ toNodeId: to,
82
+ toKind: toNode?.kind,
83
+ toLabel: displayLabel(toNode),
84
+ versionRange: valueAsString(edge.versionRange) || undefined,
85
+ evidenceIds: stringArray(evidenceRefs),
86
+ attributes,
87
+ };
88
+ }
89
+ function claimNodesFor(nodeId) {
90
+ return (0, graph_1.listOutgoingTargets)(nodeId, "supported_by_claim").filter((node) => node.kind === "Claim");
91
+ }
92
+ function sourceNodesForClaim(claimNodeId) {
93
+ const claimNode = (0, graph_1.getNodeById)(claimNodeId);
94
+ const sourceNodes = (0, graph_1.listOutgoingTargets)(claimNodeId, "sourced_from").filter((node) => node.kind === "EvidenceSource");
95
+ if (sourceNodes.length > 0) {
96
+ return sourceNodes;
97
+ }
98
+ return stringArray(claimNode?.evidenceIds)
99
+ .map((evidenceId) => (0, graph_1.getNodeById)(`evidence:${evidenceId}`))
100
+ .filter((node) => node?.kind === "EvidenceSource");
101
+ }
102
+ function toCliEvidenceClaimRow(node) {
103
+ const sourceIds = sourceNodesForClaim(node.id).map((source) => valueAsString(source.evidenceId)).filter(Boolean);
104
+ const evidenceIds = stringArray(node.evidenceIds);
105
+ return {
106
+ claimId: valueAsString(node.claimId),
107
+ subjectKind: valueAsString(node.subjectKind),
108
+ subjectId: valueAsString(node.subjectId),
109
+ statement: valueAsString(node.statement),
110
+ confidence: valueAsString(node.confidence),
111
+ status: (0, transport_mux_cutover_1.effectiveTransportMuxClaimStatus)(valueAsString(node.status), evidenceIds),
112
+ evidenceIds,
113
+ sourceIds: uniqueStrings(sourceIds),
114
+ };
115
+ }
116
+ function claimsForEvidence(evidenceId) {
117
+ const directClaimIds = (0, graph_1.listGraphEdges)()
118
+ .filter((edge) => edge.relation === "sourced_from" && edge.to === `evidence:${evidenceId}`)
119
+ .map((edge) => {
120
+ const claimNode = (0, graph_1.getNodeById)(edge.from);
121
+ return valueAsString(claimNode?.claimId);
122
+ })
123
+ .filter(Boolean);
124
+ if (directClaimIds.length > 0) {
125
+ return uniqueStrings(directClaimIds);
126
+ }
127
+ return (0, graph_1.listGraphNodes)()
128
+ .filter((node) => node.kind === "Claim" && stringArray(node.evidenceIds).includes(evidenceId))
129
+ .map((node) => valueAsString(node.claimId))
130
+ .filter(Boolean);
131
+ }
132
+ function toCliEvidenceSourceRow(node) {
133
+ return {
134
+ evidenceId: valueAsString(node.evidenceId),
135
+ kind: valueAsString(node.kindLabel),
136
+ sourcePathOrUrl: valueAsString(node.sourcePathOrUrl),
137
+ locator: valueAsString(node.locator),
138
+ capturedAt: valueAsString(node.capturedAt),
139
+ trustLevel: valueAsString(node.trustLevel),
140
+ claimIds: claimsForEvidence(valueAsString(node.evidenceId)),
141
+ };
142
+ }
143
+ function capabilityLabel(capabilityId) {
144
+ return displayLabel((0, graph_1.getNodeById)(`capability:${capabilityId}`)) || capabilityId;
145
+ }
146
+ function nodeRelationRow(edge, direction, nodeId) {
147
+ const row = toCliGraphEdgeRow(edge);
148
+ const relatedNodeId = direction === "outgoing" ? edge.to : edge.from;
149
+ const relatedNode = (0, graph_1.getNodeById)(relatedNodeId);
150
+ return {
151
+ ...row,
152
+ direction,
153
+ relatedNodeId,
154
+ relatedNodeKind: relatedNode?.kind,
155
+ relatedLabel: displayLabel(relatedNode),
156
+ };
157
+ }
158
+ function listCliRows() {
159
+ return data_1.AGENT_CATALOG.agents.map((agent) => ({
160
+ agent: agent.displayName,
161
+ version: agent.versionRange,
162
+ providers: agent.providerIds.join(", "),
163
+ hooks: agent.hookIds.join(", "),
164
+ capabilities: agent.capabilityIds.join(", "),
165
+ }));
166
+ }
167
+ function getCliCatalogSummary() {
168
+ return {
169
+ schemaVersion: data_1.GRAPH_DOCUMENT.schemaVersion,
170
+ graphId: data_1.GRAPH_DOCUMENT.graphId,
171
+ totalAgents: data_1.AGENT_CATALOG.agents.length,
172
+ totalCapabilities: data_1.AGENT_CATALOG.capabilities.length,
173
+ totalModelProviders: data_1.AGENT_CATALOG.providers.length,
174
+ };
175
+ }
176
+ function listCliGraphNodes(kind) {
177
+ return (0, graph_1.listGraphNodes)()
178
+ .filter((node) => !kind || node.kind === kind)
179
+ .map(toCliGraphNodeRow);
180
+ }
181
+ function listCliGraphEdges(filter = {}) {
182
+ return (0, graph_1.listGraphEdges)()
183
+ .filter((edge) => !filter.relation || edge.relation === filter.relation)
184
+ .filter((edge) => !filter.fromNodeId || edge.from === filter.fromNodeId)
185
+ .filter((edge) => !filter.toNodeId || edge.to === filter.toNodeId)
186
+ .filter((edge) => !filter.nodeId || edge.from === filter.nodeId || edge.to === filter.nodeId)
187
+ .map(toCliGraphEdgeRow);
188
+ }
189
+ function listCliNodeRelations(filter) {
190
+ return (0, graph_1.listGraphEdges)()
191
+ .filter((edge) => !filter.relation || edge.relation === filter.relation)
192
+ .filter((edge) => {
193
+ if (filter.direction === "incoming") {
194
+ return edge.to === filter.nodeId;
195
+ }
196
+ if (filter.direction === "outgoing") {
197
+ return edge.from === filter.nodeId;
198
+ }
199
+ return edge.from === filter.nodeId || edge.to === filter.nodeId;
200
+ })
201
+ .map((edge) => nodeRelationRow(edge, edge.from === filter.nodeId ? "outgoing" : "incoming", filter.nodeId));
202
+ }
203
+ function getCliNodeQuery(nodeId) {
204
+ const node = (0, graph_1.getNodeById)(nodeId);
205
+ if (!node) {
206
+ return undefined;
207
+ }
208
+ return {
209
+ node: toCliGraphNodeRow(node),
210
+ outgoing: listCliNodeRelations({ nodeId, direction: "outgoing" }),
211
+ incoming: listCliNodeRelations({ nodeId, direction: "incoming" }),
212
+ claims: listCliEvidenceClaims({ nodeId }),
213
+ evidenceSources: listCliEvidenceSources({ nodeId }),
214
+ };
215
+ }
216
+ function listCliEvidenceClaims(filter = {}) {
217
+ const nodeIdFilter = filter.nodeId;
218
+ const claims = (nodeIdFilter ? claimNodesFor(nodeIdFilter) : (0, graph_1.listGraphNodes)().filter((node) => node.kind === "Claim")).map(toCliEvidenceClaimRow);
219
+ return claims
220
+ .filter((claim) => !filter.claimId || claim.claimId === filter.claimId)
221
+ .filter((claim) => !filter.subjectId || claim.subjectId === filter.subjectId)
222
+ .filter((claim) => !filter.subjectKind || claim.subjectKind === filter.subjectKind)
223
+ .filter((claim) => !filter.evidenceId || claim.sourceIds.includes(filter.evidenceId) || claim.evidenceIds.includes(filter.evidenceId));
224
+ }
225
+ function listCliEvidenceSources(filter = {}) {
226
+ const nodeIdFilter = filter.nodeId;
227
+ const sources = (nodeIdFilter
228
+ ? uniqueStrings(claimNodesFor(nodeIdFilter).flatMap((claim) => sourceNodesForClaim(claim.id).map((source) => source.id)))
229
+ .map((nodeId) => (0, graph_1.getNodeById)(nodeId))
230
+ .filter((node) => Boolean(node))
231
+ : (0, graph_1.listGraphNodes)().filter((node) => node.kind === "EvidenceSource")).map(toCliEvidenceSourceRow);
232
+ return sources
233
+ .filter((source) => !filter.evidenceId || source.evidenceId === filter.evidenceId)
234
+ .filter((source) => !filter.claimId || source.claimIds.includes(filter.claimId));
235
+ }
236
+ function listCliCapabilitySupport(filter = {}) {
237
+ return (0, graph_1.listGraphNodes)()
238
+ .filter((node) => node.kind === "CapabilitySupport")
239
+ .filter((node) => !filter.supportId || valueAsString(node.supportId) === filter.supportId)
240
+ .filter((node) => !filter.capabilityId || valueAsString(node.capabilityId) === filter.capabilityId)
241
+ .filter((node) => !filter.subjectKind || valueAsString(node.subjectKind) === filter.subjectKind)
242
+ .filter((node) => !filter.subjectId || valueAsString(node.subjectId) === filter.subjectId)
243
+ .filter((node) => !filter.subjectIdPrefix || valueAsString(node.subjectId).startsWith(filter.subjectIdPrefix))
244
+ .filter((node) => !filter.supportLevel || valueAsString(node.supportLevel) === filter.supportLevel)
245
+ .filter((node) => !filter.versionRange || valueAsString(node.versionRange) === filter.versionRange)
246
+ .map((node) => {
247
+ const claimRows = listCliEvidenceClaims({ nodeId: node.id });
248
+ const subjectNode = (0, graph_1.getNodeById)(valueAsString(node.subjectId));
249
+ const sourceIds = uniqueStrings(claimRows.flatMap((claim) => claim.sourceIds));
250
+ return {
251
+ supportId: valueAsString(node.supportId),
252
+ capabilityId: valueAsString(node.capabilityId),
253
+ capabilityLabel: capabilityLabel(valueAsString(node.capabilityId)),
254
+ supportLevel: valueAsString(node.supportLevel),
255
+ subjectKind: valueAsString(node.subjectKind),
256
+ subjectId: valueAsString(node.subjectId),
257
+ subjectLabel: displayLabel(subjectNode),
258
+ versionRange: valueAsString(node.versionRange),
259
+ notes: valueAsString(node.notes) || undefined,
260
+ claimIds: claimRows.map((claim) => claim.claimId),
261
+ sourceIds,
262
+ evidenceIds: uniqueStrings([...stringArray(node.evidenceRefs), ...claimRows.flatMap((claim) => claim.evidenceIds), ...sourceIds]),
263
+ };
264
+ });
265
+ }
266
+ function listCliAgentRelations(agentId) {
267
+ return (0, graph_1.listGraphNodes)()
268
+ .filter((node) => node.kind === "AgentVersion")
269
+ .filter((node) => !agentId || valueAsString(node.agentId) === agentId)
270
+ .map((node) => {
271
+ const matchingAgent = data_1.AGENT_CATALOG.agents.find((agent) => agent.agentId === valueAsString(node.agentId) && agent.versionRange === valueAsString(node.versionRange));
272
+ return {
273
+ nodeId: node.id,
274
+ agentId: valueAsString(node.agentId),
275
+ displayName: valueAsString(node.displayName),
276
+ versionRange: valueAsString(node.versionRange),
277
+ providerIds: matchingAgent?.providerIds ?? [],
278
+ modelIds: matchingAgent?.modelIds ?? [],
279
+ transportIds: matchingAgent?.transportIds ?? [],
280
+ modalityIds: matchingAgent?.modalityIds ?? [],
281
+ hookIds: matchingAgent?.hookIds ?? [],
282
+ pluginTargetIds: matchingAgent?.pluginTargetIds ?? [],
283
+ sessionNuanceIds: matchingAgent?.sessionNuanceIds ?? [],
284
+ lifecycleNuanceIds: matchingAgent?.lifecycleNuanceIds ?? [],
285
+ evidenceIds: uniqueStrings([...(matchingAgent?.evidenceIds ?? []), ...stringArray(node.evidenceRefs)]),
286
+ };
287
+ });
288
+ }
289
+ function listCliPackageRelations(packageId) {
290
+ return (0, graph_1.listGraphNodes)()
291
+ .filter((node) => node.kind === "PackageSurface")
292
+ .filter((node) => !packageId || valueAsString(node.packageId) === packageId)
293
+ .map((node) => {
294
+ const processes = (0, graph_1.listOutgoingTargets)(node.id, "surfaces_process");
295
+ const paths = (0, graph_1.listOutgoingTargets)(node.id, "references_path");
296
+ const ciSurfaces = (0, graph_1.listOutgoingTargets)(node.id, "validated_by_ci");
297
+ const graphIds = (0, graph_1.listGraphEdges)()
298
+ .filter((edge) => edge.from === node.id && edge.relation === "wraps_graph")
299
+ .map((edge) => edge.to);
300
+ return {
301
+ nodeId: node.id,
302
+ packageId: valueAsString(node.packageId),
303
+ packageName: valueAsString(node.packageName),
304
+ workspacePath: valueAsString(node.workspacePath),
305
+ moduleType: valueAsString(node.moduleType),
306
+ sourceOfTruthRole: valueAsString(node.sourceOfTruthRole),
307
+ surfaceKinds: stringArray(node.surfaceKinds),
308
+ processIds: processes.map((process) => valueAsString(process.processId)).filter(Boolean),
309
+ pathIds: paths.map((pathNode) => valueAsString(pathNode.pathId)).filter(Boolean),
310
+ paths: paths.map((pathNode) => valueAsString(pathNode.path)).filter(Boolean),
311
+ ciIds: ciSurfaces.map((ci) => valueAsString(ci.ciId)).filter(Boolean),
312
+ graphIds: uniqueStrings(graphIds),
313
+ evidenceIds: stringArray(node.evidenceRefs),
314
+ };
315
+ });
316
+ }
317
+ function listCliProcessRelations(processId) {
318
+ return (0, graph_1.listGraphNodes)()
319
+ .filter((node) => node.kind === "ProcessDescriptor")
320
+ .filter((node) => !processId || valueAsString(node.processId) === processId)
321
+ .map((node) => {
322
+ const paths = (0, graph_1.listOutgoingTargets)(node.id, "references_path");
323
+ return {
324
+ nodeId: node.id,
325
+ processId: valueAsString(node.processId),
326
+ displayName: valueAsString(node.displayName),
327
+ category: valueAsString(node.category),
328
+ ownerPackageId: valueAsString(node.ownerPackage),
329
+ pathIds: paths.map((pathNode) => valueAsString(pathNode.pathId)).filter(Boolean),
330
+ paths: paths.map((pathNode) => valueAsString(pathNode.path)).filter(Boolean),
331
+ inputs: stringArray(node.inputs),
332
+ outputs: stringArray(node.outputs),
333
+ evidenceIds: stringArray(node.evidenceRefs),
334
+ };
335
+ });
336
+ }
package/dist/data.d.ts ADDED
@@ -0,0 +1,54 @@
1
+ import type { AgentCatalog, AgentVersion, CatalogGraph, CapabilityAssertion, CapabilityDescriptor, ClaimRecord, EvidenceRecord, GraphDocument, HarnessFallbackMetadata, HarnessImageEntry, HostDetectionRule, HookDescriptor, HooksMuxDetectionRule, HostMetadataField, LifecycleNuance, ModelProviderVersion, ModelVersion, ModalityDescriptor, PluginTargetDescriptor, ProcessDescriptor, SessionNuance, TransportDescriptor, OntologySchema } from "./models";
2
+ interface AgentCatalogDataState {
3
+ graph: CatalogGraph;
4
+ graphDocument: GraphDocument;
5
+ ontologySchema: OntologySchema;
6
+ evidence: EvidenceRecord[];
7
+ claims: ClaimRecord[];
8
+ providers: ModelProviderVersion[];
9
+ models: ModelVersion[];
10
+ transports: TransportDescriptor[];
11
+ capabilities: CapabilityDescriptor[];
12
+ modalities: ModalityDescriptor[];
13
+ hooks: HookDescriptor[];
14
+ sessionNuances: SessionNuance[];
15
+ lifecycleNuances: LifecycleNuance[];
16
+ processes: ProcessDescriptor[];
17
+ hostDetectionRules: HostDetectionRule[];
18
+ agents: AgentVersion[];
19
+ hostSignalMap: Record<string, string[]>;
20
+ hostMetadataFields: Record<string, HostMetadataField[]>;
21
+ hooksMuxDetectionRules: HooksMuxDetectionRule[];
22
+ fallbackMetadata: Record<string, HarnessFallbackMetadata>;
23
+ harnessImages: HarnessImageEntry[];
24
+ pluginTargets: PluginTargetDescriptor[];
25
+ capabilityAssertions: CapabilityAssertion[];
26
+ agentCatalog: AgentCatalog;
27
+ }
28
+ export declare function clearAgentCatalogDataCache(): void;
29
+ export declare function getCatalogDataState(): AgentCatalogDataState;
30
+ export declare const GRAPH_DOCUMENT: GraphDocument;
31
+ export declare const ONTOLOGY_SCHEMA: OntologySchema;
32
+ export declare const EVIDENCE: EvidenceRecord[];
33
+ export declare const CLAIMS: ClaimRecord[];
34
+ export declare const PROVIDERS: ModelProviderVersion[];
35
+ export declare const MODELS: ModelVersion[];
36
+ export declare const TRANSPORTS: TransportDescriptor[];
37
+ export declare const CAPABILITIES: CapabilityDescriptor[];
38
+ export declare const MODALITIES: ModalityDescriptor[];
39
+ export declare const HOOKS: HookDescriptor[];
40
+ export declare const SESSION_NUANCES: SessionNuance[];
41
+ export declare const LIFECYCLE_NUANCES: LifecycleNuance[];
42
+ export declare const PROCESSES: ProcessDescriptor[];
43
+ export declare const HOST_DETECTION_RULES: HostDetectionRule[];
44
+ export declare const AGENTS: AgentVersion[];
45
+ export declare const HOST_SIGNAL_MAP: Record<string, string[]>;
46
+ export declare const HOST_METADATA_FIELDS: Record<string, HostMetadataField[]>;
47
+ export declare const HOOKS_MUX_DETECTION_RULES: HooksMuxDetectionRule[];
48
+ export declare const FALLBACK_METADATA: Record<string, HarnessFallbackMetadata>;
49
+ export declare const HARNESS_IMAGES: HarnessImageEntry[];
50
+ export declare const PLUGIN_TARGETS: PluginTargetDescriptor[];
51
+ export declare const CAPABILITY_ASSERTIONS: CapabilityAssertion[];
52
+ export declare const AGENT_CATALOG: AgentCatalog;
53
+ export {};
54
+ //# sourceMappingURL=data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"AAiBA,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;AA0hBlB,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,CAEjD;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"}