framesdkpy 0.3.0__py3-none-any.whl

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,116 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://frame.dev/schemas/0.3.0/acts.schema.json",
4
+ "title": "FRAME Acts",
5
+ "description": "Run history -- what went in, what came out, what was touched, what changed, what checks ran.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": ["frame"],
9
+ "properties": {
10
+ "frame": {
11
+ "allOf": [
12
+ { "$ref": "./frame.schema.json#/$defs/frame_header" },
13
+ {
14
+ "type": "object",
15
+ "properties": {
16
+ "file": { "const": "acts" },
17
+ "role": { "const": "checked_activity_record" }
18
+ }
19
+ }
20
+ ]
21
+ },
22
+ "summary": {
23
+ "type": "string",
24
+ "maxLength": 500,
25
+ "description": "Quick overview of recent activity."
26
+ },
27
+ "runs": {
28
+ "type": "array",
29
+ "description": "Per-session run records.",
30
+ "items": {
31
+ "type": "object",
32
+ "additionalProperties": false,
33
+ "required": ["id", "actor", "goal", "status"],
34
+ "properties": {
35
+ "id": { "$ref": "./frame.schema.json#/$defs/stable_id" },
36
+ "actor": { "type": "string", "maxLength": 100, "description": "Who or what did the work." },
37
+ "goal": { "type": "string", "maxLength": 300, "description": "What the run was trying to do." },
38
+ "work_kind": {
39
+ "type": "array",
40
+ "items": { "type": "string", "enum": ["code", "test", "review", "docs", "deploy"] }
41
+ },
42
+ "keywords": {
43
+ "type": "array",
44
+ "items": { "type": "string", "maxLength": 100 }
45
+ },
46
+ "input_summary": { "type": "string", "maxLength": 300 },
47
+ "output_summary": { "type": "string", "maxLength": 300 },
48
+ "status": {
49
+ "type": "string",
50
+ "enum": ["pass", "pass_with_risks", "fail", "needs_clarification"]
51
+ },
52
+ "touched": {
53
+ "type": "array",
54
+ "items": { "type": "string", "maxLength": 200 },
55
+ "description": "Files/paths/surfaces touched."
56
+ },
57
+ "changed_facts": {
58
+ "type": "array",
59
+ "items": { "type": "string", "maxLength": 200 },
60
+ "description": "Facts that were modified."
61
+ },
62
+ "rules_followed": {
63
+ "type": "array",
64
+ "items": { "type": "string", "maxLength": 100 },
65
+ "description": "Rule/policy ids that were applied."
66
+ },
67
+ "checks": {
68
+ "type": "array",
69
+ "description": "Checks considered or executed this run. Collapsed from checks_seen/checks_ran.",
70
+ "items": {
71
+ "type": "object",
72
+ "additionalProperties": false,
73
+ "required": ["id", "status"],
74
+ "properties": {
75
+ "id": { "$ref": "./frame.schema.json#/$defs/ref", "description": "Ref to expect.checks.<name>." },
76
+ "status": { "type": "string", "enum": ["ran", "skipped"] },
77
+ "result": {
78
+ "type": "string",
79
+ "enum": ["pass", "fail"],
80
+ "description": "Only when status=ran."
81
+ },
82
+ "reason": {
83
+ "type": "string",
84
+ "maxLength": 200,
85
+ "description": "Why skipped (only when status=skipped)."
86
+ }
87
+ }
88
+ }
89
+ },
90
+ "links": { "$ref": "./frame.schema.json#/$defs/links" }
91
+ }
92
+ }
93
+ },
94
+ "blockers": {
95
+ "type": "array",
96
+ "description": "Things preventing progress.",
97
+ "items": {
98
+ "type": "object",
99
+ "additionalProperties": false,
100
+ "required": ["id", "description"],
101
+ "properties": {
102
+ "id": { "$ref": "./frame.schema.json#/$defs/stable_id" },
103
+ "description": { "type": "string", "maxLength": 300 },
104
+ "links": { "$ref": "./frame.schema.json#/$defs/links" }
105
+ }
106
+ }
107
+ },
108
+ "handoff": {
109
+ "type": "object",
110
+ "additionalProperties": true,
111
+ "description": "What the next agent needs to know."
112
+ },
113
+ "evidence": { "$ref": "./frame.schema.json#/$defs/evidence_list" },
114
+ "links": { "$ref": "./frame.schema.json#/$defs/links" }
115
+ }
116
+ }
@@ -0,0 +1,105 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://frame.dev/schemas/0.3.0/expect.schema.json",
4
+ "title": "FRAME Expect",
5
+ "description": "What must pass -- outcomes, invariants, verification checks, proof requirements, and handoff.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": ["frame"],
9
+ "properties": {
10
+ "frame": {
11
+ "allOf": [
12
+ { "$ref": "./frame.schema.json#/$defs/frame_header" },
13
+ {
14
+ "type": "object",
15
+ "properties": {
16
+ "file": { "const": "expect" },
17
+ "role": { "const": "project_correctness_contract" }
18
+ }
19
+ }
20
+ ]
21
+ },
22
+ "outcomes": {
23
+ "type": "object",
24
+ "description": "Named expected results of work. Keys are outcome names.",
25
+ "additionalProperties": {
26
+ "type": "object",
27
+ "additionalProperties": false,
28
+ "required": ["summary"],
29
+ "properties": {
30
+ "summary": { "type": "string", "maxLength": 300 },
31
+ "links": { "$ref": "./frame.schema.json#/$defs/links" }
32
+ }
33
+ }
34
+ },
35
+ "must_hold": {
36
+ "type": "array",
37
+ "description": "Invariants that must stay true.",
38
+ "items": {
39
+ "type": "object",
40
+ "additionalProperties": false,
41
+ "required": ["id", "statement"],
42
+ "properties": {
43
+ "id": { "$ref": "./frame.schema.json#/$defs/stable_id" },
44
+ "statement": { "type": "string", "maxLength": 300 },
45
+ "links": { "$ref": "./frame.schema.json#/$defs/links" }
46
+ }
47
+ }
48
+ },
49
+ "checks": {
50
+ "type": "object",
51
+ "description": "Named verification checks. These feed the mechanical validator. Keys are check names used by command_ref.",
52
+ "additionalProperties": {
53
+ "type": "object",
54
+ "additionalProperties": false,
55
+ "required": ["name", "what"],
56
+ "properties": {
57
+ "name": { "type": "string", "maxLength": 100 },
58
+ "what": { "type": "string", "maxLength": 300, "description": "What is being checked." },
59
+ "how": { "type": "string", "maxLength": 200, "description": "How to check: test, build, lint, grep, manual." },
60
+ "command_ref": {
61
+ "type": "string",
62
+ "maxLength": 200,
63
+ "description": "Ref to rules.commands.<name> for executable verification."
64
+ },
65
+ "pass_condition": {
66
+ "type": "string",
67
+ "maxLength": 200,
68
+ "description": "Machine-parseable: 'exit_code == 0', 'stdout contains \"BUILD SUCCESS\"', 'stdout matches \"^[a-f0-9]{12}_\"', 'file_exists \"dist/index.html\"'."
69
+ },
70
+ "links": { "$ref": "./frame.schema.json#/$defs/links" }
71
+ }
72
+ }
73
+ },
74
+ "done_when": {
75
+ "type": "object",
76
+ "additionalProperties": true,
77
+ "description": "Completion conditions. Keys are condition names."
78
+ },
79
+ "proof": {
80
+ "type": "array",
81
+ "description": "Required evidence types.",
82
+ "items": {
83
+ "type": "object",
84
+ "additionalProperties": false,
85
+ "required": ["id", "type", "description"],
86
+ "properties": {
87
+ "id": { "$ref": "./frame.schema.json#/$defs/stable_id" },
88
+ "type": {
89
+ "type": "string",
90
+ "enum": ["review", "smoke_test", "static_check", "unavailable"]
91
+ },
92
+ "description": { "type": "string", "maxLength": 300 },
93
+ "links": { "$ref": "./frame.schema.json#/$defs/links" }
94
+ }
95
+ }
96
+ },
97
+ "handoff": {
98
+ "type": "object",
99
+ "additionalProperties": true,
100
+ "description": "State to pass to next session."
101
+ },
102
+ "evidence": { "$ref": "./frame.schema.json#/$defs/evidence_list" },
103
+ "links": { "$ref": "./frame.schema.json#/$defs/links" }
104
+ }
105
+ }
@@ -0,0 +1,256 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://frame.dev/schemas/0.3.0/facts.schema.json",
4
+ "title": "FRAME Facts",
5
+ "description": "Stable project truth \u2014 what the project is, how it's built, its quirks, and what nobody has decided yet.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": [
9
+ "frame",
10
+ "profile",
11
+ "architecture"
12
+ ],
13
+ "properties": {
14
+ "frame": {
15
+ "allOf": [
16
+ {
17
+ "$ref": "./frame.schema.json#/$defs/frame_header"
18
+ },
19
+ {
20
+ "type": "object",
21
+ "properties": {
22
+ "file": {
23
+ "const": "facts"
24
+ },
25
+ "role": {
26
+ "const": "current_project_truth"
27
+ }
28
+ }
29
+ }
30
+ ]
31
+ },
32
+ "profile": {
33
+ "type": "object",
34
+ "additionalProperties": false,
35
+ "required": [
36
+ "name",
37
+ "summary"
38
+ ],
39
+ "properties": {
40
+ "name": {
41
+ "type": "string",
42
+ "maxLength": 100
43
+ },
44
+ "summary": {
45
+ "type": "string",
46
+ "maxLength": 300
47
+ },
48
+ "repo_shape": {
49
+ "type": "string",
50
+ "maxLength": 50,
51
+ "enum": [
52
+ "split-backend-frontend",
53
+ "monorepo",
54
+ "single-package",
55
+ "monolith",
56
+ "microservices"
57
+ ]
58
+ },
59
+ "delivery_family": {
60
+ "type": "string",
61
+ "maxLength": 50,
62
+ "enum": [
63
+ "cli",
64
+ "web-app",
65
+ "mobile-app",
66
+ "sdk",
67
+ "infra-tooling",
68
+ "data-pipeline",
69
+ "desktop-app",
70
+ "browser-extension",
71
+ "static-site",
72
+ "chatbot",
73
+ "game",
74
+ "devops-automation"
75
+ ]
76
+ }
77
+ }
78
+ },
79
+ "classification": {
80
+ "type": "object",
81
+ "additionalProperties": true,
82
+ "properties": {
83
+ "kind": {
84
+ "type": "string",
85
+ "maxLength": 100
86
+ },
87
+ "surface_count": {
88
+ "type": "integer"
89
+ },
90
+ "surfaces": {
91
+ "type": "array",
92
+ "items": {
93
+ "type": "string",
94
+ "maxLength": 200
95
+ }
96
+ }
97
+ }
98
+ },
99
+ "technology": {
100
+ "type": "object",
101
+ "description": "Structured technology stack. Required keys: language, framework, database. Optional free-form extensions.",
102
+ "properties": {
103
+ "language": {
104
+ "type": "string",
105
+ "maxLength": 100
106
+ },
107
+ "framework": {
108
+ "type": "string",
109
+ "maxLength": 100
110
+ },
111
+ "database": {
112
+ "type": "string",
113
+ "maxLength": 100
114
+ },
115
+ "extensions": {
116
+ "type": "object",
117
+ "additionalProperties": true,
118
+ "description": "Optional free-form extensions for stack details not covered by the core keys."
119
+ }
120
+ },
121
+ "additionalProperties": false,
122
+ "required": [
123
+ "language",
124
+ "framework",
125
+ "database"
126
+ ]
127
+ },
128
+ "architecture": {
129
+ "type": "object",
130
+ "additionalProperties": false,
131
+ "required": [
132
+ "summary"
133
+ ],
134
+ "properties": {
135
+ "summary": {
136
+ "type": "string",
137
+ "maxLength": 500,
138
+ "description": "Human-readable system layout overview."
139
+ },
140
+ "backend_layers": {
141
+ "type": "array",
142
+ "items": {
143
+ "type": "string",
144
+ "maxLength": 300
145
+ }
146
+ },
147
+ "frontend_layers": {
148
+ "type": "array",
149
+ "items": {
150
+ "type": "string",
151
+ "maxLength": 300
152
+ }
153
+ },
154
+ "data_flow": {
155
+ "type": "string",
156
+ "maxLength": 500
157
+ },
158
+ "deployment_topology": {
159
+ "type": "string",
160
+ "maxLength": 500
161
+ }
162
+ }
163
+ },
164
+ "environments": {
165
+ "type": "object",
166
+ "additionalProperties": true,
167
+ "description": "Per-environment configuration. Free-form keys (e.g. local, production)."
168
+ },
169
+ "persistence": {
170
+ "type": "object",
171
+ "additionalProperties": true,
172
+ "description": "Database, ORM, migration, and storage details."
173
+ },
174
+ "sources": {
175
+ "type": "array",
176
+ "items": {
177
+ "type": "object",
178
+ "additionalProperties": false,
179
+ "required": [
180
+ "id",
181
+ "path",
182
+ "purpose"
183
+ ],
184
+ "properties": {
185
+ "id": {
186
+ "$ref": "./frame.schema.json#/$defs/stable_id"
187
+ },
188
+ "path": {
189
+ "type": "string",
190
+ "maxLength": 200
191
+ },
192
+ "purpose": {
193
+ "type": "string",
194
+ "maxLength": 300
195
+ }
196
+ }
197
+ }
198
+ },
199
+ "quirks": {
200
+ "type": "array",
201
+ "items": {
202
+ "type": "object",
203
+ "additionalProperties": false,
204
+ "required": [
205
+ "id",
206
+ "description",
207
+ "why"
208
+ ],
209
+ "properties": {
210
+ "id": {
211
+ "$ref": "./frame.schema.json#/$defs/stable_id"
212
+ },
213
+ "description": {
214
+ "type": "string",
215
+ "maxLength": 200
216
+ },
217
+ "why": {
218
+ "type": "string",
219
+ "maxLength": 300
220
+ }
221
+ }
222
+ }
223
+ },
224
+ "open_questions": {
225
+ "type": "array",
226
+ "items": {
227
+ "type": "object",
228
+ "additionalProperties": false,
229
+ "required": [
230
+ "id",
231
+ "question",
232
+ "context"
233
+ ],
234
+ "properties": {
235
+ "id": {
236
+ "$ref": "./frame.schema.json#/$defs/stable_id"
237
+ },
238
+ "question": {
239
+ "type": "string",
240
+ "maxLength": 300
241
+ },
242
+ "context": {
243
+ "type": "string",
244
+ "maxLength": 300
245
+ }
246
+ }
247
+ }
248
+ },
249
+ "evidence": {
250
+ "$ref": "./frame.schema.json#/$defs/evidence_list"
251
+ },
252
+ "links": {
253
+ "$ref": "./frame.schema.json#/$defs/links"
254
+ }
255
+ }
256
+ }
@@ -0,0 +1,114 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://frame.dev/schemas/0.3.0/frame.schema.json",
4
+ "title": "FRAME Shared Definitions",
5
+ "description": "Shared schema pieces used by all FRAME files. These definitions describe the FRAME design language and the linked entry grammar that tools can compose into context later.",
6
+ "$defs": {
7
+ "frame_header": {
8
+ "type": "object",
9
+ "description": "Shared FRAME frontmatter. Every FRAME file starts with this header.",
10
+ "additionalProperties": false,
11
+ "required": ["file", "schema_version", "role", "status"],
12
+ "properties": {
13
+ "file": {
14
+ "type": "string",
15
+ "enum": ["facts", "rules", "map", "expect", "acts"]
16
+ },
17
+ "schema_version": {
18
+ "type": "string",
19
+ "const": "0.3.0"
20
+ },
21
+ "role": {
22
+ "type": "string",
23
+ "minLength": 1
24
+ },
25
+ "scope": {
26
+ "type": ["string", "null"],
27
+ "enum": ["baseline_project", "execution_record", "handoff", "mixed", null],
28
+ "description": "What kind of context this FRAME file primarily represents."
29
+ },
30
+ "status": {
31
+ "type": "string",
32
+ "enum": ["draft", "active", "deprecated"]
33
+ },
34
+ "last_reviewed": {
35
+ "type": ["string", "null"],
36
+ "format": "date"
37
+ },
38
+ "updated_by": {
39
+ "type": ["string", "null"],
40
+ "maxLength": 100
41
+ },
42
+ "update_reason": {
43
+ "type": ["string", "null"],
44
+ "maxLength": 500
45
+ }
46
+ }
47
+ },
48
+ "ref": {
49
+ "type": "string",
50
+ "minLength": 1,
51
+ "description": "Canonical FRAME dotted ref, e.g. 'rules.commands.backend_test'."
52
+ },
53
+ "stable_id": {
54
+ "type": "string",
55
+ "minLength": 1,
56
+ "maxLength": 100,
57
+ "description": "Stable id for addressable list entries."
58
+ },
59
+ "link": {
60
+ "type": "object",
61
+ "description": "Typed cross-reference between FRAME entries.",
62
+ "additionalProperties": false,
63
+ "required": ["rel", "ref"],
64
+ "properties": {
65
+ "rel": {
66
+ "type": "string",
67
+ "enum": ["uses", "follows", "checks", "proves", "points_to", "changes", "touches", "explains", "blocks"]
68
+ },
69
+ "ref": {
70
+ "$ref": "#/$defs/ref"
71
+ }
72
+ }
73
+ },
74
+ "links": {
75
+ "type": "array",
76
+ "items": {
77
+ "$ref": "#/$defs/link"
78
+ }
79
+ },
80
+ "confidence": {
81
+ "type": "string",
82
+ "enum": ["unknown", "low", "medium", "high"]
83
+ },
84
+ "evidence_entry": {
85
+ "type": "object",
86
+ "description": "A short reason to trust a FRAME claim.",
87
+ "additionalProperties": false,
88
+ "properties": {
89
+ "id": {
90
+ "$ref": "#/$defs/stable_id"
91
+ },
92
+ "source": {
93
+ "type": "string",
94
+ "maxLength": 300
95
+ },
96
+ "confidence": {
97
+ "$ref": "#/$defs/confidence"
98
+ },
99
+ "refs": {
100
+ "type": "array",
101
+ "items": {
102
+ "$ref": "#/$defs/ref"
103
+ }
104
+ }
105
+ }
106
+ },
107
+ "evidence_list": {
108
+ "type": "array",
109
+ "items": {
110
+ "$ref": "#/$defs/evidence_entry"
111
+ }
112
+ }
113
+ }
114
+ }