agentic-qe 1.8.3 → 1.8.4
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.
- package/.claude/skills/cicd-pipeline-qe-orchestrator/README.md +2 -2
- package/.claude/skills/cicd-pipeline-qe-orchestrator/SKILL.md +6 -6
- package/CHANGELOG.md +220 -0
- package/README.md +36 -3
- package/config/constitution.schema.json +423 -0
- package/config/otel-collector.yaml +234 -0
- package/dist/cli/commands/init-claude-md-template.js +3 -3
- package/dist/constitution/index.d.ts +105 -0
- package/dist/constitution/index.d.ts.map +1 -0
- package/dist/constitution/index.js +207 -0
- package/dist/constitution/index.js.map +1 -0
- package/dist/constitution/loader.d.ts +141 -0
- package/dist/constitution/loader.d.ts.map +1 -0
- package/dist/constitution/loader.js +515 -0
- package/dist/constitution/loader.js.map +1 -0
- package/dist/constitution/schema.d.ts +409 -0
- package/dist/constitution/schema.d.ts.map +1 -0
- package/dist/constitution/schema.js +71 -0
- package/dist/constitution/schema.js.map +1 -0
- package/dist/core/memory/MemoryManagerFactory.d.ts +77 -0
- package/dist/core/memory/MemoryManagerFactory.d.ts.map +1 -0
- package/dist/core/memory/MemoryManagerFactory.js +270 -0
- package/dist/core/memory/MemoryManagerFactory.js.map +1 -0
- package/dist/core/memory/SwarmMemoryManager.d.ts +18 -0
- package/dist/core/memory/SwarmMemoryManager.d.ts.map +1 -1
- package/dist/core/memory/SwarmMemoryManager.js +96 -11
- package/dist/core/memory/SwarmMemoryManager.js.map +1 -1
- package/dist/core/memory/index.d.ts +1 -0
- package/dist/core/memory/index.d.ts.map +1 -1
- package/dist/core/memory/index.js +12 -1
- package/dist/core/memory/index.js.map +1 -1
- package/dist/mcp/handlers/memory/memory-backup.js +6 -6
- package/dist/mcp/handlers/memory/memory-backup.js.map +1 -1
- package/dist/mcp/handlers/phase2/Phase2Tools.d.ts.map +1 -1
- package/dist/mcp/handlers/phase2/Phase2Tools.js +4 -2
- package/dist/mcp/handlers/phase2/Phase2Tools.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +4 -38
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/services/AgentRegistry.d.ts.map +1 -1
- package/dist/mcp/services/AgentRegistry.js +4 -4
- package/dist/mcp/services/AgentRegistry.js.map +1 -1
- package/dist/persistence/event-store.d.ts +162 -0
- package/dist/persistence/event-store.d.ts.map +1 -0
- package/dist/persistence/event-store.js +315 -0
- package/dist/persistence/event-store.js.map +1 -0
- package/dist/persistence/index.d.ts +145 -0
- package/dist/persistence/index.d.ts.map +1 -0
- package/dist/persistence/index.js +227 -0
- package/dist/persistence/index.js.map +1 -0
- package/dist/persistence/metrics-aggregator.d.ts +187 -0
- package/dist/persistence/metrics-aggregator.d.ts.map +1 -0
- package/dist/persistence/metrics-aggregator.js +495 -0
- package/dist/persistence/metrics-aggregator.js.map +1 -0
- package/dist/persistence/reasoning-store.d.ts +178 -0
- package/dist/persistence/reasoning-store.d.ts.map +1 -0
- package/dist/persistence/reasoning-store.js +440 -0
- package/dist/persistence/reasoning-store.js.map +1 -0
- package/dist/persistence/schema.d.ts +181 -0
- package/dist/persistence/schema.d.ts.map +1 -0
- package/dist/persistence/schema.js +186 -0
- package/dist/persistence/schema.js.map +1 -0
- package/dist/telemetry/bootstrap.d.ts +67 -0
- package/dist/telemetry/bootstrap.d.ts.map +1 -0
- package/dist/telemetry/bootstrap.js +320 -0
- package/dist/telemetry/bootstrap.js.map +1 -0
- package/dist/telemetry/index.d.ts +16 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js +84 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/telemetry/metrics/agent-metrics.d.ts +109 -0
- package/dist/telemetry/metrics/agent-metrics.d.ts.map +1 -0
- package/dist/telemetry/metrics/agent-metrics.js +213 -0
- package/dist/telemetry/metrics/agent-metrics.js.map +1 -0
- package/dist/telemetry/metrics/index.d.ts +51 -0
- package/dist/telemetry/metrics/index.d.ts.map +1 -0
- package/dist/telemetry/metrics/index.js +100 -0
- package/dist/telemetry/metrics/index.js.map +1 -0
- package/dist/telemetry/metrics/quality-metrics.d.ts +171 -0
- package/dist/telemetry/metrics/quality-metrics.d.ts.map +1 -0
- package/dist/telemetry/metrics/quality-metrics.js +259 -0
- package/dist/telemetry/metrics/quality-metrics.js.map +1 -0
- package/dist/telemetry/metrics/system-metrics.d.ts +129 -0
- package/dist/telemetry/metrics/system-metrics.d.ts.map +1 -0
- package/dist/telemetry/metrics/system-metrics.js +380 -0
- package/dist/telemetry/metrics/system-metrics.js.map +1 -0
- package/dist/telemetry/types.d.ts +195 -0
- package/dist/telemetry/types.d.ts.map +1 -0
- package/dist/telemetry/types.js +90 -0
- package/dist/telemetry/types.js.map +1 -0
- package/package.json +18 -2
|
@@ -0,0 +1,423 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://agentic-qe.io/schemas/constitution.schema.json",
|
|
4
|
+
"title": "Constitution Schema",
|
|
5
|
+
"description": "Schema for Agentic QE Fleet constitution definitions that govern quality evaluation criteria",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["id", "name", "version", "description", "principles", "rules", "metrics", "thresholds", "metadata"],
|
|
8
|
+
"additionalProperties": false,
|
|
9
|
+
"properties": {
|
|
10
|
+
"id": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"description": "Unique identifier for the constitution",
|
|
13
|
+
"pattern": "^[a-z0-9-]+$",
|
|
14
|
+
"minLength": 1,
|
|
15
|
+
"maxLength": 100
|
|
16
|
+
},
|
|
17
|
+
"name": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"description": "Human-readable name",
|
|
20
|
+
"minLength": 1,
|
|
21
|
+
"maxLength": 200
|
|
22
|
+
},
|
|
23
|
+
"version": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"description": "Semantic version string",
|
|
26
|
+
"pattern": "^\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9]+)?$"
|
|
27
|
+
},
|
|
28
|
+
"description": {
|
|
29
|
+
"type": "string",
|
|
30
|
+
"description": "Description of the constitution's purpose",
|
|
31
|
+
"minLength": 1,
|
|
32
|
+
"maxLength": 2000
|
|
33
|
+
},
|
|
34
|
+
"principles": {
|
|
35
|
+
"type": "array",
|
|
36
|
+
"description": "Core quality principles",
|
|
37
|
+
"items": { "$ref": "#/definitions/Principle" },
|
|
38
|
+
"minItems": 1
|
|
39
|
+
},
|
|
40
|
+
"rules": {
|
|
41
|
+
"type": "array",
|
|
42
|
+
"description": "Evaluation rules",
|
|
43
|
+
"items": { "$ref": "#/definitions/Rule" }
|
|
44
|
+
},
|
|
45
|
+
"metrics": {
|
|
46
|
+
"type": "array",
|
|
47
|
+
"description": "Metric definitions",
|
|
48
|
+
"items": { "$ref": "#/definitions/MetricDefinition" }
|
|
49
|
+
},
|
|
50
|
+
"thresholds": {
|
|
51
|
+
"type": "array",
|
|
52
|
+
"description": "Quality thresholds",
|
|
53
|
+
"items": { "$ref": "#/definitions/Threshold" }
|
|
54
|
+
},
|
|
55
|
+
"metadata": {
|
|
56
|
+
"$ref": "#/definitions/ConstitutionMetadata"
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"definitions": {
|
|
60
|
+
"PriorityLevel": {
|
|
61
|
+
"type": "string",
|
|
62
|
+
"enum": ["critical", "high", "medium", "low"],
|
|
63
|
+
"description": "Priority level for principles and rules"
|
|
64
|
+
},
|
|
65
|
+
"SeverityLevel": {
|
|
66
|
+
"type": "string",
|
|
67
|
+
"enum": ["error", "warning", "info"],
|
|
68
|
+
"description": "Severity level for rule violations"
|
|
69
|
+
},
|
|
70
|
+
"AggregationType": {
|
|
71
|
+
"type": "string",
|
|
72
|
+
"enum": ["sum", "avg", "min", "max", "count", "percentile"],
|
|
73
|
+
"description": "Aggregation method for metrics"
|
|
74
|
+
},
|
|
75
|
+
"ConditionOperator": {
|
|
76
|
+
"type": "string",
|
|
77
|
+
"enum": [
|
|
78
|
+
"equals", "not_equals", "greater_than", "less_than",
|
|
79
|
+
"greater_than_or_equal", "less_than_or_equal",
|
|
80
|
+
"contains", "not_contains", "matches",
|
|
81
|
+
"in", "not_in", "exists", "not_exists"
|
|
82
|
+
],
|
|
83
|
+
"description": "Condition operator for rule evaluation"
|
|
84
|
+
},
|
|
85
|
+
"ActionType": {
|
|
86
|
+
"type": "string",
|
|
87
|
+
"enum": ["fail", "warn", "notify", "log", "block", "require_review", "auto_fix", "escalate"],
|
|
88
|
+
"description": "Action type when rules are triggered"
|
|
89
|
+
},
|
|
90
|
+
"ThresholdMode": {
|
|
91
|
+
"type": "string",
|
|
92
|
+
"enum": ["absolute", "percentage", "relative"],
|
|
93
|
+
"description": "Threshold comparison mode"
|
|
94
|
+
},
|
|
95
|
+
"ConstitutionStatus": {
|
|
96
|
+
"type": "string",
|
|
97
|
+
"enum": ["active", "deprecated", "draft", "archived"],
|
|
98
|
+
"description": "Constitution status"
|
|
99
|
+
},
|
|
100
|
+
"Principle": {
|
|
101
|
+
"type": "object",
|
|
102
|
+
"required": ["id", "name", "description", "priority", "category"],
|
|
103
|
+
"additionalProperties": false,
|
|
104
|
+
"properties": {
|
|
105
|
+
"id": {
|
|
106
|
+
"type": "string",
|
|
107
|
+
"description": "Unique identifier for the principle",
|
|
108
|
+
"pattern": "^[a-z0-9-]+$"
|
|
109
|
+
},
|
|
110
|
+
"name": {
|
|
111
|
+
"type": "string",
|
|
112
|
+
"description": "Human-readable name"
|
|
113
|
+
},
|
|
114
|
+
"description": {
|
|
115
|
+
"type": "string",
|
|
116
|
+
"description": "Detailed description of the principle"
|
|
117
|
+
},
|
|
118
|
+
"priority": { "$ref": "#/definitions/PriorityLevel" },
|
|
119
|
+
"category": {
|
|
120
|
+
"type": "string",
|
|
121
|
+
"description": "Category grouping for the principle"
|
|
122
|
+
},
|
|
123
|
+
"tags": {
|
|
124
|
+
"type": "array",
|
|
125
|
+
"items": { "type": "string" },
|
|
126
|
+
"description": "Optional tags for filtering and search"
|
|
127
|
+
},
|
|
128
|
+
"mandatory": {
|
|
129
|
+
"type": "boolean",
|
|
130
|
+
"description": "Whether this principle is mandatory",
|
|
131
|
+
"default": false
|
|
132
|
+
},
|
|
133
|
+
"relatedPrinciples": {
|
|
134
|
+
"type": "array",
|
|
135
|
+
"items": { "type": "string" },
|
|
136
|
+
"description": "Related principle IDs"
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
"RuleCondition": {
|
|
141
|
+
"type": "object",
|
|
142
|
+
"required": ["field", "operator", "value"],
|
|
143
|
+
"additionalProperties": false,
|
|
144
|
+
"properties": {
|
|
145
|
+
"field": {
|
|
146
|
+
"type": "string",
|
|
147
|
+
"description": "The field or metric to evaluate"
|
|
148
|
+
},
|
|
149
|
+
"operator": { "$ref": "#/definitions/ConditionOperator" },
|
|
150
|
+
"value": {
|
|
151
|
+
"oneOf": [
|
|
152
|
+
{ "type": "string" },
|
|
153
|
+
{ "type": "number" },
|
|
154
|
+
{ "type": "boolean" },
|
|
155
|
+
{ "type": "array", "items": { "type": "string" } },
|
|
156
|
+
{ "type": "array", "items": { "type": "number" } }
|
|
157
|
+
],
|
|
158
|
+
"description": "Value to compare against"
|
|
159
|
+
},
|
|
160
|
+
"unit": {
|
|
161
|
+
"type": "string",
|
|
162
|
+
"description": "Optional unit for the value"
|
|
163
|
+
},
|
|
164
|
+
"and": {
|
|
165
|
+
"type": "array",
|
|
166
|
+
"items": { "$ref": "#/definitions/RuleCondition" },
|
|
167
|
+
"description": "Nested conditions for complex logic"
|
|
168
|
+
},
|
|
169
|
+
"or": {
|
|
170
|
+
"type": "array",
|
|
171
|
+
"items": { "$ref": "#/definitions/RuleCondition" },
|
|
172
|
+
"description": "Alternative conditions"
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
"RuleAction": {
|
|
177
|
+
"type": "object",
|
|
178
|
+
"required": ["type", "message"],
|
|
179
|
+
"additionalProperties": false,
|
|
180
|
+
"properties": {
|
|
181
|
+
"type": { "$ref": "#/definitions/ActionType" },
|
|
182
|
+
"message": {
|
|
183
|
+
"type": "string",
|
|
184
|
+
"description": "Message to display or log"
|
|
185
|
+
},
|
|
186
|
+
"params": {
|
|
187
|
+
"type": "object",
|
|
188
|
+
"description": "Additional parameters for the action"
|
|
189
|
+
},
|
|
190
|
+
"stopProcessing": {
|
|
191
|
+
"type": "boolean",
|
|
192
|
+
"description": "Whether to halt further processing",
|
|
193
|
+
"default": false
|
|
194
|
+
},
|
|
195
|
+
"notify": {
|
|
196
|
+
"type": "array",
|
|
197
|
+
"items": { "type": "string" },
|
|
198
|
+
"description": "Notification targets"
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
},
|
|
202
|
+
"Rule": {
|
|
203
|
+
"type": "object",
|
|
204
|
+
"required": ["id", "principleId", "condition", "action", "severity"],
|
|
205
|
+
"additionalProperties": false,
|
|
206
|
+
"properties": {
|
|
207
|
+
"id": {
|
|
208
|
+
"type": "string",
|
|
209
|
+
"description": "Unique identifier for the rule",
|
|
210
|
+
"pattern": "^[a-z0-9-]+$"
|
|
211
|
+
},
|
|
212
|
+
"name": {
|
|
213
|
+
"type": "string",
|
|
214
|
+
"description": "Human-readable name"
|
|
215
|
+
},
|
|
216
|
+
"principleId": {
|
|
217
|
+
"type": "string",
|
|
218
|
+
"description": "Reference to the principle this rule enforces"
|
|
219
|
+
},
|
|
220
|
+
"condition": { "$ref": "#/definitions/RuleCondition" },
|
|
221
|
+
"action": { "$ref": "#/definitions/RuleAction" },
|
|
222
|
+
"severity": { "$ref": "#/definitions/SeverityLevel" },
|
|
223
|
+
"enabled": {
|
|
224
|
+
"type": "boolean",
|
|
225
|
+
"description": "Whether this rule is enabled",
|
|
226
|
+
"default": true
|
|
227
|
+
},
|
|
228
|
+
"description": {
|
|
229
|
+
"type": "string",
|
|
230
|
+
"description": "Description of what this rule checks"
|
|
231
|
+
},
|
|
232
|
+
"remediation": {
|
|
233
|
+
"type": "string",
|
|
234
|
+
"description": "Remediation guidance when rule is violated"
|
|
235
|
+
},
|
|
236
|
+
"examples": {
|
|
237
|
+
"type": "array",
|
|
238
|
+
"items": { "type": "string" },
|
|
239
|
+
"description": "Example of compliant code/configuration"
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
},
|
|
243
|
+
"MetricDefinition": {
|
|
244
|
+
"type": "object",
|
|
245
|
+
"required": ["id", "name", "unit", "aggregation"],
|
|
246
|
+
"additionalProperties": false,
|
|
247
|
+
"properties": {
|
|
248
|
+
"id": {
|
|
249
|
+
"type": "string",
|
|
250
|
+
"description": "Unique identifier for the metric",
|
|
251
|
+
"pattern": "^[a-z0-9-]+$"
|
|
252
|
+
},
|
|
253
|
+
"name": {
|
|
254
|
+
"type": "string",
|
|
255
|
+
"description": "Human-readable name"
|
|
256
|
+
},
|
|
257
|
+
"description": {
|
|
258
|
+
"type": "string",
|
|
259
|
+
"description": "Description of what this metric measures"
|
|
260
|
+
},
|
|
261
|
+
"unit": {
|
|
262
|
+
"type": "string",
|
|
263
|
+
"description": "Unit of measurement"
|
|
264
|
+
},
|
|
265
|
+
"aggregation": { "$ref": "#/definitions/AggregationType" },
|
|
266
|
+
"targetValue": {
|
|
267
|
+
"type": "number",
|
|
268
|
+
"description": "Target value to achieve"
|
|
269
|
+
},
|
|
270
|
+
"warningThreshold": {
|
|
271
|
+
"type": "number",
|
|
272
|
+
"description": "Value that triggers a warning"
|
|
273
|
+
},
|
|
274
|
+
"criticalThreshold": {
|
|
275
|
+
"type": "number",
|
|
276
|
+
"description": "Value that triggers a critical alert"
|
|
277
|
+
},
|
|
278
|
+
"dataType": {
|
|
279
|
+
"type": "string",
|
|
280
|
+
"enum": ["number", "percentage", "duration", "count", "ratio"],
|
|
281
|
+
"description": "Data type of the metric value"
|
|
282
|
+
},
|
|
283
|
+
"higherIsBetter": {
|
|
284
|
+
"type": "boolean",
|
|
285
|
+
"description": "Whether higher values are better",
|
|
286
|
+
"default": true
|
|
287
|
+
},
|
|
288
|
+
"formula": {
|
|
289
|
+
"type": "string",
|
|
290
|
+
"description": "Formula for computed metrics"
|
|
291
|
+
},
|
|
292
|
+
"dependencies": {
|
|
293
|
+
"type": "array",
|
|
294
|
+
"items": { "type": "string" },
|
|
295
|
+
"description": "Dependencies on other metrics"
|
|
296
|
+
},
|
|
297
|
+
"percentile": {
|
|
298
|
+
"type": "number",
|
|
299
|
+
"description": "Percentile for percentile-based metrics",
|
|
300
|
+
"minimum": 0,
|
|
301
|
+
"maximum": 100
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
},
|
|
305
|
+
"Threshold": {
|
|
306
|
+
"type": "object",
|
|
307
|
+
"required": ["id", "metricId", "mode", "warning", "critical"],
|
|
308
|
+
"additionalProperties": false,
|
|
309
|
+
"properties": {
|
|
310
|
+
"id": {
|
|
311
|
+
"type": "string",
|
|
312
|
+
"description": "Unique identifier for the threshold",
|
|
313
|
+
"pattern": "^[a-z0-9-]+$"
|
|
314
|
+
},
|
|
315
|
+
"metricId": {
|
|
316
|
+
"type": "string",
|
|
317
|
+
"description": "Reference to the metric this threshold applies to"
|
|
318
|
+
},
|
|
319
|
+
"name": {
|
|
320
|
+
"type": "string",
|
|
321
|
+
"description": "Human-readable name"
|
|
322
|
+
},
|
|
323
|
+
"mode": { "$ref": "#/definitions/ThresholdMode" },
|
|
324
|
+
"warning": {
|
|
325
|
+
"type": "number",
|
|
326
|
+
"description": "Warning level value"
|
|
327
|
+
},
|
|
328
|
+
"critical": {
|
|
329
|
+
"type": "number",
|
|
330
|
+
"description": "Critical level value"
|
|
331
|
+
},
|
|
332
|
+
"target": {
|
|
333
|
+
"type": "number",
|
|
334
|
+
"description": "Target value to aim for"
|
|
335
|
+
},
|
|
336
|
+
"blocking": {
|
|
337
|
+
"type": "boolean",
|
|
338
|
+
"description": "Whether to block on threshold violation",
|
|
339
|
+
"default": false
|
|
340
|
+
},
|
|
341
|
+
"period": {
|
|
342
|
+
"type": "string",
|
|
343
|
+
"description": "Time period for threshold evaluation"
|
|
344
|
+
},
|
|
345
|
+
"environments": {
|
|
346
|
+
"type": "array",
|
|
347
|
+
"items": { "type": "string" },
|
|
348
|
+
"description": "Applicable environments"
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
},
|
|
352
|
+
"ChangelogEntry": {
|
|
353
|
+
"type": "object",
|
|
354
|
+
"required": ["version", "date", "description"],
|
|
355
|
+
"additionalProperties": false,
|
|
356
|
+
"properties": {
|
|
357
|
+
"version": {
|
|
358
|
+
"type": "string",
|
|
359
|
+
"description": "Version number"
|
|
360
|
+
},
|
|
361
|
+
"date": {
|
|
362
|
+
"type": "string",
|
|
363
|
+
"format": "date-time",
|
|
364
|
+
"description": "Date of change"
|
|
365
|
+
},
|
|
366
|
+
"description": {
|
|
367
|
+
"type": "string",
|
|
368
|
+
"description": "Description of changes"
|
|
369
|
+
},
|
|
370
|
+
"author": {
|
|
371
|
+
"type": "string",
|
|
372
|
+
"description": "Who made the change"
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
},
|
|
376
|
+
"ConstitutionMetadata": {
|
|
377
|
+
"type": "object",
|
|
378
|
+
"required": ["createdAt", "updatedAt", "author", "applicableTo", "status"],
|
|
379
|
+
"additionalProperties": false,
|
|
380
|
+
"properties": {
|
|
381
|
+
"createdAt": {
|
|
382
|
+
"type": "string",
|
|
383
|
+
"format": "date-time",
|
|
384
|
+
"description": "When the constitution was created"
|
|
385
|
+
},
|
|
386
|
+
"updatedAt": {
|
|
387
|
+
"type": "string",
|
|
388
|
+
"format": "date-time",
|
|
389
|
+
"description": "When the constitution was last updated"
|
|
390
|
+
},
|
|
391
|
+
"author": {
|
|
392
|
+
"type": "string",
|
|
393
|
+
"description": "Who created or maintains the constitution"
|
|
394
|
+
},
|
|
395
|
+
"applicableTo": {
|
|
396
|
+
"type": "array",
|
|
397
|
+
"items": { "type": "string" },
|
|
398
|
+
"description": "Applicable agent types",
|
|
399
|
+
"minItems": 1
|
|
400
|
+
},
|
|
401
|
+
"inheritsFrom": {
|
|
402
|
+
"type": "string",
|
|
403
|
+
"description": "Parent constitution to inherit from"
|
|
404
|
+
},
|
|
405
|
+
"status": { "$ref": "#/definitions/ConstitutionStatus" },
|
|
406
|
+
"expiresAt": {
|
|
407
|
+
"type": "string",
|
|
408
|
+
"format": "date-time",
|
|
409
|
+
"description": "Optional expiration date"
|
|
410
|
+
},
|
|
411
|
+
"changelog": {
|
|
412
|
+
"type": "array",
|
|
413
|
+
"items": { "$ref": "#/definitions/ChangelogEntry" },
|
|
414
|
+
"description": "Changelog entries"
|
|
415
|
+
},
|
|
416
|
+
"customProperties": {
|
|
417
|
+
"type": "object",
|
|
418
|
+
"description": "Custom properties"
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
}
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
# OpenTelemetry Collector Configuration for Agentic QE Fleet
|
|
2
|
+
#
|
|
3
|
+
# This configuration sets up the OTEL Collector for local development
|
|
4
|
+
# and production deployment scenarios.
|
|
5
|
+
|
|
6
|
+
receivers:
|
|
7
|
+
# OTLP receiver for gRPC protocol
|
|
8
|
+
otlp:
|
|
9
|
+
protocols:
|
|
10
|
+
grpc:
|
|
11
|
+
endpoint: 0.0.0.0:4317
|
|
12
|
+
max_recv_msg_size_mib: 4
|
|
13
|
+
http:
|
|
14
|
+
endpoint: 0.0.0.0:4318
|
|
15
|
+
cors:
|
|
16
|
+
allowed_origins:
|
|
17
|
+
- "http://localhost:*"
|
|
18
|
+
- "https://localhost:*"
|
|
19
|
+
|
|
20
|
+
# Host metrics receiver for system-level metrics
|
|
21
|
+
hostmetrics:
|
|
22
|
+
collection_interval: 30s
|
|
23
|
+
scrapers:
|
|
24
|
+
cpu:
|
|
25
|
+
metrics:
|
|
26
|
+
system.cpu.utilization:
|
|
27
|
+
enabled: true
|
|
28
|
+
memory:
|
|
29
|
+
metrics:
|
|
30
|
+
system.memory.utilization:
|
|
31
|
+
enabled: true
|
|
32
|
+
disk:
|
|
33
|
+
filesystem:
|
|
34
|
+
network:
|
|
35
|
+
process:
|
|
36
|
+
include:
|
|
37
|
+
names:
|
|
38
|
+
- node
|
|
39
|
+
match_type: regexp
|
|
40
|
+
|
|
41
|
+
# Prometheus receiver for scraping metrics endpoints
|
|
42
|
+
prometheus:
|
|
43
|
+
config:
|
|
44
|
+
scrape_configs:
|
|
45
|
+
- job_name: 'agentic-qe-fleet'
|
|
46
|
+
scrape_interval: 30s
|
|
47
|
+
static_configs:
|
|
48
|
+
- targets: ['localhost:9464']
|
|
49
|
+
|
|
50
|
+
processors:
|
|
51
|
+
# Batch processor for efficient export
|
|
52
|
+
batch:
|
|
53
|
+
send_batch_size: 1000
|
|
54
|
+
send_batch_max_size: 1500
|
|
55
|
+
timeout: 10s
|
|
56
|
+
|
|
57
|
+
# Memory limiter to prevent OOM
|
|
58
|
+
memory_limiter:
|
|
59
|
+
check_interval: 5s
|
|
60
|
+
limit_mib: 512
|
|
61
|
+
spike_limit_mib: 128
|
|
62
|
+
|
|
63
|
+
# Resource processor to add common attributes
|
|
64
|
+
resource:
|
|
65
|
+
attributes:
|
|
66
|
+
- key: deployment.environment
|
|
67
|
+
value: ${DEPLOYMENT_ENVIRONMENT:-development}
|
|
68
|
+
action: upsert
|
|
69
|
+
- key: service.namespace
|
|
70
|
+
value: agentic-qe
|
|
71
|
+
action: upsert
|
|
72
|
+
|
|
73
|
+
# Attributes processor for span enrichment
|
|
74
|
+
attributes:
|
|
75
|
+
actions:
|
|
76
|
+
- key: collector.version
|
|
77
|
+
value: "1.0.0"
|
|
78
|
+
action: insert
|
|
79
|
+
|
|
80
|
+
# Filter processor to drop noisy telemetry
|
|
81
|
+
filter:
|
|
82
|
+
error_mode: ignore
|
|
83
|
+
traces:
|
|
84
|
+
span:
|
|
85
|
+
# Drop health check spans
|
|
86
|
+
- 'attributes["http.route"] == "/health"'
|
|
87
|
+
- 'attributes["http.route"] == "/ready"'
|
|
88
|
+
|
|
89
|
+
# Probabilistic sampler for high-volume scenarios
|
|
90
|
+
probabilistic_sampler:
|
|
91
|
+
hash_seed: 22
|
|
92
|
+
sampling_percentage: 100 # Adjust for production
|
|
93
|
+
|
|
94
|
+
exporters:
|
|
95
|
+
# Debug exporter for local development
|
|
96
|
+
debug:
|
|
97
|
+
verbosity: detailed
|
|
98
|
+
sampling_initial: 5
|
|
99
|
+
sampling_thereafter: 200
|
|
100
|
+
|
|
101
|
+
# File exporter for local persistence
|
|
102
|
+
file:
|
|
103
|
+
path: /tmp/otel-collector/traces.json
|
|
104
|
+
rotation:
|
|
105
|
+
max_megabytes: 100
|
|
106
|
+
max_days: 7
|
|
107
|
+
max_backups: 3
|
|
108
|
+
|
|
109
|
+
# File exporter for metrics
|
|
110
|
+
file/metrics:
|
|
111
|
+
path: /tmp/otel-collector/metrics.json
|
|
112
|
+
rotation:
|
|
113
|
+
max_megabytes: 100
|
|
114
|
+
max_days: 7
|
|
115
|
+
max_backups: 3
|
|
116
|
+
|
|
117
|
+
# Prometheus exporter for metrics scraping
|
|
118
|
+
prometheus:
|
|
119
|
+
endpoint: 0.0.0.0:8889
|
|
120
|
+
namespace: aqe
|
|
121
|
+
const_labels:
|
|
122
|
+
service: agentic-qe-fleet
|
|
123
|
+
resource_to_telemetry_conversion:
|
|
124
|
+
enabled: true
|
|
125
|
+
|
|
126
|
+
# OTLP exporter for forwarding to backend (e.g., Jaeger, Tempo, etc.)
|
|
127
|
+
otlp:
|
|
128
|
+
endpoint: ${OTLP_BACKEND_ENDPOINT:-localhost:4317}
|
|
129
|
+
tls:
|
|
130
|
+
insecure: ${OTLP_INSECURE:-true}
|
|
131
|
+
headers:
|
|
132
|
+
Authorization: ${OTLP_AUTH_HEADER:-}
|
|
133
|
+
retry_on_failure:
|
|
134
|
+
enabled: true
|
|
135
|
+
initial_interval: 5s
|
|
136
|
+
max_interval: 30s
|
|
137
|
+
max_elapsed_time: 300s
|
|
138
|
+
|
|
139
|
+
# OTLP HTTP exporter as alternative
|
|
140
|
+
otlphttp:
|
|
141
|
+
endpoint: ${OTLP_HTTP_ENDPOINT:-http://localhost:4318}
|
|
142
|
+
tls:
|
|
143
|
+
insecure: ${OTLP_INSECURE:-true}
|
|
144
|
+
|
|
145
|
+
# Logging exporter for debugging
|
|
146
|
+
logging:
|
|
147
|
+
verbosity: detailed
|
|
148
|
+
sampling_initial: 5
|
|
149
|
+
sampling_thereafter: 100
|
|
150
|
+
|
|
151
|
+
extensions:
|
|
152
|
+
# Health check extension
|
|
153
|
+
health_check:
|
|
154
|
+
endpoint: 0.0.0.0:13133
|
|
155
|
+
path: /health
|
|
156
|
+
check_collector_pipeline:
|
|
157
|
+
enabled: true
|
|
158
|
+
interval: 5m
|
|
159
|
+
exporter_failure_threshold: 5
|
|
160
|
+
|
|
161
|
+
# Performance profiler
|
|
162
|
+
pprof:
|
|
163
|
+
endpoint: 0.0.0.0:1777
|
|
164
|
+
|
|
165
|
+
# zPages for debugging
|
|
166
|
+
zpages:
|
|
167
|
+
endpoint: 0.0.0.0:55679
|
|
168
|
+
|
|
169
|
+
# Memory ballast for performance
|
|
170
|
+
memory_ballast:
|
|
171
|
+
size_mib: 64
|
|
172
|
+
|
|
173
|
+
service:
|
|
174
|
+
extensions:
|
|
175
|
+
- health_check
|
|
176
|
+
- pprof
|
|
177
|
+
- zpages
|
|
178
|
+
- memory_ballast
|
|
179
|
+
|
|
180
|
+
pipelines:
|
|
181
|
+
# Traces pipeline
|
|
182
|
+
traces:
|
|
183
|
+
receivers:
|
|
184
|
+
- otlp
|
|
185
|
+
processors:
|
|
186
|
+
- memory_limiter
|
|
187
|
+
- batch
|
|
188
|
+
- resource
|
|
189
|
+
- attributes
|
|
190
|
+
- filter
|
|
191
|
+
exporters:
|
|
192
|
+
- debug
|
|
193
|
+
- file
|
|
194
|
+
# Uncomment for production backends:
|
|
195
|
+
# - otlp
|
|
196
|
+
|
|
197
|
+
# Metrics pipeline
|
|
198
|
+
metrics:
|
|
199
|
+
receivers:
|
|
200
|
+
- otlp
|
|
201
|
+
- hostmetrics
|
|
202
|
+
- prometheus
|
|
203
|
+
processors:
|
|
204
|
+
- memory_limiter
|
|
205
|
+
- batch
|
|
206
|
+
- resource
|
|
207
|
+
exporters:
|
|
208
|
+
- debug
|
|
209
|
+
- prometheus
|
|
210
|
+
- file/metrics
|
|
211
|
+
# Uncomment for production backends:
|
|
212
|
+
# - otlp
|
|
213
|
+
|
|
214
|
+
# Logs pipeline
|
|
215
|
+
logs:
|
|
216
|
+
receivers:
|
|
217
|
+
- otlp
|
|
218
|
+
processors:
|
|
219
|
+
- memory_limiter
|
|
220
|
+
- batch
|
|
221
|
+
- resource
|
|
222
|
+
exporters:
|
|
223
|
+
- debug
|
|
224
|
+
# Uncomment for production backends:
|
|
225
|
+
# - otlp
|
|
226
|
+
|
|
227
|
+
telemetry:
|
|
228
|
+
logs:
|
|
229
|
+
level: info
|
|
230
|
+
development: true
|
|
231
|
+
encoding: console
|
|
232
|
+
metrics:
|
|
233
|
+
level: detailed
|
|
234
|
+
address: 0.0.0.0:8888
|
|
@@ -17,9 +17,9 @@ function generateCondensedClaudeMd(config, packageVersion) {
|
|
|
17
17
|
|
|
18
18
|
### 📚 Complete Documentation
|
|
19
19
|
|
|
20
|
-
- **[Agent Reference](https://github.com/
|
|
21
|
-
- **[Skills Reference](https://github.com/
|
|
22
|
-
- **[Usage Guide](https://github.com/
|
|
20
|
+
- **[Agent Reference](https://github.com/proffesor-for-testing/agentic-qe/blob/main/docs/reference/agents.md)** - All 18 QE agents with capabilities and usage
|
|
21
|
+
- **[Skills Reference](https://github.com/proffesor-for-testing/agentic-qe/blob/main/docs/reference/skills.md)** - All 37 QE skills organized by category
|
|
22
|
+
- **[Usage Guide](https://github.com/proffesor-for-testing/agentic-qe/blob/main/docs/reference/usage.md)** - Complete usage examples and workflows
|
|
23
23
|
|
|
24
24
|
### 🎯 Quick Start
|
|
25
25
|
|