workspai 0.74.0 → 0.75.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.
Files changed (140) hide show
  1. package/contracts/agent-framework-capabilities.v1.json +454 -0
  2. package/contracts/cli-runtime-command-inventory.v1.snapshot.json +166 -0
  3. package/contracts/create-planner-capabilities.v1.json +24 -0
  4. package/contracts/extension-cli-compatibility.v1.json +6 -0
  5. package/contracts/published-contract-catalog.v1.json +30 -0
  6. package/contracts/runtime-command-surface.v1.json +71 -1
  7. package/contracts/workspace-intelligence/agent-framework-adapter-manifest.v1.json +2127 -0
  8. package/contracts/workspace-intelligence/agent-framework-admission-candidate.v1.json +193 -0
  9. package/contracts/workspace-intelligence/agent-framework-change-plan.v1.json +280 -0
  10. package/contracts/workspace-intelligence/agent-framework-conformance-report.v1.json +269 -0
  11. package/contracts/workspace-intelligence/agent-framework-ownership-receipt.v1.json +147 -0
  12. package/contracts/workspace-intelligence/workspace-model.v1.json +4 -0
  13. package/contracts/workspace-intelligence-architecture.v1.json +28 -2
  14. package/dist/analyze-Z3EZNJRI.js +1 -0
  15. package/dist/{artifact-remediation-plan-OVTQM7HN.js → artifact-remediation-plan-HD5K52UJ.js} +1 -1
  16. package/dist/autopilot-release-T6XFRWZT.js +1 -0
  17. package/dist/capabilities-command-VK3LQLP2.js +1 -0
  18. package/dist/{chunk-UHT2SW7O.js → chunk-25V5XMWB.js} +1 -1
  19. package/dist/chunk-2CT5SN2L.js +2 -0
  20. package/dist/chunk-2GWQ6NZV.js +1 -0
  21. package/dist/{chunk-KCIET26G.js → chunk-2OCJKLTW.js} +1 -1
  22. package/dist/{chunk-SAZXL36B.js → chunk-3WQ5TYCO.js} +1 -1
  23. package/dist/chunk-4VSQNSGH.js +9 -0
  24. package/dist/chunk-566NQQTJ.js +97 -0
  25. package/dist/chunk-5EEXLM45.js +1 -0
  26. package/dist/chunk-65AE7EC5.js +2 -0
  27. package/dist/{chunk-PKKSRXUS.js → chunk-6B7L4NZE.js} +1 -1
  28. package/dist/{chunk-BTJPTJLT.js → chunk-6KMR5PKQ.js} +3 -3
  29. package/dist/chunk-6NSJBKKK.js +4 -0
  30. package/dist/chunk-7NKM6EHE.js +7 -0
  31. package/dist/chunk-ABUSBLBH.js +1 -0
  32. package/dist/{chunk-TVSMNF5G.js → chunk-AICCXYY5.js} +4 -4
  33. package/dist/{chunk-FE5R6EUV.js → chunk-BLEIUQL6.js} +1 -1
  34. package/dist/{chunk-37SWTS2B.js → chunk-BR6QIYQS.js} +1 -1
  35. package/dist/chunk-CMLLERGG.js +418 -0
  36. package/dist/{chunk-MGL6DBOR.js → chunk-COOVCORC.js} +1 -1
  37. package/dist/chunk-DFREJHG7.js +1 -0
  38. package/dist/{chunk-C43NXRRE.js → chunk-DJH2CH42.js} +1 -1
  39. package/dist/chunk-FU6SQ2ND.js +1 -0
  40. package/dist/{chunk-IQFXLJIM.js → chunk-HDISUL3F.js} +1 -1
  41. package/dist/{chunk-JK6XEF7K.js → chunk-JKAAKE4Z.js} +1 -1
  42. package/dist/{chunk-G6ADWA2B.js → chunk-M6DVNC6X.js} +1 -1
  43. package/dist/chunk-NGZF4YJS.js +2 -0
  44. package/dist/{chunk-4JJDDL3X.js → chunk-NI5QWBZK.js} +1 -1
  45. package/dist/{chunk-3WHE7V4M.js → chunk-NLRZFIC6.js} +1 -1
  46. package/dist/{chunk-5Y4YRYZI.js → chunk-NRIMJMTF.js} +8 -8
  47. package/dist/{chunk-EBQS5T7Q.js → chunk-OA2YJN22.js} +1 -1
  48. package/dist/chunk-OH6LV5JP.js +6 -0
  49. package/dist/chunk-PTI743SC.js +7 -0
  50. package/dist/{chunk-TBOIXIQA.js → chunk-QBKOPXKC.js} +1 -1
  51. package/dist/chunk-RTD5D35M.js +13 -0
  52. package/dist/{chunk-XVTN5DDV.js → chunk-RU3UT7GJ.js} +1 -1
  53. package/dist/{chunk-DPC5DKH6.js → chunk-SCKEFXF5.js} +1 -1
  54. package/dist/chunk-UE7ART6X.js +1 -0
  55. package/dist/{chunk-FY4X2VOE.js → chunk-VHMDWRDG.js} +2 -2
  56. package/dist/chunk-VJQPIH2S.js +681 -0
  57. package/dist/{chunk-H333GKL4.js → chunk-W7I65IXY.js} +1 -1
  58. package/dist/{chunk-ZNKZ2KXR.js → chunk-WPPRUFJW.js} +1 -1
  59. package/dist/{chunk-HAZGSAKP.js → chunk-ZI54C2AO.js} +1 -1
  60. package/dist/{create-EKA2QG5R.js → create-P4XJVZCL.js} +1 -1
  61. package/dist/{demo-kit-RKTHTXHJ.js → demo-kit-ALW6OSQV.js} +1 -1
  62. package/dist/{doctor-BXSNADVR.js → doctor-PFN6KB6P.js} +1 -1
  63. package/dist/{dotnet-webapi-clean-VJX6SGGP.js → dotnet-webapi-clean-6Z4EXEJY.js} +1 -1
  64. package/dist/{goal-lifecycle-XXWNMIAD.js → goal-lifecycle-BDWTWS55.js} +1 -1
  65. package/dist/goal-pack-5JDNZFKV.js +1 -0
  66. package/dist/{gofiber-standard-I6ASLOEE.js → gofiber-standard-TDJQIVQZ.js} +1 -1
  67. package/dist/{gogin-standard-U2LSRLIP.js → gogin-standard-UEF3IHSJ.js} +1 -1
  68. package/dist/index.d.ts +18 -0
  69. package/dist/index.js +276 -251
  70. package/dist/{pipeline-JLOC2SUT.js → pipeline-OUYS4ZYV.js} +1 -1
  71. package/dist/{project-agent-entry-ZNUHGCVC.js → project-agent-entry-75WO3QWP.js} +1 -1
  72. package/dist/{project-intelligence-lens-W72OUEDW.js → project-intelligence-lens-JCHFOIA7.js} +1 -1
  73. package/dist/{project-test-coverage-5PXAHBYQ.js → project-test-coverage-3P5FH6E5.js} +1 -1
  74. package/dist/proof-carrying-change-LAYV4LTI.js +1 -0
  75. package/dist/{pythonRapidkitExec-44ORGQ4R.js → pythonRapidkitExec-UMFLDIYR.js} +1 -1
  76. package/dist/{rust-axum-JMV7UPO7.js → rust-axum-4TRVPFMB.js} +1 -1
  77. package/dist/{springboot-standard-OC2RS3KC.js → springboot-standard-COWL75GT.js} +1 -1
  78. package/dist/verified-goal-75KGBWTE.js +1 -0
  79. package/dist/{workspace-XTIGVLGH.js → workspace-CBQDOUSH.js} +1 -1
  80. package/dist/{workspace-agent-sync-TN6QDNBR.js → workspace-agent-sync-RTOTO3DY.js} +1 -1
  81. package/dist/{workspace-archive-OSMU3CK6.js → workspace-archive-3AURTMYA.js} +1 -1
  82. package/dist/{workspace-context-Y3TNY2XZ.js → workspace-context-STRZO2N3.js} +1 -1
  83. package/dist/{workspace-contract-GRZY7WRD.js → workspace-contract-PMHUUKFM.js} +1 -1
  84. package/dist/{workspace-explain-KUYHJFLY.js → workspace-explain-CATMJUMN.js} +1 -1
  85. package/dist/{workspace-feedback-D6HJLKBQ.js → workspace-feedback-FF34CSJE.js} +1 -1
  86. package/dist/{workspace-foundation-ZBUJTR56.js → workspace-foundation-OULCDCXG.js} +1 -1
  87. package/dist/{workspace-graph-stream-KC2XUAE4.js → workspace-graph-stream-Q55CI4K4.js} +1 -1
  88. package/dist/{workspace-history-WWPS4U7H.js → workspace-history-EQG5UBKW.js} +1 -1
  89. package/dist/{workspace-intelligence-26YT6KMN.js → workspace-intelligence-3RPZRWSF.js} +1 -1
  90. package/dist/{workspace-intelligence-benchmark-QFVTUBDO.js → workspace-intelligence-benchmark-R5MEGJQS.js} +1 -1
  91. package/dist/{workspace-intelligence-runner-HVYKHCTX.js → workspace-intelligence-runner-BNZUYUUN.js} +1 -1
  92. package/dist/{workspace-knowledge-graph-RL3I2FHY.js → workspace-knowledge-graph-VJLD35ES.js} +1 -1
  93. package/dist/workspace-knowledge-graph-snapshot-TQAKDDUA.js +1 -0
  94. package/dist/workspace-mcp-serve-67NTYD67.js +3 -0
  95. package/dist/workspace-model-6TKZMNEF.js +1 -0
  96. package/dist/{workspace-onboarding-BY6RUBBH.js → workspace-onboarding-7V7EH3RH.js} +1 -1
  97. package/dist/{workspace-readme-HA6XLDME.js → workspace-readme-4FCKAQME.js} +1 -1
  98. package/dist/{workspace-registry-summary-VKTJ7PHV.js → workspace-registry-summary-ILVO7DEU.js} +1 -1
  99. package/dist/{workspace-repair-engine-RBM7NCGI.js → workspace-repair-engine-2VGFB3DJ.js} +1 -1
  100. package/dist/workspace-run-X7KV6MIT.js +1 -0
  101. package/dist/{workspace-verify-NFJ7RKKT.js → workspace-verify-VQWYDAF2.js} +1 -1
  102. package/dist/workspace-watch-2Z636HWS.js +1 -0
  103. package/docs/README.md +4 -1
  104. package/docs/agent-framework-adapters.md +279 -0
  105. package/docs/ci-workflows.md +15 -8
  106. package/docs/commands-reference.md +22 -0
  107. package/docs/contracts/COMMAND_OWNERSHIP_MATRIX.md +5 -0
  108. package/docs/creating-workspaces-and-projects.md +18 -4
  109. package/docs/workspace-operations.md +12 -2
  110. package/package.json +7 -1
  111. package/scripts/enterprise-package-smoke.mjs +98 -0
  112. package/dist/analyze-IA33T6MY.js +0 -1
  113. package/dist/autopilot-release-T327V7QK.js +0 -1
  114. package/dist/capabilities-command-NFGX42CH.js +0 -1
  115. package/dist/chunk-46QH3ZVI.js +0 -105
  116. package/dist/chunk-5EVBOUYW.js +0 -3
  117. package/dist/chunk-773WUMFU.js +0 -681
  118. package/dist/chunk-D6BL7ARI.js +0 -2
  119. package/dist/chunk-DLLHUG2Q.js +0 -9
  120. package/dist/chunk-DTLLIA2C.js +0 -1
  121. package/dist/chunk-FYR4FD7K.js +0 -1
  122. package/dist/chunk-H5DRKXXC.js +0 -2
  123. package/dist/chunk-IUOMBLRR.js +0 -2
  124. package/dist/chunk-K3FXRBER.js +0 -4
  125. package/dist/chunk-LEEOZRWR.js +0 -7
  126. package/dist/chunk-NCZJUPG5.js +0 -97
  127. package/dist/chunk-ND5YAC4T.js +0 -1
  128. package/dist/chunk-SVGUAVMG.js +0 -1
  129. package/dist/chunk-TGDXD4CD.js +0 -1
  130. package/dist/chunk-VLKX5U4H.js +0 -13
  131. package/dist/chunk-YYELANJO.js +0 -7
  132. package/dist/goal-pack-NTHYLISY.js +0 -1
  133. package/dist/proof-carrying-change-WLUPMUO7.js +0 -1
  134. package/dist/verified-goal-6O2JZOOR.js +0 -1
  135. package/dist/workspace-knowledge-graph-snapshot-JEJMRQZL.js +0 -1
  136. package/dist/workspace-mcp-serve-2FGRXJG4.js +0 -3
  137. package/dist/workspace-model-2ODVOWDQ.js +0 -1
  138. package/dist/workspace-run-JCA5WPCR.js +0 -1
  139. package/dist/workspace-watch-3DBBB6IP.js +0 -1
  140. /package/dist/{chunk-K33JJVQZ.js → chunk-VN2MKTQO.js} +0 -0
@@ -0,0 +1,193 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://workspai.dev/contracts/workspace-intelligence/agent-framework-admission-candidate.v1.json",
4
+ "title": "Workspai Agent Framework Admission Candidate v1",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schemaVersion",
9
+ "protocolVersion",
10
+ "generatedAt",
11
+ "sourceCommit",
12
+ "cliVersion",
13
+ "reviewStatus",
14
+ "adapters",
15
+ "verdict",
16
+ "blockers"
17
+ ],
18
+ "properties": {
19
+ "schemaVersion": {
20
+ "const": "workspai.agent-framework-admission-candidate.v1"
21
+ },
22
+ "protocolVersion": {
23
+ "const": "workspai.agent-framework-adapter-protocol.v1"
24
+ },
25
+ "generatedAt": {
26
+ "type": "string",
27
+ "format": "date-time"
28
+ },
29
+ "sourceCommit": {
30
+ "type": "string",
31
+ "pattern": "^[a-f0-9]{40}(?:[a-f0-9]{24})?$"
32
+ },
33
+ "cliVersion": {
34
+ "type": "string",
35
+ "minLength": 1
36
+ },
37
+ "reviewStatus": {
38
+ "const": "pending"
39
+ },
40
+ "adapters": {
41
+ "type": "array",
42
+ "minItems": 1,
43
+ "items": {
44
+ "type": "object",
45
+ "additionalProperties": false,
46
+ "required": [
47
+ "id",
48
+ "version",
49
+ "manifestSha256",
50
+ "framework",
51
+ "lanes"
52
+ ],
53
+ "properties": {
54
+ "id": {
55
+ "type": "string",
56
+ "pattern": "^[a-z0-9](?:[a-z0-9.-]*[a-z0-9])?$"
57
+ },
58
+ "version": {
59
+ "type": "string",
60
+ "minLength": 1
61
+ },
62
+ "manifestSha256": {
63
+ "type": "string",
64
+ "pattern": "^[a-f0-9]{64}$"
65
+ },
66
+ "framework": {
67
+ "type": "object",
68
+ "additionalProperties": false,
69
+ "required": [
70
+ "id"
71
+ ],
72
+ "properties": {
73
+ "id": {
74
+ "type": "string",
75
+ "pattern": "^[a-z0-9](?:[a-z0-9.-]*[a-z0-9])?$"
76
+ }
77
+ }
78
+ },
79
+ "lanes": {
80
+ "type": "array",
81
+ "minItems": 1,
82
+ "items": {
83
+ "type": "object",
84
+ "additionalProperties": false,
85
+ "required": [
86
+ "platform",
87
+ "runtime",
88
+ "runtimeVersion",
89
+ "frameworkVersion",
90
+ "report",
91
+ "evidence"
92
+ ],
93
+ "properties": {
94
+ "platform": {
95
+ "enum": [
96
+ "linux",
97
+ "darwin",
98
+ "win32"
99
+ ]
100
+ },
101
+ "runtime": {
102
+ "type": "string",
103
+ "minLength": 1
104
+ },
105
+ "runtimeVersion": {
106
+ "type": "string",
107
+ "minLength": 1
108
+ },
109
+ "frameworkVersion": {
110
+ "type": "string",
111
+ "minLength": 1
112
+ },
113
+ "report": {
114
+ "type": "object",
115
+ "additionalProperties": false,
116
+ "required": [
117
+ "path",
118
+ "sha256"
119
+ ],
120
+ "properties": {
121
+ "path": {
122
+ "type": "string",
123
+ "minLength": 1,
124
+ "not": {
125
+ "anyOf": [
126
+ {
127
+ "pattern": "^/"
128
+ },
129
+ {
130
+ "pattern": "^[A-Za-z]:[\\/]"
131
+ },
132
+ {
133
+ "pattern": "(^|[\\/])\\.\\.([\\/]|$)"
134
+ }
135
+ ]
136
+ }
137
+ },
138
+ "sha256": {
139
+ "type": "string",
140
+ "pattern": "^[a-f0-9]{64}$"
141
+ }
142
+ }
143
+ },
144
+ "evidence": {
145
+ "type": "array",
146
+ "minItems": 18,
147
+ "items": {
148
+ "type": "object",
149
+ "additionalProperties": false,
150
+ "required": [
151
+ "path",
152
+ "sha256"
153
+ ],
154
+ "properties": {
155
+ "path": {
156
+ "type": "string",
157
+ "minLength": 1,
158
+ "not": {
159
+ "anyOf": [
160
+ {
161
+ "pattern": "^/"
162
+ },
163
+ {
164
+ "pattern": "^[A-Za-z]:[\\/]"
165
+ },
166
+ {
167
+ "pattern": "(^|[\\/])\\.\\.([\\/]|$)"
168
+ }
169
+ ]
170
+ }
171
+ },
172
+ "sha256": {
173
+ "type": "string",
174
+ "pattern": "^[a-f0-9]{64}$"
175
+ }
176
+ }
177
+ }
178
+ }
179
+ }
180
+ }
181
+ }
182
+ }
183
+ }
184
+ },
185
+ "verdict": {
186
+ "const": "admitted"
187
+ },
188
+ "blockers": {
189
+ "type": "array",
190
+ "maxItems": 0
191
+ }
192
+ }
193
+ }
@@ -0,0 +1,280 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://workspai.dev/contracts/workspace-intelligence/agent-framework-change-plan.v1.json",
4
+ "title": "Workspai Agent Framework Change Plan v1",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schemaVersion",
9
+ "status",
10
+ "adapterId",
11
+ "adapterVersion",
12
+ "frameworkVersion",
13
+ "mode",
14
+ "projectRoot",
15
+ "target",
16
+ "instanceName",
17
+ "files",
18
+ "changes",
19
+ "requiredEnvironment",
20
+ "permissions",
21
+ "blockers"
22
+ ],
23
+ "properties": {
24
+ "schemaVersion": {
25
+ "const": "workspai.agent-framework-change-plan.v1"
26
+ },
27
+ "status": {
28
+ "enum": [
29
+ "planned",
30
+ "blocked",
31
+ "no-op"
32
+ ]
33
+ },
34
+ "adapterId": {
35
+ "type": "string",
36
+ "pattern": "^[a-z0-9](?:[a-z0-9.-]*[a-z0-9])?$"
37
+ },
38
+ "adapterVersion": {
39
+ "type": "string",
40
+ "minLength": 1
41
+ },
42
+ "frameworkVersion": {
43
+ "type": "string",
44
+ "minLength": 1
45
+ },
46
+ "mode": {
47
+ "enum": [
48
+ "scaffold",
49
+ "attach"
50
+ ]
51
+ },
52
+ "projectRoot": {
53
+ "const": "."
54
+ },
55
+ "target": {
56
+ "type": "object",
57
+ "additionalProperties": false,
58
+ "required": [
59
+ "project",
60
+ "artifactPrefix"
61
+ ],
62
+ "properties": {
63
+ "project": {
64
+ "type": "string",
65
+ "minLength": 1
66
+ },
67
+ "artifactPrefix": {
68
+ "type": "string",
69
+ "minLength": 1,
70
+ "not": {
71
+ "anyOf": [
72
+ {
73
+ "pattern": "^/"
74
+ },
75
+ {
76
+ "pattern": "^[A-Za-z]:[\\/]"
77
+ },
78
+ {
79
+ "pattern": "(^|[\\/])\\.\\.([\\/]|$)"
80
+ }
81
+ ]
82
+ }
83
+ }
84
+ }
85
+ },
86
+ "instanceName": {
87
+ "type": "string",
88
+ "pattern": "^[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?$"
89
+ },
90
+ "files": {
91
+ "type": "array",
92
+ "items": {
93
+ "type": "object",
94
+ "additionalProperties": false,
95
+ "required": [
96
+ "path",
97
+ "sha256",
98
+ "overwrite"
99
+ ],
100
+ "properties": {
101
+ "path": {
102
+ "type": "string",
103
+ "minLength": 1,
104
+ "not": {
105
+ "anyOf": [
106
+ {
107
+ "pattern": "^/"
108
+ },
109
+ {
110
+ "pattern": "^[A-Za-z]:[\\/]"
111
+ },
112
+ {
113
+ "pattern": "(^|[\\/])\\.\\.([\\/]|$)"
114
+ }
115
+ ]
116
+ }
117
+ },
118
+ "sha256": {
119
+ "type": "string",
120
+ "pattern": "^[a-f0-9]{64}$"
121
+ },
122
+ "overwrite": {
123
+ "enum": [
124
+ "create-only",
125
+ "replace-if-owned"
126
+ ]
127
+ }
128
+ }
129
+ }
130
+ },
131
+ "changes": {
132
+ "type": "array",
133
+ "items": {
134
+ "type": "object",
135
+ "additionalProperties": false,
136
+ "required": [
137
+ "kind",
138
+ "path",
139
+ "summary"
140
+ ],
141
+ "properties": {
142
+ "kind": {
143
+ "enum": [
144
+ "create-file",
145
+ "replace-owned-file",
146
+ "dependency-recommendation"
147
+ ]
148
+ },
149
+ "path": {
150
+ "type": "string",
151
+ "minLength": 1,
152
+ "not": {
153
+ "anyOf": [
154
+ {
155
+ "pattern": "^/"
156
+ },
157
+ {
158
+ "pattern": "^[A-Za-z]:[\\/]"
159
+ },
160
+ {
161
+ "pattern": "(^|[\\/])\\.\\.([\\/]|$)"
162
+ }
163
+ ]
164
+ }
165
+ },
166
+ "summary": {
167
+ "type": "string",
168
+ "minLength": 1
169
+ }
170
+ }
171
+ }
172
+ },
173
+ "requiredEnvironment": {
174
+ "type": "array",
175
+ "items": {
176
+ "type": "string",
177
+ "minLength": 1
178
+ },
179
+ "minItems": 0,
180
+ "uniqueItems": true
181
+ },
182
+ "permissions": {
183
+ "type": "array",
184
+ "items": {
185
+ "enum": [
186
+ "network:model-provider",
187
+ "network:dependency-registry"
188
+ ]
189
+ },
190
+ "uniqueItems": true
191
+ },
192
+ "blockers": {
193
+ "type": "array",
194
+ "items": {
195
+ "type": "string",
196
+ "minLength": 1
197
+ },
198
+ "minItems": 0,
199
+ "uniqueItems": true
200
+ }
201
+ },
202
+ "allOf": [
203
+ {
204
+ "if": {
205
+ "properties": {
206
+ "status": {
207
+ "const": "blocked"
208
+ }
209
+ },
210
+ "required": [
211
+ "status"
212
+ ]
213
+ },
214
+ "then": {
215
+ "properties": {
216
+ "blockers": {
217
+ "type": "array",
218
+ "minItems": 1
219
+ }
220
+ }
221
+ }
222
+ },
223
+ {
224
+ "if": {
225
+ "properties": {
226
+ "status": {
227
+ "const": "planned"
228
+ }
229
+ },
230
+ "required": [
231
+ "status"
232
+ ]
233
+ },
234
+ "then": {
235
+ "properties": {
236
+ "changes": {
237
+ "type": "array",
238
+ "minItems": 1
239
+ },
240
+ "files": {
241
+ "type": "array",
242
+ "minItems": 1
243
+ },
244
+ "blockers": {
245
+ "type": "array",
246
+ "maxItems": 0
247
+ }
248
+ }
249
+ }
250
+ },
251
+ {
252
+ "if": {
253
+ "properties": {
254
+ "status": {
255
+ "const": "no-op"
256
+ }
257
+ },
258
+ "required": [
259
+ "status"
260
+ ]
261
+ },
262
+ "then": {
263
+ "properties": {
264
+ "changes": {
265
+ "type": "array",
266
+ "maxItems": 0
267
+ },
268
+ "files": {
269
+ "type": "array",
270
+ "maxItems": 0
271
+ },
272
+ "blockers": {
273
+ "type": "array",
274
+ "maxItems": 0
275
+ }
276
+ }
277
+ }
278
+ }
279
+ ]
280
+ }