@kungfu-tech/kfd 1.0.0-alpha.1 → 1.0.0-alpha.13

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,482 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://kfd.libkungfu.dev/schemas/kfd-3/collaboration-interface.schema.json",
4
+ "title": "KFD-3 collaboration interface",
5
+ "type": "object",
6
+ "required": [
7
+ "schemaVersion",
8
+ "contract",
9
+ "standard",
10
+ "product",
11
+ "sourceRegistry",
12
+ "participants",
13
+ "minimalEntrypoints",
14
+ "surfaces",
15
+ "transparentConstraints",
16
+ "choicePaths",
17
+ "closure"
18
+ ],
19
+ "properties": {
20
+ "schemaVersion": {
21
+ "const": 1
22
+ },
23
+ "contract": {
24
+ "const": "kfd-3-collaboration-interface"
25
+ },
26
+ "standard": {
27
+ "const": "kfd-3"
28
+ },
29
+ "product": {
30
+ "type": "object",
31
+ "required": [
32
+ "name",
33
+ "version"
34
+ ],
35
+ "properties": {
36
+ "name": {
37
+ "type": "string",
38
+ "minLength": 1
39
+ },
40
+ "version": {
41
+ "type": "string",
42
+ "minLength": 1
43
+ },
44
+ "repository": {
45
+ "type": "string",
46
+ "minLength": 1
47
+ }
48
+ },
49
+ "additionalProperties": true
50
+ },
51
+ "sourceRegistry": {
52
+ "$ref": "#/$defs/artifactPointer"
53
+ },
54
+ "factSources": {
55
+ "type": "array",
56
+ "items": {
57
+ "$ref": "#/$defs/factSource"
58
+ }
59
+ },
60
+ "participants": {
61
+ "type": "array",
62
+ "minItems": 1,
63
+ "items": {
64
+ "$ref": "#/$defs/participant"
65
+ }
66
+ },
67
+ "minimalEntrypoints": {
68
+ "type": "array",
69
+ "minItems": 1,
70
+ "items": {
71
+ "$ref": "#/$defs/entrypoint"
72
+ }
73
+ },
74
+ "surfaces": {
75
+ "type": "array",
76
+ "minItems": 1,
77
+ "items": {
78
+ "$ref": "#/$defs/surface"
79
+ }
80
+ },
81
+ "transparentConstraints": {
82
+ "type": "array",
83
+ "items": {
84
+ "$ref": "#/$defs/transparentConstraint"
85
+ }
86
+ },
87
+ "choicePaths": {
88
+ "type": "array",
89
+ "items": {
90
+ "$ref": "#/$defs/choicePath"
91
+ }
92
+ },
93
+ "extensionRequests": {
94
+ "type": "array",
95
+ "items": {
96
+ "$ref": "#/$defs/extensionRequest"
97
+ }
98
+ },
99
+ "closure": {
100
+ "type": "object",
101
+ "required": [
102
+ "classificationMode",
103
+ "unclassifiedEntrypointsPolicy"
104
+ ],
105
+ "properties": {
106
+ "classificationMode": {
107
+ "enum": [
108
+ "closed-world",
109
+ "declared-open"
110
+ ]
111
+ },
112
+ "unclassifiedEntrypointsPolicy": {
113
+ "enum": [
114
+ "fail",
115
+ "warn",
116
+ "documented-open"
117
+ ]
118
+ },
119
+ "reachableSurfaceSource": {
120
+ "type": "string",
121
+ "minLength": 1
122
+ }
123
+ },
124
+ "additionalProperties": true
125
+ }
126
+ },
127
+ "additionalProperties": true,
128
+ "$defs": {
129
+ "artifactPointer": {
130
+ "type": "object",
131
+ "required": [
132
+ "path"
133
+ ],
134
+ "properties": {
135
+ "path": {
136
+ "type": "string",
137
+ "minLength": 1
138
+ },
139
+ "schemaId": {
140
+ "type": "string",
141
+ "format": "uri"
142
+ },
143
+ "sha256": {
144
+ "type": "string",
145
+ "pattern": "^[0-9a-f]{64}$"
146
+ }
147
+ },
148
+ "additionalProperties": true
149
+ },
150
+ "participant": {
151
+ "type": "object",
152
+ "required": [
153
+ "id",
154
+ "kind",
155
+ "description"
156
+ ],
157
+ "properties": {
158
+ "id": {
159
+ "type": "string",
160
+ "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$"
161
+ },
162
+ "kind": {
163
+ "enum": [
164
+ "human",
165
+ "agent",
166
+ "operator",
167
+ "extension-author",
168
+ "api-consumer",
169
+ "hosted-service-user",
170
+ "service-integrator",
171
+ "maintainer",
172
+ "other"
173
+ ]
174
+ },
175
+ "description": {
176
+ "type": "string",
177
+ "minLength": 1
178
+ }
179
+ },
180
+ "additionalProperties": true
181
+ },
182
+ "factSource": {
183
+ "type": "object",
184
+ "required": [
185
+ "id",
186
+ "kind",
187
+ "repository",
188
+ "loadBearingCoordinate"
189
+ ],
190
+ "properties": {
191
+ "id": {
192
+ "type": "string",
193
+ "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$"
194
+ },
195
+ "kind": {
196
+ "enum": [
197
+ "git-repository",
198
+ "package",
199
+ "site",
200
+ "release-passport",
201
+ "other"
202
+ ]
203
+ },
204
+ "host": {
205
+ "type": "string",
206
+ "minLength": 1
207
+ },
208
+ "repository": {
209
+ "type": "string",
210
+ "minLength": 1
211
+ },
212
+ "url": {
213
+ "type": "string",
214
+ "format": "uri"
215
+ },
216
+ "loadBearingCoordinate": {
217
+ "type": "string",
218
+ "minLength": 1
219
+ },
220
+ "stableRenderedIndex": {
221
+ "type": "string",
222
+ "format": "uri"
223
+ },
224
+ "canonicalPaths": {
225
+ "type": "array",
226
+ "items": {
227
+ "type": "string",
228
+ "minLength": 1
229
+ }
230
+ },
231
+ "projectionSurfaces": {
232
+ "type": "array",
233
+ "items": {
234
+ "type": "string",
235
+ "minLength": 1
236
+ }
237
+ },
238
+ "extensionRequestNote": {
239
+ "type": "string",
240
+ "minLength": 1
241
+ }
242
+ },
243
+ "additionalProperties": true
244
+ },
245
+ "entrypoint": {
246
+ "type": "object",
247
+ "required": [
248
+ "id",
249
+ "surface",
250
+ "participants"
251
+ ],
252
+ "properties": {
253
+ "id": {
254
+ "type": "string",
255
+ "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$"
256
+ },
257
+ "surface": {
258
+ "type": "string",
259
+ "minLength": 1
260
+ },
261
+ "participants": {
262
+ "type": "array",
263
+ "minItems": 1,
264
+ "items": {
265
+ "type": "string",
266
+ "minLength": 1
267
+ }
268
+ },
269
+ "purpose": {
270
+ "type": "string",
271
+ "minLength": 1
272
+ }
273
+ },
274
+ "additionalProperties": true
275
+ },
276
+ "surface": {
277
+ "type": "object",
278
+ "required": [
279
+ "id",
280
+ "kind",
281
+ "participants",
282
+ "value",
283
+ "discoverability"
284
+ ],
285
+ "properties": {
286
+ "id": {
287
+ "type": "string",
288
+ "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$"
289
+ },
290
+ "kind": {
291
+ "enum": [
292
+ "cli-command",
293
+ "json-api",
294
+ "markdown-doc",
295
+ "skill",
296
+ "gui",
297
+ "web",
298
+ "config",
299
+ "envelope",
300
+ "package",
301
+ "protocol",
302
+ "other"
303
+ ]
304
+ },
305
+ "participants": {
306
+ "type": "array",
307
+ "minItems": 1,
308
+ "items": {
309
+ "type": "string",
310
+ "minLength": 1
311
+ }
312
+ },
313
+ "value": {
314
+ "type": "string",
315
+ "minLength": 1
316
+ },
317
+ "discoverability": {
318
+ "type": "object",
319
+ "required": [
320
+ "fromMinimalEntrypoint"
321
+ ],
322
+ "properties": {
323
+ "fromMinimalEntrypoint": {
324
+ "type": "boolean"
325
+ },
326
+ "path": {
327
+ "type": "string",
328
+ "minLength": 1
329
+ }
330
+ },
331
+ "additionalProperties": true
332
+ },
333
+ "maturity": {
334
+ "type": "string",
335
+ "minLength": 1
336
+ }
337
+ },
338
+ "additionalProperties": true
339
+ },
340
+ "transparentConstraint": {
341
+ "type": "object",
342
+ "required": [
343
+ "id",
344
+ "appliesTo",
345
+ "restriction",
346
+ "rationale",
347
+ "reviewPath"
348
+ ],
349
+ "properties": {
350
+ "id": {
351
+ "type": "string",
352
+ "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$"
353
+ },
354
+ "appliesTo": {
355
+ "type": "array",
356
+ "minItems": 1,
357
+ "items": {
358
+ "type": "string",
359
+ "minLength": 1
360
+ }
361
+ },
362
+ "restriction": {
363
+ "type": "string",
364
+ "minLength": 1
365
+ },
366
+ "rationale": {
367
+ "type": "string",
368
+ "minLength": 1
369
+ },
370
+ "reviewPath": {
371
+ "type": "string",
372
+ "minLength": 1
373
+ }
374
+ },
375
+ "additionalProperties": true
376
+ },
377
+ "choicePath": {
378
+ "type": "object",
379
+ "required": [
380
+ "id",
381
+ "participants",
382
+ "choices"
383
+ ],
384
+ "properties": {
385
+ "id": {
386
+ "type": "string",
387
+ "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$"
388
+ },
389
+ "participants": {
390
+ "type": "array",
391
+ "minItems": 1,
392
+ "items": {
393
+ "type": "string",
394
+ "minLength": 1
395
+ }
396
+ },
397
+ "choices": {
398
+ "type": "array",
399
+ "minItems": 1,
400
+ "items": {
401
+ "type": "object",
402
+ "required": [
403
+ "id",
404
+ "label"
405
+ ],
406
+ "properties": {
407
+ "id": {
408
+ "type": "string",
409
+ "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$"
410
+ },
411
+ "label": {
412
+ "type": "string",
413
+ "minLength": 1
414
+ }
415
+ },
416
+ "additionalProperties": true
417
+ }
418
+ }
419
+ },
420
+ "additionalProperties": true
421
+ },
422
+ "extensionRequest": {
423
+ "type": "object",
424
+ "required": [
425
+ "id",
426
+ "participants",
427
+ "trigger",
428
+ "requestPath"
429
+ ],
430
+ "properties": {
431
+ "id": {
432
+ "type": "string",
433
+ "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$"
434
+ },
435
+ "participants": {
436
+ "type": "array",
437
+ "minItems": 1,
438
+ "items": {
439
+ "type": "string",
440
+ "minLength": 1
441
+ }
442
+ },
443
+ "trigger": {
444
+ "type": "string",
445
+ "minLength": 1
446
+ },
447
+ "requestPath": {
448
+ "type": "object",
449
+ "required": [
450
+ "kind",
451
+ "target"
452
+ ],
453
+ "properties": {
454
+ "kind": {
455
+ "enum": [
456
+ "github-issue",
457
+ "github-discussion",
458
+ "repository-pr",
459
+ "maintainer-channel",
460
+ "other"
461
+ ]
462
+ },
463
+ "target": {
464
+ "type": "string",
465
+ "minLength": 1
466
+ },
467
+ "template": {
468
+ "type": "string",
469
+ "minLength": 1
470
+ }
471
+ },
472
+ "additionalProperties": true
473
+ },
474
+ "expectedOutcome": {
475
+ "type": "string",
476
+ "minLength": 1
477
+ }
478
+ },
479
+ "additionalProperties": true
480
+ }
481
+ }
482
+ }
@@ -0,0 +1,159 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://kfd.libkungfu.dev/schemas/kfd-3/witness.schema.json",
4
+ "title": "KFD-3 witness",
5
+ "type": "object",
6
+ "required": [
7
+ "schemaVersion",
8
+ "contract",
9
+ "standard",
10
+ "collaborationInterface",
11
+ "sourceRegistry",
12
+ "evidence",
13
+ "closure"
14
+ ],
15
+ "properties": {
16
+ "schemaVersion": {
17
+ "const": 1
18
+ },
19
+ "contract": {
20
+ "const": "kfd-3-witness"
21
+ },
22
+ "standard": {
23
+ "const": "kfd-3"
24
+ },
25
+ "collaborationInterface": {
26
+ "type": "object",
27
+ "required": [
28
+ "schemaId",
29
+ "digest"
30
+ ],
31
+ "properties": {
32
+ "schemaId": {
33
+ "const": "https://kfd.libkungfu.dev/schemas/kfd-3/collaboration-interface.schema.json"
34
+ },
35
+ "digest": {
36
+ "type": "string",
37
+ "minLength": 1
38
+ }
39
+ },
40
+ "additionalProperties": false
41
+ },
42
+ "sourceRegistry": {
43
+ "$ref": "#/$defs/artifactPointer"
44
+ },
45
+ "evidence": {
46
+ "type": "object",
47
+ "required": [
48
+ "minimalEntrypoints",
49
+ "discoverability",
50
+ "transparentConstraints",
51
+ "choicePaths"
52
+ ],
53
+ "properties": {
54
+ "minimalEntrypoints": {
55
+ "type": "array",
56
+ "minItems": 1,
57
+ "items": {
58
+ "$ref": "#/$defs/artifactPointer"
59
+ }
60
+ },
61
+ "discoverability": {
62
+ "type": "array",
63
+ "items": {
64
+ "$ref": "#/$defs/artifactPointer"
65
+ }
66
+ },
67
+ "transparentConstraints": {
68
+ "type": "array",
69
+ "items": {
70
+ "$ref": "#/$defs/artifactPointer"
71
+ }
72
+ },
73
+ "choicePaths": {
74
+ "type": "array",
75
+ "items": {
76
+ "$ref": "#/$defs/artifactPointer"
77
+ }
78
+ },
79
+ "manuals": {
80
+ "type": "array",
81
+ "items": {
82
+ "$ref": "#/$defs/artifactPointer"
83
+ }
84
+ }
85
+ },
86
+ "additionalProperties": true
87
+ },
88
+ "closure": {
89
+ "type": "object",
90
+ "required": [
91
+ "classificationMode",
92
+ "reachableEntrypoints",
93
+ "classifiedEntrypoints",
94
+ "unclassifiedEntrypoints"
95
+ ],
96
+ "properties": {
97
+ "classificationMode": {
98
+ "const": "closed-world"
99
+ },
100
+ "reachableEntrypoints": {
101
+ "type": "array",
102
+ "items": {
103
+ "type": "string",
104
+ "minLength": 1
105
+ }
106
+ },
107
+ "classifiedEntrypoints": {
108
+ "type": "array",
109
+ "items": {
110
+ "type": "string",
111
+ "minLength": 1
112
+ }
113
+ },
114
+ "unclassifiedEntrypoints": {
115
+ "type": "array",
116
+ "maxItems": 0
117
+ }
118
+ },
119
+ "additionalProperties": true
120
+ },
121
+ "result": {
122
+ "enum": [
123
+ "pass",
124
+ "fail",
125
+ "warning"
126
+ ]
127
+ },
128
+ "residualRisk": {
129
+ "type": "array",
130
+ "items": {
131
+ "$ref": "https://kfd.libkungfu.dev/schemas/kfd-2/trust-taxonomy.schema.json#/$defs/residualRisk"
132
+ }
133
+ }
134
+ },
135
+ "additionalProperties": true,
136
+ "$defs": {
137
+ "artifactPointer": {
138
+ "type": "object",
139
+ "required": [
140
+ "path"
141
+ ],
142
+ "properties": {
143
+ "path": {
144
+ "type": "string",
145
+ "minLength": 1
146
+ },
147
+ "sha256": {
148
+ "type": "string",
149
+ "pattern": "^[0-9a-f]{64}$"
150
+ },
151
+ "description": {
152
+ "type": "string",
153
+ "minLength": 1
154
+ }
155
+ },
156
+ "additionalProperties": true
157
+ }
158
+ }
159
+ }