openclaw-telegram-manager 1.3.11 → 2.0.1
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 +6 -6
- package/dist/commands/archive.js +3 -3
- package/dist/commands/archive.js.map +1 -1
- package/dist/commands/doctor-all.d.ts.map +1 -1
- package/dist/commands/doctor-all.js +2 -2
- package/dist/commands/doctor-all.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +2 -2
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init.d.ts +3 -7
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +47 -138
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/rename.d.ts +1 -1
- package/dist/commands/rename.d.ts.map +1 -1
- package/dist/commands/rename.js +22 -70
- package/dist/commands/rename.js.map +1 -1
- package/dist/commands/snooze.js +1 -1
- package/dist/commands/snooze.js.map +1 -1
- package/dist/commands/upgrade.js +4 -4
- package/dist/commands/upgrade.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/auth.d.ts.map +1 -1
- package/dist/lib/auth.js +4 -2
- package/dist/lib/auth.js.map +1 -1
- package/dist/lib/capsule.d.ts +8 -2
- package/dist/lib/capsule.d.ts.map +1 -1
- package/dist/lib/capsule.js +25 -19
- package/dist/lib/capsule.js.map +1 -1
- package/dist/lib/include-generator.d.ts +4 -1
- package/dist/lib/include-generator.d.ts.map +1 -1
- package/dist/lib/include-generator.js +7 -4
- package/dist/lib/include-generator.js.map +1 -1
- package/dist/lib/registry.d.ts.map +1 -1
- package/dist/lib/registry.js +11 -2
- package/dist/lib/registry.js.map +1 -1
- package/dist/lib/security.d.ts +2 -11
- package/dist/lib/security.d.ts.map +1 -1
- package/dist/lib/security.js +9 -29
- package/dist/lib/security.js.map +1 -1
- package/dist/lib/telegram.d.ts +5 -9
- package/dist/lib/telegram.d.ts.map +1 -1
- package/dist/lib/telegram.js +13 -21
- package/dist/lib/telegram.js.map +1 -1
- package/dist/lib/types.d.ts +9 -1
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/types.js +15 -1
- package/dist/lib/types.js.map +1 -1
- package/dist/plugin.js +656 -764
- package/dist/setup.js +1 -1
- package/dist/tool.js +22 -17
- package/dist/tool.js.map +1 -1
- package/package.json +1 -1
- package/skills/tm/SKILL.md +2 -2
package/dist/setup.js
CHANGED
package/dist/tool.js
CHANGED
|
@@ -2,7 +2,7 @@ import { readRegistry, withRegistry } from './lib/registry.js';
|
|
|
2
2
|
import { parseAndVerifyCallback, htmlEscape } from './lib/security.js';
|
|
3
3
|
import { topicKey } from './lib/types.js';
|
|
4
4
|
import { appendAudit, buildAuditEntry } from './lib/audit.js';
|
|
5
|
-
import { handleInitInteractive,
|
|
5
|
+
import { handleInitInteractive, handleInitTypeSelect } from './commands/init.js';
|
|
6
6
|
import { handleDoctor } from './commands/doctor.js';
|
|
7
7
|
import { handleDoctorAll } from './commands/doctor-all.js';
|
|
8
8
|
import { handleList } from './commands/list.js';
|
|
@@ -140,16 +140,21 @@ function extractNestedString(obj, ...keys) {
|
|
|
140
140
|
}
|
|
141
141
|
// ── Callback handling ───────────────────────────────────────────────
|
|
142
142
|
async function handleCallback(data, ctx) {
|
|
143
|
-
const { workspaceDir,
|
|
144
|
-
|
|
143
|
+
const { workspaceDir, userId } = ctx;
|
|
144
|
+
// Extract groupId and threadId from the callback data itself (format: tm:action:groupId:threadId:hmac).
|
|
145
|
+
// This avoids depending on execContext which may not carry these fields for callback queries.
|
|
146
|
+
const cbParts = data.split(':');
|
|
147
|
+
const cbGroupId = cbParts[2];
|
|
148
|
+
const cbThreadId = cbParts[3];
|
|
149
|
+
if (!cbGroupId || !cbThreadId || !userId) {
|
|
145
150
|
return { text: 'Cannot verify callback: missing context.' };
|
|
146
151
|
}
|
|
147
152
|
const registry = readRegistry(workspaceDir);
|
|
148
|
-
const parsed = parseAndVerifyCallback(data, registry.callbackSecret,
|
|
153
|
+
const parsed = parseAndVerifyCallback(data, registry.callbackSecret, cbGroupId, cbThreadId);
|
|
149
154
|
if (!parsed) {
|
|
150
155
|
return { text: 'Invalid or expired callback.' };
|
|
151
156
|
}
|
|
152
|
-
const { action
|
|
157
|
+
const { action } = parsed;
|
|
153
158
|
// Init callbacks: topic doesn't exist in registry yet
|
|
154
159
|
const initTypeMap = {
|
|
155
160
|
ic: 'coding',
|
|
@@ -157,27 +162,27 @@ async function handleCallback(data, ctx) {
|
|
|
157
162
|
im: 'marketing',
|
|
158
163
|
ix: 'custom',
|
|
159
164
|
};
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
}
|
|
165
|
+
// Build a context with the callback-derived groupId/threadId so downstream
|
|
166
|
+
// handlers have correct values even when execContext didn't carry them.
|
|
167
|
+
const cbCtx = { ...ctx, groupId: cbGroupId, threadId: cbThreadId };
|
|
163
168
|
if (action in initTypeMap) {
|
|
164
|
-
return handleInitTypeSelect(
|
|
169
|
+
return handleInitTypeSelect(cbCtx, initTypeMap[action]);
|
|
165
170
|
}
|
|
166
|
-
// Find the topic entry
|
|
167
|
-
const key = topicKey(
|
|
171
|
+
// Find the topic entry
|
|
172
|
+
const key = topicKey(cbGroupId, cbThreadId);
|
|
168
173
|
const entry = registry.topics[key];
|
|
169
|
-
if (!entry
|
|
170
|
-
return { text: 'Topic not found
|
|
174
|
+
if (!entry) {
|
|
175
|
+
return { text: 'Topic not found.' };
|
|
171
176
|
}
|
|
172
177
|
switch (action) {
|
|
173
178
|
case 'fix':
|
|
174
|
-
return handleCallbackFix(
|
|
179
|
+
return handleCallbackFix(cbCtx);
|
|
175
180
|
case 'snooze7d':
|
|
176
|
-
return handleSnooze(
|
|
181
|
+
return handleSnooze(cbCtx, '7d');
|
|
177
182
|
case 'snooze30d':
|
|
178
|
-
return handleSnooze(
|
|
183
|
+
return handleSnooze(cbCtx, '30d');
|
|
179
184
|
case 'archive':
|
|
180
|
-
return handleArchive(
|
|
185
|
+
return handleArchive(cbCtx);
|
|
181
186
|
case 'ignore': {
|
|
182
187
|
// Add the most recent failing check to ignoreChecks
|
|
183
188
|
// For simplicity, we acknowledge the action; the user should specify which check
|
package/dist/tool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,
|
|
1
|
+
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/skills/tm/SKILL.md
CHANGED
|
@@ -24,9 +24,9 @@ If you detect any of these conditions, invoke `topic_manager` proactively:
|
|
|
24
24
|
|
|
25
25
|
If a message starts with `tm:`, pass the entire string as the `command`
|
|
26
26
|
argument to `topic_manager`. This routes inline keyboard callbacks
|
|
27
|
-
(e.g., `tm:snooze7d:
|
|
27
|
+
(e.g., `tm:snooze7d:-100123:456:...`) to the tool for verification and handling.
|
|
28
28
|
|
|
29
29
|
## Available sub-commands
|
|
30
30
|
|
|
31
|
-
init, doctor, doctor --all, status, list, sync, rename <
|
|
31
|
+
init, doctor, doctor --all, status, list, sync, rename <name>,
|
|
32
32
|
upgrade, snooze <Nd>, archive, unarchive, help
|