@cereworker/channels 26.315.2 → 26.316.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/manager.d.ts +10 -0
- package/dist/manager.d.ts.map +1 -1
- package/dist/manager.js +23 -0
- package/dist/manager.js.map +1 -1
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export type { ChannelPlugin, ChannelMeta, ChannelId, ChannelConfig, InboundMessage, OutboundMessage, MessageHandler, } from './types.js';
|
|
2
2
|
export { ChannelManager } from './manager.js';
|
|
3
|
+
export type { PairingProvider } from './manager.js';
|
|
3
4
|
export { createChannelManager } from './factory.js';
|
|
4
5
|
export { chunkMarkdown, CHANNEL_LIMITS } from './chunking.js';
|
|
5
6
|
export { createSlackChannel, type SlackChannelConfig } from './adapters/slack.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,aAAa,EACb,WAAW,EACX,SAAS,EACT,aAAa,EACb,cAAc,EACd,eAAe,EACf,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,KAAK,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAE,KAAK,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC3F,OAAO,EAAE,mBAAmB,EAAE,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,aAAa,EACb,WAAW,EACX,SAAS,EACT,aAAa,EACb,cAAc,EACd,eAAe,EACf,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,KAAK,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAE,KAAK,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC3F,OAAO,EAAE,mBAAmB,EAAE,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAA2B,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAA6B,MAAM,uBAAuB,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAA8B,MAAM,wBAAwB,CAAC;AAC3F,OAAO,EAAE,mBAAmB,EAA4B,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAA4B,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAA4B,MAAM,sBAAsB,CAAC"}
|
package/dist/manager.d.ts
CHANGED
|
@@ -1,9 +1,19 @@
|
|
|
1
1
|
import type { ChannelPlugin, MessageHandler, OutboundMessage } from './types.js';
|
|
2
|
+
export interface PairingProvider {
|
|
3
|
+
isApproved(channelId: string, senderId: string): boolean;
|
|
4
|
+
createPairingCode(channelId: string, senderId: string, senderName?: string): string | null;
|
|
5
|
+
}
|
|
2
6
|
export declare class ChannelManager {
|
|
3
7
|
private channels;
|
|
4
8
|
private handler;
|
|
9
|
+
private dmPolicy;
|
|
10
|
+
private pairingProvider;
|
|
5
11
|
/** Set the global message handler (usually wired to the orchestrator) */
|
|
6
12
|
setHandler(handler: MessageHandler): void;
|
|
13
|
+
/** Set the DM access policy */
|
|
14
|
+
setDmPolicy(policy: 'pairing' | 'open'): void;
|
|
15
|
+
/** Set the pairing provider for pairing mode */
|
|
16
|
+
setPairingProvider(provider: PairingProvider): void;
|
|
7
17
|
/** Register a channel plugin */
|
|
8
18
|
register(channel: ChannelPlugin): void;
|
|
9
19
|
/** Get a registered channel by ID */
|
package/dist/manager.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAa,MAAM,YAAY,CAAC;AAE5F,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,OAAO,CAA+B;
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAa,MAAM,YAAY,CAAC;AAE5F,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IACzD,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAC5F;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,eAAe,CAAgC;IAEvD,yEAAyE;IACzE,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAIzC,+BAA+B;IAC/B,WAAW,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI;IAI7C,gDAAgD;IAChD,kBAAkB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAInD,gCAAgC;IAChC,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAItC,qCAAqC;IACrC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAI1C,mCAAmC;IACnC,IAAI,IAAI,aAAa,EAAE;IAIvB,8BAA8B;IAC9B,aAAa,IAAI,aAAa,EAAE;IAIhC,oCAAoC;IAC9B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IA6C/B,wBAAwB;IAClB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAY9B,2CAA2C;IACrC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAOlE,oDAAoD;IAC9C,SAAS,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;CAKrD"}
|
package/dist/manager.js
CHANGED
|
@@ -1,10 +1,20 @@
|
|
|
1
1
|
export class ChannelManager {
|
|
2
2
|
channels = new Map();
|
|
3
3
|
handler = null;
|
|
4
|
+
dmPolicy = 'open';
|
|
5
|
+
pairingProvider = null;
|
|
4
6
|
/** Set the global message handler (usually wired to the orchestrator) */
|
|
5
7
|
setHandler(handler) {
|
|
6
8
|
this.handler = handler;
|
|
7
9
|
}
|
|
10
|
+
/** Set the DM access policy */
|
|
11
|
+
setDmPolicy(policy) {
|
|
12
|
+
this.dmPolicy = policy;
|
|
13
|
+
}
|
|
14
|
+
/** Set the pairing provider for pairing mode */
|
|
15
|
+
setPairingProvider(provider) {
|
|
16
|
+
this.pairingProvider = provider;
|
|
17
|
+
}
|
|
8
18
|
/** Register a channel plugin */
|
|
9
19
|
register(channel) {
|
|
10
20
|
this.channels.set(channel.id, channel);
|
|
@@ -30,6 +40,19 @@ export class ChannelManager {
|
|
|
30
40
|
const results = await Promise.allSettled(this.list().map(async (channel) => {
|
|
31
41
|
try {
|
|
32
42
|
await channel.start(async (msg) => {
|
|
43
|
+
// Pairing mode: PairingStore is the single source of truth
|
|
44
|
+
if (this.dmPolicy === 'pairing' && this.pairingProvider) {
|
|
45
|
+
if (this.pairingProvider.isApproved(msg.channelId, msg.senderId)) {
|
|
46
|
+
return handler(msg);
|
|
47
|
+
}
|
|
48
|
+
// Issue pairing challenge
|
|
49
|
+
const code = this.pairingProvider.createPairingCode(msg.channelId, msg.senderId, msg.senderName);
|
|
50
|
+
if (code) {
|
|
51
|
+
return `Access required. Your pairing code: ${code}\nAsk the bot owner to run: cereworker approve ${code}`;
|
|
52
|
+
}
|
|
53
|
+
return; // rate limited, silent drop
|
|
54
|
+
}
|
|
55
|
+
// Open mode: use legacy isAllowed behavior
|
|
33
56
|
if (!channel.isAllowed(msg.senderId)) {
|
|
34
57
|
return;
|
|
35
58
|
}
|
package/dist/manager.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,cAAc;IACjB,QAAQ,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC5C,OAAO,GAA0B,IAAI,CAAC;IACtC,QAAQ,GAAuB,MAAM,CAAC;IACtC,eAAe,GAA2B,IAAI,CAAC;IAEvD,yEAAyE;IACzE,UAAU,CAAC,OAAuB;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,+BAA+B;IAC/B,WAAW,CAAC,MAA0B;QACpC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,gDAAgD;IAChD,kBAAkB,CAAC,QAAyB;QAC1C,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;IAClC,CAAC;IAED,gCAAgC;IAChC,QAAQ,CAAC,OAAsB;QAC7B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,qCAAqC;IACrC,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,mCAAmC;IACnC,IAAI;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,8BAA8B;IAC9B,aAAa;QACX,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,oCAAoC;IACpC,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;QAClF,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAE7B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAChC,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;oBAChC,2DAA2D;oBAC3D,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;wBACxD,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;4BACjE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;wBACtB,CAAC;wBACD,0BAA0B;wBAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,iBAAiB,CACjD,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,UAAU,CAC5C,CAAC;wBACF,IAAI,IAAI,EAAE,CAAC;4BACT,OAAO,uCAAuC,IAAI,kDAAkD,IAAI,EAAE,CAAC;wBAC7G,CAAC;wBACD,OAAO,CAAC,4BAA4B;oBACtC,CAAC;oBAED,2CAA2C;oBAC3C,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACrC,OAAO;oBACT,CAAC;oBACD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;gBACtB,CAAC,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,oCAAoC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBACtE,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,CACH,CAAC;QAEF,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;QAChE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,oBAAoB,QAAQ,CAAC,MAAM,6BAA6B,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,KAAK,CAAC,OAAO;QACX,MAAM,OAAO,CAAC,UAAU,CACtB,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAChC,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;YACvB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,mCAAmC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YACvE,CAAC;QACH,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,2CAA2C;IAC3C,KAAK,CAAC,IAAI,CAAC,SAAiB,EAAE,GAAoB;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,SAAS,EAAE,CAAC,CAAC;QACnF,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,oDAAoD;IACpD,KAAK,CAAC,SAAS,CAAC,GAAoB;QAClC,MAAM,OAAO,CAAC,UAAU,CACtB,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAC/C,CAAC;IACJ,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cereworker/channels",
|
|
3
|
-
"version": "26.
|
|
3
|
+
"version": "26.316.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
"matrix-js-sdk": "^36.0.0",
|
|
23
23
|
"@larksuiteoapi/node-sdk": "^1.39.0",
|
|
24
24
|
"wechaty": "^1.20.0",
|
|
25
|
-
"@cereworker/config": "26.
|
|
26
|
-
"@cereworker/core": "26.
|
|
25
|
+
"@cereworker/config": "26.316.1",
|
|
26
|
+
"@cereworker/core": "26.316.1"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"typescript": "^5.7.3"
|