@clawtrail/context-graph-openclaw 0.5.2 → 0.7.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 +243 -81
- package/dist/register.js.map +1 -1
- package/package.json +3 -3
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;AAycD,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
|
|
@@ -83,6 +138,7 @@ async function submitToClawTrail(adapter, sessionId, submitUrl, apiKey, api, cgR
|
|
|
83
138
|
const chainState = await loadChainState(cgRoot);
|
|
84
139
|
const chainOpts = {
|
|
85
140
|
blockNumber: chainState.nextBlockNumber,
|
|
141
|
+
sessionType,
|
|
86
142
|
};
|
|
87
143
|
if (chainState.lastSubmission) {
|
|
88
144
|
chainOpts.previousBlock = {
|
|
@@ -90,26 +146,29 @@ async function submitToClawTrail(adapter, sessionId, submitUrl, apiKey, api, cgR
|
|
|
90
146
|
submissionId: chainState.lastSubmission.submissionId,
|
|
91
147
|
merkleRoot: chainState.lastSubmission.merkleRoot,
|
|
92
148
|
payloadHash: chainState.lastSubmission.payloadHash,
|
|
93
|
-
...(chainState.lastSubmission.dkgUal
|
|
149
|
+
...(chainState.lastSubmission.dkgUal
|
|
150
|
+
? { dkgUal: chainState.lastSubmission.dkgUal }
|
|
151
|
+
: {}),
|
|
94
152
|
};
|
|
95
153
|
}
|
|
96
154
|
for (let attempt = 0; attempt <= MAX_RETRIES; attempt++) {
|
|
97
155
|
try {
|
|
98
156
|
const { signed } = await adapter.summarizeAndSign(sessionId, chainOpts);
|
|
99
157
|
if (!signed) {
|
|
100
|
-
log(api,
|
|
158
|
+
log(api, "warn", "No signed submission produced — skipping auto-submit");
|
|
101
159
|
return;
|
|
102
160
|
}
|
|
103
|
-
// Include chain metadata in the submission body
|
|
161
|
+
// Include chain metadata and session type in the submission body
|
|
104
162
|
const submissionBody = {
|
|
105
163
|
...signed,
|
|
106
164
|
chainBlockNumber: chainOpts.blockNumber,
|
|
107
165
|
previousSubmissionId: chainState.lastSubmission?.submissionId ?? null,
|
|
166
|
+
sessionType,
|
|
108
167
|
};
|
|
109
168
|
const response = await fetch(submitUrl, {
|
|
110
|
-
method:
|
|
169
|
+
method: "POST",
|
|
111
170
|
headers: {
|
|
112
|
-
|
|
171
|
+
"Content-Type": "application/json",
|
|
113
172
|
Authorization: `Bearer ${apiKey}`,
|
|
114
173
|
},
|
|
115
174
|
body: JSON.stringify(submissionBody),
|
|
@@ -117,7 +176,7 @@ async function submitToClawTrail(adapter, sessionId, submitUrl, apiKey, api, cgR
|
|
|
117
176
|
});
|
|
118
177
|
if (response.ok) {
|
|
119
178
|
const result = (await response.json());
|
|
120
|
-
log(api,
|
|
179
|
+
log(api, "info", `Submitted session ${sessionId}:`, `type=${sessionType},`, `submissionId=${result.submissionId},`, `block=#${result.chainBlockNumber ?? chainOpts.blockNumber},`, `claims=${result.claimsExtracted}`);
|
|
121
180
|
// Save chain state for next submission
|
|
122
181
|
if (result.submissionId) {
|
|
123
182
|
await saveChainState(cgRoot, {
|
|
@@ -128,34 +187,125 @@ async function submitToClawTrail(adapter, sessionId, submitUrl, apiKey, api, cgR
|
|
|
128
187
|
payloadHash: signed.payloadHash,
|
|
129
188
|
blockNumber: result.chainBlockNumber ?? chainOpts.blockNumber ?? 1,
|
|
130
189
|
},
|
|
190
|
+
lastSubmittedAt: Date.now(),
|
|
131
191
|
});
|
|
132
192
|
}
|
|
133
193
|
return;
|
|
134
194
|
}
|
|
135
|
-
const errorBody = await response.text().catch(() =>
|
|
136
|
-
log(api,
|
|
195
|
+
const errorBody = await response.text().catch(() => "");
|
|
196
|
+
log(api, "warn", `Submit failed (HTTP ${response.status}):`, errorBody.slice(0, 200));
|
|
137
197
|
// Don't retry client errors (bad request, auth failure, etc.)
|
|
138
198
|
if (response.status >= 400 && response.status < 500)
|
|
139
199
|
return;
|
|
140
200
|
}
|
|
141
201
|
catch (err) {
|
|
142
|
-
log(api,
|
|
202
|
+
log(api, "warn", `Submit error (attempt ${attempt + 1}):`, err instanceof Error ? err.message : String(err));
|
|
143
203
|
}
|
|
144
204
|
if (attempt < MAX_RETRIES) {
|
|
145
205
|
await new Promise((r) => setTimeout(r, RETRY_DELAY));
|
|
146
206
|
}
|
|
147
207
|
}
|
|
148
208
|
}
|
|
209
|
+
// ── Catch-Up System ─────────────────────────────────────────────────
|
|
210
|
+
/**
|
|
211
|
+
* Detect gaps in the submission chain and submit retroactive blocks.
|
|
212
|
+
*
|
|
213
|
+
* When the agent was offline (process not running) or the context graph
|
|
214
|
+
* plugin failed to submit, there will be a gap between `lastSubmittedAt`
|
|
215
|
+
* and the current time. This function:
|
|
216
|
+
*
|
|
217
|
+
* 1. Detects the gap duration
|
|
218
|
+
* 2. Fetches all decisions from the API for the missed period
|
|
219
|
+
* 3. Groups decisions into 5-minute windows
|
|
220
|
+
* 4. For each window: creates a session, logs events (or none), submits
|
|
221
|
+
* - Windows WITH decisions → 'active' blocks
|
|
222
|
+
* - Windows WITHOUT decisions → 'offline' blocks (proves downtime)
|
|
223
|
+
*
|
|
224
|
+
* Returns true if catch-up was performed, false if no gap detected.
|
|
225
|
+
*/
|
|
226
|
+
async function runCatchUp(adapter, api, cfg, cgRoot, windowMs) {
|
|
227
|
+
const submitUrl = cfg.submitUrl;
|
|
228
|
+
const apiKey = cfg.apiKey;
|
|
229
|
+
if (!submitUrl || !apiKey)
|
|
230
|
+
return false;
|
|
231
|
+
const chainState = await loadChainState(cgRoot);
|
|
232
|
+
// No history — can't determine gap. Let normal flow handle first block.
|
|
233
|
+
if (!chainState.lastSubmittedAt)
|
|
234
|
+
return false;
|
|
235
|
+
const now = Date.now();
|
|
236
|
+
const gapMs = now - chainState.lastSubmittedAt;
|
|
237
|
+
// Only catch up if gap is at least 2 windows (10+ minutes).
|
|
238
|
+
// Single-window gaps are handled by normal session recycling.
|
|
239
|
+
if (gapMs < windowMs * 2)
|
|
240
|
+
return false;
|
|
241
|
+
const missedWindows = Math.floor(gapMs / windowMs);
|
|
242
|
+
log(api, "info", `Catch-up: detected gap of ${Math.round(gapMs / 60_000)}min (${missedWindows} windows) since last submission`);
|
|
243
|
+
// Fetch all decisions for the missed period
|
|
244
|
+
const baseUrl = deriveBaseUrl(submitUrl);
|
|
245
|
+
const agentIdStr = cfg.agentId || "unknown";
|
|
246
|
+
const allDecisions = await fetchAllDecisions(baseUrl, apiKey, agentIdStr, chainState.lastSubmittedAt, now);
|
|
247
|
+
log(api, "info", `Catch-up: found ${allDecisions.length} decisions in missed period`);
|
|
248
|
+
// Cap catch-up at 100 blocks per run to avoid blocking the process too long.
|
|
249
|
+
// If gap is bigger, remaining blocks will be caught up on next cycle.
|
|
250
|
+
const MAX_CATCHUP_BLOCKS = 100;
|
|
251
|
+
const blocksToSubmit = Math.min(missedWindows, MAX_CATCHUP_BLOCKS);
|
|
252
|
+
let submitted = 0;
|
|
253
|
+
for (let i = 0; i < blocksToSubmit; i++) {
|
|
254
|
+
const windowStart = chainState.lastSubmittedAt + i * windowMs;
|
|
255
|
+
const windowEnd = windowStart + windowMs;
|
|
256
|
+
// Find decisions that fall within this window
|
|
257
|
+
const windowDecisions = allDecisions.filter((d) => d.created_at >= windowStart && d.created_at < windowEnd);
|
|
258
|
+
const sessionType = windowDecisions.length > 0 ? "active" : "offline";
|
|
259
|
+
try {
|
|
260
|
+
// Create ephemeral session for this catch-up block
|
|
261
|
+
const sessionKey = `catchup:${windowStart}`;
|
|
262
|
+
const agentId = cfg.agentId || undefined;
|
|
263
|
+
const ctx = createSessionContext(sessionKey, `catch-up:${sessionType}`, agentId);
|
|
264
|
+
const session = await adapter.onSessionStart(ctx);
|
|
265
|
+
// Log decisions as AGENT_ACTION events (if any)
|
|
266
|
+
for (const d of windowDecisions) {
|
|
267
|
+
await adapter.logExternalEvent(session.meta.session_id, {
|
|
268
|
+
type: "AGENT_ACTION",
|
|
269
|
+
status: "SUCCEEDED",
|
|
270
|
+
data: {
|
|
271
|
+
action: d.action,
|
|
272
|
+
target_type: d.target_type ?? null,
|
|
273
|
+
target_id: d.target_id ?? null,
|
|
274
|
+
decision: d.decision,
|
|
275
|
+
reasoning_hash: d.reasoning ? sha256(d.reasoning) : null,
|
|
276
|
+
},
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
// End session
|
|
280
|
+
await adapter.onSessionEnd(ctx);
|
|
281
|
+
// Submit
|
|
282
|
+
await submitToClawTrail(adapter, session.meta.session_id, submitUrl, apiKey, api, cgRoot, sessionType);
|
|
283
|
+
submitted++;
|
|
284
|
+
// Brief delay to avoid hammering the API
|
|
285
|
+
if (i < blocksToSubmit - 1) {
|
|
286
|
+
await new Promise((r) => setTimeout(r, 300));
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
catch (err) {
|
|
290
|
+
log(api, "warn", `Catch-up block ${i + 1} failed:`, err);
|
|
291
|
+
// Stop catch-up on first failure — chain state is already saved for
|
|
292
|
+
// the last successful block, so next run picks up from there
|
|
293
|
+
break;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
log(api, "info", `Catch-up: submitted ${submitted}/${blocksToSubmit} blocks (${allDecisions.length} decisions total)`);
|
|
297
|
+
return submitted > 0;
|
|
298
|
+
}
|
|
149
299
|
// ── Plugin Register Function ────────────────────────────────────────
|
|
150
300
|
export default function register(api) {
|
|
151
301
|
// 1. Read config
|
|
152
|
-
const pluginEntry = api.config?.plugins?.entries?.[
|
|
302
|
+
const pluginEntry = api.config?.plugins?.entries?.["context-graph"];
|
|
153
303
|
const cfg = (pluginEntry?.config ?? {});
|
|
154
304
|
if (cfg.enabled === false)
|
|
155
305
|
return;
|
|
156
306
|
// 2. Create adapter — resolve contextGraphRoot to absolute path so it
|
|
157
307
|
// survives any cwd changes during tool call execution.
|
|
158
|
-
const cgRoot = resolve(cfg.contextGraphRoot ??
|
|
308
|
+
const cgRoot = resolve(cfg.contextGraphRoot ?? ".context-graph");
|
|
159
309
|
const adapter = new OpenClawAdapter({
|
|
160
310
|
enabled: true,
|
|
161
311
|
contextGraphRoot: cgRoot,
|
|
@@ -168,6 +318,8 @@ export default function register(api) {
|
|
|
168
318
|
});
|
|
169
319
|
// 3. Session map — keyed by OpenClaw sessionKey
|
|
170
320
|
const sessions = new Map();
|
|
321
|
+
// Track whether catch-up has run this process lifecycle
|
|
322
|
+
let catchUpDone = false;
|
|
171
323
|
// Helper: lazily create a session if one doesn't exist yet.
|
|
172
324
|
// The embedded heartbeat agent doesn't fire session_start, so we
|
|
173
325
|
// create a session on the first after_tool_call or llm_output event.
|
|
@@ -178,7 +330,7 @@ export default function register(api) {
|
|
|
178
330
|
try {
|
|
179
331
|
const sessionKey = `auto:${Date.now()}`;
|
|
180
332
|
const agentId = cfg.agentId || undefined;
|
|
181
|
-
const ctx = createSessionContext(sessionKey,
|
|
333
|
+
const ctx = createSessionContext(sessionKey, "auto-session", agentId);
|
|
182
334
|
const session = await adapter.onSessionStart(ctx);
|
|
183
335
|
const state = {
|
|
184
336
|
ctx,
|
|
@@ -187,15 +339,15 @@ export default function register(api) {
|
|
|
187
339
|
eventCount: 0,
|
|
188
340
|
};
|
|
189
341
|
sessions.set(sessionKey, state);
|
|
190
|
-
log(api,
|
|
342
|
+
log(api, "info", `Session auto-started: ${session.meta.session_id}`);
|
|
191
343
|
return state;
|
|
192
344
|
}
|
|
193
345
|
catch (err) {
|
|
194
|
-
log(api,
|
|
346
|
+
log(api, "warn", "Failed to auto-start session:", err);
|
|
195
347
|
return undefined;
|
|
196
348
|
}
|
|
197
349
|
}
|
|
198
|
-
// Helper: end session and
|
|
350
|
+
// Helper: end session and submit (always — idle blocks are valuable)
|
|
199
351
|
async function endSessionAndSubmit(sessionKey) {
|
|
200
352
|
const state = sessions.get(sessionKey);
|
|
201
353
|
if (!state)
|
|
@@ -211,15 +363,15 @@ export default function register(api) {
|
|
|
211
363
|
if (autoSubmit && submitUrl && apiKey) {
|
|
212
364
|
try {
|
|
213
365
|
const baseUrl = deriveBaseUrl(submitUrl);
|
|
214
|
-
const agentIdStr = cfg.agentId ||
|
|
366
|
+
const agentIdStr = cfg.agentId || "unknown";
|
|
215
367
|
const decisions = await fetchDecisions(baseUrl, apiKey, agentIdStr, state.startedAt);
|
|
216
368
|
if (decisions.length > 0) {
|
|
217
|
-
log(api,
|
|
369
|
+
log(api, "info", `Fetched ${decisions.length} decisions for session ${state.sessionId}`);
|
|
218
370
|
}
|
|
219
371
|
for (const d of decisions) {
|
|
220
372
|
await adapter.logExternalEvent(state.sessionId, {
|
|
221
|
-
type:
|
|
222
|
-
status:
|
|
373
|
+
type: "AGENT_ACTION",
|
|
374
|
+
status: "SUCCEEDED",
|
|
223
375
|
data: {
|
|
224
376
|
action: d.action,
|
|
225
377
|
target_type: d.target_type ?? null,
|
|
@@ -232,34 +384,28 @@ export default function register(api) {
|
|
|
232
384
|
}
|
|
233
385
|
}
|
|
234
386
|
catch (err) {
|
|
235
|
-
log(api,
|
|
387
|
+
log(api, "warn", "Failed to fetch decisions:", err);
|
|
236
388
|
}
|
|
237
389
|
}
|
|
238
|
-
//
|
|
239
|
-
// means the agent did nothing (e.g. LLM quota exhausted, API errors).
|
|
240
|
-
// Avoids cluttering the chain with 0-action blocks.
|
|
390
|
+
// Determine session type: active (has events/decisions) or idle (online but nothing happened)
|
|
241
391
|
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
|
-
}
|
|
392
|
+
const sessionType = totalEvents > 0 ? "active" : "idle";
|
|
247
393
|
// Now end the session — marks it COMPLETED
|
|
248
394
|
await adapter.onSessionEnd(state.ctx);
|
|
249
395
|
if (autoSubmit && submitUrl && apiKey) {
|
|
250
|
-
await submitToClawTrail(adapter, state.sessionId, submitUrl, apiKey, api, cgRoot);
|
|
396
|
+
await submitToClawTrail(adapter, state.sessionId, submitUrl, apiKey, api, cgRoot, sessionType);
|
|
251
397
|
}
|
|
252
398
|
}
|
|
253
399
|
catch (err) {
|
|
254
|
-
log(api,
|
|
400
|
+
log(api, "error", "Error ending session:", err);
|
|
255
401
|
}
|
|
256
402
|
finally {
|
|
257
403
|
sessions.delete(sessionKey);
|
|
258
404
|
}
|
|
259
405
|
}
|
|
260
406
|
// ── Require api.on() — the typed hook API (OpenClaw 2026.2+) ───────
|
|
261
|
-
if (typeof api.on !==
|
|
262
|
-
log(api,
|
|
407
|
+
if (typeof api.on !== "function") {
|
|
408
|
+
log(api, "warn", "api.on() not available — hooks will not fire. Upgrade OpenClaw to 2026.2+");
|
|
263
409
|
return;
|
|
264
410
|
}
|
|
265
411
|
const on = api.on; // bind for TS narrowing
|
|
@@ -267,15 +413,17 @@ export default function register(api) {
|
|
|
267
413
|
// OpenClaw fires session_start(event, ctx) where:
|
|
268
414
|
// event = { sessionId, resumedFrom? }
|
|
269
415
|
// ctx = { sessionId, agentId }
|
|
270
|
-
on(
|
|
416
|
+
on("session_start", async (...args) => {
|
|
271
417
|
try {
|
|
272
418
|
const event = (args[0] ?? {});
|
|
273
419
|
const hookCtx = (args[1] ?? {});
|
|
274
|
-
const sessionId = hookCtx.sessionId ||
|
|
420
|
+
const sessionId = hookCtx.sessionId ||
|
|
421
|
+
event.sessionId ||
|
|
422
|
+
"default";
|
|
275
423
|
const agentId = hookCtx.agentId || cfg.agentId || undefined;
|
|
276
424
|
if (sessions.has(sessionId))
|
|
277
425
|
return;
|
|
278
|
-
const ctx = createSessionContext(sessionId,
|
|
426
|
+
const ctx = createSessionContext(sessionId, "session", agentId);
|
|
279
427
|
const session = await adapter.onSessionStart(ctx);
|
|
280
428
|
sessions.set(sessionId, {
|
|
281
429
|
ctx,
|
|
@@ -283,28 +431,28 @@ export default function register(api) {
|
|
|
283
431
|
startedAt: Date.now(),
|
|
284
432
|
eventCount: 0,
|
|
285
433
|
});
|
|
286
|
-
log(api,
|
|
434
|
+
log(api, "info", `Session started: ${session.meta.session_id}`);
|
|
287
435
|
}
|
|
288
436
|
catch (err) {
|
|
289
|
-
log(api,
|
|
437
|
+
log(api, "warn", "Failed to start session:", err);
|
|
290
438
|
}
|
|
291
439
|
});
|
|
292
440
|
// ── Hook: after_tool_call → capture tool call (async) ─────────────
|
|
293
441
|
// OpenClaw fires after_tool_call(event, ctx) where:
|
|
294
442
|
// event = { toolName, params, result } or { toolName, params, error }
|
|
295
443
|
// ctx = { toolName }
|
|
296
|
-
on(
|
|
444
|
+
on("after_tool_call", async (...args) => {
|
|
297
445
|
try {
|
|
298
446
|
const event = (args[0] ?? {});
|
|
299
447
|
// Find or lazily create a session
|
|
300
448
|
const state = await ensureSession();
|
|
301
449
|
if (!state)
|
|
302
450
|
return;
|
|
303
|
-
const toolName = event.toolName ||
|
|
451
|
+
const toolName = event.toolName || "unknown";
|
|
304
452
|
const params = (event.params ?? {});
|
|
305
453
|
const result = (event.result ?? {});
|
|
306
454
|
const error = event.error
|
|
307
|
-
? typeof event.error ===
|
|
455
|
+
? typeof event.error === "string"
|
|
308
456
|
? new Error(event.error)
|
|
309
457
|
: event.error instanceof Error
|
|
310
458
|
? event.error
|
|
@@ -320,17 +468,17 @@ export default function register(api) {
|
|
|
320
468
|
state.eventCount++;
|
|
321
469
|
}
|
|
322
470
|
catch (err) {
|
|
323
|
-
log(api,
|
|
471
|
+
log(api, "warn", "Failed to capture tool result:", err);
|
|
324
472
|
}
|
|
325
473
|
});
|
|
326
474
|
// ── Hook: llm_output → capture HTTP references from LLM text ──────
|
|
327
475
|
// OpenClaw fires llm_output(event, ctx) where:
|
|
328
476
|
// event = { content, model?, usage?, toolCalls? }
|
|
329
477
|
// ctx = { sessionId?, agentId? }
|
|
330
|
-
on(
|
|
478
|
+
on("llm_output", async (...args) => {
|
|
331
479
|
try {
|
|
332
480
|
const event = (args[0] ?? {});
|
|
333
|
-
const content = event.content ||
|
|
481
|
+
const content = event.content || "";
|
|
334
482
|
if (!content)
|
|
335
483
|
return;
|
|
336
484
|
// Find or lazily create a session
|
|
@@ -341,11 +489,15 @@ export default function register(api) {
|
|
|
341
489
|
state.eventCount++;
|
|
342
490
|
}
|
|
343
491
|
catch (err) {
|
|
344
|
-
log(api,
|
|
492
|
+
log(api, "warn", "Failed to process LLM output:", err);
|
|
345
493
|
}
|
|
346
494
|
});
|
|
347
495
|
// ── Hooks: session_end, before_reset, gateway_stop → end session ───
|
|
348
|
-
for (const hookName of [
|
|
496
|
+
for (const hookName of [
|
|
497
|
+
"session_end",
|
|
498
|
+
"before_reset",
|
|
499
|
+
"gateway_stop",
|
|
500
|
+
]) {
|
|
349
501
|
on(hookName, async (...args) => {
|
|
350
502
|
const event = (args[0] ?? {});
|
|
351
503
|
const hookCtx = (args[1] ?? {});
|
|
@@ -361,16 +513,26 @@ export default function register(api) {
|
|
|
361
513
|
}
|
|
362
514
|
});
|
|
363
515
|
}
|
|
364
|
-
// ── Hook: agent_end → session recycling
|
|
365
|
-
// agent_end fires after every heartbeat run (~
|
|
366
|
-
// 1.
|
|
367
|
-
// 2.
|
|
516
|
+
// ── Hook: agent_end → session recycling + catch-up ────────────────
|
|
517
|
+
// agent_end fires after every heartbeat run (~5min). We use it to:
|
|
518
|
+
// 1. Run catch-up on first invocation (if agent was offline)
|
|
519
|
+
// 2. Ensure a session always exists (create one if none)
|
|
520
|
+
// 3. Recycle sessions that are older than SESSION_MAX_AGE_MS
|
|
368
521
|
// (submit the old one, start a fresh one)
|
|
369
|
-
//
|
|
370
|
-
// no synthetic heartbeat events are injected.
|
|
522
|
+
// ALL sessions get submitted — idle blocks prove the agent was online.
|
|
371
523
|
const SESSION_MAX_AGE_MS = 5 * 60_000; // 5 minutes
|
|
372
|
-
on(
|
|
524
|
+
on("agent_end", async () => {
|
|
373
525
|
try {
|
|
526
|
+
// Run catch-up once on first agent_end after process start
|
|
527
|
+
if (!catchUpDone) {
|
|
528
|
+
catchUpDone = true;
|
|
529
|
+
try {
|
|
530
|
+
await runCatchUp(adapter, api, cfg, cgRoot, SESSION_MAX_AGE_MS);
|
|
531
|
+
}
|
|
532
|
+
catch (err) {
|
|
533
|
+
log(api, "warn", "Catch-up failed:", err);
|
|
534
|
+
}
|
|
535
|
+
}
|
|
374
536
|
const current = sessions.values().next().value;
|
|
375
537
|
if (!current) {
|
|
376
538
|
// No session exists — create one so the next cycle captures events
|
|
@@ -381,7 +543,7 @@ export default function register(api) {
|
|
|
381
543
|
if (age < SESSION_MAX_AGE_MS)
|
|
382
544
|
return; // session still fresh
|
|
383
545
|
// Session is old enough to recycle — fetch real decisions and submit
|
|
384
|
-
log(api,
|
|
546
|
+
log(api, "info", `Recycling session (age=${Math.round(age / 1000)}s, events=${current.eventCount})`);
|
|
385
547
|
for (const [key, state] of sessions) {
|
|
386
548
|
if (state === current) {
|
|
387
549
|
await endSessionAndSubmit(key);
|
|
@@ -392,30 +554,30 @@ export default function register(api) {
|
|
|
392
554
|
await ensureSession();
|
|
393
555
|
}
|
|
394
556
|
catch (err) {
|
|
395
|
-
log(api,
|
|
557
|
+
log(api, "warn", "Session recycle error:", err);
|
|
396
558
|
}
|
|
397
559
|
});
|
|
398
560
|
// ── Agent tools (optional — depends on api.registerTool) ──────────
|
|
399
|
-
if (typeof api.registerTool ===
|
|
561
|
+
if (typeof api.registerTool === "function") {
|
|
400
562
|
api.registerTool({
|
|
401
|
-
name:
|
|
402
|
-
description:
|
|
403
|
-
parameters: { type:
|
|
563
|
+
name: "context_graph_status",
|
|
564
|
+
description: "Check current context graph session status, event count, and capture health.",
|
|
565
|
+
parameters: { type: "object", properties: {} },
|
|
404
566
|
handler: async (_params, ctx) => {
|
|
405
|
-
const key = ctx.sessionKey ||
|
|
567
|
+
const key = ctx.sessionKey || "default";
|
|
406
568
|
const state = sessions.get(key);
|
|
407
569
|
return adapter.getStatus(state?.sessionId);
|
|
408
570
|
},
|
|
409
571
|
});
|
|
410
572
|
api.registerTool({
|
|
411
|
-
name:
|
|
412
|
-
description:
|
|
413
|
-
parameters: { type:
|
|
573
|
+
name: "context_graph_summarize",
|
|
574
|
+
description: "Generate metrics and derived claims for the current session.",
|
|
575
|
+
parameters: { type: "object", properties: {} },
|
|
414
576
|
handler: async (_params, ctx) => {
|
|
415
|
-
const key = ctx.sessionKey ||
|
|
577
|
+
const key = ctx.sessionKey || "default";
|
|
416
578
|
const state = sessions.get(key);
|
|
417
579
|
if (!state)
|
|
418
|
-
return { status:
|
|
580
|
+
return { status: "no_active_session" };
|
|
419
581
|
const { summary, signed } = await adapter.summarizeAndSign(state.sessionId);
|
|
420
582
|
return {
|
|
421
583
|
...summary,
|
|
@@ -429,6 +591,6 @@ export default function register(api) {
|
|
|
429
591
|
},
|
|
430
592
|
});
|
|
431
593
|
}
|
|
432
|
-
log(api,
|
|
594
|
+
log(api, "info", "Plugin registered — provenance capture active (catch-up enabled)");
|
|
433
595
|
}
|
|
434
596
|
//# 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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@clawtrail/context-graph-openclaw",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "OpenClaw adapter for @clawtrail/context-graph — captures agent execution traces as PROV-O events",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -43,10 +43,10 @@
|
|
|
43
43
|
"node": ">=20"
|
|
44
44
|
},
|
|
45
45
|
"peerDependencies": {
|
|
46
|
-
"@clawtrail/context-graph": "^0.
|
|
46
|
+
"@clawtrail/context-graph": "^0.3.0"
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@clawtrail/context-graph": "^0.
|
|
49
|
+
"@clawtrail/context-graph": "^0.3.0"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"@types/node": "^22.0.0",
|