@aikdna/kdna-fidelity-core 0.1.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.
@@ -0,0 +1,4 @@
1
+ export type { TaskType, GeneratedTask, TransferLevel, PerAxiomTransfer, FidelityVerdict, PerTaskResult, TaskStats, CalibrationQuality, CalibrationAnchors, ProfileQuality, BlindEvalMeta, FidelityDimension, ComparisonCondition, ComparisonResult, FidelityWarningType, FidelityWarning, FidelityResult, GapVerdict, GapMetrics, } from './types.js';
2
+ export { GAP_THRESHOLDS } from './types.js';
3
+ export { classifyVerdict, interpretVerdict, computeStats, normalizeGap, classifyCalibrationQuality, classifyTransferLevel, } from './metrics.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,QAAQ,EACR,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,SAAS,EACT,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,UAAU,EACV,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,0BAA0B,EAC1B,qBAAqB,GACtB,MAAM,cAAc,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export { GAP_THRESHOLDS } from './types.js';
2
+ export { classifyVerdict, interpretVerdict, computeStats, normalizeGap, classifyCalibrationQuality, classifyTransferLevel, } from './metrics.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,0BAA0B,EAC1B,qBAAqB,GACtB,MAAM,cAAc,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { GapMetrics, GapVerdict } from './types.js';
2
+ export declare function classifyVerdict(metrics: GapMetrics): GapVerdict;
3
+ export declare function interpretVerdict(verdict: GapVerdict): string;
4
+ export declare function computeStats(results: Array<{
5
+ transferGap: number;
6
+ convergenceScore: number;
7
+ }>): {
8
+ meanTransferGap: number;
9
+ meanConvergence: number;
10
+ stdDevTransferGap: number;
11
+ ci95Lower: number;
12
+ ci95Upper: number;
13
+ taskCount: number;
14
+ };
15
+ export declare function normalizeGap(realGap: number, negativeControlGap: number, positiveControlGap: number): number;
16
+ export declare function classifyCalibrationQuality(negativeGap: number, positiveGap: number): 'good' | 'poor' | 'inverted';
17
+ export declare function classifyTransferLevel(score: number): string;
18
+ //# sourceMappingURL=metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGzD,wBAAgB,eAAe,CAAC,OAAO,EAAE,UAAU,GAAG,UAAU,CAiB/D;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAe5D;AAED,wBAAgB,YAAY,CAC1B,OAAO,EAAE,KAAK,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,CAAC,GAChE;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAkB1I;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAG,MAAM,CAK5G;AAED,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAIjH;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAM3D"}
@@ -0,0 +1,77 @@
1
+ import { GAP_THRESHOLDS } from './types.js';
2
+ export function classifyVerdict(metrics) {
3
+ if (metrics.naiveDrift < 0.1 && metrics.transferGap < 0.1) {
4
+ return 'common_sense';
5
+ }
6
+ if (metrics.gapWidth < 0.05) {
7
+ return 'inconclusive';
8
+ }
9
+ if (metrics.transferGap >= GAP_THRESHOLDS.strong) {
10
+ return 'strong_transfer';
11
+ }
12
+ if (metrics.transferGap >= GAP_THRESHOLDS.partial) {
13
+ return 'partial_transfer';
14
+ }
15
+ if (metrics.transferGap >= GAP_THRESHOLDS.weak) {
16
+ return 'weak_transfer';
17
+ }
18
+ return 'no_transfer';
19
+ }
20
+ export function interpretVerdict(verdict) {
21
+ switch (verdict) {
22
+ case 'strong_transfer':
23
+ return 'High confidence that KDNA judgment transferred to the trained output';
24
+ case 'partial_transfer':
25
+ return 'Moderate evidence of KDNA judgment transfer, with some dilution';
26
+ case 'weak_transfer':
27
+ return 'Limited evidence of KDNA judgment transfer';
28
+ case 'no_transfer':
29
+ return 'No measurable evidence that KDNA judgment reached the output';
30
+ case 'common_sense':
31
+ return 'Output aligns with KDNA but is equally explainable by general knowledge — KDNA may not be the differentiating factor';
32
+ case 'inconclusive':
33
+ return 'Outputs too similar to distinguish — insufficient signal for measurement';
34
+ }
35
+ }
36
+ export function computeStats(results) {
37
+ const n = results.length;
38
+ if (n === 0) {
39
+ return { meanTransferGap: 0, meanConvergence: 0, stdDevTransferGap: 0, ci95Lower: 0, ci95Upper: 0, taskCount: 0 };
40
+ }
41
+ const meanGap = results.reduce((s, r) => s + r.transferGap, 0) / n;
42
+ const meanConv = results.reduce((s, r) => s + r.convergenceScore, 0) / n;
43
+ const variance = n > 1
44
+ ? results.reduce((s, r) => s + Math.pow(r.transferGap - meanGap, 2), 0) / (n - 1)
45
+ : 0;
46
+ const stdDev = Math.sqrt(variance);
47
+ const se = stdDev / Math.sqrt(n);
48
+ const ci95Lower = meanGap - 1.96 * se;
49
+ const ci95Upper = meanGap + 1.96 * se;
50
+ return { meanTransferGap: meanGap, meanConvergence: meanConv, stdDevTransferGap: stdDev, ci95Lower, ci95Upper, taskCount: n };
51
+ }
52
+ export function normalizeGap(realGap, negativeControlGap, positiveControlGap) {
53
+ const denominator = positiveControlGap - negativeControlGap;
54
+ if (denominator <= 0)
55
+ return 0;
56
+ const normalized = (realGap - negativeControlGap) / denominator;
57
+ return Math.max(0, Math.min(1, normalized));
58
+ }
59
+ export function classifyCalibrationQuality(negativeGap, positiveGap) {
60
+ if (negativeGap >= positiveGap)
61
+ return 'inverted';
62
+ if (positiveGap - negativeGap < 0.1)
63
+ return 'poor';
64
+ return 'good';
65
+ }
66
+ export function classifyTransferLevel(score) {
67
+ if (score >= 0.80)
68
+ return 'operationalized';
69
+ if (score >= 0.60)
70
+ return 'referenced';
71
+ if (score >= 0.30)
72
+ return 'mentioned';
73
+ if (score >= 0.01)
74
+ return 'absent';
75
+ return 'contradicted';
76
+ }
77
+ //# sourceMappingURL=metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,156 @@
1
+ export type TaskType = 'diagnostic' | 'generative' | 'evaluative' | 'boundary';
2
+ export interface GeneratedTask {
3
+ taskId: string;
4
+ taskType: TaskType;
5
+ taskPrompt: string;
6
+ domainAxiomRef: string;
7
+ }
8
+ export type TransferLevel = 'operationalized' | 'referenced' | 'mentioned' | 'absent' | 'contradicted';
9
+ export interface PerAxiomTransfer {
10
+ axiomId: string;
11
+ domain: string;
12
+ score: number;
13
+ transferLevel: TransferLevel;
14
+ evidence: string;
15
+ }
16
+ export type FidelityVerdict = 'preserved' | 'partially_preserved' | 'diluted' | 'contradicted';
17
+ export interface PerTaskResult {
18
+ taskId: string;
19
+ taskType: TaskType;
20
+ taskPrompt: string;
21
+ convergenceScore: number;
22
+ transferGap: number;
23
+ naiveDrift: number;
24
+ fidelityVerdict: FidelityVerdict;
25
+ dilutionSignals: string[];
26
+ preservedSignals: string[];
27
+ }
28
+ export interface TaskStats {
29
+ taskResults: PerTaskResult[];
30
+ meanConvergence: number;
31
+ meanTransferGap: number;
32
+ stdDevTransferGap: number;
33
+ ci95Lower: number;
34
+ ci95Upper: number;
35
+ taskCount: number;
36
+ }
37
+ export type CalibrationQuality = 'good' | 'poor' | 'inverted';
38
+ export interface CalibrationAnchors {
39
+ negativeControlGap: number;
40
+ positiveControlGap: number;
41
+ normalizedGap: number;
42
+ calibrationQuality: CalibrationQuality;
43
+ }
44
+ export interface ProfileQuality {
45
+ profilesAreOpposing: boolean;
46
+ evidence: string;
47
+ confidence: number;
48
+ }
49
+ export interface BlindEvalMeta {
50
+ shuffleMap: Record<string, 'old_judgment' | 'new_judgment' | 'naive'>;
51
+ identityInferenceCorrect: boolean;
52
+ inferredOldLearner: string;
53
+ actualOldLearner: string;
54
+ inferenceConfidence: number;
55
+ inferenceReasoning: string;
56
+ }
57
+ export interface FidelityDimension {
58
+ dimensionId: string;
59
+ dimensionName: string;
60
+ score: number;
61
+ weight: number;
62
+ evidence: Array<{
63
+ claim: string;
64
+ verdict: 'confirmed' | 'partial' | 'absent' | 'contradicted';
65
+ detail: string;
66
+ }>;
67
+ threshold?: number;
68
+ }
69
+ export interface ComparisonCondition {
70
+ conditionId: string;
71
+ conditionType: 'no_kdna' | 'best_prompt' | 'kdna_loaded' | 'kdna_cluster' | 'calibration_positive' | 'calibration_negative';
72
+ model: string;
73
+ modelConfig?: {
74
+ temperature?: number;
75
+ top_p?: number;
76
+ };
77
+ score: number;
78
+ judgmentDelta?: number;
79
+ }
80
+ export interface ComparisonResult {
81
+ conditions: ComparisonCondition[];
82
+ blindDelta: number;
83
+ blindDesign: 'a_b_shuffled' | 'a_b_c_shuffled' | 'pairwise' | 'ranking';
84
+ evaluatorModel: string;
85
+ evaluatorRubric: string;
86
+ }
87
+ export type FidelityWarningType = 'calibration_failed' | 'high_variance' | 'low_task_count' | 'evaluator_bias_risk' | 'model_same_as_generator' | 'trace_incomplete';
88
+ export interface FidelityWarning {
89
+ type: FidelityWarningType;
90
+ message: string;
91
+ }
92
+ export interface FidelityResult {
93
+ fidelityId: string;
94
+ protocolVersion: string;
95
+ targetArtifact: {
96
+ artifactId: string;
97
+ artifactType: string;
98
+ contentDigest?: string;
99
+ generator?: {
100
+ engine: string;
101
+ version: string;
102
+ };
103
+ };
104
+ sourceKdna: Array<{
105
+ name: string;
106
+ version: string;
107
+ role: string;
108
+ }>;
109
+ overallScore: number;
110
+ passThreshold: number;
111
+ passed: boolean;
112
+ dimensions: FidelityDimension[];
113
+ perAxiom?: PerAxiomTransfer[];
114
+ comparison?: ComparisonResult;
115
+ calibration?: CalibrationAnchors & {
116
+ calibrationValid: boolean;
117
+ };
118
+ crossModel?: Array<{
119
+ model: string;
120
+ score: number;
121
+ }>;
122
+ crossModelVariance?: number;
123
+ tasks: Array<{
124
+ taskId: string;
125
+ taskType: TaskType;
126
+ inputSummary: string;
127
+ expectedAxioms?: string[];
128
+ expectedMisunderstandingsAvoided?: string[];
129
+ taskScore: number;
130
+ }>;
131
+ traceRefs?: Array<{
132
+ traceId: string;
133
+ traceType?: string;
134
+ }>;
135
+ warnings?: FidelityWarning[];
136
+ completedAt: string;
137
+ measurementDurationMs?: number;
138
+ evaluator?: {
139
+ engine: string;
140
+ version: string;
141
+ };
142
+ }
143
+ export declare const GAP_THRESHOLDS: {
144
+ readonly strong: 0.5;
145
+ readonly partial: 0.25;
146
+ readonly weak: 0.1;
147
+ };
148
+ export type GapVerdict = 'strong_transfer' | 'partial_transfer' | 'weak_transfer' | 'no_transfer' | 'common_sense' | 'inconclusive';
149
+ export interface GapMetrics {
150
+ transferGap: number;
151
+ naiveDrift: number;
152
+ gapWidth: number;
153
+ oldNewDivergence: string;
154
+ naiveSimilarity: string;
155
+ }
156
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,6 @@
1
+ export const GAP_THRESHOLDS = {
2
+ strong: 0.5,
3
+ partial: 0.25,
4
+ weak: 0.1,
5
+ };
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAiJA,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,MAAM,EAAE,GAAG;IACX,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,GAAG;CACD,CAAC"}
package/package.json ADDED
@@ -0,0 +1,41 @@
1
+ {
2
+ "name": "@aikdna/kdna-fidelity-core",
3
+ "version": "0.1.0",
4
+ "description": "KDNA Fidelity Core — reference SDK for measuring judgment transfer fidelity in KDNA-governed artifacts",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": "./dist/index.js",
12
+ "types": "./dist/index.d.ts"
13
+ }
14
+ },
15
+ "scripts": {
16
+ "build": "tsc",
17
+ "test": "node --import tsx --test test/*.test.ts",
18
+ "prepublishOnly": "npm run build"
19
+ },
20
+ "files": [
21
+ "dist/",
22
+ "README.md"
23
+ ],
24
+ "license": "Apache-2.0",
25
+ "repository": {
26
+ "type": "git",
27
+ "url": "git+https://github.com/aikdna/kdna.git",
28
+ "directory": "packages/fidelity-core"
29
+ },
30
+ "dependencies": {
31
+ "zod": "^3.24.0"
32
+ },
33
+ "devDependencies": {
34
+ "typescript": "~5.8.0",
35
+ "tsx": "^4.0.0",
36
+ "@types/node": "^22.0.0"
37
+ },
38
+ "engines": {
39
+ "node": ">=18"
40
+ }
41
+ }