@vainplex/openclaw-cortex 0.3.1 → 0.4.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/README.md +40 -43
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js +3 -0
- package/dist/src/config.js.map +1 -1
- package/dist/src/hooks.d.ts.map +1 -1
- package/dist/src/hooks.js +13 -1
- package/dist/src/hooks.js.map +1 -1
- package/dist/src/trace-analyzer/analyzer.d.ts +59 -0
- package/dist/src/trace-analyzer/analyzer.d.ts.map +1 -0
- package/dist/src/trace-analyzer/analyzer.js +175 -0
- package/dist/src/trace-analyzer/analyzer.js.map +1 -0
- package/dist/src/trace-analyzer/chain-reconstructor.d.ts +52 -0
- package/dist/src/trace-analyzer/chain-reconstructor.d.ts.map +1 -0
- package/dist/src/trace-analyzer/chain-reconstructor.js +190 -0
- package/dist/src/trace-analyzer/chain-reconstructor.js.map +1 -0
- package/dist/src/trace-analyzer/classifier.d.ts +28 -0
- package/dist/src/trace-analyzer/classifier.d.ts.map +1 -0
- package/dist/src/trace-analyzer/classifier.js +271 -0
- package/dist/src/trace-analyzer/classifier.js.map +1 -0
- package/dist/src/trace-analyzer/config.d.ts +78 -0
- package/dist/src/trace-analyzer/config.d.ts.map +1 -0
- package/dist/src/trace-analyzer/config.js +161 -0
- package/dist/src/trace-analyzer/config.js.map +1 -0
- package/dist/src/trace-analyzer/events.d.ts +70 -0
- package/dist/src/trace-analyzer/events.d.ts.map +1 -0
- package/dist/src/trace-analyzer/events.js +228 -0
- package/dist/src/trace-analyzer/events.js.map +1 -0
- package/dist/src/trace-analyzer/hooks.d.ts +22 -0
- package/dist/src/trace-analyzer/hooks.d.ts.map +1 -0
- package/dist/src/trace-analyzer/hooks.js +151 -0
- package/dist/src/trace-analyzer/hooks.js.map +1 -0
- package/dist/src/trace-analyzer/index.d.ts +32 -0
- package/dist/src/trace-analyzer/index.d.ts.map +1 -0
- package/dist/src/trace-analyzer/index.js +30 -0
- package/dist/src/trace-analyzer/index.js.map +1 -0
- package/dist/src/trace-analyzer/nats-trace-source.d.ts +10 -0
- package/dist/src/trace-analyzer/nats-trace-source.d.ts.map +1 -0
- package/dist/src/trace-analyzer/nats-trace-source.js +151 -0
- package/dist/src/trace-analyzer/nats-trace-source.js.map +1 -0
- package/dist/src/trace-analyzer/output-generator.d.ts +29 -0
- package/dist/src/trace-analyzer/output-generator.d.ts.map +1 -0
- package/dist/src/trace-analyzer/output-generator.js +142 -0
- package/dist/src/trace-analyzer/output-generator.js.map +1 -0
- package/dist/src/trace-analyzer/redactor.d.ts +14 -0
- package/dist/src/trace-analyzer/redactor.d.ts.map +1 -0
- package/dist/src/trace-analyzer/redactor.js +137 -0
- package/dist/src/trace-analyzer/redactor.js.map +1 -0
- package/dist/src/trace-analyzer/report.d.ts +93 -0
- package/dist/src/trace-analyzer/report.d.ts.map +1 -0
- package/dist/src/trace-analyzer/report.js +108 -0
- package/dist/src/trace-analyzer/report.js.map +1 -0
- package/dist/src/trace-analyzer/signals/correction.d.ts +11 -0
- package/dist/src/trace-analyzer/signals/correction.d.ts.map +1 -0
- package/dist/src/trace-analyzer/signals/correction.js +54 -0
- package/dist/src/trace-analyzer/signals/correction.js.map +1 -0
- package/dist/src/trace-analyzer/signals/dissatisfied.d.ts +11 -0
- package/dist/src/trace-analyzer/signals/dissatisfied.d.ts.map +1 -0
- package/dist/src/trace-analyzer/signals/dissatisfied.js +60 -0
- package/dist/src/trace-analyzer/signals/dissatisfied.js.map +1 -0
- package/dist/src/trace-analyzer/signals/doom-loop.d.ts +13 -0
- package/dist/src/trace-analyzer/signals/doom-loop.d.ts.map +1 -0
- package/dist/src/trace-analyzer/signals/doom-loop.js +156 -0
- package/dist/src/trace-analyzer/signals/doom-loop.js.map +1 -0
- package/dist/src/trace-analyzer/signals/hallucination.d.ts +11 -0
- package/dist/src/trace-analyzer/signals/hallucination.d.ts.map +1 -0
- package/dist/src/trace-analyzer/signals/hallucination.js +67 -0
- package/dist/src/trace-analyzer/signals/hallucination.js.map +1 -0
- package/dist/src/trace-analyzer/signals/index.d.ts +16 -0
- package/dist/src/trace-analyzer/signals/index.d.ts.map +1 -0
- package/dist/src/trace-analyzer/signals/index.js +92 -0
- package/dist/src/trace-analyzer/signals/index.js.map +1 -0
- package/dist/src/trace-analyzer/signals/lang/index.d.ts +4 -0
- package/dist/src/trace-analyzer/signals/lang/index.d.ts.map +1 -0
- package/dist/src/trace-analyzer/signals/lang/index.js +2 -0
- package/dist/src/trace-analyzer/signals/lang/index.js.map +1 -0
- package/dist/src/trace-analyzer/signals/lang/registry.d.ts +41 -0
- package/dist/src/trace-analyzer/signals/lang/registry.d.ts.map +1 -0
- package/dist/src/trace-analyzer/signals/lang/registry.js +111 -0
- package/dist/src/trace-analyzer/signals/lang/registry.js.map +1 -0
- package/dist/src/trace-analyzer/signals/lang/signal-lang-de.d.ts +10 -0
- package/dist/src/trace-analyzer/signals/lang/signal-lang-de.d.ts.map +1 -0
- package/dist/src/trace-analyzer/signals/lang/signal-lang-de.js +60 -0
- package/dist/src/trace-analyzer/signals/lang/signal-lang-de.js.map +1 -0
- package/dist/src/trace-analyzer/signals/lang/signal-lang-en.d.ts +4 -0
- package/dist/src/trace-analyzer/signals/lang/signal-lang-en.d.ts.map +1 -0
- package/dist/src/trace-analyzer/signals/lang/signal-lang-en.js +55 -0
- package/dist/src/trace-analyzer/signals/lang/signal-lang-en.js.map +1 -0
- package/dist/src/trace-analyzer/signals/lang/signal-lang-es.d.ts +9 -0
- package/dist/src/trace-analyzer/signals/lang/signal-lang-es.d.ts.map +1 -0
- package/dist/src/trace-analyzer/signals/lang/signal-lang-es.js +59 -0
- package/dist/src/trace-analyzer/signals/lang/signal-lang-es.js.map +1 -0
- package/dist/src/trace-analyzer/signals/lang/signal-lang-fr.d.ts +10 -0
- package/dist/src/trace-analyzer/signals/lang/signal-lang-fr.d.ts.map +1 -0
- package/dist/src/trace-analyzer/signals/lang/signal-lang-fr.js +60 -0
- package/dist/src/trace-analyzer/signals/lang/signal-lang-fr.js.map +1 -0
- package/dist/src/trace-analyzer/signals/lang/signal-lang-it.d.ts +9 -0
- package/dist/src/trace-analyzer/signals/lang/signal-lang-it.d.ts.map +1 -0
- package/dist/src/trace-analyzer/signals/lang/signal-lang-it.js +59 -0
- package/dist/src/trace-analyzer/signals/lang/signal-lang-it.js.map +1 -0
- package/dist/src/trace-analyzer/signals/lang/signal-lang-ja.d.ts +9 -0
- package/dist/src/trace-analyzer/signals/lang/signal-lang-ja.d.ts.map +1 -0
- package/dist/src/trace-analyzer/signals/lang/signal-lang-ja.js +59 -0
- package/dist/src/trace-analyzer/signals/lang/signal-lang-ja.js.map +1 -0
- package/dist/src/trace-analyzer/signals/lang/signal-lang-ko.d.ts +9 -0
- package/dist/src/trace-analyzer/signals/lang/signal-lang-ko.d.ts.map +1 -0
- package/dist/src/trace-analyzer/signals/lang/signal-lang-ko.js +59 -0
- package/dist/src/trace-analyzer/signals/lang/signal-lang-ko.js.map +1 -0
- package/dist/src/trace-analyzer/signals/lang/signal-lang-pt.d.ts +9 -0
- package/dist/src/trace-analyzer/signals/lang/signal-lang-pt.d.ts.map +1 -0
- package/dist/src/trace-analyzer/signals/lang/signal-lang-pt.js +59 -0
- package/dist/src/trace-analyzer/signals/lang/signal-lang-pt.js.map +1 -0
- package/dist/src/trace-analyzer/signals/lang/signal-lang-ru.d.ts +9 -0
- package/dist/src/trace-analyzer/signals/lang/signal-lang-ru.d.ts.map +1 -0
- package/dist/src/trace-analyzer/signals/lang/signal-lang-ru.js +59 -0
- package/dist/src/trace-analyzer/signals/lang/signal-lang-ru.js.map +1 -0
- package/dist/src/trace-analyzer/signals/lang/signal-lang-zh.d.ts +8 -0
- package/dist/src/trace-analyzer/signals/lang/signal-lang-zh.d.ts.map +1 -0
- package/dist/src/trace-analyzer/signals/lang/signal-lang-zh.js +58 -0
- package/dist/src/trace-analyzer/signals/lang/signal-lang-zh.js.map +1 -0
- package/dist/src/trace-analyzer/signals/lang/types.d.ts +76 -0
- package/dist/src/trace-analyzer/signals/lang/types.d.ts.map +1 -0
- package/dist/src/trace-analyzer/signals/lang/types.js +12 -0
- package/dist/src/trace-analyzer/signals/lang/types.js.map +1 -0
- package/dist/src/trace-analyzer/signals/repeat-fail.d.ts +24 -0
- package/dist/src/trace-analyzer/signals/repeat-fail.d.ts.map +1 -0
- package/dist/src/trace-analyzer/signals/repeat-fail.js +112 -0
- package/dist/src/trace-analyzer/signals/repeat-fail.js.map +1 -0
- package/dist/src/trace-analyzer/signals/tool-fail.d.ts +10 -0
- package/dist/src/trace-analyzer/signals/tool-fail.d.ts.map +1 -0
- package/dist/src/trace-analyzer/signals/tool-fail.js +99 -0
- package/dist/src/trace-analyzer/signals/tool-fail.js.map +1 -0
- package/dist/src/trace-analyzer/signals/types.d.ts +54 -0
- package/dist/src/trace-analyzer/signals/types.d.ts.map +1 -0
- package/dist/src/trace-analyzer/signals/types.js +9 -0
- package/dist/src/trace-analyzer/signals/types.js.map +1 -0
- package/dist/src/trace-analyzer/signals/unverified-claim.d.ts +11 -0
- package/dist/src/trace-analyzer/signals/unverified-claim.d.ts.map +1 -0
- package/dist/src/trace-analyzer/signals/unverified-claim.js +84 -0
- package/dist/src/trace-analyzer/signals/unverified-claim.js.map +1 -0
- package/dist/src/trace-analyzer/trace-source.d.ts +31 -0
- package/dist/src/trace-analyzer/trace-source.d.ts.map +1 -0
- package/dist/src/trace-analyzer/trace-source.js +5 -0
- package/dist/src/trace-analyzer/trace-source.js.map +1 -0
- package/dist/src/trace-analyzer/util.d.ts +17 -0
- package/dist/src/trace-analyzer/util.d.ts.map +1 -0
- package/dist/src/trace-analyzer/util.js +26 -0
- package/dist/src/trace-analyzer/util.js.map +1 -0
- package/dist/src/types.d.ts +2 -0
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
// ============================================================
|
|
2
|
+
// SIG-REPEAT-FAIL — Same Failure Across Sessions
|
|
3
|
+
// ============================================================
|
|
4
|
+
//
|
|
5
|
+
// Detects when the same tool+params combination fails with
|
|
6
|
+
// the same error across 2+ different sessions.
|
|
7
|
+
// Uses fingerprinting with normalization.
|
|
8
|
+
// ============================================================
|
|
9
|
+
import { createHash } from "node:crypto";
|
|
10
|
+
import { truncate } from "../util.js";
|
|
11
|
+
/** Maximum entries in the fingerprint map. */
|
|
12
|
+
const MAX_FINGERPRINTS = 10_000;
|
|
13
|
+
/** Create a fresh RepeatFailState. */
|
|
14
|
+
export function createRepeatFailState() {
|
|
15
|
+
return { fingerprints: new Map() };
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Normalize an error string for fingerprinting.
|
|
19
|
+
* Strips timestamps, PIDs, sequence numbers, and temp paths.
|
|
20
|
+
*/
|
|
21
|
+
function normalizeError(error) {
|
|
22
|
+
return error
|
|
23
|
+
.replace(/\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}:\d{2}[.\dZ]*/g, "<TIMESTAMP>")
|
|
24
|
+
.replace(/\bpid[= ]\d+/gi, "pid=<PID>")
|
|
25
|
+
.replace(/\bseq[= ]\d+/gi, "seq=<SEQ>")
|
|
26
|
+
.replace(/\/tmp\/[^\s]+/g, "/tmp/<PATH>")
|
|
27
|
+
.trim()
|
|
28
|
+
.slice(0, 200);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Compute a fingerprint for a tool failure.
|
|
32
|
+
* Same tool + similar params + similar error = same fingerprint.
|
|
33
|
+
*/
|
|
34
|
+
function computeToolFailFingerprint(toolName, params, error) {
|
|
35
|
+
const normalizedError = normalizeError(error);
|
|
36
|
+
// Normalize params: remove volatile fields
|
|
37
|
+
const stableParams = {};
|
|
38
|
+
for (const [k, v] of Object.entries(params)) {
|
|
39
|
+
if (k === "timeout" || k === "timestamp" || k === "ts")
|
|
40
|
+
continue;
|
|
41
|
+
stableParams[k] = v;
|
|
42
|
+
}
|
|
43
|
+
const input = `${toolName}|${JSON.stringify(stableParams)}|${normalizedError}`;
|
|
44
|
+
return createHash("sha256").update(input).digest("hex").slice(0, 16);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Evict oldest entries when map exceeds max size.
|
|
48
|
+
*/
|
|
49
|
+
function evictOldest(state) {
|
|
50
|
+
if (state.fingerprints.size <= MAX_FINGERPRINTS)
|
|
51
|
+
return;
|
|
52
|
+
// Sort by lastSeenTs, remove oldest
|
|
53
|
+
const entries = [...state.fingerprints.entries()]
|
|
54
|
+
.sort((a, b) => a[1].lastSeenTs - b[1].lastSeenTs);
|
|
55
|
+
const toRemove = entries.length - MAX_FINGERPRINTS;
|
|
56
|
+
for (let i = 0; i < toRemove; i++) {
|
|
57
|
+
state.fingerprints.delete(entries[i][0]);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/** Record a new fingerprint or update existing state. Returns a signal if threshold crossed. */
|
|
61
|
+
function recordFailure(state, fingerprint, session, toolName, error, callTs, eventIdx) {
|
|
62
|
+
const existing = state.fingerprints.get(fingerprint);
|
|
63
|
+
if (!existing) {
|
|
64
|
+
state.fingerprints.set(fingerprint, {
|
|
65
|
+
count: 1, lastSeenTs: callTs, sessions: [session],
|
|
66
|
+
toolName, errorPreview: truncate(error, 200),
|
|
67
|
+
});
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
if (existing.sessions.includes(session))
|
|
71
|
+
return null;
|
|
72
|
+
existing.count++;
|
|
73
|
+
existing.lastSeenTs = Math.max(existing.lastSeenTs, callTs);
|
|
74
|
+
existing.sessions.push(session);
|
|
75
|
+
if (existing.count < 2)
|
|
76
|
+
return null;
|
|
77
|
+
return {
|
|
78
|
+
signal: "SIG-REPEAT-FAIL",
|
|
79
|
+
severity: existing.count >= 3 ? "critical" : "high",
|
|
80
|
+
eventRange: { start: eventIdx, end: eventIdx + 1 },
|
|
81
|
+
summary: `Same failure repeated across ${existing.count} sessions: ${toolName} — ${truncate(error, 80)}`,
|
|
82
|
+
evidence: { toolName, fingerprint, count: existing.count, sessions: [...existing.sessions] },
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Detect repeated failures across sessions.
|
|
87
|
+
*
|
|
88
|
+
* Cross-session detector: uses persistent state to track tool failure
|
|
89
|
+
* fingerprints across multiple chains/sessions.
|
|
90
|
+
*/
|
|
91
|
+
export function detectRepeatFails(chain, state) {
|
|
92
|
+
const signals = [];
|
|
93
|
+
const { events } = chain;
|
|
94
|
+
for (let i = 0; i < events.length - 1; i++) {
|
|
95
|
+
const call = events[i];
|
|
96
|
+
const result = events[i + 1];
|
|
97
|
+
if (call.type !== "tool.call" || result.type !== "tool.result")
|
|
98
|
+
continue;
|
|
99
|
+
if (!result.payload.toolError && result.payload.toolIsError !== true)
|
|
100
|
+
continue;
|
|
101
|
+
const toolName = call.payload.toolName ?? "";
|
|
102
|
+
const params = (call.payload.toolParams ?? {});
|
|
103
|
+
const error = result.payload.toolError ?? "unknown";
|
|
104
|
+
const fp = computeToolFailFingerprint(toolName, params, error);
|
|
105
|
+
const signal = recordFailure(state, fp, chain.session, toolName, error, call.ts, i);
|
|
106
|
+
if (signal)
|
|
107
|
+
signals.push(signal);
|
|
108
|
+
}
|
|
109
|
+
evictOldest(state);
|
|
110
|
+
return signals;
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=repeat-fail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repeat-fail.js","sourceRoot":"","sources":["../../../../src/trace-analyzer/signals/repeat-fail.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ConversationChain } from "../chain-reconstructor.js";
|
|
2
|
+
import type { FailureSignal } from "./types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Detect unrecovered tool failures in a conversation chain.
|
|
5
|
+
*
|
|
6
|
+
* Pattern: tool.call → tool.result(error) → ... → msg.out (no recovery in between)
|
|
7
|
+
* Recovery = a different tool call or same tool with different params that succeeds.
|
|
8
|
+
*/
|
|
9
|
+
export declare function detectToolFails(chain: ConversationChain): FailureSignal[];
|
|
10
|
+
//# sourceMappingURL=tool-fail.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-fail.d.ts","sourceRoot":"","sources":["../../../../src/trace-analyzer/signals/tool-fail.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAqEhD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,iBAAiB,GAAG,aAAa,EAAE,CAkCzE"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
// ============================================================
|
|
2
|
+
// SIG-TOOL-FAIL — Unrecovered Tool Failure
|
|
3
|
+
// ============================================================
|
|
4
|
+
//
|
|
5
|
+
// Detects tool errors where the agent does NOT attempt recovery
|
|
6
|
+
// before responding to the user.
|
|
7
|
+
// ============================================================
|
|
8
|
+
import { truncate, isToolError } from "../util.js";
|
|
9
|
+
/**
|
|
10
|
+
* Rough param similarity check.
|
|
11
|
+
* Returns true if the params are "basically the same" (not a recovery attempt).
|
|
12
|
+
* Returns false if the params are different enough to count as recovery.
|
|
13
|
+
*/
|
|
14
|
+
function paramsSimilar(a, b) {
|
|
15
|
+
if (!a && !b)
|
|
16
|
+
return true;
|
|
17
|
+
if (!a || !b)
|
|
18
|
+
return false;
|
|
19
|
+
const aStr = JSON.stringify(a);
|
|
20
|
+
const bStr = JSON.stringify(b);
|
|
21
|
+
// Exact match = definitely similar
|
|
22
|
+
if (aStr === bStr)
|
|
23
|
+
return true;
|
|
24
|
+
// For exec commands, compare command strings directly
|
|
25
|
+
const aCmd = typeof a.command === "string" ? a.command : "";
|
|
26
|
+
const bCmd = typeof b.command === "string" ? b.command : "";
|
|
27
|
+
if (aCmd && bCmd) {
|
|
28
|
+
// If commands share the same words (after splitting), they're similar
|
|
29
|
+
const aWords = new Set(aCmd.split(/\s+/));
|
|
30
|
+
const bWords = new Set(bCmd.split(/\s+/));
|
|
31
|
+
const intersection = [...aWords].filter(w => bWords.has(w)).length;
|
|
32
|
+
const union = new Set([...aWords, ...bWords]).size;
|
|
33
|
+
// Jaccard > 0.7 → similar (not a recovery)
|
|
34
|
+
return union === 0 ? true : intersection / union > 0.7;
|
|
35
|
+
}
|
|
36
|
+
// Generic: Jaccard on key-value pairs
|
|
37
|
+
const aEntries = new Set(Object.entries(a).map(([k, v]) => `${k}=${JSON.stringify(v)}`));
|
|
38
|
+
const bEntries = new Set(Object.entries(b).map(([k, v]) => `${k}=${JSON.stringify(v)}`));
|
|
39
|
+
const intersection = [...aEntries].filter(x => bEntries.has(x)).length;
|
|
40
|
+
const union = new Set([...aEntries, ...bEntries]).size;
|
|
41
|
+
return union === 0 ? true : intersection / union > 0.7;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Check if there is a successful recovery attempt between index `start`
|
|
45
|
+
* and the next msg.out in `events`. Returns { recovered, reachedMsgOut }.
|
|
46
|
+
*/
|
|
47
|
+
function hasRecoveryAfter(events, start, failedToolName, failedParams) {
|
|
48
|
+
for (let j = start; j < events.length; j++) {
|
|
49
|
+
if (events[j].type === "msg.out")
|
|
50
|
+
return { recovered: false, reachedMsgOut: true };
|
|
51
|
+
if (events[j].type === "tool.call") {
|
|
52
|
+
const isDifferentTool = events[j].payload.toolName !== failedToolName;
|
|
53
|
+
const isDifferentParams = !paramsSimilar(events[j].payload.toolParams, failedParams);
|
|
54
|
+
if (isDifferentTool || isDifferentParams) {
|
|
55
|
+
const nextResult = events[j + 1];
|
|
56
|
+
if (nextResult?.type === "tool.result" && !isToolError(nextResult.payload)) {
|
|
57
|
+
return { recovered: true, reachedMsgOut: false };
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return { recovered: false, reachedMsgOut: false };
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Detect unrecovered tool failures in a conversation chain.
|
|
66
|
+
*
|
|
67
|
+
* Pattern: tool.call → tool.result(error) → ... → msg.out (no recovery in between)
|
|
68
|
+
* Recovery = a different tool call or same tool with different params that succeeds.
|
|
69
|
+
*/
|
|
70
|
+
export function detectToolFails(chain) {
|
|
71
|
+
const signals = [];
|
|
72
|
+
const { events } = chain;
|
|
73
|
+
for (let i = 0; i < events.length - 1; i++) {
|
|
74
|
+
const call = events[i];
|
|
75
|
+
const result = events[i + 1];
|
|
76
|
+
if (call.type !== "tool.call" || result.type !== "tool.result")
|
|
77
|
+
continue;
|
|
78
|
+
if (!isToolError(result.payload))
|
|
79
|
+
continue;
|
|
80
|
+
const { recovered, reachedMsgOut } = hasRecoveryAfter(events, i + 2, call.payload.toolName, call.payload.toolParams);
|
|
81
|
+
if (!reachedMsgOut || recovered)
|
|
82
|
+
continue;
|
|
83
|
+
const toolName = call.payload.toolName ?? "unknown";
|
|
84
|
+
const error = result.payload.toolError ?? "unknown error";
|
|
85
|
+
signals.push({
|
|
86
|
+
signal: "SIG-TOOL-FAIL",
|
|
87
|
+
severity: "low",
|
|
88
|
+
eventRange: { start: i, end: i + 1 },
|
|
89
|
+
summary: `Unrecovered tool failure: ${toolName} — ${truncate(error, 100)}`,
|
|
90
|
+
evidence: {
|
|
91
|
+
toolName,
|
|
92
|
+
params: call.payload.toolParams,
|
|
93
|
+
error: truncate(error, 200),
|
|
94
|
+
},
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
return signals;
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=tool-fail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-fail.js","sourceRoot":"","sources":["../../../../src/trace-analyzer/signals/tool-fail.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { SignalId, Severity } from "../config.js";
|
|
2
|
+
export type { SignalId, Severity };
|
|
3
|
+
/** A detected failure signal within a conversation chain. */
|
|
4
|
+
export type FailureSignal = {
|
|
5
|
+
/** Signal type identifier. */
|
|
6
|
+
signal: SignalId;
|
|
7
|
+
/** Detected severity. */
|
|
8
|
+
severity: Severity;
|
|
9
|
+
/** Index range within chain.events where the signal was detected. */
|
|
10
|
+
eventRange: {
|
|
11
|
+
start: number;
|
|
12
|
+
end: number;
|
|
13
|
+
};
|
|
14
|
+
/** Human-readable one-line summary. */
|
|
15
|
+
summary: string;
|
|
16
|
+
/** Additional structured evidence (signal-specific). */
|
|
17
|
+
evidence: Record<string, unknown>;
|
|
18
|
+
};
|
|
19
|
+
/** LLM-produced classification of a finding's root cause. */
|
|
20
|
+
export type FindingClassification = {
|
|
21
|
+
/** Root cause category. */
|
|
22
|
+
rootCause: string;
|
|
23
|
+
/** Recommended action type. */
|
|
24
|
+
actionType: "soul_rule" | "governance_policy" | "cortex_pattern" | "manual_review";
|
|
25
|
+
/** The generated rule/policy/pattern text. */
|
|
26
|
+
actionText: string;
|
|
27
|
+
/** Confidence score from the LLM (0.0–1.0, self-reported). */
|
|
28
|
+
confidence: number;
|
|
29
|
+
/** Model that produced this classification. */
|
|
30
|
+
model: string;
|
|
31
|
+
};
|
|
32
|
+
/** A finding = failure signal + chain context + optional LLM classification. */
|
|
33
|
+
export type Finding = {
|
|
34
|
+
/** Unique finding ID (UUIDv4). */
|
|
35
|
+
id: string;
|
|
36
|
+
/** The chain this finding belongs to. */
|
|
37
|
+
chainId: string;
|
|
38
|
+
/** Agent involved. */
|
|
39
|
+
agent: string;
|
|
40
|
+
/** Session involved. */
|
|
41
|
+
session: string;
|
|
42
|
+
/** The detected failure signal. */
|
|
43
|
+
signal: FailureSignal;
|
|
44
|
+
/** Timestamps for when this occurred. */
|
|
45
|
+
detectedAt: number;
|
|
46
|
+
occurredAt: number;
|
|
47
|
+
/** LLM classification (populated in stage 2, null after stage 1). */
|
|
48
|
+
classification: FindingClassification | null;
|
|
49
|
+
};
|
|
50
|
+
/** Signature for a per-chain signal detector function. */
|
|
51
|
+
export type SignalDetector = (chain: ConversationChain) => FailureSignal[];
|
|
52
|
+
import type { ConversationChain } from "../chain-reconstructor.js";
|
|
53
|
+
export type { ConversationChain };
|
|
54
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/trace-analyzer/signals/types.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEvD,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAEnC,6DAA6D;AAC7D,MAAM,MAAM,aAAa,GAAG;IAC1B,8BAA8B;IAC9B,MAAM,EAAE,QAAQ,CAAC;IACjB,yBAAyB;IACzB,QAAQ,EAAE,QAAQ,CAAC;IACnB,qEAAqE;IACrE,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC,CAAC;AAEF,6DAA6D;AAC7D,MAAM,MAAM,qBAAqB,GAAG;IAClC,2BAA2B;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,+BAA+B;IAC/B,UAAU,EAAE,WAAW,GAAG,mBAAmB,GAAG,gBAAgB,GAAG,eAAe,CAAC;IACnF,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,gFAAgF;AAChF,MAAM,MAAM,OAAO,GAAG;IACpB,kCAAkC;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,MAAM,EAAE,aAAa,CAAC;IACtB,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,cAAc,EAAE,qBAAqB,GAAG,IAAI,CAAC;CAC9C,CAAC;AAEF,0DAA0D;AAC1D,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,iBAAiB,KAAK,aAAa,EAAE,CAAC;AAG3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,YAAY,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// ============================================================
|
|
2
|
+
// Trace Analyzer — Signal Types
|
|
3
|
+
// ============================================================
|
|
4
|
+
//
|
|
5
|
+
// Types for failure signals, findings, and classifications.
|
|
6
|
+
// Used by all signal detectors and the registry.
|
|
7
|
+
// ============================================================
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/trace-analyzer/signals/types.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,gCAAgC;AAChC,+DAA+D;AAC/D,EAAE;AACF,4DAA4D;AAC5D,iDAAiD;AACjD,+DAA+D"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ConversationChain } from "../chain-reconstructor.js";
|
|
2
|
+
import type { FailureSignal } from "./types.js";
|
|
3
|
+
import type { SignalPatternSet } from "./lang/registry.js";
|
|
4
|
+
/**
|
|
5
|
+
* Detect unverified claims about system state.
|
|
6
|
+
*
|
|
7
|
+
* Pattern: agent msg.out contains factual system state claim,
|
|
8
|
+
* but no tool.call was made between the preceding msg.in and this msg.out.
|
|
9
|
+
*/
|
|
10
|
+
export declare function detectUnverifiedClaims(chain: ConversationChain, patterns: SignalPatternSet): FailureSignal[];
|
|
11
|
+
//# sourceMappingURL=unverified-claim.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unverified-claim.d.ts","sourceRoot":"","sources":["../../../../src/trace-analyzer/signals/unverified-claim.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAgD3D;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,gBAAgB,GAAG,aAAa,EAAE,CA8B5G"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
// ============================================================
|
|
2
|
+
// SIG-UNVERIFIED-CLAIM — Agent Claims Without Tool Verification
|
|
3
|
+
// ============================================================
|
|
4
|
+
//
|
|
5
|
+
// Detects when the agent makes a factual claim about system state
|
|
6
|
+
// without having called any verification tool in the preceding
|
|
7
|
+
// conversation turn.
|
|
8
|
+
// ============================================================
|
|
9
|
+
import { truncate } from "../util.js";
|
|
10
|
+
/**
|
|
11
|
+
* Code block detection — claims inside code blocks are analysis output.
|
|
12
|
+
*/
|
|
13
|
+
function isInsideCodeBlock(text, matchIndex) {
|
|
14
|
+
// Count backtick fences before the match
|
|
15
|
+
const before = text.slice(0, matchIndex);
|
|
16
|
+
const fenceCount = (before.match(/```/g) || []).length;
|
|
17
|
+
// Odd count means we're inside a code block
|
|
18
|
+
return fenceCount % 2 === 1;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Check if text contains a factual claim about system state.
|
|
22
|
+
* Returns the matched claim text or null.
|
|
23
|
+
*/
|
|
24
|
+
function findFactualClaim(text, patterns) {
|
|
25
|
+
// Exclude opinions
|
|
26
|
+
if (patterns.systemState.opinionExclusions.some(p => p.test(text)))
|
|
27
|
+
return null;
|
|
28
|
+
for (const pattern of patterns.systemState.claims) {
|
|
29
|
+
const match = pattern.exec(text);
|
|
30
|
+
if (match && !isInsideCodeBlock(text, match.index)) {
|
|
31
|
+
return match[0];
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Scan backward from `fromIdx` to check whether a tool.call exists
|
|
38
|
+
* between the preceding msg.in and the current event.
|
|
39
|
+
* Returns true if a tool.call was found in that range.
|
|
40
|
+
*/
|
|
41
|
+
function hasToolCallInPrecedingTurn(events, fromIdx) {
|
|
42
|
+
for (let j = fromIdx - 1; j >= 0; j--) {
|
|
43
|
+
if (events[j].type === "msg.in")
|
|
44
|
+
break; // Reached user request
|
|
45
|
+
if (events[j].type === "tool.call")
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Detect unverified claims about system state.
|
|
52
|
+
*
|
|
53
|
+
* Pattern: agent msg.out contains factual system state claim,
|
|
54
|
+
* but no tool.call was made between the preceding msg.in and this msg.out.
|
|
55
|
+
*/
|
|
56
|
+
export function detectUnverifiedClaims(chain, patterns) {
|
|
57
|
+
const signals = [];
|
|
58
|
+
const { events } = chain;
|
|
59
|
+
for (let i = 0; i < events.length; i++) {
|
|
60
|
+
if (events[i].type !== "msg.out")
|
|
61
|
+
continue;
|
|
62
|
+
const content = events[i].payload.content ?? "";
|
|
63
|
+
if (!content)
|
|
64
|
+
continue;
|
|
65
|
+
const claim = findFactualClaim(content, patterns);
|
|
66
|
+
if (!claim)
|
|
67
|
+
continue;
|
|
68
|
+
if (hasToolCallInPrecedingTurn(events, i))
|
|
69
|
+
continue;
|
|
70
|
+
const startIdx = Math.max(0, i - 2);
|
|
71
|
+
signals.push({
|
|
72
|
+
signal: "SIG-UNVERIFIED-CLAIM",
|
|
73
|
+
severity: "medium",
|
|
74
|
+
eventRange: { start: startIdx, end: i },
|
|
75
|
+
summary: `Agent made factual claim without tool verification: '${truncate(claim, 100)}'`,
|
|
76
|
+
evidence: {
|
|
77
|
+
agentClaim: truncate(content, 300),
|
|
78
|
+
matchedClaim: claim,
|
|
79
|
+
},
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
return signals;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=unverified-claim.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unverified-claim.js","sourceRoot":"","sources":["../../../../src/trace-analyzer/signals/unverified-claim.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { NormalizedEvent, AnalyzerEventType } from "./events.js";
|
|
2
|
+
/** Options for fetching events from a trace source. */
|
|
3
|
+
export type FetchOpts = {
|
|
4
|
+
/** Filter by event types (default: all). */
|
|
5
|
+
eventTypes?: AnalyzerEventType[];
|
|
6
|
+
/** Filter by agent IDs (default: all). */
|
|
7
|
+
agents?: string[];
|
|
8
|
+
/** Batch size hint for the underlying transport (default: 500). */
|
|
9
|
+
batchSize?: number;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Abstract interface for fetching agent events from any event store backend.
|
|
13
|
+
*
|
|
14
|
+
* Implementations MUST:
|
|
15
|
+
* - Return events ordered by timestamp (ascending).
|
|
16
|
+
* - Support `AsyncIterable` for streaming/backpressure.
|
|
17
|
+
* - Be safe to call `close()` multiple times.
|
|
18
|
+
*/
|
|
19
|
+
export interface TraceSource {
|
|
20
|
+
/** Fetch events within a time range (inclusive start, exclusive end). */
|
|
21
|
+
fetchByTimeRange(startMs: number, endMs: number, opts?: FetchOpts): AsyncIterable<NormalizedEvent>;
|
|
22
|
+
/** Fetch events for a specific agent within a time range. */
|
|
23
|
+
fetchByAgent(agent: string, startMs: number, endMs: number, opts?: FetchOpts): AsyncIterable<NormalizedEvent>;
|
|
24
|
+
/** Get the sequence number of the last event in the store. */
|
|
25
|
+
getLastSequence(): Promise<number>;
|
|
26
|
+
/** Get the total event count in the store (or -1 if unavailable). */
|
|
27
|
+
getEventCount(): Promise<number>;
|
|
28
|
+
/** Release resources (close connections). Idempotent. */
|
|
29
|
+
close(): Promise<void>;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=trace-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace-source.d.ts","sourceRoot":"","sources":["../../../src/trace-analyzer/trace-source.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEtE,uDAAuD;AACvD,MAAM,MAAM,SAAS,GAAG;IACtB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACjC,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW;IAC1B,yEAAyE;IACzE,gBAAgB,CACd,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,SAAS,GACf,aAAa,CAAC,eAAe,CAAC,CAAC;IAElC,6DAA6D;IAC7D,YAAY,CACV,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,SAAS,GACf,aAAa,CAAC,eAAe,CAAC,CAAC;IAElC,8DAA8D;IAC9D,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnC,qEAAqE;IACrE,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAEjC,yDAAyD;IACzD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace-source.js","sourceRoot":"","sources":["../../../src/trace-analyzer/trace-source.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,yCAAyC;AACzC,+DAA+D"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { SignalPatternSet } from "./signals/lang/registry.js";
|
|
2
|
+
/**
|
|
3
|
+
* Truncate a string to maxLen characters, appending "…" if truncated.
|
|
4
|
+
*/
|
|
5
|
+
export declare function truncate(text: string, maxLen: number): string;
|
|
6
|
+
/**
|
|
7
|
+
* Check if a tool result event represents an error.
|
|
8
|
+
*/
|
|
9
|
+
export declare function isToolError(payload: {
|
|
10
|
+
toolError?: string;
|
|
11
|
+
toolIsError?: boolean;
|
|
12
|
+
}): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Check if a text looks like a question using language-specific patterns.
|
|
15
|
+
*/
|
|
16
|
+
export declare function isQuestion(text: string, patterns: SignalPatternSet): boolean;
|
|
17
|
+
//# sourceMappingURL=util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/trace-analyzer/util.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAEnE;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAE3F;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAE5E"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// ============================================================
|
|
2
|
+
// Trace Analyzer — Shared Utilities
|
|
3
|
+
// ============================================================
|
|
4
|
+
//
|
|
5
|
+
// Shared helper functions used across multiple trace-analyzer
|
|
6
|
+
// modules. Extracted to eliminate duplication (C12, C13, C14).
|
|
7
|
+
// ============================================================
|
|
8
|
+
/**
|
|
9
|
+
* Truncate a string to maxLen characters, appending "…" if truncated.
|
|
10
|
+
*/
|
|
11
|
+
export function truncate(text, maxLen) {
|
|
12
|
+
return text.length <= maxLen ? text : text.slice(0, maxLen) + "…";
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Check if a tool result event represents an error.
|
|
16
|
+
*/
|
|
17
|
+
export function isToolError(payload) {
|
|
18
|
+
return Boolean(payload.toolError) || payload.toolIsError === true;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Check if a text looks like a question using language-specific patterns.
|
|
22
|
+
*/
|
|
23
|
+
export function isQuestion(text, patterns) {
|
|
24
|
+
return patterns.question.indicators.some(p => p.test(text));
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/trace-analyzer/util.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,oCAAoC;AACpC,+DAA+D;AAC/D,EAAE;AACF,8DAA8D;AAC9D,+DAA+D;AAC/D,+DAA+D;AAI/D;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,MAAc;IACnD,OAAO,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC;AACpE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,OAAsD;IAChF,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,CAAC;AACpE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,QAA0B;IACjE,OAAO,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9D,CAAC"}
|
package/dist/src/types.d.ts
CHANGED
|
@@ -163,6 +163,7 @@ export type NarrativeSections = {
|
|
|
163
163
|
decisions: Decision[];
|
|
164
164
|
timelineEntries: string[];
|
|
165
165
|
};
|
|
166
|
+
import type { TraceAnalyzerConfig } from "./trace-analyzer/config.js";
|
|
166
167
|
export type CortexConfig = {
|
|
167
168
|
enabled: boolean;
|
|
168
169
|
workspace: string;
|
|
@@ -211,6 +212,7 @@ export type CortexConfig = {
|
|
|
211
212
|
timeoutMs: number;
|
|
212
213
|
batchSize: number;
|
|
213
214
|
};
|
|
215
|
+
traceAnalyzer: TraceAnalyzerConfig;
|
|
214
216
|
};
|
|
215
217
|
export type Mood = "neutral" | "frustrated" | "excited" | "tense" | "productive" | "exploratory";
|
|
216
218
|
export declare const MOOD_EMOJI: Record<Mood, string>;
|
package/dist/src/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/src/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,uCAAuC;AACvC,+DAA+D;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,uCAAuC;AACvC,+DAA+D;AAuR/D,MAAM,CAAC,MAAM,UAAU,GAAyB;IAC9C,OAAO,EAAE,EAAE;IACX,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,GAAG;IACV,UAAU,EAAE,IAAI;IAChB,WAAW,EAAE,IAAI;CAClB,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAmC;IAC5D,QAAQ,EAAE,IAAI;IACd,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,IAAI;IACZ,GAAG,EAAE,IAAI;CACV,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAmC;IAC5D,QAAQ,EAAE,CAAC;IACX,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,CAAC;IACT,GAAG,EAAE,CAAC;CACP,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vainplex/openclaw-cortex",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "OpenClaw plugin: conversation intelligence — thread tracking, decision extraction, boot context, pre-compaction snapshots",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|