clawgram 2.21.0 → 2.22.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.
- package/README.md +34 -8
- package/dist/channel.js +290 -57
- package/dist/chat-info.js +28 -22
- package/dist/cli-core.js +109 -20
- package/dist/expiring-map.js +96 -0
- package/dist/gramjs-client.js +104 -29
- package/dist/group-reply-address.js +6 -16
- package/dist/group-visible-reply-guard.js +12 -32
- package/dist/helpers.js +50 -5
- package/dist/history.js +54 -22
- package/dist/html-render.js +44 -1
- package/dist/joins.js +8 -6
- package/dist/manage.js +9 -15
- package/dist/media.js +15 -16
- package/dist/normalize.js +6 -1
- package/dist/proxy-config.js +2 -4
- package/dist/reactions.js +3 -12
- package/dist/secret-refs.js +1 -0
- package/dist/send-scope.js +97 -0
- package/dist/silent-reaction.js +9 -5
- package/dist/state-dir.js +24 -0
- package/dist/system-notice.js +49 -4
- package/dist/update-config.js +139 -33
- package/dist/util.js +36 -0
- package/npm-shrinkwrap.json +4531 -0
- package/openclaw.plugin.json +39 -5
- package/package.json +12 -4
package/openclaw.plugin.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"id": "clawgram",
|
|
3
3
|
"name": "Clawgram",
|
|
4
4
|
"description": "Clawgram — personal Telegram (MTProto userbot) channel for OpenClaw. Your AI assistant reads and responds as you.",
|
|
5
|
-
"version": "2.
|
|
5
|
+
"version": "2.22.0",
|
|
6
6
|
"configSchema": {
|
|
7
7
|
"type": "object",
|
|
8
8
|
"additionalProperties": false,
|
|
@@ -35,7 +35,8 @@
|
|
|
35
35
|
"type": "number"
|
|
36
36
|
}
|
|
37
37
|
]
|
|
38
|
-
}
|
|
38
|
+
},
|
|
39
|
+
"description": "Who may talk to this account. Numeric Telegram ids are the recommended form: an `@username` entry is a claim about a handle, and a handle can be released and taken by someone else — after which the entry admits a stranger. Ids do not change hands. `[\"*\"]` means anyone."
|
|
39
40
|
},
|
|
40
41
|
"groups": {
|
|
41
42
|
"type": "object",
|
|
@@ -70,7 +71,8 @@
|
|
|
70
71
|
"type": "number"
|
|
71
72
|
}
|
|
72
73
|
]
|
|
73
|
-
}
|
|
74
|
+
},
|
|
75
|
+
"description": "Who may talk to this account. Numeric Telegram ids are the recommended form: an `@username` entry is a claim about a handle, and a handle can be released and taken by someone else — after which the entry admits a stranger. Ids do not change hands. `[\"*\"]` means anyone."
|
|
74
76
|
},
|
|
75
77
|
"tools": {
|
|
76
78
|
"type": "object",
|
|
@@ -342,7 +344,8 @@
|
|
|
342
344
|
"type": "number"
|
|
343
345
|
}
|
|
344
346
|
]
|
|
345
|
-
}
|
|
347
|
+
},
|
|
348
|
+
"description": "Who may talk to this account. Numeric Telegram ids are the recommended form: an `@username` entry is a claim about a handle, and a handle can be released and taken by someone else — after which the entry admits a stranger. Ids do not change hands. `[\"*\"]` means anyone."
|
|
346
349
|
},
|
|
347
350
|
"groups": {
|
|
348
351
|
"type": "object",
|
|
@@ -377,7 +380,8 @@
|
|
|
377
380
|
"type": "number"
|
|
378
381
|
}
|
|
379
382
|
]
|
|
380
|
-
}
|
|
383
|
+
},
|
|
384
|
+
"description": "Who may talk to this account. Numeric Telegram ids are the recommended form: an `@username` entry is a claim about a handle, and a handle can be released and taken by someone else — after which the entry admits a stranger. Ids do not change hands. `[\"*\"]` means anyone."
|
|
381
385
|
},
|
|
382
386
|
"tools": {
|
|
383
387
|
"type": "object",
|
|
@@ -445,6 +449,13 @@
|
|
|
445
449
|
}
|
|
446
450
|
}
|
|
447
451
|
},
|
|
452
|
+
"operatorIds": {
|
|
453
|
+
"type": "array",
|
|
454
|
+
"items": {
|
|
455
|
+
"type": "string"
|
|
456
|
+
},
|
|
457
|
+
"description": "Who receives core's operational telemetry in a DM — tool-failure warnings, model-fallback notices. These carry shell commands and secret-store paths, so they go only to the people named here. Absent falls back to allowFrom when that is a concrete list; a wildcard or an empty list means no operator is identified and the notices are dropped everywhere (they stay in the run diagnostics and the gateway log)."
|
|
458
|
+
},
|
|
448
459
|
"readChats": {
|
|
449
460
|
"type": "array",
|
|
450
461
|
"items": {
|
|
@@ -452,6 +463,13 @@
|
|
|
452
463
|
},
|
|
453
464
|
"description": "Chat ids the account may read history and membership for. Absent means no restriction; an empty array denies everything."
|
|
454
465
|
},
|
|
466
|
+
"sendChats": {
|
|
467
|
+
"type": "array",
|
|
468
|
+
"items": {
|
|
469
|
+
"type": "string"
|
|
470
|
+
},
|
|
471
|
+
"description": "Chat ids the account may SEND to (2.18.0): send, upload-file, react and core's delivery path. Same shape as readChats — absent means no restriction, [] denies everything, [\"*\"] allows every chat. A phone number is refused in every configuration, wildcard included: messaging a raw number starts a conversation with someone who never interacted with the account. Without this list an injected turn can message strangers from the owner's personal account or carry a work chat's content into a DM one send at a time."
|
|
472
|
+
},
|
|
455
473
|
"manageChats": {
|
|
456
474
|
"type": "array",
|
|
457
475
|
"items": {
|
|
@@ -561,6 +579,22 @@
|
|
|
561
579
|
"help": "Trusted prompt block appended for messages from this group — the place to state what this chat is about and what stays out of it.",
|
|
562
580
|
"advanced": true
|
|
563
581
|
},
|
|
582
|
+
"accounts.*.operatorIds": {
|
|
583
|
+
"label": "Operator Ids",
|
|
584
|
+
"help": "Who may receive tool-failure and fallback notices in a DM. These quote shell commands and secret-store paths. Leave empty to drop them everywhere.",
|
|
585
|
+
"advanced": true
|
|
586
|
+
},
|
|
587
|
+
"accounts.*.apiHash": {
|
|
588
|
+
"label": "API Hash",
|
|
589
|
+
"help": "The account's API hash from my.telegram.org. Together with the session string it is a bearer credential for everything this account can reach.",
|
|
590
|
+
"sensitive": true
|
|
591
|
+
},
|
|
592
|
+
"accounts.*.sessionString": {
|
|
593
|
+
"label": "Session String",
|
|
594
|
+
"help": "The logged-in session for this account. Whoever holds it is logged in as this account — no password, no 2FA.",
|
|
595
|
+
"sensitive": true,
|
|
596
|
+
"advanced": true
|
|
597
|
+
},
|
|
564
598
|
"accounts.*.twoFaPassword": {
|
|
565
599
|
"label": "2FA Password",
|
|
566
600
|
"help": "The account's Telegram two-step verification password. Only needed for ownership transfer.",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "clawgram",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.22.0",
|
|
4
4
|
"description": "Clawgram — personal Telegram (MTProto userbot) channel for OpenClaw. Your AI assistant reads and responds as you.",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -28,7 +28,8 @@
|
|
|
28
28
|
"dist",
|
|
29
29
|
"package.json",
|
|
30
30
|
"openclaw.plugin.json",
|
|
31
|
-
"README.md"
|
|
31
|
+
"README.md",
|
|
32
|
+
"npm-shrinkwrap.json"
|
|
32
33
|
],
|
|
33
34
|
"author": "Konstantin Dipezh (d3pre5s)",
|
|
34
35
|
"contributors": [
|
|
@@ -56,15 +57,22 @@
|
|
|
56
57
|
}
|
|
57
58
|
},
|
|
58
59
|
"devDependencies": {
|
|
60
|
+
"@types/node": "^22",
|
|
59
61
|
"openclaw": "2026.7.1-2",
|
|
60
62
|
"typescript": "^5.9.3"
|
|
61
63
|
},
|
|
64
|
+
"engines": {
|
|
65
|
+
"node": ">=22.22.3"
|
|
66
|
+
},
|
|
62
67
|
"peerDependencies": {
|
|
63
68
|
"openclaw": ">=2026.5.26"
|
|
64
69
|
},
|
|
65
70
|
"installDependencies": true,
|
|
66
71
|
"dependencies": {
|
|
67
|
-
"json5": "
|
|
68
|
-
"telegram": "
|
|
72
|
+
"json5": "2.2.3",
|
|
73
|
+
"telegram": "2.26.22"
|
|
74
|
+
},
|
|
75
|
+
"overrides": {
|
|
76
|
+
"ip-address": "10.7.0"
|
|
69
77
|
}
|
|
70
78
|
}
|