@mininglamp-oss/cc-channel-octo 1.0.3-dev.6401c0b → 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 +6 -1
- package/dist/agent-bridge.js +6 -1
- package/dist/agent-bridge.js.map +1 -1
- package/dist/config.d.ts +39 -0
- package/dist/config.js +4 -0
- package/dist/config.js.map +1 -1
- package/dist/group-context.d.ts +18 -0
- package/dist/group-context.js +77 -6
- package/dist/group-context.js.map +1 -1
- 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/index.d.ts +2 -1
- package/dist/index.js +70 -10
- package/dist/index.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/package.json +1 -1
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* P2-C: GROUP.md write-back tool — an in-process MCP server letting the agent
|
|
3
|
+
* persist an updated GROUP.md back to the server. The tool surfaces to the model
|
|
4
|
+
* as `mcp__group_md__update_group_md`.
|
|
5
|
+
*
|
|
6
|
+
* The server is built PER TURN (`createGroupMdToolServer`) with the current
|
|
7
|
+
* message's channel coords + the bot owner uid, so:
|
|
8
|
+
* - the write targets the PARENT group of the channel the agent is in
|
|
9
|
+
* (`extractParentGroupNo` — a thread shares its parent group's GROUP.md);
|
|
10
|
+
* - invocation is GATED to the bot owner (registerBot.owner_uid). The group's
|
|
11
|
+
* octo_tag token has server-side write permission, but the agent is driven by
|
|
12
|
+
* untrusted IM users, so this owner gate — not LLM judgment, and independent
|
|
13
|
+
* of the token's group-role permission — is what stops a prompt-injected
|
|
14
|
+
* agent from rewriting the operator's trusted GROUP.md from any chat.
|
|
15
|
+
*
|
|
16
|
+
* Concurrency, the byte ceiling, and the cache refresh are owned by the shared
|
|
17
|
+
* {@link GroupMdWriteback} coordinator (group-md-writeback.ts); this layer is
|
|
18
|
+
* only the owner-gate policy + the MCP surface.
|
|
19
|
+
*/
|
|
20
|
+
import { z } from 'zod';
|
|
21
|
+
import { createSdkMcpServer, tool } from '@anthropic-ai/claude-agent-sdk';
|
|
22
|
+
import { extractParentGroupNo } from './octo/channel-id.js';
|
|
23
|
+
import { GroupMdContentTooLargeError, MAX_GROUP_MD_CONTENT_BYTES, } from './group-md-writeback.js';
|
|
24
|
+
/** MCP server name; the tool surfaces as `mcp__group_md__update_group_md`. */
|
|
25
|
+
export const GROUP_MD_TOOL_SERVER_NAME = 'group_md';
|
|
26
|
+
function jsonResult(value) {
|
|
27
|
+
return { content: [{ type: 'text', text: JSON.stringify(value, null, 2) }] };
|
|
28
|
+
}
|
|
29
|
+
function errResult(msg) {
|
|
30
|
+
return { content: [{ type: 'text', text: `Error: ${msg}` }], isError: true };
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Build the GROUP.md tool DEFINITIONS for one agent turn. Exported separately
|
|
34
|
+
* from the server so tests can invoke the handler directly. `coords` targets the
|
|
35
|
+
* group + supplies the caller uid; `ownerUid` is the owner gate.
|
|
36
|
+
*/
|
|
37
|
+
export function buildGroupMdTools(deps, coords, ownerUid) {
|
|
38
|
+
const isOwner = coords.fromUid === ownerUid && ownerUid !== '';
|
|
39
|
+
return [
|
|
40
|
+
tool('update_group_md', 'Persist new GROUP.md content for THIS group on the server (it becomes the ' +
|
|
41
|
+
"group's trusted operator instructions on the next turn). `content` is the " +
|
|
42
|
+
'FULL replacement document, not a diff. Hard limit: 10240 bytes UTF-8. Only ' +
|
|
43
|
+
'the bot owner may call this; a non-owner request is rejected. Last write ' +
|
|
44
|
+
'wins server-side — compose the complete updated document, do not assume a ' +
|
|
45
|
+
'concurrent edit merged.', {
|
|
46
|
+
content: z
|
|
47
|
+
.string()
|
|
48
|
+
.describe('Full replacement GROUP.md document (≤10240 bytes UTF-8).'),
|
|
49
|
+
}, async (args) => {
|
|
50
|
+
try {
|
|
51
|
+
if (!isOwner) {
|
|
52
|
+
return errResult('Only the bot owner can update GROUP.md.');
|
|
53
|
+
}
|
|
54
|
+
const groupNo = extractParentGroupNo(coords.channelId);
|
|
55
|
+
if (!groupNo) {
|
|
56
|
+
return errResult('Could not resolve a group number from this channel.');
|
|
57
|
+
}
|
|
58
|
+
// Surface a friendly over-limit message before the coordinator throws
|
|
59
|
+
// (it re-checks as the authoritative boundary; this is just for UX).
|
|
60
|
+
const bytes = Buffer.byteLength(args.content, 'utf-8');
|
|
61
|
+
if (bytes > MAX_GROUP_MD_CONTENT_BYTES) {
|
|
62
|
+
return errResult(`content is ${bytes} bytes, over the ${MAX_GROUP_MD_CONTENT_BYTES}-byte ` +
|
|
63
|
+
`UTF-8 limit — trim it before writing (the server would reject it).`);
|
|
64
|
+
}
|
|
65
|
+
const res = await deps.writeback.writeBack({
|
|
66
|
+
apiUrl: deps.apiUrl,
|
|
67
|
+
botToken: deps.botToken,
|
|
68
|
+
groupNo,
|
|
69
|
+
content: args.content,
|
|
70
|
+
});
|
|
71
|
+
return jsonResult({
|
|
72
|
+
updated: { groupNo: res.groupNo, version: res.version, bytes: res.bytes },
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
catch (err) {
|
|
76
|
+
if (err instanceof GroupMdContentTooLargeError) {
|
|
77
|
+
return errResult(`content is ${err.bytes} bytes, over the ${MAX_GROUP_MD_CONTENT_BYTES}-byte UTF-8 limit.`);
|
|
78
|
+
}
|
|
79
|
+
return errResult(err instanceof Error ? err.message : String(err));
|
|
80
|
+
}
|
|
81
|
+
}),
|
|
82
|
+
];
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Build the GROUP.md write-back MCP server for one agent turn. `coords` targets
|
|
86
|
+
* the group + supplies the caller uid; `ownerUid` is the owner gate.
|
|
87
|
+
*/
|
|
88
|
+
export function createGroupMdToolServer(deps, coords, ownerUid) {
|
|
89
|
+
return createSdkMcpServer({
|
|
90
|
+
name: GROUP_MD_TOOL_SERVER_NAME,
|
|
91
|
+
version: '1.0.0',
|
|
92
|
+
tools: buildGroupMdTools(deps, coords, ownerUid),
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=group-md-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group-md-tool.js","sourceRoot":"","sources":["../src/group-md-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GROUP.md write-back (P2-C): the app-layer coordinator that persists an
|
|
3
|
+
* agent-authored GROUP.md back to the server (PUT /v1/bot/groups/{groupNo}/md)
|
|
4
|
+
* via A's `updateGroupMd` client, then refreshes A's in-memory cache so the next
|
|
5
|
+
* resolve does not TTL-refetch a stale copy.
|
|
6
|
+
*
|
|
7
|
+
* Two server-contract facts (XIN-201, measured — NOT inferred) shape this:
|
|
8
|
+
*
|
|
9
|
+
* 1. content has a HARD ≤10240-byte (UTF-8) limit; the server answers an
|
|
10
|
+
* oversized body with 400 err.server.bot_api.content_too_large. We reject
|
|
11
|
+
* locally BEFORE the PUT so a too-large write never reaches the server.
|
|
12
|
+
*
|
|
13
|
+
* 2. `version` is a server-side monotonic counter and the PUT does NOT do
|
|
14
|
+
* compare-and-swap (last-write-wins, no CAS). Concurrent writers therefore
|
|
15
|
+
* silently clobber each other server-side. We cannot fix a foreign writer
|
|
16
|
+
* (operator console, another gateway), but we CAN guarantee that this
|
|
17
|
+
* gateway never races itself: all write-backs for the same groupNo are
|
|
18
|
+
* serialized through a per-groupNo promise-chain lock, so the read-modify-
|
|
19
|
+
* write (PUT + cache update) for one call completes before the next starts.
|
|
20
|
+
* Cross-source last-write-wins remains possible by design — see the caveat
|
|
21
|
+
* on {@link GroupMdWriteback}.
|
|
22
|
+
*
|
|
23
|
+
* Owner-gating lives in the MCP tool layer (group-md-tool.ts), not here: this
|
|
24
|
+
* module is the mechanism, the tool is the policy boundary.
|
|
25
|
+
*
|
|
26
|
+
* Never persists anything to disk — the cache it updates is the same in-memory-
|
|
27
|
+
* only cache A's resolver reads (group-md-cache.ts), so this introduces no new
|
|
28
|
+
* durable-trust surface.
|
|
29
|
+
*/
|
|
30
|
+
import { updateGroupMd } from './octo/api.js';
|
|
31
|
+
import type { GroupMdCache } from './group-md-cache.js';
|
|
32
|
+
/**
|
|
33
|
+
* Hard UTF-8 byte ceiling for GROUP.md content, per the XIN-201 measured
|
|
34
|
+
* server contract. A body above this is rejected locally (a server PUT would
|
|
35
|
+
* answer 400 err.server.bot_api.content_too_large).
|
|
36
|
+
*/
|
|
37
|
+
export declare const MAX_GROUP_MD_CONTENT_BYTES = 10240;
|
|
38
|
+
/** Thrown when content exceeds {@link MAX_GROUP_MD_CONTENT_BYTES}. */
|
|
39
|
+
export declare class GroupMdContentTooLargeError extends Error {
|
|
40
|
+
readonly bytes: number;
|
|
41
|
+
constructor(bytes: number);
|
|
42
|
+
}
|
|
43
|
+
/** The `updateGroupMd` client signature, injectable for testing. */
|
|
44
|
+
export type UpdateGroupMdFn = typeof updateGroupMd;
|
|
45
|
+
/** Outcome of a successful write-back. */
|
|
46
|
+
export interface GroupMdWriteResult {
|
|
47
|
+
groupNo: string;
|
|
48
|
+
/** Server-assigned version after the PUT. */
|
|
49
|
+
version: number;
|
|
50
|
+
/** UTF-8 byte length of the content that was written. */
|
|
51
|
+
bytes: number;
|
|
52
|
+
}
|
|
53
|
+
export interface GroupMdWriteParams {
|
|
54
|
+
apiUrl: string;
|
|
55
|
+
botToken: string;
|
|
56
|
+
groupNo: string;
|
|
57
|
+
content: string;
|
|
58
|
+
signal?: AbortSignal;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Serializes GROUP.md write-backs per groupNo and keeps A's cache in sync.
|
|
62
|
+
*
|
|
63
|
+
* Constructed ONCE per bot (alongside the GroupMdCache it updates) and shared
|
|
64
|
+
* across turns, so the per-groupNo lock actually spans concurrent agent turns —
|
|
65
|
+
* a per-turn instance would defeat the lock. The MCP tool server (built per
|
|
66
|
+
* turn) borrows this shared instance.
|
|
67
|
+
*
|
|
68
|
+
* CAVEAT (documented per XIN-201 item 4): the lock only covers THIS gateway. A
|
|
69
|
+
* write from another source (operator console, a second gateway process) is not
|
|
70
|
+
* coordinated and, because the server has no CAS, last-write-wins across sources
|
|
71
|
+
* — that is an accepted limitation, not a bug.
|
|
72
|
+
*/
|
|
73
|
+
export declare class GroupMdWriteback {
|
|
74
|
+
private readonly cache;
|
|
75
|
+
/** Injectable PUT client (defaults to the real octo client). */
|
|
76
|
+
private readonly updateFn;
|
|
77
|
+
/** Tail of the in-flight write chain per groupNo (serializes same-key writes). */
|
|
78
|
+
private readonly tails;
|
|
79
|
+
constructor(cache: GroupMdCache,
|
|
80
|
+
/** Injectable PUT client (defaults to the real octo client). */
|
|
81
|
+
updateFn?: UpdateGroupMdFn);
|
|
82
|
+
/**
|
|
83
|
+
* Run `fn` after every previously-queued op for `key` has settled, so bodies
|
|
84
|
+
* for the same key never overlap. Different keys run independently. `fn`'s
|
|
85
|
+
* rejection is surfaced to its own caller; the chain tail swallows it so a
|
|
86
|
+
* failed write does not wedge later writes.
|
|
87
|
+
*/
|
|
88
|
+
private withLock;
|
|
89
|
+
/**
|
|
90
|
+
* Persist `content` as the group's GROUP.md and refresh the cache.
|
|
91
|
+
*
|
|
92
|
+
* Rejects with {@link GroupMdContentTooLargeError} (before any server call)
|
|
93
|
+
* when content exceeds the UTF-8 byte limit; propagates the client error when
|
|
94
|
+
* the PUT itself fails (cache is left untouched in that case).
|
|
95
|
+
*/
|
|
96
|
+
writeBack(params: GroupMdWriteParams): Promise<GroupMdWriteResult>;
|
|
97
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GROUP.md write-back (P2-C): the app-layer coordinator that persists an
|
|
3
|
+
* agent-authored GROUP.md back to the server (PUT /v1/bot/groups/{groupNo}/md)
|
|
4
|
+
* via A's `updateGroupMd` client, then refreshes A's in-memory cache so the next
|
|
5
|
+
* resolve does not TTL-refetch a stale copy.
|
|
6
|
+
*
|
|
7
|
+
* Two server-contract facts (XIN-201, measured — NOT inferred) shape this:
|
|
8
|
+
*
|
|
9
|
+
* 1. content has a HARD ≤10240-byte (UTF-8) limit; the server answers an
|
|
10
|
+
* oversized body with 400 err.server.bot_api.content_too_large. We reject
|
|
11
|
+
* locally BEFORE the PUT so a too-large write never reaches the server.
|
|
12
|
+
*
|
|
13
|
+
* 2. `version` is a server-side monotonic counter and the PUT does NOT do
|
|
14
|
+
* compare-and-swap (last-write-wins, no CAS). Concurrent writers therefore
|
|
15
|
+
* silently clobber each other server-side. We cannot fix a foreign writer
|
|
16
|
+
* (operator console, another gateway), but we CAN guarantee that this
|
|
17
|
+
* gateway never races itself: all write-backs for the same groupNo are
|
|
18
|
+
* serialized through a per-groupNo promise-chain lock, so the read-modify-
|
|
19
|
+
* write (PUT + cache update) for one call completes before the next starts.
|
|
20
|
+
* Cross-source last-write-wins remains possible by design — see the caveat
|
|
21
|
+
* on {@link GroupMdWriteback}.
|
|
22
|
+
*
|
|
23
|
+
* Owner-gating lives in the MCP tool layer (group-md-tool.ts), not here: this
|
|
24
|
+
* module is the mechanism, the tool is the policy boundary.
|
|
25
|
+
*
|
|
26
|
+
* Never persists anything to disk — the cache it updates is the same in-memory-
|
|
27
|
+
* only cache A's resolver reads (group-md-cache.ts), so this introduces no new
|
|
28
|
+
* durable-trust surface.
|
|
29
|
+
*/
|
|
30
|
+
import { updateGroupMd } from './octo/api.js';
|
|
31
|
+
/**
|
|
32
|
+
* Hard UTF-8 byte ceiling for GROUP.md content, per the XIN-201 measured
|
|
33
|
+
* server contract. A body above this is rejected locally (a server PUT would
|
|
34
|
+
* answer 400 err.server.bot_api.content_too_large).
|
|
35
|
+
*/
|
|
36
|
+
export const MAX_GROUP_MD_CONTENT_BYTES = 10240;
|
|
37
|
+
/** Thrown when content exceeds {@link MAX_GROUP_MD_CONTENT_BYTES}. */
|
|
38
|
+
export class GroupMdContentTooLargeError extends Error {
|
|
39
|
+
bytes;
|
|
40
|
+
constructor(bytes) {
|
|
41
|
+
super(`GROUP.md content is ${bytes} bytes, over the ${MAX_GROUP_MD_CONTENT_BYTES}-byte UTF-8 limit`);
|
|
42
|
+
this.bytes = bytes;
|
|
43
|
+
this.name = 'GroupMdContentTooLargeError';
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Serializes GROUP.md write-backs per groupNo and keeps A's cache in sync.
|
|
48
|
+
*
|
|
49
|
+
* Constructed ONCE per bot (alongside the GroupMdCache it updates) and shared
|
|
50
|
+
* across turns, so the per-groupNo lock actually spans concurrent agent turns —
|
|
51
|
+
* a per-turn instance would defeat the lock. The MCP tool server (built per
|
|
52
|
+
* turn) borrows this shared instance.
|
|
53
|
+
*
|
|
54
|
+
* CAVEAT (documented per XIN-201 item 4): the lock only covers THIS gateway. A
|
|
55
|
+
* write from another source (operator console, a second gateway process) is not
|
|
56
|
+
* coordinated and, because the server has no CAS, last-write-wins across sources
|
|
57
|
+
* — that is an accepted limitation, not a bug.
|
|
58
|
+
*/
|
|
59
|
+
export class GroupMdWriteback {
|
|
60
|
+
cache;
|
|
61
|
+
updateFn;
|
|
62
|
+
/** Tail of the in-flight write chain per groupNo (serializes same-key writes). */
|
|
63
|
+
tails = new Map();
|
|
64
|
+
constructor(cache,
|
|
65
|
+
/** Injectable PUT client (defaults to the real octo client). */
|
|
66
|
+
updateFn = updateGroupMd) {
|
|
67
|
+
this.cache = cache;
|
|
68
|
+
this.updateFn = updateFn;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Run `fn` after every previously-queued op for `key` has settled, so bodies
|
|
72
|
+
* for the same key never overlap. Different keys run independently. `fn`'s
|
|
73
|
+
* rejection is surfaced to its own caller; the chain tail swallows it so a
|
|
74
|
+
* failed write does not wedge later writes.
|
|
75
|
+
*/
|
|
76
|
+
withLock(key, fn) {
|
|
77
|
+
const prev = this.tails.get(key) ?? Promise.resolve();
|
|
78
|
+
const result = prev.then(fn, fn); // run regardless of prior success/failure
|
|
79
|
+
const tail = result.then(() => undefined, () => undefined);
|
|
80
|
+
this.tails.set(key, tail);
|
|
81
|
+
// Best-effort cleanup: drop the key once the queue drains to this tail, so
|
|
82
|
+
// the Map does not grow without bound across many groups.
|
|
83
|
+
tail.then(() => {
|
|
84
|
+
if (this.tails.get(key) === tail)
|
|
85
|
+
this.tails.delete(key);
|
|
86
|
+
});
|
|
87
|
+
return result;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Persist `content` as the group's GROUP.md and refresh the cache.
|
|
91
|
+
*
|
|
92
|
+
* Rejects with {@link GroupMdContentTooLargeError} (before any server call)
|
|
93
|
+
* when content exceeds the UTF-8 byte limit; propagates the client error when
|
|
94
|
+
* the PUT itself fails (cache is left untouched in that case).
|
|
95
|
+
*/
|
|
96
|
+
async writeBack(params) {
|
|
97
|
+
const { apiUrl, botToken, groupNo, content, signal } = params;
|
|
98
|
+
const bytes = Buffer.byteLength(content, 'utf-8');
|
|
99
|
+
if (bytes > MAX_GROUP_MD_CONTENT_BYTES) {
|
|
100
|
+
// Reject locally — do NOT hit the server (it would answer 400).
|
|
101
|
+
throw new GroupMdContentTooLargeError(bytes);
|
|
102
|
+
}
|
|
103
|
+
return this.withLock(groupNo, async () => {
|
|
104
|
+
const { version } = await this.updateFn({ apiUrl, botToken, groupNo, content, signal });
|
|
105
|
+
// Write the just-persisted content/version back into A's in-memory cache
|
|
106
|
+
// so the next resolveGroupInstructions serves what we wrote instead of
|
|
107
|
+
// either re-fetching (TTL) or, worse, returning a now-stale cached copy.
|
|
108
|
+
// updated_at is null because the PUT response carries only { version }.
|
|
109
|
+
this.cache.set(groupNo, {
|
|
110
|
+
content,
|
|
111
|
+
version: typeof version === 'number' ? version : 0,
|
|
112
|
+
updated_at: null,
|
|
113
|
+
});
|
|
114
|
+
return { groupNo, version, bytes };
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=group-md-writeback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group-md-writeback.js","sourceRoot":"","sources":["../src/group-md-writeback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAG9C;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,CAAC;AAEhD,sEAAsE;AACtE,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IACxB;IAA5B,YAA4B,KAAa;QACvC,KAAK,CACH,uBAAuB,KAAK,oBAAoB,0BAA0B,mBAAmB,CAC9F,CAAC;QAHwB,UAAK,GAAL,KAAK,CAAQ;QAIvC,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;IAC5C,CAAC;CACF;AAsBD;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,gBAAgB;IAKR;IAEA;IANnB,kFAAkF;IACjE,KAAK,GAAG,IAAI,GAAG,EAA4B,CAAC;IAE7D,YACmB,KAAmB;IACpC,gEAAgE;IAC/C,WAA4B,aAAa;QAFzC,UAAK,GAAL,KAAK,CAAc;QAEnB,aAAQ,GAAR,QAAQ,CAAiC;IACzD,CAAC;IAEJ;;;;;OAKG;IACK,QAAQ,CAAI,GAAW,EAAE,EAAoB;QACnD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,0CAA0C;QAC5E,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CACtB,GAAG,EAAE,CAAC,SAAS,EACf,GAAG,EAAE,CAAC,SAAS,CAChB,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC1B,2EAA2E;QAC3E,0DAA0D;QAC1D,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACb,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI;gBAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,SAAS,CAAC,MAA0B;QACxC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAClD,IAAI,KAAK,GAAG,0BAA0B,EAAE,CAAC;YACvC,gEAAgE;YAChE,MAAM,IAAI,2BAA2B,CAAC,KAAK,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;YACvC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YACxF,yEAAyE;YACzE,uEAAuE;YACvE,yEAAyE;YACzE,wEAAwE;YACxE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE;gBACtB,OAAO;gBACP,OAAO,EAAE,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAClD,UAAU,EAAE,IAAI;aACjB,CAAC,CAAC;YACH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
package/dist/index.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ import { GroupContext } from './group-context.js';
|
|
|
14
14
|
import { StreamRelay } from './stream-relay.js';
|
|
15
15
|
import type { BotMessage } from './octo/types.js';
|
|
16
16
|
import { GroupMdCache } from './group-md-cache.js';
|
|
17
|
+
import { GroupMdWriteback } from './group-md-writeback.js';
|
|
17
18
|
import { CronStore } from './cron-store.js';
|
|
18
19
|
/**
|
|
19
20
|
* Resolve a single bot's concrete Config by its configId (config.json
|
|
@@ -34,7 +35,7 @@ export type BotStack = ManagedBot;
|
|
|
34
35
|
* agent query → stream → persist. Exported so tests can drive the real pipeline
|
|
35
36
|
* (not a replica) — `main()` is the only production caller.
|
|
36
37
|
*/
|
|
37
|
-
export declare function handleMessage(msg: BotMessage, config: ReturnType<typeof loadConfig>, store: SessionStore, router: SessionRouter, groupContext: GroupContext, streamRelay: StreamRelay, botId: string, cronStore?: CronStore, groupMdCache?: GroupMdCache): Promise<void>;
|
|
38
|
+
export declare function handleMessage(msg: BotMessage, config: ReturnType<typeof loadConfig>, store: SessionStore, router: SessionRouter, groupContext: GroupContext, streamRelay: StreamRelay, botId: string, cronStore?: CronStore, groupMdCache?: GroupMdCache, groupMdWriteback?: GroupMdWriteback): Promise<void>;
|
|
38
39
|
/** Max length of the rendered tool-params string in a 🔧 progress notice. */
|
|
39
40
|
export declare const MAX_TOOL_PARAM_CHARS = 120;
|
|
40
41
|
/**
|
package/dist/index.js
CHANGED
|
@@ -15,7 +15,7 @@ import { OctoGateway } from './gateway.js';
|
|
|
15
15
|
import { SessionRouter } from './session-router.js';
|
|
16
16
|
import { GroupContext } from './group-context.js';
|
|
17
17
|
import { queryAgent } from './agent-bridge.js';
|
|
18
|
-
import { sanitizeDisplayName, escapeSectionMarkers, sanitizePromptBody } from './prompt-safety.js';
|
|
18
|
+
import { sanitizeDisplayName, escapeSectionMarkers, sanitizePromptBody, formatSenderLabel } from './prompt-safety.js';
|
|
19
19
|
import { cleanupExpiredCwds, resolveMemoryDir, resolveSessionCwd } from './cwd-resolver.js';
|
|
20
20
|
import { StreamRelay } from './stream-relay.js';
|
|
21
21
|
import { sendMessage, sendReadReceipt, getChannelMessages, getUploadCredentials } from './octo/api.js';
|
|
@@ -25,9 +25,11 @@ import { downloadInboundImage, MAX_IMAGES_PER_MESSAGE } from './media-inbound.js
|
|
|
25
25
|
import { handleCommand } from './commands.js';
|
|
26
26
|
import { resolveGroupInstructions } from './group-md.js';
|
|
27
27
|
import { GroupMdCache, DEFAULT_GROUP_MD_TTL_MS } from './group-md-cache.js';
|
|
28
|
+
import { GroupMdWriteback } from './group-md-writeback.js';
|
|
28
29
|
import { CronStore } from './cron-store.js';
|
|
29
30
|
import { CronScheduler } from './cron-scheduler.js';
|
|
30
31
|
import { createCronToolServer, CRON_TOOL_SERVER_NAME } from './cron-tool.js';
|
|
32
|
+
import { createGroupMdToolServer, GROUP_MD_TOOL_SERVER_NAME } from './group-md-tool.js';
|
|
31
33
|
import { buildInlinedFileBody, truncateUtf8ByBytes, assembleUserMessage, MAX_USER_LLM_BYTES } from './file-inline-wrap.js';
|
|
32
34
|
import { join } from 'node:path';
|
|
33
35
|
import { mkdirSync, realpathSync } from 'node:fs';
|
|
@@ -185,6 +187,13 @@ async function startBot(config, multi) {
|
|
|
185
187
|
// bounds staleness (review #172 🟡). Decoupled from the P1 GroupContext
|
|
186
188
|
// caches; created unconditionally (cheap, only populated when serverMd is on). ---
|
|
187
189
|
const groupMdCache = new GroupMdCache(config.serverMdTtlMs ?? DEFAULT_GROUP_MD_TTL_MS);
|
|
190
|
+
// --- P2-C: GROUP.md write-back coordinator. Shared across turns so its
|
|
191
|
+
// per-groupNo write lock actually serializes concurrent agent turns writing
|
|
192
|
+
// the same group (a per-turn instance would defeat the lock). Updates the
|
|
193
|
+
// SAME in-memory groupMdCache above on a successful PUT — no new disk surface.
|
|
194
|
+
// Cheap to construct unconditionally; only exercised when the write-back tool
|
|
195
|
+
// is registered (config.mdWriteback). ---
|
|
196
|
+
const groupMdWriteback = new GroupMdWriteback(groupMdCache);
|
|
188
197
|
// --- #115: cron (opt-in). ---
|
|
189
198
|
if (config.sdk.cron && config.botId) {
|
|
190
199
|
cronStore = new CronStore(join(config.baseDir, config.botId, 'cron.json'));
|
|
@@ -231,7 +240,10 @@ async function startBot(config, multi) {
|
|
|
231
240
|
console.warn(`[cc-channel-octo] ${label}Could not prefetch media CDN host (inbound media limited to apiUrl host): ${err instanceof Error ? err.message : String(err)}`);
|
|
232
241
|
}
|
|
233
242
|
// --- Session router ---
|
|
234
|
-
|
|
243
|
+
// P2-B: the router holds the GROUP.md cache so a server GROUP.md change
|
|
244
|
+
// event invalidates the affected group's entry (re-fetched authoritatively
|
|
245
|
+
// next turn — never trusting the event payload). No-op when serverMd is off.
|
|
246
|
+
const router = new SessionRouter(config, gateway.botId, gateway.ownerUid, groupMdCache);
|
|
235
247
|
// --- Active handler tracking (Q6: in-flight drain on shutdown) ---
|
|
236
248
|
const activeHandlers = new Set();
|
|
237
249
|
// Install the message handler NOW (before the socket opens). The socket is
|
|
@@ -246,7 +258,7 @@ async function startBot(config, multi) {
|
|
|
246
258
|
// group message could be cached into group context as un-processed chatter).
|
|
247
259
|
if (msg.from_uid === gateway.botId)
|
|
248
260
|
return;
|
|
249
|
-
const p = handleMessage(msg, config, store, router, groupContext, streamRelay, gateway.botId, cronStore, groupMdCache)
|
|
261
|
+
const p = handleMessage(msg, config, store, router, groupContext, streamRelay, gateway.botId, cronStore, groupMdCache, groupMdWriteback)
|
|
250
262
|
.catch((err) => {
|
|
251
263
|
console.error(`[cc-channel-octo] ${label}Unhandled message handler error:`, err instanceof Error ? err.message : err);
|
|
252
264
|
})
|
|
@@ -267,7 +279,7 @@ async function startBot(config, multi) {
|
|
|
267
279
|
onFire: (msg) => {
|
|
268
280
|
if (gateway.draining)
|
|
269
281
|
return Promise.resolve();
|
|
270
|
-
const p = handleMessage(msg, config, store, router, groupContext, streamRelay, gateway.botId, cronStore, groupMdCache)
|
|
282
|
+
const p = handleMessage(msg, config, store, router, groupContext, streamRelay, gateway.botId, cronStore, groupMdCache, groupMdWriteback)
|
|
271
283
|
.finally(() => { activeHandlers.delete(p); });
|
|
272
284
|
activeHandlers.add(p);
|
|
273
285
|
return p;
|
|
@@ -315,7 +327,7 @@ async function startBot(config, multi) {
|
|
|
315
327
|
* agent query → stream → persist. Exported so tests can drive the real pipeline
|
|
316
328
|
* (not a replica) — `main()` is the only production caller.
|
|
317
329
|
*/
|
|
318
|
-
export async function handleMessage(msg, config, store, router, groupContext, streamRelay, botId, cronStore, groupMdCache) {
|
|
330
|
+
export async function handleMessage(msg, config, store, router, groupContext, streamRelay, botId, cronStore, groupMdCache, groupMdWriteback) {
|
|
319
331
|
const channelId = msg.channel_id ?? '';
|
|
320
332
|
const channelType = msg.channel_type ?? ChannelType.DM;
|
|
321
333
|
const isGroup = channelType === ChannelType.Group || channelType === ChannelType.CommunityTopic;
|
|
@@ -554,10 +566,30 @@ export async function handleMessage(msg, config, store, router, groupContext, st
|
|
|
554
566
|
// persists the raw user content without the quote prefix to avoid prefix
|
|
555
567
|
// duplication on conversation replay.
|
|
556
568
|
//
|
|
557
|
-
//
|
|
558
|
-
//
|
|
559
|
-
//
|
|
560
|
-
|
|
569
|
+
// Sender-identity prefix (groups only): the `[Current message — respond to
|
|
570
|
+
// this ONLY]` anchor previously carried an anonymous body, so a shared-group
|
|
571
|
+
// Claude Code / Claw agent could not tell WHICH member sent the request
|
|
572
|
+
// being replied to (the anchor block itself has no sender field, unlike
|
|
573
|
+
// `[Recent group messages]` where each line already prefixes `name(uid):`).
|
|
574
|
+
// We prepend `name(uid):` — sanitized via formatSenderLabel — to align the
|
|
575
|
+
// current-message identity semantics with the historical block, so the
|
|
576
|
+
// agent has a single, uniform convention for identifying speakers across
|
|
577
|
+
// the whole prompt. DM channels stay anonymous: there's exactly one human
|
|
578
|
+
// party, adding the prefix would be pure noise. The prefix is persisted
|
|
579
|
+
// via appendUser below too — otherwise a session-replay would drop identity
|
|
580
|
+
// from history while keeping it on current, defeating the whole point.
|
|
581
|
+
//
|
|
582
|
+
// Resolve the displayName via GroupContext so the wire's from_name (which
|
|
583
|
+
// is optional and, when present, sometimes just echoes the uid) is
|
|
584
|
+
// upgraded to the roster displayName learned via refreshMembers. Without
|
|
585
|
+
// this, human users whose wire payload lacks from_name render as
|
|
586
|
+
// `uid:body` instead of `name(uid):body`, breaking the promised uniform
|
|
587
|
+
// shape.
|
|
588
|
+
const resolvedName = isGroup && msg.channel_id
|
|
589
|
+
? groupContext.resolveDisplayName(msg.channel_id, msg.from_uid, msg.from_name)
|
|
590
|
+
: undefined;
|
|
591
|
+
const senderPrefix = isGroup ? `${formatSenderLabel(msg.from_uid, resolvedName)}:` : '';
|
|
592
|
+
const userBody = quotePrefix + senderPrefix + bodyText;
|
|
561
593
|
// G4: Backfill history from API when local cache is empty for groups.
|
|
562
594
|
// Only triggered on first interaction with a group (cold start) to avoid
|
|
563
595
|
// duplicate API calls; checked via a sentinel marker stored in-memory.
|
|
@@ -718,6 +750,16 @@ export async function handleMessage(msg, config, store, router, groupContext, st
|
|
|
718
750
|
const memoryDir = resolveMemoryDir(memBase, sessionCtx);
|
|
719
751
|
sessionOpts = { ...(sessionOpts ?? {}), memoryDir };
|
|
720
752
|
}
|
|
753
|
+
// External MCP servers declared in config (sdk.mcpServers): seed the map
|
|
754
|
+
// FIRST so the per-turn in-process servers below (cron, GROUP.md write-back)
|
|
755
|
+
// merge on top and win any name clash — those are bound to this turn's
|
|
756
|
+
// session coords and must not be shadowed by a same-named external server.
|
|
757
|
+
if (config.sdk.mcpServers && Object.keys(config.sdk.mcpServers).length > 0) {
|
|
758
|
+
sessionOpts = {
|
|
759
|
+
...(sessionOpts ?? {}),
|
|
760
|
+
mcpServers: { ...(sessionOpts?.mcpServers ?? {}), ...config.sdk.mcpServers },
|
|
761
|
+
};
|
|
762
|
+
}
|
|
721
763
|
// GROUP.md: inject operator-provided per-group instructions into the
|
|
722
764
|
// system prompt. Only for groups — DMs key on the peer uid, not a shared
|
|
723
765
|
// channel. P2-A: server-first (GET /v1/bot/groups/{groupNo}/md, cached)
|
|
@@ -749,7 +791,25 @@ export async function handleMessage(msg, config, store, router, groupContext, st
|
|
|
749
791
|
const cronServer = createCronToolServer(cronStore, coords, router.getOwnerUid());
|
|
750
792
|
sessionOpts = {
|
|
751
793
|
...(sessionOpts ?? {}),
|
|
752
|
-
mcpServers: { [CRON_TOOL_SERVER_NAME]: cronServer },
|
|
794
|
+
mcpServers: { ...(sessionOpts?.mcpServers ?? {}), [CRON_TOOL_SERVER_NAME]: cronServer },
|
|
795
|
+
};
|
|
796
|
+
}
|
|
797
|
+
// P2-C: when GROUP.md write-back is on, inject the write-back MCP tool
|
|
798
|
+
// bound to THIS message's channel coords (so the write targets the channel's
|
|
799
|
+
// parent group) and gated to the bot owner uid. Only for group channels —
|
|
800
|
+
// a DM has no shared GROUP.md. Per-turn server (coords differ per message);
|
|
801
|
+
// it borrows the shared groupMdWriteback so the per-groupNo write lock and
|
|
802
|
+
// the cache it refreshes are process-wide, not per-turn.
|
|
803
|
+
if (config.mdWriteback && groupMdWriteback && isGroup) {
|
|
804
|
+
const coords = {
|
|
805
|
+
channelId,
|
|
806
|
+
fromUid: msg.from_uid,
|
|
807
|
+
fromName: msg.from_name,
|
|
808
|
+
};
|
|
809
|
+
const groupMdServer = createGroupMdToolServer({ writeback: groupMdWriteback, apiUrl: config.apiUrl, botToken: config.botToken }, coords, router.getOwnerUid());
|
|
810
|
+
sessionOpts = {
|
|
811
|
+
...(sessionOpts ?? {}),
|
|
812
|
+
mcpServers: { ...(sessionOpts?.mcpServers ?? {}), [GROUP_MD_TOOL_SERVER_NAME]: groupMdServer },
|
|
753
813
|
};
|
|
754
814
|
}
|
|
755
815
|
const rawChunks = queryAgent(userContentForLLM, config, sessionCtx, onToolUse, sessionOpts);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|