@lyriel/openclaw-plugin 0.5.0 → 0.6.2
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/background.js +312 -0
- package/dist/background.js.map +1 -0
- package/dist/inbox.js +32 -28
- package/dist/inbox.js.map +1 -1
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
// Autonomous plan-round handling for the OpenClaw plugin.
|
|
2
|
+
//
|
|
3
|
+
// OpenClaw's scheduleSessionTurn doesn't bind MCP tools (empirically
|
|
4
|
+
// confirmed: plugin schedules a turn with the substrate envelope, LLM
|
|
5
|
+
// runs, but never invokes lyriel_plan_reply). enqueueNextTurnInjection
|
|
6
|
+
// works for asks but fails for plan rounds (LLM treats injected
|
|
7
|
+
// context as meta/scaffolding).
|
|
8
|
+
//
|
|
9
|
+
// This file replicates clients/hermes-plugin/lyriel_hermes/background.py
|
|
10
|
+
// for the OpenClaw runtime: when a plan round arrives, we call the LLM
|
|
11
|
+
// ourselves with the lyriel_plan_reply tool schema, parse the tool
|
|
12
|
+
// call, and POST the reply via Lyriel's API-key-auth path on
|
|
13
|
+
// /api/plans/:id/messages.
|
|
14
|
+
//
|
|
15
|
+
// Provider auto-detection — checks env vars in priority order:
|
|
16
|
+
// 1. OPENROUTER_API_KEY — OpenAI-compatible API, supports any model
|
|
17
|
+
// 2. ANTHROPIC_API_KEY — Anthropic-native API
|
|
18
|
+
// 3. OPENAI_API_KEY — OpenAI-native API
|
|
19
|
+
//
|
|
20
|
+
// The user doesn't need to set a Lyriel-specific LLM key — whatever
|
|
21
|
+
// they already configured for OpenClaw (via `launchctl setenv` or
|
|
22
|
+
// shell profile) is used. Model defaults are chosen per-provider for
|
|
23
|
+
// cheap, fast tool calling. Override with LYRIEL_BACKGROUND_MODEL if
|
|
24
|
+
// the default doesn't match the active provider's slug naming.
|
|
25
|
+
//
|
|
26
|
+
// Failure modes are graceful: missing keys, LLM error, model declines
|
|
27
|
+
// to call the tool → fall back to posting stay_silent so the substrate
|
|
28
|
+
// advances and the plan doesn't stall.
|
|
29
|
+
const BACKGROUND_TURN_TIMEOUT_MS = 180_000;
|
|
30
|
+
// Imperative prompt asking the LLM to invoke lyriel_plan_reply. The
|
|
31
|
+
// model receives this followed by the substrate envelope.
|
|
32
|
+
const BACKGROUND_PROMPT_PREFIX = "[Lyriel background plan turn — automated, no user present.\n\n" +
|
|
33
|
+
"CRITICAL: You MUST call the lyriel_plan_reply tool to respond. " +
|
|
34
|
+
"Text-only responses do nothing — the substrate ignores them, " +
|
|
35
|
+
"the round times out, and the plan stalls. The tool call IS " +
|
|
36
|
+
"the response. There is no other way to participate in this " +
|
|
37
|
+
"round.\n\n" +
|
|
38
|
+
"Your user is NOT watching this turn. Do NOT ask clarifying " +
|
|
39
|
+
"questions. Use what you already know about them (calendar, " +
|
|
40
|
+
"preferences, dietary, location, budget). If a constraint is " +
|
|
41
|
+
"missing, accept wide constraints and let other participants " +
|
|
42
|
+
"narrow.\n\n" +
|
|
43
|
+
"Call lyriel_plan_reply now. Pass stay_silent=true if you " +
|
|
44
|
+
"genuinely have nothing to add. Keep `content` concise — " +
|
|
45
|
+
"every token costs your user money.]\n\n";
|
|
46
|
+
// JSON-Schema tool definition. The OpenAI-format tool object below is
|
|
47
|
+
// also accepted by OpenRouter (passthrough) and Anthropic (with a
|
|
48
|
+
// shape conversion in callAnthropic).
|
|
49
|
+
const PLAN_REPLY_TOOL_DESCRIPTION = "Contribute to an ongoing Lyriel group plan round. " +
|
|
50
|
+
"plan_id is in the envelope below (look for `plan_id <uuid>`). " +
|
|
51
|
+
"Keep content to 1-2 sentences. Pass stay_silent=true if you " +
|
|
52
|
+
"have nothing new to add.";
|
|
53
|
+
const PLAN_REPLY_PARAMETERS = {
|
|
54
|
+
type: "object",
|
|
55
|
+
properties: {
|
|
56
|
+
plan_id: {
|
|
57
|
+
type: "string",
|
|
58
|
+
description: "Plan UUID extracted from the envelope.",
|
|
59
|
+
},
|
|
60
|
+
content: {
|
|
61
|
+
type: "string",
|
|
62
|
+
description: "Your contribution to this round, 1-2 sentences.",
|
|
63
|
+
},
|
|
64
|
+
stay_silent: {
|
|
65
|
+
type: "boolean",
|
|
66
|
+
description: "Pass true to advance the plan without contributing.",
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
required: ["plan_id"],
|
|
70
|
+
};
|
|
71
|
+
const OPENAI_TOOL_DEFINITION = {
|
|
72
|
+
type: "function",
|
|
73
|
+
function: {
|
|
74
|
+
name: "lyriel_plan_reply",
|
|
75
|
+
description: PLAN_REPLY_TOOL_DESCRIPTION,
|
|
76
|
+
parameters: PLAN_REPLY_PARAMETERS,
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
// Anthropic uses a flatter tool shape than OpenAI.
|
|
80
|
+
const ANTHROPIC_TOOL_DEFINITION = {
|
|
81
|
+
name: "lyriel_plan_reply",
|
|
82
|
+
description: PLAN_REPLY_TOOL_DESCRIPTION,
|
|
83
|
+
input_schema: PLAN_REPLY_PARAMETERS,
|
|
84
|
+
};
|
|
85
|
+
// Provider auto-detect. Reads env vars in priority order; first hit
|
|
86
|
+
// wins. Returns null when nothing is set — caller falls back to
|
|
87
|
+
// stay_silent and logs a setup hint.
|
|
88
|
+
function resolveProvider() {
|
|
89
|
+
const openrouter = (process.env.OPENROUTER_API_KEY ?? "").trim();
|
|
90
|
+
if (openrouter) {
|
|
91
|
+
return {
|
|
92
|
+
name: "openrouter",
|
|
93
|
+
apiKey: openrouter,
|
|
94
|
+
// deepseek-v4-flash: cheap, fast, decent tool calls. Cohort default.
|
|
95
|
+
defaultModel: "deepseek/deepseek-v4-flash",
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
const anthropic = (process.env.ANTHROPIC_API_KEY ?? "").trim();
|
|
99
|
+
if (anthropic) {
|
|
100
|
+
return {
|
|
101
|
+
name: "anthropic",
|
|
102
|
+
apiKey: anthropic,
|
|
103
|
+
// claude-haiku-4-5: cheap, strong tool calls. ~5x more expensive
|
|
104
|
+
// than deepseek but reliably calls tools.
|
|
105
|
+
defaultModel: "claude-haiku-4-5",
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
const openai = (process.env.OPENAI_API_KEY ?? "").trim();
|
|
109
|
+
if (openai) {
|
|
110
|
+
return {
|
|
111
|
+
name: "openai",
|
|
112
|
+
apiKey: openai,
|
|
113
|
+
defaultModel: "gpt-4o-mini",
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
return null;
|
|
117
|
+
}
|
|
118
|
+
export function createBackgroundRunner(opts) {
|
|
119
|
+
return {
|
|
120
|
+
async run({ planId, envelope }) {
|
|
121
|
+
const provider = resolveProvider();
|
|
122
|
+
if (!provider) {
|
|
123
|
+
opts.logger.warn(`background turn for plan_id=${planId}: no LLM API key configured. ` +
|
|
124
|
+
`Set one of OPENROUTER_API_KEY, ANTHROPIC_API_KEY, or OPENAI_API_KEY ` +
|
|
125
|
+
`via launchctl setenv (whichever provider you already use with OpenClaw). ` +
|
|
126
|
+
`Falling back to stay_silent.`);
|
|
127
|
+
await postStaySilent(opts, planId);
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
const model = (process.env.LYRIEL_BACKGROUND_MODEL ?? provider.defaultModel).trim();
|
|
131
|
+
const prompt = BACKGROUND_PROMPT_PREFIX + envelope;
|
|
132
|
+
opts.logger.info(`background turn for plan_id=${planId}: starting (provider=${provider.name}, model=${model})`);
|
|
133
|
+
const started = Date.now();
|
|
134
|
+
let result;
|
|
135
|
+
try {
|
|
136
|
+
if (provider.name === "anthropic") {
|
|
137
|
+
result = await callAnthropic({
|
|
138
|
+
apiKey: provider.apiKey,
|
|
139
|
+
model,
|
|
140
|
+
prompt,
|
|
141
|
+
timeoutMs: BACKGROUND_TURN_TIMEOUT_MS,
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
// openrouter and openai both speak the OpenAI chat-completions shape.
|
|
146
|
+
const baseUrl = provider.name === "openrouter"
|
|
147
|
+
? "https://openrouter.ai/api/v1"
|
|
148
|
+
: "https://api.openai.com/v1";
|
|
149
|
+
result = await callOpenAiCompat({
|
|
150
|
+
apiKey: provider.apiKey,
|
|
151
|
+
baseUrl,
|
|
152
|
+
model,
|
|
153
|
+
prompt,
|
|
154
|
+
timeoutMs: BACKGROUND_TURN_TIMEOUT_MS,
|
|
155
|
+
providerName: provider.name,
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
catch (err) {
|
|
160
|
+
opts.logger.error(`background turn for plan_id=${planId}: LLM call failed (provider=${provider.name}): ${err.message}. Falling back to stay_silent.`);
|
|
161
|
+
await postStaySilent(opts, planId);
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
const elapsedSec = ((Date.now() - started) / 1000).toFixed(1);
|
|
165
|
+
if (result === "no_tool_call") {
|
|
166
|
+
opts.logger.warn(`background turn for plan_id=${planId}: LLM did not call lyriel_plan_reply ` +
|
|
167
|
+
`after ${elapsedSec}s (provider=${provider.name}, model=${model}). ` +
|
|
168
|
+
`Falling back to stay_silent.`);
|
|
169
|
+
await postStaySilent(opts, planId);
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
// The LLM might have returned a different plan_id than the one we
|
|
173
|
+
// dispatched (model confusion, hallucinated UUID). Trust the
|
|
174
|
+
// dispatched planId — the LLM's plan_id in args is advisory.
|
|
175
|
+
const content = result.content;
|
|
176
|
+
const staySilent = result.staySilent;
|
|
177
|
+
if (!staySilent && !content.trim()) {
|
|
178
|
+
opts.logger.warn(`background turn for plan_id=${planId}: tool call had empty content + stay_silent=false. Falling back to stay_silent.`);
|
|
179
|
+
await postStaySilent(opts, planId);
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
try {
|
|
183
|
+
await postPlanMessage(opts, planId, content, staySilent);
|
|
184
|
+
opts.logger.info(`background turn for plan_id=${planId}: posted reply ` +
|
|
185
|
+
`(content_len=${content.length}, stay_silent=${staySilent}, elapsed=${elapsedSec}s)`);
|
|
186
|
+
}
|
|
187
|
+
catch (err) {
|
|
188
|
+
opts.logger.error(`background turn for plan_id=${planId}: POST to Lyriel failed: ${err.message}`);
|
|
189
|
+
}
|
|
190
|
+
},
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
// ─── OpenAI-compatible providers (OpenRouter, OpenAI) ─────────────────────
|
|
194
|
+
async function callOpenAiCompat(args) {
|
|
195
|
+
const controller = new AbortController();
|
|
196
|
+
const timer = setTimeout(() => controller.abort(), args.timeoutMs);
|
|
197
|
+
try {
|
|
198
|
+
const headers = {
|
|
199
|
+
authorization: `Bearer ${args.apiKey}`,
|
|
200
|
+
"content-type": "application/json",
|
|
201
|
+
};
|
|
202
|
+
// OpenRouter attribution headers — recommended but not required.
|
|
203
|
+
if (args.providerName === "openrouter") {
|
|
204
|
+
headers["HTTP-Referer"] = "https://lyriel.ai";
|
|
205
|
+
headers["X-Title"] = "Lyriel OpenClaw plugin";
|
|
206
|
+
}
|
|
207
|
+
const res = await fetch(`${args.baseUrl}/chat/completions`, {
|
|
208
|
+
method: "POST",
|
|
209
|
+
headers,
|
|
210
|
+
body: JSON.stringify({
|
|
211
|
+
model: args.model,
|
|
212
|
+
messages: [{ role: "user", content: args.prompt }],
|
|
213
|
+
tools: [OPENAI_TOOL_DEFINITION],
|
|
214
|
+
tool_choice: "required",
|
|
215
|
+
max_tokens: 512,
|
|
216
|
+
}),
|
|
217
|
+
signal: controller.signal,
|
|
218
|
+
});
|
|
219
|
+
if (!res.ok) {
|
|
220
|
+
const errText = await res.text().catch(() => "");
|
|
221
|
+
throw new Error(`${args.providerName} ${res.status}: ${errText.slice(0, 200)}`);
|
|
222
|
+
}
|
|
223
|
+
const body = (await res.json());
|
|
224
|
+
const fn = body.choices?.[0]?.message?.tool_calls?.[0]?.function;
|
|
225
|
+
if (!fn || fn.name !== "lyriel_plan_reply") {
|
|
226
|
+
return "no_tool_call";
|
|
227
|
+
}
|
|
228
|
+
let parsed;
|
|
229
|
+
try {
|
|
230
|
+
parsed = JSON.parse(fn.arguments ?? "{}");
|
|
231
|
+
}
|
|
232
|
+
catch {
|
|
233
|
+
return "no_tool_call";
|
|
234
|
+
}
|
|
235
|
+
return {
|
|
236
|
+
planId: typeof parsed.plan_id === "string" ? parsed.plan_id : "",
|
|
237
|
+
content: typeof parsed.content === "string" ? parsed.content : "",
|
|
238
|
+
staySilent: parsed.stay_silent === true,
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
finally {
|
|
242
|
+
clearTimeout(timer);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
// ─── Anthropic native ─────────────────────────────────────────────────────
|
|
246
|
+
async function callAnthropic(args) {
|
|
247
|
+
const controller = new AbortController();
|
|
248
|
+
const timer = setTimeout(() => controller.abort(), args.timeoutMs);
|
|
249
|
+
try {
|
|
250
|
+
const res = await fetch("https://api.anthropic.com/v1/messages", {
|
|
251
|
+
method: "POST",
|
|
252
|
+
headers: {
|
|
253
|
+
"x-api-key": args.apiKey,
|
|
254
|
+
"anthropic-version": "2023-06-01",
|
|
255
|
+
"content-type": "application/json",
|
|
256
|
+
},
|
|
257
|
+
body: JSON.stringify({
|
|
258
|
+
model: args.model,
|
|
259
|
+
max_tokens: 512,
|
|
260
|
+
messages: [{ role: "user", content: args.prompt }],
|
|
261
|
+
tools: [ANTHROPIC_TOOL_DEFINITION],
|
|
262
|
+
tool_choice: { type: "tool", name: "lyriel_plan_reply" },
|
|
263
|
+
}),
|
|
264
|
+
signal: controller.signal,
|
|
265
|
+
});
|
|
266
|
+
if (!res.ok) {
|
|
267
|
+
const errText = await res.text().catch(() => "");
|
|
268
|
+
throw new Error(`anthropic ${res.status}: ${errText.slice(0, 200)}`);
|
|
269
|
+
}
|
|
270
|
+
const body = (await res.json());
|
|
271
|
+
// Anthropic returns content blocks. Find the tool_use block.
|
|
272
|
+
const toolUse = (body.content ?? []).find((b) => b?.type === "tool_use" && b.name === "lyriel_plan_reply");
|
|
273
|
+
if (!toolUse || !toolUse.input) {
|
|
274
|
+
return "no_tool_call";
|
|
275
|
+
}
|
|
276
|
+
return {
|
|
277
|
+
planId: typeof toolUse.input.plan_id === "string" ? toolUse.input.plan_id : "",
|
|
278
|
+
content: typeof toolUse.input.content === "string" ? toolUse.input.content : "",
|
|
279
|
+
staySilent: toolUse.input.stay_silent === true,
|
|
280
|
+
};
|
|
281
|
+
}
|
|
282
|
+
finally {
|
|
283
|
+
clearTimeout(timer);
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
// ─── Lyriel POSTs ─────────────────────────────────────────────────────────
|
|
287
|
+
async function postPlanMessage(opts, planId, content, staySilent) {
|
|
288
|
+
const url = `${opts.lyrielBaseUrl.replace(/\/+$/, "")}/api/plans/${planId}/messages`;
|
|
289
|
+
const res = await fetch(url, {
|
|
290
|
+
method: "POST",
|
|
291
|
+
headers: {
|
|
292
|
+
authorization: `Bearer ${opts.lyrielApiKey}`,
|
|
293
|
+
"content-type": "application/json",
|
|
294
|
+
},
|
|
295
|
+
body: JSON.stringify({ content, stay_silent: staySilent }),
|
|
296
|
+
});
|
|
297
|
+
if (!res.ok && res.status !== 409) {
|
|
298
|
+
// 409 = plan already terminal (raced with lock/cancel); not an error.
|
|
299
|
+
const errText = await res.text().catch(() => "");
|
|
300
|
+
throw new Error(`Lyriel ${res.status}: ${errText.slice(0, 200)}`);
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
async function postStaySilent(opts, planId) {
|
|
304
|
+
try {
|
|
305
|
+
await postPlanMessage(opts, planId, "", true);
|
|
306
|
+
opts.logger.info(`stay_silent posted for plan_id=${planId} via API key auth`);
|
|
307
|
+
}
|
|
308
|
+
catch (err) {
|
|
309
|
+
opts.logger.error(`stay_silent POST failed for plan_id=${planId}: ${err.message}`);
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
//# sourceMappingURL=background.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"background.js","sourceRoot":"","sources":["../background.ts"],"names":[],"mappings":"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"}
|
package/dist/inbox.js
CHANGED
|
@@ -33,23 +33,25 @@ const POLL_INTERVAL_AFTER_BATCH_MS = 500;
|
|
|
33
33
|
// Mirror of BACKGROUND_PROMPT_PREFIX in
|
|
34
34
|
// clients/hermes-plugin/lyriel_hermes/background.py. Kept in sync by
|
|
35
35
|
// convention; if either drifts, cross-runtime plan behavior drifts.
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"
|
|
36
|
+
// Mirrors the ask-surface format the agent reliably acts on (🪶 prefix +
|
|
37
|
+
// conversational + directive sentence at the top). The earlier
|
|
38
|
+
// bracketed framing was being treated as background context and
|
|
39
|
+
// skimmed past. Now the message looks like a turn-action item the
|
|
40
|
+
// LLM is supposed to handle, just like an inbound ask.
|
|
41
|
+
export const BACKGROUND_PROMPT_PREFIX = "🪶 Lyriel plan round — you have a pending plan to contribute to.\n\n" +
|
|
42
|
+
"ACTION REQUIRED: Call the lyriel_plan_reply tool right now with the " +
|
|
43
|
+
"plan_id and your contribution. The conversation context follows " +
|
|
44
|
+
"below; extract plan_id from it. Decide what your user would say " +
|
|
45
|
+
"based on what you already know about them (calendar, preferences, " +
|
|
46
|
+
"dietary, location, budget). Keep your contribution to 1-2 sentences. " +
|
|
47
|
+
"Pass stay_silent=true ONLY if you genuinely have nothing new to add " +
|
|
48
|
+
"this round.\n\n" +
|
|
49
|
+
"After lyriel_plan_reply succeeds, briefly tell your user the plan " +
|
|
50
|
+
"is progressing. Do NOT show them the round transcript — they care " +
|
|
51
|
+
"about the locked outcome, not the back-and-forth. Do NOT ask them " +
|
|
52
|
+
"clarifying questions about this round; accept wide constraints and " +
|
|
53
|
+
"let the other agents narrow.\n\n" +
|
|
54
|
+
"Plan round context:\n";
|
|
53
55
|
/**
|
|
54
56
|
* Detect a locked or cancelled plan envelope.
|
|
55
57
|
*
|
|
@@ -138,20 +140,22 @@ export function createInboxRunner(opts) {
|
|
|
138
140
|
if (direction === "plan" && planId) {
|
|
139
141
|
const isTerminal = isTerminalPlanEnvelope(promptText);
|
|
140
142
|
if (!isTerminal) {
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
143
|
+
// Hermes parity: call the LLM directly from the plugin
|
|
144
|
+
// process (see background.ts), parse the lyriel_plan_reply
|
|
145
|
+
// tool call, POST to Lyriel via API-key auth. Fully
|
|
146
|
+
// autonomous — does NOT depend on the user's chat
|
|
147
|
+
// session, does NOT need OpenClaw to bind MCP tools to a
|
|
148
|
+
// scheduled turn (which empirically doesn't work).
|
|
149
|
+
//
|
|
150
|
+
// The runner handles its own failure modes (no
|
|
151
|
+
// OPENROUTER_API_KEY, LLM error, model declines to call
|
|
152
|
+
// tool) by falling back to stay_silent so the plan
|
|
153
|
+
// advances rather than stalling.
|
|
146
154
|
try {
|
|
147
|
-
await opts.
|
|
148
|
-
sessionKey: bgSession,
|
|
149
|
-
text: BACKGROUND_PROMPT_PREFIX + promptText,
|
|
150
|
-
});
|
|
151
|
-
opts.logger.info(`injected plan round into session ${bgSession} for plan_id=${planId} — agent will process on next user turn`);
|
|
155
|
+
await opts.background.run({ planId, envelope: promptText });
|
|
152
156
|
}
|
|
153
157
|
catch (err) {
|
|
154
|
-
opts.logger.error(`plan
|
|
158
|
+
opts.logger.error(`plan background turn failed for plan_id=${planId}: ${err.message}`);
|
|
155
159
|
}
|
|
156
160
|
continue;
|
|
157
161
|
}
|
package/dist/inbox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbox.js","sourceRoot":"","sources":["../inbox.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,gDAAgD;AAChD,EAAE;AACF,uEAAuE;AACvE,kEAAkE;AAClE,wBAAwB;AACxB,EAAE;AACF,oEAAoE;AACpE,sEAAsE;AACtE,qEAAqE;AACrE,mEAAmE;AACnE,oEAAoE;AACpE,oDAAoD;AACpD,EAAE;AACF,qEAAqE;AACrE,qBAAqB;AACrB,EAAE;AACF,oDAAoD;AACpD,EAAE;AACF,oEAAoE;AACpE,4EAA4E;AAC5E,2EAA2E;AAC3E,6CAA6C;AAE7C,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"inbox.js","sourceRoot":"","sources":["../inbox.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
import { definePluginEntry } from "openclaw/plugin-sdk/plugin-entry";
|
|
31
31
|
import { toolPluginMetadataSymbol } from "openclaw/plugin-sdk/tool-plugin";
|
|
32
32
|
import { runAutoUpdate } from "./auto-update.js";
|
|
33
|
+
import { createBackgroundRunner } from "./background.js";
|
|
33
34
|
import { createInboxRunner } from "./inbox.js";
|
|
34
35
|
import { resolveTelegramSurface } from "./telegram.js";
|
|
35
36
|
import { buildToolDescriptors } from "./tools.js";
|
|
@@ -100,8 +101,22 @@ const pluginEntry = definePluginEntry({
|
|
|
100
101
|
}
|
|
101
102
|
// ─── Inbox poll loop ────────────────────────────────────────────────
|
|
102
103
|
const childLogger = api.logger;
|
|
104
|
+
// Autonomous LLM-calling for plan rounds. Mirrors the Hermes
|
|
105
|
+
// background-turn pattern: plugin makes the LLM call directly
|
|
106
|
+
// via OpenRouter, parses the lyriel_plan_reply tool call,
|
|
107
|
+
// POSTs to Lyriel via API-key auth. See background.ts.
|
|
108
|
+
const background = createBackgroundRunner({
|
|
109
|
+
lyrielBaseUrl: baseUrl,
|
|
110
|
+
lyrielApiKey: apiKey,
|
|
111
|
+
logger: {
|
|
112
|
+
info: (msg) => childLogger.info(`[bg] ${msg}`),
|
|
113
|
+
warn: (msg) => childLogger.warn(`[bg] ${msg}`),
|
|
114
|
+
error: (msg) => childLogger.error(`[bg] ${msg}`),
|
|
115
|
+
},
|
|
116
|
+
});
|
|
103
117
|
const inbox = createInboxRunner({
|
|
104
118
|
client,
|
|
119
|
+
background,
|
|
105
120
|
resolveSurfaceSession,
|
|
106
121
|
resolveTelegramSurface() {
|
|
107
122
|
return resolveTelegramSurface(api.config, config.surfaceTelegramChatId);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,EAAE;AACF,6EAA6E;AAC7E,6EAA6E;AAC7E,6EAA6E;AAC7E,uEAAuE;AACvE,EAAE;AACF,sCAAsC;AACtC,EAAE;AACF,wEAAwE;AACxE,yEAAyE;AACzE,mDAAmD;AACnD,EAAE;AACF,uEAAuE;AACvE,0EAA0E;AAC1E,yEAAyE;AACzE,oEAAoE;AACpE,0DAA0D;AAC1D,sDAAsD;AACtD,EAAE;AACF,oEAAoE;AACpE,yEAAyE;AACzE,gDAAgD;AAChD,kEAAkE;AAClE,EAAE;AACF,sEAAsE;AACtE,yEAAyE;AACzE,wEAAwE;AACxE,6EAA6E;AAE7E,OAAO,EAAE,iBAAiB,EAA0B,MAAM,kCAAkC,CAAC;AAC7F,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAG3E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAe,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AASlD,SAAS,WAAW,CAAC,GAAY;IAC/B,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,CAAC,GAAG,GAA8B,CAAC;IACzC,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QAC3D,OAAO,EAAE,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QAC9D,iBAAiB,EACf,OAAO,CAAC,CAAC,iBAAiB,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS;QAC3E,qBAAqB,EACnB,OAAO,CAAC,CAAC,qBAAqB,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS;KACpF,CAAC;AACJ,CAAC;AAED,MAAM,WAAW,GAAG,iBAAiB,CAAC;IACpC,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,QAAQ;IACd,WAAW,EACT,2LAA2L;IAC7L,QAAQ,CAAC,GAAsB;QAC7B,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,CACd,MAAM,CAAC,OAAO;YACd,OAAO,CAAC,GAAG,CAAC,eAAe;YAC3B,mBAAmB,CACpB,CAAC,IAAI,EAAE,CAAC;QACT,sDAAsD;QACtD,EAAE;QACF,mEAAmE;QACnE,2DAA2D;QAC3D,iEAAiE;QACjE,qDAAqD;QACrD,4CAA4C;QAC5C,kDAAkD;QAClD,EAAE;QACF,wDAAwD;QACxD,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAE1E,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,GAAG,CAAC,MAAM,CAAC,IAAI,CACb,sEAAsE;gBACpE,qEAAqE;gBACrE,gEAAgE;gBAChE,+BAA+B,CAClC,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAuB,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;QAEvD,uEAAuE;QACvE,KAAK,MAAM,IAAI,IAAI,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;YAChD,GAAG,CAAC,YAAY,CAAC;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAC;QACL,CAAC;QAED,uEAAuE;QACvE,mEAAmE;QACnE,kDAAkD;QAClD,IAAI,oBAAoB,GAAkB,IAAI,CAAC;QAE/C,GAAG,CAAC,EAAE,CAAC,kBAAkB,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;YAC/C,MAAM,EAAE,GAAI,GAA+B,CAAC,UAAU,CAAC;YACvD,IAAI,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;gBACjC,oBAAoB,GAAG,EAAE,CAAC;YAC5B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,SAAS,qBAAqB;YAC5B,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;gBAC7B,OAAO,MAAM,CAAC,iBAAiB,CAAC;YAClC,CAAC;YACD,OAAO,oBAAoB,CAAC;QAC9B,CAAC;QAED,uEAAuE;QACvE,MAAM,WAAW,GAAW,GAAG,CAAC,MAAM,CAAC;QAEvC,MAAM,KAAK,GAAG,iBAAiB,CAAC;YAC9B,MAAM;YACN,qBAAqB;YACrB,sBAAsB;gBACpB,OAAO,sBAAsB,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,qBAAqB,CAAC,CAAC;YAC1E,CAAC;YACD,MAAM,EAAE,WAAW;YACnB,KAAK,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE;gBAC/B,MAAM,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAC;oBAClD,UAAU;oBACV,IAAI;oBACJ,SAAS,EAAE,gBAAgB;oBAC3B,KAAK,EAAE,CAAC,GAAG,MAAM;iBAClB,CAAC,CAAC;YACL,CAAC;YACD,iEAAiE;YACjE,4DAA4D;YAC5D,0DAA0D;YAC1D,gEAAgE;YAChE,8DAA8D;YAC9D,yDAAyD;YACzD,KAAK,CAAC,sBAAsB,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE;gBAClD,qEAAqE;gBACrE,mEAAmE;gBACnE,mEAAmE;gBACnE,mEAAmE;gBACnE,mEAAmE;gBACnE,+CAA+C;gBAC/C,MAAM,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC;oBAC7C,UAAU;oBACV,OAAO;oBACP,OAAO,EAAE,CAAC;oBACV,IAAI,EAAE,mBAAmB;oBACzB,GAAG,EAAE,mBAAmB;iBACzB,CAAC,CAAC;YACL,CAAC;SACF,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE;YACjC,sEAAsE;YACtE,KAAK,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC3C,GAAG,CAAC,MAAM,CAAC,IAAI,CACb,4CAA6C,GAAa,CAAC,OAAO,EAAE,CACrE,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,GAAG,CAAC,MAAM,CAAC,IAAI,CACb,2FAA2F,CAC5F,CAAC;gBACF,OAAO;YACT,CAAC;YACD,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,GAAG,CAAC,MAAM,CAAC,IAAI,CACb,6HAA6H,CAC9H,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;YAChC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,oBAAoB,GAAG,IAAI,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC;AAEH,kEAAkE;AAClE,mEAAmE;AACnE,sEAAsE;AACtE,qEAAqE;AACrE,oEAAoE;AACpE,+DAA+D;AAC/D,qDAAqD;AACrD,EAAE;AACF,mEAAmE;AACnE,oEAAoE;AACpE,+DAA+D;AAC/D,mEAAmE;AACnE,oEAAoE;AACpE,kDAAkD;AAClD,EAAE;AACF,sEAAsE;AACtE,sEAAsE;AACtE,qEAAqE;AACrE,+DAA+D;AAC/D,iEAAiE;AACjE,yDAAyD;AACzD,EAAE;AACF,mEAAmE;AACnE,qEAAqE;AACrE,sEAAsE;AACtE,uEAAuE;AACvE,CAAC;IACC,gEAAgE;IAChE,kDAAkD;IAClD,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5E,MAAM,QAAQ,GAAG;QACf,EAAE,EAAE,WAAW,CAAC,EAAE;QAClB,IAAI,EAAE,WAAW,CAAC,IAAI;QACtB,WAAW,EAAE,WAAW,CAAC,WAAW;QACpC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;QAC/B,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE,KAAK;YAC3B,UAAU,EAAE;gBACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC1B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,mBAAmB,EAAE;gBACzD,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACrC,qBAAqB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aAC1C;SACF;QACD,KAAK,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACnC,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI;YACxB,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,UAAU,EAAE,CAAC,CAAC,UAAU;SACzB,CAAC,CAAC;KACJ,CAAC;IACF,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,wBAAwB,EAAE;QAC3D,KAAK,EAAE,QAAQ;QACf,UAAU,EAAE,KAAK;KAClB,CAAC,CAAC;AACL,CAAC;AAED,eAAe,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|