Skip to content

Commit d6bf95c

Browse files
author
Agoragentic
committed
fix(ci): replace format:date with pattern for updated_at — fixes ajv draft2020 validation
1 parent fe8fbef commit d6bf95c

1 file changed

Lines changed: 137 additions & 32 deletions

File tree

integrations.schema.json

Lines changed: 137 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,14 @@
44
"title": "Agoragentic Integrations Index",
55
"description": "Machine-readable index of all framework integrations, packages, tools, and discovery surfaces for the Agoragentic capability router.",
66
"type": "object",
7-
"required": ["version", "updated_at", "canonical_url", "packages", "tools", "integrations"],
7+
"required": [
8+
"version",
9+
"updated_at",
10+
"canonical_url",
11+
"packages",
12+
"tools",
13+
"integrations"
14+
],
815
"properties": {
916
"version": {
1017
"type": "string",
@@ -13,8 +20,8 @@
1320
},
1421
"updated_at": {
1522
"type": "string",
16-
"format": "date",
17-
"description": "ISO 8601 date of last update."
23+
"pattern": "^\\d{4}-\\d{2}-\\d{2}",
24+
"description": "ISO 8601 date or date-time of last update."
1825
},
1926
"canonical_url": {
2027
"type": "string",
@@ -44,10 +51,18 @@
4451
"additionalProperties": {
4552
"type": "object",
4653
"properties": {
47-
"required": { "type": "boolean" },
48-
"format": { "type": "string" },
49-
"how_to_get": { "type": "string" },
50-
"note": { "type": "string" }
54+
"required": {
55+
"type": "boolean"
56+
},
57+
"format": {
58+
"type": "string"
59+
},
60+
"how_to_get": {
61+
"type": "string"
62+
},
63+
"note": {
64+
"type": "string"
65+
}
5166
}
5267
}
5368
},
@@ -70,54 +85,144 @@
7085
"description": "Protocol specifications maintained in this repo.",
7186
"items": {
7287
"type": "object",
73-
"required": ["id", "name", "path"],
88+
"required": [
89+
"id",
90+
"name",
91+
"path"
92+
],
7493
"properties": {
75-
"id": { "type": "string" },
76-
"name": { "type": "string" },
77-
"version": { "type": "string" },
78-
"path": { "type": "string" }
94+
"id": {
95+
"type": "string"
96+
},
97+
"name": {
98+
"type": "string"
99+
},
100+
"version": {
101+
"type": "string"
102+
},
103+
"path": {
104+
"type": "string"
105+
}
79106
}
80107
}
81108
},
82109
"discovery": {
83110
"type": "object",
84111
"description": "Pointers to machine-facing discovery assets.",
85-
"additionalProperties": { "type": "string" }
112+
"additionalProperties": {
113+
"type": "string"
114+
}
86115
}
87116
},
88117
"$defs": {
89118
"package": {
90119
"type": "object",
91-
"required": ["name", "install", "registry"],
120+
"required": [
121+
"name",
122+
"install",
123+
"registry"
124+
],
92125
"properties": {
93-
"name": { "type": "string", "description": "Canonical package name." },
94-
"install": { "type": "string", "description": "One-line install command." },
95-
"registry": { "type": "string", "format": "uri", "description": "Package registry URL." },
96-
"min_python": { "type": "string", "description": "Minimum Python version." },
97-
"min_node": { "type": "string", "description": "Minimum Node.js version." }
126+
"name": {
127+
"type": "string",
128+
"description": "Canonical package name."
129+
},
130+
"install": {
131+
"type": "string",
132+
"description": "One-line install command."
133+
},
134+
"registry": {
135+
"type": "string",
136+
"format": "uri",
137+
"description": "Package registry URL."
138+
},
139+
"min_python": {
140+
"type": "string",
141+
"description": "Minimum Python version."
142+
},
143+
"min_node": {
144+
"type": "string",
145+
"description": "Minimum Node.js version."
146+
}
98147
}
99148
},
100149
"tool": {
101150
"type": "object",
102-
"required": ["id", "description", "cost"],
151+
"required": [
152+
"id",
153+
"description",
154+
"cost"
155+
],
103156
"properties": {
104-
"id": { "type": "string", "pattern": "^agoragentic_", "description": "Tool identifier. Must start with 'agoragentic_'." },
105-
"description": { "type": "string" },
106-
"cost": { "type": "string", "enum": ["free", "listing_price"], "description": "Whether this tool is free or costs the listing price." }
157+
"id": {
158+
"type": "string",
159+
"pattern": "^agoragentic_",
160+
"description": "Tool identifier. Must start with 'agoragentic_'."
161+
},
162+
"description": {
163+
"type": "string"
164+
},
165+
"cost": {
166+
"type": "string",
167+
"enum": [
168+
"free",
169+
"listing_price"
170+
],
171+
"description": "Whether this tool is free or costs the listing price."
172+
}
107173
}
108174
},
109175
"integration": {
110176
"type": "object",
111-
"required": ["id", "name", "language", "status", "path"],
177+
"required": [
178+
"id",
179+
"name",
180+
"language",
181+
"status",
182+
"path"
183+
],
112184
"properties": {
113-
"id": { "type": "string", "description": "URL-safe slug." },
114-
"name": { "type": "string", "description": "Human-readable framework name." },
115-
"language": { "type": "string", "enum": ["python", "javascript", "typescript", "json"], "description": "Primary language." },
116-
"status": { "type": "string", "enum": ["ready", "beta", "experimental", "deprecated"], "description": "Integration maturity." },
117-
"path": { "type": "string", "description": "Relative path to the main integration file." },
118-
"install": { "type": "string", "description": "Install command." },
119-
"docs": { "type": "string", "description": "Relative path to the integration README." }
185+
"id": {
186+
"type": "string",
187+
"description": "URL-safe slug."
188+
},
189+
"name": {
190+
"type": "string",
191+
"description": "Human-readable framework name."
192+
},
193+
"language": {
194+
"type": "string",
195+
"enum": [
196+
"python",
197+
"javascript",
198+
"typescript",
199+
"json"
200+
],
201+
"description": "Primary language."
202+
},
203+
"status": {
204+
"type": "string",
205+
"enum": [
206+
"ready",
207+
"beta",
208+
"experimental",
209+
"deprecated"
210+
],
211+
"description": "Integration maturity."
212+
},
213+
"path": {
214+
"type": "string",
215+
"description": "Relative path to the main integration file."
216+
},
217+
"install": {
218+
"type": "string",
219+
"description": "Install command."
220+
},
221+
"docs": {
222+
"type": "string",
223+
"description": "Relative path to the integration README."
224+
}
120225
}
121226
}
122227
}
123-
}
228+
}

0 commit comments

Comments
 (0)