pi-courier 0.1.33 → 0.1.35
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 +1 -1
- package/README.zh-CN.md +1 -1
- package/dist/logger.d.ts +5 -2
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +30 -2
- package/dist/logger.js.map +1 -1
- package/dist/standalone.js +1 -1
- package/dist/standalone.js.map +1 -1
- package/dist/transports/matrix-rooms.d.ts +55 -0
- package/dist/transports/matrix-rooms.d.ts.map +1 -0
- package/dist/transports/matrix-rooms.js +116 -0
- package/dist/transports/matrix-rooms.js.map +1 -0
- package/dist/transports/matrix-utils.d.ts +4 -0
- package/dist/transports/matrix-utils.d.ts.map +1 -1
- package/dist/transports/matrix-utils.js +8 -0
- package/dist/transports/matrix-utils.js.map +1 -1
- package/dist/transports/matrix-utils.test.js +29 -1
- package/dist/transports/matrix-utils.test.js.map +1 -1
- package/dist/transports/matrix.d.ts +9 -32
- package/dist/transports/matrix.d.ts.map +1 -1
- package/dist/transports/matrix.js +49 -137
- package/dist/transports/matrix.js.map +1 -1
- package/package.json +3 -1
- package/scripts/ensure-crypto-native.d.mts +19 -0
- package/scripts/ensure-crypto-native.mjs +147 -0
package/README.md
CHANGED
|
@@ -56,7 +56,7 @@ npm run build
|
|
|
56
56
|
npm link # make the `pi-courier` command available globally
|
|
57
57
|
```
|
|
58
58
|
|
|
59
|
-
**Do not use `--ignore-scripts`**: the Matrix E2EE library downloads its native binary via postinstall.
|
|
59
|
+
**Do not use `--ignore-scripts`**: the Matrix E2EE library downloads its native binary via postinstall. On npm >= 11 the `allow-scripts` default may block that dependency's postinstall; `pi-courier`'s own postinstall self-checks for it and auto-downloads the missing native binary (one extra download on first install). If you still hit `Cannot find module '@matrix-org/matrix-sdk-crypto-nodejs-linux-x64-gnu'` (e.g. the auto-download was skipped), run manually:
|
|
60
60
|
|
|
61
61
|
```bash
|
|
62
62
|
cd node_modules/@matrix-org/matrix-sdk-crypto-nodejs
|
package/README.zh-CN.md
CHANGED
|
@@ -56,7 +56,7 @@ npm run build
|
|
|
56
56
|
npm link # 让 `pi-courier` 命令全局可用
|
|
57
57
|
```
|
|
58
58
|
|
|
59
|
-
**不要用 `--ignore-scripts`**:Matrix E2EE 库的 postinstall
|
|
59
|
+
**不要用 `--ignore-scripts`**:Matrix E2EE 库的 postinstall 会下载原生二进制。npm >= 11 的 `allow-scripts` 默认可能拦截该依赖的 postinstall;`pi-courier` 自己的 postinstall 会自检并**自动补下**缺失的原生二进制(首次安装多下载一次)。若仍报 `Cannot find module '@matrix-org/matrix-sdk-crypto-nodejs-linux-x64-gnu'`(比如自检被跳过),再手动补:
|
|
60
60
|
|
|
61
61
|
```bash
|
|
62
62
|
cd node_modules/@matrix-org/matrix-sdk-crypto-nodejs
|
package/dist/logger.d.ts
CHANGED
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
* journald-friendly).
|
|
12
12
|
*/
|
|
13
13
|
export type LogLevel = "debug" | "info" | "warn" | "error";
|
|
14
|
+
export declare function suppressLogLines(...substrings: string[]): () => void;
|
|
14
15
|
export interface LeveledLogger {
|
|
15
16
|
setLogLevel(level: LogLevel): void;
|
|
16
17
|
getLogLevel(): LogLevel;
|
|
@@ -22,8 +23,10 @@ export interface LeveledLogger {
|
|
|
22
23
|
}
|
|
23
24
|
/**
|
|
24
25
|
* Create an isolated leveled logger. The write threshold lives in the
|
|
25
|
-
* instance, so tests never share
|
|
26
|
-
*
|
|
26
|
+
* instance, so tests never share that piece of module state; the one
|
|
27
|
+
* deliberately shared piece is the suppression window below, which models
|
|
28
|
+
* a process-wide event (the SDK sync whose noise it hides) rather than
|
|
29
|
+
* logger configuration.
|
|
27
30
|
*/
|
|
28
31
|
export declare function createLogger(initial?: LogLevel): LeveledLogger;
|
|
29
32
|
/** Parse a CLI/config level string; undefined when invalid. */
|
package/dist/logger.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAqB3D,wBAAgB,gBAAgB,CAAC,GAAG,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAKpE;AAQD,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IACnC,WAAW,IAAI,QAAQ,CAAC;IACxB,SAAS,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC;IACpC,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChC,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC/B,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CACjC;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,OAAO,GAAE,QAAiB,GAAG,aAAa,CA2BtE;AAED,+DAA+D;AAC/D,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAMjE;AAmBD,eAAO,MAAM,MAAM,EAAE,aAA6B,CAAC;AACnD,eAAO,MAAM,WAAW,UAxEH,QAAQ,KAAG,IAwEoB,CAAC;AACrD,eAAO,MAAM,WAAW,QAxEP,QAwEmC,CAAC;AACrD,eAAO,MAAM,SAAS,UAxEH,QAAQ,KAAG,OAwEkB,CAAC"}
|
package/dist/logger.js
CHANGED
|
@@ -14,10 +14,36 @@ const LEVEL_ORDER = { debug: 0, info: 1, warn: 2, error: 3 };
|
|
|
14
14
|
const LEVEL_NAMES = { debug: "DEBUG", info: "INFO", warn: "WARN", error: "ERROR" };
|
|
15
15
|
/** Truncation limits keep log lines bounded (journald-friendly). */
|
|
16
16
|
const MAX_STRING = 2000;
|
|
17
|
+
/**
|
|
18
|
+
* Log-line suppression window, shared by every logger instance: while open,
|
|
19
|
+
* lines whose message contains one of the substrings are dropped at every
|
|
20
|
+
* level, from any module. Matching runs on the UNtruncated rendering — a
|
|
21
|
+
* >2000-char noise line must not escape by having its pattern past the
|
|
22
|
+
* truncation point. The one consumer is the Matrix adapter, which opens the
|
|
23
|
+
* window around the SDK's initial sync (it replays history and emits two
|
|
24
|
+
* known-benign error patterns — see matrix.ts). Process-wide state is
|
|
25
|
+
* honest here: the SDK's LogService is itself process-wide. The returned
|
|
26
|
+
* closer removes exactly the substrings this call added.
|
|
27
|
+
*/
|
|
28
|
+
let suppressionPatterns = [];
|
|
29
|
+
export function suppressLogLines(...substrings) {
|
|
30
|
+
suppressionPatterns.push(...substrings);
|
|
31
|
+
return () => {
|
|
32
|
+
suppressionPatterns = suppressionPatterns.filter(p => !substrings.includes(p));
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
function isSuppressed(args) {
|
|
36
|
+
if (suppressionPatterns.length === 0)
|
|
37
|
+
return false;
|
|
38
|
+
const msg = args.map(a => typeof a === "string" ? a : JSON.stringify(a)).join(" ");
|
|
39
|
+
return suppressionPatterns.some(p => msg.includes(p));
|
|
40
|
+
}
|
|
17
41
|
/**
|
|
18
42
|
* Create an isolated leveled logger. The write threshold lives in the
|
|
19
|
-
* instance, so tests never share
|
|
20
|
-
*
|
|
43
|
+
* instance, so tests never share that piece of module state; the one
|
|
44
|
+
* deliberately shared piece is the suppression window below, which models
|
|
45
|
+
* a process-wide event (the SDK sync whose noise it hides) rather than
|
|
46
|
+
* logger configuration.
|
|
21
47
|
*/
|
|
22
48
|
export function createLogger(initial = "info") {
|
|
23
49
|
let threshold = initial;
|
|
@@ -25,6 +51,8 @@ export function createLogger(initial = "info") {
|
|
|
25
51
|
const write = (level, args) => {
|
|
26
52
|
if (!isEnabled(level))
|
|
27
53
|
return;
|
|
54
|
+
if (isSuppressed(args))
|
|
55
|
+
return;
|
|
28
56
|
const line = [`[${new Date().toISOString()}]`, `[${LEVEL_NAMES[level]}]`, ...args.map(formatArg)].join(" ");
|
|
29
57
|
if (level === "error" || level === "warn") {
|
|
30
58
|
console.error(line);
|
package/dist/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,MAAM,WAAW,GAA6B,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACvF,MAAM,WAAW,GAA6B,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAE7G,oEAAoE;AACpE,MAAM,UAAU,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
|
package/dist/standalone.js
CHANGED
|
@@ -92,7 +92,7 @@ export async function main(argv = process.argv.slice(2)) {
|
|
|
92
92
|
if (config.matrix?.homeserverUrl && config.matrix?.accessToken) {
|
|
93
93
|
const matrix = new MatrixProvider(config.matrix, (chatId) => auth.isChannelEnabled(chatId));
|
|
94
94
|
transports.push(matrix);
|
|
95
|
-
roomOps = matrix;
|
|
95
|
+
roomOps = matrix.roomOps;
|
|
96
96
|
}
|
|
97
97
|
if (transports.length === 0) {
|
|
98
98
|
// No Matrix config yet — do NOT exit. Under systemd/docker restart
|
package/dist/standalone.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standalone.js","sourceRoot":"","sources":["../src/standalone.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"standalone.js","sourceRoot":"","sources":["../src/standalone.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { MatrixClient } from "matrix-bot-sdk";
|
|
2
|
+
import type { RoomOps } from "./interface.js";
|
|
3
|
+
/**
|
|
4
|
+
* RoomOps adapter for Matrix — the room-capability half of the Matrix
|
|
5
|
+
* integration. MatrixProvider composes this instance and the composition
|
|
6
|
+
* root hands it to the /pmctl path and the startup space ensure; the
|
|
7
|
+
* message-I/O half (Transport) stays in matrix.ts.
|
|
8
|
+
*
|
|
9
|
+
* The adapter reaches the live client through injected accessors instead
|
|
10
|
+
* of holding the provider, so nothing in here can accidentally grow
|
|
11
|
+
* transport concerns. Failure semantics follow the RoomOps doc: every
|
|
12
|
+
* operation throws with a meaningful message, the query members
|
|
13
|
+
* (getBotUserId, encryptionAvailable) report not-connected instead.
|
|
14
|
+
*/
|
|
15
|
+
export declare class MatrixRoomOps implements RoomOps {
|
|
16
|
+
private deps;
|
|
17
|
+
/** Set by MatrixProvider after connect, once the crypto stack verdict is in. */
|
|
18
|
+
encryptionAvailable: boolean;
|
|
19
|
+
constructor(deps: {
|
|
20
|
+
getClient: () => MatrixClient | undefined;
|
|
21
|
+
getBotUserId: () => string | undefined;
|
|
22
|
+
/** Transport-side cache purge after the bot actively leaves a room. */
|
|
23
|
+
onLeftRoom: (roomId: string) => void;
|
|
24
|
+
});
|
|
25
|
+
private get client();
|
|
26
|
+
/** Create a private room — the general primitive (name + invitees; E2EE
|
|
27
|
+
* state opt-in, only pass encrypted=true when encryptionAvailable). */
|
|
28
|
+
createRoom(opts: {
|
|
29
|
+
name: string;
|
|
30
|
+
inviteUserIds: string[];
|
|
31
|
+
encrypted?: boolean;
|
|
32
|
+
}): Promise<string>;
|
|
33
|
+
/** Create a private project room (used by /pmctl new). */
|
|
34
|
+
createProjectRoom(name: string, inviteUserId: string): Promise<string>;
|
|
35
|
+
/** Create a private space (m.space organizational container). */
|
|
36
|
+
createSpace(opts: {
|
|
37
|
+
name: string;
|
|
38
|
+
inviteUserIds: string[];
|
|
39
|
+
}): Promise<string>;
|
|
40
|
+
/** Link a room into a space (used by the startup space ensure). */
|
|
41
|
+
addRoomToSpace(spaceRoomId: string, childRoomId: string): Promise<void>;
|
|
42
|
+
/** Unlink a room from a space (used by /pmctl rm). */
|
|
43
|
+
removeRoomFromSpace(spaceRoomId: string, childRoomId: string): Promise<void>;
|
|
44
|
+
/** Invite a user into a room (space membership). */
|
|
45
|
+
inviteUser(roomId: string, userId: string): Promise<void>;
|
|
46
|
+
/** Rename a room (used to brand the DM as the management room). */
|
|
47
|
+
setRoomName(roomId: string, name: string): Promise<void>;
|
|
48
|
+
/** Set a user's power level in a room (used to make the project owner admin). */
|
|
49
|
+
setUserPowerLevel(roomId: string, userId: string, level: number): Promise<void>;
|
|
50
|
+
/** Have the bot actively leave a room (used by /pmctl rm). */
|
|
51
|
+
leaveRoom(roomId: string, reason?: string): Promise<void>;
|
|
52
|
+
/** The bot's own Matrix user ID (null if not connected). */
|
|
53
|
+
getBotUserId(): string | null;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=matrix-rooms.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matrix-rooms.d.ts","sourceRoot":"","sources":["../../src/transports/matrix-rooms.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;;;;;;;;;;GAWG;AACH,qBAAa,aAAc,YAAW,OAAO;IAKzC,OAAO,CAAC,IAAI;IAJd,gFAAgF;IAChF,mBAAmB,UAAS;gBAGlB,IAAI,EAAE;QACZ,SAAS,EAAE,MAAM,YAAY,GAAG,SAAS,CAAC;QAC1C,YAAY,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;QACvC,uEAAuE;QACvE,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;KACtC;IAGH,OAAO,KAAK,MAAM,GAIjB;IAED;4EACwE;IAClE,UAAU,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,EAAE,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAoBvG,0DAA0D;IACpD,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI5E,iEAAiE;IAC3D,WAAW,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAUnF,mEAAmE;IAC7D,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB7E,sDAAsD;IAChD,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAalF,oDAAoD;IAC9C,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/D,mEAAmE;IAC7D,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9D,iFAAiF;IAC3E,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrF,8DAA8D;IACxD,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK/D,4DAA4D;IAC5D,YAAY,IAAI,MAAM,GAAG,IAAI;CAG9B"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RoomOps adapter for Matrix — the room-capability half of the Matrix
|
|
3
|
+
* integration. MatrixProvider composes this instance and the composition
|
|
4
|
+
* root hands it to the /pmctl path and the startup space ensure; the
|
|
5
|
+
* message-I/O half (Transport) stays in matrix.ts.
|
|
6
|
+
*
|
|
7
|
+
* The adapter reaches the live client through injected accessors instead
|
|
8
|
+
* of holding the provider, so nothing in here can accidentally grow
|
|
9
|
+
* transport concerns. Failure semantics follow the RoomOps doc: every
|
|
10
|
+
* operation throws with a meaningful message, the query members
|
|
11
|
+
* (getBotUserId, encryptionAvailable) report not-connected instead.
|
|
12
|
+
*/
|
|
13
|
+
export class MatrixRoomOps {
|
|
14
|
+
deps;
|
|
15
|
+
/** Set by MatrixProvider after connect, once the crypto stack verdict is in. */
|
|
16
|
+
encryptionAvailable = false;
|
|
17
|
+
constructor(deps) {
|
|
18
|
+
this.deps = deps;
|
|
19
|
+
}
|
|
20
|
+
get client() {
|
|
21
|
+
const client = this.deps.getClient();
|
|
22
|
+
if (!client)
|
|
23
|
+
throw new Error("Matrix 未连接");
|
|
24
|
+
return client;
|
|
25
|
+
}
|
|
26
|
+
/** Create a private room — the general primitive (name + invitees; E2EE
|
|
27
|
+
* state opt-in, only pass encrypted=true when encryptionAvailable). */
|
|
28
|
+
async createRoom(opts) {
|
|
29
|
+
const roomId = await this.client.createRoom({
|
|
30
|
+
name: opts.name,
|
|
31
|
+
invite: opts.inviteUserIds,
|
|
32
|
+
preset: "private_chat",
|
|
33
|
+
...(opts.encrypted
|
|
34
|
+
? {
|
|
35
|
+
initial_state: [
|
|
36
|
+
{
|
|
37
|
+
type: "m.room.encryption",
|
|
38
|
+
state_key: "",
|
|
39
|
+
content: { algorithm: "m.megolm.v1.aes-sha2" },
|
|
40
|
+
},
|
|
41
|
+
],
|
|
42
|
+
}
|
|
43
|
+
: {}),
|
|
44
|
+
});
|
|
45
|
+
return roomId;
|
|
46
|
+
}
|
|
47
|
+
/** Create a private project room (used by /pmctl new). */
|
|
48
|
+
async createProjectRoom(name, inviteUserId) {
|
|
49
|
+
return this.createRoom({ name, inviteUserIds: [inviteUserId] });
|
|
50
|
+
}
|
|
51
|
+
/** Create a private space (m.space organizational container). */
|
|
52
|
+
async createSpace(opts) {
|
|
53
|
+
return this.client.createRoom({
|
|
54
|
+
name: opts.name,
|
|
55
|
+
invite: opts.inviteUserIds,
|
|
56
|
+
preset: "private_chat",
|
|
57
|
+
visibility: "private",
|
|
58
|
+
creation_content: { type: "m.space" },
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
/** Link a room into a space (used by the startup space ensure). */
|
|
62
|
+
async addRoomToSpace(spaceRoomId, childRoomId) {
|
|
63
|
+
const botUserId = this.deps.getBotUserId();
|
|
64
|
+
const via = botUserId ? [botUserId.split(":")[1] ?? ""] : [];
|
|
65
|
+
// m.space.child (state_key = child room id) is what makes Element show
|
|
66
|
+
// the room inside the space.
|
|
67
|
+
await this.client.sendStateEvent(spaceRoomId, "m.space.child", childRoomId, { via });
|
|
68
|
+
// m.room.parent lives in the child room; the bot may lack power there
|
|
69
|
+
// (rooms it did not create). Element works from m.space.child alone.
|
|
70
|
+
try {
|
|
71
|
+
await this.client.sendStateEvent(childRoomId, "m.room.parent", spaceRoomId, {
|
|
72
|
+
via,
|
|
73
|
+
canonical: true,
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
// best-effort
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/** Unlink a room from a space (used by /pmctl rm). */
|
|
81
|
+
async removeRoomFromSpace(spaceRoomId, childRoomId) {
|
|
82
|
+
// Empty content drops the child from the space's view (m.space.child
|
|
83
|
+
// with no via servers is not a resolvable child).
|
|
84
|
+
await this.client.sendStateEvent(spaceRoomId, "m.space.child", childRoomId, {});
|
|
85
|
+
// Clear the child-side badge too — best-effort; the bot leaves the room
|
|
86
|
+
// right after, so remaining members keep a clean room header.
|
|
87
|
+
try {
|
|
88
|
+
await this.client.sendStateEvent(childRoomId, "m.room.parent", spaceRoomId, {});
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
// best-effort
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/** Invite a user into a room (space membership). */
|
|
95
|
+
async inviteUser(roomId, userId) {
|
|
96
|
+
await this.client.inviteUser(userId, roomId);
|
|
97
|
+
}
|
|
98
|
+
/** Rename a room (used to brand the DM as the management room). */
|
|
99
|
+
async setRoomName(roomId, name) {
|
|
100
|
+
await this.client.sendStateEvent(roomId, "m.room.name", "", { name });
|
|
101
|
+
}
|
|
102
|
+
/** Set a user's power level in a room (used to make the project owner admin). */
|
|
103
|
+
async setUserPowerLevel(roomId, userId, level) {
|
|
104
|
+
await this.client.setUserPowerLevel(userId, roomId, level);
|
|
105
|
+
}
|
|
106
|
+
/** Have the bot actively leave a room (used by /pmctl rm). */
|
|
107
|
+
async leaveRoom(roomId, reason) {
|
|
108
|
+
await this.client.leaveRoom(roomId, reason);
|
|
109
|
+
this.deps.onLeftRoom(roomId);
|
|
110
|
+
}
|
|
111
|
+
/** The bot's own Matrix user ID (null if not connected). */
|
|
112
|
+
getBotUserId() {
|
|
113
|
+
return this.deps.getBotUserId() ?? null;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=matrix-rooms.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matrix-rooms.js","sourceRoot":"","sources":["../../src/transports/matrix-rooms.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,4 +22,8 @@ export declare function extractUsername(userId: string): string;
|
|
|
22
22
|
export declare function wasBotMentioned(messageText: string, botUserId: string): boolean;
|
|
23
23
|
/** Strip bot mention from message text — symmetric with wasBotMentioned */
|
|
24
24
|
export declare function stripBotMention(text: string, botUserId: string): string;
|
|
25
|
+
/** A room is a group chat when it holds more than two members (bot + one other = DM). */
|
|
26
|
+
export declare function isGroupChatRoom(memberCount: number): boolean;
|
|
27
|
+
/** Whether to post the one-time join hint: a multi-user room that is not yet enabled. */
|
|
28
|
+
export declare function shouldPostJoinHint(memberCount: number, isEnabled: boolean): boolean;
|
|
25
29
|
//# sourceMappingURL=matrix-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matrix-utils.d.ts","sourceRoot":"","sources":["../../src/transports/matrix-utils.ts"],"names":[],"mappings":"AAWA,uFAAuF;AACvF,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,CAEtF;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,GAAG,CAAA;CAAE,EACpE,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,EACxB,MAAM,EAAE,MAAM,GACb,MAAM,GAAG,IAAI,CAmBf;AAED,iFAAiF;AACjF,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAM/E;AAED,2EAA2E;AAC3E,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAOvE"}
|
|
1
|
+
{"version":3,"file":"matrix-utils.d.ts","sourceRoot":"","sources":["../../src/transports/matrix-utils.ts"],"names":[],"mappings":"AAWA,uFAAuF;AACvF,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,CAEtF;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,GAAG,CAAA;CAAE,EACpE,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,EACxB,MAAM,EAAE,MAAM,GACb,MAAM,GAAG,IAAI,CAmBf;AAED,iFAAiF;AACjF,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAM/E;AAED,2EAA2E;AAC3E,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAOvE;AAED,yFAAyF;AACzF,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED,yFAAyF;AACzF,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAEnF"}
|
|
@@ -62,6 +62,14 @@ export function stripBotMention(text, botUserId) {
|
|
|
62
62
|
}
|
|
63
63
|
return out.trim();
|
|
64
64
|
}
|
|
65
|
+
/** A room is a group chat when it holds more than two members (bot + one other = DM). */
|
|
66
|
+
export function isGroupChatRoom(memberCount) {
|
|
67
|
+
return memberCount > 2;
|
|
68
|
+
}
|
|
69
|
+
/** Whether to post the one-time join hint: a multi-user room that is not yet enabled. */
|
|
70
|
+
export function shouldPostJoinHint(memberCount, isEnabled) {
|
|
71
|
+
return isGroupChatRoom(memberCount) && !isEnabled;
|
|
72
|
+
}
|
|
65
73
|
function escapeRegExp(s) {
|
|
66
74
|
return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
67
75
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matrix-utils.js","sourceRoot":"","sources":["../../src/transports/matrix-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,UAAU,MAAM,aAAa,CAAC;AAErC,kEAAkE;AAClE,wDAAwD;AACxD,sCAAsC;AACtC,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAExE,uFAAuF;AACvF,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;AAC/D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAoE,EACpE,SAAiB,EACjB,WAAmB,EACnB,WAAwB,EACxB,MAAc;IAEd,sBAAsB;IACtB,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,aAAa,CAAC;IAErD,2EAA2E;IAC3E,MAAM,OAAO,GAAG,KAAK,CAAC,gBAAgB,IAAI,CAAC,CAAC;IAC5C,IAAI,OAAO,GAAG,WAAW;QAAE,OAAO,OAAO,CAAC;IAE1C,6BAA6B;IAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC9B,IAAI,OAAO,EAAE,OAAO,KAAK,QAAQ,IAAI,CAAC,OAAO,EAAE,IAAI;QAAE,OAAO,UAAU,CAAC;IAEvE,mDAAmD;IACnD,IAAI,OAAO,CAAC,eAAe,CAAC;QAAE,OAAO,MAAM,CAAC;IAE5C,4DAA4D;IAC5D,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,YAAY,CAAC;IAElD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACtD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,WAAmB,EAAE,SAAiB;IACpE,IAAI,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IACjD,MAAM,SAAS,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAC7C,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7B,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,IAAI,YAAY,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC7D,OAAO,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC9B,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,SAAiB;IAC7D,MAAM,SAAS,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAC7C,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IACrE,IAAI,SAAS,EAAE,CAAC;QACd,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,YAAY,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC;AAED,SAAS,YAAY,CAAC,CAAS;IAC7B,OAAO,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC"}
|
|
1
|
+
{"version":3,"file":"matrix-utils.js","sourceRoot":"","sources":["../../src/transports/matrix-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,UAAU,MAAM,aAAa,CAAC;AAErC,kEAAkE;AAClE,wDAAwD;AACxD,sCAAsC;AACtC,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAExE,uFAAuF;AACvF,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;AAC/D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAoE,EACpE,SAAiB,EACjB,WAAmB,EACnB,WAAwB,EACxB,MAAc;IAEd,sBAAsB;IACtB,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,aAAa,CAAC;IAErD,2EAA2E;IAC3E,MAAM,OAAO,GAAG,KAAK,CAAC,gBAAgB,IAAI,CAAC,CAAC;IAC5C,IAAI,OAAO,GAAG,WAAW;QAAE,OAAO,OAAO,CAAC;IAE1C,6BAA6B;IAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC9B,IAAI,OAAO,EAAE,OAAO,KAAK,QAAQ,IAAI,CAAC,OAAO,EAAE,IAAI;QAAE,OAAO,UAAU,CAAC;IAEvE,mDAAmD;IACnD,IAAI,OAAO,CAAC,eAAe,CAAC;QAAE,OAAO,MAAM,CAAC;IAE5C,4DAA4D;IAC5D,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,YAAY,CAAC;IAElD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACtD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,WAAmB,EAAE,SAAiB;IACpE,IAAI,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IACjD,MAAM,SAAS,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAC7C,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAC7B,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,IAAI,YAAY,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC7D,OAAO,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC9B,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,SAAiB;IAC7D,MAAM,SAAS,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAC7C,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IACrE,IAAI,SAAS,EAAE,CAAC;QACd,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,YAAY,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,eAAe,CAAC,WAAmB;IACjD,OAAO,WAAW,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,kBAAkB,CAAC,WAAmB,EAAE,SAAkB;IACxE,OAAO,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC;AACpD,CAAC;AAED,SAAS,YAAY,CAAC,CAAS;IAC7B,OAAO,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as fc from "fast-check";
|
|
2
2
|
import { describe, expect, it } from "vitest";
|
|
3
|
-
import { extractUsername, formatForMatrix, shouldSkipEvent, stripBotMention, wasBotMentioned, } from "./matrix-utils.js";
|
|
3
|
+
import { extractUsername, formatForMatrix, isGroupChatRoom, shouldPostJoinHint, shouldSkipEvent, stripBotMention, wasBotMentioned, } from "./matrix-utils.js";
|
|
4
4
|
// ─── formatForMatrix ──────────────────────────────────────────
|
|
5
5
|
describe("formatForMatrix", () => {
|
|
6
6
|
it("renders plain text as a paragraph, body preserved", () => {
|
|
@@ -211,6 +211,34 @@ describe("stripBotMention properties", () => {
|
|
|
211
211
|
}));
|
|
212
212
|
});
|
|
213
213
|
});
|
|
214
|
+
// ─── isGroupChatRoom ──────────────────────────────────────────
|
|
215
|
+
describe("isGroupChatRoom", () => {
|
|
216
|
+
it("classifies >2 members as a group chat", () => {
|
|
217
|
+
expect(isGroupChatRoom(3)).toBe(true);
|
|
218
|
+
expect(isGroupChatRoom(40)).toBe(true);
|
|
219
|
+
});
|
|
220
|
+
it("classifies 2 members (bot + 1 other) as a DM", () => {
|
|
221
|
+
expect(isGroupChatRoom(2)).toBe(false);
|
|
222
|
+
});
|
|
223
|
+
it("classifies the 1-member edge as a DM (not a group)", () => {
|
|
224
|
+
expect(isGroupChatRoom(1)).toBe(false);
|
|
225
|
+
});
|
|
226
|
+
});
|
|
227
|
+
// ─── shouldPostJoinHint ──────────────────────────────────────
|
|
228
|
+
describe("shouldPostJoinHint", () => {
|
|
229
|
+
it("posts the hint for a multi-user, not-yet-enabled room", () => {
|
|
230
|
+
expect(shouldPostJoinHint(5, false)).toBe(true);
|
|
231
|
+
});
|
|
232
|
+
it("does not post the hint for an enabled multi-user room", () => {
|
|
233
|
+
expect(shouldPostJoinHint(5, true)).toBe(false);
|
|
234
|
+
});
|
|
235
|
+
it("does not post the hint for a DM (<=2 members) even when disabled", () => {
|
|
236
|
+
expect(shouldPostJoinHint(2, false)).toBe(false);
|
|
237
|
+
});
|
|
238
|
+
it("does not post the hint for a lone bot room (1 member)", () => {
|
|
239
|
+
expect(shouldPostJoinHint(1, false)).toBe(false);
|
|
240
|
+
});
|
|
241
|
+
});
|
|
214
242
|
// Excluded from testing (design decisions / integration-only, verified by inspection):
|
|
215
243
|
// - connect()/disconnect() lifecycle (requires real MatrixClient)
|
|
216
244
|
// - sendMessage()/sendTyping() (thin SDK wrappers)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matrix-utils.test.js","sourceRoot":"","sources":["../../src/transports/matrix-utils.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"matrix-utils.test.js","sourceRoot":"","sources":["../../src/transports/matrix-utils.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
import type { ExternalMessage } from "../types.js";
|
|
2
|
-
import type {
|
|
2
|
+
import type { Transport } from "./interface.js";
|
|
3
|
+
import { MatrixRoomOps } from "./matrix-rooms.js";
|
|
3
4
|
/**
|
|
4
5
|
* Matrix transport provider using matrix-bot-sdk
|
|
5
6
|
* Works with any Matrix homeserver — Element X, Element Web, FluffyChat, etc.
|
|
7
|
+
*
|
|
8
|
+
* Message I/O only. The room-capability half (RoomOps) lives in the
|
|
9
|
+
* composed matrix-rooms adapter; the composition root hands that to the
|
|
10
|
+
* /pmctl path and the startup space ensure.
|
|
6
11
|
*/
|
|
7
|
-
export declare class MatrixProvider implements Transport
|
|
12
|
+
export declare class MatrixProvider implements Transport {
|
|
8
13
|
private config;
|
|
9
14
|
/** Whether a group room is enabled for the bridge (join-hint UX only;
|
|
10
15
|
* all policy — authorization, challenges, admin commands, group /enable —
|
|
@@ -19,8 +24,8 @@ export declare class MatrixProvider implements Transport, RoomOps {
|
|
|
19
24
|
private joinedRooms;
|
|
20
25
|
private roomMemberCount;
|
|
21
26
|
private connectedAt;
|
|
22
|
-
/**
|
|
23
|
-
|
|
27
|
+
/** Room-capability half of the Matrix integration (see matrix-rooms.ts). */
|
|
28
|
+
readonly roomOps: MatrixRoomOps;
|
|
24
29
|
constructor(config: {
|
|
25
30
|
homeserverUrl: string;
|
|
26
31
|
accessToken: string;
|
|
@@ -31,34 +36,6 @@ export declare class MatrixProvider implements Transport, RoomOps {
|
|
|
31
36
|
* lives in the message-router pipeline). */
|
|
32
37
|
isRoomEnabled: (chatId: string) => boolean);
|
|
33
38
|
get isConnected(): boolean;
|
|
34
|
-
/** Create a private room — the general primitive (name + invitees; E2EE
|
|
35
|
-
* state opt-in, only pass encrypted=true when encryptionAvailable). */
|
|
36
|
-
createRoom(opts: {
|
|
37
|
-
name: string;
|
|
38
|
-
inviteUserIds: string[];
|
|
39
|
-
encrypted?: boolean;
|
|
40
|
-
}): Promise<string>;
|
|
41
|
-
/** Create a private project room (used by /pmctl new). */
|
|
42
|
-
createProjectRoom(name: string, inviteUserId: string): Promise<string>;
|
|
43
|
-
/** Create a private space (m.space organizational container). */
|
|
44
|
-
createSpace(opts: {
|
|
45
|
-
name: string;
|
|
46
|
-
inviteUserIds: string[];
|
|
47
|
-
}): Promise<string>;
|
|
48
|
-
/** Link a room into a space (used by the startup space ensure). */
|
|
49
|
-
addRoomToSpace(spaceRoomId: string, childRoomId: string): Promise<void>;
|
|
50
|
-
/** Unlink a room from a space (used by /pmctl rm). */
|
|
51
|
-
removeRoomFromSpace(spaceRoomId: string, childRoomId: string): Promise<void>;
|
|
52
|
-
/** Invite a user into a room (space membership). */
|
|
53
|
-
inviteUser(roomId: string, userId: string): Promise<void>;
|
|
54
|
-
/** Rename a room (used to brand the DM as the management room). */
|
|
55
|
-
setRoomName(roomId: string, name: string): Promise<void>;
|
|
56
|
-
/** Have the bot actively leave a room (used by /pmctl rm). */
|
|
57
|
-
leaveRoom(roomId: string, reason?: string): Promise<void>;
|
|
58
|
-
/** The bot's own Matrix user ID (null if not connected). */
|
|
59
|
-
getBotUserId(): string | null;
|
|
60
|
-
/** Set a user's power level in a room (used to make the project owner admin). */
|
|
61
|
-
setUserPowerLevel(roomId: string, userId: string, level: number): Promise<void>;
|
|
62
39
|
connect(): Promise<void>;
|
|
63
40
|
disconnect(): Promise<void>;
|
|
64
41
|
sendMessage(chatId: string, text: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matrix.d.ts","sourceRoot":"","sources":["../../src/transports/matrix.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"matrix.d.ts","sourceRoot":"","sources":["../../src/transports/matrix.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAWlD;;;;;;;GAOG;AACH,qBAAa,cAAe,YAAW,SAAS;IAsB5C,OAAO,CAAC,MAAM;IACd;;iDAE6C;IAC7C,OAAO,CAAC,aAAa;IAzBvB,QAAQ,CAAC,IAAI,YAAY;IACzB,OAAO,CAAC,MAAM,CAAC,CAAe;IAC9B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,cAAc,CAAC,CAAqC;IAC5D,OAAO,CAAC,YAAY,CAAC,CAAyB;IAC9C,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,WAAW,CAAK;IAExB,4EAA4E;IAC5E,QAAQ,CAAC,OAAO,gBAOb;gBAGO,MAAM,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE;IACpF;;iDAE6C;IACrC,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO;IAGpD,IAAI,WAAW,IAAI,OAAO,CAEzB;IAIK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA+IxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAa3B,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBxD,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS/C,SAAS,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,GAAG,IAAI;IAI5D,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;YAIhC,aAAa;CA2D5B"}
|
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
import * as os from "node:os";
|
|
2
2
|
import * as path from "node:path";
|
|
3
|
-
import { AutojoinRoomsMixin, LogService, MatrixClient,
|
|
4
|
-
import {
|
|
3
|
+
import { AutojoinRoomsMixin, LogService, MatrixClient, RustSdkCryptoStorageProvider, SimpleFsStorageProvider, } from "matrix-bot-sdk";
|
|
4
|
+
import { logger, suppressLogLines } from "../logger.js";
|
|
5
|
+
import { MatrixRoomOps } from "./matrix-rooms.js";
|
|
6
|
+
import { extractUsername, formatForMatrix, isGroupChatRoom, shouldPostJoinHint, shouldSkipEvent, stripBotMention, wasBotMentioned, } from "./matrix-utils.js";
|
|
5
7
|
/**
|
|
6
8
|
* Matrix transport provider using matrix-bot-sdk
|
|
7
9
|
* Works with any Matrix homeserver — Element X, Element Web, FluffyChat, etc.
|
|
10
|
+
*
|
|
11
|
+
* Message I/O only. The room-capability half (RoomOps) lives in the
|
|
12
|
+
* composed matrix-rooms adapter; the composition root hands that to the
|
|
13
|
+
* /pmctl path and the startup space ensure.
|
|
8
14
|
*/
|
|
9
15
|
export class MatrixProvider {
|
|
10
16
|
config;
|
|
@@ -18,8 +24,15 @@ export class MatrixProvider {
|
|
|
18
24
|
joinedRooms = new Set();
|
|
19
25
|
roomMemberCount = new Map();
|
|
20
26
|
connectedAt = 0;
|
|
21
|
-
/**
|
|
22
|
-
|
|
27
|
+
/** Room-capability half of the Matrix integration (see matrix-rooms.ts). */
|
|
28
|
+
roomOps = new MatrixRoomOps({
|
|
29
|
+
getClient: () => this.client,
|
|
30
|
+
getBotUserId: () => this.botUserId,
|
|
31
|
+
onLeftRoom: (roomId) => {
|
|
32
|
+
this.joinedRooms.delete(roomId);
|
|
33
|
+
this.roomMemberCount.delete(roomId);
|
|
34
|
+
},
|
|
35
|
+
});
|
|
23
36
|
constructor(config,
|
|
24
37
|
/** Whether a group room is enabled for the bridge (join-hint UX only;
|
|
25
38
|
* all policy — authorization, challenges, admin commands, group /enable —
|
|
@@ -31,111 +44,6 @@ export class MatrixProvider {
|
|
|
31
44
|
get isConnected() {
|
|
32
45
|
return this._isConnected;
|
|
33
46
|
}
|
|
34
|
-
/** Create a private room — the general primitive (name + invitees; E2EE
|
|
35
|
-
* state opt-in, only pass encrypted=true when encryptionAvailable). */
|
|
36
|
-
async createRoom(opts) {
|
|
37
|
-
if (!this.client)
|
|
38
|
-
throw new Error("Matrix 未连接");
|
|
39
|
-
const roomId = await this.client.createRoom({
|
|
40
|
-
name: opts.name,
|
|
41
|
-
invite: opts.inviteUserIds,
|
|
42
|
-
preset: "private_chat",
|
|
43
|
-
...(opts.encrypted
|
|
44
|
-
? {
|
|
45
|
-
initial_state: [
|
|
46
|
-
{
|
|
47
|
-
type: "m.room.encryption",
|
|
48
|
-
state_key: "",
|
|
49
|
-
content: { algorithm: "m.megolm.v1.aes-sha2" },
|
|
50
|
-
},
|
|
51
|
-
],
|
|
52
|
-
}
|
|
53
|
-
: {}),
|
|
54
|
-
});
|
|
55
|
-
return roomId;
|
|
56
|
-
}
|
|
57
|
-
/** Create a private project room (used by /pmctl new). */
|
|
58
|
-
async createProjectRoom(name, inviteUserId) {
|
|
59
|
-
return this.createRoom({ name, inviteUserIds: [inviteUserId] });
|
|
60
|
-
}
|
|
61
|
-
/** Create a private space (m.space organizational container). */
|
|
62
|
-
async createSpace(opts) {
|
|
63
|
-
if (!this.client)
|
|
64
|
-
throw new Error("Matrix 未连接");
|
|
65
|
-
return this.client.createRoom({
|
|
66
|
-
name: opts.name,
|
|
67
|
-
invite: opts.inviteUserIds,
|
|
68
|
-
preset: "private_chat",
|
|
69
|
-
visibility: "private",
|
|
70
|
-
creation_content: { type: "m.space" },
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
/** Link a room into a space (used by the startup space ensure). */
|
|
74
|
-
async addRoomToSpace(spaceRoomId, childRoomId) {
|
|
75
|
-
if (!this.client)
|
|
76
|
-
throw new Error("Matrix 未连接");
|
|
77
|
-
const via = this.botUserId ? [this.botUserId.split(":")[1] ?? ""] : [];
|
|
78
|
-
// m.space.child (state_key = child room id) is what makes Element show
|
|
79
|
-
// the room inside the space.
|
|
80
|
-
await this.client.sendStateEvent(spaceRoomId, "m.space.child", childRoomId, { via });
|
|
81
|
-
// m.room.parent lives in the child room; the bot may lack power there
|
|
82
|
-
// (rooms it did not create). Element works from m.space.child alone.
|
|
83
|
-
try {
|
|
84
|
-
await this.client.sendStateEvent(childRoomId, "m.room.parent", spaceRoomId, {
|
|
85
|
-
via,
|
|
86
|
-
canonical: true,
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
catch {
|
|
90
|
-
// best-effort
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
/** Unlink a room from a space (used by /pmctl rm). */
|
|
94
|
-
async removeRoomFromSpace(spaceRoomId, childRoomId) {
|
|
95
|
-
if (!this.client)
|
|
96
|
-
throw new Error("Matrix 未连接");
|
|
97
|
-
// Empty content drops the child from the space's view (m.space.child
|
|
98
|
-
// with no via servers is not a resolvable child).
|
|
99
|
-
await this.client.sendStateEvent(spaceRoomId, "m.space.child", childRoomId, {});
|
|
100
|
-
// Clear the child-side badge too — best-effort; the bot leaves the room
|
|
101
|
-
// right after, so remaining members keep a clean room header.
|
|
102
|
-
try {
|
|
103
|
-
await this.client.sendStateEvent(childRoomId, "m.room.parent", spaceRoomId, {});
|
|
104
|
-
}
|
|
105
|
-
catch {
|
|
106
|
-
// best-effort
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
/** Invite a user into a room (space membership). */
|
|
110
|
-
async inviteUser(roomId, userId) {
|
|
111
|
-
if (!this.client)
|
|
112
|
-
throw new Error("Matrix 未连接");
|
|
113
|
-
await this.client.inviteUser(userId, roomId);
|
|
114
|
-
}
|
|
115
|
-
/** Rename a room (used to brand the DM as the management room). */
|
|
116
|
-
async setRoomName(roomId, name) {
|
|
117
|
-
if (!this.client)
|
|
118
|
-
throw new Error("Matrix 未连接");
|
|
119
|
-
await this.client.sendStateEvent(roomId, "m.room.name", "", { name });
|
|
120
|
-
}
|
|
121
|
-
/** Have the bot actively leave a room (used by /pmctl rm). */
|
|
122
|
-
async leaveRoom(roomId, reason) {
|
|
123
|
-
if (!this.client)
|
|
124
|
-
throw new Error("Matrix 未连接");
|
|
125
|
-
await this.client.leaveRoom(roomId, reason);
|
|
126
|
-
this.joinedRooms.delete(roomId);
|
|
127
|
-
this.roomMemberCount.delete(roomId);
|
|
128
|
-
}
|
|
129
|
-
/** The bot's own Matrix user ID (null if not connected). */
|
|
130
|
-
getBotUserId() {
|
|
131
|
-
return this.botUserId ?? null;
|
|
132
|
-
}
|
|
133
|
-
/** Set a user's power level in a room (used to make the project owner admin). */
|
|
134
|
-
async setUserPowerLevel(roomId, userId, level) {
|
|
135
|
-
if (!this.client)
|
|
136
|
-
throw new Error("Matrix 未连接");
|
|
137
|
-
await this.client.setUserPowerLevel(userId, roomId, level);
|
|
138
|
-
}
|
|
139
47
|
// Formatting delegated to matrix-utils.ts (pure, testable)
|
|
140
48
|
async connect() {
|
|
141
49
|
if (this._isConnected)
|
|
@@ -155,10 +63,10 @@ export class MatrixProvider {
|
|
|
155
63
|
try {
|
|
156
64
|
const cryptoStorePath = path.join(os.homedir(), ".pi", "pi-courier-matrix-crypto");
|
|
157
65
|
cryptoProvider = new RustSdkCryptoStorageProvider(cryptoStorePath, 0 /* RustSdkCryptoStoreType.Sqlite */);
|
|
158
|
-
|
|
66
|
+
logger.info("[Matrix] E2EE crypto storage enabled (Rust/SQLite)");
|
|
159
67
|
}
|
|
160
68
|
catch (err) {
|
|
161
|
-
|
|
69
|
+
logger.warn("[Matrix] E2EE crypto not available, continuing without encryption:", err.message);
|
|
162
70
|
}
|
|
163
71
|
}
|
|
164
72
|
this.client = new MatrixClient(homeserverUrl, accessToken, storage, cryptoProvider);
|
|
@@ -176,7 +84,7 @@ export class MatrixProvider {
|
|
|
176
84
|
// Multi-user room that isn't explicitly enabled: post a one-time
|
|
177
85
|
// hint so the inviter knows how to enable it. The room.join event
|
|
178
86
|
// only fires on (re)join, so this is naturally idempotent.
|
|
179
|
-
if (members.length
|
|
87
|
+
if (shouldPostJoinHint(members.length, this.isRoomEnabled(roomId))) {
|
|
180
88
|
this.sendMessage(roomId, `🤖 我已加入这个群聊,但默认不回应群消息。\n\n` +
|
|
181
89
|
`启用方式:直接在群里发 /enable trusted-only\n` +
|
|
182
90
|
`(或 all = 回应所有人 / mentions = 只回应 @我;仅信任用户可启用)`).catch(() => { });
|
|
@@ -199,32 +107,34 @@ export class MatrixProvider {
|
|
|
199
107
|
}
|
|
200
108
|
}
|
|
201
109
|
});
|
|
110
|
+
// Route SDK-internal logs through the shared leveled logger — trace/debug
|
|
111
|
+
// land on debug (silent at the default info threshold), info/warn/error
|
|
112
|
+
// keep their level. The [matrix-sdk:*] prefix keeps SDK lines greppable
|
|
113
|
+
// apart from the adapter's own [Matrix] state logs.
|
|
114
|
+
const sdkLogAdapter = {
|
|
115
|
+
trace: (mod, ...args) => logger.debug(`[matrix-sdk:${mod}]`, ...args),
|
|
116
|
+
debug: (mod, ...args) => logger.debug(`[matrix-sdk:${mod}]`, ...args),
|
|
117
|
+
info: (mod, ...args) => logger.info(`[matrix-sdk:${mod}]`, ...args),
|
|
118
|
+
warn: (mod, ...args) => logger.warn(`[matrix-sdk:${mod}]`, ...args),
|
|
119
|
+
error: (mod, ...args) => logger.error(`[matrix-sdk:${mod}]`, ...args),
|
|
120
|
+
};
|
|
121
|
+
LogService.setLogger(sdkLogAdapter);
|
|
202
122
|
try {
|
|
203
123
|
// During initial sync the SDK replays historical events and tries to
|
|
204
124
|
// decrypt them. For E2EE rooms this produces two known error patterns:
|
|
205
125
|
// 1. "Decryption error" — old messages we don't have keys for
|
|
206
126
|
// 2. "M_NOT_FOUND" — stale sync token references a purged event
|
|
207
127
|
// Our connectedAt filter skips these events anyway, so the errors are
|
|
208
|
-
// noise.
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
return;
|
|
219
|
-
if (mod === "MatrixHttpClient" && msg.includes("M_NOT_FOUND"))
|
|
220
|
-
return;
|
|
221
|
-
defaultLogger.error(mod, ...args);
|
|
222
|
-
},
|
|
223
|
-
};
|
|
224
|
-
LogService.setLogger(syncFilterLogger);
|
|
225
|
-
await this.client.start();
|
|
226
|
-
// Restore default logging — real errors after sync should not be filtered
|
|
227
|
-
LogService.setLogger(defaultLogger);
|
|
128
|
+
// noise. The facade's suppression window filters exactly these
|
|
129
|
+
// patterns for the sync only — closing it (even on failure) keeps
|
|
130
|
+
// real errors afterwards visible.
|
|
131
|
+
const closeSyncNoiseWindow = suppressLogLines("Decryption error", "M_NOT_FOUND");
|
|
132
|
+
try {
|
|
133
|
+
await this.client.start();
|
|
134
|
+
}
|
|
135
|
+
finally {
|
|
136
|
+
closeSyncNoiseWindow();
|
|
137
|
+
}
|
|
228
138
|
}
|
|
229
139
|
catch (error) {
|
|
230
140
|
// Clean up dangling state so connect() can be retried
|
|
@@ -232,7 +142,9 @@ export class MatrixProvider {
|
|
|
232
142
|
this.botUserId = undefined;
|
|
233
143
|
this.joinedRooms.clear();
|
|
234
144
|
this.roomMemberCount.clear();
|
|
235
|
-
|
|
145
|
+
// The facade renders Error objects as "{}", so pass the stack (which
|
|
146
|
+
// carries the message) to keep the old console.error's diagnostic value.
|
|
147
|
+
logger.error("[Matrix] Failed to connect:", error.stack ?? String(error));
|
|
236
148
|
throw error;
|
|
237
149
|
}
|
|
238
150
|
// Seed joined rooms and member count caches
|
|
@@ -249,9 +161,9 @@ export class MatrixProvider {
|
|
|
249
161
|
}));
|
|
250
162
|
this.connectedAt = Date.now();
|
|
251
163
|
this._isConnected = true;
|
|
252
|
-
this.encryptionAvailable = cryptoProvider !== undefined;
|
|
164
|
+
this.roomOps.encryptionAvailable = cryptoProvider !== undefined;
|
|
253
165
|
const cryptoStatus = cryptoProvider ? "E2EE enabled" : "E2EE disabled";
|
|
254
|
-
|
|
166
|
+
logger.info(`✅ Matrix connected as ${this.botUserId} (${rooms.length} rooms, ${cryptoStatus})`);
|
|
255
167
|
}
|
|
256
168
|
async disconnect() {
|
|
257
169
|
if (!this._isConnected || !this.client)
|
|
@@ -263,7 +175,7 @@ export class MatrixProvider {
|
|
|
263
175
|
this.joinedRooms.clear();
|
|
264
176
|
this.roomMemberCount.clear();
|
|
265
177
|
this.connectedAt = 0;
|
|
266
|
-
|
|
178
|
+
logger.info("[Matrix] Disconnected");
|
|
267
179
|
}
|
|
268
180
|
async sendMessage(chatId, text) {
|
|
269
181
|
if (!this.client) {
|
|
@@ -322,7 +234,7 @@ export class MatrixProvider {
|
|
|
322
234
|
memberCount = 2; // Default to DM if we can't check
|
|
323
235
|
}
|
|
324
236
|
}
|
|
325
|
-
const isGroupChat = memberCount
|
|
237
|
+
const isGroupChat = isGroupChatRoom(memberCount);
|
|
326
238
|
// Check if bot was mentioned (pure utility)
|
|
327
239
|
const wasMentioned = isGroupChat ? wasBotMentioned(messageText, this.botUserId) : false;
|
|
328
240
|
// Transport is pure I/O: EVERY message passing the filter above is
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matrix.js","sourceRoot":"","sources":["../../src/transports/matrix.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"matrix.js","sourceRoot":"","sources":["../../src/transports/matrix.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-courier",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.35",
|
|
4
4
|
"description": "Run pi coding agent from Matrix. Slash commands, skills and prompts fully work from messengers via the RPC protocol.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/standalone.js",
|
|
@@ -11,12 +11,14 @@
|
|
|
11
11
|
"dist/",
|
|
12
12
|
"deploy/",
|
|
13
13
|
"extensions/",
|
|
14
|
+
"scripts/",
|
|
14
15
|
"README.md",
|
|
15
16
|
"README.zh-CN.md"
|
|
16
17
|
],
|
|
17
18
|
"scripts": {
|
|
18
19
|
"build": "rm -rf dist && tsc",
|
|
19
20
|
"prepare": "npm run build",
|
|
21
|
+
"postinstall": "node scripts/ensure-crypto-native.mjs",
|
|
20
22
|
"watch": "tsc --watch",
|
|
21
23
|
"clean": "rm -rf dist",
|
|
22
24
|
"start": "node dist/standalone.js",
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/** Type declarations for scripts/ensure-crypto-native.mjs (postinstall self-check). */
|
|
2
|
+
|
|
3
|
+
export interface EnsureResult {
|
|
4
|
+
ok: boolean;
|
|
5
|
+
downloaded?: boolean;
|
|
6
|
+
reason?: string;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export function nativeBindingBasename(): string | null;
|
|
10
|
+
|
|
11
|
+
export function isMusl(): boolean;
|
|
12
|
+
|
|
13
|
+
export function resolveCryptoPackageDir(): string | null;
|
|
14
|
+
|
|
15
|
+
export function isNativeBindingMissing(cryptoDir: string, basename: string | null): boolean;
|
|
16
|
+
|
|
17
|
+
export function runNativeDownloader(cryptoDir: string): void;
|
|
18
|
+
|
|
19
|
+
export function ensureCryptoNative(): EnsureResult;
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Postinstall self-check for the matrix-rust-sdk-crypto native binding.
|
|
4
|
+
*
|
|
5
|
+
* WHY: `matrix-bot-sdk` depends on `@matrix-org/matrix-sdk-crypto-nodejs`, whose
|
|
6
|
+
* platform native binary (.node) is only produced by its own `postinstall`
|
|
7
|
+
* script (`node download-lib.js`) on first install. npm >= 11 ships
|
|
8
|
+
* `allow-scripts`, which by default BLOCKS a dependency's install scripts, so
|
|
9
|
+
* that binary never gets downloaded. At runtime the ESM top-level
|
|
10
|
+
* `import matrix-bot-sdk` synchronously requires the crypto module and the
|
|
11
|
+
* process dies with:
|
|
12
|
+
*
|
|
13
|
+
* Cannot find module '@matrix-org/matrix-sdk-crypto-nodejs-linux-x64-gnu'
|
|
14
|
+
*
|
|
15
|
+
* This self-check runs during *our* (the root package's) postinstall — that
|
|
16
|
+
* script is NOT blocked by allow-scripts — and, when the native binding is
|
|
17
|
+
* missing, re-runs the crypto package's own downloader so the binary is
|
|
18
|
+
* present before first run. Any failure here degrades to a warning; it never
|
|
19
|
+
* fails the install (the bridge can still run without E2EE crypto).
|
|
20
|
+
*
|
|
21
|
+
* Usage (from package root): node scripts/ensure-crypto-native.mjs
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
import { execFileSync } from "node:child_process";
|
|
25
|
+
import { existsSync } from "node:fs";
|
|
26
|
+
import { createRequire } from "node:module";
|
|
27
|
+
|
|
28
|
+
const require = createRequire(import.meta.url);
|
|
29
|
+
|
|
30
|
+
/** Current platform/arch names as napi-rs names them (no .node suffix). */
|
|
31
|
+
export function nativeBindingBasename() {
|
|
32
|
+
const { platform, arch } = process;
|
|
33
|
+
if (platform === "win32") return `matrix-sdk-crypto.win32-${arch}-msvc`;
|
|
34
|
+
if (platform === "darwin") return `matrix-sdk-crypto.darwin-${arch}`;
|
|
35
|
+
if (platform === "linux") {
|
|
36
|
+
const libc = isMusl() ? "musl" : "gnu";
|
|
37
|
+
return `matrix-sdk-crypto.linux-${arch}-${libc}`;
|
|
38
|
+
}
|
|
39
|
+
return null; // unsupported platform — native E2EE unavailable, skip silently
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export function isMusl() {
|
|
43
|
+
// Node >= 10 provides the runtime report; absent report => assume gnu.
|
|
44
|
+
try {
|
|
45
|
+
const { glibcVersionRuntime } = process.report.getReport().header;
|
|
46
|
+
return !glibcVersionRuntime;
|
|
47
|
+
} catch {
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Locate the crypto package's own directory. Works both when we are an npm
|
|
54
|
+
* dependency (node_modules/<scope>/<pkg>) and when running from a repo clone.
|
|
55
|
+
*/
|
|
56
|
+
export function resolveCryptoPackageDir() {
|
|
57
|
+
const paths = [
|
|
58
|
+
// As a dependency (global/local npm install). createRequire resolves
|
|
59
|
+
// relative to this script inside the installed package tree.
|
|
60
|
+
(() => {
|
|
61
|
+
try {
|
|
62
|
+
return require.resolve("@matrix-org/matrix-sdk-crypto-nodejs/package.json");
|
|
63
|
+
} catch {
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
})(),
|
|
67
|
+
// Nested copy under our own node_modules when hybrid layouts appear.
|
|
68
|
+
(() => {
|
|
69
|
+
try {
|
|
70
|
+
return require.resolve("@matrix-org/matrix-sdk-crypto-nodejs/package.json", {
|
|
71
|
+
paths: [process.cwd()],
|
|
72
|
+
});
|
|
73
|
+
} catch {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
})(),
|
|
77
|
+
].filter(Boolean);
|
|
78
|
+
|
|
79
|
+
// Prefer the one actually under a node_modules chain (global installs wire
|
|
80
|
+
// this via the primary resolution); fall back to any hit.
|
|
81
|
+
const hit = paths.find((p) => p.includes("node_modules")) ?? paths[0];
|
|
82
|
+
if (!hit) return null;
|
|
83
|
+
// hit is the package.json path; chop the filename to get the package dir.
|
|
84
|
+
return hit.slice(0, hit.lastIndexOf("package.json"));
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* True when the crypto package dir lacks the native binding this platform needs.
|
|
89
|
+
* A platform we don't recognise (nativeBindingBasename() === null) counts as
|
|
90
|
+
* "fine" (skips download) rather than "missing".
|
|
91
|
+
*/
|
|
92
|
+
export function isNativeBindingMissing(cryptoDir, basename) {
|
|
93
|
+
if (basename === null) return false;
|
|
94
|
+
return !existsSync(`${cryptoDir}/${basename}.node`);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/** Run the crypto package's own downloader to fetch the native binding. */
|
|
98
|
+
export function runNativeDownloader(cryptoDir) {
|
|
99
|
+
const script = `${cryptoDir}/download-lib.js`;
|
|
100
|
+
if (!existsSync(script)) {
|
|
101
|
+
throw new Error(`crypto downloader not found: ${script}`);
|
|
102
|
+
}
|
|
103
|
+
execFileSync(process.execPath, [script], {
|
|
104
|
+
cwd: cryptoDir,
|
|
105
|
+
stdio: "inherit",
|
|
106
|
+
// Inherit proxy env so machines behind a proxy still reach GitHub.
|
|
107
|
+
env: process.env,
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export function ensureCryptoNative() {
|
|
112
|
+
const basename = nativeBindingBasename();
|
|
113
|
+
const cryptoDir = resolveCryptoPackageDir();
|
|
114
|
+
|
|
115
|
+
if (!cryptoDir) {
|
|
116
|
+
console.warn(
|
|
117
|
+
"[pi-courier] crypto package not found — can't verify native binding; continuing (E2EE may be unavailable)."
|
|
118
|
+
);
|
|
119
|
+
return { ok: false, reason: "crypto-package-not-found" };
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
if (!isNativeBindingMissing(cryptoDir, basename)) {
|
|
123
|
+
// Already present (either downloaded once, or platform unsupported).
|
|
124
|
+
return { ok: true, downloaded: false };
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
console.info(
|
|
128
|
+
`[pi-courier] crypto native binding (${basename}.node) missing — downloading (POSTINSTALL due to npm 11 allow-scripts).`
|
|
129
|
+
);
|
|
130
|
+
try {
|
|
131
|
+
runNativeDownloader(cryptoDir);
|
|
132
|
+
return { ok: true, downloaded: true };
|
|
133
|
+
} catch (err) {
|
|
134
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
135
|
+
console.warn(
|
|
136
|
+
`[pi-courier] could not auto-download crypto native binding: ${message}\n` +
|
|
137
|
+
` The bridge may still run without E2EE. To install manually:\n` +
|
|
138
|
+
` cd ${cryptoDir} && node download-lib.js`
|
|
139
|
+
);
|
|
140
|
+
return { ok: false, reason: "download-failed" };
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
// Allow running both as a bin and importing the named exports for tests.
|
|
145
|
+
if (process.argv[1] && process.argv[1].endsWith("ensure-crypto-native.mjs")) {
|
|
146
|
+
ensureCryptoNative();
|
|
147
|
+
}
|