@clawtrail/context-graph-openclaw 0.5.1 → 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.
@@ -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":"AAWA,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;CAC7C;AAWD,+EAA+E;AAC/E,wBAAsB,cAAc,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAYlF;AAED,6DAA6D;AAC7D,wBAAsB,cAAc,CAClC,gBAAgB,EAAE,MAAM,EACxB,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC,IAAI,CAAC,CAIf"}
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"}
@@ -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 'node:fs/promises';
10
- import { join, dirname } from 'node:path';
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, 'chain-state.json');
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), 'utf-8');
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 !== 'number' || parsed.nextBlockNumber < 1) {
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), 'utf-8');
47
+ await writeFile(filePath, JSON.stringify(state, null, 2), "utf-8");
38
48
  }
39
49
  //# sourceMappingURL=chain-state.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chain-state.js","sourceRoot":"","sources":["../src/chain-state.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAe1C,MAAM,aAAa,GAAe;IAChC,eAAe,EAAE,CAAC;IAClB,cAAc,EAAE,IAAI;CACrB,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,CAAC,gBAAwB;IAC3D,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,IAAI,OAAO,MAAM,CAAC,eAAe,KAAK,QAAQ,IAAI,MAAM,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC;YAC7E,OAAO,aAAa,CAAC;QACvB,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"}
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"}
@@ -1,5 +1,5 @@
1
1
  /** Hook event names as defined in OpenClaw's PluginHookName type */
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';
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?: {
@@ -1 +1 @@
1
- {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAgBA,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;AAsND,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CA2TrD"}
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 'node:crypto';
9
- import { resolve } from 'node:path';
10
- import { OpenClawAdapter } from './OpenClawAdapter.js';
11
- import { loadChainState, saveChainState } from './chain-state.js';
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 = '[context-graph]';
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 + ' ' + args.map(a => a instanceof Error ? a.message : typeof a === 'string' ? a : JSON.stringify(a)).join(' ');
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('/api/');
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('sha256').update(input).digest('hex');
59
+ return createHash("sha256").update(input).digest("hex");
47
60
  }
48
61
  /**
49
- * Fetch agent decisions from ClawTrail API since a given timestamp.
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
- const url = `${baseUrl}/api/agents/${encodeURIComponent(agentId)}/decisions?since=${sinceMs}&limit=100`;
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 || 'unknown',
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
- async function submitToClawTrail(adapter, sessionId, submitUrl, apiKey, api, cgRoot) {
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 ? { dkgUal: 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, 'warn', 'No signed submission produced — skipping auto-submit');
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: 'POST',
168
+ method: "POST",
111
169
  headers: {
112
- 'Content-Type': 'application/json',
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, 'info', `Submitted session ${sessionId}:`, `submissionId=${result.submissionId},`, `block=#${result.chainBlockNumber ?? chainOpts.blockNumber},`, `claims=${result.claimsExtracted}`);
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, 'warn', `Submit failed (HTTP ${response.status}):`, errorBody.slice(0, 200));
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, 'warn', `Submit error (attempt ${attempt + 1}):`, err instanceof Error ? err.message : String(err));
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?.['context-graph'];
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 ?? '.context-graph');
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, 'auto-session', agentId);
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, 'info', `Session auto-started: ${session.meta.session_id}`);
341
+ log(api, "info", `Session auto-started: ${session.meta.session_id}`);
191
342
  return state;
192
343
  }
193
344
  catch (err) {
194
- log(api, 'warn', 'Failed to auto-start session:', err);
345
+ log(api, "warn", "Failed to auto-start session:", err);
195
346
  return undefined;
196
347
  }
197
348
  }
198
- // Helper: end session and optionally submit
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)
@@ -207,18 +358,19 @@ export default function register(api) {
207
358
  // Fetch and log real decisions BEFORE ending the session.
208
359
  // logExternalEvent rejects events on COMPLETED sessions, so
209
360
  // decisions must be injected while the session is still ACTIVE.
361
+ let decisionsLogged = 0;
210
362
  if (autoSubmit && submitUrl && apiKey) {
211
363
  try {
212
364
  const baseUrl = deriveBaseUrl(submitUrl);
213
- const agentIdStr = cfg.agentId || 'unknown';
365
+ const agentIdStr = cfg.agentId || "unknown";
214
366
  const decisions = await fetchDecisions(baseUrl, apiKey, agentIdStr, state.startedAt);
215
367
  if (decisions.length > 0) {
216
- log(api, 'info', `Fetched ${decisions.length} decisions for session ${state.sessionId}`);
368
+ log(api, "info", `Fetched ${decisions.length} decisions for session ${state.sessionId}`);
217
369
  }
218
370
  for (const d of decisions) {
219
371
  await adapter.logExternalEvent(state.sessionId, {
220
- type: 'AGENT_ACTION',
221
- status: 'SUCCEEDED',
372
+ type: "AGENT_ACTION",
373
+ status: "SUCCEEDED",
222
374
  data: {
223
375
  action: d.action,
224
376
  target_type: d.target_type ?? null,
@@ -227,28 +379,32 @@ export default function register(api) {
227
379
  reasoning_hash: d.reasoning ? sha256(d.reasoning) : null,
228
380
  },
229
381
  });
382
+ decisionsLogged++;
230
383
  }
231
384
  }
232
385
  catch (err) {
233
- log(api, 'warn', 'Failed to fetch decisions:', err);
386
+ log(api, "warn", "Failed to fetch decisions:", err);
234
387
  }
235
388
  }
389
+ // Determine session type: active (has events/decisions) or idle (online but nothing happened)
390
+ const totalEvents = state.eventCount + decisionsLogged;
391
+ const sessionType = totalEvents > 0 ? "active" : "idle";
236
392
  // Now end the session — marks it COMPLETED
237
393
  await adapter.onSessionEnd(state.ctx);
238
394
  if (autoSubmit && submitUrl && apiKey) {
239
- await submitToClawTrail(adapter, state.sessionId, submitUrl, apiKey, api, cgRoot);
395
+ await submitToClawTrail(adapter, state.sessionId, submitUrl, apiKey, api, cgRoot, sessionType);
240
396
  }
241
397
  }
242
398
  catch (err) {
243
- log(api, 'error', 'Error ending session:', err);
399
+ log(api, "error", "Error ending session:", err);
244
400
  }
245
401
  finally {
246
402
  sessions.delete(sessionKey);
247
403
  }
248
404
  }
249
405
  // ── Require api.on() — the typed hook API (OpenClaw 2026.2+) ───────
250
- if (typeof api.on !== 'function') {
251
- log(api, 'warn', 'api.on() not available — hooks will not fire. Upgrade OpenClaw to 2026.2+');
406
+ if (typeof api.on !== "function") {
407
+ log(api, "warn", "api.on() not available — hooks will not fire. Upgrade OpenClaw to 2026.2+");
252
408
  return;
253
409
  }
254
410
  const on = api.on; // bind for TS narrowing
@@ -256,15 +412,17 @@ export default function register(api) {
256
412
  // OpenClaw fires session_start(event, ctx) where:
257
413
  // event = { sessionId, resumedFrom? }
258
414
  // ctx = { sessionId, agentId }
259
- on('session_start', async (...args) => {
415
+ on("session_start", async (...args) => {
260
416
  try {
261
417
  const event = (args[0] ?? {});
262
418
  const hookCtx = (args[1] ?? {});
263
- const sessionId = hookCtx.sessionId || event.sessionId || 'default';
419
+ const sessionId = hookCtx.sessionId ||
420
+ event.sessionId ||
421
+ "default";
264
422
  const agentId = hookCtx.agentId || cfg.agentId || undefined;
265
423
  if (sessions.has(sessionId))
266
424
  return;
267
- const ctx = createSessionContext(sessionId, 'session', agentId);
425
+ const ctx = createSessionContext(sessionId, "session", agentId);
268
426
  const session = await adapter.onSessionStart(ctx);
269
427
  sessions.set(sessionId, {
270
428
  ctx,
@@ -272,28 +430,28 @@ export default function register(api) {
272
430
  startedAt: Date.now(),
273
431
  eventCount: 0,
274
432
  });
275
- log(api, 'info', `Session started: ${session.meta.session_id}`);
433
+ log(api, "info", `Session started: ${session.meta.session_id}`);
276
434
  }
277
435
  catch (err) {
278
- log(api, 'warn', 'Failed to start session:', err);
436
+ log(api, "warn", "Failed to start session:", err);
279
437
  }
280
438
  });
281
439
  // ── Hook: after_tool_call → capture tool call (async) ─────────────
282
440
  // OpenClaw fires after_tool_call(event, ctx) where:
283
441
  // event = { toolName, params, result } or { toolName, params, error }
284
442
  // ctx = { toolName }
285
- on('after_tool_call', async (...args) => {
443
+ on("after_tool_call", async (...args) => {
286
444
  try {
287
445
  const event = (args[0] ?? {});
288
446
  // Find or lazily create a session
289
447
  const state = await ensureSession();
290
448
  if (!state)
291
449
  return;
292
- const toolName = event.toolName || 'unknown';
450
+ const toolName = event.toolName || "unknown";
293
451
  const params = (event.params ?? {});
294
452
  const result = (event.result ?? {});
295
453
  const error = event.error
296
- ? typeof event.error === 'string'
454
+ ? typeof event.error === "string"
297
455
  ? new Error(event.error)
298
456
  : event.error instanceof Error
299
457
  ? event.error
@@ -309,17 +467,17 @@ export default function register(api) {
309
467
  state.eventCount++;
310
468
  }
311
469
  catch (err) {
312
- log(api, 'warn', 'Failed to capture tool result:', err);
470
+ log(api, "warn", "Failed to capture tool result:", err);
313
471
  }
314
472
  });
315
473
  // ── Hook: llm_output → capture HTTP references from LLM text ──────
316
474
  // OpenClaw fires llm_output(event, ctx) where:
317
475
  // event = { content, model?, usage?, toolCalls? }
318
476
  // ctx = { sessionId?, agentId? }
319
- on('llm_output', async (...args) => {
477
+ on("llm_output", async (...args) => {
320
478
  try {
321
479
  const event = (args[0] ?? {});
322
- const content = event.content || '';
480
+ const content = event.content || "";
323
481
  if (!content)
324
482
  return;
325
483
  // Find or lazily create a session
@@ -330,11 +488,15 @@ export default function register(api) {
330
488
  state.eventCount++;
331
489
  }
332
490
  catch (err) {
333
- log(api, 'warn', 'Failed to process LLM output:', err);
491
+ log(api, "warn", "Failed to process LLM output:", err);
334
492
  }
335
493
  });
336
494
  // ── Hooks: session_end, before_reset, gateway_stop → end session ───
337
- for (const hookName of ['session_end', 'before_reset', 'gateway_stop']) {
495
+ for (const hookName of [
496
+ "session_end",
497
+ "before_reset",
498
+ "gateway_stop",
499
+ ]) {
338
500
  on(hookName, async (...args) => {
339
501
  const event = (args[0] ?? {});
340
502
  const hookCtx = (args[1] ?? {});
@@ -350,16 +512,26 @@ export default function register(api) {
350
512
  }
351
513
  });
352
514
  }
353
- // ── Hook: agent_end → session recycling (keeps context graph always on) ──
354
- // agent_end fires after every heartbeat run (~30s). We use it to:
355
- // 1. Ensure a session always exists (create one if none)
356
- // 2. Recycle sessions that are older than SESSION_MAX_AGE_MS
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
357
520
  // (submit the old one, start a fresh one)
358
- // Real events are fetched from the ClawTrail decisions API at submit time —
359
- // no synthetic heartbeat events are injected.
521
+ // ALL sessions get submitted idle blocks prove the agent was online.
360
522
  const SESSION_MAX_AGE_MS = 5 * 60_000; // 5 minutes
361
- on('agent_end', async () => {
523
+ on("agent_end", async () => {
362
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
+ }
363
535
  const current = sessions.values().next().value;
364
536
  if (!current) {
365
537
  // No session exists — create one so the next cycle captures events
@@ -370,7 +542,7 @@ export default function register(api) {
370
542
  if (age < SESSION_MAX_AGE_MS)
371
543
  return; // session still fresh
372
544
  // Session is old enough to recycle — fetch real decisions and submit
373
- log(api, 'info', `Recycling session (age=${Math.round(age / 1000)}s, events=${current.eventCount})`);
545
+ log(api, "info", `Recycling session (age=${Math.round(age / 1000)}s, events=${current.eventCount})`);
374
546
  for (const [key, state] of sessions) {
375
547
  if (state === current) {
376
548
  await endSessionAndSubmit(key);
@@ -381,30 +553,30 @@ export default function register(api) {
381
553
  await ensureSession();
382
554
  }
383
555
  catch (err) {
384
- log(api, 'warn', 'Session recycle error:', err);
556
+ log(api, "warn", "Session recycle error:", err);
385
557
  }
386
558
  });
387
559
  // ── Agent tools (optional — depends on api.registerTool) ──────────
388
- if (typeof api.registerTool === 'function') {
560
+ if (typeof api.registerTool === "function") {
389
561
  api.registerTool({
390
- name: 'context_graph_status',
391
- description: 'Check current context graph session status, event count, and capture health.',
392
- parameters: { type: 'object', properties: {} },
562
+ name: "context_graph_status",
563
+ description: "Check current context graph session status, event count, and capture health.",
564
+ parameters: { type: "object", properties: {} },
393
565
  handler: async (_params, ctx) => {
394
- const key = ctx.sessionKey || 'default';
566
+ const key = ctx.sessionKey || "default";
395
567
  const state = sessions.get(key);
396
568
  return adapter.getStatus(state?.sessionId);
397
569
  },
398
570
  });
399
571
  api.registerTool({
400
- name: 'context_graph_summarize',
401
- description: 'Generate metrics and derived claims for the current session.',
402
- parameters: { type: 'object', properties: {} },
572
+ name: "context_graph_summarize",
573
+ description: "Generate metrics and derived claims for the current session.",
574
+ parameters: { type: "object", properties: {} },
403
575
  handler: async (_params, ctx) => {
404
- const key = ctx.sessionKey || 'default';
576
+ const key = ctx.sessionKey || "default";
405
577
  const state = sessions.get(key);
406
578
  if (!state)
407
- return { status: 'no_active_session' };
579
+ return { status: "no_active_session" };
408
580
  const { summary, signed } = await adapter.summarizeAndSign(state.sessionId);
409
581
  return {
410
582
  ...summary,
@@ -418,6 +590,6 @@ export default function register(api) {
418
590
  },
419
591
  });
420
592
  }
421
- log(api, 'info', 'Plugin registered — provenance capture active');
593
+ log(api, "info", "Plugin registered — provenance capture active (catch-up enabled)");
422
594
  }
423
595
  //# sourceMappingURL=register.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AA+DlE,wEAAwE;AAExE,MAAM,GAAG,GAAG,iBAAiB,CAAC;AAE9B,SAAS,GAAG,CAAC,GAAc,EAAE,KAAgC,EAAE,GAAG,IAAe;IAC/E,mFAAmF;IACnF,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACnC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAC/E,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACZ,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAC3B,UAAkB,EAClB,cAAuB,EACvB,OAAgB;IAEhB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAmB,CAAC;IACzC,OAAO;QACL,UAAU;QACV,cAAc;QACd,OAAO;QACP,GAAG,EAAE,CAAC,GAAW,EAAE,KAAc,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;QAC3D,GAAG,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;KACrC,CAAC;AACJ,CAAC;AAED,uEAAuE;AAEvE,uDAAuD;AACvD,SAAS,aAAa,CAAC,SAAiB;IACtC,0EAA0E;IAC1E,uCAAuC;IACvC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9C,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAClC,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED,gEAAgE;AAChE,SAAS,MAAM,CAAC,KAAa;IAC3B,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,cAAc,CAC3B,OAAe,EACf,MAAc,EACd,OAAe,EACf,OAAe;IAUf,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,GAAG,OAAO,eAAe,kBAAkB,CAAC,OAAO,CAAC,oBAAoB,OAAO,YAAY,CAAC;QACxG,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,MAAM,EAAE,EAAE;YAC9C,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;SACpC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAElC,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACxC,MAAM,EAAG,CAAC,CAAC,MAAiB,IAAI,SAAS;YACzC,WAAW,EAAE,CAAC,CAAC,WAAiC;YAChD,SAAS,EAAE,CAAC,CAAC,SAA+B;YAC5C,YAAY,EAAE,CAAC,CAAC,YAAkC;YAClD,QAAQ,EAAG,CAAC,CAAC,QAAmB,IAAI,EAAE;YACtC,SAAS,EAAE,CAAC,CAAC,SAA+B;YAC5C,UAAU,EAAG,CAAC,CAAC,UAAqB,IAAI,IAAI,CAAC,GAAG,EAAE;SACnD,CAAC,CAAC,CAAC;IACN,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,OAAwB,EACxB,SAAiB,EACjB,SAAiB,EACjB,MAAc,EACd,GAAc,EACd,MAAc;IAEd,MAAM,WAAW,GAAG,CAAC,CAAC;IACtB,MAAM,WAAW,GAAG,IAAI,CAAC;IAEzB,2EAA2E;IAC3E,4EAA4E;IAE5E,oDAAoD;IACpD,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,SAAS,GAAsJ;QACnK,WAAW,EAAE,UAAU,CAAC,eAAe;KACxC,CAAC;IACF,IAAI,UAAU,CAAC,cAAc,EAAE,CAAC;QAC9B,SAAS,CAAC,aAAa,GAAG;YACxB,WAAW,EAAE,UAAU,CAAC,cAAc,CAAC,WAAW;YAClD,YAAY,EAAE,UAAU,CAAC,cAAc,CAAC,YAAY;YACpD,UAAU,EAAE,UAAU,CAAC,cAAc,CAAC,UAAU;YAChD,WAAW,EAAE,UAAU,CAAC,cAAc,CAAC,WAAW;YAClD,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1F,CAAC;IACJ,CAAC;IAED,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;QACxD,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACxE,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,sDAAsD,CAAC,CAAC;gBACzE,OAAO;YACT,CAAC;YAED,gDAAgD;YAChD,MAAM,cAAc,GAAG;gBACrB,GAAG,MAAM;gBACT,gBAAgB,EAAE,SAAS,CAAC,WAAW;gBACvC,oBAAoB,EAAE,UAAU,CAAC,cAAc,EAAE,YAAY,IAAI,IAAI;aACtE,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE;gBACtC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,aAAa,EAAE,UAAU,MAAM,EAAE;iBAClC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;gBACpC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;aACpC,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;gBAChB,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAKpC,CAAC;gBAEF,GAAG,CACD,GAAG,EACH,MAAM,EACN,qBAAqB,SAAS,GAAG,EACjC,gBAAgB,MAAM,CAAC,YAAY,GAAG,EACtC,UAAU,MAAM,CAAC,gBAAgB,IAAI,SAAS,CAAC,WAAW,GAAG,EAC7D,UAAU,MAAM,CAAC,eAAe,EAAE,CACnC,CAAC;gBAEF,uCAAuC;gBACvC,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;oBACxB,MAAM,cAAc,CAAC,MAAM,EAAE;wBAC3B,eAAe,EAAE,CAAC,MAAM,CAAC,gBAAgB,IAAI,SAAS,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC;wBAC5E,cAAc,EAAE;4BACd,YAAY,EAAE,MAAM,CAAC,YAAY;4BACjC,UAAU,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,IAAI,MAAM,CAAC,WAAW;4BAC5D,WAAW,EAAE,MAAM,CAAC,WAAW;4BAC/B,WAAW,EAAE,MAAM,CAAC,gBAAgB,IAAI,SAAS,CAAC,WAAW,IAAI,CAAC;yBACnE;qBACF,CAAC,CAAC;gBACL,CAAC;gBAED,OAAO;YACT,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACxD,GAAG,CACD,GAAG,EACH,MAAM,EACN,uBAAuB,QAAQ,CAAC,MAAM,IAAI,EAC1C,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CACxB,CAAC;YAEF,8DAA8D;YAC9D,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG;gBAAE,OAAO;QAC9D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CACD,GAAG,EACH,MAAM,EACN,yBAAyB,OAAO,GAAG,CAAC,IAAI,EACxC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CACjD,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,GAAG,WAAW,EAAE,CAAC;YAC1B,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;AACH,CAAC;AAED,uEAAuE;AAEvE,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,GAAc;IAC7C,iBAAiB;IACjB,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,CAAC;IACpE,MAAM,GAAG,GAAG,CAAC,WAAW,EAAE,MAAM,IAAI,EAAE,CAA4B,CAAC;IAEnE,IAAI,GAAG,CAAC,OAAO,KAAK,KAAK;QAAE,OAAO;IAElC,sEAAsE;IACtE,0DAA0D;IAC1D,MAAM,MAAM,GAAG,OAAO,CAAE,GAAG,CAAC,gBAA2B,IAAI,gBAAgB,CAAC,CAAC;IAC7E,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC;QAClC,OAAO,EAAE,IAAI;QACb,gBAAgB,EAAE,MAAM;QACxB,OAAO,EAAE,GAAG,CAAC,OAA6B;QAC1C,UAAU,EAAE,GAAG,CAAC,UAAgC;QAChD,WAAW,EAAG,GAAG,CAAC,WAAuB,IAAI,IAAI;QACjD,YAAY,EAAG,GAAG,CAAC,YAAwB,IAAI,IAAI;QACnD,UAAU,EAAG,GAAG,CAAC,UAAsB,IAAI,IAAI;QAC/C,cAAc,EAAE,GAAG,CAAC,cAAoC;KACzD,CAAC,CAAC;IAEH,gDAAgD;IAChD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAwB,CAAC;IAEjD,4DAA4D;IAC5D,iEAAiE;IACjE,qEAAqE;IACrE,KAAK,UAAU,aAAa;QAC1B,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAiC,CAAC;QAC5E,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAE9B,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,QAAQ,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YACxC,MAAM,OAAO,GAAI,GAAG,CAAC,OAAkB,IAAI,SAAS,CAAC;YACrD,MAAM,GAAG,GAAG,oBAAoB,CAAC,UAAU,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;YACtE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YAElD,MAAM,KAAK,GAAiB;gBAC1B,GAAG;gBACH,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU;gBAClC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,UAAU,EAAE,CAAC;aACd,CAAC;YACF,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAChC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,yBAAyB,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YACrE,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,+BAA+B,EAAE,GAAG,CAAC,CAAC;YACvD,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,4CAA4C;IAC5C,KAAK,UAAU,mBAAmB,CAAC,UAAkB;QACnD,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,GAAG,CAAC,SAA+B,CAAC;YACtD,MAAM,MAAM,GAAG,GAAG,CAAC,MAA4B,CAAC;YAChD,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,eAAe;YAE5D,0DAA0D;YAC1D,4DAA4D;YAC5D,gEAAgE;YAChE,IAAI,UAAU,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;gBACtC,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;oBACzC,MAAM,UAAU,GAAI,GAAG,CAAC,OAAkB,IAAI,SAAS,CAAC;oBACxD,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;oBAErF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACzB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,SAAS,CAAC,MAAM,0BAA0B,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;oBAC3F,CAAC;oBAED,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;wBAC1B,MAAM,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,SAAS,EAAE;4BAC9C,IAAI,EAAE,cAAc;4BACpB,MAAM,EAAE,WAAwE;4BAChF,IAAI,EAAE;gCACJ,MAAM,EAAE,CAAC,CAAC,MAAM;gCAChB,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI;gCAClC,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI;gCAC9B,QAAQ,EAAE,CAAC,CAAC,QAAQ;gCACpB,cAAc,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI;6BACzD;yBACF,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,4BAA4B,EAAE,GAAG,CAAC,CAAC;gBACtD,CAAC;YACH,CAAC;YAED,2CAA2C;YAC3C,MAAM,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAEtC,IAAI,UAAU,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;gBACtC,MAAM,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,uBAAuB,EAAE,GAAG,CAAC,CAAC;QAClD,CAAC;gBAAS,CAAC;YACT,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,sEAAsE;IACtE,IAAI,OAAO,GAAG,CAAC,EAAE,KAAK,UAAU,EAAE,CAAC;QACjC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,2EAA2E,CAAC,CAAC;QAC9F,OAAO;IACT,CAAC;IACD,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,wBAAwB;IAE3C,qEAAqE;IACrE,kDAAkD;IAClD,wCAAwC;IACxC,mCAAmC;IAEnC,EAAE,CACA,eAAe,EACf,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE;QAC3B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAA4B,CAAC;YACzD,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAA4B,CAAC;YAC3D,MAAM,SAAS,GAAI,OAAO,CAAC,SAAoB,IAAK,KAAK,CAAC,SAAoB,IAAI,SAAS,CAAC;YAC5F,MAAM,OAAO,GAAI,OAAO,CAAC,OAAkB,IAAK,GAAG,CAAC,OAAkB,IAAI,SAAS,CAAC;YAEpF,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC;gBAAE,OAAO;YAEpC,MAAM,GAAG,GAAG,oBAAoB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAChE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YAElD,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE;gBACtB,GAAG;gBACH,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU;gBAClC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,UAAU,EAAE,CAAC;aACd,CAAC,CAAC;YAEH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,oBAAoB,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,0BAA0B,EAAE,GAAG,CAAC,CAAC;QACpD,CAAC;IACH,CAAC,CACF,CAAC;IAEF,qEAAqE;IACrE,oDAAoD;IACpD,wEAAwE;IACxE,yBAAyB;IAEzB,EAAE,CACA,iBAAiB,EACjB,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE;QAC3B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAA4B,CAAC;YAEzD,kCAAkC;YAClC,MAAM,KAAK,GAAG,MAAM,aAAa,EAAE,CAAC;YACpC,IAAI,CAAC,KAAK;gBAAE,OAAO;YAEnB,MAAM,QAAQ,GAAI,KAAK,CAAC,QAAmB,IAAI,SAAS,CAAC;YACzD,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAA4B,CAAC;YAC/D,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAA4B,CAAC;YAC/D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK;gBACvB,CAAC,CAAC,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;oBAC/B,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;oBACxB,CAAC,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK;wBAC5B,CAAC,CAAC,KAAK,CAAC,KAAK;wBACb,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACpC,CAAC,CAAC,SAAS,CAAC;YAEd,MAAM,SAAS,GAAkB;gBAC/B,QAAQ;gBACR,MAAM;gBACN,MAAM;gBACN,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;aAClD,CAAC;YAEF,MAAM,OAAO,CAAC,eAAe,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;YACpD,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,gCAAgC,EAAE,GAAG,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC,CACF,CAAC;IAEF,qEAAqE;IACrE,+CAA+C;IAC/C,oDAAoD;IACpD,qCAAqC;IAErC,EAAE,CACA,YAAY,EACZ,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE;QAC3B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAA4B,CAAC;YACzD,MAAM,OAAO,GAAI,KAAK,CAAC,OAAkB,IAAI,EAAE,CAAC;YAChD,IAAI,CAAC,OAAO;gBAAE,OAAO;YAErB,kCAAkC;YAClC,MAAM,KAAK,GAAG,MAAM,aAAa,EAAE,CAAC;YACpC,IAAI,CAAC,KAAK;gBAAE,OAAO;YAEnB,MAAM,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;YAC9C,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,+BAA+B,EAAE,GAAG,CAAC,CAAC;QACzD,CAAC;IACH,CAAC,CACF,CAAC;IAEF,sEAAsE;IACtE,KAAK,MAAM,QAAQ,IAAI,CAAC,aAAa,EAAE,cAAc,EAAE,cAAc,CAAU,EAAE,CAAC;QAChF,EAAE,CACA,QAAQ,EACR,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE;YAC3B,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAA4B,CAAC;YACzD,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAA4B,CAAC;YAC3D,MAAM,SAAS,GAAI,OAAO,CAAC,SAAoB,IAAK,KAAK,CAAC,SAAoB,CAAC;YAE/E,IAAI,SAAS,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBACzC,MAAM,mBAAmB,CAAC,SAAS,CAAC,CAAC;YACvC,CAAC;iBAAM,CAAC;gBACN,oCAAoC;gBACpC,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;oBACvC,MAAM,mBAAmB,CAAC,GAAG,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,kEAAkE;IAClE,yDAAyD;IACzD,6DAA6D;IAC7D,6CAA6C;IAC7C,4EAA4E;IAC5E,8CAA8C;IAC9C,MAAM,kBAAkB,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,YAAY;IAEnD,EAAE,CACA,WAAW,EACX,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAiC,CAAC;YAE3E,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,mEAAmE;gBACnE,MAAM,aAAa,EAAE,CAAC;gBACtB,OAAO;YACT,CAAC;YAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;YAC3C,IAAI,GAAG,GAAG,kBAAkB;gBAAE,OAAO,CAAC,sBAAsB;YAE5D,qEAAqE;YACrE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,0BAA0B,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC;YACrG,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACpC,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;oBACtB,MAAM,mBAAmB,CAAC,GAAG,CAAC,CAAC;oBAC/B,MAAM;gBACR,CAAC;YACH,CAAC;YAED,qCAAqC;YACrC,MAAM,aAAa,EAAE,CAAC;QACxB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,wBAAwB,EAAE,GAAG,CAAC,CAAC;QAClD,CAAC;IACH,CAAC,CACF,CAAC;IAEF,qEAAqE;IAErE,IAAI,OAAO,GAAG,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;QAC3C,GAAG,CAAC,YAAY,CAAC;YACf,IAAI,EAAE,sBAAsB;YAC5B,WAAW,EACT,8EAA8E;YAChF,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;YAC9C,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;gBAC9B,MAAM,GAAG,GAAI,GAAG,CAAC,UAAqB,IAAI,SAAS,CAAC;gBACpD,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAChC,OAAO,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAC7C,CAAC;SACF,CAAC,CAAC;QAEH,GAAG,CAAC,YAAY,CAAC;YACf,IAAI,EAAE,yBAAyB;YAC/B,WAAW,EACT,8DAA8D;YAChE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;YAC9C,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;gBAC9B,MAAM,GAAG,GAAI,GAAG,CAAC,UAAqB,IAAI,SAAS,CAAC;gBACpD,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAChC,IAAI,CAAC,KAAK;oBAAE,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;gBACnD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,gBAAgB,CACxD,KAAK,CAAC,SAAS,CAChB,CAAC;gBACF,OAAO;oBACL,GAAG,OAAO;oBACV,MAAM,EAAE,MAAM;wBACZ,CAAC,CAAC;4BACE,WAAW,EAAE,MAAM,CAAC,WAAW;4BAC/B,OAAO,EAAE,MAAM,CAAC,OAAO;yBACxB;wBACH,CAAC,CAAC,SAAS;iBACd,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,+CAA+C,CAAC,CAAC;AACpE,CAAC"}
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.5.1",
3
+ "version": "0.6.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",