@keyoku/openclaw 1.2.12 → 1.2.14
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/capture.d.ts +0 -10
- package/dist/capture.d.ts.map +1 -1
- package/dist/capture.js +0 -69
- package/dist/capture.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/context.d.ts +2 -2
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +134 -87
- package/dist/context.js.map +1 -1
- package/dist/heartbeat-migration.d.ts +47 -0
- package/dist/heartbeat-migration.d.ts.map +1 -0
- package/dist/heartbeat-migration.js +178 -0
- package/dist/heartbeat-migration.js.map +1 -0
- package/dist/heartbeat-setup.d.ts.map +1 -1
- package/dist/heartbeat-setup.js +22 -16
- package/dist/heartbeat-setup.js.map +1 -1
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +88 -6
- package/dist/hooks.js.map +1 -1
- package/dist/incremental-capture.d.ts.map +1 -1
- package/dist/incremental-capture.js +2 -1
- package/dist/incremental-capture.js.map +1 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +374 -110
- package/dist/init.js.map +1 -1
- package/dist/migrate-vector-store.d.ts.map +1 -1
- package/dist/migrate-vector-store.js +1 -4
- package/dist/migrate-vector-store.js.map +1 -1
- package/dist/migration.d.ts +12 -0
- package/dist/migration.d.ts.map +1 -1
- package/dist/migration.js +1 -1
- package/dist/migration.js.map +1 -1
- package/dist/service.d.ts +13 -0
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +4 -4
- package/dist/service.js.map +1 -1
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +37 -12
- package/dist/tools.js.map +1 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Heartbeat content migration.
|
|
3
|
+
*
|
|
4
|
+
* Extracts user rules from an existing HEARTBEAT.md and ingests them
|
|
5
|
+
* into Keyoku as memories (preferences/rules) and scheduled tasks.
|
|
6
|
+
*
|
|
7
|
+
* The parsing functions are pure (no side effects) for testability.
|
|
8
|
+
*/
|
|
9
|
+
const KEYOKU_SECTION_START = '<!-- keyoku-heartbeat-start -->';
|
|
10
|
+
const KEYOKU_SECTION_END = '<!-- keyoku-heartbeat-end -->';
|
|
11
|
+
// Time patterns → cron tag mappings
|
|
12
|
+
const TIME_PATTERNS = [
|
|
13
|
+
// "at 9am", "at 2pm", "at 9:30am"
|
|
14
|
+
{
|
|
15
|
+
pattern: /\bat\s+(\d{1,2})(?::(\d{2}))?\s*(am|pm)\b/i,
|
|
16
|
+
toCron: (m) => {
|
|
17
|
+
let hour = parseInt(m[1], 10);
|
|
18
|
+
const min = m[2] ? parseInt(m[2], 10) : 0;
|
|
19
|
+
if (m[3].toLowerCase() === 'pm' && hour !== 12)
|
|
20
|
+
hour += 12;
|
|
21
|
+
if (m[3].toLowerCase() === 'am' && hour === 12)
|
|
22
|
+
hour = 0;
|
|
23
|
+
return `cron:daily:${String(hour).padStart(2, '0')}:${String(min).padStart(2, '0')}`;
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
// "at 09:00", "at 14:30"
|
|
27
|
+
{
|
|
28
|
+
pattern: /\bat\s+(\d{1,2}):(\d{2})\b/,
|
|
29
|
+
toCron: (m) => `cron:daily:${String(parseInt(m[1], 10)).padStart(2, '0')}:${m[2]}`,
|
|
30
|
+
},
|
|
31
|
+
// "every N hours"
|
|
32
|
+
{
|
|
33
|
+
pattern: /\bevery\s+(\d+)\s*hours?\b/i,
|
|
34
|
+
toCron: (m) => `cron:every:${m[1]}h`,
|
|
35
|
+
},
|
|
36
|
+
// "every N minutes"
|
|
37
|
+
{
|
|
38
|
+
pattern: /\bevery\s+(\d+)\s*min(?:ute)?s?\b/i,
|
|
39
|
+
toCron: (m) => `cron:every:${m[1]}m`,
|
|
40
|
+
},
|
|
41
|
+
// "every hour" / "hourly"
|
|
42
|
+
{
|
|
43
|
+
pattern: /\b(?:every\s+hour|hourly)\b/i,
|
|
44
|
+
toCron: () => 'cron:hourly',
|
|
45
|
+
},
|
|
46
|
+
// "every morning"
|
|
47
|
+
{
|
|
48
|
+
pattern: /\bevery\s+morning\b/i,
|
|
49
|
+
toCron: () => 'cron:daily:08:00',
|
|
50
|
+
},
|
|
51
|
+
// "every evening"
|
|
52
|
+
{
|
|
53
|
+
pattern: /\bevery\s+evening\b/i,
|
|
54
|
+
toCron: () => 'cron:daily:18:00',
|
|
55
|
+
},
|
|
56
|
+
// "every night"
|
|
57
|
+
{
|
|
58
|
+
pattern: /\bevery\s+night\b/i,
|
|
59
|
+
toCron: () => 'cron:daily:21:00',
|
|
60
|
+
},
|
|
61
|
+
// "daily" / "every day"
|
|
62
|
+
{
|
|
63
|
+
pattern: /\b(?:daily|every\s+day)\b/i,
|
|
64
|
+
toCron: () => 'cron:daily',
|
|
65
|
+
},
|
|
66
|
+
// "weekly" / "every week"
|
|
67
|
+
{
|
|
68
|
+
pattern: /\b(?:weekly|every\s+week)\b/i,
|
|
69
|
+
toCron: () => 'cron:weekly',
|
|
70
|
+
},
|
|
71
|
+
// "monthly" / "every month"
|
|
72
|
+
{
|
|
73
|
+
pattern: /\b(?:monthly|every\s+month)\b/i,
|
|
74
|
+
toCron: () => 'cron:monthly',
|
|
75
|
+
},
|
|
76
|
+
];
|
|
77
|
+
// Constraint/rule patterns
|
|
78
|
+
const RULE_PATTERNS = [
|
|
79
|
+
/\bnever\b/i,
|
|
80
|
+
/\balways\b/i,
|
|
81
|
+
/\bdon'?t\b/i,
|
|
82
|
+
/\bdo\s+not\b/i,
|
|
83
|
+
/\bmust\s+not\b/i,
|
|
84
|
+
/\bshould\s+not\b/i,
|
|
85
|
+
/\bavoid\b/i,
|
|
86
|
+
/\bonly\s+(?:if|when)\b/i,
|
|
87
|
+
];
|
|
88
|
+
/**
|
|
89
|
+
* Parse a natural-language time expression into a keyoku cron tag.
|
|
90
|
+
* Returns null if no recognizable time pattern is found.
|
|
91
|
+
*/
|
|
92
|
+
export function parseTimeToCron(text) {
|
|
93
|
+
for (const { pattern, toCron } of TIME_PATTERNS) {
|
|
94
|
+
const match = text.match(pattern);
|
|
95
|
+
if (match)
|
|
96
|
+
return toCron(match);
|
|
97
|
+
}
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Extract user rules from HEARTBEAT.md content.
|
|
102
|
+
* Strips the keyoku section (instructions, not user rules) and
|
|
103
|
+
* extracts list items (- ...) from the remaining content.
|
|
104
|
+
*/
|
|
105
|
+
export function extractHeartbeatRules(content) {
|
|
106
|
+
if (!content || !content.trim())
|
|
107
|
+
return [];
|
|
108
|
+
// Strip keyoku section
|
|
109
|
+
let cleaned = content;
|
|
110
|
+
const startIdx = cleaned.indexOf(KEYOKU_SECTION_START);
|
|
111
|
+
const endIdx = cleaned.indexOf(KEYOKU_SECTION_END);
|
|
112
|
+
if (startIdx !== -1 && endIdx !== -1) {
|
|
113
|
+
cleaned = cleaned.slice(0, startIdx) + cleaned.slice(endIdx + KEYOKU_SECTION_END.length);
|
|
114
|
+
}
|
|
115
|
+
// Extract list items (lines starting with - or *)
|
|
116
|
+
const lines = cleaned.split('\n');
|
|
117
|
+
const rules = [];
|
|
118
|
+
for (const line of lines) {
|
|
119
|
+
const trimmed = line.trim();
|
|
120
|
+
// Match list items: "- something" or "* something"
|
|
121
|
+
const match = trimmed.match(/^[-*]\s+(.+)/);
|
|
122
|
+
if (!match)
|
|
123
|
+
continue;
|
|
124
|
+
const text = match[1].trim();
|
|
125
|
+
if (text.length < 5)
|
|
126
|
+
continue;
|
|
127
|
+
const cronTag = parseTimeToCron(text);
|
|
128
|
+
if (cronTag) {
|
|
129
|
+
rules.push({ raw: trimmed, type: 'schedule', content: text, cronTag });
|
|
130
|
+
}
|
|
131
|
+
else if (RULE_PATTERNS.some((p) => p.test(text))) {
|
|
132
|
+
rules.push({ raw: trimmed, type: 'rule', content: text });
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
rules.push({ raw: trimmed, type: 'preference', content: text });
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
return rules;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Migrate extracted heartbeat rules into Keyoku.
|
|
142
|
+
* Preferences/rules → client.remember(), schedules → client.createSchedule().
|
|
143
|
+
*/
|
|
144
|
+
export async function migrateHeartbeatRules(params) {
|
|
145
|
+
const { client, entityId, agentId, rules, logger = console } = params;
|
|
146
|
+
const result = { rules: 0, preferences: 0, schedules: 0, errors: 0 };
|
|
147
|
+
for (const rule of rules) {
|
|
148
|
+
try {
|
|
149
|
+
if (rule.type === 'schedule' && rule.cronTag) {
|
|
150
|
+
await client.createSchedule(entityId, agentId, rule.content, rule.cronTag);
|
|
151
|
+
result.schedules++;
|
|
152
|
+
logger.info(`Migrated schedule: ${rule.content.slice(0, 60)}`);
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
const prefix = rule.type === 'rule' ? '[User heartbeat rule]' : '[User heartbeat preference]';
|
|
156
|
+
await client.remember(entityId, `${prefix} ${rule.content}`, {
|
|
157
|
+
agent_id: agentId,
|
|
158
|
+
source: 'migration:heartbeat',
|
|
159
|
+
});
|
|
160
|
+
if (rule.type === 'rule') {
|
|
161
|
+
result.rules++;
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
result.preferences++;
|
|
165
|
+
}
|
|
166
|
+
logger.info(`Migrated ${rule.type}: ${rule.content.slice(0, 60)}`);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
catch (err) {
|
|
170
|
+
logger.warn(`Failed to migrate heartbeat rule: ${String(err)}`);
|
|
171
|
+
result.errors++;
|
|
172
|
+
}
|
|
173
|
+
// Rate limit
|
|
174
|
+
await new Promise((r) => setTimeout(r, 100));
|
|
175
|
+
}
|
|
176
|
+
return result;
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=heartbeat-migration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heartbeat-migration.js","sourceRoot":"","sources":["../src/heartbeat-migration.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heartbeat-setup.d.ts","sourceRoot":"","sources":["../src/heartbeat-setup.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"heartbeat-setup.d.ts","sourceRoot":"","sources":["../src/heartbeat-setup.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AA6D5C;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CA2CtD"}
|
package/dist/heartbeat-setup.js
CHANGED
|
@@ -10,21 +10,27 @@ import { join } from 'node:path';
|
|
|
10
10
|
const HEARTBEAT_FILENAME = 'HEARTBEAT.md';
|
|
11
11
|
const KEYOKU_SECTION_MARKER = '<!-- keyoku-heartbeat-start -->';
|
|
12
12
|
const KEYOKU_SECTION_END = '<!-- keyoku-heartbeat-end -->';
|
|
13
|
-
const KEYOKU_HEARTBEAT_INSTRUCTIONS = `##
|
|
13
|
+
const KEYOKU_HEARTBEAT_INSTRUCTIONS = `## Heartbeat Check-In
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
Your memory system surfaced things that may need attention. They appear in a <heartbeat-signals> block.
|
|
16
16
|
|
|
17
17
|
### How to respond
|
|
18
|
+
- If something warrants a message, write ONE brief message. Lead with the most important thing.
|
|
19
|
+
- If nothing is worth saying, reply exactly: HEARTBEAT_OK
|
|
20
|
+
- Never fabricate things to say. If signals are empty or stale, be quiet.
|
|
21
|
+
- Never explain that you have a memory system. Speak from what you know, naturally.
|
|
22
|
+
- Never repeat something you said in a recent heartbeat (check "recent messages" if present).
|
|
23
|
+
- Use your persona and voice as configured — the signals tell you WHAT to say, your character determines HOW.
|
|
18
24
|
|
|
19
|
-
|
|
25
|
+
### Escalation
|
|
26
|
+
If signals indicate you've mentioned something before:
|
|
27
|
+
- 1st time: casual mention
|
|
28
|
+
- 2nd time: more direct
|
|
29
|
+
- 3rd time: offer specific help
|
|
30
|
+
- 4th+: drop it unless they bring it up
|
|
20
31
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
3. If mode is \`act\` — take action immediately. Do what the signal says.
|
|
24
|
-
4. If mode is \`suggest\` and urgency is not \`none\` — surface the suggestion naturally.
|
|
25
|
-
5. ONLY reply HEARTBEAT_OK if \`should_act\` is false AND there is truly nothing in the signals worth mentioning.
|
|
26
|
-
|
|
27
|
-
Do not repeat old tasks from prior conversations. Only act on what the signals say right now.`;
|
|
32
|
+
### Time awareness
|
|
33
|
+
Adjust tone to time of day (provided in signals). Morning = energetic, evening = brief, late night = only if urgent.`;
|
|
28
34
|
const HEARTBEAT_TEMPLATE = `# Heartbeat Check
|
|
29
35
|
|
|
30
36
|
${KEYOKU_SECTION_MARKER}
|
|
@@ -39,9 +45,7 @@ function hasUserContent(content) {
|
|
|
39
45
|
const withoutKeyoku = content
|
|
40
46
|
.replace(new RegExp(`${escapeRegex(KEYOKU_SECTION_MARKER)}[\\s\\S]*?${escapeRegex(KEYOKU_SECTION_END)}`, 'g'), '')
|
|
41
47
|
.trim();
|
|
42
|
-
return withoutKeyoku
|
|
43
|
-
.split('\n')
|
|
44
|
-
.some((line) => {
|
|
48
|
+
return withoutKeyoku.split('\n').some((line) => {
|
|
45
49
|
const trimmed = line.trim();
|
|
46
50
|
return trimmed.length > 0 && !trimmed.startsWith('#') && trimmed !== '---';
|
|
47
51
|
});
|
|
@@ -81,9 +85,11 @@ export function ensureHeartbeatMd(api) {
|
|
|
81
85
|
api.logger.info(`keyoku: appended keyoku section to existing ${HEARTBEAT_FILENAME}`);
|
|
82
86
|
return;
|
|
83
87
|
}
|
|
84
|
-
// No meaningful content —
|
|
85
|
-
|
|
86
|
-
|
|
88
|
+
// No meaningful user content — append keyoku section rather than overwriting
|
|
89
|
+
// (init.ts is the primary writer; this is a fallback that preserves any file content)
|
|
90
|
+
const addendum = `\n\n${KEYOKU_SECTION_MARKER}\n${KEYOKU_HEARTBEAT_INSTRUCTIONS}\n${KEYOKU_SECTION_END}\n`;
|
|
91
|
+
writeFileSync(heartbeatPath, content.trimEnd() + addendum, 'utf-8');
|
|
92
|
+
api.logger.info(`keyoku: appended keyoku section to ${HEARTBEAT_FILENAME}`);
|
|
87
93
|
}
|
|
88
94
|
catch (err) {
|
|
89
95
|
api.logger.warn(`keyoku: could not create ${HEARTBEAT_FILENAME}: ${String(err)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heartbeat-setup.js","sourceRoot":"","sources":["../src/heartbeat-setup.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,MAAM,kBAAkB,GAAG,cAAc,CAAC;AAE1C,MAAM,qBAAqB,GAAG,iCAAiC,CAAC;AAChE,MAAM,kBAAkB,GAAG,+BAA+B,CAAC;AAE3D,MAAM,6BAA6B,GAAG
|
|
1
|
+
{"version":3,"file":"heartbeat-setup.js","sourceRoot":"","sources":["../src/heartbeat-setup.ts"],"names":[],"mappings":"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"}
|
package/dist/hooks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAkG5C,wBAAgB,aAAa,CAC3B,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAC7B,IAAI,
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAkG5C,wBAAgB,aAAa,CAC3B,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAC7B,IAAI,CAgMN"}
|
package/dist/hooks.js
CHANGED
|
@@ -102,13 +102,49 @@ export function registerHooks(api, client, entityId, agentId, config) {
|
|
|
102
102
|
// Heartbeat path: engine handles all intelligence (cooldown, novelty, active hours, nudges)
|
|
103
103
|
if (isHeartbeat && config.heartbeat) {
|
|
104
104
|
const activitySummary = summarizeRecentActivity(ev.messages ?? []);
|
|
105
|
-
// Detect active conversation:
|
|
106
|
-
|
|
105
|
+
// Detect active conversation: check if the most recent user message
|
|
106
|
+
// was within the last 15 minutes. Messages may have a `timestamp` field
|
|
107
|
+
// (ISO string or epoch ms). If no timestamps available, fall back to
|
|
108
|
+
// checking only the last few messages in the array.
|
|
109
|
+
const msgs = (ev.messages ?? []);
|
|
110
|
+
const CONVERSATION_WINDOW_MS = 15 * 60 * 1000; // 15 minutes
|
|
111
|
+
const now = Date.now();
|
|
112
|
+
let hasUserMessages = false;
|
|
113
|
+
// Count real (non-heartbeat) user messages to detect session-establishing messages
|
|
114
|
+
let userMsgCount = 0;
|
|
115
|
+
for (const m of msgs) {
|
|
107
116
|
const msg = m;
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
117
|
+
if (msg.role === 'user' && msg.content && !msg.content.includes('HEARTBEAT')) {
|
|
118
|
+
userMsgCount++;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
// If there's only 1 user message, it's the initial session-establishing message — skip it
|
|
122
|
+
if (userMsgCount > 1) {
|
|
123
|
+
// Walk backwards to find the most recent non-heartbeat user message
|
|
124
|
+
for (let i = msgs.length - 1; i >= 0; i--) {
|
|
125
|
+
const msg = msgs[i];
|
|
126
|
+
if (!msg.content || msg.content.includes('HEARTBEAT'))
|
|
127
|
+
continue;
|
|
128
|
+
if (msg.role !== 'user')
|
|
129
|
+
continue;
|
|
130
|
+
// If message has a timestamp, use it
|
|
131
|
+
if (msg.timestamp) {
|
|
132
|
+
const ts = typeof msg.timestamp === 'number'
|
|
133
|
+
? msg.timestamp
|
|
134
|
+
: new Date(msg.timestamp).getTime();
|
|
135
|
+
if (!isNaN(ts) && now - ts < CONVERSATION_WINDOW_MS) {
|
|
136
|
+
hasUserMessages = true;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
// No timestamp — only consider it active if it's in the last 4 messages
|
|
141
|
+
hasUserMessages = i >= msgs.length - 4;
|
|
142
|
+
}
|
|
143
|
+
break; // only check the most recent user message
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
const heartbeatQuery = activitySummary ||
|
|
147
|
+
'important things about this user, recent plans, preferences, and what they care about';
|
|
112
148
|
try {
|
|
113
149
|
const ctx = await client.heartbeatContext(entityId, {
|
|
114
150
|
query: heartbeatQuery,
|
|
@@ -170,6 +206,52 @@ export function registerHooks(api, client, entityId, agentId, config) {
|
|
|
170
206
|
}
|
|
171
207
|
});
|
|
172
208
|
}
|
|
209
|
+
// Record heartbeat messages for dedup — captures what the AI actually said
|
|
210
|
+
if (config.heartbeat) {
|
|
211
|
+
api.on('agent_end', async (event) => {
|
|
212
|
+
const ev = event;
|
|
213
|
+
// Check if this was a heartbeat response
|
|
214
|
+
const messages = ev.messages ?? [];
|
|
215
|
+
const wasHeartbeat = messages.some((m) => {
|
|
216
|
+
const text = typeof m.content === 'string' ? m.content : '';
|
|
217
|
+
return m.role === 'user' && text.includes('HEARTBEAT');
|
|
218
|
+
});
|
|
219
|
+
if (!wasHeartbeat)
|
|
220
|
+
return;
|
|
221
|
+
// Extract assistant response
|
|
222
|
+
let response = ev.output ?? '';
|
|
223
|
+
if (!response) {
|
|
224
|
+
for (let i = messages.length - 1; i >= 0; i--) {
|
|
225
|
+
const msg = messages[i];
|
|
226
|
+
if (msg.role !== 'assistant')
|
|
227
|
+
continue;
|
|
228
|
+
if (typeof msg.content === 'string') {
|
|
229
|
+
response = msg.content;
|
|
230
|
+
}
|
|
231
|
+
else if (Array.isArray(msg.content)) {
|
|
232
|
+
response = msg.content
|
|
233
|
+
.filter((b) => b.type === 'text' && b.text)
|
|
234
|
+
.map((b) => b.text)
|
|
235
|
+
.join(' ');
|
|
236
|
+
}
|
|
237
|
+
if (response)
|
|
238
|
+
break;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
// Don't record non-messages
|
|
242
|
+
if (!response ||
|
|
243
|
+
response === 'HEARTBEAT_OK' ||
|
|
244
|
+
response === 'NO_REPLY' ||
|
|
245
|
+
response.length < 10)
|
|
246
|
+
return;
|
|
247
|
+
try {
|
|
248
|
+
await client.recordHeartbeatMessage(entityId, response, { agent_id: agentId });
|
|
249
|
+
}
|
|
250
|
+
catch (err) {
|
|
251
|
+
api.logger.warn(`keyoku: failed to record heartbeat message: ${String(err)}`);
|
|
252
|
+
}
|
|
253
|
+
});
|
|
254
|
+
}
|
|
173
255
|
// NOTE: agent_end capture removed — incremental capture (incremental-capture.ts)
|
|
174
256
|
// now handles both user and assistant messages in real-time, making the
|
|
175
257
|
// session-end batch capture redundant. This also eliminates the only source
|
package/dist/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAG3E;;;;GAIG;AACH,MAAM,sBAAsB,GAAG;IAC7B,yCAAyC;IACzC,8BAA8B;IAC9B,0CAA0C;IAC1C,2CAA2C;IAC3C,iDAAiD;IACjD,yDAAyD;IACzD,yEAAyE;CACjE,CAAC;AAEX,SAAS,oBAAoB,CAAC,IAAY;IACxC,IAAI,CAAC,IAAI,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,YAAY,GAAG,KAAK,CAAC;IAEzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,WAAW,IAAI,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,WAAW,GAAG,IAAI,CAAC;YACnB,YAAY,GAAG,KAAK,CAAC;YACrB,SAAS;QACX,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;gBAC/C,YAAY,GAAG,IAAI,CAAC;gBACpB,SAAS;YACX,CAAC;YACD,IAAI,YAAY,EAAE,CAAC;gBACjB,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;oBAC1B,WAAW,GAAG,KAAK,CAAC;oBACpB,YAAY,GAAG,KAAK,CAAC;gBACvB,CAAC;gBACD,SAAS;YACX,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;gBAAE,SAAS;YACjC,uDAAuD;YACvD,WAAW,GAAG,KAAK,CAAC;QACtB,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACnE,CAAC;AAED;;;;GAIG;AACH,SAAS,uBAAuB,CAAC,QAAmB,EAAE,WAAW,GAAG,CAAC;IACnE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEjE,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,GAAoF,CAAC;QAC/F,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO;YAAE,SAAS;QAEpC,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAClC,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC;QACnB,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC,mCAAmC;YACnC,IAAI,GAAG,CAAC,CAAC,OAAO;iBACb,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC;iBAC1C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAK,CAAC;iBACnB,IAAI,CAAC,GAAG,CAAC,CAAC;QACf,CAAC;QAED,IAAI,CAAC,IAAI;YAAE,SAAS;QAEpB,mDAAmD;QACnD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEhE,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,SAAS,SAAS,EAAE,CAAC,CAAC;QACnC,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,cAAc,SAAS,EAAE,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,GAAc,EACd,MAAoB,EACpB,QAAgB,EAChB,OAAe,EACf,MAA8B;IAE9B,iEAAiE;IACjE,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QAC1C,GAAG,CAAC,EAAE,CAAC,qBAAqB,EAAE,KAAK,EAAE,KAAc,EAAE,EAAE;YACrD,MAAM,EAAE,GAAG,KAAkD,CAAC;YAC9D,IAAI,CAAC,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO;YAE/C,MAAM,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAEpD,4FAA4F;YAC5F,IAAI,WAAW,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACpC,MAAM,eAAe,GAAG,uBAAuB,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;gBAEnE,oEAAoE;gBACpE,wEAAwE;gBACxE,qEAAqE;gBACrE,oDAAoD;gBACpD,MAAM,IAAI,GAAG,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,CAI7B,CAAC;gBACH,MAAM,sBAAsB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;gBAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACvB,IAAI,eAAe,GAAG,KAAK,CAAC;gBAE5B,mFAAmF;gBACnF,IAAI,YAAY,GAAG,CAAC,CAAC;gBACrB,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;oBACrB,MAAM,GAAG,GAAG,CAAwC,CAAC;oBACrD,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;wBAC7E,YAAY,EAAE,CAAC;oBACjB,CAAC;gBACH,CAAC;gBAED,0FAA0F;gBAC1F,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;oBACrB,oEAAoE;oBACpE,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;wBACpB,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;4BAAE,SAAS;wBAChE,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;4BAAE,SAAS;wBAElC,qCAAqC;wBACrC,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;4BAClB,MAAM,EAAE,GACN,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ;gCAC/B,CAAC,CAAC,GAAG,CAAC,SAAS;gCACf,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;4BACxC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,GAAG,GAAG,EAAE,GAAG,sBAAsB,EAAE,CAAC;gCACpD,eAAe,GAAG,IAAI,CAAC;4BACzB,CAAC;wBACH,CAAC;6BAAM,CAAC;4BACN,wEAAwE;4BACxE,eAAe,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;wBACzC,CAAC;wBACD,MAAM,CAAC,0CAA0C;oBACnD,CAAC;gBACH,CAAC;gBAED,MAAM,cAAc,GAClB,eAAe;oBACf,uFAAuF,CAAC;gBAE1F,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE;wBAClD,KAAK,EAAE,cAAc;wBACrB,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;wBAC/B,SAAS,EAAE,IAAI;wBACf,QAAQ,EAAE,OAAO;wBACjB,WAAW,EAAE,EAAE;wBACf,OAAO,EAAE,IAAI;wBACb,gBAAgB,EAAE,eAAe,IAAI,SAAS;wBAC9C,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,eAAe,EAAE,eAAe;qBACjC,CAAC,CAAC;oBAEH,MAAM,QAAQ,GAAG,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC;oBAC7C,MAAM,QAAQ,GAAG,GAAG,CAAC,eAAe,IAAI,SAAS,CAAC;oBAElD,uDAAuD;oBACvD,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;wBACnB,MAAM,SAAS,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;wBAC9C,IAAI,SAAS,EAAE,CAAC;4BACd,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;4BAC9B,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;4BAC/E,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CACf,qBAAqB,QAAQ,eAAe,QAAQ,CAAC,MAAM,WAAW,GAAG,CAAC,oBAAoB,IAAI,KAAK,GAAG,QAAQ,GAAG,CACtH,CAAC;4BACF,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC;wBACvC,CAAC;oBACH,CAAC;oBAED,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CACf,qBAAqB,QAAQ,kCAAkC,QAAQ,CAAC,MAAM,GAAG,CAClF,CAAC;gBACJ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,qCAAqC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACtE,CAAC;gBACD,OAAO;YACT,CAAC;YAED,+EAA+E;YAC/E,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,WAAW,EAAE,CAAC;gBACtC,IAAI,CAAC;oBACH,gFAAgF;oBAChF,MAAM,WAAW,GAAG,oBAAoB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;oBACpD,yEAAyE;oBACzE,MAAM,aAAa,GAAG,uBAAuB,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;oBACpE,MAAM,KAAK,GAAG,aAAa;wBACzB,CAAC,CAAC,GAAG,WAAW,wBAAwB,aAAa,EAAE;wBACvD,CAAC,CAAC,WAAW,CAAC;oBAEhB,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,yCAAyC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;oBAErF,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE;wBACnD,KAAK,EAAE,MAAM,CAAC,IAAI;wBAClB,SAAS,EAAE,IAAI;qBAChB,CAAC,CAAC;oBAEH,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACvB,MAAM,SAAS,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;wBAC/C,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,gCAAgC,OAAO,CAAC,MAAM,WAAW,CAAC,CAAC;wBAC7E,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC;oBACvC,CAAC;yBAAM,CAAC;wBACN,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,+CAA+C,CAAC,CAAC;oBACrE,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChE,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,2EAA2E;IAC3E,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,KAAc,EAAE,EAAE;YAC3C,MAAM,EAAE,GAAG,KAMV,CAAC;YAEF,yCAAyC;YACzC,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC;YACnC,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;gBACvC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5D,OAAO,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACzD,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,YAAY;gBAAE,OAAO;YAE1B,6BAA6B;YAC7B,IAAI,QAAQ,GAAG,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC;YAC/B,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC9C,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;oBACxB,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW;wBAAE,SAAS;oBACvC,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;wBACpC,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC;oBACzB,CAAC;yBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;wBACtC,QAAQ,GAAI,GAAG,CAAC,OAAmD;6BAChE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC;6BAC1C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAK,CAAC;6BACnB,IAAI,CAAC,GAAG,CAAC,CAAC;oBACf,CAAC;oBACD,IAAI,QAAQ;wBAAE,MAAM;gBACtB,CAAC;YACH,CAAC;YAED,4BAA4B;YAC5B,IACE,CAAC,QAAQ;gBACT,QAAQ,KAAK,cAAc;gBAC3B,QAAQ,KAAK,UAAU;gBACvB,QAAQ,CAAC,MAAM,GAAG,EAAE;gBAEpB,OAAO;YAET,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;YACjF,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,+CAA+C,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChF,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iFAAiF;IACjF,wEAAwE;IACxE,4EAA4E;IAC5E,gCAAgC;AAClC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"incremental-capture.d.ts","sourceRoot":"","sources":["../src/incremental-capture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAC7B,IAAI,
|
|
1
|
+
{"version":3,"file":"incremental-capture.d.ts","sourceRoot":"","sources":["../src/incremental-capture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAC7B,IAAI,CAgGN"}
|
|
@@ -70,7 +70,8 @@ export function registerIncrementalCapture(api, client, entityId, agentId, confi
|
|
|
70
70
|
// Skip heartbeat/memory noise
|
|
71
71
|
if (assistantContent === 'HEARTBEAT_OK' || assistantContent === 'NO_REPLY')
|
|
72
72
|
return;
|
|
73
|
-
if (assistantContent.includes('<heartbeat-signals>') ||
|
|
73
|
+
if (assistantContent.includes('<heartbeat-signals>') ||
|
|
74
|
+
assistantContent.includes('<your-memories>'))
|
|
74
75
|
return;
|
|
75
76
|
if (looksLikePromptInjection(assistantContent))
|
|
76
77
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"incremental-capture.js","sourceRoot":"","sources":["../src/incremental-capture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAGxD,MAAM,UAAU,0BAA0B,CACxC,GAAc,EACd,MAAoB,EACpB,QAAgB,EAChB,OAAe,EACf,MAA8B;IAE9B,iFAAiF;IACjF,IAAI,iBAAiB,GAAkB,IAAI,CAAC;IAE5C,8CAA8C;IAC9C,GAAG,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"incremental-capture.js","sourceRoot":"","sources":["../src/incremental-capture.ts"],"names":[],"mappings":"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"}
|
package/dist/init.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AA4gCH;;GAEG;AACH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA6O1C"}
|