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.
- package/dist/cli.js +85 -21
- package/dist/cli.js.map +1 -1
- package/dist/extension.d.ts.map +1 -1
- package/dist/extension.js +126 -96
- package/dist/extension.js.map +1 -1
- package/dist/host-controller.d.ts +3 -0
- package/dist/host-controller.d.ts.map +1 -1
- package/dist/host-controller.js +12 -0
- package/dist/host-controller.js.map +1 -1
- package/dist/jsonl-index.js +2 -2
- package/dist/jsonl-index.js.map +1 -1
- package/dist/jsonl-pager.d.ts.map +1 -1
- package/dist/jsonl-pager.js +68 -6
- package/dist/jsonl-pager.js.map +1 -1
- package/dist/jsonl-tail-watcher.d.ts +44 -0
- package/dist/jsonl-tail-watcher.d.ts.map +1 -0
- package/dist/jsonl-tail-watcher.js +275 -0
- package/dist/jsonl-tail-watcher.js.map +1 -0
- package/dist/live-sessions.d.ts.map +1 -1
- package/dist/live-sessions.js +22 -5
- package/dist/live-sessions.js.map +1 -1
- package/dist/maestro-state.d.ts.map +1 -1
- package/dist/maestro-state.js +19 -4
- package/dist/maestro-state.js.map +1 -1
- package/dist/mobile-ui-context.d.ts +17 -1
- package/dist/mobile-ui-context.d.ts.map +1 -1
- package/dist/mobile-ui-context.js +35 -7
- package/dist/mobile-ui-context.js.map +1 -1
- package/dist/pi/pi-sdk-runtime.d.ts.map +1 -1
- package/dist/pi/pi-sdk-runtime.js +8 -7
- package/dist/pi/pi-sdk-runtime.js.map +1 -1
- package/dist/server/helpers.d.ts +0 -11
- package/dist/server/helpers.d.ts.map +1 -1
- package/dist/server/helpers.js +24 -44
- package/dist/server/helpers.js.map +1 -1
- package/dist/server/mobile-host-server.d.ts +88 -1
- package/dist/server/mobile-host-server.d.ts.map +1 -1
- package/dist/server/mobile-host-server.js +434 -54
- package/dist/server/mobile-host-server.js.map +1 -1
- package/dist/session-runner.d.ts +22 -1
- package/dist/session-runner.d.ts.map +1 -1
- package/dist/session-runner.js +67 -5
- package/dist/session-runner.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/usage-reader.d.ts +6 -2
- package/dist/usage-reader.d.ts.map +1 -1
- package/dist/usage-reader.js +122 -27
- package/dist/usage-reader.js.map +1 -1
- package/dist/vendor/shared/protocol.d.ts +13 -0
- package/dist/vendor/shared/protocol.d.ts.map +1 -1
- package/dist/vendor/shared/protocol.js.map +1 -1
- package/dist/vendor/shared/validation.d.ts.map +1 -1
- package/dist/vendor/shared/validation.js +10 -0
- package/dist/vendor/shared/validation.js.map +1 -1
- package/dist/workspace-peer-injector.d.ts +19 -0
- package/dist/workspace-peer-injector.d.ts.map +1 -0
- package/dist/workspace-peer-injector.js +63 -0
- package/dist/workspace-peer-injector.js.map +1 -0
- package/dist/workspace-telemetry.d.ts +4 -1
- package/dist/workspace-telemetry.d.ts.map +1 -1
- package/dist/workspace-telemetry.js +20 -6
- package/dist/workspace-telemetry.js.map +1 -1
- package/package.json +1 -1
- package/dist/jsonl-replay.d.ts +0 -9
- package/dist/jsonl-replay.d.ts.map +0 -1
- package/dist/jsonl-replay.js +0 -153
- package/dist/jsonl-replay.js.map +0 -1
- package/dist/server/ws-command-handlers.d.ts +0 -20
- package/dist/server/ws-command-handlers.d.ts.map +0 -1
- package/dist/server/ws-command-handlers.js +0 -176
- package/dist/server/ws-command-handlers.js.map +0 -1
package/dist/maestro-state.js
CHANGED
|
@@ -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
|
|
84
|
-
if (raw
|
|
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
|
|
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
|
|
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":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAc,MAAM,WAAW,CAAC;AAW7C,MAAM,iBAAiB,GAAG,sBAAsB,CAAC;AACjD,MAAM,aAAa,GAAG,WAAW,CAAC;AAClC,MAAM,cAAc,GAAG,YAAY,CAAC;AACpC,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,MAAM;
|
|
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;
|
|
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
|
-
|
|
126
|
-
|
|
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
|
-
|
|
132
|
-
|
|
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;
|
|
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
|
-
//
|
|
13
|
-
//
|
|
14
|
-
//
|
|
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) => !
|
|
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
|
-
/**
|
|
53
|
-
function
|
|
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,
|
|
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"}
|
package/dist/server/helpers.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/server/helpers.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* server/helpers — MobileHostServer
|
|
3
|
-
* (H9
|
|
2
|
+
* server/helpers — MobileHostServer 复用的纯函数(会话索引服务 + 安全文件读取)
|
|
3
|
+
* (H9 拆分:会话摘要索引服务 + 安全图片文件读取)
|
|
4
4
|
*/
|
|
5
|
-
import { readFile, open, stat,
|
|
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
|
-
|
|
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
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
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
|
-
/**
|
|
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;
|
|
1
|
+
{"version":3,"file":"mobile-host-server.d.ts","sourceRoot":"","sources":["../../src/server/mobile-host-server.ts"],"names":[],"mappings":"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"}
|