jasper-recall 0.3.4 → 0.3.5
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/SKILL.md +8 -0
- package/extensions/openclaw-plugin/index.ts +26 -3
- package/package.json +1 -1
package/SKILL.md
CHANGED
|
@@ -313,6 +313,14 @@ When `autoRecall: true` in the OpenClaw plugin config, memories are automaticall
|
|
|
313
313
|
- Review which collections will be searched
|
|
314
314
|
- Use `minScore` to filter low-relevance injections
|
|
315
315
|
|
|
316
|
+
**What's automatically skipped (no recall triggered):**
|
|
317
|
+
- Heartbeat polls (`HEARTBEAT`, `Read HEARTBEAT.md`, `HEARTBEAT_OK`)
|
|
318
|
+
- Messages containing `NO_REPLY`
|
|
319
|
+
- Messages < 10 characters
|
|
320
|
+
- Agent-to-agent messages (cron jobs, workers, spawned agents)
|
|
321
|
+
- Automated reports (`📋 PR Review`, `🤖 Codex Watch`, `ANNOUNCE_*`)
|
|
322
|
+
- Messages from senders starting with `agent:` or `worker-`
|
|
323
|
+
|
|
316
324
|
**Safer config for untrusted contexts:**
|
|
317
325
|
```json
|
|
318
326
|
"jasper-recall": {
|
|
@@ -81,14 +81,37 @@ export default function register(api: PluginApi) {
|
|
|
81
81
|
// ============================================================================
|
|
82
82
|
|
|
83
83
|
if (autoRecall) {
|
|
84
|
-
api.on('before_agent_start', async (event: { prompt?: string }) => {
|
|
84
|
+
api.on('before_agent_start', async (event: { prompt?: string; senderId?: string; source?: string }) => {
|
|
85
85
|
// Skip if no prompt or too short
|
|
86
86
|
if (!event.prompt || event.prompt.length < 10) {
|
|
87
87
|
return;
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
-
|
|
91
|
-
|
|
90
|
+
const prompt = event.prompt;
|
|
91
|
+
|
|
92
|
+
// Skip heartbeats and system prompts
|
|
93
|
+
if (prompt.startsWith('HEARTBEAT') ||
|
|
94
|
+
prompt.startsWith('Read HEARTBEAT.md') ||
|
|
95
|
+
prompt.includes('NO_REPLY') ||
|
|
96
|
+
prompt.includes('HEARTBEAT_OK')) {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// Skip agent-to-agent messages (cron jobs, workers, spawned agents)
|
|
101
|
+
if (event.source?.startsWith('cron:') ||
|
|
102
|
+
event.source?.startsWith('agent:') ||
|
|
103
|
+
event.source?.startsWith('spawn:') ||
|
|
104
|
+
event.source === 'sessions_send' ||
|
|
105
|
+
event.senderId?.startsWith('agent:') ||
|
|
106
|
+
event.senderId?.startsWith('worker-')) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// Skip common automated patterns
|
|
111
|
+
if (prompt.startsWith('Agent-to-agent') ||
|
|
112
|
+
prompt.startsWith('📋 PR Review') ||
|
|
113
|
+
prompt.startsWith('🤖 Codex Watch') ||
|
|
114
|
+
prompt.startsWith('ANNOUNCE_')) {
|
|
92
115
|
return;
|
|
93
116
|
}
|
|
94
117
|
|