@arch-engine/schema 1.0.0-rc.1
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/dist/schemas/closure-route-classification.schema.json +36 -0
- package/dist/schemas/core.schema.json +186 -0
- package/dist/schemas/engine-manifest.schema.json +78 -0
- package/dist/schemas/entity-adjacency-map.schema.json +75 -0
- package/dist/schemas/kb.schema.json +246 -0
- package/dist/schemas/reasoning-protocol-v1.schema.json +81 -0
- package/dist/schemas/route-service-map.schema.json +110 -0
- package/dist/schemas/traversal-output.schema.json +42 -0
- package/dist/types/index.d.ts +177 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +10 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +22 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://schemas.arch-engine.dev/closure-route-classification.json",
|
|
4
|
+
"title": "Closure Route Classification Registry",
|
|
5
|
+
"type": "array",
|
|
6
|
+
"items": {
|
|
7
|
+
"type": "object",
|
|
8
|
+
"required": [
|
|
9
|
+
"uri",
|
|
10
|
+
"method",
|
|
11
|
+
"classification",
|
|
12
|
+
"reason"
|
|
13
|
+
],
|
|
14
|
+
"properties": {
|
|
15
|
+
"uri": {
|
|
16
|
+
"type": "string"
|
|
17
|
+
},
|
|
18
|
+
"method": {
|
|
19
|
+
"type": "string"
|
|
20
|
+
},
|
|
21
|
+
"classification": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"enum": [
|
|
24
|
+
"internal",
|
|
25
|
+
"debug",
|
|
26
|
+
"temporary",
|
|
27
|
+
"public_contract"
|
|
28
|
+
]
|
|
29
|
+
},
|
|
30
|
+
"reason": {
|
|
31
|
+
"type": "string"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"additionalProperties": false
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "Architecture Reasoning Engine — Core Schema",
|
|
4
|
+
"description": "Framework-agnostic schema for architecture entities, surfaces, edges, and governance structures. No framework or project assumptions.",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"definitions": {
|
|
7
|
+
"entity_identity": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"pattern": "^[a-z]{2,5}_[a-z0-9-]+_[a-f0-9]{8}$",
|
|
10
|
+
"description": "Deterministic identity: {prefix}_{slug}_{8-char-sha256-hash}"
|
|
11
|
+
},
|
|
12
|
+
"surface_identity": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"description": "Canonical surface identity tuple: METHOD|/path|handler|action|name"
|
|
15
|
+
},
|
|
16
|
+
"edge_type": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"enum": [
|
|
19
|
+
"reads_from", "writes_to", "invokes", "emits",
|
|
20
|
+
"subscribes_to", "contracts_with", "consumes", "exposes",
|
|
21
|
+
"uses_layout", "requires_permission", "requires_role", "redirects_to"
|
|
22
|
+
]
|
|
23
|
+
},
|
|
24
|
+
"confidence_level": {
|
|
25
|
+
"type": "string",
|
|
26
|
+
"enum": ["ast_verified", "namespace_inferred", "runtime_verified", "manual_override", "heuristic"]
|
|
27
|
+
},
|
|
28
|
+
"verification_level": {
|
|
29
|
+
"type": "string",
|
|
30
|
+
"enum": ["declared", "static_verified", "test_verified", "runtime_verified"]
|
|
31
|
+
},
|
|
32
|
+
"severity": {
|
|
33
|
+
"type": "string",
|
|
34
|
+
"enum": ["BLOCKER", "CRITICAL", "HIGH", "MEDIUM", "LOW", "INFO"]
|
|
35
|
+
},
|
|
36
|
+
"edge": {
|
|
37
|
+
"type": "object",
|
|
38
|
+
"required": ["target", "type"],
|
|
39
|
+
"properties": {
|
|
40
|
+
"target": { "type": "string", "minLength": 1 },
|
|
41
|
+
"type": { "$ref": "#/definitions/edge_type" },
|
|
42
|
+
"confidence": { "$ref": "#/definitions/confidence_level" }
|
|
43
|
+
},
|
|
44
|
+
"additionalProperties": false
|
|
45
|
+
},
|
|
46
|
+
"entity": {
|
|
47
|
+
"type": "object",
|
|
48
|
+
"required": ["entity_id", "type", "qualified_name", "file_path"],
|
|
49
|
+
"properties": {
|
|
50
|
+
"entity_id": { "$ref": "#/definitions/entity_identity" },
|
|
51
|
+
"type": { "type": "string", "minLength": 1 },
|
|
52
|
+
"qualified_name": { "type": "string", "minLength": 1 },
|
|
53
|
+
"file_path": { "type": "string", "minLength": 1 },
|
|
54
|
+
"edges": { "type": "array", "items": { "$ref": "#/definitions/edge" } },
|
|
55
|
+
"events_emitted": { "type": "array", "items": { "type": "string" } },
|
|
56
|
+
"jobs_dispatched": { "type": "array", "items": { "type": "string" } },
|
|
57
|
+
"models_touched": { "type": "array", "items": { "type": "string" } },
|
|
58
|
+
"interfaces": { "type": "array", "items": { "type": "string" } },
|
|
59
|
+
"traits": { "type": "array", "items": { "type": "string" } },
|
|
60
|
+
"metadata": { "type": "object" }
|
|
61
|
+
},
|
|
62
|
+
"additionalProperties": false
|
|
63
|
+
},
|
|
64
|
+
"surface": {
|
|
65
|
+
"type": "object",
|
|
66
|
+
"required": ["identity", "method", "path", "handler"],
|
|
67
|
+
"properties": {
|
|
68
|
+
"entity_id": { "$ref": "#/definitions/entity_identity" },
|
|
69
|
+
"identity": { "$ref": "#/definitions/surface_identity" },
|
|
70
|
+
"method": { "type": "string", "enum": ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS", "HEAD"] },
|
|
71
|
+
"path": { "type": "string", "minLength": 1 },
|
|
72
|
+
"handler": { "type": "string", "minLength": 1 },
|
|
73
|
+
"handler_fqn": { "type": ["string", "null"] },
|
|
74
|
+
"handler_resolution": { "type": "string" },
|
|
75
|
+
"action": { "type": "string" },
|
|
76
|
+
"route_name": { "type": "string" },
|
|
77
|
+
"edges": { "type": "array", "items": { "$ref": "#/definitions/edge" } }
|
|
78
|
+
},
|
|
79
|
+
"additionalProperties": false
|
|
80
|
+
},
|
|
81
|
+
"contract": {
|
|
82
|
+
"type": "object",
|
|
83
|
+
"required": ["operation_id", "endpoint", "method"],
|
|
84
|
+
"properties": {
|
|
85
|
+
"entity_id": { "$ref": "#/definitions/entity_identity" },
|
|
86
|
+
"operation_id": { "type": "string", "minLength": 1 },
|
|
87
|
+
"endpoint": { "type": "string", "minLength": 1 },
|
|
88
|
+
"method": { "type": "string" },
|
|
89
|
+
"request_schema": { "type": "string" },
|
|
90
|
+
"response_schema": { "type": "string" },
|
|
91
|
+
"tags": { "type": "array", "items": { "type": "string" } },
|
|
92
|
+
"internal": { "type": "boolean" },
|
|
93
|
+
"deprecated": { "type": "boolean" },
|
|
94
|
+
"edges": { "type": "array", "items": { "$ref": "#/definitions/edge" } }
|
|
95
|
+
},
|
|
96
|
+
"additionalProperties": false
|
|
97
|
+
},
|
|
98
|
+
"authority": {
|
|
99
|
+
"type": "object",
|
|
100
|
+
"required": ["entity", "owner"],
|
|
101
|
+
"properties": {
|
|
102
|
+
"entity": { "type": "string", "minLength": 1 },
|
|
103
|
+
"owner": { "type": "array", "items": { "type": "string" }, "minItems": 1 },
|
|
104
|
+
"allowed_writers": { "type": "array", "items": { "type": "string" } },
|
|
105
|
+
"forbidden_writers": { "type": "array", "items": { "type": "string" } },
|
|
106
|
+
"mutation_surfaces": { "type": "array", "items": { "type": "string" } },
|
|
107
|
+
"is_mutation_authority": { "type": "boolean" },
|
|
108
|
+
"protected_invariants": { "type": "array", "items": { "type": "string" } }
|
|
109
|
+
},
|
|
110
|
+
"additionalProperties": false
|
|
111
|
+
},
|
|
112
|
+
"invariant": {
|
|
113
|
+
"type": "object",
|
|
114
|
+
"required": ["id", "name", "verification_level"],
|
|
115
|
+
"properties": {
|
|
116
|
+
"id": { "type": "string", "minLength": 1 },
|
|
117
|
+
"name": { "type": "string", "minLength": 1 },
|
|
118
|
+
"owner": { "type": "array", "items": { "type": "string" } },
|
|
119
|
+
"verification_level": { "$ref": "#/definitions/verification_level" },
|
|
120
|
+
"blast_radius": { "type": "string" },
|
|
121
|
+
"journeys": { "type": "array", "items": { "type": "string" } },
|
|
122
|
+
"evidence": {
|
|
123
|
+
"type": "object",
|
|
124
|
+
"properties": {
|
|
125
|
+
"static": { "type": "string" },
|
|
126
|
+
"test": { "type": "array", "items": { "type": "string" } },
|
|
127
|
+
"runtime": { "type": "string" }
|
|
128
|
+
},
|
|
129
|
+
"additionalProperties": false
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
"additionalProperties": false
|
|
133
|
+
},
|
|
134
|
+
"journey": {
|
|
135
|
+
"type": "object",
|
|
136
|
+
"required": ["name"],
|
|
137
|
+
"properties": {
|
|
138
|
+
"name": { "type": "string", "minLength": 1 },
|
|
139
|
+
"controllers": { "type": "array", "items": { "type": "string" } },
|
|
140
|
+
"services": { "type": "array", "items": { "type": "string" } },
|
|
141
|
+
"events": { "type": "array", "items": { "type": "string" } },
|
|
142
|
+
"jobs": { "type": "array", "items": { "type": "string" } },
|
|
143
|
+
"tests": { "type": "array", "items": { "type": "string" } },
|
|
144
|
+
"protected_invariants": { "type": "array", "items": { "type": "string" } }
|
|
145
|
+
},
|
|
146
|
+
"additionalProperties": false
|
|
147
|
+
},
|
|
148
|
+
"telemetry_entry": {
|
|
149
|
+
"type": "object",
|
|
150
|
+
"required": ["entity", "gate", "status"],
|
|
151
|
+
"properties": {
|
|
152
|
+
"entity": { "type": "string", "minLength": 1 },
|
|
153
|
+
"entity_type": { "type": "string" },
|
|
154
|
+
"file": { "type": "string" },
|
|
155
|
+
"gate": { "type": "string", "minLength": 1 },
|
|
156
|
+
"status": { "type": "string", "enum": ["passed", "triggered", "skipped", "not_applicable"] },
|
|
157
|
+
"reason": { "type": "string" }
|
|
158
|
+
},
|
|
159
|
+
"additionalProperties": false
|
|
160
|
+
},
|
|
161
|
+
"violation": {
|
|
162
|
+
"type": "object",
|
|
163
|
+
"required": ["gate", "entity", "severity", "message"],
|
|
164
|
+
"properties": {
|
|
165
|
+
"gate": { "type": "string", "minLength": 1 },
|
|
166
|
+
"code": { "type": "string" },
|
|
167
|
+
"entity": { "type": "string", "minLength": 1 },
|
|
168
|
+
"severity": { "$ref": "#/definitions/severity" },
|
|
169
|
+
"message": { "type": "string", "minLength": 1 }
|
|
170
|
+
},
|
|
171
|
+
"additionalProperties": false
|
|
172
|
+
},
|
|
173
|
+
"traversal_step": {
|
|
174
|
+
"type": "object",
|
|
175
|
+
"required": ["step", "entity", "action"],
|
|
176
|
+
"properties": {
|
|
177
|
+
"step": { "type": "integer", "minimum": 0 },
|
|
178
|
+
"entity": { "type": "string", "minLength": 1 },
|
|
179
|
+
"action": { "type": "string", "minLength": 1 },
|
|
180
|
+
"invariants_checked": { "type": "array", "items": { "type": "string" } },
|
|
181
|
+
"edges_traversed": { "type": "array", "items": { "$ref": "#/definitions/edge" } }
|
|
182
|
+
},
|
|
183
|
+
"additionalProperties": false
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "Architecture Reasoning Engine — Engine Manifest Schema",
|
|
4
|
+
"description": "Defines the identity and compatibility layer for the arch-engine. Used for adapter compatibility checks, protocol validation, and multi-repo deployment safety.",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": [
|
|
7
|
+
"engine_id",
|
|
8
|
+
"engine_version",
|
|
9
|
+
"schema_versions",
|
|
10
|
+
"supported_adapter_contract_versions",
|
|
11
|
+
"minimum_adapter_contract_version",
|
|
12
|
+
"models"
|
|
13
|
+
],
|
|
14
|
+
"properties": {
|
|
15
|
+
"engine_id": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"description": "Unique engine identifier",
|
|
18
|
+
"minLength": 1
|
|
19
|
+
},
|
|
20
|
+
"engine_version": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"description": "Semantic version of the engine",
|
|
23
|
+
"pattern": "^\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.]+)?$"
|
|
24
|
+
},
|
|
25
|
+
"schema_versions": {
|
|
26
|
+
"type": "object",
|
|
27
|
+
"description": "Version map for all schema contracts",
|
|
28
|
+
"required": [
|
|
29
|
+
"capability_schema",
|
|
30
|
+
"topology_schema",
|
|
31
|
+
"entity_identity_schema",
|
|
32
|
+
"reasoning_protocol",
|
|
33
|
+
"adapter_contract",
|
|
34
|
+
"mutation_model",
|
|
35
|
+
"authority_model",
|
|
36
|
+
"confidence_model"
|
|
37
|
+
],
|
|
38
|
+
"properties": {
|
|
39
|
+
"capability_schema": { "type": "string", "pattern": "^\\d+\\.\\d+\\.\\d+$" },
|
|
40
|
+
"topology_schema": { "type": "string", "pattern": "^\\d+\\.\\d+\\.\\d+$" },
|
|
41
|
+
"entity_identity_schema": { "type": "string", "pattern": "^\\d+\\.\\d+\\.\\d+$" },
|
|
42
|
+
"reasoning_protocol": { "type": "string", "pattern": "^\\d+\\.\\d+\\.\\d+$" },
|
|
43
|
+
"adapter_contract": { "type": "string", "pattern": "^\\d+\\.\\d+\\.\\d+$" },
|
|
44
|
+
"mutation_model": { "type": "string", "pattern": "^\\d+\\.\\d+\\.\\d+$" },
|
|
45
|
+
"authority_model": { "type": "string", "pattern": "^\\d+\\.\\d+\\.\\d+$" },
|
|
46
|
+
"confidence_model": { "type": "string", "pattern": "^\\d+\\.\\d+\\.\\d+$" }
|
|
47
|
+
},
|
|
48
|
+
"additionalProperties": false
|
|
49
|
+
},
|
|
50
|
+
"supported_adapter_contract_versions": {
|
|
51
|
+
"type": "array",
|
|
52
|
+
"description": "List of adapter contract versions this engine supports",
|
|
53
|
+
"items": { "type": "string", "pattern": "^\\d+\\.\\d+\\.\\d+$" },
|
|
54
|
+
"minItems": 1
|
|
55
|
+
},
|
|
56
|
+
"minimum_adapter_contract_version": {
|
|
57
|
+
"type": "string",
|
|
58
|
+
"description": "Minimum adapter contract version required",
|
|
59
|
+
"pattern": "^\\d+\\.\\d+\\.\\d+$"
|
|
60
|
+
},
|
|
61
|
+
"models": {
|
|
62
|
+
"type": "object",
|
|
63
|
+
"description": "Reasoning model identifiers (algorithm version tags)",
|
|
64
|
+
"required": [
|
|
65
|
+
"mutation_hierarchy",
|
|
66
|
+
"authority_scoring",
|
|
67
|
+
"confidence_propagation"
|
|
68
|
+
],
|
|
69
|
+
"properties": {
|
|
70
|
+
"mutation_hierarchy": { "type": "string", "minLength": 1 },
|
|
71
|
+
"authority_scoring": { "type": "string", "minLength": 1 },
|
|
72
|
+
"confidence_propagation": { "type": "string", "minLength": 1 }
|
|
73
|
+
},
|
|
74
|
+
"additionalProperties": false
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
"additionalProperties": false
|
|
78
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://schemas.arch-engine.dev/entity-adjacency-map.schema.json",
|
|
4
|
+
"title": "Config for Entity Adjacency Map",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"patternProperties": {
|
|
7
|
+
"^.+$": {
|
|
8
|
+
"type": "object",
|
|
9
|
+
"required": [
|
|
10
|
+
"entity_id",
|
|
11
|
+
"reads_state",
|
|
12
|
+
"writes_state",
|
|
13
|
+
"creates_state",
|
|
14
|
+
"deletes_state",
|
|
15
|
+
"dispatches_state_change",
|
|
16
|
+
"eventual_state_change",
|
|
17
|
+
"async_state_change",
|
|
18
|
+
"repository_read",
|
|
19
|
+
"repository_write",
|
|
20
|
+
"cache_read",
|
|
21
|
+
"cache_write",
|
|
22
|
+
"external_read",
|
|
23
|
+
"external_write",
|
|
24
|
+
"reads_from",
|
|
25
|
+
"writes_to",
|
|
26
|
+
"invokes",
|
|
27
|
+
"emits",
|
|
28
|
+
"subscribes_to",
|
|
29
|
+
"contracts_with",
|
|
30
|
+
"consumes",
|
|
31
|
+
"exposes",
|
|
32
|
+
"uses_layout",
|
|
33
|
+
"requires_permission",
|
|
34
|
+
"requires_role",
|
|
35
|
+
"redirects_to",
|
|
36
|
+
"reachable_from_routes",
|
|
37
|
+
"mutation_authority",
|
|
38
|
+
"blast_radius"
|
|
39
|
+
],
|
|
40
|
+
"properties": {
|
|
41
|
+
"entity_id": { "type": "string" },
|
|
42
|
+
"reads_state": { "type": "array", "items": { "type": "string" } },
|
|
43
|
+
"writes_state": { "type": "array", "items": { "type": "string" } },
|
|
44
|
+
"creates_state": { "type": "array", "items": { "type": "string" } },
|
|
45
|
+
"deletes_state": { "type": "array", "items": { "type": "string" } },
|
|
46
|
+
"dispatches_state_change": { "type": "array", "items": { "type": "string" } },
|
|
47
|
+
"eventual_state_change": { "type": "array", "items": { "type": "string" } },
|
|
48
|
+
"async_state_change": { "type": "array", "items": { "type": "string" } },
|
|
49
|
+
"repository_read": { "type": "array", "items": { "type": "string" } },
|
|
50
|
+
"repository_write": { "type": "array", "items": { "type": "string" } },
|
|
51
|
+
"cache_read": { "type": "array", "items": { "type": "string" } },
|
|
52
|
+
"cache_write": { "type": "array", "items": { "type": "string" } },
|
|
53
|
+
"external_read": { "type": "array", "items": { "type": "string" } },
|
|
54
|
+
"external_write": { "type": "array", "items": { "type": "string" } },
|
|
55
|
+
"reads_from": { "type": "array", "items": { "type": "string" } },
|
|
56
|
+
"writes_to": { "type": "array", "items": { "type": "string" } },
|
|
57
|
+
"invokes": { "type": "array", "items": { "type": "string" } },
|
|
58
|
+
"emits": { "type": "array", "items": { "type": "string" } },
|
|
59
|
+
"subscribes_to": { "type": "array", "items": { "type": "string" } },
|
|
60
|
+
"contracts_with": { "type": "array", "items": { "type": "string" } },
|
|
61
|
+
"consumes": { "type": "array", "items": { "type": "string" } },
|
|
62
|
+
"exposes": { "type": "array", "items": { "type": "string" } },
|
|
63
|
+
"uses_layout": { "type": "array", "items": { "type": "string" } },
|
|
64
|
+
"requires_permission": { "type": "array", "items": { "type": "string" } },
|
|
65
|
+
"requires_role": { "type": "array", "items": { "type": "string" } },
|
|
66
|
+
"redirects_to": { "type": "array", "items": { "type": "string" } },
|
|
67
|
+
"reachable_from_routes": { "type": "array", "items": { "type": "string" } },
|
|
68
|
+
"mutation_authority": { "type": "boolean" },
|
|
69
|
+
"blast_radius": { "type": "string" }
|
|
70
|
+
},
|
|
71
|
+
"additionalProperties": false
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
"additionalProperties": false
|
|
75
|
+
}
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "Arch-Engine KB Architecture Schema",
|
|
4
|
+
"description": "Machine-consumable architecture enforcement schema. All definitions use additionalProperties: false to prevent silent drift.",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": ["entities", "services", "models", "controllers", "jobs", "events", "frontend_routes", "frontend_composables", "frontend_stores", "openapi_paths"],
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"definitions": {
|
|
9
|
+
"verification_level": {
|
|
10
|
+
"type": "string",
|
|
11
|
+
"enum": ["declared", "static_verified", "test_verified", "runtime_verified"]
|
|
12
|
+
},
|
|
13
|
+
"entity_type": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"enum": ["model", "service", "controller", "job", "event", "route", "composable", "store", "openapi_path", "enum", "middleware", "policy", "observer", "listener", "notification", "action"]
|
|
16
|
+
},
|
|
17
|
+
"domain": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"enum": [
|
|
20
|
+
"auth", "merchants", "machines", "inventory", "orders", "wallets",
|
|
21
|
+
"payments", "settlements", "analytics", "support", "notifications",
|
|
22
|
+
"machine-callbacks", "admin-monitoring", "design-system"
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
"entity": {
|
|
26
|
+
"type": "object",
|
|
27
|
+
"required": [
|
|
28
|
+
"id", "type", "domain", "authority_owner", "source_of_truth",
|
|
29
|
+
"blast_radius", "invariants", "journeys", "code_refs", "verification_level"
|
|
30
|
+
],
|
|
31
|
+
"properties": {
|
|
32
|
+
"id": { "type": "string", "minLength": 1 },
|
|
33
|
+
"type": { "$ref": "#/definitions/entity_type" },
|
|
34
|
+
"domain": { "$ref": "#/definitions/domain" },
|
|
35
|
+
"authority_owner": { "type": "string", "minLength": 1 },
|
|
36
|
+
"source_of_truth": { "type": "string", "minLength": 1 },
|
|
37
|
+
"blast_radius": { "type": "array", "items": { "type": "string" } },
|
|
38
|
+
"invariants": { "type": "array", "items": { "type": "string" } },
|
|
39
|
+
"journeys": { "type": "array", "items": { "type": "string" } },
|
|
40
|
+
"code_refs": { "type": "array", "items": { "type": "string" } },
|
|
41
|
+
"verification_level": { "$ref": "#/definitions/verification_level" },
|
|
42
|
+
"description": { "type": "string" },
|
|
43
|
+
"tags": { "type": "array", "items": { "type": "string" } }
|
|
44
|
+
},
|
|
45
|
+
"additionalProperties": false
|
|
46
|
+
},
|
|
47
|
+
"dependency_entry": {
|
|
48
|
+
"oneOf": [
|
|
49
|
+
{
|
|
50
|
+
"type": "string",
|
|
51
|
+
"deprecated": true,
|
|
52
|
+
"description": "DEPRECATED: Use structured dependency_entry object form. String form will be removed post-Phase 6."
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"type": "object",
|
|
56
|
+
"required": ["name", "type"],
|
|
57
|
+
"properties": {
|
|
58
|
+
"name": { "type": "string", "minLength": 1 },
|
|
59
|
+
"type": { "type": "string", "enum": ["reads_from", "writes_to", "invokes", "emits", "subscribes_to", "contracts_with", "exposes", "consumes", "uses_layout", "requires_permission", "requires_role", "redirects_to"] },
|
|
60
|
+
"confidence": { "type": "string", "enum": ["namespace_inferred", "ast_verified", "runtime_verified", "manual_override"] }
|
|
61
|
+
},
|
|
62
|
+
"additionalProperties": false
|
|
63
|
+
}
|
|
64
|
+
]
|
|
65
|
+
},
|
|
66
|
+
"service": {
|
|
67
|
+
"type": "object",
|
|
68
|
+
"required": ["class_name", "file_path", "dependencies", "events_emitted", "jobs_dispatched", "models_touched"],
|
|
69
|
+
"properties": {
|
|
70
|
+
"entity_id": { "type": "string" },
|
|
71
|
+
"class_name": { "type": "string", "minLength": 1 },
|
|
72
|
+
"file_path": { "type": "string", "minLength": 1 },
|
|
73
|
+
"dependencies": { "type": "array", "items": { "$ref": "#/definitions/dependency_entry" } },
|
|
74
|
+
"interfaces": { "type": "array", "items": { "type": "string" } },
|
|
75
|
+
"events_emitted": { "type": "array", "items": { "type": "string" } },
|
|
76
|
+
"jobs_dispatched": { "type": "array", "items": { "type": "string" } },
|
|
77
|
+
"models_touched": { "type": "array", "items": { "type": "string" } }
|
|
78
|
+
},
|
|
79
|
+
"additionalProperties": false
|
|
80
|
+
},
|
|
81
|
+
"model": {
|
|
82
|
+
"type": "object",
|
|
83
|
+
"required": ["class_name", "file_path", "dependencies", "events_emitted"],
|
|
84
|
+
"properties": {
|
|
85
|
+
"entity_id": { "type": "string" },
|
|
86
|
+
"class_name": { "type": "string", "minLength": 1 },
|
|
87
|
+
"file_path": { "type": "string", "minLength": 1 },
|
|
88
|
+
"dependencies": { "type": "array", "items": { "$ref": "#/definitions/dependency_entry" } },
|
|
89
|
+
"traits": { "type": "array", "items": { "type": "string" } },
|
|
90
|
+
"events_emitted": { "type": "array", "items": { "type": "string" } }
|
|
91
|
+
},
|
|
92
|
+
"additionalProperties": false
|
|
93
|
+
},
|
|
94
|
+
"controller": {
|
|
95
|
+
"type": "object",
|
|
96
|
+
"required": ["class_name", "file_path", "dependencies", "routes_exposed"],
|
|
97
|
+
"properties": {
|
|
98
|
+
"entity_id": { "type": "string" },
|
|
99
|
+
"class_name": { "type": "string", "minLength": 1 },
|
|
100
|
+
"file_path": { "type": "string", "minLength": 1 },
|
|
101
|
+
"dependencies": { "type": "array", "items": { "$ref": "#/definitions/dependency_entry" } },
|
|
102
|
+
"routes_exposed": { "type": "array", "items": { "type": "string" } }
|
|
103
|
+
},
|
|
104
|
+
"additionalProperties": false
|
|
105
|
+
},
|
|
106
|
+
"job": {
|
|
107
|
+
"type": "object",
|
|
108
|
+
"required": ["class_name", "file_path", "dependencies", "models_touched", "events_emitted"],
|
|
109
|
+
"properties": {
|
|
110
|
+
"entity_id": { "type": "string" },
|
|
111
|
+
"class_name": { "type": "string", "minLength": 1 },
|
|
112
|
+
"file_path": { "type": "string", "minLength": 1 },
|
|
113
|
+
"dependencies": { "type": "array", "items": { "$ref": "#/definitions/dependency_entry" } },
|
|
114
|
+
"models_touched": { "type": "array", "items": { "type": "string" } },
|
|
115
|
+
"events_emitted": { "type": "array", "items": { "type": "string" } }
|
|
116
|
+
},
|
|
117
|
+
"additionalProperties": false
|
|
118
|
+
},
|
|
119
|
+
"event": {
|
|
120
|
+
"type": "object",
|
|
121
|
+
"required": ["class_name", "file_path", "dependencies"],
|
|
122
|
+
"properties": {
|
|
123
|
+
"entity_id": { "type": "string" },
|
|
124
|
+
"class_name": { "type": "string", "minLength": 1 },
|
|
125
|
+
"file_path": { "type": "string", "minLength": 1 },
|
|
126
|
+
"dependencies": { "type": "array", "items": { "$ref": "#/definitions/dependency_entry" } }
|
|
127
|
+
},
|
|
128
|
+
"additionalProperties": false
|
|
129
|
+
},
|
|
130
|
+
"backend_route": {
|
|
131
|
+
"type": "object",
|
|
132
|
+
"required": ["file_path", "method", "uri", "controller", "controller_method"],
|
|
133
|
+
"properties": {
|
|
134
|
+
"entity_id": { "type": "string" },
|
|
135
|
+
"file_path": { "type": "string", "minLength": 1 },
|
|
136
|
+
"method": { "type": "string", "enum": ["GET", "POST", "PUT", "PATCH", "DELETE"] },
|
|
137
|
+
"uri": { "type": "string", "minLength": 1 },
|
|
138
|
+
"controller": { "type": "string", "minLength": 1 },
|
|
139
|
+
"controller_fqcn": {
|
|
140
|
+
"type": ["string", "null"],
|
|
141
|
+
"description": "Fully-qualified controller class name resolved from PHP use-import statements in the route file"
|
|
142
|
+
},
|
|
143
|
+
"controller_resolution": {
|
|
144
|
+
"type": "string",
|
|
145
|
+
"enum": ["use_import", "fqcn_literal", "unresolved", "artisan_verified", "closure_literal"],
|
|
146
|
+
"description": "Resolution provenance: artisan_verified, closure_literal, use_import, fqcn_literal, unresolved."
|
|
147
|
+
},
|
|
148
|
+
"controller_method": { "type": "string", "minLength": 1 },
|
|
149
|
+
"action": { "type": "string", "minLength": 1 },
|
|
150
|
+
"name": { "type": "string" },
|
|
151
|
+
"dependencies": { "type": "array", "items": { "$ref": "#/definitions/dependency_entry" } }
|
|
152
|
+
},
|
|
153
|
+
"additionalProperties": false
|
|
154
|
+
},
|
|
155
|
+
"listener": {
|
|
156
|
+
"type": "object",
|
|
157
|
+
"required": ["class_name", "file_path", "dependencies"],
|
|
158
|
+
"properties": {
|
|
159
|
+
"entity_id": { "type": "string" },
|
|
160
|
+
"class_name": { "type": "string", "minLength": 1 },
|
|
161
|
+
"file_path": { "type": "string", "minLength": 1 },
|
|
162
|
+
"dependencies": { "type": "array", "items": { "$ref": "#/definitions/dependency_entry" } }
|
|
163
|
+
},
|
|
164
|
+
"additionalProperties": false
|
|
165
|
+
},
|
|
166
|
+
"frontend_route": {
|
|
167
|
+
"type": "object",
|
|
168
|
+
"required": ["route_name", "view_file", "api_clients_used", "query_keys", "mutation_keys", "stores_used"],
|
|
169
|
+
"properties": {
|
|
170
|
+
"entity_id": { "type": "string" },
|
|
171
|
+
"route_name": { "type": "string", "minLength": 1 },
|
|
172
|
+
"view_file": { "type": "string" },
|
|
173
|
+
"api_clients_used": { "type": "array", "items": { "type": "string" } },
|
|
174
|
+
"query_keys": { "type": "array", "items": { "type": "string" } },
|
|
175
|
+
"mutation_keys": { "type": "array", "items": { "type": "string" } },
|
|
176
|
+
"stores_used": { "type": "array", "items": { "type": "string" } },
|
|
177
|
+
"route_component": { "type": "string" },
|
|
178
|
+
"route_layout": { "type": "string" },
|
|
179
|
+
"route_guard": { "type": "string" },
|
|
180
|
+
"route_permissions": { "type": "array", "items": { "type": "string" } },
|
|
181
|
+
"redirect_target": { "type": "string" },
|
|
182
|
+
"route_namespace": { "type": "string" },
|
|
183
|
+
"dependencies": { "type": "array", "items": { "$ref": "#/definitions/dependency_entry" } }
|
|
184
|
+
},
|
|
185
|
+
"additionalProperties": false
|
|
186
|
+
},
|
|
187
|
+
"composable": {
|
|
188
|
+
"type": "object",
|
|
189
|
+
"required": ["file_path", "query_keys", "mutation_keys"],
|
|
190
|
+
"properties": {
|
|
191
|
+
"entity_id": { "type": "string" },
|
|
192
|
+
"file_path": { "type": "string", "minLength": 1 },
|
|
193
|
+
"query_keys": { "type": "array", "items": { "type": "string" } },
|
|
194
|
+
"mutation_keys": { "type": "array", "items": { "type": "string" } },
|
|
195
|
+
"api_clients_used": { "type": "array", "items": { "type": "string" } },
|
|
196
|
+
"dependencies": { "type": "array", "items": { "$ref": "#/definitions/dependency_entry" } }
|
|
197
|
+
},
|
|
198
|
+
"additionalProperties": false
|
|
199
|
+
},
|
|
200
|
+
"store": {
|
|
201
|
+
"type": "object",
|
|
202
|
+
"required": ["file_path", "api_clients_used"],
|
|
203
|
+
"properties": {
|
|
204
|
+
"entity_id": { "type": "string" },
|
|
205
|
+
"file_path": { "type": "string", "minLength": 1 },
|
|
206
|
+
"api_clients_used": { "type": "array", "items": { "type": "string" } }
|
|
207
|
+
},
|
|
208
|
+
"additionalProperties": false
|
|
209
|
+
},
|
|
210
|
+
"openapi_path": {
|
|
211
|
+
"type": "object",
|
|
212
|
+
"required": ["endpoint", "method", "operationId"],
|
|
213
|
+
"properties": {
|
|
214
|
+
"entity_id": { "type": "string" },
|
|
215
|
+
"endpoint": { "type": "string", "minLength": 1 },
|
|
216
|
+
"method": { "type": "string", "enum": ["GET", "POST", "PUT", "PATCH", "DELETE"] },
|
|
217
|
+
"operationId": { "type": "string", "minLength": 1 },
|
|
218
|
+
"controller": { "type": "string" },
|
|
219
|
+
"frontend_client": { "type": "string" },
|
|
220
|
+
"request_schema": { "type": "string" },
|
|
221
|
+
"response_schema": { "type": "string" },
|
|
222
|
+
"tags": { "type": "array", "items": { "type": "string" } },
|
|
223
|
+
"dependencies": { "type": "array", "items": { "$ref": "#/definitions/dependency_entry" } },
|
|
224
|
+
"x-internal": { "type": "boolean" },
|
|
225
|
+
"deprecated": { "type": "boolean" }
|
|
226
|
+
},
|
|
227
|
+
"additionalProperties": false
|
|
228
|
+
}
|
|
229
|
+
},
|
|
230
|
+
"properties": {
|
|
231
|
+
"entities": {
|
|
232
|
+
"type": "array",
|
|
233
|
+
"items": { "$ref": "#/definitions/entity" }
|
|
234
|
+
},
|
|
235
|
+
"services": { "type": "array", "items": { "$ref": "#/definitions/service" } },
|
|
236
|
+
"models": { "type": "array", "items": { "$ref": "#/definitions/model" } },
|
|
237
|
+
"controllers": { "type": "array", "items": { "$ref": "#/definitions/controller" } },
|
|
238
|
+
"jobs": { "type": "array", "items": { "$ref": "#/definitions/job" } },
|
|
239
|
+
"events": { "type": "array", "items": { "$ref": "#/definitions/event" } },
|
|
240
|
+
"routes": { "type": "array", "items": { "$ref": "#/definitions/backend_route" } },
|
|
241
|
+
"frontend_routes": { "type": "array", "items": { "$ref": "#/definitions/frontend_route" } },
|
|
242
|
+
"frontend_composables": { "type": "array", "items": { "$ref": "#/definitions/composable" } },
|
|
243
|
+
"frontend_stores": { "type": "array", "items": { "$ref": "#/definitions/store" } },
|
|
244
|
+
"openapi_paths": { "type": "array", "items": { "$ref": "#/definitions/openapi_path" } }
|
|
245
|
+
}
|
|
246
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "Architecture Reasoning Engine — Reasoning Protocol V1",
|
|
4
|
+
"description": "Output schema produced by the architecture impact simulator. Formalizes the blast radius constraints and authority evaluation.",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": [
|
|
7
|
+
"protocol_version",
|
|
8
|
+
"confidence_summary",
|
|
9
|
+
"impact",
|
|
10
|
+
"missing_capability_layers",
|
|
11
|
+
"enforcement_decision"
|
|
12
|
+
],
|
|
13
|
+
"properties": {
|
|
14
|
+
"protocol_version": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"const": "1.0.0"
|
|
17
|
+
},
|
|
18
|
+
"scenario_id": {
|
|
19
|
+
"type": "string"
|
|
20
|
+
},
|
|
21
|
+
"confidence_summary": {
|
|
22
|
+
"type": "object",
|
|
23
|
+
"required": [
|
|
24
|
+
"avg_path_confidence",
|
|
25
|
+
"min_path_confidence",
|
|
26
|
+
"total_paths_evaluated",
|
|
27
|
+
"conclusive_paths",
|
|
28
|
+
"inconclusive_paths"
|
|
29
|
+
],
|
|
30
|
+
"properties": {
|
|
31
|
+
"avg_path_confidence": { "type": "number", "minimum": 0, "maximum": 1 },
|
|
32
|
+
"min_path_confidence": { "type": "number", "minimum": 0, "maximum": 1 },
|
|
33
|
+
"total_paths_evaluated": { "type": "integer", "minimum": 0 },
|
|
34
|
+
"conclusive_paths": { "type": "integer", "minimum": 0 },
|
|
35
|
+
"inconclusive_paths": { "type": "integer", "minimum": 0 }
|
|
36
|
+
},
|
|
37
|
+
"additionalProperties": false
|
|
38
|
+
},
|
|
39
|
+
"dominant_path": {
|
|
40
|
+
"type": "object",
|
|
41
|
+
"required": [
|
|
42
|
+
"source_entity",
|
|
43
|
+
"traversed_edges",
|
|
44
|
+
"final_weighted_score_contribution"
|
|
45
|
+
],
|
|
46
|
+
"properties": {
|
|
47
|
+
"source_entity": { "type": "string" },
|
|
48
|
+
"traversed_edges": { "type": "array", "items": { "type": "string" } },
|
|
49
|
+
"mutation_edge_encountered": { "type": "string" },
|
|
50
|
+
"authority_crossing_encountered": { "type": "string" },
|
|
51
|
+
"final_weighted_score_contribution": { "type": "number" }
|
|
52
|
+
},
|
|
53
|
+
"additionalProperties": false
|
|
54
|
+
},
|
|
55
|
+
"impact": {
|
|
56
|
+
"type": "object",
|
|
57
|
+
"required": [
|
|
58
|
+
"structural_radius",
|
|
59
|
+
"mutation_radius",
|
|
60
|
+
"authority_risk_score",
|
|
61
|
+
"conclusive_status"
|
|
62
|
+
],
|
|
63
|
+
"properties": {
|
|
64
|
+
"structural_radius": { "type": "string", "enum": ["LOW", "MEDIUM", "HIGH"] },
|
|
65
|
+
"mutation_radius": { "type": "string", "enum": ["LOW", "MEDIUM", "HIGH"] },
|
|
66
|
+
"authority_risk_score": { "type": "number", "minimum": 0 },
|
|
67
|
+
"conclusive_status": { "type": "boolean" }
|
|
68
|
+
},
|
|
69
|
+
"additionalProperties": false
|
|
70
|
+
},
|
|
71
|
+
"missing_capability_layers": {
|
|
72
|
+
"type": "array",
|
|
73
|
+
"items": { "type": "string" }
|
|
74
|
+
},
|
|
75
|
+
"enforcement_decision": {
|
|
76
|
+
"type": "string",
|
|
77
|
+
"enum": ["PASS", "WARNING", "BLOCK"]
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
"additionalProperties": false
|
|
81
|
+
}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://schemas.arch-engine.dev/route-service-map.schema.json",
|
|
4
|
+
"title": "Config for Route Service Map",
|
|
5
|
+
"description": "Route-to-service projection map. Forward keys use route_identity (METHOD:uri) as the canonical collision-safe route key.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["forward", "reverse"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"forward": {
|
|
10
|
+
"type": "object",
|
|
11
|
+
"patternProperties": {
|
|
12
|
+
"^.+$": {
|
|
13
|
+
"type": "object",
|
|
14
|
+
"required": [
|
|
15
|
+
"backend_route",
|
|
16
|
+
"method",
|
|
17
|
+
"controller",
|
|
18
|
+
"controller_entity_id",
|
|
19
|
+
"controller_resolution_status",
|
|
20
|
+
"services",
|
|
21
|
+
"operation_ids"
|
|
22
|
+
],
|
|
23
|
+
"properties": {
|
|
24
|
+
"frontend_route": {
|
|
25
|
+
"type": ["string", "null"]
|
|
26
|
+
},
|
|
27
|
+
"backend_route": {
|
|
28
|
+
"type": "string",
|
|
29
|
+
"description": "Route identity in METHOD:uri format (canonical collision-safe key)"
|
|
30
|
+
},
|
|
31
|
+
"method": {
|
|
32
|
+
"type": "string",
|
|
33
|
+
"enum": ["GET", "POST", "PUT", "PATCH", "DELETE"],
|
|
34
|
+
"description": "HTTP method component of the route identity"
|
|
35
|
+
},
|
|
36
|
+
"controller": { "type": "string" },
|
|
37
|
+
"controller_fqcn": {
|
|
38
|
+
"type": "string",
|
|
39
|
+
"description": "Fully-qualified controller class name resolved from scanner use-import map"
|
|
40
|
+
},
|
|
41
|
+
"controller_entity_id": { "type": "string" },
|
|
42
|
+
"controller_resolution_status": {
|
|
43
|
+
"type": "string",
|
|
44
|
+
"enum": ["scanner_use_import", "scanner_fqcn_literal", "unique_short_name", "unresolved_controller_identity"],
|
|
45
|
+
"description": "How the controller identity was resolved: scanner_use_import (PHP use statement), scanner_fqcn_literal (already FQCN), unique_short_name (fallback), unresolved_controller_identity (cannot resolve)"
|
|
46
|
+
},
|
|
47
|
+
"services": {
|
|
48
|
+
"type": "array",
|
|
49
|
+
"items": {
|
|
50
|
+
"type": "object",
|
|
51
|
+
"required": ["name", "entity_id"],
|
|
52
|
+
"properties": {
|
|
53
|
+
"name": { "type": "string" },
|
|
54
|
+
"entity_id": { "type": "string" }
|
|
55
|
+
},
|
|
56
|
+
"additionalProperties": false
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"operation_ids": {
|
|
60
|
+
"type": "array",
|
|
61
|
+
"items": { "type": "string" }
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
"additionalProperties": false
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
"additionalProperties": false
|
|
68
|
+
},
|
|
69
|
+
"reverse": {
|
|
70
|
+
"type": "object",
|
|
71
|
+
"patternProperties": {
|
|
72
|
+
"^.+$": {
|
|
73
|
+
"type": "object",
|
|
74
|
+
"required": [
|
|
75
|
+
"entity_id",
|
|
76
|
+
"controllers",
|
|
77
|
+
"reachable_backend_routes",
|
|
78
|
+
"reachable_frontend_routes",
|
|
79
|
+
"operation_ids"
|
|
80
|
+
],
|
|
81
|
+
"properties": {
|
|
82
|
+
"entity_id": { "type": "string" },
|
|
83
|
+
"mutation_authority": { "type": "boolean" },
|
|
84
|
+
"blast_radius": { "type": "string" },
|
|
85
|
+
"controllers": {
|
|
86
|
+
"type": "array",
|
|
87
|
+
"items": { "type": "string" }
|
|
88
|
+
},
|
|
89
|
+
"reachable_backend_routes": {
|
|
90
|
+
"type": "array",
|
|
91
|
+
"items": { "type": "string" },
|
|
92
|
+
"description": "Route identities in METHOD:uri format"
|
|
93
|
+
},
|
|
94
|
+
"reachable_frontend_routes": {
|
|
95
|
+
"type": "array",
|
|
96
|
+
"items": { "type": "string" }
|
|
97
|
+
},
|
|
98
|
+
"operation_ids": {
|
|
99
|
+
"type": "array",
|
|
100
|
+
"items": { "type": "string" }
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
"additionalProperties": false
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
"additionalProperties": false
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
"additionalProperties": false
|
|
110
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://schemas.arch-engine.dev/traversal-output.schema.json",
|
|
4
|
+
"title": "Traversal Pilot Output Schema",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": [
|
|
7
|
+
"traversal_id",
|
|
8
|
+
"trigger_route",
|
|
9
|
+
"entry_controller",
|
|
10
|
+
"execution_path",
|
|
11
|
+
"terminal_state",
|
|
12
|
+
"invariants_evaluated",
|
|
13
|
+
"breaches"
|
|
14
|
+
],
|
|
15
|
+
"properties": {
|
|
16
|
+
"traversal_id": { "type": "string" },
|
|
17
|
+
"trigger_route": { "type": "string" },
|
|
18
|
+
"entry_controller": { "type": "string" },
|
|
19
|
+
"execution_path": {
|
|
20
|
+
"type": "array",
|
|
21
|
+
"items": {
|
|
22
|
+
"type": "object",
|
|
23
|
+
"required": ["step", "entity", "action"],
|
|
24
|
+
"properties": {
|
|
25
|
+
"step": { "type": "integer" },
|
|
26
|
+
"entity": { "type": "string" },
|
|
27
|
+
"action": { "type": "string" }
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"terminal_state": { "type": "string" },
|
|
32
|
+
"invariants_evaluated": {
|
|
33
|
+
"type": "array",
|
|
34
|
+
"items": { "type": "string" }
|
|
35
|
+
},
|
|
36
|
+
"breaches": {
|
|
37
|
+
"type": "array",
|
|
38
|
+
"items": { "type": "string" }
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"additionalProperties": false
|
|
42
|
+
}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ═══════════════════════════════════════════════════════════
|
|
3
|
+
* @arch-engine/schema — TypeScript Type Definitions
|
|
4
|
+
* ═══════════════════════════════════════════════════════════
|
|
5
|
+
*
|
|
6
|
+
* Canonical types derived from core.schema.json.
|
|
7
|
+
* These are the contract types consumed by all packages.
|
|
8
|
+
*/
|
|
9
|
+
export type EdgeType = 'reads_from' | 'writes_to' | 'invokes' | 'emits' | 'subscribes_to' | 'contracts_with' | 'consumes' | 'exposes' | 'uses_layout' | 'requires_permission' | 'requires_role' | 'redirects_to';
|
|
10
|
+
export type ConfidenceLevel = 'ast_verified' | 'namespace_inferred' | 'runtime_verified' | 'manual_override' | 'heuristic';
|
|
11
|
+
export type VerificationLevel = 'declared' | 'static_verified' | 'test_verified' | 'runtime_verified';
|
|
12
|
+
export type Severity = 'BLOCKER' | 'CRITICAL' | 'HIGH' | 'MEDIUM' | 'LOW' | 'INFO';
|
|
13
|
+
export type GateStatus = 'passed' | 'triggered' | 'skipped' | 'not_applicable';
|
|
14
|
+
export interface Edge {
|
|
15
|
+
target: string;
|
|
16
|
+
type: EdgeType;
|
|
17
|
+
confidence?: ConfidenceLevel;
|
|
18
|
+
}
|
|
19
|
+
export interface Entity {
|
|
20
|
+
entity_id: string;
|
|
21
|
+
type: string;
|
|
22
|
+
qualified_name: string;
|
|
23
|
+
file_path: string;
|
|
24
|
+
edges?: Edge[];
|
|
25
|
+
events_emitted?: string[];
|
|
26
|
+
jobs_dispatched?: string[];
|
|
27
|
+
models_touched?: string[];
|
|
28
|
+
interfaces?: string[];
|
|
29
|
+
traits?: string[];
|
|
30
|
+
metadata?: Record<string, unknown>;
|
|
31
|
+
}
|
|
32
|
+
export interface Surface {
|
|
33
|
+
entity_id?: string;
|
|
34
|
+
identity: string;
|
|
35
|
+
method: string;
|
|
36
|
+
path: string;
|
|
37
|
+
handler: string;
|
|
38
|
+
handler_fqn?: string | null;
|
|
39
|
+
handler_resolution?: string;
|
|
40
|
+
action?: string;
|
|
41
|
+
route_name?: string;
|
|
42
|
+
edges?: Edge[];
|
|
43
|
+
}
|
|
44
|
+
export interface Contract {
|
|
45
|
+
entity_id?: string;
|
|
46
|
+
operation_id: string;
|
|
47
|
+
endpoint: string;
|
|
48
|
+
method: string;
|
|
49
|
+
request_schema?: string;
|
|
50
|
+
response_schema?: string;
|
|
51
|
+
tags?: string[];
|
|
52
|
+
internal?: boolean;
|
|
53
|
+
deprecated?: boolean;
|
|
54
|
+
edges?: Edge[];
|
|
55
|
+
}
|
|
56
|
+
export interface Authority {
|
|
57
|
+
entity: string;
|
|
58
|
+
owner: string[];
|
|
59
|
+
allowed_writers?: string[];
|
|
60
|
+
forbidden_writers?: string[];
|
|
61
|
+
mutation_surfaces?: string[];
|
|
62
|
+
is_mutation_authority?: boolean;
|
|
63
|
+
protected_invariants?: string[];
|
|
64
|
+
}
|
|
65
|
+
export interface Invariant {
|
|
66
|
+
id: string;
|
|
67
|
+
name: string;
|
|
68
|
+
owner?: string[];
|
|
69
|
+
verification_level: VerificationLevel;
|
|
70
|
+
blast_radius?: string;
|
|
71
|
+
journeys?: string[];
|
|
72
|
+
evidence?: {
|
|
73
|
+
static?: string;
|
|
74
|
+
test?: string[];
|
|
75
|
+
runtime?: string;
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
export interface Journey {
|
|
79
|
+
name: string;
|
|
80
|
+
controllers?: string[];
|
|
81
|
+
services?: string[];
|
|
82
|
+
events?: string[];
|
|
83
|
+
jobs?: string[];
|
|
84
|
+
tests?: string[];
|
|
85
|
+
protected_invariants?: string[];
|
|
86
|
+
}
|
|
87
|
+
export interface Impact {
|
|
88
|
+
entity: string;
|
|
89
|
+
affected_domains?: string[];
|
|
90
|
+
affected_journeys?: string[];
|
|
91
|
+
affected_contracts?: string[];
|
|
92
|
+
affected_invariants?: string[];
|
|
93
|
+
affected_dependencies?: string[];
|
|
94
|
+
blast_radius_hint?: string;
|
|
95
|
+
}
|
|
96
|
+
export interface Deployment {
|
|
97
|
+
entity: string;
|
|
98
|
+
depends_on?: string[];
|
|
99
|
+
critical_path?: boolean;
|
|
100
|
+
}
|
|
101
|
+
export interface ContractParity {
|
|
102
|
+
endpoint: string;
|
|
103
|
+
status: string;
|
|
104
|
+
notes?: string[];
|
|
105
|
+
}
|
|
106
|
+
export interface PeripheralSurface {
|
|
107
|
+
namespace: string;
|
|
108
|
+
group: string;
|
|
109
|
+
controllers?: string[];
|
|
110
|
+
}
|
|
111
|
+
export interface EntityIndex {
|
|
112
|
+
name: string;
|
|
113
|
+
source?: string;
|
|
114
|
+
}
|
|
115
|
+
export interface TelemetryEntry {
|
|
116
|
+
entity: string;
|
|
117
|
+
entity_type?: string;
|
|
118
|
+
file?: string;
|
|
119
|
+
gate: string;
|
|
120
|
+
status: GateStatus;
|
|
121
|
+
reason?: string;
|
|
122
|
+
}
|
|
123
|
+
export interface Violation {
|
|
124
|
+
gate: string;
|
|
125
|
+
code?: string;
|
|
126
|
+
entity: string;
|
|
127
|
+
severity: Severity;
|
|
128
|
+
message: string;
|
|
129
|
+
}
|
|
130
|
+
export interface RiskProfile {
|
|
131
|
+
authority_owner: boolean;
|
|
132
|
+
mutation_authority: boolean;
|
|
133
|
+
protected_invariant: boolean;
|
|
134
|
+
journey_bound: boolean;
|
|
135
|
+
contract_bound: boolean;
|
|
136
|
+
blast_radius: string;
|
|
137
|
+
deployment_sensitive: boolean;
|
|
138
|
+
dependency_direction_counts: Record<string, number>;
|
|
139
|
+
}
|
|
140
|
+
export interface TraversalStep {
|
|
141
|
+
step: number;
|
|
142
|
+
entity: string;
|
|
143
|
+
action: string;
|
|
144
|
+
invariants_checked?: string[];
|
|
145
|
+
edges_traversed?: Edge[];
|
|
146
|
+
}
|
|
147
|
+
export interface TraversalDefinition {
|
|
148
|
+
name: string;
|
|
149
|
+
entry_point: string;
|
|
150
|
+
steps: TraversalStep[];
|
|
151
|
+
}
|
|
152
|
+
export interface EngineManifest {
|
|
153
|
+
engine_version: string;
|
|
154
|
+
schema_version: string;
|
|
155
|
+
generated_at: string;
|
|
156
|
+
adapters_used: string[];
|
|
157
|
+
governance_packs: string[];
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Raw entity facts emitted by framework-specific scanners.
|
|
161
|
+
* No identity computation — adapters emit only normalized observations.
|
|
162
|
+
* The core engine assigns canonical entity_id values.
|
|
163
|
+
*/
|
|
164
|
+
export interface RawEntityFact {
|
|
165
|
+
type: string;
|
|
166
|
+
qualified_name: string;
|
|
167
|
+
file_path: string;
|
|
168
|
+
raw_imports: string[];
|
|
169
|
+
events_emitted?: string[];
|
|
170
|
+
jobs_dispatched?: string[];
|
|
171
|
+
models_touched?: string[];
|
|
172
|
+
interfaces?: string[];
|
|
173
|
+
traits?: string[];
|
|
174
|
+
routes_exposed?: string[];
|
|
175
|
+
metadata?: Record<string, unknown>;
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ═══════════════════════════════════════════════════════════
|
|
3
|
+
* @arch-engine/schema — TypeScript Type Definitions
|
|
4
|
+
* ═══════════════════════════════════════════════════════════
|
|
5
|
+
*
|
|
6
|
+
* Canonical types derived from core.schema.json.
|
|
7
|
+
* These are the contract types consumed by all packages.
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../types/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
package/package.json
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@arch-engine/schema",
|
|
3
|
+
"version": "1.0.0-rc.1",
|
|
4
|
+
"description": "Canonical JSON schemas and TypeScript types for architecture reasoning.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/tharcyn/arch-engine.git",
|
|
10
|
+
"directory": "packages/schema"
|
|
11
|
+
},
|
|
12
|
+
"main": "./dist/types/index.js",
|
|
13
|
+
"types": "./dist/types/index.d.ts",
|
|
14
|
+
"exports": {
|
|
15
|
+
".": "./dist/types/index.js",
|
|
16
|
+
"./schemas/*": "./dist/schemas/*.schema.json"
|
|
17
|
+
},
|
|
18
|
+
"scripts": {
|
|
19
|
+
"build": "tsc --project tsconfig.json && mkdir -p dist/schemas && cp src/*.schema.json dist/schemas/"
|
|
20
|
+
},
|
|
21
|
+
"files": ["dist"]
|
|
22
|
+
}
|