@signetai/signet-memory-openclaw 0.78.3 → 0.78.4
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/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +158 -63
- package/dist/openclaw-types.d.ts +68 -3
- package/dist/openclaw-types.d.ts.map +1 -1
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -8556,6 +8556,17 @@ function up48(db) {
|
|
|
8556
8556
|
WHERE excluded.latest_at >= memory_thread_heads.latest_at;
|
|
8557
8557
|
`);
|
|
8558
8558
|
}
|
|
8559
|
+
function up49(db) {
|
|
8560
|
+
db.exec(`
|
|
8561
|
+
CREATE TABLE IF NOT EXISTS session_extract_cursors (
|
|
8562
|
+
session_key TEXT NOT NULL,
|
|
8563
|
+
agent_id TEXT NOT NULL DEFAULT 'default',
|
|
8564
|
+
last_offset INTEGER NOT NULL DEFAULT 0,
|
|
8565
|
+
last_extract_at TEXT NOT NULL,
|
|
8566
|
+
PRIMARY KEY (session_key, agent_id)
|
|
8567
|
+
);
|
|
8568
|
+
`);
|
|
8569
|
+
}
|
|
8559
8570
|
var MIGRATIONS = [
|
|
8560
8571
|
{
|
|
8561
8572
|
version: 1,
|
|
@@ -8932,6 +8943,14 @@ var MIGRATIONS = [
|
|
|
8932
8943
|
artifacts: {
|
|
8933
8944
|
tables: ["memory_thread_heads"]
|
|
8934
8945
|
}
|
|
8946
|
+
},
|
|
8947
|
+
{
|
|
8948
|
+
version: 49,
|
|
8949
|
+
name: "session-extract-cursors",
|
|
8950
|
+
up: up49,
|
|
8951
|
+
artifacts: {
|
|
8952
|
+
tables: ["session_extract_cursors"]
|
|
8953
|
+
}
|
|
8935
8954
|
}
|
|
8936
8955
|
];
|
|
8937
8956
|
var LATEST_SCHEMA_VERSION = MIGRATIONS[MIGRATIONS.length - 1]?.version ?? 0;
|
|
@@ -11879,6 +11898,26 @@ function extractLastAssistantMessage(event) {
|
|
|
11879
11898
|
}
|
|
11880
11899
|
return;
|
|
11881
11900
|
}
|
|
11901
|
+
function isUserMessage(message) {
|
|
11902
|
+
const role = typeof message.role === "string" ? message.role.toLowerCase() : "";
|
|
11903
|
+
const sender = typeof message.sender === "string" ? message.sender.toLowerCase() : "";
|
|
11904
|
+
return role === "user" || role === "human" || sender === "user" || sender === "human";
|
|
11905
|
+
}
|
|
11906
|
+
function extractLastUserMessage(messages) {
|
|
11907
|
+
if (!Array.isArray(messages))
|
|
11908
|
+
return;
|
|
11909
|
+
for (let i = messages.length - 1;i >= 0; i--) {
|
|
11910
|
+
const raw = messages[i];
|
|
11911
|
+
if (!isRecord(raw))
|
|
11912
|
+
continue;
|
|
11913
|
+
if (!isUserMessage(raw))
|
|
11914
|
+
continue;
|
|
11915
|
+
const text = getMessageText(raw);
|
|
11916
|
+
if (text)
|
|
11917
|
+
return text;
|
|
11918
|
+
}
|
|
11919
|
+
return;
|
|
11920
|
+
}
|
|
11882
11921
|
function sanitizeToolSegment(value) {
|
|
11883
11922
|
const normalized = value.trim().toLowerCase().replace(/[^a-z0-9]+/g, "_").replace(/^_+|_+$/g, "");
|
|
11884
11923
|
return normalized.length > 0 ? normalized : "tool";
|
|
@@ -12030,6 +12069,7 @@ async function onSessionEnd(harness, options = {}) {
|
|
|
12030
12069
|
harness,
|
|
12031
12070
|
agentId: options.agentId,
|
|
12032
12071
|
transcriptPath: options.transcriptPath,
|
|
12072
|
+
...options.transcript && { transcript: options.transcript },
|
|
12033
12073
|
sessionKey: options.sessionKey,
|
|
12034
12074
|
sessionId: options.sessionId,
|
|
12035
12075
|
cwd: options.cwd,
|
|
@@ -12216,6 +12256,16 @@ function readString(value) {
|
|
|
12216
12256
|
function readNumber(value) {
|
|
12217
12257
|
return typeof value === "number" && Number.isFinite(value) ? value : undefined;
|
|
12218
12258
|
}
|
|
12259
|
+
function resolveCtx(event, ctx) {
|
|
12260
|
+
const c = isRecord(ctx) ? ctx : {};
|
|
12261
|
+
return {
|
|
12262
|
+
sessionKey: readString(c.sessionKey) ?? readString(event.sessionKey) ?? readString(c.sessionId) ?? readString(event.sessionId),
|
|
12263
|
+
agentId: readString(c.agentId) ?? readString(event.agentId),
|
|
12264
|
+
project: firstNonEmptyString(c.workspaceDir, c.project, c.cwd, c.workspace, event.cwd, event.project, event.workspace),
|
|
12265
|
+
sessionFile: readString(c.sessionFile) ?? readString(event.sessionFile) ?? readString(event.transcriptPath),
|
|
12266
|
+
sessionId: readString(c.sessionId) ?? readString(event.sessionId)
|
|
12267
|
+
};
|
|
12268
|
+
}
|
|
12219
12269
|
function resolveCompactionSessionFile(event, sessionFile) {
|
|
12220
12270
|
const compaction = isRecord(event.compaction) ? event.compaction : undefined;
|
|
12221
12271
|
return firstNonEmptyString(event.sessionFile, event.session_file, compaction?.sessionFile, compaction?.session_file, sessionFile);
|
|
@@ -12664,41 +12714,61 @@ ${lines.join(`
|
|
|
12664
12714
|
const inFlightTurns = new Set;
|
|
12665
12715
|
const beforeCompactions = new Map;
|
|
12666
12716
|
const afterCompactions = new Map;
|
|
12667
|
-
const
|
|
12668
|
-
|
|
12669
|
-
|
|
12717
|
+
const CHECKPOINT_TURN_THRESHOLD = 20;
|
|
12718
|
+
const checkpointTurns = new Map;
|
|
12719
|
+
const bpbGen = new Map;
|
|
12720
|
+
const basGen = new Map;
|
|
12721
|
+
const maybeFireCheckpoint = (sessionKey, agentId, project, sessionFile, msgCount, messages) => {
|
|
12722
|
+
const scopedKey = buildScopedSessionKey(sessionKey, agentId);
|
|
12723
|
+
if (!scopedKey || !sessionKey)
|
|
12724
|
+
return;
|
|
12725
|
+
const now = Date.now();
|
|
12726
|
+
const state = checkpointTurns.get(scopedKey);
|
|
12727
|
+
if (state && now - state.at > SESSION_TURN_TTL_MS) {
|
|
12728
|
+
checkpointTurns.delete(scopedKey);
|
|
12670
12729
|
}
|
|
12671
|
-
|
|
12672
|
-
|
|
12673
|
-
|
|
12674
|
-
|
|
12675
|
-
|
|
12676
|
-
|
|
12677
|
-
|
|
12678
|
-
|
|
12679
|
-
|
|
12680
|
-
|
|
12681
|
-
|
|
12682
|
-
|
|
12683
|
-
|
|
12684
|
-
|
|
12685
|
-
|
|
12730
|
+
if (msgCount !== undefined && checkpointTurns.get(scopedKey)?.lastMsgCount === msgCount)
|
|
12731
|
+
return;
|
|
12732
|
+
const newCount = (checkpointTurns.get(scopedKey)?.count ?? 0) + 1;
|
|
12733
|
+
checkpointTurns.set(scopedKey, {
|
|
12734
|
+
count: newCount >= CHECKPOINT_TURN_THRESHOLD ? 0 : newCount,
|
|
12735
|
+
lastMsgCount: msgCount,
|
|
12736
|
+
at: now
|
|
12737
|
+
});
|
|
12738
|
+
if (newCount < CHECKPOINT_TURN_THRESHOLD)
|
|
12739
|
+
return;
|
|
12740
|
+
const inlineTranscript = !sessionFile && Array.isArray(messages) && messages.length > 0 ? messages.map((m) => JSON.stringify(m)).join(`
|
|
12741
|
+
`) : undefined;
|
|
12742
|
+
daemonFetch(daemonUrl, "/api/hooks/session-checkpoint-extract", {
|
|
12743
|
+
method: "POST",
|
|
12744
|
+
body: {
|
|
12745
|
+
harness: "openclaw",
|
|
12746
|
+
sessionKey,
|
|
12747
|
+
agentId,
|
|
12748
|
+
project,
|
|
12749
|
+
transcriptPath: sessionFile,
|
|
12750
|
+
...inlineTranscript && { transcript: inlineTranscript },
|
|
12751
|
+
runtimePath: RUNTIME_PATH
|
|
12752
|
+
},
|
|
12753
|
+
timeout: WRITE_TIMEOUT
|
|
12754
|
+
}).then((resp) => {
|
|
12755
|
+
if (isRecord(resp) && resp.skipped === true) {
|
|
12756
|
+
const cur = checkpointTurns.get(scopedKey);
|
|
12757
|
+
if (cur && cur.count < CHECKPOINT_TURN_THRESHOLD - 1)
|
|
12758
|
+
checkpointTurns.set(scopedKey, { ...cur, count: CHECKPOINT_TURN_THRESHOLD - 1 });
|
|
12759
|
+
}
|
|
12760
|
+
}).catch((err) => {
|
|
12761
|
+
api.logger.warn(`signet-memory: checkpoint extract failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
12762
|
+
const cur = checkpointTurns.get(scopedKey);
|
|
12763
|
+
if (cur && cur.count < CHECKPOINT_TURN_THRESHOLD - 1)
|
|
12764
|
+
checkpointTurns.set(scopedKey, { ...cur, count: CHECKPOINT_TURN_THRESHOLD - 1 });
|
|
12765
|
+
});
|
|
12686
12766
|
};
|
|
12687
|
-
const resolveCompactionProject = (event,
|
|
12767
|
+
const resolveCompactionProject = (event, resolved) => {
|
|
12688
12768
|
const compaction = isRecord(event.compaction) ? event.compaction : undefined;
|
|
12689
|
-
const sessionFile = resolveCompactionSessionFile(event,
|
|
12690
|
-
return firstNonEmptyString(event.
|
|
12691
|
-
};
|
|
12692
|
-
const resolveSessionEndSessionKey = (event, ctx) => {
|
|
12693
|
-
const fromEvent = readString(event.sessionKey) ?? readString(event.sessionId);
|
|
12694
|
-
if (fromEvent)
|
|
12695
|
-
return fromEvent;
|
|
12696
|
-
if (ctx.sessionKey)
|
|
12697
|
-
return ctx.sessionKey;
|
|
12698
|
-
return;
|
|
12769
|
+
const sessionFile = resolveCompactionSessionFile(event, resolved.sessionFile);
|
|
12770
|
+
return firstNonEmptyString(event.cwd, event.project, event.workspace, compaction?.project, compaction?.cwd, compaction?.workspace, resolved.project, readSessionFileProject(sessionFile));
|
|
12699
12771
|
};
|
|
12700
|
-
const resolveSessionEndTranscript = (event, ctx) => firstNonEmptyString(event.transcriptPath, event.sessionFile, ctx.sessionFile);
|
|
12701
|
-
const resolveSessionEndProject = (event, ctx) => firstNonEmptyString(event.cwd, event.project, event.workspace, ctx.project);
|
|
12702
12772
|
const dedupeCompaction = (map, key) => {
|
|
12703
12773
|
const now = Date.now();
|
|
12704
12774
|
cleanupTimedMap(map, now, COMPACTION_HOOK_DEDUPE_MS);
|
|
@@ -12712,18 +12782,18 @@ ${lines.join(`
|
|
|
12712
12782
|
const handleBeforeCompaction = async (event, ctx) => {
|
|
12713
12783
|
if (!cfg.enabled || !daemonReachable)
|
|
12714
12784
|
return;
|
|
12715
|
-
const
|
|
12785
|
+
const resolved = resolveCtx(event, ctx);
|
|
12716
12786
|
const messageCount = typeof event.messageCount === "number" ? event.messageCount : typeof event.compactingCount === "number" ? event.compactingCount : typeof event.compactedCount === "number" ? event.compactedCount : isRecord(event.compaction) && typeof event.compaction.compactingCount === "number" ? event.compaction.compactingCount : isRecord(event.compaction) && typeof event.compaction.compactedCount === "number" ? event.compaction.compactedCount : undefined;
|
|
12717
12787
|
const dedupeKey = buildCompactionEventKey(event, {
|
|
12718
|
-
agentId:
|
|
12719
|
-
sessionKey
|
|
12788
|
+
agentId: resolved.agentId,
|
|
12789
|
+
sessionKey: resolved.sessionKey
|
|
12720
12790
|
});
|
|
12721
12791
|
if (dedupeCompaction(beforeCompactions, dedupeKey)) {
|
|
12722
12792
|
return;
|
|
12723
12793
|
}
|
|
12724
12794
|
const result = await onPreCompaction("openclaw", {
|
|
12725
12795
|
...opts,
|
|
12726
|
-
sessionKey,
|
|
12796
|
+
sessionKey: resolved.sessionKey,
|
|
12727
12797
|
messageCount
|
|
12728
12798
|
});
|
|
12729
12799
|
const parts = [result?.summaryPrompt, result?.guidelines].filter((value) => typeof value === "string" && value.length > 0);
|
|
@@ -12739,20 +12809,21 @@ ${lines.join(`
|
|
|
12739
12809
|
const handleAfterCompaction = async (event, ctx) => {
|
|
12740
12810
|
if (!cfg.enabled || !daemonReachable)
|
|
12741
12811
|
return;
|
|
12742
|
-
const
|
|
12743
|
-
const scopedKey = buildScopedSessionKey(sessionKey,
|
|
12812
|
+
const resolved = resolveCtx(event, ctx);
|
|
12813
|
+
const scopedKey = buildScopedSessionKey(resolved.sessionKey, resolved.agentId);
|
|
12744
12814
|
if (scopedKey) {
|
|
12745
12815
|
injectedTurns.delete(scopedKey);
|
|
12816
|
+
checkpointTurns.delete(scopedKey);
|
|
12746
12817
|
}
|
|
12747
|
-
const sessionFile = resolveCompactionSessionFile(event,
|
|
12818
|
+
const sessionFile = resolveCompactionSessionFile(event, resolved.sessionFile);
|
|
12748
12819
|
const summary = extractCompactionSummary(event, sessionFile);
|
|
12749
12820
|
if (!summary) {
|
|
12750
12821
|
api.logger.warn(`signet-memory: compaction summary unavailable, skipping save${sessionFile ? ` (${sessionFile})` : ""}`);
|
|
12751
12822
|
return;
|
|
12752
12823
|
}
|
|
12753
12824
|
const dedupeKey = buildCompactionEventKey(event, {
|
|
12754
|
-
agentId:
|
|
12755
|
-
sessionKey,
|
|
12825
|
+
agentId: resolved.agentId,
|
|
12826
|
+
sessionKey: resolved.sessionKey,
|
|
12756
12827
|
summary
|
|
12757
12828
|
});
|
|
12758
12829
|
if (dedupeCompaction(afterCompactions, dedupeKey)) {
|
|
@@ -12760,9 +12831,9 @@ ${lines.join(`
|
|
|
12760
12831
|
}
|
|
12761
12832
|
await onCompactionComplete("openclaw", summary, {
|
|
12762
12833
|
...opts,
|
|
12763
|
-
agentId:
|
|
12764
|
-
project: resolveCompactionProject(event,
|
|
12765
|
-
sessionKey
|
|
12834
|
+
agentId: resolved.agentId,
|
|
12835
|
+
project: resolveCompactionProject(event, resolved),
|
|
12836
|
+
sessionKey: resolved.sessionKey
|
|
12766
12837
|
});
|
|
12767
12838
|
};
|
|
12768
12839
|
const ensureSessionStarted = async (event, sessionKey, agentId) => {
|
|
@@ -12801,7 +12872,7 @@ ${lines.join(`
|
|
|
12801
12872
|
if (!daemonReachable)
|
|
12802
12873
|
return;
|
|
12803
12874
|
const rawPrompt = typeof event.prompt === "string" ? event.prompt : undefined;
|
|
12804
|
-
const prompt = rawPrompt ? extractUserMessage(rawPrompt) : undefined;
|
|
12875
|
+
const prompt = extractLastUserMessage(event.messages) ?? (rawPrompt ? extractUserMessage(rawPrompt) : undefined);
|
|
12805
12876
|
if (!prompt || prompt.length <= 3) {
|
|
12806
12877
|
return;
|
|
12807
12878
|
}
|
|
@@ -12841,50 +12912,74 @@ ${lines.join(`
|
|
|
12841
12912
|
api.on("before_prompt_build", async (event, ctx) => {
|
|
12842
12913
|
if (!cfg.enabled)
|
|
12843
12914
|
return;
|
|
12844
|
-
const
|
|
12845
|
-
await ensureSessionStarted(event, sessionKey, agentId);
|
|
12846
|
-
|
|
12915
|
+
const resolved = resolveCtx(event, ctx);
|
|
12916
|
+
await ensureSessionStarted(event, resolved.sessionKey, resolved.agentId);
|
|
12917
|
+
const result = await runPromptInjection(event, resolved.sessionKey, resolved.agentId);
|
|
12918
|
+
const msgs = Array.isArray(event.messages) ? event.messages : undefined;
|
|
12919
|
+
const msgCount = msgs?.length;
|
|
12920
|
+
const bpbKey = buildScopedSessionKey(resolved.sessionKey, resolved.agentId);
|
|
12921
|
+
if (bpbKey)
|
|
12922
|
+
bpbGen.set(bpbKey, (bpbGen.get(bpbKey) ?? 0) + 1);
|
|
12923
|
+
maybeFireCheckpoint(resolved.sessionKey, resolved.agentId, resolved.project, resolved.sessionFile, msgCount, msgs);
|
|
12924
|
+
return result;
|
|
12847
12925
|
}, { priority: 20 });
|
|
12848
12926
|
api.on("before_agent_start", async (event, ctx) => {
|
|
12849
12927
|
if (!cfg.enabled)
|
|
12850
12928
|
return;
|
|
12851
|
-
const
|
|
12852
|
-
await ensureSessionStarted(event, sessionKey, agentId);
|
|
12853
|
-
|
|
12929
|
+
const resolved = resolveCtx(event, ctx);
|
|
12930
|
+
await ensureSessionStarted(event, resolved.sessionKey, resolved.agentId);
|
|
12931
|
+
const result = await runPromptInjection(event, resolved.sessionKey, resolved.agentId);
|
|
12932
|
+
const msgs = Array.isArray(event.messages) ? event.messages : undefined;
|
|
12933
|
+
const msgCount = msgs?.length;
|
|
12934
|
+
const basKey = buildScopedSessionKey(resolved.sessionKey, resolved.agentId);
|
|
12935
|
+
const latestBpb = basKey ? bpbGen.get(basKey) ?? 0 : 0;
|
|
12936
|
+
const lastConsumed = basKey ? basGen.get(basKey) ?? 0 : 0;
|
|
12937
|
+
const coveredByBpb = latestBpb > lastConsumed;
|
|
12938
|
+
if (basKey && coveredByBpb)
|
|
12939
|
+
basGen.set(basKey, latestBpb);
|
|
12940
|
+
if (!coveredByBpb || msgCount !== undefined) {
|
|
12941
|
+
maybeFireCheckpoint(resolved.sessionKey, resolved.agentId, resolved.project, resolved.sessionFile, msgCount, msgs);
|
|
12942
|
+
}
|
|
12943
|
+
return result;
|
|
12854
12944
|
});
|
|
12855
12945
|
api.on("agent_end", async (event, ctx) => {
|
|
12856
12946
|
if (!cfg.enabled)
|
|
12857
12947
|
return;
|
|
12858
|
-
const
|
|
12859
|
-
const
|
|
12860
|
-
const
|
|
12861
|
-
const
|
|
12948
|
+
const resolved = resolveCtx(event, ctx);
|
|
12949
|
+
const scopedKey = buildScopedSessionKey(resolved.sessionKey, resolved.agentId);
|
|
12950
|
+
const endMsgs = Array.isArray(event.messages) ? event.messages : undefined;
|
|
12951
|
+
const endTranscript = !resolved.sessionFile && endMsgs && endMsgs.length > 0 ? endMsgs.map((m) => JSON.stringify(m)).join(`
|
|
12952
|
+
`) : undefined;
|
|
12862
12953
|
await onSessionEnd("openclaw", {
|
|
12863
12954
|
...opts,
|
|
12864
|
-
agentId,
|
|
12865
|
-
cwd:
|
|
12866
|
-
sessionId:
|
|
12867
|
-
sessionKey,
|
|
12868
|
-
transcriptPath:
|
|
12955
|
+
agentId: resolved.agentId,
|
|
12956
|
+
cwd: resolved.project,
|
|
12957
|
+
sessionId: resolved.sessionId,
|
|
12958
|
+
sessionKey: resolved.sessionKey,
|
|
12959
|
+
transcriptPath: resolved.sessionFile,
|
|
12960
|
+
...endTranscript && { transcript: endTranscript }
|
|
12869
12961
|
});
|
|
12870
12962
|
if (scopedKey) {
|
|
12871
12963
|
claimedSessions.delete(scopedKey);
|
|
12872
12964
|
injectedTurns.delete(scopedKey);
|
|
12965
|
+
checkpointTurns.delete(scopedKey);
|
|
12966
|
+
bpbGen.delete(scopedKey);
|
|
12967
|
+
basGen.delete(scopedKey);
|
|
12873
12968
|
}
|
|
12874
12969
|
return;
|
|
12875
12970
|
});
|
|
12876
12971
|
api.on("before_compaction", async (event, ctx) => {
|
|
12877
|
-
return handleBeforeCompaction(event,
|
|
12972
|
+
return handleBeforeCompaction(event, ctx);
|
|
12878
12973
|
});
|
|
12879
12974
|
api.on("after_compaction", async (event, ctx) => {
|
|
12880
|
-
await handleAfterCompaction(event,
|
|
12975
|
+
await handleAfterCompaction(event, ctx);
|
|
12881
12976
|
return;
|
|
12882
12977
|
});
|
|
12883
12978
|
api.on("session:compact:before", async (event, ctx) => {
|
|
12884
|
-
return handleBeforeCompaction(event,
|
|
12979
|
+
return handleBeforeCompaction(event, ctx);
|
|
12885
12980
|
});
|
|
12886
12981
|
api.on("session:compact:after", async (event, ctx) => {
|
|
12887
|
-
await handleAfterCompaction(event,
|
|
12982
|
+
await handleAfterCompaction(event, ctx);
|
|
12888
12983
|
return;
|
|
12889
12984
|
});
|
|
12890
12985
|
api.registerService({
|
package/dist/openclaw-types.d.ts
CHANGED
|
@@ -1,9 +1,59 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Type stubs for OpenClaw Plugin API.
|
|
3
3
|
*
|
|
4
|
-
* OpenClaw is a peer dependency
|
|
5
|
-
*
|
|
4
|
+
* OpenClaw is a peer dependency. These stubs mirror the upstream
|
|
5
|
+
* plugin-sdk types so we get compile-time safety without a hard
|
|
6
|
+
* dependency on the full SDK.
|
|
7
|
+
*
|
|
8
|
+
* Intersection with Record<string, unknown> on event/context types
|
|
9
|
+
* preserves access to undocumented extra fields that older OpenClaw
|
|
10
|
+
* versions pass (backwards compatibility).
|
|
11
|
+
*
|
|
12
|
+
* Upstream source: openclaw/src/plugins/types.ts
|
|
6
13
|
*/
|
|
14
|
+
/** Context shared across all agent-scoped hooks. */
|
|
15
|
+
export type PluginHookAgentContext = {
|
|
16
|
+
readonly agentId?: string;
|
|
17
|
+
readonly sessionKey?: string;
|
|
18
|
+
readonly sessionId?: string;
|
|
19
|
+
readonly workspaceDir?: string;
|
|
20
|
+
readonly messageProvider?: string;
|
|
21
|
+
readonly trigger?: string;
|
|
22
|
+
readonly channelId?: string;
|
|
23
|
+
} & Record<string, unknown>;
|
|
24
|
+
export type PluginHookBeforePromptBuildEvent = {
|
|
25
|
+
readonly prompt: string;
|
|
26
|
+
readonly messages: unknown[];
|
|
27
|
+
} & Record<string, unknown>;
|
|
28
|
+
export type PluginHookBeforePromptBuildResult = {
|
|
29
|
+
systemPrompt?: string;
|
|
30
|
+
prependContext?: string;
|
|
31
|
+
prependSystemContext?: string;
|
|
32
|
+
appendSystemContext?: string;
|
|
33
|
+
};
|
|
34
|
+
export type PluginHookBeforeAgentStartEvent = {
|
|
35
|
+
readonly prompt: string;
|
|
36
|
+
readonly messages?: unknown[];
|
|
37
|
+
} & Record<string, unknown>;
|
|
38
|
+
export type PluginHookAgentEndEvent = {
|
|
39
|
+
readonly messages: unknown[];
|
|
40
|
+
readonly success: boolean;
|
|
41
|
+
readonly error?: string;
|
|
42
|
+
readonly durationMs?: number;
|
|
43
|
+
} & Record<string, unknown>;
|
|
44
|
+
export type PluginHookBeforeCompactionEvent = {
|
|
45
|
+
readonly messageCount: number;
|
|
46
|
+
readonly compactingCount?: number;
|
|
47
|
+
readonly tokenCount?: number;
|
|
48
|
+
readonly messages?: unknown[];
|
|
49
|
+
readonly sessionFile?: string;
|
|
50
|
+
} & Record<string, unknown>;
|
|
51
|
+
export type PluginHookAfterCompactionEvent = {
|
|
52
|
+
readonly messageCount: number;
|
|
53
|
+
readonly tokenCount?: number;
|
|
54
|
+
readonly compactedCount: number;
|
|
55
|
+
readonly sessionFile?: string;
|
|
56
|
+
} & Record<string, unknown>;
|
|
7
57
|
export interface OpenClawPluginApi {
|
|
8
58
|
readonly pluginConfig?: Record<string, unknown>;
|
|
9
59
|
readonly config?: unknown;
|
|
@@ -27,6 +77,21 @@ export interface OpenClawPluginApi {
|
|
|
27
77
|
start(): void | Promise<void>;
|
|
28
78
|
stop(): void | Promise<void>;
|
|
29
79
|
}): void;
|
|
80
|
+
on(event: "before_prompt_build", handler: (event: PluginHookBeforePromptBuildEvent, ctx: PluginHookAgentContext) => Promise<PluginHookBeforePromptBuildResult | undefined> | PluginHookBeforePromptBuildResult | undefined, opts?: {
|
|
81
|
+
priority?: number;
|
|
82
|
+
}): void;
|
|
83
|
+
on(event: "before_agent_start", handler: (event: PluginHookBeforeAgentStartEvent, ctx: PluginHookAgentContext) => Promise<PluginHookBeforePromptBuildResult | undefined> | PluginHookBeforePromptBuildResult | undefined, opts?: {
|
|
84
|
+
priority?: number;
|
|
85
|
+
}): void;
|
|
86
|
+
on(event: "agent_end", handler: (event: PluginHookAgentEndEvent, ctx: PluginHookAgentContext) => Promise<void> | void, opts?: {
|
|
87
|
+
priority?: number;
|
|
88
|
+
}): void;
|
|
89
|
+
on(event: "before_compaction", handler: (event: PluginHookBeforeCompactionEvent, ctx: PluginHookAgentContext) => Promise<void> | void, opts?: {
|
|
90
|
+
priority?: number;
|
|
91
|
+
}): void;
|
|
92
|
+
on(event: "after_compaction", handler: (event: PluginHookAfterCompactionEvent, ctx: PluginHookAgentContext) => Promise<void> | void, opts?: {
|
|
93
|
+
priority?: number;
|
|
94
|
+
}): void;
|
|
30
95
|
on(event: string, handler: (event: Record<string, unknown>, ctx: unknown) => unknown | Promise<unknown>, opts?: {
|
|
31
96
|
priority?: number;
|
|
32
97
|
}): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openclaw-types.d.ts","sourceRoot":"","sources":["../src/openclaw-types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"openclaw-types.d.ts","sourceRoot":"","sources":["../src/openclaw-types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@signetai/signet-memory-openclaw",
|
|
3
|
-
"version": "0.78.
|
|
3
|
+
"version": "0.78.4",
|
|
4
4
|
"description": "Signet adapter for OpenClaw — runtime plugin for AI agent memory",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"@sinclair/typebox": "0.34.47"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@signet/core": "0.78.
|
|
39
|
+
"@signet/core": "0.78.4",
|
|
40
40
|
"@types/node": "^22.0.0"
|
|
41
41
|
},
|
|
42
42
|
"peerDependencies": {
|