@euconform/core 1.2.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +18 -0
- package/assets/datasets/crows-pairs-de.json +613 -0
- package/assets/datasets/crows-pairs-en.json +9055 -0
- package/dist/datasets/crows-pairs.d.ts +7 -0
- package/dist/datasets/crows-pairs.d.ts.map +1 -0
- package/dist/datasets/crows-pairs.js +41 -0
- package/dist/evidence/bundle.d.ts +23 -0
- package/dist/evidence/bundle.d.ts.map +1 -0
- package/dist/evidence/bundle.js +44 -0
- package/dist/evidence/compliance-evaluation.d.ts +12 -0
- package/dist/evidence/compliance-evaluation.d.ts.map +1 -0
- package/dist/evidence/compliance-evaluation.js +78 -0
- package/dist/evidence/hash.d.ts +2 -0
- package/dist/evidence/hash.d.ts.map +1 -0
- package/dist/evidence/hash.js +4 -0
- package/dist/evidence/index.d.ts +13 -0
- package/dist/evidence/index.d.ts.map +1 -0
- package/dist/evidence/index.js +11 -0
- package/dist/evidence/markdown.d.ts +9 -0
- package/dist/evidence/markdown.d.ts.map +1 -0
- package/dist/evidence/markdown.js +169 -0
- package/dist/evidence/output.d.ts +13 -0
- package/dist/evidence/output.d.ts.map +1 -0
- package/dist/evidence/output.js +547 -0
- package/dist/evidence/types.d.ts +230 -0
- package/dist/evidence/types.d.ts.map +1 -0
- package/dist/evidence/types.js +7 -0
- package/dist/evidence/validate.d.ts +8 -0
- package/dist/evidence/validate.d.ts.map +1 -0
- package/dist/evidence/validate.js +192 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/inference/index.d.ts +1 -1
- package/dist/inference/index.d.ts.map +1 -1
- package/dist/inference/index.js +1 -1
- package/dist/inference/ollama-client.d.ts +11 -3
- package/dist/inference/ollama-client.d.ts.map +1 -1
- package/dist/inference/ollama-client.js +84 -84
- package/dist/scanner/aggregator.d.ts +7 -0
- package/dist/scanner/aggregator.d.ts.map +1 -0
- package/dist/scanner/aggregator.js +200 -0
- package/dist/scanner/detectors/ai-framework-detector.d.ts +3 -0
- package/dist/scanner/detectors/ai-framework-detector.d.ts.map +1 -0
- package/dist/scanner/detectors/ai-framework-detector.js +74 -0
- package/dist/scanner/detectors/ai-provider-detector.d.ts +3 -0
- package/dist/scanner/detectors/ai-provider-detector.d.ts.map +1 -0
- package/dist/scanner/detectors/ai-provider-detector.js +100 -0
- package/dist/scanner/detectors/compliance-detector.d.ts +3 -0
- package/dist/scanner/detectors/compliance-detector.d.ts.map +1 -0
- package/dist/scanner/detectors/compliance-detector.js +201 -0
- package/dist/scanner/detectors/config-detector.d.ts +3 -0
- package/dist/scanner/detectors/config-detector.d.ts.map +1 -0
- package/dist/scanner/detectors/config-detector.js +248 -0
- package/dist/scanner/detectors/framework-detector.d.ts +3 -0
- package/dist/scanner/detectors/framework-detector.d.ts.map +1 -0
- package/dist/scanner/detectors/framework-detector.js +141 -0
- package/dist/scanner/detectors/index.d.ts +8 -0
- package/dist/scanner/detectors/index.d.ts.map +1 -0
- package/dist/scanner/detectors/index.js +37 -0
- package/dist/scanner/detectors/local-inference-detector.d.ts +3 -0
- package/dist/scanner/detectors/local-inference-detector.d.ts.map +1 -0
- package/dist/scanner/detectors/local-inference-detector.js +93 -0
- package/dist/scanner/detectors/markdown-detector.d.ts +3 -0
- package/dist/scanner/detectors/markdown-detector.d.ts.map +1 -0
- package/dist/scanner/detectors/markdown-detector.js +139 -0
- package/dist/scanner/detectors/package-json-detector.d.ts +3 -0
- package/dist/scanner/detectors/package-json-detector.d.ts.map +1 -0
- package/dist/scanner/detectors/package-json-detector.js +166 -0
- package/dist/scanner/detectors/rag-detector.d.ts +3 -0
- package/dist/scanner/detectors/rag-detector.d.ts.map +1 -0
- package/dist/scanner/detectors/rag-detector.js +132 -0
- package/dist/scanner/detectors/shared.d.ts +18 -0
- package/dist/scanner/detectors/shared.d.ts.map +1 -0
- package/dist/scanner/detectors/shared.js +36 -0
- package/dist/scanner/discovery.d.ts +14 -0
- package/dist/scanner/discovery.d.ts.map +1 -0
- package/dist/scanner/discovery.js +235 -0
- package/dist/scanner/index.d.ts +9 -0
- package/dist/scanner/index.d.ts.map +1 -0
- package/dist/scanner/index.js +8 -0
- package/package.json +8 -3
- package/src/datasets/crows-pairs.ts +64 -0
- package/src/evidence/bundle.ts +65 -0
- package/src/evidence/compliance-evaluation.ts +114 -0
- package/src/evidence/hash.ts +5 -0
- package/src/evidence/index.ts +51 -0
- package/src/evidence/markdown.ts +226 -0
- package/src/evidence/output.ts +717 -0
- package/src/evidence/types.ts +329 -0
- package/src/evidence/validate.ts +300 -0
- package/src/index.ts +1 -0
- package/src/inference/index.ts +6 -1
- package/src/inference/ollama-client.ts +111 -104
- package/src/scanner/aggregator.ts +258 -0
- package/src/scanner/detectors/ai-framework-detector.ts +94 -0
- package/src/scanner/detectors/ai-provider-detector.ts +135 -0
- package/src/scanner/detectors/compliance-detector.ts +232 -0
- package/src/scanner/detectors/config-detector.ts +316 -0
- package/src/scanner/detectors/framework-detector.ts +163 -0
- package/src/scanner/detectors/index.ts +40 -0
- package/src/scanner/detectors/local-inference-detector.ts +124 -0
- package/src/scanner/detectors/markdown-detector.ts +176 -0
- package/src/scanner/detectors/package-json-detector.ts +202 -0
- package/src/scanner/detectors/rag-detector.ts +162 -0
- package/src/scanner/detectors/shared.ts +45 -0
- package/src/scanner/discovery.ts +290 -0
- package/src/scanner/index.ts +9 -0
- package/tests/evidence/bundle.test.ts +128 -0
- package/tests/evidence/hash.test.ts +25 -0
- package/tests/evidence/markdown.test.ts +92 -0
- package/tests/evidence/output.test.ts +203 -0
- package/tests/evidence/spec-schemas.test.ts +316 -0
- package/tests/fixtures/compliance-good/README.md +14 -0
- package/tests/fixtures/compliance-good/lib/ai-service.ts +17 -0
- package/tests/fixtures/compliance-good/lib/review-flow.ts +11 -0
- package/tests/fixtures/compliance-good/package.json +10 -0
- package/tests/fixtures/compliance-good/tests/bias-check.test.ts +13 -0
- package/tests/fixtures/nextjs-openai/README.md +5 -0
- package/tests/fixtures/nextjs-openai/app/page.tsx +11 -0
- package/tests/fixtures/nextjs-openai/package.json +9 -0
- package/tests/fixtures/ollama-rag/.env.example +2 -0
- package/tests/fixtures/ollama-rag/docker-compose.yml +9 -0
- package/tests/fixtures/ollama-rag/package.json +9 -0
- package/tests/fixtures/ollama-rag/server.ts +21 -0
- package/tests/fixtures/plain-webapp/README.md +3 -0
- package/tests/fixtures/plain-webapp/index.js +5 -0
- package/tests/fixtures/plain-webapp/package.json +8 -0
- package/tests/gpai-classifier.test.ts +4 -4
- package/tests/gpai-timeline.test.ts +2 -2
- package/tests/scanner/aggregator.test.ts +122 -0
- package/tests/scanner/detectors.test.ts +274 -0
- package/tests/scanner/discovery.test.ts +87 -0
- package/vitest.config.ts +1 -0
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EuConform Evidence Engine — Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* The scanner produces evidence, hints, and open questions — not legal verdicts.
|
|
5
|
+
* Classification is done by the wizard from human input, not by the scanner.
|
|
6
|
+
*/
|
|
7
|
+
export type SignalCategory = "framework" | "runtime" | "ai-provider" | "ai-framework" | "ai-model" | "local-inference" | "rag" | "training" | "compliance-disclosure" | "compliance-logging" | "compliance-oversight" | "compliance-bias" | "compliance-data" | "compliance-incident" | "compliance-reporting";
|
|
8
|
+
export type ConfidenceLevel = "high" | "medium" | "low";
|
|
9
|
+
export type ScanScope = "production" | "all";
|
|
10
|
+
export type FileProvenance = "runtime" | "config" | "root-docs" | "docs" | "test" | "fixture" | "example" | "generated" | "tooling";
|
|
11
|
+
export interface SignalEvidence {
|
|
12
|
+
file: string;
|
|
13
|
+
line?: number;
|
|
14
|
+
snippet: string;
|
|
15
|
+
provenance?: FileProvenance;
|
|
16
|
+
}
|
|
17
|
+
export interface DetectedSignal {
|
|
18
|
+
id: string;
|
|
19
|
+
name: string;
|
|
20
|
+
category: SignalCategory;
|
|
21
|
+
confidence: ConfidenceLevel;
|
|
22
|
+
evidence: SignalEvidence[];
|
|
23
|
+
}
|
|
24
|
+
export interface OpenQuestion {
|
|
25
|
+
id: string;
|
|
26
|
+
question: string;
|
|
27
|
+
context: string;
|
|
28
|
+
relatedSignalIds: string[];
|
|
29
|
+
suggestedAction: string;
|
|
30
|
+
}
|
|
31
|
+
export interface ScanMeta {
|
|
32
|
+
scannedAt: string;
|
|
33
|
+
scanDurationMs: number;
|
|
34
|
+
toolVersion: string;
|
|
35
|
+
targetPath: string;
|
|
36
|
+
scanScope: ScanScope;
|
|
37
|
+
filesScanned: number;
|
|
38
|
+
filesSkipped: number;
|
|
39
|
+
}
|
|
40
|
+
export interface RepoProfile {
|
|
41
|
+
name: string;
|
|
42
|
+
version?: string;
|
|
43
|
+
description?: string;
|
|
44
|
+
license?: string;
|
|
45
|
+
isMonorepo: boolean;
|
|
46
|
+
packageManager?: "npm" | "pnpm" | "yarn" | "bun";
|
|
47
|
+
languages: string[];
|
|
48
|
+
}
|
|
49
|
+
export type AppType = "web-app" | "api-server" | "cli-tool" | "library" | "chatbot" | "ml-pipeline" | "unknown";
|
|
50
|
+
export interface ScanResult {
|
|
51
|
+
meta: ScanMeta;
|
|
52
|
+
repo: RepoProfile;
|
|
53
|
+
appTypes: AppType[];
|
|
54
|
+
signals: DetectedSignal[];
|
|
55
|
+
openQuestions: OpenQuestion[];
|
|
56
|
+
signalSummary: {
|
|
57
|
+
total: number;
|
|
58
|
+
byCategory: Partial<Record<SignalCategory, number>>;
|
|
59
|
+
byConfidence: Record<ConfidenceLevel, number>;
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
export interface ScanOptions {
|
|
63
|
+
targetPath: string;
|
|
64
|
+
scope?: ScanScope;
|
|
65
|
+
extensions?: string[];
|
|
66
|
+
excludeGlobs?: string[];
|
|
67
|
+
maxFileSizeBytes?: number;
|
|
68
|
+
maxFiles?: number;
|
|
69
|
+
}
|
|
70
|
+
export interface ScanFile {
|
|
71
|
+
relativePath: string;
|
|
72
|
+
absolutePath: string;
|
|
73
|
+
extension: string;
|
|
74
|
+
content: string;
|
|
75
|
+
sizeBytes: number;
|
|
76
|
+
provenance: FileProvenance;
|
|
77
|
+
}
|
|
78
|
+
export interface DetectorContext {
|
|
79
|
+
file: ScanFile;
|
|
80
|
+
/** Pre-split lines of file.content — avoids redundant .split("\n") in each detector */
|
|
81
|
+
lines: string[];
|
|
82
|
+
allFiles: ScanFile[];
|
|
83
|
+
/** Pre-parsed root package.json, if available */
|
|
84
|
+
rootPackageJson?: Record<string, unknown>;
|
|
85
|
+
}
|
|
86
|
+
export type SignalDetector = (ctx: DetectorContext) => DetectedSignal[];
|
|
87
|
+
export interface ComplianceSignalGroup {
|
|
88
|
+
status: "present" | "partial" | "absent" | "unknown";
|
|
89
|
+
confidence: ConfidenceLevel;
|
|
90
|
+
evidence: SignalEvidence[];
|
|
91
|
+
}
|
|
92
|
+
export interface AssessmentHint {
|
|
93
|
+
hint: string;
|
|
94
|
+
articleRef?: string;
|
|
95
|
+
confidence: ConfidenceLevel;
|
|
96
|
+
}
|
|
97
|
+
export interface ScanGap {
|
|
98
|
+
id: string;
|
|
99
|
+
title: string;
|
|
100
|
+
description: string;
|
|
101
|
+
priority: "critical" | "high" | "medium" | "low";
|
|
102
|
+
status: "missing" | "partial";
|
|
103
|
+
basis: "scanner-rule";
|
|
104
|
+
evidence: SignalEvidence[];
|
|
105
|
+
}
|
|
106
|
+
export interface ScanReport {
|
|
107
|
+
schemaVersion: "euconform.report.v1";
|
|
108
|
+
generatedAt: string;
|
|
109
|
+
tool: {
|
|
110
|
+
name: string;
|
|
111
|
+
version: string;
|
|
112
|
+
};
|
|
113
|
+
target: {
|
|
114
|
+
rootPath: string;
|
|
115
|
+
name: string;
|
|
116
|
+
repoType: string;
|
|
117
|
+
detectedStack: string[];
|
|
118
|
+
};
|
|
119
|
+
aiFootprint: {
|
|
120
|
+
usesAI: boolean;
|
|
121
|
+
inferenceModes: string[];
|
|
122
|
+
providerHints: string[];
|
|
123
|
+
ragHints: string[];
|
|
124
|
+
};
|
|
125
|
+
complianceSignals: {
|
|
126
|
+
disclosure: ComplianceSignalGroup;
|
|
127
|
+
biasTesting: ComplianceSignalGroup;
|
|
128
|
+
reportingExports: ComplianceSignalGroup;
|
|
129
|
+
loggingMonitoring: ComplianceSignalGroup;
|
|
130
|
+
humanOversight: ComplianceSignalGroup;
|
|
131
|
+
dataGovernance: ComplianceSignalGroup;
|
|
132
|
+
incidentReporting: ComplianceSignalGroup;
|
|
133
|
+
};
|
|
134
|
+
assessmentHints: {
|
|
135
|
+
possibleModes: string[];
|
|
136
|
+
riskIndicators: AssessmentHint[];
|
|
137
|
+
gpaiIndicators: AssessmentHint[];
|
|
138
|
+
openQuestions: string[];
|
|
139
|
+
};
|
|
140
|
+
gaps: ScanGap[];
|
|
141
|
+
recommendationSummary: string[];
|
|
142
|
+
}
|
|
143
|
+
export type BomComponentKind = "framework" | "runtime" | "inference-provider" | "ai-framework" | "model" | "vector-store" | "embedding" | "dataset" | "tool";
|
|
144
|
+
export interface BomComponent {
|
|
145
|
+
id: string;
|
|
146
|
+
kind: BomComponentKind;
|
|
147
|
+
name: string;
|
|
148
|
+
version?: string;
|
|
149
|
+
source: "package.json" | "lock-file" | "code" | "config" | "docs";
|
|
150
|
+
}
|
|
151
|
+
export interface AiBillOfMaterials {
|
|
152
|
+
schemaVersion: "euconform.aibom.v1";
|
|
153
|
+
generatedAt: string;
|
|
154
|
+
project: {
|
|
155
|
+
name: string;
|
|
156
|
+
rootPath: string;
|
|
157
|
+
};
|
|
158
|
+
components: BomComponent[];
|
|
159
|
+
complianceCapabilities: {
|
|
160
|
+
biasEvaluation: boolean;
|
|
161
|
+
jsonExport: boolean;
|
|
162
|
+
pdfExport: boolean;
|
|
163
|
+
loggingInfrastructure: boolean;
|
|
164
|
+
humanReviewFlow: boolean;
|
|
165
|
+
incidentHandling: boolean;
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
export type FailOnLevel = "none" | "critical" | "high" | "medium" | "low";
|
|
169
|
+
export interface GapCounts {
|
|
170
|
+
critical: number;
|
|
171
|
+
high: number;
|
|
172
|
+
medium: number;
|
|
173
|
+
low: number;
|
|
174
|
+
}
|
|
175
|
+
export interface CiReport {
|
|
176
|
+
schemaVersion: "euconform.ci.v1";
|
|
177
|
+
generatedAt: string;
|
|
178
|
+
target: {
|
|
179
|
+
name: string;
|
|
180
|
+
rootPath: string;
|
|
181
|
+
};
|
|
182
|
+
status: {
|
|
183
|
+
failOn: FailOnLevel;
|
|
184
|
+
failing: boolean;
|
|
185
|
+
gapCounts: GapCounts;
|
|
186
|
+
openQuestions: number;
|
|
187
|
+
};
|
|
188
|
+
aiDetected: boolean;
|
|
189
|
+
scanScope: ScanScope;
|
|
190
|
+
artifacts: string[];
|
|
191
|
+
complianceOverview: Array<{
|
|
192
|
+
area: string;
|
|
193
|
+
status: ComplianceSignalGroup["status"];
|
|
194
|
+
confidence: ComplianceSignalGroup["confidence"];
|
|
195
|
+
}>;
|
|
196
|
+
topGaps: Array<{
|
|
197
|
+
id: string;
|
|
198
|
+
title: string;
|
|
199
|
+
priority: ScanGap["priority"];
|
|
200
|
+
status: ScanGap["status"];
|
|
201
|
+
}>;
|
|
202
|
+
}
|
|
203
|
+
export interface ScanOutput {
|
|
204
|
+
report: ScanReport;
|
|
205
|
+
aibom: AiBillOfMaterials;
|
|
206
|
+
summaryMarkdown: string;
|
|
207
|
+
}
|
|
208
|
+
export type BundleArtifactRole = "report" | "aibom" | "ci" | "summary";
|
|
209
|
+
export interface BundleArtifactRef {
|
|
210
|
+
role: BundleArtifactRole;
|
|
211
|
+
fileName: string;
|
|
212
|
+
sha256: string;
|
|
213
|
+
schemaVersion?: string;
|
|
214
|
+
mimeType?: string;
|
|
215
|
+
required: boolean;
|
|
216
|
+
}
|
|
217
|
+
export interface ScanBundle {
|
|
218
|
+
schemaVersion: "euconform.bundle.v1";
|
|
219
|
+
generatedAt: string;
|
|
220
|
+
tool: {
|
|
221
|
+
name: string;
|
|
222
|
+
version: string;
|
|
223
|
+
};
|
|
224
|
+
target: {
|
|
225
|
+
name: string;
|
|
226
|
+
rootPath: string;
|
|
227
|
+
};
|
|
228
|
+
artifacts: BundleArtifactRef[];
|
|
229
|
+
}
|
|
230
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/evidence/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { AiBillOfMaterials, CiReport, ScanBundle, ScanReport } from "./types";
|
|
2
|
+
export declare function getSchemaMajorVersion(schemaVersion: string): string | null;
|
|
3
|
+
export declare function validateScanReport(data: unknown): ScanReport;
|
|
4
|
+
export declare function validateAiBillOfMaterials(data: unknown): AiBillOfMaterials;
|
|
5
|
+
export declare function validateCiReport(data: unknown): CiReport;
|
|
6
|
+
export declare function validateScanBundle(data: unknown): ScanBundle;
|
|
7
|
+
export declare function validateEcefJsonDocument(schemaVersion: string, data: unknown): ScanReport | AiBillOfMaterials | CiReport | ScanBundle;
|
|
8
|
+
//# sourceMappingURL=validate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/evidence/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AA6DnF,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE1E;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,CAmC5D;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,OAAO,GAAG,iBAAiB,CAa1E;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,CAgCxD;AAoGD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,CAgC5D;AAED,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,OAAO,GACZ,UAAU,GAAG,iBAAiB,GAAG,QAAQ,GAAG,UAAU,CAaxD"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
function assertObject(data, label) {
|
|
2
|
+
if (!data || typeof data !== "object" || Array.isArray(data)) {
|
|
3
|
+
throw new Error(`Invalid ${label}: expected a JSON object`);
|
|
4
|
+
}
|
|
5
|
+
return data;
|
|
6
|
+
}
|
|
7
|
+
function requireSchemaVersion(obj, expected, label) {
|
|
8
|
+
if (obj.schemaVersion !== expected) {
|
|
9
|
+
throw new Error(`Invalid ${label} schema version: expected "${expected}", got "${String(obj.schemaVersion)}"`);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
function requireField(obj, key, type, label, fieldName = key) {
|
|
13
|
+
if (!(key in obj)) {
|
|
14
|
+
throw new Error(`Invalid ${label}: missing '${fieldName}'`);
|
|
15
|
+
}
|
|
16
|
+
const value = obj[key];
|
|
17
|
+
const isValid = (type === "array" && Array.isArray(value)) ||
|
|
18
|
+
(type === "object" && value && typeof value === "object" && !Array.isArray(value)) ||
|
|
19
|
+
(type === "string" && typeof value === "string") ||
|
|
20
|
+
(type === "boolean" && typeof value === "boolean") ||
|
|
21
|
+
(type === "number" && typeof value === "number");
|
|
22
|
+
if (!isValid) {
|
|
23
|
+
throw new Error(`Invalid ${label}: '${fieldName}' must be a ${type}`);
|
|
24
|
+
}
|
|
25
|
+
return value;
|
|
26
|
+
}
|
|
27
|
+
function requireStringArray(obj, key, label, fieldName = key) {
|
|
28
|
+
const value = requireField(obj, key, "array", label, fieldName);
|
|
29
|
+
if (!value.every((item) => typeof item === "string")) {
|
|
30
|
+
throw new Error(`Invalid ${label}: '${fieldName}' must contain strings`);
|
|
31
|
+
}
|
|
32
|
+
return value;
|
|
33
|
+
}
|
|
34
|
+
function majorVersion(schemaVersion) {
|
|
35
|
+
const match = /\.v(\d+)$/.exec(schemaVersion);
|
|
36
|
+
return match?.[1] ?? null;
|
|
37
|
+
}
|
|
38
|
+
export function getSchemaMajorVersion(schemaVersion) {
|
|
39
|
+
return majorVersion(schemaVersion);
|
|
40
|
+
}
|
|
41
|
+
export function validateScanReport(data) {
|
|
42
|
+
const obj = assertObject(data, "report");
|
|
43
|
+
requireSchemaVersion(obj, "euconform.report.v1", "report");
|
|
44
|
+
requireField(obj, "generatedAt", "string", "report");
|
|
45
|
+
const tool = requireField(obj, "tool", "object", "report");
|
|
46
|
+
requireField(tool, "name", "string", "report", "tool.name");
|
|
47
|
+
requireField(tool, "version", "string", "report", "tool.version");
|
|
48
|
+
const target = requireField(obj, "target", "object", "report");
|
|
49
|
+
requireField(target, "rootPath", "string", "report", "target.rootPath");
|
|
50
|
+
requireField(target, "name", "string", "report", "target.name");
|
|
51
|
+
requireField(target, "repoType", "string", "report", "target.repoType");
|
|
52
|
+
requireField(target, "detectedStack", "array", "report", "target.detectedStack");
|
|
53
|
+
const aiFootprint = requireField(obj, "aiFootprint", "object", "report");
|
|
54
|
+
requireField(aiFootprint, "usesAI", "boolean", "report", "aiFootprint.usesAI");
|
|
55
|
+
requireStringArray(aiFootprint, "inferenceModes", "report", "aiFootprint.inferenceModes");
|
|
56
|
+
requireStringArray(aiFootprint, "providerHints", "report", "aiFootprint.providerHints");
|
|
57
|
+
requireStringArray(aiFootprint, "ragHints", "report", "aiFootprint.ragHints");
|
|
58
|
+
requireField(obj, "complianceSignals", "object", "report");
|
|
59
|
+
const hints = requireField(obj, "assessmentHints", "object", "report");
|
|
60
|
+
requireStringArray(hints, "possibleModes", "report", "assessmentHints.possibleModes");
|
|
61
|
+
requireField(hints, "riskIndicators", "array", "report", "assessmentHints.riskIndicators");
|
|
62
|
+
requireField(hints, "gpaiIndicators", "array", "report", "assessmentHints.gpaiIndicators");
|
|
63
|
+
requireStringArray(hints, "openQuestions", "report", "assessmentHints.openQuestions");
|
|
64
|
+
requireField(obj, "gaps", "array", "report");
|
|
65
|
+
requireStringArray(obj, "recommendationSummary", "report");
|
|
66
|
+
return data;
|
|
67
|
+
}
|
|
68
|
+
export function validateAiBillOfMaterials(data) {
|
|
69
|
+
const obj = assertObject(data, "AIBOM");
|
|
70
|
+
requireSchemaVersion(obj, "euconform.aibom.v1", "AIBOM");
|
|
71
|
+
requireField(obj, "generatedAt", "string", "AIBOM");
|
|
72
|
+
const project = requireField(obj, "project", "object", "AIBOM");
|
|
73
|
+
requireField(project, "name", "string", "AIBOM", "project.name");
|
|
74
|
+
requireField(project, "rootPath", "string", "AIBOM", "project.rootPath");
|
|
75
|
+
requireField(obj, "components", "array", "AIBOM");
|
|
76
|
+
requireField(obj, "complianceCapabilities", "object", "AIBOM");
|
|
77
|
+
return data;
|
|
78
|
+
}
|
|
79
|
+
export function validateCiReport(data) {
|
|
80
|
+
const obj = assertObject(data, "CI report");
|
|
81
|
+
requireSchemaVersion(obj, "euconform.ci.v1", "CI report");
|
|
82
|
+
requireField(obj, "generatedAt", "string", "CI report");
|
|
83
|
+
const target = requireField(obj, "target", "object", "CI report");
|
|
84
|
+
requireField(target, "name", "string", "CI report", "target.name");
|
|
85
|
+
requireField(target, "rootPath", "string", "CI report", "target.rootPath");
|
|
86
|
+
const status = requireField(obj, "status", "object", "CI report");
|
|
87
|
+
requireField(status, "failOn", "string", "CI report", "status.failOn");
|
|
88
|
+
requireField(status, "failing", "boolean", "CI report", "status.failing");
|
|
89
|
+
requireField(status, "openQuestions", "number", "CI report", "status.openQuestions");
|
|
90
|
+
const gapCounts = requireField(status, "gapCounts", "object", "CI report", "status.gapCounts");
|
|
91
|
+
for (const key of ["critical", "high", "medium", "low"]) {
|
|
92
|
+
requireField(gapCounts, key, "number", "CI report", `status.gapCounts.${key}`);
|
|
93
|
+
}
|
|
94
|
+
requireField(obj, "aiDetected", "boolean", "CI report");
|
|
95
|
+
requireField(obj, "scanScope", "string", "CI report");
|
|
96
|
+
requireField(obj, "artifacts", "array", "CI report");
|
|
97
|
+
requireField(obj, "complianceOverview", "array", "CI report");
|
|
98
|
+
requireField(obj, "topGaps", "array", "CI report");
|
|
99
|
+
return data;
|
|
100
|
+
}
|
|
101
|
+
const VALID_BUNDLE_ROLES = new Set(["report", "aibom", "ci", "summary"]);
|
|
102
|
+
const SHA256_HEX = /^[a-f0-9]{64}$/;
|
|
103
|
+
function readBundleArtifactFields(raw, index) {
|
|
104
|
+
const scope = "bundle artifact";
|
|
105
|
+
const role = requireField(raw, "role", "string", scope, `artifacts[${index}].role`);
|
|
106
|
+
const fileName = requireField(raw, "fileName", "string", scope, `artifacts[${index}].fileName`);
|
|
107
|
+
const sha256 = requireField(raw, "sha256", "string", scope, `artifacts[${index}].sha256`);
|
|
108
|
+
const required = requireField(raw, "required", "boolean", scope, `artifacts[${index}].required`);
|
|
109
|
+
const declaredSchemaVersion = raw.schemaVersion;
|
|
110
|
+
if (declaredSchemaVersion !== undefined && typeof declaredSchemaVersion !== "string") {
|
|
111
|
+
throw new Error(`Invalid bundle artifact: '${fileName}' has non-string schemaVersion`);
|
|
112
|
+
}
|
|
113
|
+
if (raw.mimeType !== undefined && typeof raw.mimeType !== "string") {
|
|
114
|
+
throw new Error(`Invalid bundle artifact: '${fileName}' has non-string mimeType`);
|
|
115
|
+
}
|
|
116
|
+
return {
|
|
117
|
+
role,
|
|
118
|
+
fileName,
|
|
119
|
+
sha256,
|
|
120
|
+
required,
|
|
121
|
+
declaredSchemaVersion: declaredSchemaVersion,
|
|
122
|
+
mimeType: raw.mimeType,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
function assertBundleArtifactIntegrity(fields, seenRoles, seenFiles, bundleMajor) {
|
|
126
|
+
const { role, fileName, sha256, declaredSchemaVersion } = fields;
|
|
127
|
+
if (!VALID_BUNDLE_ROLES.has(role)) {
|
|
128
|
+
throw new Error(`Invalid bundle artifact: unsupported role '${role}'`);
|
|
129
|
+
}
|
|
130
|
+
if (!SHA256_HEX.test(sha256)) {
|
|
131
|
+
throw new Error(`Invalid bundle artifact: '${fileName}' has invalid sha256`);
|
|
132
|
+
}
|
|
133
|
+
if (seenRoles.has(role)) {
|
|
134
|
+
throw new Error(`Invalid bundle artifact: duplicate role '${role}'`);
|
|
135
|
+
}
|
|
136
|
+
if (seenFiles.has(fileName)) {
|
|
137
|
+
throw new Error(`Invalid bundle artifact: duplicate fileName '${fileName}'`);
|
|
138
|
+
}
|
|
139
|
+
if (declaredSchemaVersion && bundleMajor && majorVersion(declaredSchemaVersion) !== bundleMajor) {
|
|
140
|
+
throw new Error(`Invalid bundle artifact: '${fileName}' uses schemaVersion '${declaredSchemaVersion}' with a different major than the bundle`);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
function validateBundleHeader(obj) {
|
|
144
|
+
requireSchemaVersion(obj, "euconform.bundle.v1", "bundle");
|
|
145
|
+
requireField(obj, "generatedAt", "string", "bundle");
|
|
146
|
+
const tool = requireField(obj, "tool", "object", "bundle");
|
|
147
|
+
requireField(tool, "name", "string", "bundle", "tool.name");
|
|
148
|
+
requireField(tool, "version", "string", "bundle", "tool.version");
|
|
149
|
+
const target = requireField(obj, "target", "object", "bundle");
|
|
150
|
+
requireField(target, "name", "string", "bundle", "target.name");
|
|
151
|
+
requireField(target, "rootPath", "string", "bundle", "target.rootPath");
|
|
152
|
+
}
|
|
153
|
+
export function validateScanBundle(data) {
|
|
154
|
+
const obj = assertObject(data, "bundle");
|
|
155
|
+
validateBundleHeader(obj);
|
|
156
|
+
const artifacts = requireField(obj, "artifacts", "array", "bundle");
|
|
157
|
+
if (artifacts.length === 0) {
|
|
158
|
+
throw new Error("Invalid bundle: 'artifacts' must contain at least one artifact");
|
|
159
|
+
}
|
|
160
|
+
const seenRoles = new Set();
|
|
161
|
+
const seenFiles = new Set();
|
|
162
|
+
const bundleMajor = majorVersion("euconform.bundle.v1");
|
|
163
|
+
let hasRequiredReport = false;
|
|
164
|
+
for (let index = 0; index < artifacts.length; index++) {
|
|
165
|
+
const raw = assertObject(artifacts[index], "bundle artifact");
|
|
166
|
+
const fields = readBundleArtifactFields(raw, index);
|
|
167
|
+
assertBundleArtifactIntegrity(fields, seenRoles, seenFiles, bundleMajor);
|
|
168
|
+
seenRoles.add(fields.role);
|
|
169
|
+
seenFiles.add(fields.fileName);
|
|
170
|
+
if (fields.role === "report") {
|
|
171
|
+
hasRequiredReport = fields.required;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
if (!hasRequiredReport) {
|
|
175
|
+
throw new Error("Invalid bundle: a required 'report' artifact is mandatory");
|
|
176
|
+
}
|
|
177
|
+
return data;
|
|
178
|
+
}
|
|
179
|
+
export function validateEcefJsonDocument(schemaVersion, data) {
|
|
180
|
+
switch (schemaVersion) {
|
|
181
|
+
case "euconform.report.v1":
|
|
182
|
+
return validateScanReport(data);
|
|
183
|
+
case "euconform.aibom.v1":
|
|
184
|
+
return validateAiBillOfMaterials(data);
|
|
185
|
+
case "euconform.ci.v1":
|
|
186
|
+
return validateCiReport(data);
|
|
187
|
+
case "euconform.bundle.v1":
|
|
188
|
+
return validateScanBundle(data);
|
|
189
|
+
default:
|
|
190
|
+
throw new Error(`Unsupported EuConform Evidence Format schemaVersion '${schemaVersion}'`);
|
|
191
|
+
}
|
|
192
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export { ANNEX_III_QUESTIONS, PROHIBITED_AI_SCREENING_QUESTIONS, classifyAnnexII
|
|
|
8
8
|
export type { AnnexIIIAnswer, AnnexIIIRiskResult, Citation, CounterfactualPair, CrowsPairsLogProbOptions, CrowsPairsLogProbResult, ChecklistStatus, DataGovernanceChecklistResult, RobustnessResult, RobustnessTestCase, Perturbation, PredictTextFn, HumanOversightRecommendation, LoggingTemplate, AnnexIVStructuredReportV1, GroupTextSample, RegardResult, RegardScorer, SensitiveAttribute, ToxicityResult, ToxicityScorer, DeadlineStatus, AffectedAudience, DeadlineObligation, DeadlinePhase, GPAIObligationType, GPAIComplianceLevel, GPAIComplianceFlag, GPAIComplianceResult, GapPriority, GapAction, GapAnalysisResult, } from "./legal-checks";
|
|
9
9
|
export { classifyRisk, getComplianceGuidance, getQuizQuestions, RISK_QUIZ_QUESTIONS, } from "./risk-engine";
|
|
10
10
|
export { disparateImpact, equalizedOdds, generateLoanDataset, predictiveParity, runFairnessAnalysis, statisticalParityDifference, runCrowsPairsBiasAnalysis, runComprehensiveBiasAnalysis, runCrowsPairsBiasAnalysisWithFactory, runComprehensiveBiasAnalysisWithFactory, } from "./fairness-metrics";
|
|
11
|
-
export { detectOllama, listOllamaModels, OllamaClient, BrowserInference, checkWebGPU, BROWSER_MODELS, detectCapabilities, createInferenceClient, createAutoInferenceClient, createCapabilityDetectionService, DefaultCapabilityDetectionService, EnhancedCapabilityDetectionService, type OllamaModel, type BrowserModel, type InferenceEngine, type InferenceCapabilities, type InferenceClient, type CapabilityDetectionService, type ModelCapability, type ModelSelectionState, type CapabilityCacheEntry, type DetectionProgress, type UserPreferences, type EnhancedModelSelectionState, type CapabilityDetectionStatus, } from "./inference";
|
|
11
|
+
export { detectOllama, listOllamaModels, OllamaClient, BrowserInference, checkWebGPU, BROWSER_MODELS, detectCapabilities, createInferenceClient, createAutoInferenceClient, createCapabilityDetectionService, DefaultCapabilityDetectionService, EnhancedCapabilityDetectionService, type OllamaModel, type BrowserModel, type InferenceEngine, type InferenceCapabilities, type InferenceClient, type CapabilityDetectionService, type ModelCapability, type ModelSelectionState, type CapabilityCacheEntry, type DetectionProgress, type UserPreferences, type EnhancedModelSelectionState, type CapabilityDetectionStatus, type CapabilityCache, } from "./inference";
|
|
12
12
|
export { InferenceFactory, createInferenceFactory, detectBestMethodForConfig, type InferenceResult, } from "./inference/inference-factory";
|
|
13
13
|
export { testPair, aggregateByCategory, runStereotypeBiasTest, quickBiasCheck, type StereotypePair, type BiasType, type PairTestResult, type CategoryResult, type StereotypeBiasResult, calculateCrowsPairsBias, calculateLogProbBias, calculateLatencyBias, validateCrowsPairsDataset, } from "./metrics";
|
|
14
14
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,aAAa,EACb,cAAc,EACd,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,UAAU,EACV,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,SAAS,EACT,qBAAqB,EACrB,cAAc,EACd,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,mBAAmB,EACnB,iCAAiC,EACjC,oBAAoB,EACpB,oBAAoB,EACpB,iCAAiC,EACjC,cAAc,EACd,sBAAsB,EACtB,gBAAgB,EAChB,mBAAmB,EACnB,2BAA2B,EAC3B,uBAAuB,EACvB,cAAc,EACd,cAAc,EACd,kCAAkC,EAClC,8BAA8B,EAC9B,gCAAgC,EAChC,0BAA0B,EAC1B,wBAAwB,EACxB,iCAAiC,EACjC,mCAAmC,EACnC,oBAAoB,EACpB,sBAAsB,EACtB,2BAA2B,EAC3B,uBAAuB,EACvB,4BAA4B,EAC5B,wBAAwB,EACxB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,yBAAyB,EACzB,iBAAiB,EACjB,oBAAoB,EACpB,wBAAwB,EACxB,eAAe,EACf,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,cAAc,EACd,kBAAkB,EAClB,QAAQ,EACR,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,eAAe,EACf,6BAA6B,EAC7B,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,4BAA4B,EAC5B,eAAe,EACf,yBAAyB,EACzB,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,WAAW,EACX,SAAS,EACT,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,2BAA2B,EAC3B,yBAAyB,EACzB,4BAA4B,EAC5B,oCAAoC,EACpC,uCAAuC,GACxC,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,yBAAyB,EACzB,gCAAgC,EAChC,iCAAiC,EACjC,kCAAkC,EAClC,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,0BAA0B,EAC/B,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,2BAA2B,EAChC,KAAK,yBAAyB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,7 +35,7 @@ export declare function createInferenceClient(engine: InferenceEngine, modelId:
|
|
|
35
35
|
* Auto-select the best available inference client
|
|
36
36
|
*/
|
|
37
37
|
export declare function createAutoInferenceClient(preferredModel?: string): Promise<InferenceClient>;
|
|
38
|
-
export { detectOllama, listOllamaModels, OllamaClient } from "./ollama-client";
|
|
38
|
+
export { detectOllama, listOllamaModels, OllamaClient, type CapabilityCache, } from "./ollama-client";
|
|
39
39
|
export { BrowserInference, checkWebGPU, BROWSER_MODELS } from "./browser-inference";
|
|
40
40
|
export { InferenceFactory, createInferenceFactory, detectBestMethodForConfig, type InferenceResult, } from "./inference-factory";
|
|
41
41
|
export { createCapabilityDetectionService, DefaultCapabilityDetectionService, EnhancedCapabilityDetectionService, type CapabilityDetectionService, type ModelCapability, type ModelSelectionState, type CapabilityCacheEntry, type DetectionProgress, type UserPreferences, type EnhancedModelSelectionState, type CapabilityDetectionStatus, } from "./capability-detection";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/inference/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAGL,KAAK,YAAY,EAElB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAgB,KAAK,WAAW,EAAkC,MAAM,iBAAiB,CAAC;AAEjG,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAE5D,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE;QACN,SAAS,EAAE,OAAO,CAAC;QACnB,MAAM,EAAE,WAAW,EAAE,CAAC;KACvB,CAAC;IACF,OAAO,EAAE;QACP,SAAS,EAAE,OAAO,CAAC;QACnB,MAAM,EAAE,OAAO,CAAC;QAChB,MAAM,EAAE,YAAY,EAAE,CAAC;KACxB,CAAC;IACF,WAAW,EAAE,eAAe,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7C;AAED;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,qBAAqB,CAAC,CA2BzE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,MAAM,EACf,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GACxC,eAAe,CAqCjB;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAejG;AAGD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/inference/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAGL,KAAK,YAAY,EAElB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAgB,KAAK,WAAW,EAAkC,MAAM,iBAAiB,CAAC;AAEjG,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAE5D,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE;QACN,SAAS,EAAE,OAAO,CAAC;QACnB,MAAM,EAAE,WAAW,EAAE,CAAC;KACvB,CAAC;IACF,OAAO,EAAE;QACP,SAAS,EAAE,OAAO,CAAC;QACnB,MAAM,EAAE,OAAO,CAAC;QAChB,MAAM,EAAE,YAAY,EAAE,CAAC;KACxB,CAAC;IACF,WAAW,EAAE,eAAe,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7C;AAED;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,qBAAqB,CAAC,CA2BzE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,MAAM,EACf,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GACxC,eAAe,CAqCjB;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAejG;AAGD,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,KAAK,eAAe,GACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACpF,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,yBAAyB,EACzB,KAAK,eAAe,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,gCAAgC,EAChC,iCAAiC,EACjC,kCAAkC,EAClC,KAAK,0BAA0B,EAC/B,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,2BAA2B,EAChC,KAAK,yBAAyB,GAC/B,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC"}
|
package/dist/inference/index.js
CHANGED
|
@@ -91,7 +91,7 @@ export async function createAutoInferenceClient(preferredModel) {
|
|
|
91
91
|
return createInferenceClient("demo", "demo-model");
|
|
92
92
|
}
|
|
93
93
|
// Re-export types and utilities
|
|
94
|
-
export { detectOllama, listOllamaModels, OllamaClient } from "./ollama-client";
|
|
94
|
+
export { detectOllama, listOllamaModels, OllamaClient, } from "./ollama-client";
|
|
95
95
|
export { BrowserInference, checkWebGPU, BROWSER_MODELS } from "./browser-inference";
|
|
96
96
|
export { InferenceFactory, createInferenceFactory, detectBestMethodForConfig, } from "./inference-factory";
|
|
97
97
|
export { createCapabilityDetectionService, DefaultCapabilityDetectionService, EnhancedCapabilityDetectionService, } from "./capability-detection";
|
|
@@ -46,6 +46,11 @@ export interface OllamaLogProbsResponse extends OllamaGenerateResponse {
|
|
|
46
46
|
logprob: number;
|
|
47
47
|
}>;
|
|
48
48
|
}
|
|
49
|
+
/** Abstraction for capability caching — localStorage in browser, file-based in CLI */
|
|
50
|
+
export interface CapabilityCache {
|
|
51
|
+
get(key: string): string | null;
|
|
52
|
+
set(key: string, value: string): void;
|
|
53
|
+
}
|
|
49
54
|
/**
|
|
50
55
|
* Check if Ollama is running and accessible
|
|
51
56
|
*/
|
|
@@ -74,7 +79,8 @@ export declare class OllamaClient {
|
|
|
74
79
|
private baseUrl;
|
|
75
80
|
readonly model: string;
|
|
76
81
|
private capabilityCache;
|
|
77
|
-
|
|
82
|
+
private externalCache;
|
|
83
|
+
constructor(model: string, baseUrl?: string, cache?: CapabilityCache);
|
|
78
84
|
private isCloudModel;
|
|
79
85
|
/**
|
|
80
86
|
* Ensures the model is available in Ollama before proceeding
|
|
@@ -91,11 +97,11 @@ export declare class OllamaClient {
|
|
|
91
97
|
*/
|
|
92
98
|
private testLogProbCapability;
|
|
93
99
|
/**
|
|
94
|
-
* Get cached capability result from localStorage
|
|
100
|
+
* Get cached capability result from localStorage or external cache
|
|
95
101
|
*/
|
|
96
102
|
private getCachedCapability;
|
|
97
103
|
/**
|
|
98
|
-
* Cache capability result in localStorage
|
|
104
|
+
* Cache capability result in localStorage or external cache
|
|
99
105
|
*/
|
|
100
106
|
private setCachedCapability;
|
|
101
107
|
/**
|
|
@@ -103,6 +109,8 @@ export declare class OllamaClient {
|
|
|
103
109
|
* Checks cache first, then runs test if needed
|
|
104
110
|
*/
|
|
105
111
|
detectLogProbSupport(): Promise<boolean>;
|
|
112
|
+
private tryExactLogProbs;
|
|
113
|
+
private latencyFallback;
|
|
106
114
|
/**
|
|
107
115
|
* Get log-probability with automatic fallback to latency method
|
|
108
116
|
* Returns both the calculated value and the method used
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ollama-client.d.ts","sourceRoot":"","sources":["../../src/inference/ollama-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAwB,MAAM,UAAU,CAAC;AAE5E,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,OAAO,CAAC,EAAE;QACR,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,KAAK,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,sBAAuB,SAAQ,sBAAsB;IACpE,QAAQ,CAAC,EAAE,KAAK,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;CACJ;AAID;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CAcrD;AAED;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAc/D;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,sBAAsB,CAAC,CAkBjC;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA+C/E;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAiChF;AAED;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,eAAe,CAAoC;
|
|
1
|
+
{"version":3,"file":"ollama-client.d.ts","sourceRoot":"","sources":["../../src/inference/ollama-client.ts"],"names":[],"mappings":"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"}
|