@mininglamp-oss/cc-channel-octo 1.0.3-dev.660b13a → 1.0.3-dev.688f404
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/config.bot.example.json +2 -1
- package/config.example.json +8 -1
- package/dist/agent-bridge.js +6 -1
- package/dist/agent-bridge.js.map +1 -1
- package/dist/config.d.ts +57 -0
- package/dist/config.js +8 -0
- package/dist/config.js.map +1 -1
- package/dist/group-config.d.ts +18 -9
- package/dist/group-config.js +47 -10
- package/dist/group-config.js.map +1 -1
- package/dist/group-context.d.ts +18 -0
- package/dist/group-context.js +86 -7
- package/dist/group-context.js.map +1 -1
- package/dist/group-md-cache.d.ts +69 -0
- package/dist/group-md-cache.js +93 -0
- package/dist/group-md-cache.js.map +1 -0
- package/dist/group-md-events.d.ts +43 -0
- package/dist/group-md-events.js +43 -0
- package/dist/group-md-events.js.map +1 -0
- package/dist/group-md-tool.d.ts +49 -0
- package/dist/group-md-tool.js +95 -0
- package/dist/group-md-tool.js.map +1 -0
- package/dist/group-md-writeback.d.ts +97 -0
- package/dist/group-md-writeback.js +118 -0
- package/dist/group-md-writeback.js.map +1 -0
- package/dist/group-md.d.ts +53 -0
- package/dist/group-md.js +98 -0
- package/dist/group-md.js.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.js +92 -15
- package/dist/index.js.map +1 -1
- package/dist/octo/api.d.ts +98 -1
- package/dist/octo/api.js +136 -1
- package/dist/octo/api.js.map +1 -1
- package/dist/octo/channel-id.d.ts +36 -0
- package/dist/octo/channel-id.js +52 -0
- package/dist/octo/channel-id.js.map +1 -0
- package/dist/octo/types.d.ts +22 -0
- package/dist/octo/types.js.map +1 -1
- package/dist/prompt-safety.d.ts +20 -0
- package/dist/prompt-safety.js +24 -0
- package/dist/prompt-safety.js.map +1 -1
- package/dist/session-router.d.ts +35 -1
- package/dist/session-router.js +66 -3
- package/dist/session-router.js.map +1 -1
- package/dist/session-store.d.ts +26 -0
- package/dist/session-store.js +64 -1
- package/dist/session-store.js.map +1 -1
- package/package.json +1 -1
package/dist/octo/api.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChannelType, type MentionEntity, type SendMessageResult } from "./types.js";
|
|
1
|
+
import { ChannelType, type MentionEntity, type SendMessageResult, type Thread, type ThreadMember } from "./types.js";
|
|
2
2
|
/**
|
|
3
3
|
* Generate a client-side idempotency key (UUID) for outbound messages.
|
|
4
4
|
*
|
|
@@ -146,3 +146,100 @@ export declare function getChannelMessages(params: {
|
|
|
146
146
|
endMessageSeq?: number;
|
|
147
147
|
signal?: AbortSignal;
|
|
148
148
|
}): Promise<HistoricalMessage[]>;
|
|
149
|
+
/** Create a thread under a parent group. POST /v1/bot/groups/{groupNo}/threads */
|
|
150
|
+
export declare function createThread(params: {
|
|
151
|
+
apiUrl: string;
|
|
152
|
+
botToken: string;
|
|
153
|
+
groupNo: string;
|
|
154
|
+
name: string;
|
|
155
|
+
/** Optional: anchor the thread to the message it was started from. Accepted as
|
|
156
|
+
* a string to stay int64-safe, but emitted on the wire as a bare JSON number
|
|
157
|
+
* (the server rejects a quoted value); see rawInt64. */
|
|
158
|
+
sourceMessageId?: string;
|
|
159
|
+
signal?: AbortSignal;
|
|
160
|
+
}): Promise<Thread | undefined>;
|
|
161
|
+
/** List threads under a parent group. GET /v1/bot/groups/{groupNo}/threads */
|
|
162
|
+
export declare function listThreads(params: {
|
|
163
|
+
apiUrl: string;
|
|
164
|
+
botToken: string;
|
|
165
|
+
groupNo: string;
|
|
166
|
+
signal?: AbortSignal;
|
|
167
|
+
}): Promise<Thread[]>;
|
|
168
|
+
/** Get a single thread. GET /v1/bot/groups/{groupNo}/threads/{shortId} */
|
|
169
|
+
export declare function getThread(params: {
|
|
170
|
+
apiUrl: string;
|
|
171
|
+
botToken: string;
|
|
172
|
+
groupNo: string;
|
|
173
|
+
shortId: string;
|
|
174
|
+
signal?: AbortSignal;
|
|
175
|
+
}): Promise<Thread>;
|
|
176
|
+
/** Delete a thread. DELETE /v1/bot/groups/{groupNo}/threads/{shortId} */
|
|
177
|
+
export declare function deleteThread(params: {
|
|
178
|
+
apiUrl: string;
|
|
179
|
+
botToken: string;
|
|
180
|
+
groupNo: string;
|
|
181
|
+
shortId: string;
|
|
182
|
+
signal?: AbortSignal;
|
|
183
|
+
}): Promise<void>;
|
|
184
|
+
/** List a thread's members. GET /v1/bot/groups/{groupNo}/threads/{shortId}/members */
|
|
185
|
+
export declare function listThreadMembers(params: {
|
|
186
|
+
apiUrl: string;
|
|
187
|
+
botToken: string;
|
|
188
|
+
groupNo: string;
|
|
189
|
+
shortId: string;
|
|
190
|
+
signal?: AbortSignal;
|
|
191
|
+
}): Promise<ThreadMember[]>;
|
|
192
|
+
/** Join a thread. POST /v1/bot/groups/{groupNo}/threads/{shortId}/join */
|
|
193
|
+
export declare function joinThread(params: {
|
|
194
|
+
apiUrl: string;
|
|
195
|
+
botToken: string;
|
|
196
|
+
groupNo: string;
|
|
197
|
+
shortId: string;
|
|
198
|
+
signal?: AbortSignal;
|
|
199
|
+
}): Promise<void>;
|
|
200
|
+
/** Leave a thread. POST /v1/bot/groups/{groupNo}/threads/{shortId}/leave */
|
|
201
|
+
export declare function leaveThread(params: {
|
|
202
|
+
apiUrl: string;
|
|
203
|
+
botToken: string;
|
|
204
|
+
groupNo: string;
|
|
205
|
+
shortId: string;
|
|
206
|
+
signal?: AbortSignal;
|
|
207
|
+
}): Promise<void>;
|
|
208
|
+
/** Server GROUP.md payload returned by GET /v1/bot/groups/{groupNo}/md. */
|
|
209
|
+
export interface GroupMd {
|
|
210
|
+
content: string;
|
|
211
|
+
version: number;
|
|
212
|
+
updated_at: string | null;
|
|
213
|
+
updated_by: string;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Fetch a group's server-side GROUP.md. GET /v1/bot/groups/{groupNo}/md.
|
|
217
|
+
*
|
|
218
|
+
* Throws on any non-2xx (including 404 "no GROUP.md set") — the caller decides
|
|
219
|
+
* how to degrade. The server-first fetch orchestrator (group-md.ts) catches and
|
|
220
|
+
* falls back to the local instruction file, so a 404 cleanly downgrades to local.
|
|
221
|
+
*/
|
|
222
|
+
export declare function getGroupMd(params: {
|
|
223
|
+
apiUrl: string;
|
|
224
|
+
botToken: string;
|
|
225
|
+
groupNo: string;
|
|
226
|
+
signal?: AbortSignal;
|
|
227
|
+
}): Promise<GroupMd>;
|
|
228
|
+
/**
|
|
229
|
+
* Update a group's server-side GROUP.md (requires bot_admin permission).
|
|
230
|
+
* PUT /v1/bot/groups/{groupNo}/md, body `{ content }` → `{ version }`.
|
|
231
|
+
*
|
|
232
|
+
* NOTE (P2-A scope): this client function is restored alongside getGroupMd, but
|
|
233
|
+
* is intentionally NOT wired into any write-back path here — the PUT trigger
|
|
234
|
+
* chain is owned by a separate work item. Mirrors postJson's timeout, Bearer
|
|
235
|
+
* auth and error-message format.
|
|
236
|
+
*/
|
|
237
|
+
export declare function updateGroupMd(params: {
|
|
238
|
+
apiUrl: string;
|
|
239
|
+
botToken: string;
|
|
240
|
+
groupNo: string;
|
|
241
|
+
content: string;
|
|
242
|
+
signal?: AbortSignal;
|
|
243
|
+
}): Promise<{
|
|
244
|
+
version: number;
|
|
245
|
+
}>;
|
package/dist/octo/api.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
// Forked from openclaw-channel-octo v1.0.13 (2026-06-04)
|
|
2
2
|
// Source: https://github.com/Mininglamp-OSS/openclaw-channel-octo
|
|
3
|
-
// Removed: COS upload,
|
|
3
|
+
// Removed: COS upload, OBO, rich text, media, group management,
|
|
4
4
|
// read receipts, bot groups list, group info, mention prefs, space members.
|
|
5
|
+
// Restored: thread lifecycle (create/list/get/delete/members/join/leave) — see
|
|
6
|
+
// "Thread Lifecycle" section below; GROUP.md server API (get/update) —
|
|
7
|
+
// see "Group Markdown (GROUP.md)" section below.
|
|
5
8
|
import { MessageType, } from "./types.js";
|
|
6
9
|
import { randomUUID } from "node:crypto";
|
|
7
10
|
const DEFAULT_TIMEOUT_MS = 30_000;
|
|
@@ -322,4 +325,136 @@ export async function getChannelMessages(params) {
|
|
|
322
325
|
return [];
|
|
323
326
|
}
|
|
324
327
|
}
|
|
328
|
+
// ─── Thread Lifecycle ────────────────────────────────────────────────────────
|
|
329
|
+
//
|
|
330
|
+
// Restores the bot thread (CommunityTopic) lifecycle endpoints that were removed
|
|
331
|
+
// at fork time (see file header). Path / method / auth are a verbatim restore of
|
|
332
|
+
// openclaw-channel-octo api-fetch.ts (createThread … leaveThread); each call is
|
|
333
|
+
// routed through this client's postJson/getJson/requestNoBody helpers so it
|
|
334
|
+
// shares the same timeout, Bearer auth, int64-safe JSON parse, and error-message
|
|
335
|
+
// format as the rest of the API surface.
|
|
336
|
+
/**
|
|
337
|
+
* Issue a request that carries neither a request body nor a meaningful response
|
|
338
|
+
* body (thread delete / join / leave). Mirrors postJson's timeout, Bearer auth,
|
|
339
|
+
* and error-message format. A 2xx with an empty body resolves to void.
|
|
340
|
+
*/
|
|
341
|
+
async function requestNoBody(apiUrl, botToken, method, path, signal) {
|
|
342
|
+
const url = `${apiUrl.replace(/\/+$/, "")}${path}`;
|
|
343
|
+
const effectiveSignal = signal ?? AbortSignal.timeout(DEFAULT_TIMEOUT_MS);
|
|
344
|
+
const resp = await fetch(url, {
|
|
345
|
+
method,
|
|
346
|
+
headers: { Authorization: `Bearer ${botToken}` },
|
|
347
|
+
signal: effectiveSignal,
|
|
348
|
+
});
|
|
349
|
+
if (!resp.ok) {
|
|
350
|
+
const text = await resp.text().catch(() => "");
|
|
351
|
+
throw new Error(`Octo API ${path} failed (${resp.status}): ${text || resp.statusText}`);
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
/**
|
|
355
|
+
* Serialize an int64 id (e.g. a snowflake message id) into a request body as a
|
|
356
|
+
* *bare JSON number* with full precision preserved.
|
|
357
|
+
*
|
|
358
|
+
* The Octo backend requires `source_message_id` to be a JSON number — a quoted
|
|
359
|
+
* string is rejected with 400 request_invalid. But a 19-digit snowflake exceeds
|
|
360
|
+
* Number.MAX_SAFE_INTEGER (2^53-1), so the value must never pass through a JS
|
|
361
|
+
* `number`, which would silently truncate it. We therefore keep it as a string
|
|
362
|
+
* end-to-end and hand it to JSON.stringify verbatim via JSON.rawJSON (Node >=21),
|
|
363
|
+
* yielding wire JSON such as `"source_message_id":2071497871135346688`.
|
|
364
|
+
*
|
|
365
|
+
* JSON.rawJSON is not in the ES2022 lib typings yet, so it is accessed through a
|
|
366
|
+
* narrow cast rather than `any`.
|
|
367
|
+
*/
|
|
368
|
+
function rawInt64(value) {
|
|
369
|
+
if (!/^-?[0-9]+$/.test(value)) {
|
|
370
|
+
throw new Error(`int64 id must be a base-10 integer string, got: ${value}`);
|
|
371
|
+
}
|
|
372
|
+
return JSON.rawJSON(value);
|
|
373
|
+
}
|
|
374
|
+
/** Create a thread under a parent group. POST /v1/bot/groups/{groupNo}/threads */
|
|
375
|
+
export async function createThread(params) {
|
|
376
|
+
const body = { name: params.name };
|
|
377
|
+
if (params.sourceMessageId != null)
|
|
378
|
+
body.source_message_id = rawInt64(params.sourceMessageId);
|
|
379
|
+
return await postJson(params.apiUrl, params.botToken, `/v1/bot/groups/${encodeURIComponent(params.groupNo)}/threads`, body, params.signal);
|
|
380
|
+
}
|
|
381
|
+
/** List threads under a parent group. GET /v1/bot/groups/{groupNo}/threads */
|
|
382
|
+
export async function listThreads(params) {
|
|
383
|
+
const data = await getJson(params.apiUrl, params.botToken, `/v1/bot/groups/${encodeURIComponent(params.groupNo)}/threads`, params.signal);
|
|
384
|
+
// Tolerate both a bare array and a `{ threads: [...] }` envelope, mirroring
|
|
385
|
+
// getGroupMembers' defensive shape handling.
|
|
386
|
+
const threads = Array.isArray(data?.threads)
|
|
387
|
+
? data.threads
|
|
388
|
+
: Array.isArray(data)
|
|
389
|
+
? data
|
|
390
|
+
: [];
|
|
391
|
+
return threads;
|
|
392
|
+
}
|
|
393
|
+
/** Get a single thread. GET /v1/bot/groups/{groupNo}/threads/{shortId} */
|
|
394
|
+
export async function getThread(params) {
|
|
395
|
+
return await getJson(params.apiUrl, params.botToken, `/v1/bot/groups/${encodeURIComponent(params.groupNo)}/threads/${encodeURIComponent(params.shortId)}`, params.signal);
|
|
396
|
+
}
|
|
397
|
+
/** Delete a thread. DELETE /v1/bot/groups/{groupNo}/threads/{shortId} */
|
|
398
|
+
export async function deleteThread(params) {
|
|
399
|
+
await requestNoBody(params.apiUrl, params.botToken, "DELETE", `/v1/bot/groups/${encodeURIComponent(params.groupNo)}/threads/${encodeURIComponent(params.shortId)}`, params.signal);
|
|
400
|
+
}
|
|
401
|
+
/** List a thread's members. GET /v1/bot/groups/{groupNo}/threads/{shortId}/members */
|
|
402
|
+
export async function listThreadMembers(params) {
|
|
403
|
+
const data = await getJson(params.apiUrl, params.botToken, `/v1/bot/groups/${encodeURIComponent(params.groupNo)}/threads/${encodeURIComponent(params.shortId)}/members`, params.signal);
|
|
404
|
+
const members = Array.isArray(data?.members)
|
|
405
|
+
? data.members
|
|
406
|
+
: Array.isArray(data)
|
|
407
|
+
? data
|
|
408
|
+
: [];
|
|
409
|
+
return members;
|
|
410
|
+
}
|
|
411
|
+
/** Join a thread. POST /v1/bot/groups/{groupNo}/threads/{shortId}/join */
|
|
412
|
+
export async function joinThread(params) {
|
|
413
|
+
await requestNoBody(params.apiUrl, params.botToken, "POST", `/v1/bot/groups/${encodeURIComponent(params.groupNo)}/threads/${encodeURIComponent(params.shortId)}/join`, params.signal);
|
|
414
|
+
}
|
|
415
|
+
/** Leave a thread. POST /v1/bot/groups/{groupNo}/threads/{shortId}/leave */
|
|
416
|
+
export async function leaveThread(params) {
|
|
417
|
+
await requestNoBody(params.apiUrl, params.botToken, "POST", `/v1/bot/groups/${encodeURIComponent(params.groupNo)}/threads/${encodeURIComponent(params.shortId)}/leave`, params.signal);
|
|
418
|
+
}
|
|
419
|
+
/**
|
|
420
|
+
* Fetch a group's server-side GROUP.md. GET /v1/bot/groups/{groupNo}/md.
|
|
421
|
+
*
|
|
422
|
+
* Throws on any non-2xx (including 404 "no GROUP.md set") — the caller decides
|
|
423
|
+
* how to degrade. The server-first fetch orchestrator (group-md.ts) catches and
|
|
424
|
+
* falls back to the local instruction file, so a 404 cleanly downgrades to local.
|
|
425
|
+
*/
|
|
426
|
+
export async function getGroupMd(params) {
|
|
427
|
+
return await getJson(params.apiUrl, params.botToken, `/v1/bot/groups/${encodeURIComponent(params.groupNo)}/md`, params.signal);
|
|
428
|
+
}
|
|
429
|
+
/**
|
|
430
|
+
* Update a group's server-side GROUP.md (requires bot_admin permission).
|
|
431
|
+
* PUT /v1/bot/groups/{groupNo}/md, body `{ content }` → `{ version }`.
|
|
432
|
+
*
|
|
433
|
+
* NOTE (P2-A scope): this client function is restored alongside getGroupMd, but
|
|
434
|
+
* is intentionally NOT wired into any write-back path here — the PUT trigger
|
|
435
|
+
* chain is owned by a separate work item. Mirrors postJson's timeout, Bearer
|
|
436
|
+
* auth and error-message format.
|
|
437
|
+
*/
|
|
438
|
+
export async function updateGroupMd(params) {
|
|
439
|
+
const path = `/v1/bot/groups/${encodeURIComponent(params.groupNo)}/md`;
|
|
440
|
+
const url = `${params.apiUrl.replace(/\/+$/, "")}${path}`;
|
|
441
|
+
const effectiveSignal = params.signal ?? AbortSignal.timeout(DEFAULT_TIMEOUT_MS);
|
|
442
|
+
const resp = await fetch(url, {
|
|
443
|
+
method: "PUT",
|
|
444
|
+
headers: {
|
|
445
|
+
...DEFAULT_HEADERS,
|
|
446
|
+
Authorization: `Bearer ${params.botToken}`,
|
|
447
|
+
},
|
|
448
|
+
body: JSON.stringify({ content: params.content }),
|
|
449
|
+
signal: effectiveSignal,
|
|
450
|
+
});
|
|
451
|
+
if (!resp.ok) {
|
|
452
|
+
const text = await resp.text().catch(() => "");
|
|
453
|
+
throw new Error(`Octo API ${path} failed (${resp.status}): ${text || resp.statusText}`);
|
|
454
|
+
}
|
|
455
|
+
const text = await resp.text();
|
|
456
|
+
if (!text)
|
|
457
|
+
return { version: 0 };
|
|
458
|
+
return parseOctoJson(text);
|
|
459
|
+
}
|
|
325
460
|
//# sourceMappingURL=api.js.map
|
package/dist/octo/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/octo/api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/octo/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CommunityTopic (thread) channel-id helpers.
|
|
3
|
+
*
|
|
4
|
+
* Octo encodes a thread's channel_id as `<groupNo>____<shortId>` — the parent
|
|
5
|
+
* group number, four underscores, then the thread short id. A plain group's
|
|
6
|
+
* channel_id has no separator. These pure functions are the single place that
|
|
7
|
+
* knows the composite format, so callers that need the parent group number
|
|
8
|
+
* (e.g. roster / @-mention lookups that must hit `/groups/{groupNo}/members`)
|
|
9
|
+
* or the thread short id never re-implement the split and drift apart.
|
|
10
|
+
*
|
|
11
|
+
* Splitting always uses the FIRST `____` occurrence (`indexOf`), so a shortId
|
|
12
|
+
* that itself contains the separator stays intact on the right-hand side.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Separator between parent group_no and thread short_id in Octo's
|
|
16
|
+
* CommunityTopic channel-id format (`<groupNo>____<shortId>`, 4 underscores).
|
|
17
|
+
*/
|
|
18
|
+
export declare const THREAD_ID_SEPARATOR = "____";
|
|
19
|
+
/**
|
|
20
|
+
* Extract the parent group number from a channelId.
|
|
21
|
+
* Thread channelId format: "groupNo____shortId" → "groupNo".
|
|
22
|
+
* Group channelId format: "groupNo" → "groupNo" (returned unchanged).
|
|
23
|
+
*/
|
|
24
|
+
export declare function extractParentGroupNo(channelId: string): string;
|
|
25
|
+
/**
|
|
26
|
+
* Extract the thread shortId from a channelId.
|
|
27
|
+
* Only thread channelIds contain a shortId; group channelIds return null.
|
|
28
|
+
*
|
|
29
|
+
* Edge case: if channelId ends with "____" (no shortId portion), returns null.
|
|
30
|
+
* Callers that require a non-empty shortId should check for falsy values.
|
|
31
|
+
*/
|
|
32
|
+
export declare function extractThreadShortId(channelId: string): string | null;
|
|
33
|
+
/**
|
|
34
|
+
* Check if a channelId is a thread (CommunityTopic) composite id.
|
|
35
|
+
*/
|
|
36
|
+
export declare function isThreadChannelId(channelId: string): boolean;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
// Forked from openclaw-channel-octo v1.0.13 (2026-06-04)
|
|
2
|
+
// Source: https://github.com/Mininglamp-OSS/openclaw-channel-octo
|
|
3
|
+
// - constants.ts (THREAD_ID_SEPARATOR)
|
|
4
|
+
// - group-md.ts (extractParentGroupNo / extractThreadShortId / isThreadChannelId)
|
|
5
|
+
/**
|
|
6
|
+
* CommunityTopic (thread) channel-id helpers.
|
|
7
|
+
*
|
|
8
|
+
* Octo encodes a thread's channel_id as `<groupNo>____<shortId>` — the parent
|
|
9
|
+
* group number, four underscores, then the thread short id. A plain group's
|
|
10
|
+
* channel_id has no separator. These pure functions are the single place that
|
|
11
|
+
* knows the composite format, so callers that need the parent group number
|
|
12
|
+
* (e.g. roster / @-mention lookups that must hit `/groups/{groupNo}/members`)
|
|
13
|
+
* or the thread short id never re-implement the split and drift apart.
|
|
14
|
+
*
|
|
15
|
+
* Splitting always uses the FIRST `____` occurrence (`indexOf`), so a shortId
|
|
16
|
+
* that itself contains the separator stays intact on the right-hand side.
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* Separator between parent group_no and thread short_id in Octo's
|
|
20
|
+
* CommunityTopic channel-id format (`<groupNo>____<shortId>`, 4 underscores).
|
|
21
|
+
*/
|
|
22
|
+
export const THREAD_ID_SEPARATOR = "____";
|
|
23
|
+
/**
|
|
24
|
+
* Extract the parent group number from a channelId.
|
|
25
|
+
* Thread channelId format: "groupNo____shortId" → "groupNo".
|
|
26
|
+
* Group channelId format: "groupNo" → "groupNo" (returned unchanged).
|
|
27
|
+
*/
|
|
28
|
+
export function extractParentGroupNo(channelId) {
|
|
29
|
+
const sep = channelId.indexOf(THREAD_ID_SEPARATOR);
|
|
30
|
+
return sep >= 0 ? channelId.slice(0, sep) : channelId;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Extract the thread shortId from a channelId.
|
|
34
|
+
* Only thread channelIds contain a shortId; group channelIds return null.
|
|
35
|
+
*
|
|
36
|
+
* Edge case: if channelId ends with "____" (no shortId portion), returns null.
|
|
37
|
+
* Callers that require a non-empty shortId should check for falsy values.
|
|
38
|
+
*/
|
|
39
|
+
export function extractThreadShortId(channelId) {
|
|
40
|
+
const sep = channelId.indexOf(THREAD_ID_SEPARATOR);
|
|
41
|
+
if (sep < 0)
|
|
42
|
+
return null;
|
|
43
|
+
const id = channelId.slice(sep + THREAD_ID_SEPARATOR.length);
|
|
44
|
+
return id || null;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Check if a channelId is a thread (CommunityTopic) composite id.
|
|
48
|
+
*/
|
|
49
|
+
export function isThreadChannelId(channelId) {
|
|
50
|
+
return channelId.includes(THREAD_ID_SEPARATOR);
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=channel-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel-id.js","sourceRoot":"","sources":["../../src/octo/channel-id.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,kEAAkE;AAClE,yCAAyC;AACzC,oFAAoF;AAEpF;;;;;;;;;;;;GAYG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAE1C;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAAiB;IACpD,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACnD,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACxD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAAiB;IACpD,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACnD,IAAI,GAAG,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC7D,OAAO,EAAE,IAAI,IAAI,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAiB;IACjD,OAAO,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;AACjD,CAAC"}
|
package/dist/octo/types.d.ts
CHANGED
|
@@ -83,6 +83,28 @@ export declare enum ChannelType {
|
|
|
83
83
|
Group = 2,
|
|
84
84
|
CommunityTopic = 5
|
|
85
85
|
}
|
|
86
|
+
/**
|
|
87
|
+
* A thread (CommunityTopic) under a parent group, as returned by the Octo bot
|
|
88
|
+
* thread lifecycle endpoints. A thread's channel_id is the composite
|
|
89
|
+
* `<groupNo>____<shortId>` (see octo/channel-id.ts).
|
|
90
|
+
*/
|
|
91
|
+
export interface Thread {
|
|
92
|
+
/** Thread short id; the right-hand side of the composite channel_id. */
|
|
93
|
+
short_id: string;
|
|
94
|
+
name: string;
|
|
95
|
+
/** uid of the member who created the thread. */
|
|
96
|
+
creator_uid: string;
|
|
97
|
+
/** Lifecycle status flag (server-defined). Absent on the create response. */
|
|
98
|
+
status?: number;
|
|
99
|
+
/** Current member count. Present on getThread. */
|
|
100
|
+
member_count?: number;
|
|
101
|
+
}
|
|
102
|
+
/** A single member of a thread, as returned by listThreadMembers. */
|
|
103
|
+
export interface ThreadMember {
|
|
104
|
+
uid: string;
|
|
105
|
+
/** Member role within the thread (server-defined). */
|
|
106
|
+
role: number;
|
|
107
|
+
}
|
|
86
108
|
/** Message content types */
|
|
87
109
|
export declare enum MessageType {
|
|
88
110
|
Text = 1,
|
package/dist/octo/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/octo/types.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,kEAAkE;AAyFlE,oBAAoB;AACpB,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,yCAAM,CAAA;IACN,+CAAS,CAAA;IACT,iEAAkB,CAAA;AACpB,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/octo/types.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,kEAAkE;AAyFlE,oBAAoB;AACpB,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,yCAAM,CAAA;IACN,+CAAS,CAAA;IACT,iEAAkB,CAAA;AACpB,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB;AA0BD,4BAA4B;AAC5B,MAAM,CAAN,IAAY,WAYX;AAZD,WAAY,WAAW;IACrB,6CAAQ,CAAA;IACR,+CAAS,CAAA;IACT,2CAAO,CAAA;IACP,+CAAS,CAAA;IACT,+CAAS,CAAA;IACT,qDAAY,CAAA;IACZ,6CAAQ,CAAA;IACR,6CAAQ,CAAA;IACR,oEAAoB,CAAA;IACpB,sEAAsE;IACtE,sDAAa,CAAA;AACf,CAAC,EAZW,WAAW,KAAX,WAAW,QAYtB;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC;AAC3C,MAAM,CAAC,MAAM,qBAAqB,GAAG,OAAO,CAAC;AAE7C,2EAA2E;AAC3E,MAAM,CAAC,MAAM,2BAA2B,GAAG,MAAM,CAAC"}
|
package/dist/prompt-safety.d.ts
CHANGED
|
@@ -42,6 +42,26 @@ export declare const CURRENT_MESSAGE_ANCHOR = "[Current message \u2014 respond t
|
|
|
42
42
|
* `fallback` if nothing survives.
|
|
43
43
|
*/
|
|
44
44
|
export declare function sanitizeDisplayName(name: unknown, fallback?: string): string;
|
|
45
|
+
/**
|
|
46
|
+
* Format a sender label for prompt display: `name(uid)` when a name is present,
|
|
47
|
+
* otherwise the bare `uid`. Both fields go through sanitizeDisplayName so a
|
|
48
|
+
* user-controlled name (or, defensively, uid) cannot inject brackets, colons,
|
|
49
|
+
* or line breaks that would forge a role/section boundary. Mirrors
|
|
50
|
+
* openclaw-channel-octo's buildSenderPrefix — the shared convention across
|
|
51
|
+
* both Octo channel adapters, so a Claude-Code / Claw agent sees the same
|
|
52
|
+
* `name(uid)` shape whether the transport is cc-channel-octo or
|
|
53
|
+
* openclaw-channel-octo.
|
|
54
|
+
*
|
|
55
|
+
* Used at two sites:
|
|
56
|
+
* 1. The `[Current message — respond to this ONLY]` anchor body in
|
|
57
|
+
* index.ts, so the bot can tell WHO sent the request being replied to
|
|
58
|
+
* (previously the current message was anonymous, forcing the model to
|
|
59
|
+
* guess from context).
|
|
60
|
+
* 2. Each line of the `[Recent group messages]` block in group-context.ts,
|
|
61
|
+
* so the historical background carries uid too — the two blocks now
|
|
62
|
+
* agree on identity semantics.
|
|
63
|
+
*/
|
|
64
|
+
export declare function formatSenderLabel(fromUid: unknown, fromName: unknown): string;
|
|
45
65
|
/**
|
|
46
66
|
* Escape a line-leading role label in user-authored CONTENT so it renders as
|
|
47
67
|
* literal text inside its turn rather than forging a new turn boundary:
|
package/dist/prompt-safety.js
CHANGED
|
@@ -107,6 +107,30 @@ export function sanitizeDisplayName(name, fallback = '') {
|
|
|
107
107
|
.trim();
|
|
108
108
|
return cleaned.length > 0 ? cleaned : fallback;
|
|
109
109
|
}
|
|
110
|
+
/**
|
|
111
|
+
* Format a sender label for prompt display: `name(uid)` when a name is present,
|
|
112
|
+
* otherwise the bare `uid`. Both fields go through sanitizeDisplayName so a
|
|
113
|
+
* user-controlled name (or, defensively, uid) cannot inject brackets, colons,
|
|
114
|
+
* or line breaks that would forge a role/section boundary. Mirrors
|
|
115
|
+
* openclaw-channel-octo's buildSenderPrefix — the shared convention across
|
|
116
|
+
* both Octo channel adapters, so a Claude-Code / Claw agent sees the same
|
|
117
|
+
* `name(uid)` shape whether the transport is cc-channel-octo or
|
|
118
|
+
* openclaw-channel-octo.
|
|
119
|
+
*
|
|
120
|
+
* Used at two sites:
|
|
121
|
+
* 1. The `[Current message — respond to this ONLY]` anchor body in
|
|
122
|
+
* index.ts, so the bot can tell WHO sent the request being replied to
|
|
123
|
+
* (previously the current message was anonymous, forcing the model to
|
|
124
|
+
* guess from context).
|
|
125
|
+
* 2. Each line of the `[Recent group messages]` block in group-context.ts,
|
|
126
|
+
* so the historical background carries uid too — the two blocks now
|
|
127
|
+
* agree on identity semantics.
|
|
128
|
+
*/
|
|
129
|
+
export function formatSenderLabel(fromUid, fromName) {
|
|
130
|
+
const uid = sanitizeDisplayName(fromUid, 'unknown');
|
|
131
|
+
const name = sanitizeDisplayName(fromName, '');
|
|
132
|
+
return name.length > 0 ? `${name}(${uid})` : uid;
|
|
133
|
+
}
|
|
110
134
|
/**
|
|
111
135
|
* Escape a line-leading role label in user-authored CONTENT so it renders as
|
|
112
136
|
* literal text inside its turn rather than forging a new turn boundary:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-safety.js","sourceRoot":"","sources":["../src/prompt-safety.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,qEAAqE;AACrE,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,iBAAiB,GACrB,8PAA8P,CAAC;AAEjQ;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,+CAA+C,CAAC;AAEtF;;;;;;;;;;GAUG;AACH,MAAM,aAAa,GACjB,uDAAuD,CAAC;AAE1D,iFAAiF;AACjF,MAAM,cAAc,GAAG,kCAAkC,CAAC;AAE1D;;;;GAIG;AACH,MAAM,oBAAoB,GAAG,eAAe,CAAC;AAE7C,SAAS,mBAAmB,CAAC,IAAY;IACvC,OAAO,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;AAClD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAa,EAAE,QAAQ,GAAG,EAAE;IAC9D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;SAC/B,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;SAC5B,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC;SAC9B,IAAI,EAAE,CAAC;IACV,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;AACjD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,EAAU,EAAE,KAAa,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,EAAE,CAAC,CAAC;AACnH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,+EAA+E;IAC/E,iFAAiF;IACjF,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC,OAAO,CACtC,iBAAiB,EACjB,CAAC,EAAE,EAAE,EAAU,EAAE,KAAa,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,GAAG,CACvD,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,oBAAoB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;AACtD,CAAC;AAWD,uFAAuF;AACvF,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,OAAO,kBAAkB,CAAC,IAAI,CAAa,CAAC;AAC9C,CAAC;AAED,2HAA2H;AAC3H,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,oBAAoB,CAAC,IAAI,CAAa,CAAC;AAChD,CAAC;AAED,8KAA8K;AAC9K,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,IAAgB,CAAC;AAC1B,CAAC"}
|
|
1
|
+
{"version":3,"file":"prompt-safety.js","sourceRoot":"","sources":["../src/prompt-safety.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,qEAAqE;AACrE,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,iBAAiB,GACrB,8PAA8P,CAAC;AAEjQ;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,+CAA+C,CAAC;AAEtF;;;;;;;;;;GAUG;AACH,MAAM,aAAa,GACjB,uDAAuD,CAAC;AAE1D,iFAAiF;AACjF,MAAM,cAAc,GAAG,kCAAkC,CAAC;AAE1D;;;;GAIG;AACH,MAAM,oBAAoB,GAAG,eAAe,CAAC;AAE7C,SAAS,mBAAmB,CAAC,IAAY;IACvC,OAAO,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;AAClD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAa,EAAE,QAAQ,GAAG,EAAE;IAC9D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;SAC/B,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;SAC5B,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC;SAC9B,IAAI,EAAE,CAAC;IACV,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;AACjD,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAgB,EAAE,QAAiB;IACnE,MAAM,GAAG,GAAG,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,mBAAmB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC/C,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AACnD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,EAAU,EAAE,KAAa,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,EAAE,CAAC,CAAC;AACnH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,+EAA+E;IAC/E,iFAAiF;IACjF,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC,OAAO,CACtC,iBAAiB,EACjB,CAAC,EAAE,EAAE,EAAU,EAAE,KAAa,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,GAAG,CACvD,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,oBAAoB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;AACtD,CAAC;AAWD,uFAAuF;AACvF,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,OAAO,kBAAkB,CAAC,IAAI,CAAa,CAAC;AAC9C,CAAC;AAED,2HAA2H;AAC3H,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,oBAAoB,CAAC,IAAI,CAAa,CAAC;AAChD,CAAC;AAED,8KAA8K;AAC9K,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,IAAgB,CAAC;AAC1B,CAAC"}
|
package/dist/session-router.d.ts
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import type { Config } from './config.js';
|
|
5
5
|
import type { BotMessage } from './octo/types.js';
|
|
6
|
+
import type { GroupMdCache } from './group-md-cache.js';
|
|
6
7
|
export interface RouteResult {
|
|
7
8
|
sessionKey: string;
|
|
8
9
|
shouldProcess: boolean;
|
|
@@ -42,7 +43,14 @@ export declare class SessionRouter {
|
|
|
42
43
|
* extended via registerKnownBot() for future multi-bot deployments.
|
|
43
44
|
*/
|
|
44
45
|
private readonly knownBotUids;
|
|
45
|
-
|
|
46
|
+
/**
|
|
47
|
+
* P2-B: in-memory server GROUP.md cache (A's P2-A cache). Held so a GROUP.md
|
|
48
|
+
* change event can invalidate the affected group's entry, forcing the next
|
|
49
|
+
* turn to re-fetch the authoritative copy. Optional — omitted (or with
|
|
50
|
+
* `serverMd` off) the event path is a harmless no-op.
|
|
51
|
+
*/
|
|
52
|
+
private readonly groupMdCache?;
|
|
53
|
+
constructor(config: Config, robotId: string, ownerUid?: string, groupMdCache?: GroupMdCache);
|
|
46
54
|
/** G14: register another known bot uid (future multi-bot support). */
|
|
47
55
|
registerKnownBot(uid: string): void;
|
|
48
56
|
/**
|
|
@@ -130,6 +138,32 @@ export declare class SessionRouter {
|
|
|
130
138
|
* inbound messages never carry the marker.
|
|
131
139
|
*/
|
|
132
140
|
private isCronFire;
|
|
141
|
+
/**
|
|
142
|
+
* P2-B: react to a server system event that signals a GROUP.md change by
|
|
143
|
+
* invalidating that group's cached server GROUP.md, so the next turn re-fetches
|
|
144
|
+
* the authoritative copy over the authenticated bot token (never trusting the
|
|
145
|
+
* event payload as the new content — see group-md-events.ts for the
|
|
146
|
+
* forged-event poisoning rationale). Non-md system events (join/leave, etc.)
|
|
147
|
+
* match nothing here and fall through to the caller's `return null`, so they
|
|
148
|
+
* are dropped exactly as before.
|
|
149
|
+
*
|
|
150
|
+
* Gated on `serverMd`: with the flag off the cache is never populated, so there
|
|
151
|
+
* is nothing to invalidate. Best-effort and never throws — a malformed event
|
|
152
|
+
* must not wedge the router (the caller drops the event regardless).
|
|
153
|
+
*
|
|
154
|
+
* The group is identified from the event's `group_no`: these events are
|
|
155
|
+
* delivered on a system/DM channel (a group event on the group's own channel
|
|
156
|
+
* dies at the mention gate above, never reaching here — XIN-173), so the
|
|
157
|
+
* arriving `channel_id` is the sender, not the group. The channel is only a
|
|
158
|
+
* fallback when `group_no` is absent AND the event happens to have arrived on a
|
|
159
|
+
* group-like channel (e.g. a mention-free group, the one group path that
|
|
160
|
+
* reaches this point). Using the event-supplied `group_no` is safe despite the
|
|
161
|
+
* event being untrusted: invalidation is non-destructive — the worst a forged
|
|
162
|
+
* event can do is force a redundant authenticated re-fetch of the real value,
|
|
163
|
+
* never inject content (the new GROUP.md is always re-fetched, never read from
|
|
164
|
+
* the event body — see group-md-events.ts).
|
|
165
|
+
*/
|
|
166
|
+
private handleGroupMdEvent;
|
|
133
167
|
private processMessage;
|
|
134
168
|
/**
|
|
135
169
|
* G20 fix: Check all three rate limits (global, per-session, per-user) in
|