pi-maestro-mobile 0.2.13 → 0.3.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.
Files changed (72) hide show
  1. package/dist/cli.js +85 -21
  2. package/dist/cli.js.map +1 -1
  3. package/dist/extension.d.ts.map +1 -1
  4. package/dist/extension.js +126 -96
  5. package/dist/extension.js.map +1 -1
  6. package/dist/host-controller.d.ts +3 -0
  7. package/dist/host-controller.d.ts.map +1 -1
  8. package/dist/host-controller.js +12 -0
  9. package/dist/host-controller.js.map +1 -1
  10. package/dist/jsonl-index.js +2 -2
  11. package/dist/jsonl-index.js.map +1 -1
  12. package/dist/jsonl-pager.d.ts.map +1 -1
  13. package/dist/jsonl-pager.js +68 -6
  14. package/dist/jsonl-pager.js.map +1 -1
  15. package/dist/jsonl-tail-watcher.d.ts +44 -0
  16. package/dist/jsonl-tail-watcher.d.ts.map +1 -0
  17. package/dist/jsonl-tail-watcher.js +275 -0
  18. package/dist/jsonl-tail-watcher.js.map +1 -0
  19. package/dist/live-sessions.d.ts.map +1 -1
  20. package/dist/live-sessions.js +22 -5
  21. package/dist/live-sessions.js.map +1 -1
  22. package/dist/maestro-state.d.ts.map +1 -1
  23. package/dist/maestro-state.js +19 -4
  24. package/dist/maestro-state.js.map +1 -1
  25. package/dist/mobile-ui-context.d.ts +17 -1
  26. package/dist/mobile-ui-context.d.ts.map +1 -1
  27. package/dist/mobile-ui-context.js +35 -7
  28. package/dist/mobile-ui-context.js.map +1 -1
  29. package/dist/pi/pi-sdk-runtime.d.ts.map +1 -1
  30. package/dist/pi/pi-sdk-runtime.js +8 -7
  31. package/dist/pi/pi-sdk-runtime.js.map +1 -1
  32. package/dist/server/helpers.d.ts +0 -11
  33. package/dist/server/helpers.d.ts.map +1 -1
  34. package/dist/server/helpers.js +24 -44
  35. package/dist/server/helpers.js.map +1 -1
  36. package/dist/server/mobile-host-server.d.ts +88 -1
  37. package/dist/server/mobile-host-server.d.ts.map +1 -1
  38. package/dist/server/mobile-host-server.js +434 -54
  39. package/dist/server/mobile-host-server.js.map +1 -1
  40. package/dist/session-runner.d.ts +22 -1
  41. package/dist/session-runner.d.ts.map +1 -1
  42. package/dist/session-runner.js +67 -5
  43. package/dist/session-runner.js.map +1 -1
  44. package/dist/types.d.ts +1 -0
  45. package/dist/types.d.ts.map +1 -1
  46. package/dist/usage-reader.d.ts +6 -2
  47. package/dist/usage-reader.d.ts.map +1 -1
  48. package/dist/usage-reader.js +122 -27
  49. package/dist/usage-reader.js.map +1 -1
  50. package/dist/vendor/shared/protocol.d.ts +13 -0
  51. package/dist/vendor/shared/protocol.d.ts.map +1 -1
  52. package/dist/vendor/shared/protocol.js.map +1 -1
  53. package/dist/vendor/shared/validation.d.ts.map +1 -1
  54. package/dist/vendor/shared/validation.js +10 -0
  55. package/dist/vendor/shared/validation.js.map +1 -1
  56. package/dist/workspace-peer-injector.d.ts +19 -0
  57. package/dist/workspace-peer-injector.d.ts.map +1 -0
  58. package/dist/workspace-peer-injector.js +63 -0
  59. package/dist/workspace-peer-injector.js.map +1 -0
  60. package/dist/workspace-telemetry.d.ts +4 -1
  61. package/dist/workspace-telemetry.d.ts.map +1 -1
  62. package/dist/workspace-telemetry.js +20 -6
  63. package/dist/workspace-telemetry.js.map +1 -1
  64. package/package.json +1 -1
  65. package/dist/jsonl-replay.d.ts +0 -9
  66. package/dist/jsonl-replay.d.ts.map +0 -1
  67. package/dist/jsonl-replay.js +0 -153
  68. package/dist/jsonl-replay.js.map +0 -1
  69. package/dist/server/ws-command-handlers.d.ts +0 -20
  70. package/dist/server/ws-command-handlers.d.ts.map +0 -1
  71. package/dist/server/ws-command-handlers.js +0 -176
  72. package/dist/server/ws-command-handlers.js.map +0 -1
@@ -10,6 +10,17 @@ const FLOW_SCHEDULE_DIR = ".pi/flow-schedule/v1";
10
10
  const SCHEDULES_DIR = "schedules";
11
11
  const DISPATCHES_DIR = "dispatches";
12
12
  const MAX_FILE_SIZE = 1 * 1024 * 1024; // 1MB
13
+ /**
14
+ * 先 stat 校验字节上限再读。此前顺序是「readFile 完整内容 → 才比长度」:
15
+ * 上限检查无法阻止分配(异常大文件先 OOM 再被拒),且 `raw.length` 是 UTF-16 单元数、不是字节数。
16
+ * 文件不存在/为空/超限 → undefined(由调用方的 try/catch 或判空处理)。
17
+ */
18
+ async function readCappedFile(path, maxBytes) {
19
+ const info = await stat(path);
20
+ if (!info.isFile() || info.size === 0 || info.size > maxBytes)
21
+ return undefined;
22
+ return readFile(path, "utf8");
23
+ }
13
24
  export class MaestroStateReader {
14
25
  projectRoot;
15
26
  schedulesDir;
@@ -80,8 +91,8 @@ export class MaestroStateReader {
80
91
  async readSchedule(scheduleId) {
81
92
  const filePath = join(this.schedulesDir, `${scheduleId}.json`);
82
93
  try {
83
- const raw = await readFile(filePath, "utf8");
84
- if (raw.length > MAX_FILE_SIZE)
94
+ const raw = await readCappedFile(filePath, MAX_FILE_SIZE);
95
+ if (raw === undefined)
85
96
  return undefined;
86
97
  const record = JSON.parse(raw);
87
98
  const steps = record.steps;
@@ -148,7 +159,9 @@ export class MaestroStateReader {
148
159
  let resultSummary;
149
160
  // 检查 completion 文件
150
161
  try {
151
- const completionRaw = await readFile(completionPath, "utf8");
162
+ const completionRaw = await readCappedFile(completionPath, MAX_FILE_SIZE);
163
+ if (completionRaw === undefined)
164
+ throw new Error("skip");
152
165
  const completion = JSON.parse(completionRaw);
153
166
  state = String(completion.outcome ?? "completed");
154
167
  if (state === "failed" || state === "timeout") {
@@ -178,7 +191,9 @@ export class MaestroStateReader {
178
191
  let agent;
179
192
  let task;
180
193
  try {
181
- const intentRaw = await readFile(intentPath, "utf8");
194
+ const intentRaw = await readCappedFile(intentPath, MAX_FILE_SIZE);
195
+ if (intentRaw === undefined)
196
+ throw new Error("skip");
182
197
  const intent = JSON.parse(intentRaw);
183
198
  agent = String(intent.agent ?? intent.targetSelector ?? "");
184
199
  task = String(intent.instruction ?? "").slice(0, 120);
@@ -1 +1 @@
1
- {"version":3,"file":"maestro-state.js","sourceRoot":"","sources":["../src/maestro-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"maestro-state.js","sourceRoot":"","sources":["../src/maestro-state.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,23 @@ export declare class MobileExtensionUiBridge {
16
16
  constructor(sessionId: string, emit: (event: HostEvent) => void, now?: () => number);
17
17
  createContext(): ExtensionUIContext;
18
18
  respond(requestId: string, response: ExtensionUiResponse): boolean;
19
- /** 关闭所有挂起的弹窗(会话中止/关闭时调用),返回已取消的数量 */
19
+ /**
20
+ * 弹窗失效必须通知移动端(S_CONFIRM RV-001)。
21
+ * 之前只有 respond() 发 cleared,而 host 自己超时与 abort/dispose cancelAll() 时不发
22
+ * ⇒ 移动端无法区分「host 还在等这个答案」与「host 已放弃」,断连重发会 reopen
23
+ * 一个已无人接收的 ask,用户重试只会得到 request_not_found。
24
+ */
25
+ private emitCleared;
26
+ /**
27
+ * 关闭所有挂起的弹窗(会话中止/关闭时调用),返回已取消的数量。
28
+ *
29
+ * 先快照并清空再做副作用(S_CONFIRM RV-003):上一版在 for-of 里直接 emitCleared,
30
+ * 若某次 emit 抛错则循环中断、末尾的 clear() 不执行 ⇒ 剩余条目留在 Map 里、
31
+ * timeout 仍会事后再触发一次重复取消。先清空使「cancelAll 后 pendingCount 必为 0」
32
+ * 成为与 emit 无关的硬不变量;单条 emit 失败也不阻断其余通知。
33
+ * (当前生产 emit 已逐 listener try/catch(host-controller.ts:43-46)⇒ 实际不可达,
34
+ * 但本类的 emit 是外部注入函数,不应依赖注入方的异常纪律。)
35
+ */
20
36
  cancelAll(): number;
21
37
  get pendingCount(): number;
22
38
  private dialog;
@@ -1 +1 @@
1
- {"version":3,"file":"mobile-ui-context.d.ts","sourceRoot":"","sources":["../src/mobile-ui-context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,KAAK,EAAsB,mBAAmB,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAEnG;;;;;;;GAOG;AACH,qBAAa,uBAAuB;IAOhC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG;IARtB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAG1B;gBAGc,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,EAChC,GAAG,GAAE,MAAM,MAAiB;IAG/C,aAAa,IAAI,kBAAkB;IAmGnC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,GAAG,OAAO;IAelE,qCAAqC;IACrC,SAAS,IAAI,MAAM;IAWnB,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,OAAO,CAAC,MAAM;IAmBd,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,aAAa;CAQtB"}
1
+ {"version":3,"file":"mobile-ui-context.d.ts","sourceRoot":"","sources":["../src/mobile-ui-context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,KAAK,EAAsB,mBAAmB,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAEnG;;;;;;;GAOG;AACH,qBAAa,uBAAuB;IAOhC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG;IARtB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAG1B;gBAGc,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,EAChC,GAAG,GAAE,MAAM,MAAiB;IAG/C,aAAa,IAAI,kBAAkB;IAmGnC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,GAAG,OAAO;IAUlE;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IASnB;;;;;;;;;OASG;IACH,SAAS,IAAI,MAAM;IAkBnB,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,OAAO,CAAC,MAAM;IAqBd,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,aAAa;CAQtB"}
@@ -112,24 +112,50 @@ export class MobileExtensionUiBridge {
112
112
  clearTimeout(pending.timeout);
113
113
  this.pendingDialogs.delete(requestId);
114
114
  pending.resolve(response);
115
+ this.emitCleared(requestId);
116
+ return true;
117
+ }
118
+ /**
119
+ * 弹窗失效必须通知移动端(S_CONFIRM RV-001)。
120
+ * 之前只有 respond() 发 cleared,而 host 自己超时与 abort/dispose cancelAll() 时不发
121
+ * ⇒ 移动端无法区分「host 还在等这个答案」与「host 已放弃」,断连重发会 reopen
122
+ * 一个已无人接收的 ask,用户重试只会得到 request_not_found。
123
+ */
124
+ emitCleared(requestId) {
115
125
  this.emit({
116
126
  type: "extension_ui_cleared",
117
127
  sessionId: this.sessionId,
118
128
  requestId,
119
129
  seq: this.now(),
120
130
  });
121
- return true;
122
131
  }
123
- /** 关闭所有挂起的弹窗(会话中止/关闭时调用),返回已取消的数量 */
132
+ /**
133
+ * 关闭所有挂起的弹窗(会话中止/关闭时调用),返回已取消的数量。
134
+ *
135
+ * 先快照并清空再做副作用(S_CONFIRM RV-003):上一版在 for-of 里直接 emitCleared,
136
+ * 若某次 emit 抛错则循环中断、末尾的 clear() 不执行 ⇒ 剩余条目留在 Map 里、
137
+ * timeout 仍会事后再触发一次重复取消。先清空使「cancelAll 后 pendingCount 必为 0」
138
+ * 成为与 emit 无关的硬不变量;单条 emit 失败也不阻断其余通知。
139
+ * (当前生产 emit 已逐 listener try/catch(host-controller.ts:43-46)⇒ 实际不可达,
140
+ * 但本类的 emit 是外部注入函数,不应依赖注入方的异常纪律。)
141
+ */
124
142
  cancelAll() {
125
- let count = 0;
126
- for (const [requestId, pending] of this.pendingDialogs) {
143
+ const entries = [...this.pendingDialogs];
144
+ this.pendingDialogs.clear();
145
+ for (const [requestId, pending] of entries) {
127
146
  clearTimeout(pending.timeout);
128
147
  pending.resolve({ id: requestId, cancelled: true });
129
- count++;
130
148
  }
131
- this.pendingDialogs.clear();
132
- return count;
149
+ for (const [requestId] of entries) {
150
+ try {
151
+ this.emitCleared(requestId);
152
+ }
153
+ catch (error) {
154
+ // 通知失败不能留下未取消的弹窗:条目已清空,仅丢失一次 cleared 投影
155
+ console.warn("[maestro-mobile] extension_ui_cleared emit failed:", error instanceof Error ? error.message : error);
156
+ }
157
+ }
158
+ return entries.length;
133
159
  }
134
160
  get pendingCount() {
135
161
  return this.pendingDialogs.size;
@@ -141,6 +167,8 @@ export class MobileExtensionUiBridge {
141
167
  const timeout = setTimeout(() => {
142
168
  this.pendingDialogs.delete(id);
143
169
  resolve(parse({ id, cancelled: true }));
170
+ // host 已放弃此 ask ⇒ 必须通知移动端出队,否则移动端可 reopen 一个无人接收的弹窗
171
+ this.emitCleared(id);
144
172
  }, timeoutMs);
145
173
  this.pendingDialogs.set(id, {
146
174
  resolve: (response) => resolve(parse(response)),
@@ -1 +1 @@
1
- {"version":3,"file":"mobile-ui-context.js","sourceRoot":"","sources":["../src/mobile-ui-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mobile-ui-context.js","sourceRoot":"","sources":["../src/mobile-ui-context.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pi-sdk-runtime.d.ts","sourceRoot":"","sources":["../../src/pi/pi-sdk-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,WAAW,EACjB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,qBAAa,mBAAoB,YAAW,cAAc;IAClD,aAAa,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAmCvE,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;CAGzD"}
1
+ {"version":3,"file":"pi-sdk-runtime.d.ts","sourceRoot":"","sources":["../../src/pi/pi-sdk-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,WAAW,EACjB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,qBAAa,mBAAoB,YAAW,cAAc;IAClD,aAAa,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAoCvE,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;CAGzD"}
@@ -9,13 +9,14 @@ export class PiSdkRuntimeFactory {
9
9
  const createRuntime = async ({ cwd, sessionManager: sm, sessionStartEvent }) => {
10
10
  const services = await createAgentSessionServices({
11
11
  cwd,
12
- // 过滤 pi-maestro-teammate:host 进程与真实 Pi 会话共享工作区时
13
- // 会触发 workspace owner claim 冲突(同一 cwd 只能有一个 live owner)。
14
- // host 只做只读会话浏览/驱动,不需要 teammate 的 peer 运行时。
12
+ // 过滤不需要的扩展:
13
+ // 1. pi-maestro-teammate:会触发 workspace owner claim 冲突。
14
+ // 2. pi-maestro-mobile 自身:host 进程本身就是服务宿主,通过 SDK 打开会话时
15
+ // 绝不能在无 UI 的子会话内再次加载运行自己的扩展遥控器(会导致 statusCtx.ui 空指针崩溃)。
15
16
  resourceLoaderOptions: {
16
17
  extensionsOverride: (base) => ({
17
18
  ...base,
18
- extensions: base.extensions.filter((e) => !isTeammateExtension(e.path)),
19
+ extensions: base.extensions.filter((e) => !isIgnoredExtension(e.path)),
19
20
  }),
20
21
  },
21
22
  });
@@ -49,8 +50,8 @@ function createSessionManager(request) {
49
50
  }
50
51
  return SessionManager.create(request.cwd);
51
52
  }
52
- /** 判断扩展路径是否属于 pi-maestro-teammate(其 workspace peer 会与真实 Pi 冲突) */
53
- function isTeammateExtension(path) {
54
- return path.includes("pi-maestro-teammate");
53
+ /** 判断扩展路径是否属于需要被 Host 内部会话忽略的扩展 */
54
+ function isIgnoredExtension(path) {
55
+ return path.includes("pi-maestro-teammate") || path.includes("pi-maestro-mobile");
55
56
  }
56
57
  //# sourceMappingURL=pi-sdk-runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pi-sdk-runtime.js","sourceRoot":"","sources":["../../src/pi/pi-sdk-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,EACzB,0BAA0B,EAC1B,WAAW,EACX,cAAc,GAGf,MAAM,iCAAiC,CAAC;AAUzC;;;GAGG;AACH,MAAM,OAAO,mBAAmB;IAC9B,KAAK,CAAC,aAAa,CAAC,OAA2B;QAC7C,MAAM,cAAc,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,aAAa,GAAqC,KAAK,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE;YAC/G,MAAM,QAAQ,GAAG,MAAM,0BAA0B,CAAC;gBAChD,GAAG;gBACH,gDAAgD;gBAChD,yDAAyD;gBACzD,4CAA4C;gBAC5C,qBAAqB,EAAE;oBACrB,kBAAkB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;wBAC7B,GAAG,IAAI;wBACP,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;qBACxE,CAAC;iBACH;aACF,CAAC,CAAC;YACH,OAAO;gBACL,GAAG,CAAC,MAAM,8BAA8B,CAAC;oBACvC,QAAQ;oBACR,cAAc,EAAE,EAAE;oBAClB,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACpD,CAAC,CAAC;gBACH,QAAQ;gBACR,WAAW,EAAE,QAAQ,CAAC,WAAW;aAClC,CAAC;QACJ,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,yBAAyB,CAAC,aAAa,EAAE;YAC7D,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,QAAQ,EAAE,WAAW,EAAE;YACvB,cAAc;SACf,CAAC,CAAC;QAEH,OAAO,OAAwC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,GAAY;QAC7B,OAAO,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;IACnE,CAAC;CACF;AAED,SAAS,oBAAoB,CAAC,OAA2B;IACvD,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAChC,OAAO,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,OAAO,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED,kEAAkE;AAClE,SAAS,mBAAmB,CAAC,IAAY;IACvC,OAAO,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"pi-sdk-runtime.js","sourceRoot":"","sources":["../../src/pi/pi-sdk-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,EACzB,0BAA0B,EAC1B,WAAW,EACX,cAAc,GAGf,MAAM,iCAAiC,CAAC;AAUzC;;;GAGG;AACH,MAAM,OAAO,mBAAmB;IAC9B,KAAK,CAAC,aAAa,CAAC,OAA2B;QAC7C,MAAM,cAAc,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,aAAa,GAAqC,KAAK,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE;YAC/G,MAAM,QAAQ,GAAG,MAAM,0BAA0B,CAAC;gBAChD,GAAG;gBACH,YAAY;gBACZ,uDAAuD;gBACvD,uDAAuD;gBACvD,2DAA2D;gBAC3D,qBAAqB,EAAE;oBACrB,kBAAkB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;wBAC7B,GAAG,IAAI;wBACP,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;qBACvE,CAAC;iBACH;aACF,CAAC,CAAC;YACH,OAAO;gBACL,GAAG,CAAC,MAAM,8BAA8B,CAAC;oBACvC,QAAQ;oBACR,cAAc,EAAE,EAAE;oBAClB,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACpD,CAAC,CAAC;gBACH,QAAQ;gBACR,WAAW,EAAE,QAAQ,CAAC,WAAW;aAClC,CAAC;QACJ,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,yBAAyB,CAAC,aAAa,EAAE;YAC7D,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,QAAQ,EAAE,WAAW,EAAE;YACvB,cAAc;SACf,CAAC,CAAC;QAEH,OAAO,OAAwC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,GAAY;QAC7B,OAAO,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;IACnE,CAAC;CACF;AAED,SAAS,oBAAoB,CAAC,OAA2B;IACvD,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAChC,OAAO,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,OAAO,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC5C,CAAC;AAED,mCAAmC;AACnC,SAAS,kBAAkB,CAAC,IAAY;IACtC,OAAO,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;AACpF,CAAC"}
@@ -23,17 +23,6 @@ export declare class HostSessionListService {
23
23
  private ensureLoaded;
24
24
  private reload;
25
25
  }
26
- /** 协议 images 元素 → Pi SDK ImageContent(type/data/mimeType);非法返回 undefined */
27
- export declare function toSdkImageContent(img: {
28
- data: string;
29
- mime: string;
30
- }): {
31
- type: "image";
32
- data: string;
33
- mimeType: string;
34
- } | undefined;
35
- /** 扫描可用的 skill 名录(agent 全局 + 项目本地) */
36
- export declare function listSkills(cwd: string): Promise<string[]>;
37
26
  /** 安全读取本地图片:绝对路径 + 图片扩展名 + 大小限制 + realpath 防 symlink 绕过 */
38
27
  export declare function serveImageFile(filePath: string): Promise<{
39
28
  data: Buffer;
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/server/helpers.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAsB,MAAM,2BAA2B,CAAC;AAWrF,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAuBvF;AAED,MAAM,WAAW,sBAAsB;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,qBAAa,sBAAsB;IAKrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJpC,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,OAAO,CAA4B;gBAEd,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;KAAE;IAEhG,IAAI,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,eAAe,CAAC;IA+B1G,OAAO,CAAC,QAAQ;YAYF,YAAY;YAYZ,MAAM;CASrB;AAmFD,4EAA4E;AAC5E,wBAAgB,iBAAiB,CAAC,GAAG,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAIpI;AAID,sCAAsC;AACtC,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAgB/D;AAqBD,2DAA2D;AAC3D,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAAC,CAsB1G"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/server/helpers.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAsB,MAAM,2BAA2B,CAAC;AAWrF,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAuBvF;AAED,MAAM,WAAW,sBAAsB;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,qBAAa,sBAAsB;IAKrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJpC,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,OAAO,CAA4B;gBAEd,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;KAAE;IAEhG,IAAI,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,eAAe,CAAC;IAuC1G,OAAO,CAAC,QAAQ;YAYF,YAAY;YAYZ,MAAM;CAgBrB;AAoGD,2DAA2D;AAC3D,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAAC,CAsB1G"}
@@ -1,8 +1,8 @@
1
1
  /**
2
- * server/helpers — MobileHostServer 与 ws-command-handlers 共用的纯函数
3
- * (H9 拆分:会话摘要、图片编解码、skill 扫描、安全文件读取)
2
+ * server/helpers — MobileHostServer 复用的纯函数(会话索引服务 + 安全文件读取)
3
+ * (H9 拆分:会话摘要索引服务 + 安全图片文件读取)
4
4
  */
5
- import { readFile, open, stat, readdir, mkdir, rename, writeFile } from "node:fs/promises";
5
+ import { readFile, open, stat, mkdir, rename, writeFile } from "node:fs/promises";
6
6
  import { realpath } from "node:fs/promises";
7
7
  import { isAbsolute, normalize, join } from "node:path";
8
8
  import { homedir, tmpdir } from "node:os";
@@ -50,7 +50,15 @@ export class HostSessionListService {
50
50
  await this.ensureLoaded(load);
51
51
  const now = (this.options.now ?? Date.now)();
52
52
  if (now - this.loadedAt > (this.options.staleAfterMs ?? 10_000) && !this.refresh) {
53
- this.refresh = this.reload(load).finally(() => { this.refresh = undefined; });
53
+ // 必须接 .catch:这是 fire-and-forget 的后台刷新,reload() 一旦 reject
54
+ // (index 目录被删、.tmp 被并发 rename 抢走)就是 unhandledRejection,
55
+ // 在 host 进程会命中 cli.ts 的 fatal() → 直接退整个守护进程。
56
+ // 刷新失败只能降级为「用旧快照继续服务」,不能升级成进程级故障。
57
+ this.refresh = this.reload(load)
58
+ .catch((error) => {
59
+ console.warn("[maestro-mobile] session index refresh failed (serving stale summary):", error instanceof Error ? error.message : error);
60
+ })
61
+ .finally(() => { this.refresh = undefined; });
54
62
  }
55
63
  const all = this.summaries ?? [];
56
64
  if (options.sessionIds || options.latestForCwds) {
@@ -115,10 +123,18 @@ export class HostSessionListService {
115
123
  const list = await toSessionSummaryList(await load());
116
124
  this.summaries = [...list.sessions].sort((a, b) => b.updatedAt.localeCompare(a.updatedAt) || b.id.localeCompare(a.id));
117
125
  this.loadedAt = (this.options.now ?? Date.now)();
118
- await mkdir(join(this.options.indexPath, ".."), { recursive: true });
119
- const temp = `${this.options.indexPath}.tmp`;
120
- await writeFile(temp, JSON.stringify({ sessions: this.summaries, loadedAt: this.loadedAt }), "utf8");
121
- await rename(temp, this.options.indexPath);
126
+ // 持久化与内存刷新解耦:索引文件写失败(磁盘满/目录被删/并发 rename 抢 .tmp)
127
+ // 只能降级为告警,不能让已在内存里的数据路径(含冷启动 ensureLoaded)向调用方抛错,
128
+ // 更不能变成 unhandledRejection → cli fatal() 退整个 host 进程。
129
+ try {
130
+ await mkdir(join(this.options.indexPath, ".."), { recursive: true });
131
+ const temp = `${this.options.indexPath}.${process.pid}.tmp`;
132
+ await writeFile(temp, JSON.stringify({ sessions: this.summaries, loadedAt: this.loadedAt }), "utf8");
133
+ await rename(temp, this.options.indexPath);
134
+ }
135
+ catch (error) {
136
+ console.warn("[maestro-mobile] session index persist failed (serving from memory):", error instanceof Error ? error.message : error);
137
+ }
122
138
  }
123
139
  }
124
140
  function encodeCursor(session) {
@@ -206,42 +222,6 @@ function normalizeIso(raw) {
206
222
  const t = Date.parse(raw);
207
223
  return Number.isFinite(t) ? new Date(t).toISOString() : raw;
208
224
  }
209
- // ── 图片协议转换 ─────────────────────────────────────────────────────────────
210
- /** 协议 images 元素 → Pi SDK ImageContent(type/data/mimeType);非法返回 undefined */
211
- export function toSdkImageContent(img) {
212
- if (typeof img?.data !== "string" || img.data.length === 0)
213
- return undefined;
214
- if (typeof img?.mime !== "string" || !img.mime.startsWith("image/"))
215
- return undefined;
216
- return { type: "image", data: img.data, mimeType: img.mime };
217
- }
218
- // ── skill 扫描 ───────────────────────────────────────────────────────────────
219
- /** 扫描可用的 skill 名录(agent 全局 + 项目本地) */
220
- export async function listSkills(cwd) {
221
- const dirs = [];
222
- try {
223
- dirs.push(join(homedir(), ".pi", "agent", "skills"));
224
- }
225
- catch { /* skip */ }
226
- try {
227
- dirs.push(join(cwd, ".pi", "skills"));
228
- }
229
- catch { /* skip */ }
230
- const names = new Set();
231
- for (const dir of dirs) {
232
- try {
233
- const entries = await readdir(dir, { withFileTypes: true });
234
- for (const e of entries) {
235
- if (e.isDirectory() && !e.name.startsWith("."))
236
- names.add(e.name);
237
- }
238
- }
239
- catch {
240
- // skip
241
- }
242
- }
243
- return [...names].sort();
244
- }
245
225
  // ── 安全文件读取(图片预览)───────────────────────────────────────────────
246
226
  const IMAGE_EXTENSIONS = new Set([".png", ".jpg", ".jpeg", ".gif", ".webp", ".bmp"]);
247
227
  const MAX_IMAGE_BYTES = 20 * 1024 * 1024; // 20MB
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/server/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/server/helpers.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,16 @@ export interface MobileHostServerOptions {
4
4
  corsOrigin?: string;
5
5
  /** WS Origin 额外白名单(除 loopback 与绑定 host 外的受信来源,如显式 LAN IP) */
6
6
  allowedOrigins?: string[];
7
+ /** 入站单帧上限(字节)。默认 8MB;测试可注入小值验证超限隔离 */
8
+ maxPayload?: number;
9
+ /** 背压软高水位(字节),默认 1MB */
10
+ highWaterMarkBytes?: number;
11
+ /** 背压硬上限(字节,约束队列驻留),默认 32MB */
12
+ hardLimitBytes?: number;
13
+ /** required 帧持续越阈的宽限期(ms),默认 5000 */
14
+ slowGraceMs?: number;
15
+ /** 心跳周期(ms):每周期 ping,下周期仍无 pong 则 terminate。默认 30s;测试可注入小值 */
16
+ heartbeatIntervalMs?: number;
7
17
  }
8
18
  /**
9
19
  * MobileHostServer — 移动端直连服务器(HTTP REST + WebSocket)
@@ -23,10 +33,49 @@ export declare class MobileHostServer {
23
33
  /** 单客户端并发命令上限:超过则拒绝,防命令洪泛(DoS) */
24
34
  private static readonly MAX_CONNECTIONS;
25
35
  private static readonly MAX_CONCURRENT_COMMANDS;
36
+ /** 软高水位:best_effort 帧越阈即丢;required 帧持续越阈达宽限期才断线。
37
+ * 必须显著低于硬顶,否则「required 宽限投递」区间被压缩到几乎不存在 */
38
+ private static readonly HIGH_WATER_MARK_BYTES;
39
+ /** 硬上限:约束队列驻留(buffered + 新帧)。默认 32MB:实测合法最大帧(4000 条 snapshot)≈7.4MB,
40
+ * 留 4× 余量;单帧自身越顶不阻断(防重连死循环),只告警 */
41
+ private static readonly HARD_LIMIT_BYTES;
42
+ private static readonly SLOW_GRACE_MS;
43
+ private static readonly DROP_LOG_INTERVAL_MS;
44
+ /** 连续未应答次数上限:3 = 容忍两次漏答(默认 30s 周期即约 90s 无响应/无数据才判定死连) */
45
+ private static readonly HEARTBEAT_MAX_MISSES;
26
46
  private unsubscribeController;
47
+ /** listen() 等待中的错误回调;非空表示正在绑定端口 */
48
+ private listenError;
27
49
  private boundHost;
28
50
  private readonly hostSessionList;
51
+ /** 背压参数(构造时从 options 解析,默认取静态常量) */
52
+ private readonly highWaterMarkBytes;
53
+ private readonly hardLimitBytes;
54
+ private readonly slowGraceMs;
29
55
  constructor(controller: HostController, options?: MobileHostServerOptions);
56
+ private remoteOf;
57
+ /** 心跳周期句柄 */
58
+ private heartbeatTimer;
59
+ /**
60
+ * 服务端心跳:每周期对无响应的连接 terminate(半开/死 socket),有响应则 ping。
61
+ * 替代此前没用的 ws.setTimeout(WebSocket 对象无此方法);也让 close():「graceful 等待」不再被失联连接拖≈30s。
62
+ */
63
+ private startHeartbeat;
64
+ /**
65
+ * 单一发送出口(故障隔离 + 背压收口):所有 WS 写出必须经此,不得直接 ws.send。
66
+ * - required(command_result/握手/协议错误/timeline_item/session_updated/raw_event/…):
67
+ * 越阈不静默丢;持续越阈达宽限期 close(1013),由客户端重连 + P2-2 snapshot 补拉自愈。
68
+ * 不自研排队/drain 补发:消除 close×drain 竞态,局域网工具不值得该复杂度。
69
+ * - best_effort(仅 timeline_delta):越阈直接丢弃并计数,终态由后续 timeline_item 补齐,不断线。
70
+ */
71
+ private sendFrame;
72
+ private rawSend;
73
+ /**
74
+ * 幂等关闭:只由首个调用者真正关。默认 graceful close(让 close 帧送达,客户端能看到 1013/reason);
75
+ * ws 内部已在协议错误路径自行发过 close 帧(receiverOnError),重复 close 无副作用。
76
+ * heartbeat_lost/ping_failed 等对端已死的场景直接 terminate 强制拆。
77
+ */
78
+ private closeClient;
30
79
  listen(port: number, hostname?: string): Promise<void>;
31
80
  address(): {
32
81
  port: number;
@@ -35,10 +84,48 @@ export declare class MobileHostServer {
35
84
  private handleHttp;
36
85
  private authorized;
37
86
  private handleUpgrade;
38
- /** WS 握手 Origin 白名单:loopback 变体 + 绑定 host(非 0.0.0.0 时)+ 显式配置 */
87
+ /**
88
+ * WS 握手 Origin 白名单:scheme 限定 + loopback 变体 + 绑定 host(非 0.0.0.0 时)
89
+ * + 同源 Host 头 + 显式配置。
90
+ *
91
+ * ISS-20260910-005 收紧(以下均为实测 new URL() 行为,非推断):
92
+ * 1. scheme 必须落在 http/https/ws/wss:旧实现完全不看 protocol,
93
+ * `file://`、`data:` 等只要 hostname 对上就放行。
94
+ * 2. 同源比较改用 parsed.host。旧写法 `${hostname}:${parsed.port}` 在无端口时
95
+ * 产生尾冒号(`new URL("http://192.168.1.10").port === ""`)⇒ 永不匹配,
96
+ * 是无效果死比较。parsed.host 已含非默认端口、并规范掉默认端口
97
+ * (`https://a.example:443`.host === "a.example"),语义止于「主机+非默认端口」。
98
+ * 3. allowedOrigins 支持两种写法:完整 URL(可精确到端口)或裸 hostname。
99
+ * 旧实现用 new URL(o) 解析,而 `new URL("trusted.example.com")` 抛错 ⇒ 该配置
100
+ * 静默永不生效(只能配成完整 URL 才有效),属配置陷阱。
101
+ *
102
+ * 不变的两条(刻意的宽松,改它们会锁死现有使用):
103
+ * - 无 Origin 一律放行(:552 原样保留):RN/原生客户端不发 Origin,仍有 token 把关。
104
+ * - loopback 与 boundHost 分支只看 hostname、忽略 port:本地开发页面常在随机端口
105
+ * (http://localhost:3000 连 4739 的 host),纳port 比较会直接打断现有用法。
106
+ */
39
107
  private isOriginAllowed;
108
+ /**
109
+ * 白名单条目匹配:借助标准 new URL() 归一化解析 scheme/host/port。
110
+ * 裸 hostname 或未带 scheme 的写法统一垫入 "http://" 代理解析,避免易碎的手工切片。
111
+ */
112
+ private matchesAllowedOrigin;
40
113
  private handleClientMessage;
41
114
  private sendAck;
42
115
  private sendError;
43
116
  }
117
+ /**
118
+ * 命令参数钳制(导出以供回归测试直接钉本函数,避免测试复制一份算式假通过):
119
+ * 非有限值(NaN/Infinity/null/字符串形态)落默认值,有限值夹到 [1, max]。
120
+ */
121
+ export declare function clampCommandInt(raw: number | undefined, dflt: number, max: number): number;
122
+ /**
123
+ * WS/日志/响应用错误文本脱敏:限长 + 去换行 + 抹掉已知敏感根。
124
+ * 背景:command_failed 曾把底层 fs/SDK 的 Error.message(含用户目录绝对路径)原样回传网络。
125
+ *
126
+ * 设计:只替换「已知敏感值」(token 本体、home 目录、cwd、盘符路径),不用泛用正则猜“这段像不像路径”——
127
+ * 后者会把 `/api/v1/users`、`http://host/api/v1` 这类诊断信息误删(独立评审 RV-002)。
128
+ * 完整堆栈只进服务端日志的结构化字段,不经此函数回传客户端。
129
+ */
130
+ export declare function sanitizeWsErrorMessage(raw: string, secrets?: string[]): string;
44
131
  //# sourceMappingURL=mobile-host-server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mobile-host-server.d.ts","sourceRoot":"","sources":["../../src/server/mobile-host-server.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAQ5D,MAAM,WAAW,uBAAuB;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AASD;;;;;;;;GAQG;AACH,qBAAa,gBAAgB;IAczB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAd1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAwE;IACxG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IACnD,kCAAkC;IAClC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAM;IAC7C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAK;IACpD,OAAO,CAAC,qBAAqB,CAA2B;IACxD,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAE7B;gBAGgB,UAAU,EAAE,cAAc,EAC1B,OAAO,GAAE,uBAA4B;IA4CxD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,SAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAOzD,OAAO,IAAI;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;IAQrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAcd,UAAU;IAwIxB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,aAAa;IAyBrB,gEAAgE;IAChE,OAAO,CAAC,eAAe;YAkCT,mBAAmB;IAoOjC,OAAO,CAAC,OAAO;IASf,OAAO,CAAC,SAAS;CAQlB"}
1
+ {"version":3,"file":"mobile-host-server.d.ts","sourceRoot":"","sources":["../../src/server/mobile-host-server.ts"],"names":[],"mappings":"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"}