@tloncorp/openclaw 0.2.0 → 0.4.0

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.
Files changed (76) hide show
  1. package/README.md +232 -23
  2. package/dist/index.js +204 -69
  3. package/dist/index.js.map +1 -1
  4. package/dist/setup-api.js +3 -0
  5. package/dist/setup-api.js.map +1 -0
  6. package/dist/setup-entry.js +4 -0
  7. package/dist/setup-entry.js.map +1 -0
  8. package/dist/src/actions.js +30 -8
  9. package/dist/src/actions.js.map +1 -1
  10. package/dist/src/channel.js +155 -420
  11. package/dist/src/channel.js.map +1 -1
  12. package/dist/src/channel.runtime.js +142 -0
  13. package/dist/src/channel.runtime.js.map +1 -0
  14. package/dist/src/config-schema.js +37 -1
  15. package/dist/src/config-schema.js.map +1 -1
  16. package/dist/src/effective-owner.js +22 -0
  17. package/dist/src/effective-owner.js.map +1 -0
  18. package/dist/src/gateway-status.js +72 -0
  19. package/dist/src/gateway-status.js.map +1 -0
  20. package/dist/src/monitor/approval.js.map +1 -1
  21. package/dist/src/monitor/computing-presence.js +221 -0
  22. package/dist/src/monitor/computing-presence.js.map +1 -0
  23. package/dist/src/monitor/discovery.js +2 -2
  24. package/dist/src/monitor/index.js +665 -171
  25. package/dist/src/monitor/index.js.map +1 -1
  26. package/dist/src/monitor/media.js +165 -6
  27. package/dist/src/monitor/media.js.map +1 -1
  28. package/dist/src/monitor/nudge-runner.js +232 -0
  29. package/dist/src/monitor/nudge-runner.js.map +1 -0
  30. package/dist/src/monitor/nudge-state.js +58 -0
  31. package/dist/src/monitor/nudge-state.js.map +1 -0
  32. package/dist/src/monitor/owner-reply-persistence.js +92 -0
  33. package/dist/src/monitor/owner-reply-persistence.js.map +1 -0
  34. package/dist/src/monitor/pending-nudge-persistence.js +15 -0
  35. package/dist/src/monitor/pending-nudge-persistence.js.map +1 -0
  36. package/dist/src/monitor/settings-sync.js +28 -0
  37. package/dist/src/monitor/settings-sync.js.map +1 -0
  38. package/dist/src/monitor/utils.js +0 -4
  39. package/dist/src/monitor/utils.js.map +1 -1
  40. package/dist/src/nudge-decision.js +309 -0
  41. package/dist/src/nudge-decision.js.map +1 -0
  42. package/dist/src/nudge-messages.js +25 -0
  43. package/dist/src/nudge-messages.js.map +1 -0
  44. package/dist/src/nudge-scheduler.js +91 -0
  45. package/dist/src/nudge-scheduler.js.map +1 -0
  46. package/dist/src/pending-nudge.js +57 -0
  47. package/dist/src/pending-nudge.js.map +1 -0
  48. package/dist/src/settings.js +77 -5
  49. package/dist/src/settings.js.map +1 -1
  50. package/dist/src/setup-core.js +164 -0
  51. package/dist/src/setup-core.js.map +1 -0
  52. package/dist/src/setup-surface.js +85 -0
  53. package/dist/src/setup-surface.js.map +1 -0
  54. package/dist/src/telemetry.js +252 -0
  55. package/dist/src/telemetry.js.map +1 -0
  56. package/dist/src/tlon-binary.js +46 -0
  57. package/dist/src/tlon-binary.js.map +1 -0
  58. package/dist/src/tlon-tool-guard.js +44 -0
  59. package/dist/src/tlon-tool-guard.js.map +1 -0
  60. package/dist/src/tool-trace.js +100 -0
  61. package/dist/src/tool-trace.js.map +1 -0
  62. package/dist/src/types.js +31 -1
  63. package/dist/src/types.js.map +1 -1
  64. package/dist/src/urbit/api-client.js +4 -3
  65. package/dist/src/urbit/api-client.js.map +1 -1
  66. package/dist/src/urbit/base-url.js +2 -2
  67. package/dist/src/urbit/base-url.js.map +1 -1
  68. package/dist/src/urbit/fetch.js +1 -1
  69. package/dist/src/urbit/fetch.js.map +1 -1
  70. package/dist/src/urbit/upload.js +1 -1
  71. package/dist/src/urbit/upload.js.map +1 -1
  72. package/dist/src/version.generated.js +1 -1
  73. package/dist/src/version.generated.js.map +1 -1
  74. package/package.json +31 -24
  75. package/dist/src/onboarding.js +0 -178
  76. package/dist/src/onboarding.js.map +0 -1
package/dist/index.js CHANGED
@@ -1,53 +1,83 @@
1
+ import { gatewayStop } from "@tloncorp/api";
1
2
  import { spawn } from "node:child_process";
3
+ import { readFileSync } from "node:fs";
2
4
  import { createRequire } from "node:module";
3
- import { existsSync } from "node:fs";
4
- import { dirname, join } from "node:path";
5
+ import { dirname } from "node:path";
5
6
  import { fileURLToPath } from "node:url";
6
- import { PLUGIN_COMMIT } from "./src/version.generated.js";
7
- // Get package version at runtime
8
- const require = createRequire(import.meta.url);
9
- const { version: PLUGIN_VERSION } = require("./package.json");
10
- import { emptyPluginConfigSchema } from "openclaw/plugin-sdk";
7
+ import { defineChannelPluginEntry } from "openclaw/plugin-sdk/core";
11
8
  import { tlonPlugin } from "./src/channel.js";
9
+ import { createGatewayStatusManager, setGatewayStatusManager } from "./src/gateway-status.js";
12
10
  import { resolveBridgeForCommand } from "./src/monitor/command-auth.js";
13
11
  import { setTlonRuntime } from "./src/runtime.js";
14
- import { resolveTlonAccount } from "./src/types.js";
15
12
  import { getSessionRole } from "./src/session-roles.js";
13
+ import { recordToolCall } from "./src/telemetry.js";
14
+ import { resolveTlonBinary } from "./src/tlon-binary.js";
15
+ import { checkBlockedSendOperation } from "./src/tlon-tool-guard.js";
16
+ import { formatToolTraceEvent, liveToolTraceContentsEnabled, shouldLogAfterToolTrace, } from "./src/tool-trace.js";
17
+ import { resolveTlonAccount, listTlonAccountIds } from "./src/types.js";
18
+ export { tlonPlugin } from "./src/channel.js";
19
+ export { setTlonRuntime } from "./src/runtime.js";
16
20
  const __dirname = dirname(fileURLToPath(import.meta.url));
21
+ const require = createRequire(import.meta.url);
22
+ function readPluginVersion() {
23
+ try {
24
+ const { version } = require("./package.json");
25
+ return version;
26
+ }
27
+ catch {
28
+ try {
29
+ const raw = readFileSync(new URL("./package.json", import.meta.url), "utf-8");
30
+ return JSON.parse(raw).version;
31
+ }
32
+ catch {
33
+ return "unknown";
34
+ }
35
+ }
36
+ }
17
37
  // Whitelist of allowed tlon subcommands
18
38
  const ALLOWED_TLON_COMMANDS = new Set([
19
39
  "activity",
20
40
  "channels",
21
41
  "contacts",
42
+ "dms",
43
+ "expose",
22
44
  "groups",
45
+ "hooks",
23
46
  "messages",
24
- "dms",
25
- "posts",
26
47
  "notebook",
48
+ "posts",
27
49
  "settings",
50
+ "upload",
28
51
  "help",
29
52
  "version",
30
53
  ]);
54
+ /** Credential flags that the tlon skill binary accepts before the subcommand. */
55
+ const CREDENTIAL_FLAGS_WITH_VALUE = new Set(["--config", "--url", "--ship", "--code", "--cookie"]);
31
56
  /**
32
- * Find the tlon binary from the skill package
57
+ * Find the first positional argument (subcommand) by skipping credential flags
58
+ * and their values. Returns the index into `args`, or -1 if none found.
33
59
  */
34
- function findTlonBinary() {
35
- // Check in node_modules/.bin
36
- const skillBin = join(__dirname, "node_modules", ".bin", "tlon");
37
- console.log(`[tlon] Checking for binary at: ${skillBin}, exists: ${existsSync(skillBin)}`);
38
- if (existsSync(skillBin))
39
- return skillBin;
40
- // Check for platform-specific binary directly
41
- const platform = process.platform;
42
- const arch = process.arch;
43
- const platformPkg = `@tloncorp/tlon-skill-${platform}-${arch}`;
44
- const platformBin = join(__dirname, "node_modules", platformPkg, "tlon");
45
- console.log(`[tlon] Checking for platform binary at: ${platformBin}, exists: ${existsSync(platformBin)}`);
46
- if (existsSync(platformBin))
47
- return platformBin;
48
- // Fallback to PATH
49
- console.log(`[tlon] Falling back to PATH lookup for 'tlon'`);
50
- return "tlon";
60
+ function findSubcommandIndex(args) {
61
+ let i = 0;
62
+ while (i < args.length) {
63
+ const arg = args[i];
64
+ // --flag=value form: skip one token
65
+ if (arg.startsWith("--") && arg.includes("=")) {
66
+ const flag = arg.slice(0, arg.indexOf("="));
67
+ if (CREDENTIAL_FLAGS_WITH_VALUE.has(flag)) {
68
+ i += 1;
69
+ continue;
70
+ }
71
+ }
72
+ // --flag value form: skip two tokens
73
+ if (CREDENTIAL_FLAGS_WITH_VALUE.has(arg)) {
74
+ i += 2;
75
+ continue;
76
+ }
77
+ // Not a credential flag — this is the subcommand
78
+ return i;
79
+ }
80
+ return -1;
51
81
  }
52
82
  /**
53
83
  * Shell-like argument splitter that respects quotes
@@ -85,8 +115,9 @@ function shellSplit(str) {
85
115
  }
86
116
  cur += ch;
87
117
  }
88
- if (cur)
118
+ if (cur) {
89
119
  args.push(cur);
120
+ }
90
121
  return args;
91
122
  }
92
123
  /**
@@ -94,8 +125,6 @@ function shellSplit(str) {
94
125
  */
95
126
  function runTlonCommand(binary, args, credentials) {
96
127
  return new Promise((resolve, reject) => {
97
- // Build environment with Tlon credentials
98
- // Pass all credentials - skill checks cache first, falls back to these if miss
99
128
  const env = { ...process.env };
100
129
  if (credentials) {
101
130
  env.URBIT_SHIP = credentials.ship;
@@ -124,14 +153,66 @@ function runTlonCommand(binary, args, credentials) {
124
153
  });
125
154
  });
126
155
  }
127
- const plugin = {
156
+ export default defineChannelPluginEntry({
128
157
  id: "tlon",
129
158
  name: "Tlon",
130
159
  description: "Tlon/Urbit channel plugin",
131
- configSchema: emptyPluginConfigSchema(),
132
- register(api) {
133
- setTlonRuntime(api.runtime);
134
- api.registerChannel({ plugin: tlonPlugin });
160
+ plugin: tlonPlugin,
161
+ setRuntime: setTlonRuntime,
162
+ registerFull(api) {
163
+ // Import version info lazily
164
+ const PLUGIN_VERSION = readPluginVersion();
165
+ let PLUGIN_COMMIT = "unknown";
166
+ try {
167
+ PLUGIN_COMMIT = require("./src/version.generated.js")
168
+ .PLUGIN_COMMIT;
169
+ }
170
+ catch {
171
+ // version.generated.js may not exist in all environments
172
+ }
173
+ // ── Gateway-status liveness integration ───────────────────
174
+ //
175
+ // v1 requires exactly one Tlon account. With multiple accounts, multiple
176
+ // monitors call configureTlonApiWithPoke() and the last one wins the global
177
+ // @tloncorp/api singleton — making it unsafe to route heartbeats or stop
178
+ // pokes to a specific ship. Disable entirely rather than route to the wrong ship.
179
+ const gsAccountIds = listTlonAccountIds(api.config);
180
+ setGatewayStatusManager(null);
181
+ if (gsAccountIds.length > 1) {
182
+ api.logger.warn(`[gateway-status] disabled: ${gsAccountIds.length} Tlon accounts configured, ` +
183
+ `but v1 only supports one (global @tloncorp/api client cannot target multiple ships)`);
184
+ }
185
+ else if (gsAccountIds.length === 1) {
186
+ const gsManager = createGatewayStatusManager({
187
+ logger: {
188
+ log: (m) => api.logger.info(m),
189
+ error: (m) => api.logger.warn(m),
190
+ },
191
+ });
192
+ setGatewayStatusManager(gsManager);
193
+ api.on("gateway_start", () => {
194
+ gsManager.signalGatewayStarted();
195
+ api.logger.info("[gateway-status] gateway_start received");
196
+ });
197
+ api.on("gateway_stop", async (event) => {
198
+ if (!gsManager.activated || gsManager.stopped) {
199
+ return;
200
+ }
201
+ gsManager.stopHeartbeat();
202
+ gsManager.markStopped();
203
+ try {
204
+ await gatewayStop({
205
+ bootId: gsManager.bootId,
206
+ reason: event.reason ?? "shutdown",
207
+ });
208
+ api.logger.info(`[gateway-status] stopped (reason=${event.reason ?? "shutdown"})`);
209
+ }
210
+ catch (err) {
211
+ api.logger.warn(`[gateway-status] stop poke failed: ${String(err)}`);
212
+ }
213
+ });
214
+ }
215
+ // else: zero accounts configured — nothing to do
135
216
  // Register /tlon-version command
136
217
  api.registerCommand({
137
218
  name: "tlon-version",
@@ -141,7 +222,11 @@ const plugin = {
141
222
  },
142
223
  });
143
224
  // Register the tlon tool
144
- const tlonBinary = findTlonBinary();
225
+ const tlonBinary = resolveTlonBinary({
226
+ moduleDir: __dirname,
227
+ resolveModule: require.resolve,
228
+ log: (msg) => api.logger.debug?.(msg),
229
+ });
145
230
  api.logger.info(`[tlon] Registering tlon tool, binary: ${tlonBinary}`);
146
231
  // Capture credentials from config at registration time
147
232
  const account = resolveTlonAccount(api.config);
@@ -157,15 +242,17 @@ const plugin = {
157
242
  api.registerTool({
158
243
  name: "tlon",
159
244
  label: "Tlon CLI",
160
- description: "Tlon/Urbit API operations: activity, channels, contacts, groups, messages, dms, posts, notebook, settings. " +
245
+ description: "Tlon/Urbit API for reading data and administration: activity, channels, contacts, groups, messages, posts, settings, upload, expose, hooks. " +
246
+ "DO NOT use this tool to send messages — use the `message` tool instead. " +
161
247
  "Examples: 'activity mentions --limit 10', 'channels groups', 'contacts self', 'groups list'",
162
248
  parameters: {
163
249
  type: "object",
164
250
  properties: {
165
251
  command: {
166
252
  type: "string",
167
- description: "The tlon command and arguments. " +
168
- "Examples: 'activity mentions --limit 10', 'contacts get ~sampel-palnet', 'groups list'",
253
+ description: "The tlon command and arguments (read/admin operations). " +
254
+ "To send messages, use the `message` tool, not this tool. " +
255
+ "Examples: 'activity mentions --limit 10', 'contacts get ~sampel-palnet', 'groups list', 'messages dm ~ship --limit 20'",
169
256
  },
170
257
  },
171
258
  required: ["command"],
@@ -173,19 +260,27 @@ const plugin = {
173
260
  async execute(_id, params) {
174
261
  try {
175
262
  const args = shellSplit(params.command);
176
- // Validate first argument is a whitelisted tlon subcommand
177
- const subcommand = args[0];
178
- if (!ALLOWED_TLON_COMMANDS.has(subcommand)) {
263
+ const subIdx = findSubcommandIndex(args);
264
+ const subcommand = subIdx >= 0 ? args[subIdx] : undefined;
265
+ if (!subcommand || !ALLOWED_TLON_COMMANDS.has(subcommand)) {
179
266
  return {
180
267
  content: [
181
268
  {
182
269
  type: "text",
183
- text: `Error: Unknown tlon subcommand '${subcommand}'. Allowed: ${[...ALLOWED_TLON_COMMANDS].join(", ")}`,
270
+ text: `Error: Unknown tlon subcommand '${subcommand ?? "(none)"}'. Allowed: ${[...ALLOWED_TLON_COMMANDS].join(", ")}`,
184
271
  },
185
272
  ],
186
273
  details: { error: true },
187
274
  };
188
275
  }
276
+ // Check for blocked send operations (uses args from subcommand onward)
277
+ const blocked = checkBlockedSendOperation(args.slice(subIdx));
278
+ if (blocked) {
279
+ return {
280
+ content: [{ type: "text", text: blocked }],
281
+ details: { blocked: true, reason: "send_operation" },
282
+ };
283
+ }
189
284
  const output = await runTlonCommand(tlonBinary, args, credentials);
190
285
  return {
191
286
  content: [{ type: "text", text: output }],
@@ -202,43 +297,75 @@ const plugin = {
202
297
  },
203
298
  });
204
299
  // Tool access control: block sensitive tools for non-owners
205
- const ownerOnlyTools = new Set([
206
- "tlon",
207
- "tlon_run",
208
- "tlon-run",
209
- "cron",
210
- "read",
211
- ]);
300
+ const ownerOnlyTools = new Set(["tlon", "cron", "read"]);
301
+ const logToolTraceContents = liveToolTraceContentsEnabled();
212
302
  api.on("before_tool_call", (event, ctx) => {
213
- if (!ownerOnlyTools.has(event.toolName)) {
303
+ const role = getSessionRole(ctx.sessionKey ?? "");
304
+ const isOwnerOnlyTool = ownerOnlyTools.has(event.toolName);
305
+ const isBlocked = isOwnerOnlyTool && role === "user";
306
+ const blockReason = isBlocked ? `The ${event.toolName} tool is not available.` : undefined;
307
+ if (logToolTraceContents) {
308
+ api.logger.info(formatToolTraceEvent({
309
+ phase: "before",
310
+ sessionKey: ctx.sessionKey,
311
+ toolName: event.toolName,
312
+ payload: {
313
+ params: event.params,
314
+ role: role ?? "internal",
315
+ blocked: isBlocked,
316
+ ...(blockReason ? { blockReason } : {}),
317
+ },
318
+ }));
319
+ }
320
+ if (!isOwnerOnlyTool) {
214
321
  return;
215
322
  }
216
- const role = getSessionRole(ctx.sessionKey ?? "");
217
323
  // Allow owner sessions and internal sessions (heartbeat, cron, etc.).
218
324
  // Internal sessions have no role because they're not triggered by DMs.
219
325
  // Only block when role is explicitly "user" (non-owner DM).
220
- if (role === "user") {
326
+ if (isBlocked) {
221
327
  api.logger.warn(`[tlon] Blocked ${event.toolName} tool for non-owner. Session: ${ctx.sessionKey}, Role: ${role}`);
222
328
  return {
223
329
  block: true,
224
- blockReason: `The ${event.toolName} tool is not available.`,
330
+ blockReason,
225
331
  };
226
332
  }
227
333
  api.logger.info(`[tlon] Allowed ${event.toolName} tool for ${role ?? "internal"} session. Session: ${ctx.sessionKey}`);
228
334
  });
335
+ api.on("after_tool_call", (event, ctx) => {
336
+ if (logToolTraceContents && shouldLogAfterToolTrace(event)) {
337
+ api.logger.info(formatToolTraceEvent({
338
+ phase: "after",
339
+ sessionKey: ctx.sessionKey,
340
+ toolName: event.toolName,
341
+ payload: {
342
+ params: event.params,
343
+ result: event.result,
344
+ error: event.error ?? null,
345
+ durationMs: event.durationMs ?? null,
346
+ },
347
+ }));
348
+ }
349
+ recordToolCall({
350
+ sessionKey: ctx.sessionKey,
351
+ toolName: event.toolName,
352
+ durationMs: event.durationMs,
353
+ error: event.error,
354
+ });
355
+ });
229
356
  // ── Slash commands for approval & admin ────────────────────────────
230
- // These bypass the LLM and call the monitor's command bridge directly.
231
- // Each handler resolves the correct bridge (multi-account safe) and
232
- // enforces owner-only access (default-deny).
233
357
  api.registerCommand({
234
358
  name: "allow",
235
359
  description: "Allow a pending DM/channel/group request",
236
360
  acceptsArgs: true,
237
361
  handler: async (ctx) => {
238
362
  const result = resolveBridgeForCommand(ctx);
239
- if ("error" in result)
363
+ if ("error" in result) {
240
364
  return { text: result.error };
241
- return { text: await result.bridge.handleAction("approve", ctx.args?.trim() || undefined) };
365
+ }
366
+ return {
367
+ text: await result.bridge.handleAction("approve", ctx.args?.trim() || undefined),
368
+ };
242
369
  },
243
370
  });
244
371
  api.registerCommand({
@@ -247,9 +374,12 @@ const plugin = {
247
374
  acceptsArgs: true,
248
375
  handler: async (ctx) => {
249
376
  const result = resolveBridgeForCommand(ctx);
250
- if ("error" in result)
377
+ if ("error" in result) {
251
378
  return { text: result.error };
252
- return { text: await result.bridge.handleAction("deny", ctx.args?.trim() || undefined) };
379
+ }
380
+ return {
381
+ text: await result.bridge.handleAction("deny", ctx.args?.trim() || undefined),
382
+ };
253
383
  },
254
384
  });
255
385
  api.registerCommand({
@@ -258,9 +388,12 @@ const plugin = {
258
388
  acceptsArgs: true,
259
389
  handler: async (ctx) => {
260
390
  const result = resolveBridgeForCommand(ctx);
261
- if ("error" in result)
391
+ if ("error" in result) {
262
392
  return { text: result.error };
263
- return { text: await result.bridge.handleAction("block", ctx.args?.trim() || undefined) };
393
+ }
394
+ return {
395
+ text: await result.bridge.handleAction("block", ctx.args?.trim() || undefined),
396
+ };
264
397
  },
265
398
  });
266
399
  api.registerCommand({
@@ -268,8 +401,9 @@ const plugin = {
268
401
  description: "List pending approval requests",
269
402
  handler: async (ctx) => {
270
403
  const result = resolveBridgeForCommand(ctx);
271
- if ("error" in result)
404
+ if ("error" in result) {
272
405
  return { text: result.error };
406
+ }
273
407
  return { text: await result.bridge.getPendingList() };
274
408
  },
275
409
  });
@@ -278,8 +412,9 @@ const plugin = {
278
412
  description: "List banned ships",
279
413
  handler: async (ctx) => {
280
414
  const result = resolveBridgeForCommand(ctx);
281
- if ("error" in result)
415
+ if ("error" in result) {
282
416
  return { text: result.error };
417
+ }
283
418
  return { text: await result.bridge.getBlockedList() };
284
419
  },
285
420
  });
@@ -289,8 +424,9 @@ const plugin = {
289
424
  acceptsArgs: true,
290
425
  handler: async (ctx) => {
291
426
  const result = resolveBridgeForCommand(ctx);
292
- if ("error" in result)
427
+ if ("error" in result) {
293
428
  return { text: result.error };
429
+ }
294
430
  const ship = ctx.args?.trim();
295
431
  if (!ship) {
296
432
  return { text: "Usage: /unban ~ship-name" };
@@ -299,6 +435,5 @@ const plugin = {
299
435
  },
300
436
  });
301
437
  },
302
- };
303
- export default plugin;
438
+ });
304
439
  //# sourceMappingURL=index.js.map
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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"}
@@ -0,0 +1,3 @@
1
+ export { tlonSetupAdapter } from "./src/setup-core.js";
2
+ export { tlonSetupWizard } from "./src/setup-surface.js";
3
+ //# sourceMappingURL=setup-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-api.js","sourceRoot":"","sources":["../setup-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { defineSetupPluginEntry } from "openclaw/plugin-sdk/core";
2
+ import { tlonPlugin } from "./src/channel.js";
3
+ export default defineSetupPluginEntry(tlonPlugin);
4
+ //# sourceMappingURL=setup-entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-entry.js","sourceRoot":"","sources":["../setup-entry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,eAAe,sBAAsB,CAAC,UAAU,CAAC,CAAC"}
@@ -1,15 +1,39 @@
1
- import { createActionGate, jsonResult, readReactionParams, readStringParam, } from "openclaw/plugin-sdk";
1
+ import { readStringParam } from "openclaw/plugin-sdk/param-readers";
2
2
  import { resolveTlonAccount } from "./types.js";
3
3
  import { normalizeShip, parseTlonTarget } from "./targets.js";
4
4
  import { withAuthenticatedTlonApi } from "./urbit/api-client.js";
5
5
  import { addChannelReaction, removeChannelReaction, addDmReaction, removeDmReaction, deleteHeapPost, sendChannelPost, } from "./urbit/send.js";
6
6
  import { markdownToStory } from "./urbit/story.js";
7
+ // Inline helpers previously imported from SDK (removed in new SDK)
8
+ function createActionGate(actions) {
9
+ return (key) => {
10
+ if (!actions)
11
+ return true;
12
+ return actions[key] !== false;
13
+ };
14
+ }
15
+ function jsonResult(data) {
16
+ return {
17
+ content: [{ type: "text", text: JSON.stringify(data) }],
18
+ details: data,
19
+ };
20
+ }
21
+ function readReactionParams(params, opts) {
22
+ const raw = readStringParam(params, "emoji") ?? "";
23
+ const remove = params.remove === true || params.remove === "true";
24
+ if (remove && !raw) {
25
+ if (opts?.removeErrorMessage) {
26
+ throw new Error(opts.removeErrorMessage);
27
+ }
28
+ }
29
+ return { emoji: raw, remove, isEmpty: !raw && !remove };
30
+ }
7
31
  const SUPPORTED_ACTIONS = new Set(["react", "delete", "reply"]);
8
32
  export const tlonMessageActions = {
9
- listActions: ({ cfg }) => {
33
+ describeMessageTool: ({ cfg }) => {
10
34
  const account = resolveTlonAccount(cfg);
11
35
  if (!account.configured || !account.enabled) {
12
- return [];
36
+ return null;
13
37
  }
14
38
  const gate = createActionGate(cfg.channels?.tlon?.actions);
15
39
  const actions = [];
@@ -17,7 +41,9 @@ export const tlonMessageActions = {
17
41
  actions.push("react");
18
42
  if (gate("delete"))
19
43
  actions.push("delete");
20
- return actions;
44
+ if (gate("reply"))
45
+ actions.push("reply");
46
+ return actions.length > 0 ? { actions } : null;
21
47
  },
22
48
  supportsAction: ({ action }) => SUPPORTED_ACTIONS.has(action),
23
49
  handleAction: async ({ action, params, cfg, accountId, toolContext }) => {
@@ -66,7 +92,6 @@ async function handleReact({ params, fromShip, toolContext, }) {
66
92
  if (!parsed) {
67
93
  throw new Error(`Invalid Tlon target: ${to}`);
68
94
  }
69
- // For reply/thread reactions: explicit parentId, or infer from thread context
70
95
  const parentId = readStringParam(params, "parentId") ??
71
96
  toolContext?.currentThreadTs ??
72
97
  undefined;
@@ -78,8 +103,6 @@ async function handleReact({ params, fromShip, toolContext, }) {
78
103
  await addDmReaction({ fromShip, toShip: parsed.ship, messageId, react: emoji, parentId });
79
104
  return jsonResult({ ok: true, added: emoji });
80
105
  }
81
- // Channel reaction (chat, heap, or diary)
82
- // Extract nest prefix from the nest string (e.g., "heap" from "heap/~host/channel")
83
106
  const nestPrefix = parsed.nest.split("/")[0];
84
107
  if (remove) {
85
108
  await removeChannelReaction({
@@ -152,7 +175,6 @@ async function handleReply({ params, fromShip, toolContext, }) {
152
175
  if (parsed.kind === "dm") {
153
176
  throw new Error("Tlon reply action is supported for channel targets. For DMs, use action=send with replyTo.");
154
177
  }
155
- // Channel reply (chat, heap, or diary)
156
178
  await sendChannelPost({
157
179
  fromShip,
158
180
  nest: parsed.nest,
@@ -1 +1 @@
1
- {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/actions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,eAAe,GAGhB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAA2B,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AAE1F,MAAM,CAAC,MAAM,kBAAkB,GAAgC;IAC7D,WAAW,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;QACvB,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC5C,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,IAAI,GAAG,gBAAgB,CAC1B,GAAG,CAAC,QAAQ,EAAE,IAA0D,EAAE,OAAO,CACnF,CAAC;QACF,MAAM,OAAO,GAA+B,EAAE,CAAC;QAC/C,IAAI,IAAI,CAAC,WAAW,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,IAAI,CAAC,QAAQ,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3C,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,cAAc,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC;IAE7D,YAAY,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE;QACtE,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,EAAE,SAAS,IAAI,SAAS,CAAC,CAAC;QAChE,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC1E,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,MAAM,wBAAwB,CACnC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,IAAI,SAAS,EAAE,EAC3H,KAAK,IAAI,EAAE;YACT,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,IAAK,CAAC,CAAC;YAE9C,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBACvB,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,IAAI,SAAS,CAAC;gBACjD,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;oBACvC,MAAM,IAAI,KAAK,CACb,iDAAiD,KAAK,MAAM;wBAC1D,wEAAwE,CAC3E,CAAC;gBACJ,CAAC;gBACD,OAAO,MAAM,WAAW,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;YAC9D,CAAC;YAED,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACxB,OAAO,MAAM,YAAY,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;YACrD,CAAC;YAED,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBACvB,OAAO,MAAM,WAAW,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;YAC9D,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,gBAAgB,MAAM,qBAAqB,CAAC,CAAC;QAC/D,CAAC,CACF,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,KAAK,UAAU,WAAW,CAAC,EACzB,MAAM,EACN,QAAQ,EACR,WAAW,GAKZ;IACC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,kBAAkB,CAAC,MAAM,EAAE;QAC5D,kBAAkB,EAAE,8CAA8C;KACnE,CAAC,CAAC;IACH,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,sGAAsG,CACvG,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACvD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,EAAE,GACN,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC;QACjC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC;QAC7B,WAAW,EAAE,gBAAgB,CAAC;IAChC,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,MAAM,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,8EAA8E;IAC9E,MAAM,QAAQ,GACZ,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC;QAClC,WAA4C,EAAE,eAAe;QAC9D,SAAS,CAAC;IAEZ,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACzB,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,gBAAgB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC/E,OAAO,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,MAAM,aAAa,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC1F,OAAO,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,0CAA0C;IAC1C,oFAAoF;IACpF,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,qBAAqB,CAAC;YAC1B,QAAQ;YACR,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,MAAM,EAAE,SAAS;YACjB,UAAU;YACV,QAAQ;SACT,CAAC,CAAC;QACH,OAAO,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,kBAAkB,CAAC;QACvB,QAAQ;QACR,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,KAAK;QACZ,UAAU;QACV,QAAQ;KACT,CAAC,CAAC;IACH,OAAO,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AAChD,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,EAC1B,MAAM,EACN,WAAW,GAIZ;IACC,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACvD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,EAAE,GACN,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC;QACjC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC;QAC7B,WAAW,EAAE,gBAAgB,CAAC;IAChC,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,MAAM,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,+FAA+F,CAAC,CAAC;IACnH,CAAC;IAED,MAAM,cAAc,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,OAAO,EAAE,SAAS;KACnB,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;AACtD,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,EACzB,MAAM,EACN,QAAQ,EACR,WAAW,GAKZ;IACC,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACvD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,2EAA2E,CAC5E,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACnD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,EAAE,GACN,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC;QACjC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC;QAC7B,WAAW,EAAE,gBAAgB,CAAC;IAChC,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,MAAM,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAEvC,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,4FAA4F,CAC7F,CAAC;IACJ,CAAC;IAED,uCAAuC;IACvC,MAAM,eAAe,CAAC;QACpB,QAAQ;QACR,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,KAAK;QACL,SAAS,EAAE,SAAS;KACrB,CAAC,CAAC;IACH,OAAO,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;AAClE,CAAC"}
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/actions.ts"],"names":[],"mappings":"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"}