@inline-openclaw/inline 0.0.5 → 0.0.6

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.
@@ -37,6 +37,18 @@ export declare const InlineAccountSchemaBase: z.ZodObject<{
37
37
  dmHistoryLimit: z.ZodOptional<z.ZodNumber>;
38
38
  parseMarkdown: z.ZodOptional<z.ZodBoolean>;
39
39
  mediaMaxMb: z.ZodOptional<z.ZodNumber>;
40
+ actions: z.ZodOptional<z.ZodObject<{
41
+ reply: z.ZodOptional<z.ZodBoolean>;
42
+ reactions: z.ZodOptional<z.ZodBoolean>;
43
+ read: z.ZodOptional<z.ZodBoolean>;
44
+ search: z.ZodOptional<z.ZodBoolean>;
45
+ edit: z.ZodOptional<z.ZodBoolean>;
46
+ channels: z.ZodOptional<z.ZodBoolean>;
47
+ participants: z.ZodOptional<z.ZodBoolean>;
48
+ delete: z.ZodOptional<z.ZodBoolean>;
49
+ pins: z.ZodOptional<z.ZodBoolean>;
50
+ permissions: z.ZodOptional<z.ZodBoolean>;
51
+ }, z.core.$strict>>;
40
52
  textChunkLimit: z.ZodOptional<z.ZodNumber>;
41
53
  chunkMode: z.ZodOptional<z.ZodEnum<{
42
54
  length: "length";
@@ -87,6 +99,18 @@ export declare const InlineRuntimeAccountSchema: z.ZodObject<{
87
99
  dmHistoryLimit: z.ZodOptional<z.ZodNumber>;
88
100
  parseMarkdown: z.ZodOptional<z.ZodBoolean>;
89
101
  mediaMaxMb: z.ZodOptional<z.ZodNumber>;
102
+ actions: z.ZodOptional<z.ZodObject<{
103
+ reply: z.ZodOptional<z.ZodBoolean>;
104
+ reactions: z.ZodOptional<z.ZodBoolean>;
105
+ read: z.ZodOptional<z.ZodBoolean>;
106
+ search: z.ZodOptional<z.ZodBoolean>;
107
+ edit: z.ZodOptional<z.ZodBoolean>;
108
+ channels: z.ZodOptional<z.ZodBoolean>;
109
+ participants: z.ZodOptional<z.ZodBoolean>;
110
+ delete: z.ZodOptional<z.ZodBoolean>;
111
+ pins: z.ZodOptional<z.ZodBoolean>;
112
+ permissions: z.ZodOptional<z.ZodBoolean>;
113
+ }, z.core.$strict>>;
90
114
  textChunkLimit: z.ZodOptional<z.ZodNumber>;
91
115
  chunkMode: z.ZodOptional<z.ZodEnum<{
92
116
  length: "length";
@@ -137,6 +161,18 @@ export declare const InlineAccountSchema: z.ZodObject<{
137
161
  dmHistoryLimit: z.ZodOptional<z.ZodNumber>;
138
162
  parseMarkdown: z.ZodOptional<z.ZodBoolean>;
139
163
  mediaMaxMb: z.ZodOptional<z.ZodNumber>;
164
+ actions: z.ZodOptional<z.ZodObject<{
165
+ reply: z.ZodOptional<z.ZodBoolean>;
166
+ reactions: z.ZodOptional<z.ZodBoolean>;
167
+ read: z.ZodOptional<z.ZodBoolean>;
168
+ search: z.ZodOptional<z.ZodBoolean>;
169
+ edit: z.ZodOptional<z.ZodBoolean>;
170
+ channels: z.ZodOptional<z.ZodBoolean>;
171
+ participants: z.ZodOptional<z.ZodBoolean>;
172
+ delete: z.ZodOptional<z.ZodBoolean>;
173
+ pins: z.ZodOptional<z.ZodBoolean>;
174
+ permissions: z.ZodOptional<z.ZodBoolean>;
175
+ }, z.core.$strict>>;
140
176
  textChunkLimit: z.ZodOptional<z.ZodNumber>;
141
177
  chunkMode: z.ZodOptional<z.ZodEnum<{
142
178
  length: "length";
@@ -187,6 +223,18 @@ export declare const InlineRuntimeConfigSchema: z.ZodObject<{
187
223
  dmHistoryLimit: z.ZodOptional<z.ZodNumber>;
188
224
  parseMarkdown: z.ZodOptional<z.ZodBoolean>;
189
225
  mediaMaxMb: z.ZodOptional<z.ZodNumber>;
226
+ actions: z.ZodOptional<z.ZodObject<{
227
+ reply: z.ZodOptional<z.ZodBoolean>;
228
+ reactions: z.ZodOptional<z.ZodBoolean>;
229
+ read: z.ZodOptional<z.ZodBoolean>;
230
+ search: z.ZodOptional<z.ZodBoolean>;
231
+ edit: z.ZodOptional<z.ZodBoolean>;
232
+ channels: z.ZodOptional<z.ZodBoolean>;
233
+ participants: z.ZodOptional<z.ZodBoolean>;
234
+ delete: z.ZodOptional<z.ZodBoolean>;
235
+ pins: z.ZodOptional<z.ZodBoolean>;
236
+ permissions: z.ZodOptional<z.ZodBoolean>;
237
+ }, z.core.$strict>>;
190
238
  textChunkLimit: z.ZodOptional<z.ZodNumber>;
191
239
  chunkMode: z.ZodOptional<z.ZodEnum<{
192
240
  length: "length";
@@ -236,6 +284,18 @@ export declare const InlineRuntimeConfigSchema: z.ZodObject<{
236
284
  dmHistoryLimit: z.ZodOptional<z.ZodNumber>;
237
285
  parseMarkdown: z.ZodOptional<z.ZodBoolean>;
238
286
  mediaMaxMb: z.ZodOptional<z.ZodNumber>;
287
+ actions: z.ZodOptional<z.ZodObject<{
288
+ reply: z.ZodOptional<z.ZodBoolean>;
289
+ reactions: z.ZodOptional<z.ZodBoolean>;
290
+ read: z.ZodOptional<z.ZodBoolean>;
291
+ search: z.ZodOptional<z.ZodBoolean>;
292
+ edit: z.ZodOptional<z.ZodBoolean>;
293
+ channels: z.ZodOptional<z.ZodBoolean>;
294
+ participants: z.ZodOptional<z.ZodBoolean>;
295
+ delete: z.ZodOptional<z.ZodBoolean>;
296
+ pins: z.ZodOptional<z.ZodBoolean>;
297
+ permissions: z.ZodOptional<z.ZodBoolean>;
298
+ }, z.core.$strict>>;
239
299
  textChunkLimit: z.ZodOptional<z.ZodNumber>;
240
300
  chunkMode: z.ZodOptional<z.ZodEnum<{
241
301
  length: "length";
@@ -287,6 +347,18 @@ export declare const InlineConfigSchema: z.ZodObject<{
287
347
  dmHistoryLimit: z.ZodOptional<z.ZodNumber>;
288
348
  parseMarkdown: z.ZodOptional<z.ZodBoolean>;
289
349
  mediaMaxMb: z.ZodOptional<z.ZodNumber>;
350
+ actions: z.ZodOptional<z.ZodObject<{
351
+ reply: z.ZodOptional<z.ZodBoolean>;
352
+ reactions: z.ZodOptional<z.ZodBoolean>;
353
+ read: z.ZodOptional<z.ZodBoolean>;
354
+ search: z.ZodOptional<z.ZodBoolean>;
355
+ edit: z.ZodOptional<z.ZodBoolean>;
356
+ channels: z.ZodOptional<z.ZodBoolean>;
357
+ participants: z.ZodOptional<z.ZodBoolean>;
358
+ delete: z.ZodOptional<z.ZodBoolean>;
359
+ pins: z.ZodOptional<z.ZodBoolean>;
360
+ permissions: z.ZodOptional<z.ZodBoolean>;
361
+ }, z.core.$strict>>;
290
362
  textChunkLimit: z.ZodOptional<z.ZodNumber>;
291
363
  chunkMode: z.ZodOptional<z.ZodEnum<{
292
364
  length: "length";
@@ -336,6 +408,18 @@ export declare const InlineConfigSchema: z.ZodObject<{
336
408
  dmHistoryLimit: z.ZodOptional<z.ZodNumber>;
337
409
  parseMarkdown: z.ZodOptional<z.ZodBoolean>;
338
410
  mediaMaxMb: z.ZodOptional<z.ZodNumber>;
411
+ actions: z.ZodOptional<z.ZodObject<{
412
+ reply: z.ZodOptional<z.ZodBoolean>;
413
+ reactions: z.ZodOptional<z.ZodBoolean>;
414
+ read: z.ZodOptional<z.ZodBoolean>;
415
+ search: z.ZodOptional<z.ZodBoolean>;
416
+ edit: z.ZodOptional<z.ZodBoolean>;
417
+ channels: z.ZodOptional<z.ZodBoolean>;
418
+ participants: z.ZodOptional<z.ZodBoolean>;
419
+ delete: z.ZodOptional<z.ZodBoolean>;
420
+ pins: z.ZodOptional<z.ZodBoolean>;
421
+ permissions: z.ZodOptional<z.ZodBoolean>;
422
+ }, z.core.$strict>>;
339
423
  textChunkLimit: z.ZodOptional<z.ZodNumber>;
340
424
  chunkMode: z.ZodOptional<z.ZodEnum<{
341
425
  length: "length";
@@ -1 +1 @@
1
- {"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["../../src/inline/config-schema.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAUvB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAuBzB,CAAA;AAEX,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAwC,CAAA;AAE/E,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAS9B,CAAA;AAEF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAEtB,CAAA;AAEhB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAW7B,CAAA;AAEF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAC7D,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AACrE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA"}
1
+ {"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["../../src/inline/config-schema.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAyBvB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAwBzB,CAAA;AAEX,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAwC,CAAA;AAE/E,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAS9B,CAAA;AAEF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAEtB,CAAA;AAEhB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAW7B,CAAA;AAEF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAC7D,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AACrE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA"}
@@ -1,5 +1,19 @@
1
1
  import { BlockStreamingCoalesceSchema, DmPolicySchema, GroupPolicySchema, ToolPolicySchema, requireOpenAllowFrom, } from "openclaw/plugin-sdk";
2
2
  import { z } from "zod";
3
+ const InlineActionsSchema = z
4
+ .object({
5
+ reply: z.boolean().optional(),
6
+ reactions: z.boolean().optional(),
7
+ read: z.boolean().optional(),
8
+ search: z.boolean().optional(),
9
+ edit: z.boolean().optional(),
10
+ channels: z.boolean().optional(),
11
+ participants: z.boolean().optional(),
12
+ delete: z.boolean().optional(),
13
+ pins: z.boolean().optional(),
14
+ permissions: z.boolean().optional(),
15
+ })
16
+ .strict();
3
17
  const InlineGroupSchema = z
4
18
  .object({
5
19
  requireMention: z.boolean().optional(),
@@ -25,6 +39,7 @@ export const InlineAccountSchemaBase = z
25
39
  dmHistoryLimit: z.number().int().min(0).optional(),
26
40
  parseMarkdown: z.boolean().optional(),
27
41
  mediaMaxMb: z.number().positive().optional(),
42
+ actions: InlineActionsSchema.optional(),
28
43
  textChunkLimit: z.number().int().positive().optional(),
29
44
  chunkMode: z.enum(["length", "newline"]).optional(),
30
45
  blockStreaming: z.boolean().optional(),
@@ -1 +1 @@
1
- {"version":3,"file":"config-schema.js","sourceRoot":"","sources":["../../src/inline/config-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-schema.js","sourceRoot":"","sources":["../../src/inline/config-schema.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/inline/media.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AAC3F,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAA;AAwG5B,wBAAsB,wBAAwB,CAAC,MAAM,EAAE;IACrD,MAAM,EAAE,eAAe,CAAA;IACvB,GAAG,EAAE,cAAc,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,QAAQ,EAAE,MAAM,CAAA;CACjB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CA4CrC"}
1
+ {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/inline/media.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AAC3F,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAA;AAuH5B,wBAAsB,wBAAwB,CAAC,MAAM,EAAE;IACrD,MAAM,EAAE,eAAe,CAAA;IACvB,GAAG,EAAE,cAAc,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,QAAQ,EAAE,MAAM,CAAA;CACjB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CA0DrC"}
@@ -6,6 +6,11 @@ const SUPPORTED_INLINE_VIDEO_MIME = new Set(["video/mp4"]);
6
6
  const DEFAULT_VIDEO_WIDTH = 1280;
7
7
  const DEFAULT_VIDEO_HEIGHT = 720;
8
8
  const DEFAULT_VIDEO_DURATION = 1;
9
+ // openclaw@2026.2.9 types expose only ssrfPolicy, while newer runtimes also support localRoots.
10
+ const loadWebMediaCompat = loadWebMedia;
11
+ function looksLikeLocalMediaSource(mediaUrl) {
12
+ return !/^https?:\/\//i.test(mediaUrl.trim());
13
+ }
9
14
  function normalizeMime(raw) {
10
15
  const trimmed = raw?.trim().toLowerCase();
11
16
  return trimmed || undefined;
@@ -78,7 +83,22 @@ export async function uploadInlineMediaFromUrl(params) {
78
83
  cfg: params.cfg,
79
84
  accountId: params.accountId ?? null,
80
85
  });
81
- const loaded = await loadWebMedia(params.mediaUrl, maxBytes);
86
+ let loaded;
87
+ try {
88
+ loaded = await loadWebMedia(params.mediaUrl, maxBytes);
89
+ }
90
+ catch (error) {
91
+ const message = String(error);
92
+ const deniedLocalPath = /not under an allowed directory/i.test(message);
93
+ if (!deniedLocalPath || !looksLikeLocalMediaSource(params.mediaUrl)) {
94
+ throw error;
95
+ }
96
+ // Match OpenClaw's message-action-runner pattern:
97
+ // localRoots: "any" is used only after sandbox path normalization upstream.
98
+ loaded = await loadWebMediaCompat(params.mediaUrl, maxBytes, {
99
+ localRoots: "any",
100
+ });
101
+ }
82
102
  const detectedMime = normalizeMime(loaded.contentType ??
83
103
  (await detectMime({
84
104
  buffer: loaded.buffer,
@@ -1 +1 @@
1
- {"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/inline/media.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,2BAA2B,GAE5B,MAAM,qBAAqB,CAAA;AAE5B,MAAM,oBAAoB,GAAG,EAAE,CAAA;AAC/B,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAA;AACrF,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAA;AAC1D,MAAM,mBAAmB,GAAG,IAAI,CAAA;AAChC,MAAM,oBAAoB,GAAG,GAAG,CAAA;AAChC,MAAM,sBAAsB,GAAG,CAAC,CAAA;AAIhC,SAAS,aAAa,CAAC,GAAuB;IAC5C,MAAM,OAAO,GAAG,GAAG,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IACzC,OAAO,OAAO,IAAI,SAAS,CAAA;AAC7B,CAAC;AAED,SAAS,YAAY,CAAC,WAA+B;IACnD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAChE,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAA;IAC1B,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AAC/B,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAuC;IAC/D,IAAI,MAAM,CAAC,IAAI,IAAI,2BAA2B,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAC5E,OAAO,MAAM,CAAC,GAAG,KAAK,KAAK,IAAI,MAAM,CAAC,GAAG,KAAK,MAAM,IAAI,MAAM,CAAC,GAAG,KAAK,KAAK,IAAI,MAAM,CAAC,GAAG,KAAK,KAAK,CAAA;AACtG,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAuC;IAC/D,IAAI,MAAM,CAAC,IAAI,IAAI,2BAA2B,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAC5E,OAAO,MAAM,CAAC,GAAG,KAAK,KAAK,CAAA;AAC7B,CAAC;AAED,SAAS,gBAAgB,CAAC,MAIzB;IACC,+DAA+D;IAC/D,IAAI,gBAAgB,CAAC,MAAM,CAAC;QAAE,OAAO,OAAO,CAAA;IAC5C,IAAI,gBAAgB,CAAC,MAAM,CAAC;QAAE,OAAO,OAAO,CAAA;IAE5C,8EAA8E;IAC9E,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,OAAO,CAAA;IAC3C,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,OAAO,CAAA;IAE3C,2EAA2E;IAC3E,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,SAAS,oBAAoB,CAAC,MAK7B;IACC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAA;IACvC,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;QACjC,IAAI,GAAG;YAAE,OAAO,OAAO,CAAA;IACzB,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAA;IAC5E,MAAM,WAAW,GACf,WAAW;QACX,CAAC,MAAM,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IACzF,OAAO,cAAc,WAAW,EAAE,CAAA;AACpC,CAAC;AAED,SAAS,oBAAoB,CAAC,MAG7B;IACC,OAAO,CACL,2BAA2B,CAAC;QAC1B,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,qBAAqB,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,CAC5C,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,UAAU;YACvD,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU;KACnC,CAAC;QACF,oBAAoB,GAAG,IAAI,GAAG,IAAI,CACnC,CAAA;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,MAO9B;IACC,IAAI,MAAM,CAAC,UAAU,KAAK,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;QACnE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;IAC1D,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,KAAK,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;QACnE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;IAC1D,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;QACrC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,CAAA;IACnE,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,gCAAgC,MAAM,CAAC,UAAU,wBAAwB,CAAC,CAAA;AAC5F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,MAK9C;IACC,MAAM,QAAQ,GAAG,oBAAoB,CAAC;QACpC,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI;KACpC,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAC5D,MAAM,YAAY,GAAG,aAAa,CAChC,MAAM,CAAC,WAAW;QAChB,CAAC,MAAM,UAAU,CAAC;YAChB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1D,CAAC,CAAC,CACN,CAAA;IACD,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IACnD,MAAM,UAAU,GAAG,gBAAgB,CAAC;QAClC,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACjD,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,oBAAoB,CAAC;QACpC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,UAAU;QACV,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACjD,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;QAC5C,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,MAAM,CAAC,MAAM;QACnB,QAAQ;QACR,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,GAAG,CAAC,UAAU,KAAK,OAAO;YACxB,CAAC,CAAC;gBACE,KAAK,EAAE,mBAAmB;gBAC1B,MAAM,EAAE,oBAAoB;gBAC5B,QAAQ,EAAE,sBAAsB;aACjC;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAA;IAEF,OAAO,qBAAqB,CAAC;QAC3B,UAAU;QACV,MAAM,EAAE,MAAM;KACf,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/inline/media.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"monitor.d.ts","sourceRoot":"","sources":["../../src/inline/monitor.ts"],"names":[],"mappings":"AAEA,OAAO,EAML,KAAK,cAAc,EACnB,KAAK,UAAU,EAChB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAsB,KAAK,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAO9E,KAAK,mBAAmB,GAAG;IACzB,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC1B,CAAA;AAED,KAAK,UAAU,GAAG,CAAC,KAAK,EAAE;IAAE,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,CAAA;AAgQ1G,wBAAsB,qBAAqB,CAAC,MAAM,EAAE;IAClD,GAAG,EAAE,cAAc,CAAA;IACnB,OAAO,EAAE,qBAAqB,CAAA;IAC9B,OAAO,EAAE,UAAU,CAAA;IACnB,WAAW,EAAE,WAAW,CAAA;IACxB,GAAG,CAAC,EAAE;QAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAA;IAC/H,UAAU,CAAC,EAAE,UAAU,CAAA;CACxB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAqiB/B"}
1
+ {"version":3,"file":"monitor.d.ts","sourceRoot":"","sources":["../../src/inline/monitor.ts"],"names":[],"mappings":"AAEA,OAAO,EAML,KAAK,cAAc,EACnB,KAAK,UAAU,EAChB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAsB,KAAK,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAO9E,KAAK,mBAAmB,GAAG;IACzB,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC1B,CAAA;AAED,KAAK,UAAU,GAAG,CAAC,KAAK,EAAE;IAAE,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,CAAA;AAqV1G,wBAAsB,qBAAqB,CAAC,MAAM,EAAE;IAClD,GAAG,EAAE,cAAc,CAAA;IACnB,OAAO,EAAE,qBAAqB,CAAA;IAC9B,OAAO,EAAE,UAAU,CAAA;IACnB,WAAW,EAAE,WAAW,CAAA;IACxB,GAAG,CAAC,EAAE;QAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAA;IAC/H,UAAU,CAAC,EAAE,UAAU,CAAA;CACxB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAuiB/B"}
@@ -12,6 +12,7 @@ const DEFAULT_DM_HISTORY_LIMIT = 6;
12
12
  const HISTORY_LINE_MAX_CHARS = 280;
13
13
  const BOT_MESSAGE_CACHE_LIMIT = 500;
14
14
  const REACTION_TARGET_LOOKUP_LIMIT = 8;
15
+ const REPLY_TARGET_LOOKUP_LIMIT = 8;
15
16
  function normalizeAllowEntry(raw) {
16
17
  return raw.trim().replace(/^inline:/i, "").replace(/^user:/i, "");
17
18
  }
@@ -76,35 +77,88 @@ function hasBotMessageId(cache, chatId, messageId) {
76
77
  const key = String(chatId);
77
78
  return (cache.get(key) ?? []).includes(String(messageId));
78
79
  }
79
- async function isReactionTargetBotMessage(params) {
80
- if (hasBotMessageId(params.botMessageIdsByChat, params.chatId, params.messageId)) {
81
- return true;
80
+ function rememberBotMessagesFromList(params) {
81
+ for (const item of params.messages) {
82
+ if (item.fromId === params.meId) {
83
+ rememberBotMessageId(params.botMessageIdsByChat, params.chatId, item.id);
84
+ }
82
85
  }
86
+ }
87
+ function buildChatPeer(chatId) {
88
+ return {
89
+ type: {
90
+ oneofKind: "chat",
91
+ chat: { chatId },
92
+ },
93
+ };
94
+ }
95
+ async function loadChatHistoryMessages(params) {
83
96
  const result = await params.client.invokeRaw(Method.GET_CHAT_HISTORY, {
84
97
  oneofKind: "getChatHistory",
85
98
  getChatHistory: {
86
- peerId: {
87
- type: {
88
- oneofKind: "chat",
89
- chat: { chatId: params.chatId },
90
- },
91
- },
92
- offsetId: params.messageId + 1n,
93
- limit: REACTION_TARGET_LOOKUP_LIMIT,
99
+ peerId: buildChatPeer(params.chatId),
100
+ ...(params.offsetId != null ? { offsetId: params.offsetId } : {}),
101
+ limit: params.limit,
94
102
  },
95
103
  });
96
104
  if (result.oneofKind !== "getChatHistory") {
97
- return false;
105
+ return null;
98
106
  }
99
- const messages = result.getChatHistory.messages ?? [];
100
- for (const item of messages) {
101
- if (item.fromId === params.meId) {
102
- rememberBotMessageId(params.botMessageIdsByChat, params.chatId, item.id);
107
+ return result.getChatHistory.messages ?? [];
108
+ }
109
+ async function findChatMessageById(params) {
110
+ const directResult = await params.client
111
+ .invokeRaw(Method.GET_MESSAGES, {
112
+ oneofKind: "getMessages",
113
+ getMessages: {
114
+ peerId: buildChatPeer(params.chatId),
115
+ messageIds: [params.messageId],
116
+ },
117
+ })
118
+ .catch(() => null);
119
+ if (directResult?.oneofKind === "getMessages") {
120
+ const directMessages = directResult.getMessages.messages ?? [];
121
+ rememberBotMessagesFromList({
122
+ messages: directMessages,
123
+ meId: params.meId,
124
+ chatId: params.chatId,
125
+ botMessageIdsByChat: params.botMessageIdsByChat,
126
+ });
127
+ const directTarget = directMessages.find((item) => item.id === params.messageId) ?? null;
128
+ if (directTarget) {
129
+ return directTarget;
103
130
  }
104
131
  }
105
- const target = messages.find((item) => item.id === params.messageId);
106
- if (!target)
107
- return false;
132
+ // Compatibility fallback for older servers without GET_MESSAGES.
133
+ const historyMessages = await loadChatHistoryMessages({
134
+ client: params.client,
135
+ chatId: params.chatId,
136
+ offsetId: params.messageId + 1n,
137
+ limit: params.limit,
138
+ });
139
+ if (!historyMessages) {
140
+ return null;
141
+ }
142
+ rememberBotMessagesFromList({
143
+ messages: historyMessages,
144
+ meId: params.meId,
145
+ chatId: params.chatId,
146
+ botMessageIdsByChat: params.botMessageIdsByChat,
147
+ });
148
+ return historyMessages.find((item) => item.id === params.messageId) ?? null;
149
+ }
150
+ async function isReactionTargetBotMessage(params) {
151
+ const target = await findChatMessageById({
152
+ client: params.client,
153
+ chatId: params.chatId,
154
+ messageId: params.messageId,
155
+ limit: REACTION_TARGET_LOOKUP_LIMIT,
156
+ meId: params.meId,
157
+ botMessageIdsByChat: params.botMessageIdsByChat,
158
+ });
159
+ if (!target) {
160
+ return hasBotMessageId(params.botMessageIdsByChat, params.chatId, params.messageId);
161
+ }
108
162
  return target.fromId === params.meId;
109
163
  }
110
164
  function normalizeHistoryText(raw) {
@@ -133,72 +187,78 @@ function resolveHistoryLimit(params) {
133
187
  return params.dmHistoryLimit ?? params.historyLimit ?? DEFAULT_DM_HISTORY_LIMIT;
134
188
  }
135
189
  async function buildHistoryContext(params) {
136
- if (params.historyLimit <= 0) {
137
- return {
138
- historyText: null,
139
- repliedToBot: params.replyToMsgId != null &&
140
- hasBotMessageId(params.botMessageIdsByChat, params.chatId, params.replyToMsgId),
141
- };
142
- }
143
- const result = await params.client.invokeRaw(Method.GET_CHAT_HISTORY, {
144
- oneofKind: "getChatHistory",
145
- getChatHistory: {
146
- peerId: {
147
- type: {
148
- oneofKind: "chat",
149
- chat: { chatId: params.chatId },
150
- },
151
- },
190
+ const cachedReplyToBot = params.replyToMsgId != null &&
191
+ hasBotMessageId(params.botMessageIdsByChat, params.chatId, params.replyToMsgId);
192
+ let repliedToBot = cachedReplyToBot;
193
+ let replyToSenderId = null;
194
+ let foundReplyTargetInHistory = false;
195
+ const lines = [];
196
+ if (params.historyLimit > 0) {
197
+ const messages = await loadChatHistoryMessages({
198
+ client: params.client,
199
+ chatId: params.chatId,
152
200
  offsetId: params.currentMessageId,
153
201
  limit: params.historyLimit,
154
- },
155
- });
156
- if (result.oneofKind !== "getChatHistory") {
157
- return {
158
- historyText: null,
159
- repliedToBot: params.replyToMsgId != null &&
160
- hasBotMessageId(params.botMessageIdsByChat, params.chatId, params.replyToMsgId),
161
- };
162
- }
163
- const messages = [...(result.getChatHistory.messages ?? [])]
164
- .filter((item) => item.id !== params.currentMessageId)
165
- .sort((a, b) => {
166
- const byDate = Number(a.date - b.date);
167
- if (byDate !== 0)
168
- return byDate;
169
- if (a.id === b.id)
170
- return 0;
171
- return a.id < b.id ? -1 : 1;
172
- });
173
- const lines = [];
174
- let repliedToBot = params.replyToMsgId != null &&
175
- hasBotMessageId(params.botMessageIdsByChat, params.chatId, params.replyToMsgId);
176
- for (const item of messages) {
177
- if (item.fromId === params.meId) {
178
- rememberBotMessageId(params.botMessageIdsByChat, params.chatId, item.id);
179
- }
180
- if (params.replyToMsgId != null &&
181
- item.id === params.replyToMsgId &&
182
- item.fromId === params.meId) {
183
- repliedToBot = true;
202
+ });
203
+ if (messages) {
204
+ for (const item of messages) {
205
+ if (item.fromId === params.meId) {
206
+ rememberBotMessageId(params.botMessageIdsByChat, params.chatId, item.id);
207
+ }
208
+ }
209
+ const sortedMessages = messages
210
+ .filter((item) => item.id !== params.currentMessageId)
211
+ .sort((a, b) => {
212
+ const byDate = Number(a.date - b.date);
213
+ if (byDate !== 0)
214
+ return byDate;
215
+ if (a.id === b.id)
216
+ return 0;
217
+ return a.id < b.id ? -1 : 1;
218
+ });
219
+ for (const item of sortedMessages) {
220
+ if (params.replyToMsgId != null && item.id === params.replyToMsgId) {
221
+ foundReplyTargetInHistory = true;
222
+ replyToSenderId = String(item.fromId);
223
+ repliedToBot = item.fromId === params.meId;
224
+ }
225
+ const text = normalizeHistoryText(item.message);
226
+ if (!text)
227
+ continue;
228
+ const label = resolveHistorySenderLabel({
229
+ senderId: item.fromId,
230
+ meId: params.meId,
231
+ senderProfilesById: params.senderProfilesById,
232
+ });
233
+ const replySuffix = item.replyToMsgId != null ? ` ->${String(item.replyToMsgId)}` : "";
234
+ lines.push(`#${String(item.id)}${replySuffix} ${label}: ${text}`);
235
+ }
184
236
  }
185
- const text = normalizeHistoryText(item.message);
186
- if (!text)
187
- continue;
188
- const label = resolveHistorySenderLabel({
189
- senderId: item.fromId,
237
+ }
238
+ if (params.replyToMsgId != null && !foundReplyTargetInHistory) {
239
+ const replyTarget = await findChatMessageById({
240
+ client: params.client,
241
+ chatId: params.chatId,
242
+ messageId: params.replyToMsgId,
243
+ limit: REPLY_TARGET_LOOKUP_LIMIT,
190
244
  meId: params.meId,
191
- senderProfilesById: params.senderProfilesById,
245
+ botMessageIdsByChat: params.botMessageIdsByChat,
192
246
  });
193
- const replySuffix = item.replyToMsgId != null ? ` ->${String(item.replyToMsgId)}` : "";
194
- lines.push(`#${String(item.id)}${replySuffix} ${label}: ${text}`);
247
+ if (replyTarget) {
248
+ replyToSenderId = String(replyTarget.fromId);
249
+ repliedToBot = replyTarget.fromId === params.meId;
250
+ }
251
+ else if (!cachedReplyToBot) {
252
+ repliedToBot = false;
253
+ }
195
254
  }
196
255
  if (!lines.length) {
197
- return { historyText: null, repliedToBot };
256
+ return { historyText: null, repliedToBot, replyToSenderId };
198
257
  }
199
258
  return {
200
259
  historyText: `Recent thread messages (oldest -> newest):\n${lines.join("\n")}`,
201
260
  repliedToBot,
261
+ replyToSenderId,
202
262
  };
203
263
  }
204
264
  export async function monitorInlineProvider(params) {
@@ -501,7 +561,7 @@ export async function monitorInlineProvider(params) {
501
561
  botMessageIdsByChat,
502
562
  }).catch((err) => {
503
563
  statusSink?.({ lastError: `getChatHistory failed: ${String(err)}` });
504
- return { historyText: null, repliedToBot: false };
564
+ return { historyText: null, repliedToBot: false, replyToSenderId: null };
505
565
  });
506
566
  const implicitMention = (reactionEvent != null && isGroup) ||
507
567
  (isGroup &&
@@ -563,6 +623,8 @@ export async function monitorInlineProvider(params) {
563
623
  Surface: CHANNEL_ID,
564
624
  MessageSid: String(msg.id),
565
625
  ...(msg.replyToMsgId != null ? { ReplyToId: String(msg.replyToMsgId) } : {}),
626
+ ...(historyContext.replyToSenderId != null ? { ReplyToSenderId: historyContext.replyToSenderId } : {}),
627
+ ...(msg.replyToMsgId != null ? { ReplyToWasBot: historyContext.repliedToBot } : {}),
566
628
  Timestamp: timestamp || Date.now(),
567
629
  WasMentioned: mentionGate.effectiveWasMentioned,
568
630
  CommandAuthorized: commandAuthorized,