@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.
@@ -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
- export const BACKGROUND_PROMPT_PREFIX = "[Lyriel plan-round dispatch process this BEFORE responding " +
37
- "to your user's message.\n\n" +
38
- "CRITICAL: You MUST call the lyriel_plan_reply tool to participate. " +
39
- "Text-only responses are not contributions the substrate ignores " +
40
- "them, the round stays pending, and the plan stalls. The tool call " +
41
- "IS the response.\n\n" +
42
- "Do NOT ask your user clarifying questions about this round. Use " +
43
- "what you already know about them (calendar, preferences, dietary, " +
44
- "location, budget). If a constraint is missing, accept wide " +
45
- "constraints and let other participants narrow. Don't surface the " +
46
- "round transcript to the user that's noise; they care about the " +
47
- "locked outcome, not the back-and-forth.\n\n" +
48
- "After calling lyriel_plan_reply, respond to your user's actual " +
49
- "message normally (or briefly acknowledge if they sent 'ok' / 'go " +
50
- "ahead' as a no-op). Pass stay_silent=true to the tool only if you " +
51
- "genuinely have nothing new to add for this round. Keep `content` " +
52
- "concise every token costs your user money.]\n\n";
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
- const bgSession = opts.resolveSurfaceSession();
142
- if (!bgSession) {
143
- opts.logger.warn(`no session available for plan injection plan_id=${planId} round will sit pending until user engages the agent`);
144
- continue;
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.inject({
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 injection failed for plan_id=${planId}: ${err.message}`);
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":"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"}
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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lyriel/openclaw-plugin",
3
- "version": "0.5.0",
3
+ "version": "0.6.2",
4
4
  "description": "Lyriel plugin for OpenClaw.",
5
5
  "type": "module",
6
6
  "license": "MIT",