pi-courier 0.1.18 → 0.1.20

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 CHANGED
@@ -220,7 +220,7 @@ A: Historical events that can't be decrypted (new device without old keys). Norm
220
220
  A: The bot's new device never received the room keys. The bot account has no cross-signing, so the most reliable fix is to **use a non-encrypted room** (create a room without encryption and invite the bot) — the bridge handles plain rooms fine even with `encryption: true`.
221
221
 
222
222
  **Q: `M_BAD_JSON: Provided device_id in device_keys does not match...`?**
223
- A: The crypto store holds an old device identity but the token belongs to a newer device (re-logged). Delete and restart: `rm -rf ~/.pi/pi-courier-matrix-crypto && pi-courier restart`. Do this whenever you re-run setup / change the token.
223
+ A: The crypto store's device identity doesn't match the token's device (re-logged, or a pasted token from another device). **Since 0.1.20 password login uses a fixed device ID, so re-running setup no longer triggers this.** If it still happens: delete the crypto store and restart `rm -rf ~/.pi/pi-courier-matrix-crypto && pi-courier restart` (do this whenever you re-run setup / change the token).
224
224
 
225
225
  **Q: `One time key signed_curve25519:... already exists` (M_UNKNOWN)?**
226
226
  A: The token is bound to an old device on the server and the local OTK bookkeeping is out of sync — **deleting the local crypto store does NOT help** (the server assigns the device ID from the token, so a rebuilt store uses the same device). **You must get a new token**: re-run `pi-courier setup` and answer `n` to "keep the existing token?" (or log in with the password); a new token = a new device = clean server state. Pair with a crypto-store delete if device residue persists.
package/README.zh-CN.md CHANGED
@@ -217,7 +217,7 @@ A: 历史消息无法解密(新设备没有旧密钥)。**正常**,新消息不
217
217
  A: bot 的新设备没拿到房间密钥。bot 账号没有交叉签名,最可靠的解法是**用非加密房间**(新建房间时不勾选加密,把 bot 拉进来)—— 配置 `encryption: true` 也照常处理非加密房间。
218
218
 
219
219
  **Q: 报 `M_BAD_JSON: Provided device_id in device_keys does not match...`?**
220
- A: 加密存储里是旧设备身份,而 token 属于新设备(重新登录过)。删除重启:`rm -rf ~/.pi/pi-courier-matrix-crypto && pi-courier restart`。**每次重跑 setup / 换 token 都顺手删一次。**
220
+ A: 本地加密存储与 token 的设备身份不一致(换过 token / 粘贴了别的设备的 token)。**0.1.20 起用密码登录走固定 device_id,重跑 setup 不再出现此问题**。仍遇到时:删除加密存储重启 `rm -rf ~/.pi/pi-courier-matrix-crypto && pi-courier restart`(每次重跑 setup / 换 token 都顺手删一次)。
221
221
 
222
222
  **Q: 报 `One time key signed_curve25519:... already exists`(M_UNKNOWN)?**
223
223
  A: token 在服务器上已绑定旧设备,但本地与服务器的 OTK 记账错位 —— **删本地 crypto store 无效**(device ID 由服务器按 token 指定,删了重建还是同一个)。**必须换 token**:重跑 `pi-courier setup`,在"保留现有 token?"处输 `n` 重新获取(或直接密码登录),新 token = 新设备 = 服务器干净。换 token 后如遇 device 残留问题再配合删 crypto store。
@@ -22,7 +22,7 @@ ENV https_proxy=${HTTPS_PROXY} \
22
22
 
23
23
  # pi-courier 版本:发新版本后更新此值 —— RUN 层指令文本随之变化,
24
24
  # docker 缓存自动失效,不会装到旧版(避免"升级了但镜像还是旧代码"的坑)
25
- ARG PI_COURIER_VERSION=0.1.18
25
+ ARG PI_COURIER_VERSION=0.1.20
26
26
 
27
27
  # 仅需要 ca-certificates(npm install 走 https;git 由 runtime 层负责)
28
28
  RUN apt-get update \
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA4IH,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAsF9C"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA2KH,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAiG9C"}
package/dist/setup.js CHANGED
@@ -31,15 +31,30 @@ function createPrompter() {
31
31
  }
32
32
  };
33
33
  if (opts?.silent) {
34
- // Suppress echo while typing (classic readline mute trick):
35
- // redirect the output writer so typed characters are not shown.
34
+ // Hidden password input (Node's documented _writeToOutput pattern):
35
+ // let the prompt through, render typed characters as stars.
36
36
  const output = rl;
37
37
  const origWrite = output._writeToOutput;
38
- output._writeToOutput = () => { };
39
- stdout.write(prompt);
40
- rl.question("", (answer) => {
38
+ let stars = 0;
39
+ output._writeToOutput = (str) => {
40
+ if (str === prompt) {
41
+ origWrite.call(rl, prompt); // show the prompt itself
42
+ }
43
+ else if (str === "\x7f" || str === "\b") {
44
+ if (stars > 0) {
45
+ origWrite.call(rl, "\b \b"); // backspace: erase one star
46
+ stars--;
47
+ }
48
+ }
49
+ else if (/^[\x20-\x7e\u00a0-\uffff]$/.test(str)) {
50
+ origWrite.call(rl, "*"); // printable input -> star
51
+ stars++;
52
+ }
53
+ // control sequences are swallowed (no echo, no cursor noise)
54
+ };
55
+ rl.question(prompt, (answer) => {
41
56
  output._writeToOutput = origWrite;
42
- stdout.write("\n");
57
+ origWrite.call(rl, "\n");
43
58
  finish(answer);
44
59
  });
45
60
  }
@@ -80,16 +95,22 @@ function createPrompter() {
80
95
  },
81
96
  };
82
97
  }
83
- async function matrixLogin(homeserver, username, password) {
98
+ async function matrixLogin(homeserver, username, password, deviceId) {
84
99
  const url = `${homeserver.replace(/\/$/, "")}/_matrix/client/v3/login`;
100
+ const body = {
101
+ type: "m.login.password",
102
+ identifier: { type: "m.id.user", user: username },
103
+ password,
104
+ };
105
+ if (deviceId) {
106
+ // 固定 device_id:同一 bot 账号重跑 setup 时复用同一个设备身份,
107
+ // 避免换 token 后设备变化导致 M_BAD_JSON / 历史密钥丢失。
108
+ body.device_id = deviceId;
109
+ }
85
110
  const res = await fetch(url, {
86
111
  method: "POST",
87
112
  headers: { "Content-Type": "application/json" },
88
- body: JSON.stringify({
89
- type: "m.login.password",
90
- identifier: { type: "m.id.user", user: username },
91
- password,
92
- }),
113
+ body: JSON.stringify(body),
93
114
  });
94
115
  if (!res.ok) {
95
116
  const body = await res.text();
@@ -108,10 +129,19 @@ async function matrixWhoami(homeserver, accessToken) {
108
129
  const data = (await res.json());
109
130
  return data.user_id ?? "unknown";
110
131
  }
132
+ /** Random 8-char uppercase alnum suffix for the fixed device ID. */
133
+ function randomDeviceSuffix() {
134
+ const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
135
+ let out = "";
136
+ for (let i = 0; i < 8; i++) {
137
+ out += chars[Math.floor(Math.random() * chars.length)];
138
+ }
139
+ return out;
140
+ }
111
141
  /**
112
142
  * Acquire a Matrix access token: password login (mode 1) or pasted token (mode 2).
113
143
  */
114
- async function acquireToken(ask, homeserver) {
144
+ async function acquireToken(ask, homeserver, deviceId) {
115
145
  const authMode = ((await ask("获取 token 方式 [1=用户名密码登录, 2=粘贴已有 token] (1): ")).trim() || "1");
116
146
  if (authMode === "2") {
117
147
  const accessToken = (await ask("粘贴 access token (syt_...): ")).trim();
@@ -127,8 +157,8 @@ async function acquireToken(ask, homeserver) {
127
157
  if (!username || !password)
128
158
  throw new Error("用户名/密码不能为空");
129
159
  console.log("登录中…");
130
- const login = await matrixLogin(homeserver, username, password);
131
- console.log(`✅ 登录成功,账号: ${login.userId}`);
160
+ const login = await matrixLogin(homeserver, username, password, deviceId);
161
+ console.log(`✅ 登录成功,账号: ${login.userId}${deviceId ? `(设备 ${deviceId})` : ""}`);
132
162
  return { accessToken: login.accessToken, botUserId: login.userId };
133
163
  }
134
164
  export async function runSetup() {
@@ -147,7 +177,15 @@ export async function runSetup() {
147
177
  const homeserver = (await ask(hsPrompt)).trim() || hsDefault;
148
178
  if (!homeserver)
149
179
  throw new Error("homeserver URL 不能为空");
150
- // ---- 2. token ----------------------------------------------------------
180
+ // ---- 2.5 fixed device id ------------------------------------------------
181
+ // Same bot account re-running setup reuses the same device (identity is
182
+ // kept, history keys survive); delete the field to force a new device.
183
+ // Only password login uses it; a pasted token keeps its own device.
184
+ let deviceId = existing.deviceId;
185
+ if (!deviceId) {
186
+ deviceId = `PICOURIER${randomDeviceSuffix()}`;
187
+ }
188
+ // ---- 3. token ----------------------------------------------------------
151
189
  // Keep the existing token when the homeserver is unchanged; otherwise it
152
190
  // belongs to another server and must be re-acquired.
153
191
  const hsChanged = Boolean(hsDefault) && homeserver !== hsDefault;
@@ -162,27 +200,27 @@ export async function runSetup() {
162
200
  console.log(`✅ 沿用现有 token,账号: ${botUserId}`);
163
201
  }
164
202
  else {
165
- ({ accessToken, botUserId } = await acquireToken(ask, homeserver));
203
+ ({ accessToken, botUserId } = await acquireToken(ask, homeserver, deviceId));
166
204
  }
167
205
  }
168
206
  else {
169
207
  if (hsChanged)
170
208
  console.log("ℹ️ homeserver 已变更,需要重新获取 token");
171
- ({ accessToken, botUserId } = await acquireToken(ask, homeserver));
209
+ ({ accessToken, botUserId } = await acquireToken(ask, homeserver, deviceId));
172
210
  }
173
- // ---- 3. trusted admin user ---------------------------------------------
211
+ // ---- 4. trusted admin user ---------------------------------------------
174
212
  const trustedDefault = existing.auth?.trustedUsers?.[0]?.replace(/^matrix:/, "") ?? botUserId;
175
213
  const adminRaw = (await ask(`信任用户(管理员)MXID [默认 ${trustedDefault}]: `)).trim() || trustedDefault;
176
214
  if (!adminRaw.startsWith("@"))
177
215
  throw new Error("MXID 应以 @ 开头,如 @barry:matrix.example.com");
178
- // ---- 4. E2EE ------------------------------------------------------------
216
+ // ---- 5. E2EE ------------------------------------------------------------
179
217
  const encDefault = existing.matrix?.encryption === true;
180
218
  const encPrompt = encDefault
181
219
  ? "启用 E2EE 加密? [Y/n] [默认 是]: "
182
220
  : "启用 E2EE 加密? [y/N]: ";
183
221
  const encAnswer = (await ask(encPrompt)).trim().toLowerCase();
184
222
  const encryption = encAnswer === "" ? encDefault : encAnswer === "y";
185
- // ---- 5. workdir ----------------------------------------------------------
223
+ // ---- 6. workdir ----------------------------------------------------------
186
224
  const workdirDefault = existing.workdir ?? `${os.homedir()}/Projects`;
187
225
  const workdir = (await ask(`pi 工作目录 [默认 ${workdirDefault}]: `)).trim() || workdirDefault;
188
226
  // ---- merge & save --------------------------------------------------------
@@ -197,6 +235,7 @@ export async function runSetup() {
197
235
  adminUserId: `matrix:${adminRaw}`,
198
236
  },
199
237
  workdir,
238
+ deviceId,
200
239
  autoConnect: existing.autoConnect ?? true,
201
240
  debug: existing.debug ?? true,
202
241
  };
@@ -206,6 +245,7 @@ export async function runSetup() {
206
245
  console.log(` 信任用户: ${adminRaw}`);
207
246
  console.log(` E2EE: ${encryption ? "开启" : "关闭"}`);
208
247
  console.log(` 工作目录: ${workdir}`);
248
+ console.log(` 设备 ID: ${deviceId}(固定,重跑 setup 复用;想换设备就删掉此字段)`);
209
249
  console.log("\n下一步: pi-courier enable(开机自启)或 pi-courier run(前台运行)");
210
250
  }
211
251
  catch (err) {
package/dist/setup.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -50,6 +50,12 @@ export interface MsgBridgeConfig {
50
50
  cliPath?: string;
51
51
  /** 日志级别:debug | info | warn | error(默认 info;`pi-courier logs --level debug` 可查看全量) */
52
52
  logLevel?: string;
53
+ /**
54
+ * 固定设备 ID(仅密码登录适用):重跑 setup 时复用同一个设备,
55
+ * 避免换 token 后设备身份变化导致 M_BAD_JSON / 历史密钥丢失。
56
+ * 由 setup 生成并持久化;删除此字段可重新生成(新设备身份)。
57
+ */
58
+ deviceId?: string;
53
59
  }
54
60
  /**
55
61
  * Pending remote chat session tracking
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,2BAA2B;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,sBAAsB;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,SAAS,EAAE,IAAI,CAAC;IAChB,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,WAAW,EAAE,OAAO,CAAC;IACrB,+CAA+C;IAC/C,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE;QACP,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,CAAC;IACF,IAAI,CAAC,EAAE;QACL,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,OAAO,EAAE,OAAO,CAAC;YAAC,IAAI,EAAE,KAAK,GAAG,UAAU,GAAG,cAAc,CAAA;SAAE,CAAC,CAAC;KAC5F,CAAC;IACF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sFAAsF;IACtF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,2BAA2B;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,sBAAsB;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,SAAS,EAAE,IAAI,CAAC;IAChB,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,WAAW,EAAE,OAAO,CAAC;IACrB,+CAA+C;IAC/C,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE;QACP,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,CAAC;IACF,IAAI,CAAC,EAAE;QACL,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,OAAO,EAAE,OAAO,CAAC;YAAC,IAAI,EAAE,KAAK,GAAG,UAAU,GAAG,cAAc,CAAA;SAAE,CAAC,CAAC;KAC5F,CAAC;IACF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sFAAsF;IACtF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-courier",
3
- "version": "0.1.18",
3
+ "version": "0.1.20",
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",