frontend-project-context 1.0.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,75 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "urn:frontend-project-context:schema:assist-bundle:1",
4
+ "title": "Frontend Project Context Assist Bundle",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schemaVersion",
9
+ "mode",
10
+ "project",
11
+ "snapshots",
12
+ "summary",
13
+ "sourceChanges",
14
+ "affectedItems",
15
+ "pendingItems",
16
+ "pathSignals",
17
+ "projectionPaths",
18
+ "findings",
19
+ "readTargets",
20
+ "workUnits",
21
+ "proposal",
22
+ "artifacts"
23
+ ],
24
+ "properties": {
25
+ "schemaVersion": { "const": 1 },
26
+ "mode": { "enum": ["setup", "sync"] },
27
+ "project": {
28
+ "type": "object",
29
+ "additionalProperties": false,
30
+ "required": ["id", "name", "initialized"],
31
+ "properties": {
32
+ "id": { "type": "string" },
33
+ "name": { "type": "string" },
34
+ "initialized": { "type": "boolean" }
35
+ }
36
+ },
37
+ "snapshots": {
38
+ "type": "object",
39
+ "additionalProperties": false,
40
+ "required": ["contract", "sourcesLock", "projectionsLock"],
41
+ "properties": {
42
+ "contract": { "$ref": "#/$defs/digest" },
43
+ "sourcesLock": { "$ref": "#/$defs/digest" },
44
+ "projectionsLock": { "$ref": "#/$defs/digest" }
45
+ }
46
+ },
47
+ "summary": {
48
+ "type": "object",
49
+ "additionalProperties": false,
50
+ "required": ["candidateSources", "candidateItems", "changedSources", "affectedItems", "pendingItems", "affectedProjections"],
51
+ "properties": {
52
+ "candidateSources": { "type": "integer", "minimum": 0 },
53
+ "candidateItems": { "type": "integer", "minimum": 0 },
54
+ "changedSources": { "type": "integer", "minimum": 0 },
55
+ "affectedItems": { "type": "integer", "minimum": 0 },
56
+ "pendingItems": { "type": "integer", "minimum": 0 },
57
+ "affectedProjections": { "type": "integer", "minimum": 0 }
58
+ }
59
+ },
60
+ "sourceChanges": { "type": "array", "items": { "type": "object" } },
61
+ "affectedItems": { "type": "array", "items": { "type": "object" } },
62
+ "pendingItems": { "type": "array", "items": { "type": "object" } },
63
+ "pathSignals": { "type": "array", "items": { "type": "object" } },
64
+ "projectionPaths": { "type": "array", "uniqueItems": true, "items": { "$ref": "#/$defs/path" } },
65
+ "findings": { "type": "array", "items": { "type": "object" } },
66
+ "readTargets": { "type": "array", "items": { "type": "object" } },
67
+ "workUnits": { "type": "array", "items": { "type": "object" } },
68
+ "proposal": { "anyOf": [{ "type": "null" }, { "type": "object" }] },
69
+ "artifacts": { "type": "array", "items": { "type": "object" } }
70
+ },
71
+ "$defs": {
72
+ "digest": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
73
+ "path": { "type": "string", "minLength": 1 }
74
+ }
75
+ }
@@ -0,0 +1,123 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "urn:frontend-project-context:schema:capabilities:1",
4
+ "title": "Frontend Project Context Capabilities",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schemaVersion",
9
+ "package",
10
+ "exchangeProtocolVersion",
11
+ "schemas",
12
+ "commands",
13
+ "actionKinds",
14
+ "initialization",
15
+ "initialized",
16
+ "project",
17
+ "boundaries"
18
+ ],
19
+ "properties": {
20
+ "schemaVersion": { "const": 1 },
21
+ "package": {
22
+ "type": "object",
23
+ "additionalProperties": false,
24
+ "required": ["name", "version"],
25
+ "properties": {
26
+ "name": { "const": "frontend-project-context" },
27
+ "version": { "type": "string" }
28
+ }
29
+ },
30
+ "exchangeProtocolVersion": { "const": 1 },
31
+ "schemas": {
32
+ "type": "object",
33
+ "additionalProperties": false,
34
+ "required": [
35
+ "actionPlan",
36
+ "assistBundle",
37
+ "capabilities",
38
+ "contract",
39
+ "dashboardViewModel",
40
+ "projectionLock",
41
+ "projectionRenderer",
42
+ "proposal",
43
+ "reviewBundle",
44
+ "sourceLock"
45
+ ],
46
+ "properties": {
47
+ "actionPlan": { "const": 1 },
48
+ "assistBundle": { "const": 1 },
49
+ "capabilities": { "const": 1 },
50
+ "contract": { "type": "integer" },
51
+ "dashboardViewModel": { "type": "integer" },
52
+ "projectionLock": { "type": "integer" },
53
+ "projectionRenderer": { "type": "integer" },
54
+ "proposal": { "type": "integer" },
55
+ "reviewBundle": { "const": 1 },
56
+ "sourceLock": { "type": "integer" }
57
+ }
58
+ },
59
+ "commands": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "string" } },
60
+ "actionKinds": {
61
+ "type": "array",
62
+ "minItems": 8,
63
+ "maxItems": 8,
64
+ "uniqueItems": true,
65
+ "items": {
66
+ "enum": [
67
+ "accept-source-change",
68
+ "deprecate-item",
69
+ "deprecate-source",
70
+ "propose-item",
71
+ "publish-projection",
72
+ "register-source",
73
+ "request-item-approval",
74
+ "revise-item"
75
+ ]
76
+ }
77
+ },
78
+ "initialization": { "enum": ["uninitialized", "partial", "initialized"] },
79
+ "initialized": { "type": "boolean" },
80
+ "project": {
81
+ "anyOf": [
82
+ { "type": "null" },
83
+ {
84
+ "type": "object",
85
+ "additionalProperties": false,
86
+ "required": ["id", "name"],
87
+ "properties": {
88
+ "id": { "type": "string" },
89
+ "name": { "type": "string" }
90
+ }
91
+ }
92
+ ]
93
+ },
94
+ "boundaries": {
95
+ "type": "object",
96
+ "additionalProperties": false,
97
+ "required": [
98
+ "provider",
99
+ "agentRuntime",
100
+ "git",
101
+ "network",
102
+ "dependencyInstallation",
103
+ "automaticApproval",
104
+ "businessCodeWrites",
105
+ "applyPlan",
106
+ "scheduler",
107
+ "daemon"
108
+ ],
109
+ "properties": {
110
+ "provider": { "const": false },
111
+ "agentRuntime": { "const": false },
112
+ "git": { "const": false },
113
+ "network": { "const": false },
114
+ "dependencyInstallation": { "const": false },
115
+ "automaticApproval": { "const": false },
116
+ "businessCodeWrites": { "const": false },
117
+ "applyPlan": { "const": false },
118
+ "scheduler": { "const": false },
119
+ "daemon": { "const": false }
120
+ }
121
+ }
122
+ }
123
+ }
@@ -0,0 +1,109 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "urn:frontend-project-context:schema:review-bundle:1",
4
+ "title": "Frontend Project Context Review Bundle",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schemaVersion", "projectId", "planDigest", "baselines", "status", "summary", "actions", "groups", "findings", "invocations"],
8
+ "properties": {
9
+ "schemaVersion": { "const": 1 },
10
+ "projectId": { "$ref": "#/$defs/id" },
11
+ "planDigest": { "$ref": "#/$defs/digest" },
12
+ "baselines": { "$ref": "#/$defs/baselines" },
13
+ "status": { "enum": ["reviewable", "blocked"] },
14
+ "summary": {
15
+ "type": "object",
16
+ "additionalProperties": false,
17
+ "required": ["actions", "reviewable", "blocked", "groups"],
18
+ "properties": {
19
+ "actions": { "type": "integer", "minimum": 1 },
20
+ "reviewable": { "type": "integer", "minimum": 0 },
21
+ "blocked": { "type": "integer", "minimum": 0 },
22
+ "groups": { "type": "integer", "minimum": 1 }
23
+ }
24
+ },
25
+ "actions": {
26
+ "type": "array",
27
+ "minItems": 1,
28
+ "items": {
29
+ "type": "object",
30
+ "additionalProperties": false,
31
+ "required": ["id", "kind", "status", "current", "proposed", "baselines", "impact", "blockers", "humanApprovalRequired"],
32
+ "properties": {
33
+ "id": { "$ref": "#/$defs/id" },
34
+ "kind": { "$ref": "#/$defs/actionKind" },
35
+ "status": { "enum": ["reviewable", "blocked"] },
36
+ "current": {},
37
+ "proposed": {},
38
+ "baselines": { "type": "object" },
39
+ "impact": {
40
+ "type": "object",
41
+ "required": ["itemIds", "sourceIds", "paths", "projectionPaths"],
42
+ "properties": {
43
+ "itemIds": { "type": "array", "uniqueItems": true, "items": { "type": "string" } },
44
+ "sourceIds": { "type": "array", "uniqueItems": true, "items": { "type": "string" } },
45
+ "paths": { "type": "array", "uniqueItems": true, "items": { "type": "string" } },
46
+ "projectionPaths": { "type": "array", "uniqueItems": true, "items": { "type": "string" } },
47
+ "directProjectionPaths": { "type": "array", "uniqueItems": true, "items": { "type": "string" } }
48
+ },
49
+ "additionalProperties": false
50
+ },
51
+ "blockers": { "type": "array", "items": { "type": "object" } },
52
+ "humanApprovalRequired": { "const": true },
53
+ "invocation": { "$ref": "#/$defs/invocation" }
54
+ }
55
+ }
56
+ },
57
+ "groups": {
58
+ "type": "array",
59
+ "minItems": 1,
60
+ "items": {
61
+ "type": "object",
62
+ "additionalProperties": false,
63
+ "required": ["kind", "actionIds"],
64
+ "properties": {
65
+ "kind": { "enum": ["source-change", "new-or-revised-knowledge", "deprecation", "approval-request", "projection", "blocker"] },
66
+ "actionIds": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "$ref": "#/$defs/id" } }
67
+ }
68
+ }
69
+ },
70
+ "findings": { "type": "array", "items": { "type": "object" } },
71
+ "invocations": { "type": "array", "items": { "$ref": "#/$defs/invocationWithAction" } }
72
+ },
73
+ "$defs": {
74
+ "id": { "type": "string", "pattern": "^[a-z0-9]+(?:[.-][a-z0-9]+)*$" },
75
+ "digest": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
76
+ "baselines": {
77
+ "type": "object",
78
+ "additionalProperties": false,
79
+ "required": ["contract", "sourcesLock", "projectionsLock"],
80
+ "properties": {
81
+ "contract": { "$ref": "#/$defs/digest" },
82
+ "sourcesLock": { "$ref": "#/$defs/digest" },
83
+ "projectionsLock": { "$ref": "#/$defs/digest" }
84
+ }
85
+ },
86
+ "actionKind": {
87
+ "enum": ["accept-source-change", "deprecate-item", "deprecate-source", "propose-item", "publish-projection", "register-source", "request-item-approval", "revise-item"]
88
+ },
89
+ "invocation": {
90
+ "type": "object",
91
+ "additionalProperties": false,
92
+ "required": ["command", "args"],
93
+ "properties": {
94
+ "command": { "type": "string" },
95
+ "args": { "type": "array", "items": { "type": "string" } }
96
+ }
97
+ },
98
+ "invocationWithAction": {
99
+ "type": "object",
100
+ "additionalProperties": false,
101
+ "required": ["actionId", "command", "args"],
102
+ "properties": {
103
+ "actionId": { "$ref": "#/$defs/id" },
104
+ "command": { "type": "string" },
105
+ "args": { "type": "array", "items": { "type": "string" } }
106
+ }
107
+ }
108
+ }
109
+ }