openclaw-telegram-manager 2.0.1 → 2.1.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/dist/commands/autopilot.d.ts +3 -0
- package/dist/commands/autopilot.d.ts.map +1 -0
- package/dist/commands/autopilot.js +128 -0
- package/dist/commands/autopilot.js.map +1 -0
- package/dist/commands/doctor-all.d.ts.map +1 -1
- package/dist/commands/doctor-all.js +44 -6
- package/dist/commands/doctor-all.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +1 -1
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init.d.ts +6 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +69 -19
- package/dist/commands/init.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +41 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/auth.d.ts.map +1 -1
- package/dist/lib/auth.js +1 -0
- package/dist/lib/auth.js.map +1 -1
- package/dist/lib/capsule.d.ts.map +1 -1
- package/dist/lib/capsule.js +3 -2
- package/dist/lib/capsule.js.map +1 -1
- package/dist/lib/doctor-checks.d.ts.map +1 -1
- package/dist/lib/doctor-checks.js +5 -11
- package/dist/lib/doctor-checks.js.map +1 -1
- package/dist/lib/include-generator.d.ts.map +1 -1
- package/dist/lib/include-generator.js +11 -2
- package/dist/lib/include-generator.js.map +1 -1
- package/dist/lib/registry.d.ts.map +1 -1
- package/dist/lib/registry.js +7 -0
- package/dist/lib/registry.js.map +1 -1
- package/dist/lib/security.d.ts +7 -3
- package/dist/lib/security.d.ts.map +1 -1
- package/dist/lib/security.js +13 -10
- package/dist/lib/security.js.map +1 -1
- package/dist/lib/telegram.d.ts +7 -2
- package/dist/lib/telegram.d.ts.map +1 -1
- package/dist/lib/telegram.js +44 -22
- package/dist/lib/telegram.js.map +1 -1
- package/dist/lib/types.d.ts +5 -3
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/types.js +4 -2
- package/dist/lib/types.js.map +1 -1
- package/dist/plugin.js +979 -624
- package/dist/tool.d.ts +2 -0
- package/dist/tool.d.ts.map +1 -1
- package/dist/tool.js +55 -11
- package/dist/tool.js.map +1 -1
- package/package.json +1 -1
- package/skills/tm/SKILL.md +12 -1
package/dist/tool.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { InlineKeyboardMarkup } from './lib/types.js';
|
|
1
2
|
import type { CommandResult } from './commands/help.js';
|
|
2
3
|
import type { Logger, RpcInterface } from './lib/config-restart.js';
|
|
3
4
|
export interface ToolDeps {
|
|
@@ -5,6 +6,7 @@ export interface ToolDeps {
|
|
|
5
6
|
configDir: string;
|
|
6
7
|
workspaceDir: string;
|
|
7
8
|
rpc?: RpcInterface | null;
|
|
9
|
+
postFn?: (groupId: string, threadId: string, text: string, keyboard?: InlineKeyboardMarkup) => Promise<void>;
|
|
8
10
|
}
|
|
9
11
|
export interface TopicManagerTool {
|
|
10
12
|
execute(_id: string, params: {
|
package/dist/tool.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAe3D,OAAO,KAAK,EAAkB,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAIpE,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,EAAE,CACP,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,oBAAoB,KAC5B,OAAO,CAAC,IAAI,CAAC,CAAC;CACpB;AAID,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CACL,GAAG,EAAE,MAAM,EACX,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,EAC3B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACpC,OAAO,CAAC,aAAa,CAAC,CAAC;CAC3B;AAID,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,QAAQ,GAAG,gBAAgB,CAiHvE"}
|
package/dist/tool.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { readRegistry, withRegistry } from './lib/registry.js';
|
|
2
2
|
import { parseAndVerifyCallback, htmlEscape } from './lib/security.js';
|
|
3
|
-
import { topicKey } from './lib/types.js';
|
|
3
|
+
import { topicKey, CAPSULE_VERSION } from './lib/types.js';
|
|
4
4
|
import { appendAudit, buildAuditEntry } from './lib/audit.js';
|
|
5
|
-
import {
|
|
5
|
+
import { upgradeCapsule } from './lib/capsule.js';
|
|
6
|
+
import { handleInitInteractive, handleInitTypeSelect, handleInitNameConfirm } from './commands/init.js';
|
|
6
7
|
import { handleDoctor } from './commands/doctor.js';
|
|
7
8
|
import { handleDoctorAll } from './commands/doctor-all.js';
|
|
8
9
|
import { handleList } from './commands/list.js';
|
|
@@ -12,6 +13,7 @@ import { handleRename } from './commands/rename.js';
|
|
|
12
13
|
import { handleUpgrade } from './commands/upgrade.js';
|
|
13
14
|
import { handleSnooze } from './commands/snooze.js';
|
|
14
15
|
import { handleArchive, handleUnarchive } from './commands/archive.js';
|
|
16
|
+
import { handleAutopilot } from './commands/autopilot.js';
|
|
15
17
|
import { handleHelp } from './commands/help.js';
|
|
16
18
|
// ── Factory ───────────────────────────────────────────────────────────
|
|
17
19
|
export function createTopicManagerTool(deps) {
|
|
@@ -24,12 +26,40 @@ export function createTopicManagerTool(deps) {
|
|
|
24
26
|
}
|
|
25
27
|
// Extract context from execution params
|
|
26
28
|
const ctx = buildContext(deps, execContext);
|
|
27
|
-
// Handle tm: callback routing
|
|
29
|
+
// Handle tm: callback routing (no activity tracking for callbacks)
|
|
28
30
|
if (commandStr.startsWith('tm:')) {
|
|
29
31
|
return handleCallback(commandStr, ctx);
|
|
30
32
|
}
|
|
31
33
|
// Parse sub-command and args
|
|
32
34
|
const { subCommand, args, flags } = parseCommand(commandStr);
|
|
35
|
+
// Activity tracking + auto-upgrade for registered topics (user commands only)
|
|
36
|
+
if (ctx.groupId && ctx.threadId) {
|
|
37
|
+
const key = topicKey(ctx.groupId, ctx.threadId);
|
|
38
|
+
const projectsBase = `${workspaceDir}/projects`;
|
|
39
|
+
void withRegistry(workspaceDir, (data) => {
|
|
40
|
+
const entry = data.topics[key];
|
|
41
|
+
if (!entry)
|
|
42
|
+
return;
|
|
43
|
+
// Update lastMessageAt
|
|
44
|
+
entry.lastMessageAt = new Date().toISOString();
|
|
45
|
+
// Auto-upgrade capsule if version is behind
|
|
46
|
+
if (entry.capsuleVersion < CAPSULE_VERSION) {
|
|
47
|
+
const oldVersion = entry.capsuleVersion;
|
|
48
|
+
try {
|
|
49
|
+
upgradeCapsule(projectsBase, entry.slug, entry.name, entry.type, entry.capsuleVersion);
|
|
50
|
+
entry.capsuleVersion = CAPSULE_VERSION;
|
|
51
|
+
logger.info(`[auto-upgrade] ${entry.slug} v${oldVersion} → v${CAPSULE_VERSION}`);
|
|
52
|
+
}
|
|
53
|
+
catch (err) {
|
|
54
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
55
|
+
logger.error(`[auto-upgrade] ${entry.slug} failed: ${msg}`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}).catch((err) => {
|
|
59
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
60
|
+
logger.error(`[activity-tracking] Failed: ${msg}`);
|
|
61
|
+
});
|
|
62
|
+
}
|
|
33
63
|
try {
|
|
34
64
|
switch (subCommand) {
|
|
35
65
|
case 'init':
|
|
@@ -57,6 +87,8 @@ export function createTopicManagerTool(deps) {
|
|
|
57
87
|
return await handleArchive(ctx);
|
|
58
88
|
case 'unarchive':
|
|
59
89
|
return await handleUnarchive(ctx);
|
|
90
|
+
case 'autopilot':
|
|
91
|
+
return await handleAutopilot(ctx, args);
|
|
60
92
|
case 'help':
|
|
61
93
|
return await handleHelp(ctx);
|
|
62
94
|
default:
|
|
@@ -115,6 +147,7 @@ function buildContext(deps, execContext) {
|
|
|
115
147
|
threadId: threadId ?? undefined,
|
|
116
148
|
userId: userId ?? undefined,
|
|
117
149
|
messageContext: execContext,
|
|
150
|
+
postFn: deps.postFn,
|
|
118
151
|
};
|
|
119
152
|
}
|
|
120
153
|
function extractString(obj, key) {
|
|
@@ -140,13 +173,15 @@ function extractNestedString(obj, ...keys) {
|
|
|
140
173
|
}
|
|
141
174
|
// ── Callback handling ───────────────────────────────────────────────
|
|
142
175
|
async function handleCallback(data, ctx) {
|
|
143
|
-
const { workspaceDir
|
|
144
|
-
// Extract groupId and
|
|
145
|
-
//
|
|
176
|
+
const { workspaceDir } = ctx;
|
|
177
|
+
// Extract groupId, threadId, and userId from the callback data itself
|
|
178
|
+
// (format: tm:action:groupId:threadId:userId:hmac).
|
|
179
|
+
// This avoids depending on execContext which the gateway doesn't provide
|
|
180
|
+
// for callback queries routed as plain text.
|
|
146
181
|
const cbParts = data.split(':');
|
|
147
182
|
const cbGroupId = cbParts[2];
|
|
148
183
|
const cbThreadId = cbParts[3];
|
|
149
|
-
if (!cbGroupId || !cbThreadId
|
|
184
|
+
if (!cbGroupId || !cbThreadId) {
|
|
150
185
|
return { text: 'Cannot verify callback: missing context.' };
|
|
151
186
|
}
|
|
152
187
|
const registry = readRegistry(workspaceDir);
|
|
@@ -154,7 +189,7 @@ async function handleCallback(data, ctx) {
|
|
|
154
189
|
if (!parsed) {
|
|
155
190
|
return { text: 'Invalid or expired callback.' };
|
|
156
191
|
}
|
|
157
|
-
const { action } = parsed;
|
|
192
|
+
const { action, userId: cbUserId } = parsed;
|
|
158
193
|
// Init callbacks: topic doesn't exist in registry yet
|
|
159
194
|
const initTypeMap = {
|
|
160
195
|
ic: 'coding',
|
|
@@ -162,12 +197,21 @@ async function handleCallback(data, ctx) {
|
|
|
162
197
|
im: 'marketing',
|
|
163
198
|
ix: 'custom',
|
|
164
199
|
};
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
200
|
+
const initConfirmMap = {
|
|
201
|
+
yc: 'coding',
|
|
202
|
+
yr: 'research',
|
|
203
|
+
ym: 'marketing',
|
|
204
|
+
yx: 'custom',
|
|
205
|
+
};
|
|
206
|
+
// Build a context with callback-derived values so downstream handlers work
|
|
207
|
+
// even when execContext didn't carry them.
|
|
208
|
+
const cbCtx = { ...ctx, groupId: cbGroupId, threadId: cbThreadId, userId: cbUserId };
|
|
168
209
|
if (action in initTypeMap) {
|
|
169
210
|
return handleInitTypeSelect(cbCtx, initTypeMap[action]);
|
|
170
211
|
}
|
|
212
|
+
if (action in initConfirmMap) {
|
|
213
|
+
return handleInitNameConfirm(cbCtx, initConfirmMap[action]);
|
|
214
|
+
}
|
|
171
215
|
// Find the topic entry
|
|
172
216
|
const key = topicKey(cbGroupId, cbThreadId);
|
|
173
217
|
const entry = registry.topics[key];
|
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;
|
|
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
|
@@ -15,10 +15,21 @@ If you detect any of these conditions, invoke `topic_manager` proactively:
|
|
|
15
15
|
|
|
16
16
|
1. **After /reset, /new, or context compaction**: call `topic_manager` with
|
|
17
17
|
command "status" to re-read the capsule and rehydrate context.
|
|
18
|
+
Rehydration order: STATUS.md, TODO.md, LEARNINGS.md (last 20 entries),
|
|
19
|
+
then COMMANDS.md.
|
|
18
20
|
2. **Before context gets large**: proactively flush current progress to
|
|
19
21
|
STATUS.md using the standard file write tool (update "Last done (UTC)"
|
|
20
22
|
and "Next 3 actions"). Do NOT route this through /tm — write directly.
|
|
21
23
|
3. **When you notice a topic has no capsule**: suggest `/tm init`.
|
|
24
|
+
4. **When you discover something unexpected** (a mistake, workaround, or
|
|
25
|
+
constraint): prepend a dated entry to LEARNINGS.md in the capsule.
|
|
26
|
+
|
|
27
|
+
## Autopilot context
|
|
28
|
+
|
|
29
|
+
When autopilot is enabled (`/tm autopilot enable`), a daily health sweep
|
|
30
|
+
runs via the OpenClaw heartbeat. The heartbeat triggers `doctor --all`,
|
|
31
|
+
which checks all active topics and posts individual reports. No manual
|
|
32
|
+
intervention is needed once enabled.
|
|
22
33
|
|
|
23
34
|
## Callback routing
|
|
24
35
|
|
|
@@ -29,4 +40,4 @@ argument to `topic_manager`. This routes inline keyboard callbacks
|
|
|
29
40
|
## Available sub-commands
|
|
30
41
|
|
|
31
42
|
init, doctor, doctor --all, status, list, sync, rename <name>,
|
|
32
|
-
upgrade, snooze <Nd>, archive, unarchive, help
|
|
43
|
+
upgrade, snooze <Nd>, archive, unarchive, autopilot [enable|disable|status], help
|