@clawtrail/context-graph-openclaw 0.5.2 → 0.6.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/chain-state.d.ts +2 -0
- package/dist/chain-state.d.ts.map +1 -1
- package/dist/chain-state.js +16 -6
- package/dist/chain-state.js.map +1 -1
- package/dist/register.d.ts +1 -1
- package/dist/register.d.ts.map +1 -1
- package/dist/register.js +242 -81
- package/dist/register.js.map +1 -1
- package/package.json +1 -1
package/dist/chain-state.d.ts
CHANGED
|
@@ -8,6 +8,8 @@ export interface ChainStateSubmission {
|
|
|
8
8
|
export interface ChainState {
|
|
9
9
|
nextBlockNumber: number;
|
|
10
10
|
lastSubmission: ChainStateSubmission | null;
|
|
11
|
+
/** Epoch ms of the last successfully processed time window (submitted or idle-skipped). */
|
|
12
|
+
lastSubmittedAt: number | null;
|
|
11
13
|
}
|
|
12
14
|
/** Load chain state from disk. Returns default state if file doesn't exist. */
|
|
13
15
|
export declare function loadChainState(contextGraphRoot: string): Promise<ChainState>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain-state.d.ts","sourceRoot":"","sources":["../src/chain-state.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chain-state.d.ts","sourceRoot":"","sources":["../src/chain-state.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC5C,2FAA2F;IAC3F,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAYD,+EAA+E;AAC/E,wBAAsB,cAAc,CAClC,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,UAAU,CAAC,CAmBrB;AAED,6DAA6D;AAC7D,wBAAsB,cAAc,CAClC,gBAAgB,EAAE,MAAM,EACxB,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC,IAAI,CAAC,CAIf"}
|
package/dist/chain-state.js
CHANGED
|
@@ -5,25 +5,35 @@
|
|
|
5
5
|
* survives process restarts. Stores the last submission's ID, merkle root,
|
|
6
6
|
* payload hash, and block number for building the next block's
|
|
7
7
|
* `cg:previousBlock` reference.
|
|
8
|
+
*
|
|
9
|
+
* Also tracks `lastSubmittedAt` — the epoch-ms timestamp of the last
|
|
10
|
+
* successful block submission (or the last time-window that was processed).
|
|
11
|
+
* Used by the catch-up system to detect gaps and submit retroactive blocks.
|
|
8
12
|
*/
|
|
9
|
-
import { readFile, writeFile, mkdir } from
|
|
10
|
-
import { join, dirname } from
|
|
13
|
+
import { readFile, writeFile, mkdir } from "node:fs/promises";
|
|
14
|
+
import { join, dirname } from "node:path";
|
|
11
15
|
const DEFAULT_STATE = {
|
|
12
16
|
nextBlockNumber: 1,
|
|
13
17
|
lastSubmission: null,
|
|
18
|
+
lastSubmittedAt: null,
|
|
14
19
|
};
|
|
15
20
|
function chainStatePath(contextGraphRoot) {
|
|
16
|
-
return join(contextGraphRoot,
|
|
21
|
+
return join(contextGraphRoot, "chain-state.json");
|
|
17
22
|
}
|
|
18
23
|
/** Load chain state from disk. Returns default state if file doesn't exist. */
|
|
19
24
|
export async function loadChainState(contextGraphRoot) {
|
|
20
25
|
try {
|
|
21
|
-
const raw = await readFile(chainStatePath(contextGraphRoot),
|
|
26
|
+
const raw = await readFile(chainStatePath(contextGraphRoot), "utf-8");
|
|
22
27
|
const parsed = JSON.parse(raw);
|
|
23
28
|
// Validate essential fields
|
|
24
|
-
if (typeof parsed.nextBlockNumber !==
|
|
29
|
+
if (typeof parsed.nextBlockNumber !== "number" ||
|
|
30
|
+
parsed.nextBlockNumber < 1) {
|
|
25
31
|
return DEFAULT_STATE;
|
|
26
32
|
}
|
|
33
|
+
// Backfill lastSubmittedAt for existing chain-state files
|
|
34
|
+
if (typeof parsed.lastSubmittedAt !== "number") {
|
|
35
|
+
parsed.lastSubmittedAt = null;
|
|
36
|
+
}
|
|
27
37
|
return parsed;
|
|
28
38
|
}
|
|
29
39
|
catch {
|
|
@@ -34,6 +44,6 @@ export async function loadChainState(contextGraphRoot) {
|
|
|
34
44
|
export async function saveChainState(contextGraphRoot, state) {
|
|
35
45
|
const filePath = chainStatePath(contextGraphRoot);
|
|
36
46
|
await mkdir(dirname(filePath), { recursive: true });
|
|
37
|
-
await writeFile(filePath, JSON.stringify(state, null, 2),
|
|
47
|
+
await writeFile(filePath, JSON.stringify(state, null, 2), "utf-8");
|
|
38
48
|
}
|
|
39
49
|
//# sourceMappingURL=chain-state.js.map
|
package/dist/chain-state.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain-state.js","sourceRoot":"","sources":["../src/chain-state.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"chain-state.js","sourceRoot":"","sources":["../src/chain-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiB1C,MAAM,aAAa,GAAe;IAChC,eAAe,EAAE,CAAC;IAClB,cAAc,EAAE,IAAI;IACpB,eAAe,EAAE,IAAI;CACtB,CAAC;AAEF,SAAS,cAAc,CAAC,gBAAwB;IAC9C,OAAO,IAAI,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;AACpD,CAAC;AAED,+EAA+E;AAC/E,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,gBAAwB;IAExB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAe,CAAC;QAC7C,4BAA4B;QAC5B,IACE,OAAO,MAAM,CAAC,eAAe,KAAK,QAAQ;YAC1C,MAAM,CAAC,eAAe,GAAG,CAAC,EAC1B,CAAC;YACD,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,0DAA0D;QAC1D,IAAI,OAAO,MAAM,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;YAC/C,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC;QAChC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,aAAa,CAAC;IACvB,CAAC;AACH,CAAC;AAED,6DAA6D;AAC7D,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,gBAAwB,EACxB,KAAiB;IAEjB,MAAM,QAAQ,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC;IAClD,MAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACrE,CAAC"}
|
package/dist/register.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Hook event names as defined in OpenClaw's PluginHookName type */
|
|
2
|
-
type HookName =
|
|
2
|
+
type HookName = "message_received" | "tool_result_persist" | "after_tool_call" | "session_start" | "session_end" | "before_reset" | "agent_end" | "gateway_stop" | "llm_output" | "llm_input";
|
|
3
3
|
interface PluginApi {
|
|
4
4
|
config?: {
|
|
5
5
|
plugins?: {
|
package/dist/register.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAqBA,oEAAoE;AACpE,KAAK,QAAQ,GACT,kBAAkB,GAClB,qBAAqB,GACrB,iBAAiB,GACjB,eAAe,GACf,aAAa,GACb,cAAc,GACd,WAAW,GACX,cAAc,GACd,YAAY,GACZ,WAAW,CAAC;AAEhB,UAAU,SAAS;IACjB,MAAM,CAAC,EAAE;QACP,OAAO,CAAC,EAAE;YACR,OAAO,CAAC,EAAE,MAAM,CACd,MAAM,EACN;gBAAE,OAAO,CAAC,EAAE,OAAO,CAAC;gBAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;aAAE,CACxD,CAAC;SACH,CAAC;KACH,CAAC;IACF,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAC/B,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;KACjC,CAAC;IACF,wEAAwE;IACxE,YAAY,CAAC,CACX,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,EACjE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7C,IAAI,CAAC;IACR,iEAAiE;IACjE,EAAE,CAAC,CACD,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,EACrD,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3B,IAAI,CAAC;IACR,YAAY,CAAC,CAAC,IAAI,EAAE;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpC,OAAO,EAAE,CACP,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KACzB,OAAO,CAAC,OAAO,CAAC,CAAC;KACvB,GAAG,IAAI,CAAC;CACV;AAucD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAwWrD"}
|
package/dist/register.js
CHANGED
|
@@ -4,16 +4,29 @@
|
|
|
4
4
|
* Wires the context-graph adapter into OpenClaw's hook-based plugin system.
|
|
5
5
|
* Registers hooks for session lifecycle approximation and tool call capture,
|
|
6
6
|
* and optionally auto-submits signed provenance to the ClawTrail API.
|
|
7
|
+
*
|
|
8
|
+
* Session types:
|
|
9
|
+
* - active: Agent made real decisions/tool calls during this window
|
|
10
|
+
* - idle: Agent was online but did nothing (0 events) — proves uptime
|
|
11
|
+
* - offline: Retroactive catch-up block — agent was down during this window
|
|
7
12
|
*/
|
|
8
|
-
import { createHash } from
|
|
9
|
-
import { resolve } from
|
|
10
|
-
import { OpenClawAdapter } from
|
|
11
|
-
import { loadChainState, saveChainState } from
|
|
13
|
+
import { createHash } from "node:crypto";
|
|
14
|
+
import { resolve } from "node:path";
|
|
15
|
+
import { OpenClawAdapter } from "./OpenClawAdapter.js";
|
|
16
|
+
import { loadChainState, saveChainState } from "./chain-state.js";
|
|
12
17
|
// ── Helpers ──────────────────────────────────────────────────────────
|
|
13
|
-
const TAG =
|
|
18
|
+
const TAG = "[context-graph]";
|
|
14
19
|
function log(api, level, ...args) {
|
|
15
20
|
// Concatenate into a single string — OpenClaw's logger only captures the first arg
|
|
16
|
-
const msg = TAG +
|
|
21
|
+
const msg = TAG +
|
|
22
|
+
" " +
|
|
23
|
+
args
|
|
24
|
+
.map((a) => a instanceof Error
|
|
25
|
+
? a.message
|
|
26
|
+
: typeof a === "string"
|
|
27
|
+
? a
|
|
28
|
+
: JSON.stringify(a))
|
|
29
|
+
.join(" ");
|
|
17
30
|
if (api.logger?.[level]) {
|
|
18
31
|
api.logger[level](msg);
|
|
19
32
|
}
|
|
@@ -37,22 +50,25 @@ function deriveBaseUrl(submitUrl) {
|
|
|
37
50
|
// submitUrl is like https://sapi.clawtrail.ai/ct/api/context-graph/submit
|
|
38
51
|
// We need https://sapi.clawtrail.ai/ct
|
|
39
52
|
const url = new URL(submitUrl);
|
|
40
|
-
const pathParts = url.pathname.split(
|
|
41
|
-
url.pathname = pathParts[0] ||
|
|
42
|
-
return url.toString().replace(/\/$/,
|
|
53
|
+
const pathParts = url.pathname.split("/api/");
|
|
54
|
+
url.pathname = pathParts[0] || "";
|
|
55
|
+
return url.toString().replace(/\/$/, "");
|
|
43
56
|
}
|
|
44
57
|
/** SHA-256 hash for privacy — never store raw reasoning text */
|
|
45
58
|
function sha256(input) {
|
|
46
|
-
return createHash(
|
|
59
|
+
return createHash("sha256").update(input).digest("hex");
|
|
47
60
|
}
|
|
48
61
|
/**
|
|
49
|
-
* Fetch agent decisions from ClawTrail API
|
|
62
|
+
* Fetch agent decisions from ClawTrail API for a time window.
|
|
50
63
|
* These are the agent's real platform actions (votes, comments, etc.)
|
|
51
64
|
* logged via POST /api/agents/me/decisions during heartbeat cycles.
|
|
52
65
|
*/
|
|
53
|
-
async function fetchDecisions(baseUrl, apiKey, agentId, sinceMs) {
|
|
66
|
+
async function fetchDecisions(baseUrl, apiKey, agentId, sinceMs, untilMs) {
|
|
54
67
|
try {
|
|
55
|
-
|
|
68
|
+
let url = `${baseUrl}/api/agents/${encodeURIComponent(agentId)}/decisions?since=${sinceMs}&limit=100`;
|
|
69
|
+
if (untilMs != null) {
|
|
70
|
+
url += `&until=${untilMs}`;
|
|
71
|
+
}
|
|
56
72
|
const response = await fetch(url, {
|
|
57
73
|
headers: { Authorization: `Bearer ${apiKey}` },
|
|
58
74
|
signal: AbortSignal.timeout(10_000),
|
|
@@ -61,11 +77,11 @@ async function fetchDecisions(baseUrl, apiKey, agentId, sinceMs) {
|
|
|
61
77
|
return [];
|
|
62
78
|
const data = (await response.json());
|
|
63
79
|
return (data.decisions ?? []).map((d) => ({
|
|
64
|
-
action: d.action ||
|
|
80
|
+
action: d.action || "unknown",
|
|
65
81
|
target_type: d.target_type,
|
|
66
82
|
target_id: d.target_id,
|
|
67
83
|
target_title: d.target_title,
|
|
68
|
-
decision: d.decision ||
|
|
84
|
+
decision: d.decision || "",
|
|
69
85
|
reasoning: d.reasoning,
|
|
70
86
|
created_at: d.created_at || Date.now(),
|
|
71
87
|
}));
|
|
@@ -74,7 +90,46 @@ async function fetchDecisions(baseUrl, apiKey, agentId, sinceMs) {
|
|
|
74
90
|
return [];
|
|
75
91
|
}
|
|
76
92
|
}
|
|
77
|
-
|
|
93
|
+
/**
|
|
94
|
+
* Fetch ALL decisions for a time range, paginating through the API.
|
|
95
|
+
* Used by the catch-up system to get decisions for potentially long gaps.
|
|
96
|
+
*/
|
|
97
|
+
async function fetchAllDecisions(baseUrl, apiKey, agentId, sinceMs, untilMs) {
|
|
98
|
+
const all = [];
|
|
99
|
+
let page = 1;
|
|
100
|
+
const MAX_PAGES = 50; // safety limit: 50 * 100 = 5000 decisions max
|
|
101
|
+
while (page <= MAX_PAGES) {
|
|
102
|
+
try {
|
|
103
|
+
const url = `${baseUrl}/api/agents/${encodeURIComponent(agentId)}/decisions?since=${sinceMs}&until=${untilMs}&limit=100&page=${page}`;
|
|
104
|
+
const response = await fetch(url, {
|
|
105
|
+
headers: { Authorization: `Bearer ${apiKey}` },
|
|
106
|
+
signal: AbortSignal.timeout(15_000),
|
|
107
|
+
});
|
|
108
|
+
if (!response.ok)
|
|
109
|
+
break;
|
|
110
|
+
const data = (await response.json());
|
|
111
|
+
const decisions = (data.decisions ?? []).map((d) => ({
|
|
112
|
+
action: d.action || "unknown",
|
|
113
|
+
target_type: d.target_type,
|
|
114
|
+
target_id: d.target_id,
|
|
115
|
+
target_title: d.target_title,
|
|
116
|
+
decision: d.decision || "",
|
|
117
|
+
reasoning: d.reasoning,
|
|
118
|
+
created_at: d.created_at || Date.now(),
|
|
119
|
+
}));
|
|
120
|
+
all.push(...decisions);
|
|
121
|
+
// If fewer than limit returned, we've exhausted this range
|
|
122
|
+
if (decisions.length < 100)
|
|
123
|
+
break;
|
|
124
|
+
page++;
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return all;
|
|
131
|
+
}
|
|
132
|
+
async function submitToClawTrail(adapter, sessionId, submitUrl, apiKey, api, cgRoot, sessionType = "active") {
|
|
78
133
|
const MAX_RETRIES = 1;
|
|
79
134
|
const RETRY_DELAY = 2000;
|
|
80
135
|
// Decisions are now fetched and logged in endSessionAndSubmit() BEFORE the
|
|
@@ -90,26 +145,29 @@ async function submitToClawTrail(adapter, sessionId, submitUrl, apiKey, api, cgR
|
|
|
90
145
|
submissionId: chainState.lastSubmission.submissionId,
|
|
91
146
|
merkleRoot: chainState.lastSubmission.merkleRoot,
|
|
92
147
|
payloadHash: chainState.lastSubmission.payloadHash,
|
|
93
|
-
...(chainState.lastSubmission.dkgUal
|
|
148
|
+
...(chainState.lastSubmission.dkgUal
|
|
149
|
+
? { dkgUal: chainState.lastSubmission.dkgUal }
|
|
150
|
+
: {}),
|
|
94
151
|
};
|
|
95
152
|
}
|
|
96
153
|
for (let attempt = 0; attempt <= MAX_RETRIES; attempt++) {
|
|
97
154
|
try {
|
|
98
155
|
const { signed } = await adapter.summarizeAndSign(sessionId, chainOpts);
|
|
99
156
|
if (!signed) {
|
|
100
|
-
log(api,
|
|
157
|
+
log(api, "warn", "No signed submission produced — skipping auto-submit");
|
|
101
158
|
return;
|
|
102
159
|
}
|
|
103
|
-
// Include chain metadata in the submission body
|
|
160
|
+
// Include chain metadata and session type in the submission body
|
|
104
161
|
const submissionBody = {
|
|
105
162
|
...signed,
|
|
106
163
|
chainBlockNumber: chainOpts.blockNumber,
|
|
107
164
|
previousSubmissionId: chainState.lastSubmission?.submissionId ?? null,
|
|
165
|
+
sessionType,
|
|
108
166
|
};
|
|
109
167
|
const response = await fetch(submitUrl, {
|
|
110
|
-
method:
|
|
168
|
+
method: "POST",
|
|
111
169
|
headers: {
|
|
112
|
-
|
|
170
|
+
"Content-Type": "application/json",
|
|
113
171
|
Authorization: `Bearer ${apiKey}`,
|
|
114
172
|
},
|
|
115
173
|
body: JSON.stringify(submissionBody),
|
|
@@ -117,7 +175,7 @@ async function submitToClawTrail(adapter, sessionId, submitUrl, apiKey, api, cgR
|
|
|
117
175
|
});
|
|
118
176
|
if (response.ok) {
|
|
119
177
|
const result = (await response.json());
|
|
120
|
-
log(api,
|
|
178
|
+
log(api, "info", `Submitted session ${sessionId}:`, `type=${sessionType},`, `submissionId=${result.submissionId},`, `block=#${result.chainBlockNumber ?? chainOpts.blockNumber},`, `claims=${result.claimsExtracted}`);
|
|
121
179
|
// Save chain state for next submission
|
|
122
180
|
if (result.submissionId) {
|
|
123
181
|
await saveChainState(cgRoot, {
|
|
@@ -128,34 +186,125 @@ async function submitToClawTrail(adapter, sessionId, submitUrl, apiKey, api, cgR
|
|
|
128
186
|
payloadHash: signed.payloadHash,
|
|
129
187
|
blockNumber: result.chainBlockNumber ?? chainOpts.blockNumber ?? 1,
|
|
130
188
|
},
|
|
189
|
+
lastSubmittedAt: Date.now(),
|
|
131
190
|
});
|
|
132
191
|
}
|
|
133
192
|
return;
|
|
134
193
|
}
|
|
135
|
-
const errorBody = await response.text().catch(() =>
|
|
136
|
-
log(api,
|
|
194
|
+
const errorBody = await response.text().catch(() => "");
|
|
195
|
+
log(api, "warn", `Submit failed (HTTP ${response.status}):`, errorBody.slice(0, 200));
|
|
137
196
|
// Don't retry client errors (bad request, auth failure, etc.)
|
|
138
197
|
if (response.status >= 400 && response.status < 500)
|
|
139
198
|
return;
|
|
140
199
|
}
|
|
141
200
|
catch (err) {
|
|
142
|
-
log(api,
|
|
201
|
+
log(api, "warn", `Submit error (attempt ${attempt + 1}):`, err instanceof Error ? err.message : String(err));
|
|
143
202
|
}
|
|
144
203
|
if (attempt < MAX_RETRIES) {
|
|
145
204
|
await new Promise((r) => setTimeout(r, RETRY_DELAY));
|
|
146
205
|
}
|
|
147
206
|
}
|
|
148
207
|
}
|
|
208
|
+
// ── Catch-Up System ─────────────────────────────────────────────────
|
|
209
|
+
/**
|
|
210
|
+
* Detect gaps in the submission chain and submit retroactive blocks.
|
|
211
|
+
*
|
|
212
|
+
* When the agent was offline (process not running) or the context graph
|
|
213
|
+
* plugin failed to submit, there will be a gap between `lastSubmittedAt`
|
|
214
|
+
* and the current time. This function:
|
|
215
|
+
*
|
|
216
|
+
* 1. Detects the gap duration
|
|
217
|
+
* 2. Fetches all decisions from the API for the missed period
|
|
218
|
+
* 3. Groups decisions into 5-minute windows
|
|
219
|
+
* 4. For each window: creates a session, logs events (or none), submits
|
|
220
|
+
* - Windows WITH decisions → 'active' blocks
|
|
221
|
+
* - Windows WITHOUT decisions → 'offline' blocks (proves downtime)
|
|
222
|
+
*
|
|
223
|
+
* Returns true if catch-up was performed, false if no gap detected.
|
|
224
|
+
*/
|
|
225
|
+
async function runCatchUp(adapter, api, cfg, cgRoot, windowMs) {
|
|
226
|
+
const submitUrl = cfg.submitUrl;
|
|
227
|
+
const apiKey = cfg.apiKey;
|
|
228
|
+
if (!submitUrl || !apiKey)
|
|
229
|
+
return false;
|
|
230
|
+
const chainState = await loadChainState(cgRoot);
|
|
231
|
+
// No history — can't determine gap. Let normal flow handle first block.
|
|
232
|
+
if (!chainState.lastSubmittedAt)
|
|
233
|
+
return false;
|
|
234
|
+
const now = Date.now();
|
|
235
|
+
const gapMs = now - chainState.lastSubmittedAt;
|
|
236
|
+
// Only catch up if gap is at least 2 windows (10+ minutes).
|
|
237
|
+
// Single-window gaps are handled by normal session recycling.
|
|
238
|
+
if (gapMs < windowMs * 2)
|
|
239
|
+
return false;
|
|
240
|
+
const missedWindows = Math.floor(gapMs / windowMs);
|
|
241
|
+
log(api, "info", `Catch-up: detected gap of ${Math.round(gapMs / 60_000)}min (${missedWindows} windows) since last submission`);
|
|
242
|
+
// Fetch all decisions for the missed period
|
|
243
|
+
const baseUrl = deriveBaseUrl(submitUrl);
|
|
244
|
+
const agentIdStr = cfg.agentId || "unknown";
|
|
245
|
+
const allDecisions = await fetchAllDecisions(baseUrl, apiKey, agentIdStr, chainState.lastSubmittedAt, now);
|
|
246
|
+
log(api, "info", `Catch-up: found ${allDecisions.length} decisions in missed period`);
|
|
247
|
+
// Cap catch-up at 100 blocks per run to avoid blocking the process too long.
|
|
248
|
+
// If gap is bigger, remaining blocks will be caught up on next cycle.
|
|
249
|
+
const MAX_CATCHUP_BLOCKS = 100;
|
|
250
|
+
const blocksToSubmit = Math.min(missedWindows, MAX_CATCHUP_BLOCKS);
|
|
251
|
+
let submitted = 0;
|
|
252
|
+
for (let i = 0; i < blocksToSubmit; i++) {
|
|
253
|
+
const windowStart = chainState.lastSubmittedAt + i * windowMs;
|
|
254
|
+
const windowEnd = windowStart + windowMs;
|
|
255
|
+
// Find decisions that fall within this window
|
|
256
|
+
const windowDecisions = allDecisions.filter((d) => d.created_at >= windowStart && d.created_at < windowEnd);
|
|
257
|
+
const sessionType = windowDecisions.length > 0 ? "active" : "offline";
|
|
258
|
+
try {
|
|
259
|
+
// Create ephemeral session for this catch-up block
|
|
260
|
+
const sessionKey = `catchup:${windowStart}`;
|
|
261
|
+
const agentId = cfg.agentId || undefined;
|
|
262
|
+
const ctx = createSessionContext(sessionKey, `catch-up:${sessionType}`, agentId);
|
|
263
|
+
const session = await adapter.onSessionStart(ctx);
|
|
264
|
+
// Log decisions as AGENT_ACTION events (if any)
|
|
265
|
+
for (const d of windowDecisions) {
|
|
266
|
+
await adapter.logExternalEvent(session.meta.session_id, {
|
|
267
|
+
type: "AGENT_ACTION",
|
|
268
|
+
status: "SUCCEEDED",
|
|
269
|
+
data: {
|
|
270
|
+
action: d.action,
|
|
271
|
+
target_type: d.target_type ?? null,
|
|
272
|
+
target_id: d.target_id ?? null,
|
|
273
|
+
decision: d.decision,
|
|
274
|
+
reasoning_hash: d.reasoning ? sha256(d.reasoning) : null,
|
|
275
|
+
},
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
// End session
|
|
279
|
+
await adapter.onSessionEnd(ctx);
|
|
280
|
+
// Submit
|
|
281
|
+
await submitToClawTrail(adapter, session.meta.session_id, submitUrl, apiKey, api, cgRoot, sessionType);
|
|
282
|
+
submitted++;
|
|
283
|
+
// Brief delay to avoid hammering the API
|
|
284
|
+
if (i < blocksToSubmit - 1) {
|
|
285
|
+
await new Promise((r) => setTimeout(r, 300));
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
catch (err) {
|
|
289
|
+
log(api, "warn", `Catch-up block ${i + 1} failed:`, err);
|
|
290
|
+
// Stop catch-up on first failure — chain state is already saved for
|
|
291
|
+
// the last successful block, so next run picks up from there
|
|
292
|
+
break;
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
log(api, "info", `Catch-up: submitted ${submitted}/${blocksToSubmit} blocks (${allDecisions.length} decisions total)`);
|
|
296
|
+
return submitted > 0;
|
|
297
|
+
}
|
|
149
298
|
// ── Plugin Register Function ────────────────────────────────────────
|
|
150
299
|
export default function register(api) {
|
|
151
300
|
// 1. Read config
|
|
152
|
-
const pluginEntry = api.config?.plugins?.entries?.[
|
|
301
|
+
const pluginEntry = api.config?.plugins?.entries?.["context-graph"];
|
|
153
302
|
const cfg = (pluginEntry?.config ?? {});
|
|
154
303
|
if (cfg.enabled === false)
|
|
155
304
|
return;
|
|
156
305
|
// 2. Create adapter — resolve contextGraphRoot to absolute path so it
|
|
157
306
|
// survives any cwd changes during tool call execution.
|
|
158
|
-
const cgRoot = resolve(cfg.contextGraphRoot ??
|
|
307
|
+
const cgRoot = resolve(cfg.contextGraphRoot ?? ".context-graph");
|
|
159
308
|
const adapter = new OpenClawAdapter({
|
|
160
309
|
enabled: true,
|
|
161
310
|
contextGraphRoot: cgRoot,
|
|
@@ -168,6 +317,8 @@ export default function register(api) {
|
|
|
168
317
|
});
|
|
169
318
|
// 3. Session map — keyed by OpenClaw sessionKey
|
|
170
319
|
const sessions = new Map();
|
|
320
|
+
// Track whether catch-up has run this process lifecycle
|
|
321
|
+
let catchUpDone = false;
|
|
171
322
|
// Helper: lazily create a session if one doesn't exist yet.
|
|
172
323
|
// The embedded heartbeat agent doesn't fire session_start, so we
|
|
173
324
|
// create a session on the first after_tool_call or llm_output event.
|
|
@@ -178,7 +329,7 @@ export default function register(api) {
|
|
|
178
329
|
try {
|
|
179
330
|
const sessionKey = `auto:${Date.now()}`;
|
|
180
331
|
const agentId = cfg.agentId || undefined;
|
|
181
|
-
const ctx = createSessionContext(sessionKey,
|
|
332
|
+
const ctx = createSessionContext(sessionKey, "auto-session", agentId);
|
|
182
333
|
const session = await adapter.onSessionStart(ctx);
|
|
183
334
|
const state = {
|
|
184
335
|
ctx,
|
|
@@ -187,15 +338,15 @@ export default function register(api) {
|
|
|
187
338
|
eventCount: 0,
|
|
188
339
|
};
|
|
189
340
|
sessions.set(sessionKey, state);
|
|
190
|
-
log(api,
|
|
341
|
+
log(api, "info", `Session auto-started: ${session.meta.session_id}`);
|
|
191
342
|
return state;
|
|
192
343
|
}
|
|
193
344
|
catch (err) {
|
|
194
|
-
log(api,
|
|
345
|
+
log(api, "warn", "Failed to auto-start session:", err);
|
|
195
346
|
return undefined;
|
|
196
347
|
}
|
|
197
348
|
}
|
|
198
|
-
// Helper: end session and
|
|
349
|
+
// Helper: end session and submit (always — idle blocks are valuable)
|
|
199
350
|
async function endSessionAndSubmit(sessionKey) {
|
|
200
351
|
const state = sessions.get(sessionKey);
|
|
201
352
|
if (!state)
|
|
@@ -211,15 +362,15 @@ export default function register(api) {
|
|
|
211
362
|
if (autoSubmit && submitUrl && apiKey) {
|
|
212
363
|
try {
|
|
213
364
|
const baseUrl = deriveBaseUrl(submitUrl);
|
|
214
|
-
const agentIdStr = cfg.agentId ||
|
|
365
|
+
const agentIdStr = cfg.agentId || "unknown";
|
|
215
366
|
const decisions = await fetchDecisions(baseUrl, apiKey, agentIdStr, state.startedAt);
|
|
216
367
|
if (decisions.length > 0) {
|
|
217
|
-
log(api,
|
|
368
|
+
log(api, "info", `Fetched ${decisions.length} decisions for session ${state.sessionId}`);
|
|
218
369
|
}
|
|
219
370
|
for (const d of decisions) {
|
|
220
371
|
await adapter.logExternalEvent(state.sessionId, {
|
|
221
|
-
type:
|
|
222
|
-
status:
|
|
372
|
+
type: "AGENT_ACTION",
|
|
373
|
+
status: "SUCCEEDED",
|
|
223
374
|
data: {
|
|
224
375
|
action: d.action,
|
|
225
376
|
target_type: d.target_type ?? null,
|
|
@@ -232,34 +383,28 @@ export default function register(api) {
|
|
|
232
383
|
}
|
|
233
384
|
}
|
|
234
385
|
catch (err) {
|
|
235
|
-
log(api,
|
|
386
|
+
log(api, "warn", "Failed to fetch decisions:", err);
|
|
236
387
|
}
|
|
237
388
|
}
|
|
238
|
-
//
|
|
239
|
-
// means the agent did nothing (e.g. LLM quota exhausted, API errors).
|
|
240
|
-
// Avoids cluttering the chain with 0-action blocks.
|
|
389
|
+
// Determine session type: active (has events/decisions) or idle (online but nothing happened)
|
|
241
390
|
const totalEvents = state.eventCount + decisionsLogged;
|
|
242
|
-
|
|
243
|
-
log(api, 'info', `Skipping empty session ${state.sessionId} (0 events, 0 decisions)`);
|
|
244
|
-
await adapter.onSessionEnd(state.ctx);
|
|
245
|
-
return;
|
|
246
|
-
}
|
|
391
|
+
const sessionType = totalEvents > 0 ? "active" : "idle";
|
|
247
392
|
// Now end the session — marks it COMPLETED
|
|
248
393
|
await adapter.onSessionEnd(state.ctx);
|
|
249
394
|
if (autoSubmit && submitUrl && apiKey) {
|
|
250
|
-
await submitToClawTrail(adapter, state.sessionId, submitUrl, apiKey, api, cgRoot);
|
|
395
|
+
await submitToClawTrail(adapter, state.sessionId, submitUrl, apiKey, api, cgRoot, sessionType);
|
|
251
396
|
}
|
|
252
397
|
}
|
|
253
398
|
catch (err) {
|
|
254
|
-
log(api,
|
|
399
|
+
log(api, "error", "Error ending session:", err);
|
|
255
400
|
}
|
|
256
401
|
finally {
|
|
257
402
|
sessions.delete(sessionKey);
|
|
258
403
|
}
|
|
259
404
|
}
|
|
260
405
|
// ── Require api.on() — the typed hook API (OpenClaw 2026.2+) ───────
|
|
261
|
-
if (typeof api.on !==
|
|
262
|
-
log(api,
|
|
406
|
+
if (typeof api.on !== "function") {
|
|
407
|
+
log(api, "warn", "api.on() not available — hooks will not fire. Upgrade OpenClaw to 2026.2+");
|
|
263
408
|
return;
|
|
264
409
|
}
|
|
265
410
|
const on = api.on; // bind for TS narrowing
|
|
@@ -267,15 +412,17 @@ export default function register(api) {
|
|
|
267
412
|
// OpenClaw fires session_start(event, ctx) where:
|
|
268
413
|
// event = { sessionId, resumedFrom? }
|
|
269
414
|
// ctx = { sessionId, agentId }
|
|
270
|
-
on(
|
|
415
|
+
on("session_start", async (...args) => {
|
|
271
416
|
try {
|
|
272
417
|
const event = (args[0] ?? {});
|
|
273
418
|
const hookCtx = (args[1] ?? {});
|
|
274
|
-
const sessionId = hookCtx.sessionId ||
|
|
419
|
+
const sessionId = hookCtx.sessionId ||
|
|
420
|
+
event.sessionId ||
|
|
421
|
+
"default";
|
|
275
422
|
const agentId = hookCtx.agentId || cfg.agentId || undefined;
|
|
276
423
|
if (sessions.has(sessionId))
|
|
277
424
|
return;
|
|
278
|
-
const ctx = createSessionContext(sessionId,
|
|
425
|
+
const ctx = createSessionContext(sessionId, "session", agentId);
|
|
279
426
|
const session = await adapter.onSessionStart(ctx);
|
|
280
427
|
sessions.set(sessionId, {
|
|
281
428
|
ctx,
|
|
@@ -283,28 +430,28 @@ export default function register(api) {
|
|
|
283
430
|
startedAt: Date.now(),
|
|
284
431
|
eventCount: 0,
|
|
285
432
|
});
|
|
286
|
-
log(api,
|
|
433
|
+
log(api, "info", `Session started: ${session.meta.session_id}`);
|
|
287
434
|
}
|
|
288
435
|
catch (err) {
|
|
289
|
-
log(api,
|
|
436
|
+
log(api, "warn", "Failed to start session:", err);
|
|
290
437
|
}
|
|
291
438
|
});
|
|
292
439
|
// ── Hook: after_tool_call → capture tool call (async) ─────────────
|
|
293
440
|
// OpenClaw fires after_tool_call(event, ctx) where:
|
|
294
441
|
// event = { toolName, params, result } or { toolName, params, error }
|
|
295
442
|
// ctx = { toolName }
|
|
296
|
-
on(
|
|
443
|
+
on("after_tool_call", async (...args) => {
|
|
297
444
|
try {
|
|
298
445
|
const event = (args[0] ?? {});
|
|
299
446
|
// Find or lazily create a session
|
|
300
447
|
const state = await ensureSession();
|
|
301
448
|
if (!state)
|
|
302
449
|
return;
|
|
303
|
-
const toolName = event.toolName ||
|
|
450
|
+
const toolName = event.toolName || "unknown";
|
|
304
451
|
const params = (event.params ?? {});
|
|
305
452
|
const result = (event.result ?? {});
|
|
306
453
|
const error = event.error
|
|
307
|
-
? typeof event.error ===
|
|
454
|
+
? typeof event.error === "string"
|
|
308
455
|
? new Error(event.error)
|
|
309
456
|
: event.error instanceof Error
|
|
310
457
|
? event.error
|
|
@@ -320,17 +467,17 @@ export default function register(api) {
|
|
|
320
467
|
state.eventCount++;
|
|
321
468
|
}
|
|
322
469
|
catch (err) {
|
|
323
|
-
log(api,
|
|
470
|
+
log(api, "warn", "Failed to capture tool result:", err);
|
|
324
471
|
}
|
|
325
472
|
});
|
|
326
473
|
// ── Hook: llm_output → capture HTTP references from LLM text ──────
|
|
327
474
|
// OpenClaw fires llm_output(event, ctx) where:
|
|
328
475
|
// event = { content, model?, usage?, toolCalls? }
|
|
329
476
|
// ctx = { sessionId?, agentId? }
|
|
330
|
-
on(
|
|
477
|
+
on("llm_output", async (...args) => {
|
|
331
478
|
try {
|
|
332
479
|
const event = (args[0] ?? {});
|
|
333
|
-
const content = event.content ||
|
|
480
|
+
const content = event.content || "";
|
|
334
481
|
if (!content)
|
|
335
482
|
return;
|
|
336
483
|
// Find or lazily create a session
|
|
@@ -341,11 +488,15 @@ export default function register(api) {
|
|
|
341
488
|
state.eventCount++;
|
|
342
489
|
}
|
|
343
490
|
catch (err) {
|
|
344
|
-
log(api,
|
|
491
|
+
log(api, "warn", "Failed to process LLM output:", err);
|
|
345
492
|
}
|
|
346
493
|
});
|
|
347
494
|
// ── Hooks: session_end, before_reset, gateway_stop → end session ───
|
|
348
|
-
for (const hookName of [
|
|
495
|
+
for (const hookName of [
|
|
496
|
+
"session_end",
|
|
497
|
+
"before_reset",
|
|
498
|
+
"gateway_stop",
|
|
499
|
+
]) {
|
|
349
500
|
on(hookName, async (...args) => {
|
|
350
501
|
const event = (args[0] ?? {});
|
|
351
502
|
const hookCtx = (args[1] ?? {});
|
|
@@ -361,16 +512,26 @@ export default function register(api) {
|
|
|
361
512
|
}
|
|
362
513
|
});
|
|
363
514
|
}
|
|
364
|
-
// ── Hook: agent_end → session recycling
|
|
365
|
-
// agent_end fires after every heartbeat run (~
|
|
366
|
-
// 1.
|
|
367
|
-
// 2.
|
|
515
|
+
// ── Hook: agent_end → session recycling + catch-up ────────────────
|
|
516
|
+
// agent_end fires after every heartbeat run (~5min). We use it to:
|
|
517
|
+
// 1. Run catch-up on first invocation (if agent was offline)
|
|
518
|
+
// 2. Ensure a session always exists (create one if none)
|
|
519
|
+
// 3. Recycle sessions that are older than SESSION_MAX_AGE_MS
|
|
368
520
|
// (submit the old one, start a fresh one)
|
|
369
|
-
//
|
|
370
|
-
// no synthetic heartbeat events are injected.
|
|
521
|
+
// ALL sessions get submitted — idle blocks prove the agent was online.
|
|
371
522
|
const SESSION_MAX_AGE_MS = 5 * 60_000; // 5 minutes
|
|
372
|
-
on(
|
|
523
|
+
on("agent_end", async () => {
|
|
373
524
|
try {
|
|
525
|
+
// Run catch-up once on first agent_end after process start
|
|
526
|
+
if (!catchUpDone) {
|
|
527
|
+
catchUpDone = true;
|
|
528
|
+
try {
|
|
529
|
+
await runCatchUp(adapter, api, cfg, cgRoot, SESSION_MAX_AGE_MS);
|
|
530
|
+
}
|
|
531
|
+
catch (err) {
|
|
532
|
+
log(api, "warn", "Catch-up failed:", err);
|
|
533
|
+
}
|
|
534
|
+
}
|
|
374
535
|
const current = sessions.values().next().value;
|
|
375
536
|
if (!current) {
|
|
376
537
|
// No session exists — create one so the next cycle captures events
|
|
@@ -381,7 +542,7 @@ export default function register(api) {
|
|
|
381
542
|
if (age < SESSION_MAX_AGE_MS)
|
|
382
543
|
return; // session still fresh
|
|
383
544
|
// Session is old enough to recycle — fetch real decisions and submit
|
|
384
|
-
log(api,
|
|
545
|
+
log(api, "info", `Recycling session (age=${Math.round(age / 1000)}s, events=${current.eventCount})`);
|
|
385
546
|
for (const [key, state] of sessions) {
|
|
386
547
|
if (state === current) {
|
|
387
548
|
await endSessionAndSubmit(key);
|
|
@@ -392,30 +553,30 @@ export default function register(api) {
|
|
|
392
553
|
await ensureSession();
|
|
393
554
|
}
|
|
394
555
|
catch (err) {
|
|
395
|
-
log(api,
|
|
556
|
+
log(api, "warn", "Session recycle error:", err);
|
|
396
557
|
}
|
|
397
558
|
});
|
|
398
559
|
// ── Agent tools (optional — depends on api.registerTool) ──────────
|
|
399
|
-
if (typeof api.registerTool ===
|
|
560
|
+
if (typeof api.registerTool === "function") {
|
|
400
561
|
api.registerTool({
|
|
401
|
-
name:
|
|
402
|
-
description:
|
|
403
|
-
parameters: { type:
|
|
562
|
+
name: "context_graph_status",
|
|
563
|
+
description: "Check current context graph session status, event count, and capture health.",
|
|
564
|
+
parameters: { type: "object", properties: {} },
|
|
404
565
|
handler: async (_params, ctx) => {
|
|
405
|
-
const key = ctx.sessionKey ||
|
|
566
|
+
const key = ctx.sessionKey || "default";
|
|
406
567
|
const state = sessions.get(key);
|
|
407
568
|
return adapter.getStatus(state?.sessionId);
|
|
408
569
|
},
|
|
409
570
|
});
|
|
410
571
|
api.registerTool({
|
|
411
|
-
name:
|
|
412
|
-
description:
|
|
413
|
-
parameters: { type:
|
|
572
|
+
name: "context_graph_summarize",
|
|
573
|
+
description: "Generate metrics and derived claims for the current session.",
|
|
574
|
+
parameters: { type: "object", properties: {} },
|
|
414
575
|
handler: async (_params, ctx) => {
|
|
415
|
-
const key = ctx.sessionKey ||
|
|
576
|
+
const key = ctx.sessionKey || "default";
|
|
416
577
|
const state = sessions.get(key);
|
|
417
578
|
if (!state)
|
|
418
|
-
return { status:
|
|
579
|
+
return { status: "no_active_session" };
|
|
419
580
|
const { summary, signed } = await adapter.summarizeAndSign(state.sessionId);
|
|
420
581
|
return {
|
|
421
582
|
...summary,
|
|
@@ -429,6 +590,6 @@ export default function register(api) {
|
|
|
429
590
|
},
|
|
430
591
|
});
|
|
431
592
|
}
|
|
432
|
-
log(api,
|
|
593
|
+
log(api, "info", "Plugin registered — provenance capture active (catch-up enabled)");
|
|
433
594
|
}
|
|
434
595
|
//# sourceMappingURL=register.js.map
|
package/dist/register.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED