@aikdna/kdna-core 0.7.2 → 0.8.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/package.json +5 -1
- package/src/asset-reader.js +85 -3
- package/src/crypto-profile.js +185 -0
- package/src/index.js +2 -0
- package/src/workpack-pure.js +254 -0
- package/schema/Composition_Policy.schema.json +0 -130
- package/schema/KDNA_Cases.schema.json +0 -77
- package/schema/KDNA_Cluster.schema.json +0 -132
- package/schema/KDNA_Core.schema.json +0 -286
- package/schema/KDNA_Core.strict.schema.json +0 -290
- package/schema/KDNA_Evolution.schema.json +0 -129
- package/schema/KDNA_Patterns.schema.json +0 -338
- package/schema/KDNA_Patterns.strict.schema.json +0 -342
- package/schema/KDNA_Reasoning.schema.json +0 -76
- package/schema/KDNA_Scenarios.schema.json +0 -112
- package/schema/KDNA_Scenarios.strict.schema.json +0 -101
- package/schema/eval.schema.json +0 -58
- package/schema/kdna-file.schema.json +0 -272
- package/schema/kdna-manifest-v1rc.json +0 -346
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"title": "KDNA_Reasoning",
|
|
4
|
-
"type": "object",
|
|
5
|
-
"required": ["meta"],
|
|
6
|
-
"properties": {
|
|
7
|
-
"meta": {
|
|
8
|
-
"type": "object",
|
|
9
|
-
"required": [
|
|
10
|
-
"version",
|
|
11
|
-
"domain",
|
|
12
|
-
"created",
|
|
13
|
-
"purpose",
|
|
14
|
-
"load_condition"
|
|
15
|
-
],
|
|
16
|
-
"properties": {
|
|
17
|
-
"version": { "type": "string" },
|
|
18
|
-
"domain": { "type": "string", "pattern": "^[a-z][a-z0-9_]*$" },
|
|
19
|
-
"created": { "type": "string" },
|
|
20
|
-
"purpose": { "type": "string" },
|
|
21
|
-
"load_condition": { "type": "string" }
|
|
22
|
-
},
|
|
23
|
-
"additionalProperties": true
|
|
24
|
-
},
|
|
25
|
-
"reasoning": {
|
|
26
|
-
"type": "array",
|
|
27
|
-
"items": {
|
|
28
|
-
"type": "object"
|
|
29
|
-
}
|
|
30
|
-
},
|
|
31
|
-
"reasoning_chains": {
|
|
32
|
-
"type": "array",
|
|
33
|
-
"items": {
|
|
34
|
-
"type": "object",
|
|
35
|
-
"required": [
|
|
36
|
-
"id",
|
|
37
|
-
"one_sentence",
|
|
38
|
-
"logic",
|
|
39
|
-
"so_what"
|
|
40
|
-
],
|
|
41
|
-
"properties": {
|
|
42
|
-
"id": { "type": "string" },
|
|
43
|
-
"one_sentence": { "type": "string" },
|
|
44
|
-
"logic": {
|
|
45
|
-
"type": "array",
|
|
46
|
-
"items": { "type": "string" }
|
|
47
|
-
},
|
|
48
|
-
"so_what": { "type": "string" },
|
|
49
|
-
"tradeoffs": {
|
|
50
|
-
"type": "string",
|
|
51
|
-
"description": "Trade-offs inherent in this reasoning chain."
|
|
52
|
-
},
|
|
53
|
-
"conflict_resolution": {
|
|
54
|
-
"type": "string",
|
|
55
|
-
"description": "How to resolve conflicts when this chain clashes with other principles."
|
|
56
|
-
},
|
|
57
|
-
"when_not_to_use": {
|
|
58
|
-
"type": "string",
|
|
59
|
-
"description": "Situations where this reasoning chain should not be applied."
|
|
60
|
-
},
|
|
61
|
-
"evidence_required": {
|
|
62
|
-
"type": "array",
|
|
63
|
-
"items": { "type": "string" },
|
|
64
|
-
"description": "Evidence needed before this chain can be confidently applied."
|
|
65
|
-
},
|
|
66
|
-
"uncertainty_handling": {
|
|
67
|
-
"type": "string",
|
|
68
|
-
"description": "How to proceed when evidence is incomplete or ambiguous."
|
|
69
|
-
}
|
|
70
|
-
},
|
|
71
|
-
"additionalProperties": true
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
},
|
|
75
|
-
"additionalProperties": true
|
|
76
|
-
}
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"title": "KDNA_Scenarios",
|
|
4
|
-
"type": "object",
|
|
5
|
-
"required": ["meta"],
|
|
6
|
-
"properties": {
|
|
7
|
-
"meta": {
|
|
8
|
-
"type": "object",
|
|
9
|
-
"required": [
|
|
10
|
-
"version",
|
|
11
|
-
"domain",
|
|
12
|
-
"created",
|
|
13
|
-
"purpose",
|
|
14
|
-
"load_condition"
|
|
15
|
-
],
|
|
16
|
-
"properties": {
|
|
17
|
-
"version": { "type": "string" },
|
|
18
|
-
"domain": {
|
|
19
|
-
"type": "string",
|
|
20
|
-
"pattern": "^[a-z][a-z0-9_]*$"
|
|
21
|
-
},
|
|
22
|
-
"created": { "type": "string" },
|
|
23
|
-
"purpose": { "type": "string" },
|
|
24
|
-
"load_condition": { "type": "string" }
|
|
25
|
-
},
|
|
26
|
-
"additionalProperties": true
|
|
27
|
-
},
|
|
28
|
-
"scenarios": {
|
|
29
|
-
"type": "array",
|
|
30
|
-
"items": {
|
|
31
|
-
"type": "object"
|
|
32
|
-
}
|
|
33
|
-
},
|
|
34
|
-
"scenes": {
|
|
35
|
-
"description": "Not part of KDNA v1.0. Use scenarios.",
|
|
36
|
-
"type": "array",
|
|
37
|
-
"items": {
|
|
38
|
-
"type": "object",
|
|
39
|
-
"required": ["id", "name"],
|
|
40
|
-
"properties": {
|
|
41
|
-
"id": { "type": "string" },
|
|
42
|
-
"name": { "type": "string" },
|
|
43
|
-
"trigger_signal": {
|
|
44
|
-
"type": "string",
|
|
45
|
-
"description": "Not part of KDNA v1.0. Use trigger_signals."
|
|
46
|
-
},
|
|
47
|
-
"trigger_signals": {
|
|
48
|
-
"type": "array",
|
|
49
|
-
"items": { "type": "string" },
|
|
50
|
-
"description": "Signals that trigger this scene."
|
|
51
|
-
},
|
|
52
|
-
"negative_signals": {
|
|
53
|
-
"type": "array",
|
|
54
|
-
"items": { "type": "string" },
|
|
55
|
-
"description": "Signals that explicitly exclude this scene."
|
|
56
|
-
},
|
|
57
|
-
"classification_rule": {
|
|
58
|
-
"type": "string",
|
|
59
|
-
"description": "Rule for classifying input into this scene."
|
|
60
|
-
},
|
|
61
|
-
"risk_level": {
|
|
62
|
-
"type": "string",
|
|
63
|
-
"description": "Risk level associated with this scene."
|
|
64
|
-
},
|
|
65
|
-
"expected_judgment_shift": {
|
|
66
|
-
"type": "string",
|
|
67
|
-
"description": "How judgment should shift when this scene is detected."
|
|
68
|
-
},
|
|
69
|
-
"sub_scenarios": {
|
|
70
|
-
"type": "array",
|
|
71
|
-
"items": {
|
|
72
|
-
"type": "object",
|
|
73
|
-
"required": ["id", "trap_belief", "action_template", "expected_result"],
|
|
74
|
-
"properties": {
|
|
75
|
-
"id": { "type": "string" },
|
|
76
|
-
"trap_belief": { "type": "string" },
|
|
77
|
-
"three_questions": {
|
|
78
|
-
"type": "object",
|
|
79
|
-
"required": ["belief", "state", "need"],
|
|
80
|
-
"properties": {
|
|
81
|
-
"belief": { "type": "string" },
|
|
82
|
-
"state": { "type": "string" },
|
|
83
|
-
"need": { "type": "string" }
|
|
84
|
-
}
|
|
85
|
-
},
|
|
86
|
-
"action_template": {
|
|
87
|
-
"type": "array",
|
|
88
|
-
"items": { "type": "string" }
|
|
89
|
-
},
|
|
90
|
-
"replace": {
|
|
91
|
-
"type": "array",
|
|
92
|
-
"items": {
|
|
93
|
-
"type": "object",
|
|
94
|
-
"required": ["avoid", "use"],
|
|
95
|
-
"properties": {
|
|
96
|
-
"avoid": { "type": "string" },
|
|
97
|
-
"use": { "type": "string" }
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
},
|
|
101
|
-
"expected_result": { "type": "string" }
|
|
102
|
-
},
|
|
103
|
-
"additionalProperties": true
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
},
|
|
107
|
-
"additionalProperties": true
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
},
|
|
111
|
-
"additionalProperties": true
|
|
112
|
-
}
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"title": "KDNA_Scenarios (Strict)",
|
|
4
|
-
"type": "object",
|
|
5
|
-
"required": ["meta", "scenarios"],
|
|
6
|
-
"properties": {
|
|
7
|
-
"meta": {
|
|
8
|
-
"type": "object",
|
|
9
|
-
"required": [
|
|
10
|
-
"version",
|
|
11
|
-
"domain",
|
|
12
|
-
"created",
|
|
13
|
-
"purpose",
|
|
14
|
-
"load_condition"
|
|
15
|
-
],
|
|
16
|
-
"properties": {
|
|
17
|
-
"version": { "type": "string" },
|
|
18
|
-
"domain": {
|
|
19
|
-
"type": "string",
|
|
20
|
-
"pattern": "^[a-z][a-z0-9_]*$"
|
|
21
|
-
},
|
|
22
|
-
"created": { "type": "string" },
|
|
23
|
-
"purpose": { "type": "string" },
|
|
24
|
-
"load_condition": { "type": "string" }
|
|
25
|
-
},
|
|
26
|
-
"additionalProperties": true
|
|
27
|
-
},
|
|
28
|
-
"scenarios": {
|
|
29
|
-
"type": "array",
|
|
30
|
-
"items": {
|
|
31
|
-
"type": "object",
|
|
32
|
-
"required": ["id", "name", "trigger_signals"],
|
|
33
|
-
"properties": {
|
|
34
|
-
"id": { "type": "string" },
|
|
35
|
-
"name": { "type": "string" },
|
|
36
|
-
"trigger_signals": {
|
|
37
|
-
"type": "array",
|
|
38
|
-
"items": { "type": "string" },
|
|
39
|
-
"description": "Signals that trigger this scenario."
|
|
40
|
-
},
|
|
41
|
-
"negative_signals": {
|
|
42
|
-
"type": "array",
|
|
43
|
-
"items": { "type": "string" },
|
|
44
|
-
"description": "Signals that explicitly exclude this scenario."
|
|
45
|
-
},
|
|
46
|
-
"classification_rule": {
|
|
47
|
-
"type": "string",
|
|
48
|
-
"description": "Rule for classifying input into this scenario."
|
|
49
|
-
},
|
|
50
|
-
"risk_level": {
|
|
51
|
-
"type": "string",
|
|
52
|
-
"description": "Risk level associated with this scenario."
|
|
53
|
-
},
|
|
54
|
-
"expected_judgment_shift": {
|
|
55
|
-
"type": "string",
|
|
56
|
-
"description": "How judgment should shift when this scenario is detected."
|
|
57
|
-
},
|
|
58
|
-
"sub_scenarios": {
|
|
59
|
-
"type": "array",
|
|
60
|
-
"items": {
|
|
61
|
-
"type": "object",
|
|
62
|
-
"required": ["id", "trap_belief", "action_template", "expected_result"],
|
|
63
|
-
"properties": {
|
|
64
|
-
"id": { "type": "string" },
|
|
65
|
-
"trap_belief": { "type": "string" },
|
|
66
|
-
"three_questions": {
|
|
67
|
-
"type": "object",
|
|
68
|
-
"required": ["belief", "state", "need"],
|
|
69
|
-
"properties": {
|
|
70
|
-
"belief": { "type": "string" },
|
|
71
|
-
"state": { "type": "string" },
|
|
72
|
-
"need": { "type": "string" }
|
|
73
|
-
}
|
|
74
|
-
},
|
|
75
|
-
"action_template": {
|
|
76
|
-
"type": "array",
|
|
77
|
-
"items": { "type": "string" }
|
|
78
|
-
},
|
|
79
|
-
"replace": {
|
|
80
|
-
"type": "array",
|
|
81
|
-
"items": {
|
|
82
|
-
"type": "object",
|
|
83
|
-
"required": ["avoid", "use"],
|
|
84
|
-
"properties": {
|
|
85
|
-
"avoid": { "type": "string" },
|
|
86
|
-
"use": { "type": "string" }
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
},
|
|
90
|
-
"expected_result": { "type": "string" }
|
|
91
|
-
},
|
|
92
|
-
"additionalProperties": true
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
},
|
|
96
|
-
"additionalProperties": true
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
},
|
|
100
|
-
"additionalProperties": false
|
|
101
|
-
}
|
package/schema/eval.schema.json
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"title": "KDNA_Eval",
|
|
4
|
-
"type": "object",
|
|
5
|
-
"required": [
|
|
6
|
-
"id",
|
|
7
|
-
"domain",
|
|
8
|
-
"input",
|
|
9
|
-
"expected_classification",
|
|
10
|
-
"output_rubric"
|
|
11
|
-
],
|
|
12
|
-
"properties": {
|
|
13
|
-
"id": {
|
|
14
|
-
"type": "string",
|
|
15
|
-
"description": "Unique identifier for this eval case."
|
|
16
|
-
},
|
|
17
|
-
"domain": {
|
|
18
|
-
"type": "string",
|
|
19
|
-
"description": "The domain this eval tests, e.g., @aikdna/writing."
|
|
20
|
-
},
|
|
21
|
-
"input": {
|
|
22
|
-
"type": "string",
|
|
23
|
-
"description": "The user input text to be evaluated."
|
|
24
|
-
},
|
|
25
|
-
"expected_classification": {
|
|
26
|
-
"type": "string",
|
|
27
|
-
"description": "The scenario or state the input should be classified into."
|
|
28
|
-
},
|
|
29
|
-
"expected_axioms": {
|
|
30
|
-
"type": "array",
|
|
31
|
-
"items": { "type": "string" },
|
|
32
|
-
"description": "Axiom IDs that should be triggered by this input."
|
|
33
|
-
},
|
|
34
|
-
"expected_misunderstandings_avoided": {
|
|
35
|
-
"type": "array",
|
|
36
|
-
"items": { "type": "string" },
|
|
37
|
-
"description": "Misunderstanding IDs the agent should avoid falling into."
|
|
38
|
-
},
|
|
39
|
-
"expected_banned_terms_avoided": {
|
|
40
|
-
"type": "array",
|
|
41
|
-
"items": { "type": "string" },
|
|
42
|
-
"description": "Banned terms the agent should avoid using."
|
|
43
|
-
},
|
|
44
|
-
"output_rubric": {
|
|
45
|
-
"type": "string",
|
|
46
|
-
"description": "What the judgment output should contain to pass."
|
|
47
|
-
},
|
|
48
|
-
"pass": {
|
|
49
|
-
"type": "boolean",
|
|
50
|
-
"description": "Whether this eval passed (set during verification)."
|
|
51
|
-
},
|
|
52
|
-
"evidence": {
|
|
53
|
-
"type": "string",
|
|
54
|
-
"description": "Explanation of why the eval passed or failed."
|
|
55
|
-
}
|
|
56
|
-
},
|
|
57
|
-
"additionalProperties": true
|
|
58
|
-
}
|
|
@@ -1,272 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$id": "https://aikdna.com/schema/kdna-file.schema.json",
|
|
4
|
-
"title": "KDNA Legacy Merged Single-File Format (Rejected)",
|
|
5
|
-
"description": "Legacy v0.x merged JSON/YAML single-file format. This format is not valid for KDNA v1.0-rc; conforming v1.0 tools MUST reject it and use the ZIP .kdna container with root mimetype and kdna.json.",
|
|
6
|
-
"type": "object",
|
|
7
|
-
"not": {},
|
|
8
|
-
"required": ["format", "format_version", "spec_version", "meta", "core", "patterns"],
|
|
9
|
-
"properties": {
|
|
10
|
-
"format": {
|
|
11
|
-
"type": "string",
|
|
12
|
-
"const": "kdna",
|
|
13
|
-
"description": "KDNA format marker."
|
|
14
|
-
},
|
|
15
|
-
"format_version": {
|
|
16
|
-
"type": "string",
|
|
17
|
-
"const": "1.0",
|
|
18
|
-
"description": "KDNA single-file manifest format version."
|
|
19
|
-
},
|
|
20
|
-
"spec_version": {
|
|
21
|
-
"type": "string",
|
|
22
|
-
"description": "KDNA spec version this file conforms to."
|
|
23
|
-
},
|
|
24
|
-
"meta": {
|
|
25
|
-
"type": "object",
|
|
26
|
-
"description": "Domain metadata — equivalent to kdna.json fields.",
|
|
27
|
-
"required": ["name", "domain", "version"],
|
|
28
|
-
"properties": {
|
|
29
|
-
"name": { "type": "string", "description": "Human-readable domain name." },
|
|
30
|
-
"domain": { "type": "string", "pattern": "^[a-z][a-z0-9_]*$", "description": "Domain identifier (snake_case)." },
|
|
31
|
-
"version": { "type": "string", "description": "Semantic version (MAJOR.MINOR.PATCH)." },
|
|
32
|
-
"spec_version": { "type": "string", "description": "KDNA spec version this domain conforms to." },
|
|
33
|
-
"created": { "type": "string", "description": "ISO date of first creation." },
|
|
34
|
-
"updated": { "type": "string", "description": "ISO date of last update." },
|
|
35
|
-
"purpose": { "type": "string", "description": "What judgment this domain improves." },
|
|
36
|
-
"description": { "type": "string" },
|
|
37
|
-
"languages": { "type": "array", "items": { "type": "string" } }
|
|
38
|
-
},
|
|
39
|
-
"additionalProperties": true
|
|
40
|
-
},
|
|
41
|
-
"author": {
|
|
42
|
-
"type": "object",
|
|
43
|
-
"description": "Domain author information.",
|
|
44
|
-
"properties": {
|
|
45
|
-
"name": { "type": "string" },
|
|
46
|
-
"id": { "type": "string" },
|
|
47
|
-
"email": { "type": "string", "format": "email" }
|
|
48
|
-
}
|
|
49
|
-
},
|
|
50
|
-
"license": {
|
|
51
|
-
"type": "object",
|
|
52
|
-
"description": "License information.",
|
|
53
|
-
"properties": {
|
|
54
|
-
"type": { "type": "string" },
|
|
55
|
-
"url": { "type": "string", "format": "uri" }
|
|
56
|
-
}
|
|
57
|
-
},
|
|
58
|
-
"status": {
|
|
59
|
-
"type": "string",
|
|
60
|
-
"enum": ["experimental", "basic", "stable", "pro"],
|
|
61
|
-
"description": "Domain maturity level."
|
|
62
|
-
},
|
|
63
|
-
"access": {
|
|
64
|
-
"type": "string",
|
|
65
|
-
"enum": ["open", "licensed", "runtime"],
|
|
66
|
-
"description": "Access mode for this domain."
|
|
67
|
-
},
|
|
68
|
-
"keywords": {
|
|
69
|
-
"type": "array",
|
|
70
|
-
"items": { "type": "string" },
|
|
71
|
-
"description": "Discovery keywords."
|
|
72
|
-
},
|
|
73
|
-
"core": {
|
|
74
|
-
"type": "object",
|
|
75
|
-
"description": "Core cognition — equivalent to KDNA_Core.json.",
|
|
76
|
-
"required": ["axioms", "ontology", "frameworks", "core_structure", "stances"],
|
|
77
|
-
"properties": {
|
|
78
|
-
"axioms": {
|
|
79
|
-
"type": "array",
|
|
80
|
-
"minItems": 1,
|
|
81
|
-
"items": {
|
|
82
|
-
"type": "object",
|
|
83
|
-
"required": ["id", "one_sentence", "full_statement", "why"],
|
|
84
|
-
"properties": {
|
|
85
|
-
"id": { "type": "string", "description": "Unique identifier (e.g., 'AX-001')." },
|
|
86
|
-
"one_sentence": { "type": "string", "minLength": 10, "description": "One-sentence judgment principle." },
|
|
87
|
-
"full_statement": { "type": "string", "minLength": 20, "description": "Full explanation — testable and domain-specific." },
|
|
88
|
-
"why": { "type": "string", "minLength": 10, "description": "Why this axiom matters for agent judgment." }
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
},
|
|
92
|
-
"ontology": {
|
|
93
|
-
"type": "array",
|
|
94
|
-
"minItems": 1,
|
|
95
|
-
"items": {
|
|
96
|
-
"type": "object",
|
|
97
|
-
"required": ["id", "one_sentence", "essence", "boundary", "trigger_signal"],
|
|
98
|
-
"properties": {
|
|
99
|
-
"id": { "type": "string" },
|
|
100
|
-
"one_sentence": { "type": "string" },
|
|
101
|
-
"essence": { "type": "string", "minLength": 10, "description": "Operational meaning — what the agent needs to check." },
|
|
102
|
-
"boundary": { "type": "string", "minLength": 5, "description": "What this concept is NOT. Must name a specific concept, not just 'not X'." },
|
|
103
|
-
"trigger_signal": { "type": "string", "minLength": 5, "description": "Observable words or patterns that signal this concept is relevant." }
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
},
|
|
107
|
-
"frameworks": {
|
|
108
|
-
"type": "array",
|
|
109
|
-
"items": {
|
|
110
|
-
"type": "object",
|
|
111
|
-
"required": ["id", "name", "when_to_use", "steps"],
|
|
112
|
-
"properties": {
|
|
113
|
-
"id": { "type": "string" },
|
|
114
|
-
"name": { "type": "string" },
|
|
115
|
-
"when_to_use": { "type": "string" },
|
|
116
|
-
"steps": { "type": "array", "minItems": 1, "items": { "type": "string" } }
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
},
|
|
120
|
-
"core_structure": {
|
|
121
|
-
"type": "array",
|
|
122
|
-
"minItems": 1,
|
|
123
|
-
"items": {
|
|
124
|
-
"type": "object",
|
|
125
|
-
"required": ["from", "to", "via"],
|
|
126
|
-
"properties": {
|
|
127
|
-
"from": { "type": "string" },
|
|
128
|
-
"to": { "type": "string" },
|
|
129
|
-
"via": { "type": "string" }
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
},
|
|
133
|
-
"stances": {
|
|
134
|
-
"type": "array",
|
|
135
|
-
"minItems": 1,
|
|
136
|
-
"items": {
|
|
137
|
-
"anyOf": [
|
|
138
|
-
{ "type": "string" },
|
|
139
|
-
{ "type": "object", "required": ["stance"] }
|
|
140
|
-
]
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
},
|
|
145
|
-
"patterns": {
|
|
146
|
-
"type": "object",
|
|
147
|
-
"description": "Patterns — equivalent to KDNA_Patterns.json.",
|
|
148
|
-
"required": ["terminology", "misunderstandings", "self_check"],
|
|
149
|
-
"properties": {
|
|
150
|
-
"terminology": {
|
|
151
|
-
"type": "object",
|
|
152
|
-
"minProperties": 1,
|
|
153
|
-
"properties": {
|
|
154
|
-
"standard_terms": {
|
|
155
|
-
"type": "array",
|
|
156
|
-
"items": {
|
|
157
|
-
"type": "object",
|
|
158
|
-
"required": ["term", "definition"],
|
|
159
|
-
"properties": {
|
|
160
|
-
"term": { "type": "string" },
|
|
161
|
-
"definition": { "type": "string" }
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
},
|
|
165
|
-
"preferred_terms": {
|
|
166
|
-
"type": "array",
|
|
167
|
-
"items": { "type": "object" }
|
|
168
|
-
},
|
|
169
|
-
"banned_terms": {
|
|
170
|
-
"type": "array",
|
|
171
|
-
"items": {
|
|
172
|
-
"type": "object",
|
|
173
|
-
"required": ["term", "why", "replace_with"],
|
|
174
|
-
"properties": {
|
|
175
|
-
"term": { "type": "string" },
|
|
176
|
-
"why": { "type": "string" },
|
|
177
|
-
"replace_with": { "type": "string" }
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
},
|
|
183
|
-
"misunderstandings": {
|
|
184
|
-
"type": "array",
|
|
185
|
-
"minItems": 1,
|
|
186
|
-
"items": {
|
|
187
|
-
"type": "object",
|
|
188
|
-
"required": ["id", "wrong", "correct", "key_distinction", "why"],
|
|
189
|
-
"properties": {
|
|
190
|
-
"id": { "type": "string" },
|
|
191
|
-
"wrong": { "type": "string", "minLength": 10 },
|
|
192
|
-
"correct": { "type": "string", "minLength": 10 },
|
|
193
|
-
"key_distinction": { "type": "string", "minLength": 10 },
|
|
194
|
-
"why": { "type": "string", "minLength": 10 }
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
},
|
|
198
|
-
"self_check": {
|
|
199
|
-
"type": "array",
|
|
200
|
-
"minItems": 1,
|
|
201
|
-
"items": {
|
|
202
|
-
"anyOf": [
|
|
203
|
-
{ "type": "string" },
|
|
204
|
-
{ "type": "object", "required": ["question"] }
|
|
205
|
-
]
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
},
|
|
210
|
-
"scenarios": {
|
|
211
|
-
"type": "object",
|
|
212
|
-
"description": "Optional scenarios (KDNA_Scenarios.json).",
|
|
213
|
-
"properties": {
|
|
214
|
-
"scenes": {
|
|
215
|
-
"type": "array",
|
|
216
|
-
"items": { "type": "object" }
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
},
|
|
220
|
-
"cases": {
|
|
221
|
-
"type": "object",
|
|
222
|
-
"description": "Optional cases (KDNA_Cases.json).",
|
|
223
|
-
"properties": {
|
|
224
|
-
"cases": {
|
|
225
|
-
"type": "array",
|
|
226
|
-
"items": { "type": "object" }
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
},
|
|
230
|
-
"reasoning": {
|
|
231
|
-
"type": "object",
|
|
232
|
-
"description": "Optional reasoning chains (KDNA_Reasoning.json).",
|
|
233
|
-
"properties": {
|
|
234
|
-
"reasoning_chains": {
|
|
235
|
-
"type": "array",
|
|
236
|
-
"items": { "type": "object" }
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
},
|
|
240
|
-
"evolution": {
|
|
241
|
-
"type": "object",
|
|
242
|
-
"description": "Optional evolution stages (KDNA_Evolution.json).",
|
|
243
|
-
"properties": {
|
|
244
|
-
"stages": {
|
|
245
|
-
"type": "array",
|
|
246
|
-
"items": { "type": "object" }
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
},
|
|
250
|
-
"registry": {
|
|
251
|
-
"type": "object",
|
|
252
|
-
"description": "Optional registry metadata.",
|
|
253
|
-
"properties": {
|
|
254
|
-
"repo": { "type": "string" },
|
|
255
|
-
"eval_score": { "type": "number" },
|
|
256
|
-
"quality_badge": { "type": "string" }
|
|
257
|
-
}
|
|
258
|
-
},
|
|
259
|
-
"evaluation_history": {
|
|
260
|
-
"type": "array",
|
|
261
|
-
"description": "Benchmark evaluation history.",
|
|
262
|
-
"items": {
|
|
263
|
-
"type": "object",
|
|
264
|
-
"properties": {
|
|
265
|
-
"version": { "type": "string" },
|
|
266
|
-
"eval_score": { "type": "number" },
|
|
267
|
-
"evaluated_at": { "type": "string" }
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
}
|