@rubytech/create-realagent 1.0.618 → 1.0.619
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/package.json +1 -1
- package/payload/platform/plugins/admin/mcp/dist/lib/review-tools.d.ts.map +1 -1
- package/payload/platform/plugins/admin/mcp/dist/lib/review-tools.js +55 -6
- package/payload/platform/plugins/admin/mcp/dist/lib/review-tools.js.map +1 -1
- package/payload/server/server.js +117 -2
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review-tools.d.ts","sourceRoot":"","sources":["../../src/lib/review-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAczE;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;
|
|
1
|
+
{"version":3,"file":"review-tools.d.ts","sourceRoot":"","sources":["../../src/lib/review-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAczE;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAmFD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,kBAAkB,GAAG,IAAI,CA0nBpF"}
|
|
@@ -93,6 +93,8 @@ export function registerReviewTools(server, ctx) {
|
|
|
93
93
|
suggestedAction: r.suggestedAction,
|
|
94
94
|
watchPath: r.watchPath ?? null,
|
|
95
95
|
staleHours: r.staleHours ?? null,
|
|
96
|
+
followupPattern: r.followupPattern ?? null,
|
|
97
|
+
followupWindowMs: r.followupWindowMs ?? null,
|
|
96
98
|
suppressedUntil: suppressed,
|
|
97
99
|
};
|
|
98
100
|
});
|
|
@@ -214,18 +216,34 @@ export function registerReviewTools(server, ctx) {
|
|
|
214
216
|
// -------------------------------------------------------------------------
|
|
215
217
|
// review-rules-add
|
|
216
218
|
// -------------------------------------------------------------------------
|
|
217
|
-
server.tool("review-rules-add",
|
|
219
|
+
server.tool("review-rules-add", [
|
|
220
|
+
"Add a new declarative log review rule. The agent is responsible for translating a natural-language request from the user into the structured fields below.",
|
|
221
|
+
"Seven rule types are supported:",
|
|
222
|
+
"- reconnect-loop / repeated-error: N matches within thresholdWindowMinutes",
|
|
223
|
+
"- silent-catch / rate-limit: fires on every match (thresholdCount: 0)",
|
|
224
|
+
"- file-write-storm / stale-log: use watchPath (relative to configDir); stale-log requires staleHours",
|
|
225
|
+
"- absent-followup: fires when 'pattern' is observed but 'followupPattern' is NOT observed within 'followupWindowMs'. Requires non-empty pattern, followupPattern (regex), and followupWindowMs in (0, 600000]. thresholdCount/thresholdWindowMinutes are ignored for this type — set both to 0.",
|
|
226
|
+
"",
|
|
227
|
+
"Worked example for absent-followup: detect a [spawn] line that lacks the expected stderr-tee marker within 10s.",
|
|
228
|
+
' id: "subproc-tee-silent-spawn"',
|
|
229
|
+
' type: "absent-followup", logSource: "system", scope: "session"',
|
|
230
|
+
' pattern: "\\\\[spawn\\\\] pid=\\\\d+"',
|
|
231
|
+
' followupPattern: "\\\\[subproc-stderr-tee-attached\\\\]|\\\\[subproc-debug-unavailable\\\\]"',
|
|
232
|
+
" followupWindowMs: 10000, thresholdCount: 0, thresholdWindowMinutes: 0",
|
|
233
|
+
].join("\n"), {
|
|
218
234
|
id: z.string().regex(/^[a-z0-9][a-z0-9-]*$/).describe("Unique kebab-case id used for suppression and storage."),
|
|
219
235
|
name: z.string().min(1).describe("Human-readable display name shown in chat alerts."),
|
|
220
|
-
type: z.enum(["reconnect-loop", "repeated-error", "silent-catch", "file-write-storm", "stale-log", "rate-limit"]).describe("Rule evaluator type."),
|
|
236
|
+
type: z.enum(["reconnect-loop", "repeated-error", "silent-catch", "file-write-storm", "stale-log", "rate-limit", "absent-followup"]).describe("Rule evaluator type."),
|
|
221
237
|
logSource: z.enum(["any", "server", "vnc", "system", "error", "session", "public", "mcp", "config-dir"]).describe("Which log stream(s) to evaluate against. 'any' means every text log."),
|
|
222
|
-
pattern: z.string().describe("JavaScript regex. Empty for file-write-storm and stale-log (they use watchPath instead)."),
|
|
223
|
-
thresholdCount: z.number().min(0).describe("Matches required within the window. 0 fires on first match."),
|
|
224
|
-
thresholdWindowMinutes: z.number().min(0).describe("Window length in minutes. 0 disables windowing."),
|
|
238
|
+
pattern: z.string().describe("JavaScript regex. Empty for file-write-storm and stale-log (they use watchPath instead). For absent-followup this is the TRIGGER regex."),
|
|
239
|
+
thresholdCount: z.number().min(0).describe("Matches required within the window. 0 fires on first match. Unused by absent-followup — set 0."),
|
|
240
|
+
thresholdWindowMinutes: z.number().min(0).describe("Window length in minutes. 0 disables windowing. Unused by absent-followup — set 0."),
|
|
225
241
|
suggestedAction: z.string().min(1).describe("One-sentence remediation guidance shown in the alert."),
|
|
226
242
|
watchPath: z.string().optional().describe("Relative to configDir. Required for file-write-storm and stale-log."),
|
|
227
243
|
staleHours: z.number().optional().describe("Staleness threshold in hours. Required for stale-log."),
|
|
228
|
-
|
|
244
|
+
followupPattern: z.string().optional().describe("Required for absent-followup: regex the followup log line must satisfy (alternation with | is supported to express 'any of these markers')."),
|
|
245
|
+
followupWindowMs: z.number().optional().describe("Required for absent-followup: milliseconds to wait for the followup before firing. Must be in (0, 600000]."),
|
|
246
|
+
scope: z.enum(["global", "session"]).optional().describe("For count-based text rules and absent-followup: 'global' (default) counts/scopes matches across all lines; 'session' groups matches by the conversationId tag so the rule only fires on within-conversation patterns."),
|
|
229
247
|
}, async (params) => {
|
|
230
248
|
try {
|
|
231
249
|
const file = loadRulesFile(configDir);
|
|
@@ -258,6 +276,35 @@ export function registerReviewTools(server, ctx) {
|
|
|
258
276
|
isError: true,
|
|
259
277
|
};
|
|
260
278
|
}
|
|
279
|
+
if (params.type === "absent-followup") {
|
|
280
|
+
if (params.pattern.length === 0) {
|
|
281
|
+
return {
|
|
282
|
+
content: [{ type: "text", text: `[review-tool] absent-followup rules require a non-empty pattern (the TRIGGER regex)` }],
|
|
283
|
+
isError: true,
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
if (!params.followupPattern || params.followupPattern.length === 0) {
|
|
287
|
+
return {
|
|
288
|
+
content: [{ type: "text", text: `[review-tool] absent-followup rules require a non-empty followupPattern` }],
|
|
289
|
+
isError: true,
|
|
290
|
+
};
|
|
291
|
+
}
|
|
292
|
+
try {
|
|
293
|
+
new RegExp(params.followupPattern);
|
|
294
|
+
}
|
|
295
|
+
catch (err) {
|
|
296
|
+
return {
|
|
297
|
+
content: [{ type: "text", text: `[review-tool] followupPattern is not a valid regex: ${err instanceof Error ? err.message : String(err)}` }],
|
|
298
|
+
isError: true,
|
|
299
|
+
};
|
|
300
|
+
}
|
|
301
|
+
if (params.followupWindowMs === undefined || params.followupWindowMs <= 0 || params.followupWindowMs > 600_000) {
|
|
302
|
+
return {
|
|
303
|
+
content: [{ type: "text", text: `[review-tool] absent-followup rules require followupWindowMs in (0, 600000]` }],
|
|
304
|
+
isError: true,
|
|
305
|
+
};
|
|
306
|
+
}
|
|
307
|
+
}
|
|
261
308
|
const rule = {
|
|
262
309
|
id: params.id,
|
|
263
310
|
name: params.name,
|
|
@@ -269,6 +316,8 @@ export function registerReviewTools(server, ctx) {
|
|
|
269
316
|
suggestedAction: params.suggestedAction,
|
|
270
317
|
watchPath: params.watchPath,
|
|
271
318
|
staleHours: params.staleHours,
|
|
319
|
+
followupPattern: params.followupPattern,
|
|
320
|
+
followupWindowMs: params.followupWindowMs,
|
|
272
321
|
scope: params.scope,
|
|
273
322
|
suppressedUntil: null,
|
|
274
323
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review-tools.js","sourceRoot":"","sources":["../../src/lib/review-tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"review-tools.js","sourceRoot":"","sources":["../../src/lib/review-tools.ts"],"names":[],"mappings":"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"}
|
package/payload/server/server.js
CHANGED
|
@@ -10382,8 +10382,10 @@ var VALID_TYPES = /* @__PURE__ */ new Set([
|
|
|
10382
10382
|
"silent-catch",
|
|
10383
10383
|
"file-write-storm",
|
|
10384
10384
|
"stale-log",
|
|
10385
|
-
"rate-limit"
|
|
10385
|
+
"rate-limit",
|
|
10386
|
+
"absent-followup"
|
|
10386
10387
|
]);
|
|
10388
|
+
var MAX_FOLLOWUP_WINDOW_MS = 6e5;
|
|
10387
10389
|
var VALID_SOURCES = /* @__PURE__ */ new Set([
|
|
10388
10390
|
"any",
|
|
10389
10391
|
"server",
|
|
@@ -10522,6 +10524,26 @@ function defaultRules() {
|
|
|
10522
10524
|
scope: "session",
|
|
10523
10525
|
suggestedAction: "The WebFetch SPA preflight has fired more than once in this conversation. Either the agent is ignoring the loud-failure directive (retrying WebFetch after seeing WEBFETCH_CANNOT_READ_JS_SPA), or multiple SPA URLs are being asked about. Read the conversation's stream log for the [tool-use] / [tool-result] sequence around each occurrence \u2014 if the agent dispatched WebFetch on the same URL or substituted Playwright silently, revisit the IDENTITY.md `Tool Failure Discipline` paragraph that names structured-error handling."
|
|
10524
10526
|
},
|
|
10527
|
+
{
|
|
10528
|
+
// Task 538: fires when a [spawn] line appears in a conversation's stream
|
|
10529
|
+
// log but no subprocess-lifecycle marker follows within 10s. The three
|
|
10530
|
+
// acceptable followups are Task 535's contract — at least one must be
|
|
10531
|
+
// emitted immediately at every spawn site. Their absence means
|
|
10532
|
+
// `teeProcStderrToStreamLog` regressed, the markers drifted, or the
|
|
10533
|
+
// spawn site was added without wiring them up. Session scope so a single
|
|
10534
|
+
// broken conversation fires exactly once, not N times for every spawn.
|
|
10535
|
+
id: "subproc-tee-silent-spawn",
|
|
10536
|
+
name: "Subprocess spawn without a stderr-tee lifecycle marker",
|
|
10537
|
+
type: "absent-followup",
|
|
10538
|
+
logSource: "system",
|
|
10539
|
+
pattern: "\\[spawn\\] pid=\\d+",
|
|
10540
|
+
followupPattern: "\\[subproc-stderr-tee-attached\\]|\\[subproc-debug-unavailable\\]|\\[subproc-stderr-skip\\]",
|
|
10541
|
+
followupWindowMs: 1e4,
|
|
10542
|
+
thresholdCount: 0,
|
|
10543
|
+
thresholdWindowMinutes: 0,
|
|
10544
|
+
scope: "session",
|
|
10545
|
+
suggestedAction: "The main-subprocess tee infrastructure has regressed \u2014 a spawn produced no lifecycle marker. Re-check `teeProcStderrToStreamLog` is invoked at the spawn site and that `[subproc-debug-unavailable]` or `[subproc-stderr-skip]` is written immediately when the tee cannot attach (Task 535 contract)."
|
|
10546
|
+
},
|
|
10525
10547
|
{
|
|
10526
10548
|
// Task 533: surface every Cloudflare-plugin refusal. The plugin emits
|
|
10527
10549
|
// exactly one [cloudflare:refuse] line per refusal with a structured
|
|
@@ -10680,6 +10702,17 @@ function validateRule(input, label, seenIds) {
|
|
|
10680
10702
|
};
|
|
10681
10703
|
if (typeof r.watchPath === "string") rule.watchPath = r.watchPath;
|
|
10682
10704
|
if (typeof r.staleHours === "number") rule.staleHours = r.staleHours;
|
|
10705
|
+
if (typeof r.followupPattern === "string") {
|
|
10706
|
+
if (r.followupPattern.length > 0) {
|
|
10707
|
+
try {
|
|
10708
|
+
new RegExp(r.followupPattern);
|
|
10709
|
+
} catch (err) {
|
|
10710
|
+
throw new Error(`${label}: followupPattern is not a valid regex: ${err instanceof Error ? err.message : String(err)}`);
|
|
10711
|
+
}
|
|
10712
|
+
}
|
|
10713
|
+
rule.followupPattern = r.followupPattern;
|
|
10714
|
+
}
|
|
10715
|
+
if (typeof r.followupWindowMs === "number") rule.followupWindowMs = r.followupWindowMs;
|
|
10683
10716
|
if (typeof r.suppressedUntil === "string") rule.suppressedUntil = r.suppressedUntil;
|
|
10684
10717
|
if (r.scope !== void 0) {
|
|
10685
10718
|
if (typeof r.scope !== "string" || !VALID_SCOPES.has(r.scope)) {
|
|
@@ -10697,6 +10730,17 @@ function validateRule(input, label, seenIds) {
|
|
|
10697
10730
|
throw new Error(`${label}: stale-log rules require a positive staleHours`);
|
|
10698
10731
|
}
|
|
10699
10732
|
}
|
|
10733
|
+
if (rule.type === "absent-followup") {
|
|
10734
|
+
if (rule.pattern.length === 0) {
|
|
10735
|
+
throw new Error(`${label}: absent-followup rules require a non-empty pattern`);
|
|
10736
|
+
}
|
|
10737
|
+
if (typeof rule.followupPattern !== "string" || rule.followupPattern.length === 0) {
|
|
10738
|
+
throw new Error(`${label}: absent-followup rules require a non-empty followupPattern`);
|
|
10739
|
+
}
|
|
10740
|
+
if (typeof rule.followupWindowMs !== "number" || rule.followupWindowMs <= 0 || rule.followupWindowMs > MAX_FOLLOWUP_WINDOW_MS) {
|
|
10741
|
+
throw new Error(`${label}: absent-followup rules require followupWindowMs in (0, ${MAX_FOLLOWUP_WINDOW_MS}]`);
|
|
10742
|
+
}
|
|
10743
|
+
}
|
|
10700
10744
|
return rule;
|
|
10701
10745
|
}
|
|
10702
10746
|
|
|
@@ -11168,7 +11212,8 @@ function newRuleState() {
|
|
|
11168
11212
|
matchTimestampsByScope: /* @__PURE__ */ new Map(),
|
|
11169
11213
|
lastAlertAt: null,
|
|
11170
11214
|
cumulativeSinceLastAlert: 0,
|
|
11171
|
-
lastSeenAt: null
|
|
11215
|
+
lastSeenAt: null,
|
|
11216
|
+
pendingFollowups: []
|
|
11172
11217
|
};
|
|
11173
11218
|
}
|
|
11174
11219
|
function evaluateTextRule(rule, lines, state, nowMs) {
|
|
@@ -11266,6 +11311,58 @@ function evaluateStaleLogRule(rule, lastMtimeMs, state, nowMs) {
|
|
|
11266
11311
|
};
|
|
11267
11312
|
return { match: match2, state: updated };
|
|
11268
11313
|
}
|
|
11314
|
+
function evaluateAbsentFollowupRule(rule, lines, state, nowMs) {
|
|
11315
|
+
if (isSuppressed(rule, nowMs)) return { matches: [], state };
|
|
11316
|
+
if (!rule.pattern || !rule.followupPattern || !rule.followupWindowMs) {
|
|
11317
|
+
return { matches: [], state };
|
|
11318
|
+
}
|
|
11319
|
+
const triggerRegex = compileRegex(rule.pattern);
|
|
11320
|
+
const followupRegex = compileRegex(rule.followupPattern);
|
|
11321
|
+
const pending = [...state.pendingFollowups ?? []];
|
|
11322
|
+
for (const line of lines) {
|
|
11323
|
+
if (triggerRegex.test(line)) {
|
|
11324
|
+
pending.push({
|
|
11325
|
+
scope: scopeKeyFor(rule, line),
|
|
11326
|
+
timestamp: nowMs,
|
|
11327
|
+
line,
|
|
11328
|
+
fulfilled: false
|
|
11329
|
+
});
|
|
11330
|
+
continue;
|
|
11331
|
+
}
|
|
11332
|
+
if (followupRegex.test(line)) {
|
|
11333
|
+
const scope = scopeKeyFor(rule, line);
|
|
11334
|
+
for (const entry of pending) {
|
|
11335
|
+
if (!entry.fulfilled && entry.scope === scope) {
|
|
11336
|
+
entry.fulfilled = true;
|
|
11337
|
+
break;
|
|
11338
|
+
}
|
|
11339
|
+
}
|
|
11340
|
+
}
|
|
11341
|
+
}
|
|
11342
|
+
const matches = [];
|
|
11343
|
+
const kept = [];
|
|
11344
|
+
for (const entry of pending) {
|
|
11345
|
+
const age = nowMs - entry.timestamp;
|
|
11346
|
+
if (age >= rule.followupWindowMs) {
|
|
11347
|
+
if (!entry.fulfilled) {
|
|
11348
|
+
matches.push({
|
|
11349
|
+
ruleId: rule.id,
|
|
11350
|
+
ruleName: rule.name,
|
|
11351
|
+
matchedAt: nowMs,
|
|
11352
|
+
sampleEvidence: toSample(entry.line),
|
|
11353
|
+
suggestedAction: rule.suggestedAction,
|
|
11354
|
+
missedForMs: age
|
|
11355
|
+
});
|
|
11356
|
+
}
|
|
11357
|
+
continue;
|
|
11358
|
+
}
|
|
11359
|
+
kept.push(entry);
|
|
11360
|
+
}
|
|
11361
|
+
return {
|
|
11362
|
+
matches,
|
|
11363
|
+
state: { ...state, pendingFollowups: kept }
|
|
11364
|
+
};
|
|
11365
|
+
}
|
|
11269
11366
|
var ALERT_WINDOW_MS = 60 * 60 * 1e3;
|
|
11270
11367
|
function rateLimitDecision(state, nowMs) {
|
|
11271
11368
|
const since = state.lastAlertAt === null ? Infinity : nowMs - state.lastAlertAt;
|
|
@@ -11386,6 +11483,24 @@ async function runScanCycle(runtime) {
|
|
|
11386
11483
|
const result = evaluateStaleLogRule(rule, lastMs, state, cycleStart);
|
|
11387
11484
|
state = result.state;
|
|
11388
11485
|
match2 = result.match;
|
|
11486
|
+
} else if (rule.type === "absent-followup") {
|
|
11487
|
+
let inputLines = [];
|
|
11488
|
+
if (rule.logSource === "any") {
|
|
11489
|
+
for (const [src, lines] of linesBySource.entries()) {
|
|
11490
|
+
if (src !== "config-dir") inputLines.push(...lines);
|
|
11491
|
+
}
|
|
11492
|
+
} else {
|
|
11493
|
+
inputLines = linesBySource.get(rule.logSource) ?? [];
|
|
11494
|
+
}
|
|
11495
|
+
const result = evaluateAbsentFollowupRule(rule, inputLines, state, cycleStart);
|
|
11496
|
+
state = result.state;
|
|
11497
|
+
for (const m of result.matches) {
|
|
11498
|
+
const safeTrigger = m.sampleEvidence.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
|
|
11499
|
+
console.error(
|
|
11500
|
+
`[review-detector] absent-followup rule=${rule.id} trigger="${safeTrigger}" missed_for_ms=${m.missedForMs ?? ""}`
|
|
11501
|
+
);
|
|
11502
|
+
matches.push(m);
|
|
11503
|
+
}
|
|
11389
11504
|
}
|
|
11390
11505
|
runtime.ruleState.set(rule.id, state);
|
|
11391
11506
|
if (match2) matches.push(match2);
|