@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
|
@@ -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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GROUP.md resolution (P2-A): server-first fetch with a never-lose local-file
|
|
3
|
+
* fallback, behind a feature flag.
|
|
4
|
+
*
|
|
5
|
+
* `resolveGroupInstructions` is the single entry point the message pipeline
|
|
6
|
+
* calls to obtain the trusted per-group instruction block injected into the
|
|
7
|
+
* agent's system prompt. Resolution order:
|
|
8
|
+
*
|
|
9
|
+
* 1. Feature flag OFF (default) or no cache wired → pure local file
|
|
10
|
+
* (`loadGroupConfig`). Byte-identical to the pre-P2 behavior, so existing
|
|
11
|
+
* local-file deployments are unaffected.
|
|
12
|
+
* 2. Feature flag ON:
|
|
13
|
+
* a. serve a cached server GROUP.md if present and not past its TTL (keyed
|
|
14
|
+
* by the PARENT group number — a thread shares its parent group's
|
|
15
|
+
* GROUP.md). The cache is IN-MEMORY ONLY (no disk), so the only way
|
|
16
|
+
* content reaches this trusted system-prompt channel is a live,
|
|
17
|
+
* authenticated fetch — never a forgeable on-disk artifact a chat-
|
|
18
|
+
* driven Bash/Write could plant (review #172 🔴; see group-md-cache.ts);
|
|
19
|
+
* b. otherwise fetch from the server (server-first). On success with
|
|
20
|
+
* non-empty content, cache it and use it;
|
|
21
|
+
* c. on ANY failure (404 "no GROUP.md", network, timeout, empty content)
|
|
22
|
+
* fall back to the local file. The local-file path is never lost.
|
|
23
|
+
*
|
|
24
|
+
* Trust: server content stands on its own trust root — an authenticated
|
|
25
|
+
* `getGroupMd` over the bot token against the SSRF-validated `apiUrl`, server-
|
|
26
|
+
* side bot_admin-gated — NOT on the OS-permission trust the local `groupConfigDir`
|
|
27
|
+
* file relies on. By caching only in memory we never let server content
|
|
28
|
+
* masquerade as (or be confused with) a trusted local file on disk.
|
|
29
|
+
*
|
|
30
|
+
* Thread routing (P1): a thread channelId is the composite `<groupNo>____<shortId>`.
|
|
31
|
+
* The server GROUP.md endpoint is keyed by the parent group number, so we resolve
|
|
32
|
+
* it with `extractParentGroupNo` for the API call + cache key (identity for a
|
|
33
|
+
* plain group). The local-file fallback still receives the FULL channelId so its
|
|
34
|
+
* own thread/short-id routing in `loadGroupConfig` is preserved unchanged.
|
|
35
|
+
*
|
|
36
|
+
* Never throws — a server error degrades to local, a local miss degrades to
|
|
37
|
+
* "no custom instructions".
|
|
38
|
+
*/
|
|
39
|
+
import type { GroupMdCache } from './group-md-cache.js';
|
|
40
|
+
export interface ResolveGroupInstructionsParams {
|
|
41
|
+
/** Operator local-instruction directory (the existing fallback source). */
|
|
42
|
+
groupConfigDir?: string;
|
|
43
|
+
/** Feature flag: when false/undefined, server fetch is skipped entirely. */
|
|
44
|
+
serverMd?: boolean;
|
|
45
|
+
apiUrl: string;
|
|
46
|
+
botToken: string;
|
|
47
|
+
/** Full channelId (may be a `<groupNo>____<shortId>` thread composite). */
|
|
48
|
+
channelId: string;
|
|
49
|
+
/** Server GROUP.md cache. Omitted (or flag off) → pure local file. */
|
|
50
|
+
cache?: GroupMdCache;
|
|
51
|
+
signal?: AbortSignal;
|
|
52
|
+
}
|
|
53
|
+
export declare function resolveGroupInstructions(params: ResolveGroupInstructionsParams): Promise<string | undefined>;
|
package/dist/group-md.js
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GROUP.md resolution (P2-A): server-first fetch with a never-lose local-file
|
|
3
|
+
* fallback, behind a feature flag.
|
|
4
|
+
*
|
|
5
|
+
* `resolveGroupInstructions` is the single entry point the message pipeline
|
|
6
|
+
* calls to obtain the trusted per-group instruction block injected into the
|
|
7
|
+
* agent's system prompt. Resolution order:
|
|
8
|
+
*
|
|
9
|
+
* 1. Feature flag OFF (default) or no cache wired → pure local file
|
|
10
|
+
* (`loadGroupConfig`). Byte-identical to the pre-P2 behavior, so existing
|
|
11
|
+
* local-file deployments are unaffected.
|
|
12
|
+
* 2. Feature flag ON:
|
|
13
|
+
* a. serve a cached server GROUP.md if present and not past its TTL (keyed
|
|
14
|
+
* by the PARENT group number — a thread shares its parent group's
|
|
15
|
+
* GROUP.md). The cache is IN-MEMORY ONLY (no disk), so the only way
|
|
16
|
+
* content reaches this trusted system-prompt channel is a live,
|
|
17
|
+
* authenticated fetch — never a forgeable on-disk artifact a chat-
|
|
18
|
+
* driven Bash/Write could plant (review #172 🔴; see group-md-cache.ts);
|
|
19
|
+
* b. otherwise fetch from the server (server-first). On success with
|
|
20
|
+
* non-empty content, cache it and use it;
|
|
21
|
+
* c. on ANY failure (404 "no GROUP.md", network, timeout, empty content)
|
|
22
|
+
* fall back to the local file. The local-file path is never lost.
|
|
23
|
+
*
|
|
24
|
+
* Trust: server content stands on its own trust root — an authenticated
|
|
25
|
+
* `getGroupMd` over the bot token against the SSRF-validated `apiUrl`, server-
|
|
26
|
+
* side bot_admin-gated — NOT on the OS-permission trust the local `groupConfigDir`
|
|
27
|
+
* file relies on. By caching only in memory we never let server content
|
|
28
|
+
* masquerade as (or be confused with) a trusted local file on disk.
|
|
29
|
+
*
|
|
30
|
+
* Thread routing (P1): a thread channelId is the composite `<groupNo>____<shortId>`.
|
|
31
|
+
* The server GROUP.md endpoint is keyed by the parent group number, so we resolve
|
|
32
|
+
* it with `extractParentGroupNo` for the API call + cache key (identity for a
|
|
33
|
+
* plain group). The local-file fallback still receives the FULL channelId so its
|
|
34
|
+
* own thread/short-id routing in `loadGroupConfig` is preserved unchanged.
|
|
35
|
+
*
|
|
36
|
+
* Never throws — a server error degrades to local, a local miss degrades to
|
|
37
|
+
* "no custom instructions".
|
|
38
|
+
*/
|
|
39
|
+
import { getGroupMd } from './octo/api.js';
|
|
40
|
+
import { extractParentGroupNo } from './octo/channel-id.js';
|
|
41
|
+
import { loadGroupConfig, MAX_GROUP_CONFIG_BYTES } from './group-config.js';
|
|
42
|
+
/**
|
|
43
|
+
* Trim and byte-bound server-provided GROUP.md the same way loadGroupConfig
|
|
44
|
+
* bounds a local file, so an oversized server payload can't blow the prompt
|
|
45
|
+
* budget. Returns undefined for empty/whitespace-only content.
|
|
46
|
+
*/
|
|
47
|
+
function boundInstructions(content) {
|
|
48
|
+
let text = content;
|
|
49
|
+
if (Buffer.byteLength(text, 'utf-8') > MAX_GROUP_CONFIG_BYTES) {
|
|
50
|
+
const buf = Buffer.from(text, 'utf-8').subarray(0, MAX_GROUP_CONFIG_BYTES);
|
|
51
|
+
// The slice may end mid-codepoint; trim a trailing replacement char.
|
|
52
|
+
text = buf.toString('utf-8').replace(/�+$/, '') + '\n[… group config truncated]';
|
|
53
|
+
}
|
|
54
|
+
const trimmed = text.trim();
|
|
55
|
+
return trimmed.length > 0 ? trimmed : undefined;
|
|
56
|
+
}
|
|
57
|
+
export async function resolveGroupInstructions(params) {
|
|
58
|
+
const { groupConfigDir, serverMd, apiUrl, botToken, channelId, cache, signal } = params;
|
|
59
|
+
const local = () => loadGroupConfig(groupConfigDir, channelId);
|
|
60
|
+
// Flag off (or no cache to dedupe fetches) → pure local file, unchanged behavior.
|
|
61
|
+
if (!serverMd || !cache)
|
|
62
|
+
return local();
|
|
63
|
+
const groupNo = extractParentGroupNo(channelId);
|
|
64
|
+
// a) fresh cached server GROUP.md wins. The cache is in-memory only and TTL-
|
|
65
|
+
// bounded, so an expired entry reads as a miss and falls through to a
|
|
66
|
+
// re-fetch below (staleness backstop; item B adds event-driven refresh).
|
|
67
|
+
const cached = cache.get(groupNo);
|
|
68
|
+
if (cached) {
|
|
69
|
+
const bounded = boundInstructions(cached.content);
|
|
70
|
+
if (bounded)
|
|
71
|
+
return bounded;
|
|
72
|
+
// Cached-but-empty (shouldn't normally happen) → fall through to local.
|
|
73
|
+
return local();
|
|
74
|
+
}
|
|
75
|
+
// b) server-first fetch.
|
|
76
|
+
try {
|
|
77
|
+
const md = await getGroupMd({ apiUrl, botToken, groupNo, signal });
|
|
78
|
+
const bounded = boundInstructions(md?.content ?? '');
|
|
79
|
+
if (bounded) {
|
|
80
|
+
const entry = {
|
|
81
|
+
content: md.content,
|
|
82
|
+
version: typeof md.version === 'number' ? md.version : 0,
|
|
83
|
+
updated_at: md.updated_at ?? null,
|
|
84
|
+
updated_by: md.updated_by,
|
|
85
|
+
};
|
|
86
|
+
cache.set(groupNo, entry);
|
|
87
|
+
return bounded;
|
|
88
|
+
}
|
|
89
|
+
// Server reachable but no/empty GROUP.md → local fallback.
|
|
90
|
+
return local();
|
|
91
|
+
}
|
|
92
|
+
catch (err) {
|
|
93
|
+
// c) 404 / network / timeout — never-lose local fallback.
|
|
94
|
+
console.error(`[cc-channel-octo] group-md: server fetch for ${groupNo} failed, falling back to local: ${String(err)}`);
|
|
95
|
+
return local();
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=group-md.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group-md.js","sourceRoot":"","sources":["../src/group-md.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -13,6 +13,8 @@ import { SessionRouter } from './session-router.js';
|
|
|
13
13
|
import { GroupContext } from './group-context.js';
|
|
14
14
|
import { StreamRelay } from './stream-relay.js';
|
|
15
15
|
import type { BotMessage } from './octo/types.js';
|
|
16
|
+
import { GroupMdCache } from './group-md-cache.js';
|
|
17
|
+
import { GroupMdWriteback } from './group-md-writeback.js';
|
|
16
18
|
import { CronStore } from './cron-store.js';
|
|
17
19
|
/**
|
|
18
20
|
* Resolve a single bot's concrete Config by its configId (config.json
|
|
@@ -33,7 +35,7 @@ export type BotStack = ManagedBot;
|
|
|
33
35
|
* agent query → stream → persist. Exported so tests can drive the real pipeline
|
|
34
36
|
* (not a replica) — `main()` is the only production caller.
|
|
35
37
|
*/
|
|
36
|
-
export declare function handleMessage(msg: BotMessage, config: ReturnType<typeof loadConfig>, store: SessionStore, router: SessionRouter, groupContext: GroupContext, streamRelay: StreamRelay, botId: string, cronStore?: CronStore): 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>;
|
|
37
39
|
/** Max length of the rendered tool-params string in a 🔧 progress notice. */
|
|
38
40
|
export declare const MAX_TOOL_PARAM_CHARS = 120;
|
|
39
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';
|
|
@@ -23,10 +23,13 @@ import { ChannelType, MessageType } from './octo/types.js';
|
|
|
23
23
|
import { resolveContent, tryResolveFile, resolveHistoricalMessagePlaceholder } from './inbound.js';
|
|
24
24
|
import { downloadInboundImage, MAX_IMAGES_PER_MESSAGE } from './media-inbound.js';
|
|
25
25
|
import { handleCommand } from './commands.js';
|
|
26
|
-
import {
|
|
26
|
+
import { resolveGroupInstructions } from './group-md.js';
|
|
27
|
+
import { GroupMdCache, DEFAULT_GROUP_MD_TTL_MS } from './group-md-cache.js';
|
|
28
|
+
import { GroupMdWriteback } from './group-md-writeback.js';
|
|
27
29
|
import { CronStore } from './cron-store.js';
|
|
28
30
|
import { CronScheduler } from './cron-scheduler.js';
|
|
29
31
|
import { createCronToolServer, CRON_TOOL_SERVER_NAME } from './cron-tool.js';
|
|
32
|
+
import { createGroupMdToolServer, GROUP_MD_TOOL_SERVER_NAME } from './group-md-tool.js';
|
|
30
33
|
import { buildInlinedFileBody, truncateUtf8ByBytes, assembleUserMessage, MAX_USER_LLM_BYTES } from './file-inline-wrap.js';
|
|
31
34
|
import { join } from 'node:path';
|
|
32
35
|
import { mkdirSync, realpathSync } from 'node:fs';
|
|
@@ -177,6 +180,20 @@ async function startBot(config, multi) {
|
|
|
177
180
|
// --- Group context ---
|
|
178
181
|
const groupContext = new GroupContext(adapter, config.context.maxContextChars);
|
|
179
182
|
groupContext.loadAllFromDb();
|
|
183
|
+
// --- P2-A: server GROUP.md cache. IN-MEMORY ONLY (no disk) — the resolved
|
|
184
|
+
// GROUP.md is injected as a TRUSTED system-prompt block, and a disk cache the
|
|
185
|
+
// gateway user can write would be a chat-injection → trusted-prompt poisoning
|
|
186
|
+
// vector that survives restart (review #172 🔴; see group-md-cache.ts). TTL
|
|
187
|
+
// bounds staleness (review #172 🟡). Decoupled from the P1 GroupContext
|
|
188
|
+
// caches; created unconditionally (cheap, only populated when serverMd is on). ---
|
|
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);
|
|
180
197
|
// --- #115: cron (opt-in). ---
|
|
181
198
|
if (config.sdk.cron && config.botId) {
|
|
182
199
|
cronStore = new CronStore(join(config.baseDir, config.botId, 'cron.json'));
|
|
@@ -223,7 +240,10 @@ async function startBot(config, multi) {
|
|
|
223
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)}`);
|
|
224
241
|
}
|
|
225
242
|
// --- Session router ---
|
|
226
|
-
|
|
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);
|
|
227
247
|
// --- Active handler tracking (Q6: in-flight drain on shutdown) ---
|
|
228
248
|
const activeHandlers = new Set();
|
|
229
249
|
// Install the message handler NOW (before the socket opens). The socket is
|
|
@@ -238,7 +258,7 @@ async function startBot(config, multi) {
|
|
|
238
258
|
// group message could be cached into group context as un-processed chatter).
|
|
239
259
|
if (msg.from_uid === gateway.botId)
|
|
240
260
|
return;
|
|
241
|
-
const p = handleMessage(msg, config, store, router, groupContext, streamRelay, gateway.botId, cronStore)
|
|
261
|
+
const p = handleMessage(msg, config, store, router, groupContext, streamRelay, gateway.botId, cronStore, groupMdCache, groupMdWriteback)
|
|
242
262
|
.catch((err) => {
|
|
243
263
|
console.error(`[cc-channel-octo] ${label}Unhandled message handler error:`, err instanceof Error ? err.message : err);
|
|
244
264
|
})
|
|
@@ -259,7 +279,7 @@ async function startBot(config, multi) {
|
|
|
259
279
|
onFire: (msg) => {
|
|
260
280
|
if (gateway.draining)
|
|
261
281
|
return Promise.resolve();
|
|
262
|
-
const p = handleMessage(msg, config, store, router, groupContext, streamRelay, gateway.botId, cronStore)
|
|
282
|
+
const p = handleMessage(msg, config, store, router, groupContext, streamRelay, gateway.botId, cronStore, groupMdCache, groupMdWriteback)
|
|
263
283
|
.finally(() => { activeHandlers.delete(p); });
|
|
264
284
|
activeHandlers.add(p);
|
|
265
285
|
return p;
|
|
@@ -307,7 +327,7 @@ async function startBot(config, multi) {
|
|
|
307
327
|
* agent query → stream → persist. Exported so tests can drive the real pipeline
|
|
308
328
|
* (not a replica) — `main()` is the only production caller.
|
|
309
329
|
*/
|
|
310
|
-
export async function handleMessage(msg, config, store, router, groupContext, streamRelay, botId, cronStore) {
|
|
330
|
+
export async function handleMessage(msg, config, store, router, groupContext, streamRelay, botId, cronStore, groupMdCache, groupMdWriteback) {
|
|
311
331
|
const channelId = msg.channel_id ?? '';
|
|
312
332
|
const channelType = msg.channel_type ?? ChannelType.DM;
|
|
313
333
|
const isGroup = channelType === ChannelType.Group || channelType === ChannelType.CommunityTopic;
|
|
@@ -546,10 +566,30 @@ export async function handleMessage(msg, config, store, router, groupContext, st
|
|
|
546
566
|
// persists the raw user content without the quote prefix to avoid prefix
|
|
547
567
|
// duplication on conversation replay.
|
|
548
568
|
//
|
|
549
|
-
//
|
|
550
|
-
//
|
|
551
|
-
//
|
|
552
|
-
|
|
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;
|
|
553
593
|
// G4: Backfill history from API when local cache is empty for groups.
|
|
554
594
|
// Only triggered on first interaction with a group (cold start) to avoid
|
|
555
595
|
// duplicate API calls; checked via a sentinel marker stored in-memory.
|
|
@@ -710,11 +750,30 @@ export async function handleMessage(msg, config, store, router, groupContext, st
|
|
|
710
750
|
const memoryDir = resolveMemoryDir(memBase, sessionCtx);
|
|
711
751
|
sessionOpts = { ...(sessionOpts ?? {}), memoryDir };
|
|
712
752
|
}
|
|
713
|
-
//
|
|
714
|
-
//
|
|
715
|
-
//
|
|
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
|
+
}
|
|
763
|
+
// GROUP.md: inject operator-provided per-group instructions into the
|
|
764
|
+
// system prompt. Only for groups — DMs key on the peer uid, not a shared
|
|
765
|
+
// channel. P2-A: server-first (GET /v1/bot/groups/{groupNo}/md, cached)
|
|
766
|
+
// with a never-lose fallback to the local `groupConfigDir/<channelId>.md`
|
|
767
|
+
// file; gated behind `config.serverMd` (off → pure local file).
|
|
716
768
|
if (isGroup) {
|
|
717
|
-
const groupInstructions =
|
|
769
|
+
const groupInstructions = await resolveGroupInstructions({
|
|
770
|
+
groupConfigDir: config.groupConfigDir,
|
|
771
|
+
serverMd: config.serverMd,
|
|
772
|
+
apiUrl: config.apiUrl,
|
|
773
|
+
botToken: config.botToken,
|
|
774
|
+
channelId,
|
|
775
|
+
cache: groupMdCache,
|
|
776
|
+
});
|
|
718
777
|
if (groupInstructions) {
|
|
719
778
|
sessionOpts = { ...(sessionOpts ?? {}), groupInstructions };
|
|
720
779
|
}
|
|
@@ -732,7 +791,25 @@ export async function handleMessage(msg, config, store, router, groupContext, st
|
|
|
732
791
|
const cronServer = createCronToolServer(cronStore, coords, router.getOwnerUid());
|
|
733
792
|
sessionOpts = {
|
|
734
793
|
...(sessionOpts ?? {}),
|
|
735
|
-
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 },
|
|
736
813
|
};
|
|
737
814
|
}
|
|
738
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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"}
|