azerclaw 1.1.1 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -0
- package/bin/azerclaw.ts +228 -1
- package/dist/bin/azerclaw.d.ts +3 -0
- package/dist/bin/azerclaw.d.ts.map +1 -1
- package/dist/bin/azerclaw.js +196 -1
- package/dist/bin/azerclaw.js.map +1 -1
- package/dist/src/agents/builtin.js +1 -1
- package/dist/src/agents/builtin.js.map +1 -1
- package/dist/src/channels/adapter.d.ts +10 -1
- package/dist/src/channels/adapter.d.ts.map +1 -1
- package/dist/src/channels/adapter.js +89 -5
- package/dist/src/channels/adapter.js.map +1 -1
- package/dist/src/channels/pairing.d.ts +38 -0
- package/dist/src/channels/pairing.d.ts.map +1 -0
- package/dist/src/channels/pairing.js +171 -0
- package/dist/src/channels/pairing.js.map +1 -0
- package/dist/src/channels/routing.d.ts +14 -0
- package/dist/src/channels/routing.d.ts.map +1 -0
- package/dist/src/channels/routing.js +45 -0
- package/dist/src/channels/routing.js.map +1 -0
- package/dist/src/channels/security.d.ts +18 -0
- package/dist/src/channels/security.d.ts.map +1 -0
- package/dist/src/channels/security.js +80 -0
- package/dist/src/channels/security.js.map +1 -0
- package/dist/src/channels/slack.js +1 -1
- package/dist/src/channels/slack.js.map +1 -1
- package/dist/src/cli/animations/fish.d.ts +2 -1
- package/dist/src/cli/animations/fish.d.ts.map +1 -1
- package/dist/src/cli/animations/fish.js +12 -10
- package/dist/src/cli/animations/fish.js.map +1 -1
- package/dist/src/cli/commands/channels.d.ts +17 -0
- package/dist/src/cli/commands/channels.d.ts.map +1 -0
- package/dist/src/cli/commands/channels.js +173 -0
- package/dist/src/cli/commands/channels.js.map +1 -0
- package/dist/src/cli/commands/chat.d.ts.map +1 -1
- package/dist/src/cli/commands/chat.js +1 -0
- package/dist/src/cli/commands/chat.js.map +1 -1
- package/dist/src/cli/commands/config.d.ts.map +1 -1
- package/dist/src/cli/commands/config.js +9 -0
- package/dist/src/cli/commands/config.js.map +1 -1
- package/dist/src/cli/commands/doctor.d.ts.map +1 -1
- package/dist/src/cli/commands/doctor.js +46 -2
- package/dist/src/cli/commands/doctor.js.map +1 -1
- package/dist/src/cli/commands/models.d.ts.map +1 -1
- package/dist/src/cli/commands/models.js +9 -3
- package/dist/src/cli/commands/models.js.map +1 -1
- package/dist/src/cli/commands/pairing.d.ts +7 -0
- package/dist/src/cli/commands/pairing.d.ts.map +1 -0
- package/dist/src/cli/commands/pairing.js +64 -0
- package/dist/src/cli/commands/pairing.js.map +1 -0
- package/dist/src/cli/commands/run.d.ts.map +1 -1
- package/dist/src/cli/commands/run.js +1 -0
- package/dist/src/cli/commands/run.js.map +1 -1
- package/dist/src/cli/commands/sandbox.d.ts +7 -0
- package/dist/src/cli/commands/sandbox.d.ts.map +1 -0
- package/dist/src/cli/commands/sandbox.js +98 -0
- package/dist/src/cli/commands/sandbox.js.map +1 -0
- package/dist/src/cli/commands/tui.d.ts.map +1 -1
- package/dist/src/cli/commands/tui.js +2 -1
- package/dist/src/cli/commands/tui.js.map +1 -1
- package/dist/src/config/schema.d.ts +214 -68
- package/dist/src/config/schema.d.ts.map +1 -1
- package/dist/src/config/schema.js +53 -7
- package/dist/src/config/schema.js.map +1 -1
- package/dist/src/core/runtime.d.ts +2 -0
- package/dist/src/core/runtime.d.ts.map +1 -1
- package/dist/src/core/runtime.js +73 -17
- package/dist/src/core/runtime.js.map +1 -1
- package/dist/src/core/sandbox.d.ts +34 -0
- package/dist/src/core/sandbox.d.ts.map +1 -0
- package/dist/src/core/sandbox.js +127 -0
- package/dist/src/core/sandbox.js.map +1 -0
- package/dist/src/index.d.ts +4 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/providers/openai.d.ts +7 -6
- package/dist/src/providers/openai.d.ts.map +1 -1
- package/dist/src/providers/openai.js.map +1 -1
- package/dist/src/providers/openrouter.d.ts +21 -0
- package/dist/src/providers/openrouter.d.ts.map +1 -0
- package/dist/src/providers/openrouter.js +65 -0
- package/dist/src/providers/openrouter.js.map +1 -0
- package/dist/src/providers/router.d.ts.map +1 -1
- package/dist/src/providers/router.js +2 -1
- package/dist/src/providers/router.js.map +1 -1
- package/dist/src/tools/index.d.ts.map +1 -1
- package/dist/src/tools/index.js +2 -0
- package/dist/src/tools/index.js.map +1 -1
- package/dist/src/tools/memory.d.ts +7 -0
- package/dist/src/tools/memory.d.ts.map +1 -0
- package/dist/src/tools/memory.js +78 -0
- package/dist/src/tools/memory.js.map +1 -0
- package/dist/src/tools/registry.d.ts +2 -1
- package/dist/src/tools/registry.d.ts.map +1 -1
- package/dist/src/tools/registry.js +6 -3
- package/dist/src/tools/registry.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtin.js","sourceRoot":"","sources":["../../../src/agents/builtin.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"builtin.js","sourceRoot":"","sources":["../../../src/agents/builtin.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* All messages from different platforms are normalized into a unified format.
|
|
5
5
|
*/
|
|
6
6
|
import { AgentRuntime } from '../core/runtime';
|
|
7
|
+
import { PairingStore } from './pairing';
|
|
7
8
|
export interface NormalizedMessage {
|
|
8
9
|
id: string;
|
|
9
10
|
platform: string;
|
|
@@ -32,7 +33,7 @@ export interface SendOptions {
|
|
|
32
33
|
export declare abstract class ChannelAdapter {
|
|
33
34
|
abstract readonly platform: string;
|
|
34
35
|
abstract readonly displayName: string;
|
|
35
|
-
protected
|
|
36
|
+
protected agents: Map<string, AgentRuntime>;
|
|
36
37
|
/**
|
|
37
38
|
* Initialize the adapter with credentials.
|
|
38
39
|
*/
|
|
@@ -53,5 +54,13 @@ export declare abstract class ChannelAdapter {
|
|
|
53
54
|
* Handle an incoming message — routes to agent.
|
|
54
55
|
*/
|
|
55
56
|
protected handleIncoming(message: NormalizedMessage): Promise<void>;
|
|
57
|
+
protected isDirectMessage(message: NormalizedMessage): boolean;
|
|
58
|
+
protected enforceDmPolicy(message: NormalizedMessage): Promise<boolean>;
|
|
59
|
+
protected getPairingStore(): PairingStore;
|
|
60
|
+
protected getChannelSecurityConfig(): {
|
|
61
|
+
dmPolicy: 'pairing' | 'open' | 'closed';
|
|
62
|
+
allowFrom: string[];
|
|
63
|
+
};
|
|
64
|
+
protected resolveSessionId(message: NormalizedMessage): string;
|
|
56
65
|
}
|
|
57
66
|
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/channels/adapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAc,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/channels/adapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAc,MAAM,iBAAiB,CAAC;AAG3D,OAAO,EAAmB,YAAY,EAAE,MAAM,WAAW,CAAC;AAK1D,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;IACpD,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;CAC5B;AAID,8BAAsB,cAAc;IAClC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IACtC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAa;IAExD;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/D;;OAEG;IACH,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAEpC;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAElD;;OAEG;IACH,QAAQ,CAAC,WAAW,IAAI,OAAO;IAE/B;;OAEG;cACa,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoCzE,SAAS,CAAC,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO;cAiB9C,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;IAoD7E,SAAS,CAAC,eAAe,IAAI,YAAY;IAIzC,SAAS,CAAC,wBAAwB,IAAI;QAAE,QAAQ,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE;IAUtG,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM;CAG/D"}
|
|
@@ -8,17 +8,25 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
8
8
|
exports.ChannelAdapter = void 0;
|
|
9
9
|
const runtime_1 = require("../core/runtime");
|
|
10
10
|
const security_1 = require("../core/security");
|
|
11
|
+
const manager_1 = require("../config/manager");
|
|
12
|
+
const pairing_1 = require("./pairing");
|
|
13
|
+
const routing_1 = require("./routing");
|
|
11
14
|
// ─── Base Adapter ───────────────────────────────────────────────
|
|
12
15
|
class ChannelAdapter {
|
|
13
|
-
|
|
16
|
+
agents = new Map();
|
|
14
17
|
/**
|
|
15
18
|
* Handle an incoming message — routes to agent.
|
|
16
19
|
*/
|
|
17
20
|
async handleIncoming(message) {
|
|
18
21
|
(0, security_1.auditLog)('CHANNEL_MSG_IN', `${this.platform}:${message.channelId} from ${message.senderName}`);
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
+
const allowed = await this.enforceDmPolicy(message);
|
|
23
|
+
if (!allowed)
|
|
24
|
+
return;
|
|
25
|
+
const sessionId = this.resolveSessionId(message);
|
|
26
|
+
let agent = this.agents.get(sessionId);
|
|
27
|
+
if (!agent) {
|
|
28
|
+
agent = new runtime_1.AgentRuntime({
|
|
29
|
+
sessionId,
|
|
22
30
|
eventHandler: async (event) => {
|
|
23
31
|
if (event.type === 'response' && event.content) {
|
|
24
32
|
await this.send({
|
|
@@ -29,9 +37,11 @@ class ChannelAdapter {
|
|
|
29
37
|
}
|
|
30
38
|
},
|
|
31
39
|
});
|
|
40
|
+
this.agents.set(sessionId, agent);
|
|
41
|
+
(0, security_1.auditLog)('CHANNEL_SESSION_ROUTE', `${this.platform}:${message.channelId} -> ${sessionId}`);
|
|
32
42
|
}
|
|
33
43
|
try {
|
|
34
|
-
await
|
|
44
|
+
await agent.chat(message.content);
|
|
35
45
|
}
|
|
36
46
|
catch (e) {
|
|
37
47
|
await this.send({
|
|
@@ -40,6 +50,80 @@ class ChannelAdapter {
|
|
|
40
50
|
});
|
|
41
51
|
}
|
|
42
52
|
}
|
|
53
|
+
isDirectMessage(message) {
|
|
54
|
+
if (this.platform === 'telegram') {
|
|
55
|
+
return String(message.metadata.chatType || '').toLowerCase() === 'private';
|
|
56
|
+
}
|
|
57
|
+
if (this.platform === 'discord') {
|
|
58
|
+
return !message.metadata.guildId;
|
|
59
|
+
}
|
|
60
|
+
if (this.platform === 'slack') {
|
|
61
|
+
const channelType = String(message.metadata.channelType || '').toLowerCase();
|
|
62
|
+
return channelType === 'im' || channelType === 'mpim';
|
|
63
|
+
}
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
async enforceDmPolicy(message) {
|
|
67
|
+
if (!this.isDirectMessage(message))
|
|
68
|
+
return true;
|
|
69
|
+
const { dmPolicy, allowFrom } = this.getChannelSecurityConfig();
|
|
70
|
+
const pairingStore = this.getPairingStore();
|
|
71
|
+
const senderApproved = pairingStore.isApproved(this.platform, message.senderId, allowFrom);
|
|
72
|
+
if (dmPolicy === 'closed') {
|
|
73
|
+
await this.send({
|
|
74
|
+
channelId: message.channelId,
|
|
75
|
+
content: 'DM access is currently disabled for this channel.',
|
|
76
|
+
replyTo: message.id,
|
|
77
|
+
});
|
|
78
|
+
(0, security_1.auditLog)('CHANNEL_DM_BLOCKED', `${this.platform}:${message.senderId} policy=closed`);
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
if (dmPolicy === 'open') {
|
|
82
|
+
if (allowFrom.length === 0 || senderApproved)
|
|
83
|
+
return true;
|
|
84
|
+
await this.send({
|
|
85
|
+
channelId: message.channelId,
|
|
86
|
+
content: 'DM access is restricted. Ask the operator to allowlist your account.',
|
|
87
|
+
replyTo: message.id,
|
|
88
|
+
});
|
|
89
|
+
(0, security_1.auditLog)('CHANNEL_DM_BLOCKED', `${this.platform}:${message.senderId} policy=open allowlist`);
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
// pairing (default)
|
|
93
|
+
if (senderApproved)
|
|
94
|
+
return true;
|
|
95
|
+
const pending = pairingStore.requestPairing({
|
|
96
|
+
platform: this.platform,
|
|
97
|
+
senderId: message.senderId,
|
|
98
|
+
senderName: message.senderName,
|
|
99
|
+
channelId: message.channelId,
|
|
100
|
+
});
|
|
101
|
+
await this.send({
|
|
102
|
+
channelId: message.channelId,
|
|
103
|
+
replyTo: message.id,
|
|
104
|
+
content: [
|
|
105
|
+
'Pairing required before I can respond in DMs.',
|
|
106
|
+
`Approve with: azerclaw pairing approve ${this.platform} ${pending.code}`,
|
|
107
|
+
].join('\n'),
|
|
108
|
+
});
|
|
109
|
+
(0, security_1.auditLog)('CHANNEL_DM_BLOCKED', `${this.platform}:${message.senderId} policy=pairing code=${pending.code}`);
|
|
110
|
+
return false;
|
|
111
|
+
}
|
|
112
|
+
getPairingStore() {
|
|
113
|
+
return (0, pairing_1.getPairingStore)();
|
|
114
|
+
}
|
|
115
|
+
getChannelSecurityConfig() {
|
|
116
|
+
const channelsConfig = (0, manager_1.getConfigManager)().getAll().channels;
|
|
117
|
+
const channelConfig = channelsConfig?.[this.platform] || {};
|
|
118
|
+
const dmPolicy = channelConfig.dmPolicy === 'open' || channelConfig.dmPolicy === 'closed'
|
|
119
|
+
? channelConfig.dmPolicy
|
|
120
|
+
: 'pairing';
|
|
121
|
+
const allowFrom = Array.isArray(channelConfig.allowFrom) ? channelConfig.allowFrom : [];
|
|
122
|
+
return { dmPolicy, allowFrom };
|
|
123
|
+
}
|
|
124
|
+
resolveSessionId(message) {
|
|
125
|
+
return (0, routing_1.resolveSessionIdForMessage)(message);
|
|
126
|
+
}
|
|
43
127
|
}
|
|
44
128
|
exports.ChannelAdapter = ChannelAdapter;
|
|
45
129
|
//# sourceMappingURL=adapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/channels/adapter.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,6CAA2D;AAC3D,+CAA4C;
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/channels/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export interface PendingPairing {
|
|
2
|
+
platform: string;
|
|
3
|
+
senderId: string;
|
|
4
|
+
senderName: string;
|
|
5
|
+
channelId: string;
|
|
6
|
+
code: string;
|
|
7
|
+
requestedAt: string;
|
|
8
|
+
expiresAt: string;
|
|
9
|
+
}
|
|
10
|
+
export interface ApprovedPairing {
|
|
11
|
+
platform: string;
|
|
12
|
+
senderId: string;
|
|
13
|
+
senderName: string;
|
|
14
|
+
approvedAt: string;
|
|
15
|
+
approvedBy: string;
|
|
16
|
+
}
|
|
17
|
+
export declare class PairingStore {
|
|
18
|
+
private filePath;
|
|
19
|
+
private pendingTtlMs;
|
|
20
|
+
private data;
|
|
21
|
+
constructor(filePath?: string, pendingTtlMs?: number);
|
|
22
|
+
private load;
|
|
23
|
+
private save;
|
|
24
|
+
private pruneExpiredPending;
|
|
25
|
+
requestPairing(input: {
|
|
26
|
+
platform: string;
|
|
27
|
+
senderId: string;
|
|
28
|
+
senderName: string;
|
|
29
|
+
channelId: string;
|
|
30
|
+
}): PendingPairing;
|
|
31
|
+
approve(platform: string, code: string, approvedBy?: string): ApprovedPairing | null;
|
|
32
|
+
revoke(platform: string, senderId: string): boolean;
|
|
33
|
+
isApproved(platform: string, senderId: string, allowFrom?: string[]): boolean;
|
|
34
|
+
listApproved(platform?: string): ApprovedPairing[];
|
|
35
|
+
listPending(platform?: string): PendingPairing[];
|
|
36
|
+
}
|
|
37
|
+
export declare function getPairingStore(): PairingStore;
|
|
38
|
+
//# sourceMappingURL=pairing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pairing.d.ts","sourceRoot":"","sources":["../../../src/channels/pairing.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AA0BD,qBAAa,YAAY;IAIrB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,YAAY;IAJtB,OAAO,CAAC,IAAI,CAA8C;gBAGhD,QAAQ,GAAE,MAA6B,EACvC,YAAY,GAAE,MAA+B;IAMvD,OAAO,CAAC,IAAI;IAmBZ,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,mBAAmB;IAS3B,cAAc,CAAC,KAAK,EAAE;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;KACnB,GAAG,cAAc;IA2BlB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,SAAQ,GAAG,eAAe,GAAG,IAAI;IA2BnF,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IAUnD,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,GAAE,MAAM,EAAO,GAAG,OAAO;IAKjF,YAAY,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,eAAe,EAAE;IAIlD,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,cAAc,EAAE;CAIjD;AAID,wBAAgB,eAAe,IAAI,YAAY,CAK9C"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.PairingStore = void 0;
|
|
37
|
+
exports.getPairingStore = getPairingStore;
|
|
38
|
+
const fs = __importStar(require("fs"));
|
|
39
|
+
const os = __importStar(require("os"));
|
|
40
|
+
const path = __importStar(require("path"));
|
|
41
|
+
const PAIRING_DIR = path.join(os.homedir(), '.azerclaw');
|
|
42
|
+
const DEFAULT_PAIRING_FILE = path.join(PAIRING_DIR, 'pairings.json');
|
|
43
|
+
const DEFAULT_PENDING_TTL_MS = 24 * 60 * 60 * 1000; // 24h
|
|
44
|
+
function ensurePairingDir() {
|
|
45
|
+
if (!fs.existsSync(PAIRING_DIR)) {
|
|
46
|
+
fs.mkdirSync(PAIRING_DIR, { recursive: true, mode: 0o700 });
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
function nowIso() {
|
|
50
|
+
return new Date().toISOString();
|
|
51
|
+
}
|
|
52
|
+
function generatePairingCode() {
|
|
53
|
+
const alphabet = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789';
|
|
54
|
+
let code = '';
|
|
55
|
+
for (let i = 0; i < 6; i++) {
|
|
56
|
+
code += alphabet[Math.floor(Math.random() * alphabet.length)];
|
|
57
|
+
}
|
|
58
|
+
return code;
|
|
59
|
+
}
|
|
60
|
+
class PairingStore {
|
|
61
|
+
filePath;
|
|
62
|
+
pendingTtlMs;
|
|
63
|
+
data = { pending: [], approved: [] };
|
|
64
|
+
constructor(filePath = DEFAULT_PAIRING_FILE, pendingTtlMs = DEFAULT_PENDING_TTL_MS) {
|
|
65
|
+
this.filePath = filePath;
|
|
66
|
+
this.pendingTtlMs = pendingTtlMs;
|
|
67
|
+
ensurePairingDir();
|
|
68
|
+
this.load();
|
|
69
|
+
}
|
|
70
|
+
load() {
|
|
71
|
+
try {
|
|
72
|
+
if (!fs.existsSync(this.filePath)) {
|
|
73
|
+
this.save();
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
const raw = fs.readFileSync(this.filePath, 'utf-8');
|
|
77
|
+
const parsed = JSON.parse(raw);
|
|
78
|
+
this.data = {
|
|
79
|
+
pending: Array.isArray(parsed.pending) ? parsed.pending : [],
|
|
80
|
+
approved: Array.isArray(parsed.approved) ? parsed.approved : [],
|
|
81
|
+
};
|
|
82
|
+
this.pruneExpiredPending();
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
this.data = { pending: [], approved: [] };
|
|
86
|
+
this.save();
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
save() {
|
|
90
|
+
fs.writeFileSync(this.filePath, JSON.stringify(this.data, null, 2), { mode: 0o600 });
|
|
91
|
+
}
|
|
92
|
+
pruneExpiredPending() {
|
|
93
|
+
const now = Date.now();
|
|
94
|
+
const before = this.data.pending.length;
|
|
95
|
+
this.data.pending = this.data.pending.filter(p => new Date(p.expiresAt).getTime() > now);
|
|
96
|
+
if (this.data.pending.length !== before) {
|
|
97
|
+
this.save();
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
requestPairing(input) {
|
|
101
|
+
this.pruneExpiredPending();
|
|
102
|
+
const existing = this.data.pending.find(p => p.platform === input.platform && p.senderId === input.senderId);
|
|
103
|
+
if (existing)
|
|
104
|
+
return existing;
|
|
105
|
+
let code = generatePairingCode();
|
|
106
|
+
while (this.data.pending.some(p => p.code === code)) {
|
|
107
|
+
code = generatePairingCode();
|
|
108
|
+
}
|
|
109
|
+
const pending = {
|
|
110
|
+
platform: input.platform,
|
|
111
|
+
senderId: input.senderId,
|
|
112
|
+
senderName: input.senderName,
|
|
113
|
+
channelId: input.channelId,
|
|
114
|
+
code,
|
|
115
|
+
requestedAt: nowIso(),
|
|
116
|
+
expiresAt: new Date(Date.now() + this.pendingTtlMs).toISOString(),
|
|
117
|
+
};
|
|
118
|
+
this.data.pending.push(pending);
|
|
119
|
+
this.save();
|
|
120
|
+
return pending;
|
|
121
|
+
}
|
|
122
|
+
approve(platform, code, approvedBy = 'cli') {
|
|
123
|
+
this.pruneExpiredPending();
|
|
124
|
+
const normalizedCode = code.trim().toUpperCase();
|
|
125
|
+
const idx = this.data.pending.findIndex(p => p.platform === platform && p.code.toUpperCase() === normalizedCode);
|
|
126
|
+
if (idx < 0)
|
|
127
|
+
return null;
|
|
128
|
+
const pending = this.data.pending[idx];
|
|
129
|
+
this.data.pending.splice(idx, 1);
|
|
130
|
+
this.data.approved = this.data.approved.filter(p => !(p.platform === pending.platform && p.senderId === pending.senderId));
|
|
131
|
+
const approved = {
|
|
132
|
+
platform: pending.platform,
|
|
133
|
+
senderId: pending.senderId,
|
|
134
|
+
senderName: pending.senderName,
|
|
135
|
+
approvedAt: nowIso(),
|
|
136
|
+
approvedBy,
|
|
137
|
+
};
|
|
138
|
+
this.data.approved.push(approved);
|
|
139
|
+
this.save();
|
|
140
|
+
return approved;
|
|
141
|
+
}
|
|
142
|
+
revoke(platform, senderId) {
|
|
143
|
+
const before = this.data.approved.length;
|
|
144
|
+
this.data.approved = this.data.approved.filter(p => !(p.platform === platform && p.senderId === senderId));
|
|
145
|
+
const changed = this.data.approved.length !== before;
|
|
146
|
+
if (changed)
|
|
147
|
+
this.save();
|
|
148
|
+
return changed;
|
|
149
|
+
}
|
|
150
|
+
isApproved(platform, senderId, allowFrom = []) {
|
|
151
|
+
if (allowFrom.includes('*') || allowFrom.includes(senderId))
|
|
152
|
+
return true;
|
|
153
|
+
return this.data.approved.some(p => p.platform === platform && p.senderId === senderId);
|
|
154
|
+
}
|
|
155
|
+
listApproved(platform) {
|
|
156
|
+
return this.data.approved.filter(p => !platform || p.platform === platform);
|
|
157
|
+
}
|
|
158
|
+
listPending(platform) {
|
|
159
|
+
this.pruneExpiredPending();
|
|
160
|
+
return this.data.pending.filter(p => !platform || p.platform === platform);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
exports.PairingStore = PairingStore;
|
|
164
|
+
let pairingStoreInstance = null;
|
|
165
|
+
function getPairingStore() {
|
|
166
|
+
if (!pairingStoreInstance) {
|
|
167
|
+
pairingStoreInstance = new PairingStore();
|
|
168
|
+
}
|
|
169
|
+
return pairingStoreInstance;
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=pairing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pairing.js","sourceRoot":"","sources":["../../../src/channels/pairing.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { NormalizedMessage } from './adapter';
|
|
2
|
+
export type SessionRoutingStrategy = 'channel' | 'platform_channel' | 'platform_sender';
|
|
3
|
+
export interface SessionRoutingRule {
|
|
4
|
+
platform?: string;
|
|
5
|
+
channelId?: string;
|
|
6
|
+
senderId?: string;
|
|
7
|
+
sessionId: string;
|
|
8
|
+
}
|
|
9
|
+
export interface SessionRoutingConfig {
|
|
10
|
+
strategy?: SessionRoutingStrategy;
|
|
11
|
+
rules?: SessionRoutingRule[];
|
|
12
|
+
}
|
|
13
|
+
export declare function resolveSessionIdForMessage(message: NormalizedMessage, routingConfig?: SessionRoutingConfig): string;
|
|
14
|
+
//# sourceMappingURL=routing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../../../src/channels/routing.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAEnD,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,kBAAkB,GAAG,iBAAiB,CAAC;AAExF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,KAAK,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAC9B;AAoBD,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,iBAAiB,EAC1B,aAAa,CAAC,EAAE,oBAAoB,GACnC,MAAM,CAwBR"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveSessionIdForMessage = resolveSessionIdForMessage;
|
|
4
|
+
const manager_1 = require("../config/manager");
|
|
5
|
+
function normalizeSegment(input) {
|
|
6
|
+
return input
|
|
7
|
+
.toLowerCase()
|
|
8
|
+
.replace(/[^a-z0-9._-]+/g, '_')
|
|
9
|
+
.replace(/^_+|_+$/g, '') || 'unknown';
|
|
10
|
+
}
|
|
11
|
+
function normalizeSessionId(input) {
|
|
12
|
+
return normalizeSegment(input).slice(0, 120);
|
|
13
|
+
}
|
|
14
|
+
function ruleMatches(message, rule) {
|
|
15
|
+
if (rule.platform && rule.platform !== message.platform)
|
|
16
|
+
return false;
|
|
17
|
+
if (rule.channelId && rule.channelId !== message.channelId)
|
|
18
|
+
return false;
|
|
19
|
+
if (rule.senderId && rule.senderId !== message.senderId)
|
|
20
|
+
return false;
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
function resolveSessionIdForMessage(message, routingConfig) {
|
|
24
|
+
const resolvedConfig = routingConfig ??
|
|
25
|
+
((0, manager_1.getConfigManager)().getAll().channels.routing || {});
|
|
26
|
+
const rules = resolvedConfig.rules || [];
|
|
27
|
+
const matchedRule = rules.find(rule => ruleMatches(message, rule));
|
|
28
|
+
if (matchedRule) {
|
|
29
|
+
return normalizeSessionId(matchedRule.sessionId);
|
|
30
|
+
}
|
|
31
|
+
const strategy = resolvedConfig.strategy || 'platform_channel';
|
|
32
|
+
const platform = normalizeSegment(message.platform || 'platform');
|
|
33
|
+
const channelId = normalizeSegment(message.channelId || 'channel');
|
|
34
|
+
const senderId = normalizeSegment(message.senderId || 'sender');
|
|
35
|
+
switch (strategy) {
|
|
36
|
+
case 'channel':
|
|
37
|
+
return `channel_${channelId}`;
|
|
38
|
+
case 'platform_sender':
|
|
39
|
+
return `${platform}_${senderId}`;
|
|
40
|
+
case 'platform_channel':
|
|
41
|
+
default:
|
|
42
|
+
return `${platform}_${channelId}`;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=routing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routing.js","sourceRoot":"","sources":["../../../src/channels/routing.ts"],"names":[],"mappings":";;AAmCA,gEA2BC;AA9DD,+CAAqD;AAiBrD,SAAS,gBAAgB,CAAC,KAAa;IACrC,OAAO,KAAK;SACT,WAAW,EAAE;SACb,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC;SAC9B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC;AAC1C,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa;IACvC,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,WAAW,CAAC,OAA0B,EAAE,IAAwB;IACvE,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtE,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IACzE,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,0BAA0B,CACxC,OAA0B,EAC1B,aAAoC;IAEpC,MAAM,cAAc,GAAG,aAAa;QACjC,CAAE,IAAA,0BAAgB,GAAE,CAAC,MAAM,EAAE,CAAC,QAAgB,CAAC,OAAO,IAAI,EAAE,CAA0B,CAAC;IAE1F,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,IAAI,EAAE,CAAC;IACzC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IACnE,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,kBAAkB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,IAAI,kBAAkB,CAAC;IAC/D,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,QAAQ,IAAI,UAAU,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC;IAEhE,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,SAAS;YACZ,OAAO,WAAW,SAAS,EAAE,CAAC;QAChC,KAAK,iBAAiB;YACpB,OAAO,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC;QACnC,KAAK,kBAAkB,CAAC;QACxB;YACE,OAAO,GAAG,QAAQ,IAAI,SAAS,EAAE,CAAC;IACtC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
declare const CHANNEL_PLATFORMS: readonly ["discord", "telegram", "slack"];
|
|
2
|
+
declare const VALID_DM_POLICIES: readonly ["pairing", "open", "closed"];
|
|
3
|
+
export type SupportedChannelPlatform = typeof CHANNEL_PLATFORMS[number];
|
|
4
|
+
export type DmPolicy = typeof VALID_DM_POLICIES[number];
|
|
5
|
+
export interface DmPolicyIssue {
|
|
6
|
+
platform: SupportedChannelPlatform;
|
|
7
|
+
severity: 'warn' | 'fail';
|
|
8
|
+
message: string;
|
|
9
|
+
}
|
|
10
|
+
export interface DmPolicyAuditResult {
|
|
11
|
+
issues: DmPolicyIssue[];
|
|
12
|
+
warnings: DmPolicyIssue[];
|
|
13
|
+
failures: DmPolicyIssue[];
|
|
14
|
+
}
|
|
15
|
+
export declare function auditDmPolicies(channelsConfig: any): DmPolicyAuditResult;
|
|
16
|
+
export declare function applySafeDmDefaults(configManager: any): string[];
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=security.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../../src/channels/security.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,iBAAiB,2CAA4C,CAAC;AACpE,QAAA,MAAM,iBAAiB,wCAAyC,CAAC;AAEjE,MAAM,MAAM,wBAAwB,GAAG,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACxE,MAAM,MAAM,QAAQ,GAAG,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAExD,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,wBAAwB,CAAC;IACnC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;AAUD,wBAAgB,eAAe,CAAC,cAAc,EAAE,GAAG,GAAG,mBAAmB,CAkDxE;AAED,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,GAAG,GAAG,MAAM,EAAE,CAwBhE"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.auditDmPolicies = auditDmPolicies;
|
|
4
|
+
exports.applySafeDmDefaults = applySafeDmDefaults;
|
|
5
|
+
const CHANNEL_PLATFORMS = ['discord', 'telegram', 'slack'];
|
|
6
|
+
const VALID_DM_POLICIES = ['pairing', 'open', 'closed'];
|
|
7
|
+
function getChannelConfig(channelsConfig, platform) {
|
|
8
|
+
return channelsConfig?.[platform] || {};
|
|
9
|
+
}
|
|
10
|
+
function isValidPolicy(policy) {
|
|
11
|
+
return VALID_DM_POLICIES.includes(policy);
|
|
12
|
+
}
|
|
13
|
+
function auditDmPolicies(channelsConfig) {
|
|
14
|
+
const issues = [];
|
|
15
|
+
for (const platform of CHANNEL_PLATFORMS) {
|
|
16
|
+
const channelConfig = getChannelConfig(channelsConfig, platform);
|
|
17
|
+
if (!channelConfig.enabled)
|
|
18
|
+
continue;
|
|
19
|
+
const policy = String(channelConfig.dmPolicy || 'pairing');
|
|
20
|
+
const allowFrom = Array.isArray(channelConfig.allowFrom) ? channelConfig.allowFrom : [];
|
|
21
|
+
if (!isValidPolicy(policy)) {
|
|
22
|
+
issues.push({
|
|
23
|
+
platform,
|
|
24
|
+
severity: 'fail',
|
|
25
|
+
message: `${platform}: invalid dmPolicy "${policy}"`,
|
|
26
|
+
});
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
if (policy === 'open' && (allowFrom.length === 0 || allowFrom.includes('*'))) {
|
|
30
|
+
issues.push({
|
|
31
|
+
platform,
|
|
32
|
+
severity: 'fail',
|
|
33
|
+
message: `${platform}: dmPolicy=open allows unrestricted inbound DMs`,
|
|
34
|
+
});
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
if (policy === 'open' && allowFrom.length > 0) {
|
|
38
|
+
issues.push({
|
|
39
|
+
platform,
|
|
40
|
+
severity: 'warn',
|
|
41
|
+
message: `${platform}: dmPolicy=open with allowlist (intentional exposure recommended to review)`,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
if (policy === 'pairing' && allowFrom.includes('*')) {
|
|
45
|
+
issues.push({
|
|
46
|
+
platform,
|
|
47
|
+
severity: 'warn',
|
|
48
|
+
message: `${platform}: allowFrom=* bypasses pairing protection`,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return {
|
|
53
|
+
issues,
|
|
54
|
+
warnings: issues.filter(i => i.severity === 'warn'),
|
|
55
|
+
failures: issues.filter(i => i.severity === 'fail'),
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
function applySafeDmDefaults(configManager) {
|
|
59
|
+
const channelsConfig = configManager.getAll().channels || {};
|
|
60
|
+
const changes = [];
|
|
61
|
+
for (const platform of CHANNEL_PLATFORMS) {
|
|
62
|
+
const channelConfig = getChannelConfig(channelsConfig, platform);
|
|
63
|
+
if (!channelConfig.enabled)
|
|
64
|
+
continue;
|
|
65
|
+
const policy = String(channelConfig.dmPolicy || 'pairing');
|
|
66
|
+
const allowFrom = Array.isArray(channelConfig.allowFrom) ? channelConfig.allowFrom : [];
|
|
67
|
+
const invalidPolicy = !isValidPolicy(policy);
|
|
68
|
+
const riskyOpen = policy === 'open' && (allowFrom.length === 0 || allowFrom.includes('*'));
|
|
69
|
+
if (invalidPolicy || riskyOpen) {
|
|
70
|
+
configManager.set(`channels.${platform}.dmPolicy`, 'pairing');
|
|
71
|
+
const sanitizedAllow = allowFrom.filter((x) => x !== '*');
|
|
72
|
+
if (sanitizedAllow.length !== allowFrom.length) {
|
|
73
|
+
configManager.set(`channels.${platform}.allowFrom`, sanitizedAllow);
|
|
74
|
+
}
|
|
75
|
+
changes.push(`${platform}: dmPolicy -> pairing`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return changes;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=security.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security.js","sourceRoot":"","sources":["../../../src/channels/security.ts"],"names":[],"mappings":"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"}
|
|
@@ -88,7 +88,7 @@ class SlackAdapter extends adapter_1.ChannelAdapter {
|
|
|
88
88
|
size: f.size,
|
|
89
89
|
})),
|
|
90
90
|
timestamp: new Date(parseFloat(event.ts) * 1000),
|
|
91
|
-
metadata: { threadTs: event.thread_ts },
|
|
91
|
+
metadata: { threadTs: event.thread_ts, channelType: event.channel_type },
|
|
92
92
|
};
|
|
93
93
|
this.handleIncoming(normalized);
|
|
94
94
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slack.js","sourceRoot":"","sources":["../../../src/channels/slack.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"slack.js","sourceRoot":"","sources":["../../../src/channels/slack.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,uCAA2E;AAC3E,+CAA4C;AAE5C,MAAa,YAAa,SAAQ,wBAAc;IACrC,QAAQ,GAAG,OAAO,CAAC;IACnB,WAAW,GAAG,OAAO,CAAC;IACvB,QAAQ,GAAG,EAAE,CAAC;IACd,QAAQ,GAAG,EAAE,CAAC;IACd,EAAE,GAAQ,IAAI,CAAC;IACf,SAAS,GAAG,KAAK,CAAC;IAE1B,KAAK,CAAC,OAAO,CAAC,MAA8B;QAC1C,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QAED,oCAAoC;QACpC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,6CAA6C,EAAE;YACrE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,eAAe,EAAE,UAAU,IAAI,CAAC,QAAQ,EAAE,EAAE;SACxD,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAS,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAElE,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,EAAE,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAElC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAA,mBAAQ,EAAC,iBAAiB,EAAE,oBAAoB,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAW,EAAE,EAAE;YACpC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACvB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAA,mBAAQ,EAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,EAAE;YAAE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAoB;QAC7B,MAAM,KAAK,CAAC,wCAAwC,EAAE;YACpD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,eAAe,EAAE,UAAU,IAAI,CAAC,QAAQ,EAAE;gBAC1C,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,OAAO,EAAE,OAAO,CAAC,SAAS;gBAC1B,IAAI,EAAE,OAAO,CAAC,OAAO;gBACrB,SAAS,EAAE,OAAO,CAAC,OAAO;aAC3B,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAEO,gBAAgB,CAAC,OAAY;QACnC,uBAAuB;QACvB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC;QACrC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM;YAAE,OAAO;QAE/D,MAAM,UAAU,GAAsB;YACpC,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,QAAQ,EAAE,OAAO;YACjB,SAAS,EAAE,KAAK,CAAC,OAAO;YACxB,QAAQ,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;YAC1B,UAAU,EAAE,KAAK,CAAC,IAAI,IAAI,SAAS;YACnC,OAAO,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;YACzB,WAAW,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;gBAChD,IAAI,EAAE,MAAM;gBACZ,GAAG,EAAE,CAAC,CAAC,WAAW;gBAClB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,IAAI,EAAE,CAAC,CAAC,IAAI;aACb,CAAC,CAAC;YACH,SAAS,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;YAChD,QAAQ,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE;SACzE,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;CACF;AA/FD,oCA+FC"}
|