openclaw-aegis 1.9.0 → 1.10.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.
package/dist/cli/index.js CHANGED
@@ -182,6 +182,14 @@ var aegisConfigSchema = import_zod.z.object({
182
182
  runbooks: import_zod.z.object({
183
183
  enabled: import_zod.z.boolean().default(false),
184
184
  basePath: import_zod.z.string().default("~/.openclaw/aegis/runbooks")
185
+ }).default({}),
186
+ noiseReduction: import_zod.z.object({
187
+ enabled: import_zod.z.boolean().default(true),
188
+ groupingWindowMs: import_zod.z.number().int().min(1e4).default(3e5),
189
+ dedupThreshold: import_zod.z.number().int().min(1).default(3),
190
+ escalationDelayMs: import_zod.z.number().int().min(6e4).default(9e5),
191
+ maxBufferSize: import_zod.z.number().int().min(5).default(20),
192
+ digestIntervalMs: import_zod.z.number().int().min(3e4).default(3e5)
185
193
  }).default({})
186
194
  }).default({}),
187
195
  api: import_zod.z.object({
@@ -2612,6 +2620,8 @@ var AegisApiServer = class {
2612
2620
  this.route("GET", "/rca/:incidentId", this.handleRcaByIncident.bind(this));
2613
2621
  this.route("GET", "/runbooks", this.handleRunbooks.bind(this));
2614
2622
  this.route("GET", "/runbooks/results", this.handleRunbookResults.bind(this));
2623
+ this.route("GET", "/alerts/noise", this.handleNoiseStats.bind(this));
2624
+ this.route("GET", "/alerts/groups", this.handleAlertGroups.bind(this));
2615
2625
  }
2616
2626
  route(method, path7, handler) {
2617
2627
  const paramNames = [];
@@ -3127,6 +3137,19 @@ var AegisApiServer = class {
3127
3137
  }
3128
3138
  };
3129
3139
  }
3140
+ handleNoiseStats() {
3141
+ if (!this.deps.noiseReducer) {
3142
+ return { status: 501, body: { error: "Noise reduction not available" } };
3143
+ }
3144
+ return { status: 200, body: this.deps.noiseReducer.getStats() };
3145
+ }
3146
+ handleAlertGroups() {
3147
+ if (!this.deps.noiseReducer) {
3148
+ return { status: 501, body: { error: "Noise reduction not available" } };
3149
+ }
3150
+ const groups = this.deps.noiseReducer.getActiveGroups();
3151
+ return { status: 200, body: { groups, count: groups.length } };
3152
+ }
3130
3153
  handleRunbooks() {
3131
3154
  if (!this.deps.runbookEngine) {
3132
3155
  return { status: 501, body: { error: "Runbook engine not available (enable with intelligence.runbooks.enabled = true)" } };