pi-maestro-mobile 0.1.2
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 +85 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +84 -0
- package/dist/cli.js.map +1 -0
- package/dist/event-log.d.ts +18 -0
- package/dist/event-log.d.ts.map +1 -0
- package/dist/event-log.js +31 -0
- package/dist/event-log.js.map +1 -0
- package/dist/extension.d.ts +3 -0
- package/dist/extension.d.ts.map +1 -0
- package/dist/extension.js +118 -0
- package/dist/extension.js.map +1 -0
- package/dist/host-controller.d.ts +69 -0
- package/dist/host-controller.d.ts.map +1 -0
- package/dist/host-controller.js +195 -0
- package/dist/host-controller.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/jsonl-index.d.ts +19 -0
- package/dist/jsonl-index.d.ts.map +1 -0
- package/dist/jsonl-index.js +84 -0
- package/dist/jsonl-index.js.map +1 -0
- package/dist/jsonl-pager.d.ts +29 -0
- package/dist/jsonl-pager.d.ts.map +1 -0
- package/dist/jsonl-pager.js +237 -0
- package/dist/jsonl-pager.js.map +1 -0
- package/dist/jsonl-replay.d.ts +9 -0
- package/dist/jsonl-replay.d.ts.map +1 -0
- package/dist/jsonl-replay.js +140 -0
- package/dist/jsonl-replay.js.map +1 -0
- package/dist/live-sessions.d.ts +47 -0
- package/dist/live-sessions.d.ts.map +1 -0
- package/dist/live-sessions.js +201 -0
- package/dist/live-sessions.js.map +1 -0
- package/dist/maestro-settings.d.ts +40 -0
- package/dist/maestro-settings.d.ts.map +1 -0
- package/dist/maestro-settings.js +122 -0
- package/dist/maestro-settings.js.map +1 -0
- package/dist/maestro-state.d.ts +31 -0
- package/dist/maestro-state.d.ts.map +1 -0
- package/dist/maestro-state.js +219 -0
- package/dist/maestro-state.js.map +1 -0
- package/dist/mobile-agent.d.ts +86 -0
- package/dist/mobile-agent.d.ts.map +1 -0
- package/dist/mobile-agent.js +2 -0
- package/dist/mobile-agent.js.map +1 -0
- package/dist/mobile-ui-context.d.ts +26 -0
- package/dist/mobile-ui-context.d.ts.map +1 -0
- package/dist/mobile-ui-context.js +164 -0
- package/dist/mobile-ui-context.js.map +1 -0
- package/dist/monitor-projection.d.ts +19 -0
- package/dist/monitor-projection.d.ts.map +1 -0
- package/dist/monitor-projection.js +79 -0
- package/dist/monitor-projection.js.map +1 -0
- package/dist/pi/pi-sdk-runtime.d.ts +17 -0
- package/dist/pi/pi-sdk-runtime.d.ts.map +1 -0
- package/dist/pi/pi-sdk-runtime.js +57 -0
- package/dist/pi/pi-sdk-runtime.js.map +1 -0
- package/dist/server/helpers.d.ts +23 -0
- package/dist/server/helpers.d.ts.map +1 -0
- package/dist/server/helpers.js +179 -0
- package/dist/server/helpers.js.map +1 -0
- package/dist/server/mobile-host-server.d.ts +43 -0
- package/dist/server/mobile-host-server.d.ts.map +1 -0
- package/dist/server/mobile-host-server.js +715 -0
- package/dist/server/mobile-host-server.js.map +1 -0
- package/dist/server/ws-command-handlers.d.ts +18 -0
- package/dist/server/ws-command-handlers.d.ts.map +1 -0
- package/dist/server/ws-command-handlers.js +173 -0
- package/dist/server/ws-command-handlers.js.map +1 -0
- package/dist/session-runner.d.ts +130 -0
- package/dist/session-runner.d.ts.map +1 -0
- package/dist/session-runner.js +576 -0
- package/dist/session-runner.js.map +1 -0
- package/dist/types.d.ts +83 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/usage-reader.d.ts +49 -0
- package/dist/usage-reader.d.ts.map +1 -0
- package/dist/usage-reader.js +189 -0
- package/dist/usage-reader.js.map +1 -0
- package/dist/vendor/shared/index.d.ts +4 -0
- package/dist/vendor/shared/index.d.ts.map +1 -0
- package/dist/vendor/shared/index.js +4 -0
- package/dist/vendor/shared/index.js.map +1 -0
- package/dist/vendor/shared/protocol.d.ts +471 -0
- package/dist/vendor/shared/protocol.d.ts.map +1 -0
- package/dist/vendor/shared/protocol.js +34 -0
- package/dist/vendor/shared/protocol.js.map +1 -0
- package/dist/vendor/shared/timeline.d.ts +15 -0
- package/dist/vendor/shared/timeline.d.ts.map +1 -0
- package/dist/vendor/shared/timeline.js +21 -0
- package/dist/vendor/shared/timeline.js.map +1 -0
- package/dist/vendor/shared/validation.d.ts +8 -0
- package/dist/vendor/shared/validation.d.ts.map +1 -0
- package/dist/vendor/shared/validation.js +25 -0
- package/dist/vendor/shared/validation.js.map +1 -0
- package/dist/version-detector.d.ts +36 -0
- package/dist/version-detector.d.ts.map +1 -0
- package/dist/version-detector.js +141 -0
- package/dist/version-detector.js.map +1 -0
- package/dist/workspace-telemetry.d.ts +10 -0
- package/dist/workspace-telemetry.d.ts.map +1 -0
- package/dist/workspace-telemetry.js +84 -0
- package/dist/workspace-telemetry.js.map +1 -0
- package/package.json +64 -0
|
@@ -0,0 +1,471 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Maestro Mobile 共享协议类型
|
|
3
|
+
*
|
|
4
|
+
* 数据契约核心:
|
|
5
|
+
* - HostEvent — host 推送给客户端的统一事件流
|
|
6
|
+
* - ClientCommand — 客户端发给 host 的命令
|
|
7
|
+
* - MaestroState — teammate/flow-schedule 调度状态投影
|
|
8
|
+
* - MonitorWindow — monitor 窗口状态
|
|
9
|
+
* - ExtensionUiRequest/Response — ask 弹窗协议(解决 maestro ask 在 remote 环境失效问题)
|
|
10
|
+
*/
|
|
11
|
+
export type JsonValue = null | boolean | number | string | JsonValue[] | {
|
|
12
|
+
[key: string]: JsonValue;
|
|
13
|
+
};
|
|
14
|
+
export interface TimelineItem {
|
|
15
|
+
id: string;
|
|
16
|
+
kind: "user" | "assistant" | "thinking" | "tool" | "system";
|
|
17
|
+
text: string;
|
|
18
|
+
createdAt: string;
|
|
19
|
+
toolName?: string;
|
|
20
|
+
toolCallId?: string;
|
|
21
|
+
toolArgs?: JsonValue;
|
|
22
|
+
toolResult?: JsonValue;
|
|
23
|
+
isError?: boolean;
|
|
24
|
+
}
|
|
25
|
+
export interface SessionState {
|
|
26
|
+
id: string;
|
|
27
|
+
cwd: string;
|
|
28
|
+
title: string;
|
|
29
|
+
runState: "idle" | "streaming" | "compacting" | "aborting" | "error";
|
|
30
|
+
messageCount: number;
|
|
31
|
+
pendingMessageCount: number;
|
|
32
|
+
updatedAt: string;
|
|
33
|
+
sessionFile?: string;
|
|
34
|
+
model?: JsonValue;
|
|
35
|
+
thinkingLevel?: string;
|
|
36
|
+
}
|
|
37
|
+
export interface SessionSnapshot {
|
|
38
|
+
session: SessionState;
|
|
39
|
+
timeline: TimelineItem[];
|
|
40
|
+
nextSeq: number;
|
|
41
|
+
/** 是否还有更早的历史可懒加载 */
|
|
42
|
+
hasMoreHistory?: boolean;
|
|
43
|
+
}
|
|
44
|
+
/** Host 端 Pi 已存在会话的摘要(移动端只读列表用,不携带大字段) */
|
|
45
|
+
export interface HostSessionSummary {
|
|
46
|
+
id: string;
|
|
47
|
+
cwd: string;
|
|
48
|
+
cwdName: string;
|
|
49
|
+
path: string;
|
|
50
|
+
title: string;
|
|
51
|
+
/** 用户自定义会话名(session_info) */
|
|
52
|
+
name?: string;
|
|
53
|
+
/** 最近使用的模型(provider/modelId) */
|
|
54
|
+
model?: string;
|
|
55
|
+
messageCount: number;
|
|
56
|
+
updatedAt: string;
|
|
57
|
+
createdAt?: string;
|
|
58
|
+
}
|
|
59
|
+
export interface HostSessionList {
|
|
60
|
+
sessions: HostSessionSummary[];
|
|
61
|
+
observedAt: string;
|
|
62
|
+
}
|
|
63
|
+
/** 活跃会话(vibe coding 中)摘要 */
|
|
64
|
+
export interface LiveSessionInfo {
|
|
65
|
+
sessionId: string;
|
|
66
|
+
cwdName: string;
|
|
67
|
+
path: string;
|
|
68
|
+
firstMessage: string;
|
|
69
|
+
entryCount: number;
|
|
70
|
+
messageCount: number;
|
|
71
|
+
updatedAt: number;
|
|
72
|
+
live: boolean;
|
|
73
|
+
liveAgeMs: number;
|
|
74
|
+
}
|
|
75
|
+
export interface LiveSessionList {
|
|
76
|
+
sessions: LiveSessionInfo[];
|
|
77
|
+
observedAt: string;
|
|
78
|
+
liveCount: number;
|
|
79
|
+
}
|
|
80
|
+
/** Teammate/Monitor 合同:workspace owner 运行时状态(pi-maestro-teammate 持久化) */
|
|
81
|
+
export interface WorkspaceOwnerState {
|
|
82
|
+
workspaceId: string;
|
|
83
|
+
normalizedCwd: string;
|
|
84
|
+
ownerId: string;
|
|
85
|
+
pid: number;
|
|
86
|
+
sessionId: string;
|
|
87
|
+
publishedAt: number;
|
|
88
|
+
contextPressure: JsonValue;
|
|
89
|
+
agents: JsonValue[];
|
|
90
|
+
settled: JsonValue[];
|
|
91
|
+
backgroundJobs: JsonValue[];
|
|
92
|
+
alive: boolean;
|
|
93
|
+
ageMs: number;
|
|
94
|
+
}
|
|
95
|
+
export interface WorkspaceTelemetryState {
|
|
96
|
+
owners: WorkspaceOwnerState[];
|
|
97
|
+
observedAt: string;
|
|
98
|
+
aliveCount: number;
|
|
99
|
+
}
|
|
100
|
+
export type MaestroScheduleState = "draft" | "active" | "paused" | "completed" | "failed" | "cancelled";
|
|
101
|
+
export type MaestroDispatchState = "prepared" | "published" | "accepted" | "completed" | "failed" | "timeout" | "cancelled";
|
|
102
|
+
export interface MaestroStepSummary {
|
|
103
|
+
stepId: string;
|
|
104
|
+
title: string;
|
|
105
|
+
state: string;
|
|
106
|
+
dispatches: MaestroDispatchSummary[];
|
|
107
|
+
}
|
|
108
|
+
export interface MaestroDispatchSummary {
|
|
109
|
+
dispatchId: string;
|
|
110
|
+
state: MaestroDispatchState;
|
|
111
|
+
agent?: string;
|
|
112
|
+
task?: string;
|
|
113
|
+
startedAt?: string;
|
|
114
|
+
completedAt?: string;
|
|
115
|
+
resultSummary?: string;
|
|
116
|
+
error?: string;
|
|
117
|
+
attempt: number;
|
|
118
|
+
}
|
|
119
|
+
export interface MaestroScheduleSummary {
|
|
120
|
+
scheduleId: string;
|
|
121
|
+
title: string;
|
|
122
|
+
state: MaestroScheduleState;
|
|
123
|
+
progress: {
|
|
124
|
+
completed: number;
|
|
125
|
+
total: number;
|
|
126
|
+
};
|
|
127
|
+
steps: MaestroStepSummary[];
|
|
128
|
+
createdAt: string;
|
|
129
|
+
updatedAt: string;
|
|
130
|
+
targetIdentity?: {
|
|
131
|
+
workspaceId: string;
|
|
132
|
+
ownerId: string;
|
|
133
|
+
endpointId: string;
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
export interface MaestroState {
|
|
137
|
+
schedules: MaestroScheduleSummary[];
|
|
138
|
+
observedAt: string;
|
|
139
|
+
}
|
|
140
|
+
/** Teammate dispatch 运行状态(pi-maestro-teammate owner.agents 条目,有界投影) */
|
|
141
|
+
export interface TeammateAgentState {
|
|
142
|
+
correlationId?: string;
|
|
143
|
+
name?: string;
|
|
144
|
+
agent?: string;
|
|
145
|
+
status?: string;
|
|
146
|
+
phase?: string;
|
|
147
|
+
/** 最近输出行(host 端截断至有界条数) */
|
|
148
|
+
outputTail?: string[];
|
|
149
|
+
pendingInteractions?: number;
|
|
150
|
+
}
|
|
151
|
+
/** Monitor 窗口 facet:teammate agents 详情(host 投影合同) */
|
|
152
|
+
export interface TeammateAgentsFacet {
|
|
153
|
+
kind: "teammate-agents";
|
|
154
|
+
target: {
|
|
155
|
+
identity: {
|
|
156
|
+
workspaceId: string;
|
|
157
|
+
ownerId: string;
|
|
158
|
+
ownerNonce: string;
|
|
159
|
+
endpointId: string;
|
|
160
|
+
};
|
|
161
|
+
};
|
|
162
|
+
revision: string;
|
|
163
|
+
data: {
|
|
164
|
+
agents: TeammateAgentState[];
|
|
165
|
+
backgroundJobs: JsonValue[];
|
|
166
|
+
contextPressure?: JsonValue;
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
export type MonitorFacet = TeammateAgentsFacet;
|
|
170
|
+
/** Monitor 窗口状态 */
|
|
171
|
+
export interface MonitorWindowSummary {
|
|
172
|
+
identity: {
|
|
173
|
+
workspaceId: string;
|
|
174
|
+
ownerId: string;
|
|
175
|
+
ownerNonce: string;
|
|
176
|
+
endpointId: string;
|
|
177
|
+
};
|
|
178
|
+
name?: string;
|
|
179
|
+
objective?: string;
|
|
180
|
+
/** 窗口 cwd(telemetry normalizedCwd;steer_window 接管路径需要) */
|
|
181
|
+
cwd?: string;
|
|
182
|
+
status: string;
|
|
183
|
+
lifecycle: string;
|
|
184
|
+
workStatus: string;
|
|
185
|
+
todos: MonitorTodoSummary[];
|
|
186
|
+
attention: MonitorAttentionSummary[];
|
|
187
|
+
facets: MonitorFacet[];
|
|
188
|
+
}
|
|
189
|
+
export interface MonitorTodoSummary {
|
|
190
|
+
id: string;
|
|
191
|
+
subject: string;
|
|
192
|
+
status: string;
|
|
193
|
+
assigneeLabel?: string;
|
|
194
|
+
updatedAt: number;
|
|
195
|
+
}
|
|
196
|
+
export interface MonitorAttentionSummary {
|
|
197
|
+
code: string;
|
|
198
|
+
severity: "info" | "warning" | "error";
|
|
199
|
+
message: string;
|
|
200
|
+
}
|
|
201
|
+
export interface MonitorState {
|
|
202
|
+
windows: MonitorWindowSummary[];
|
|
203
|
+
observedAt: string;
|
|
204
|
+
}
|
|
205
|
+
export type ExtensionUiMethod = "select" | "confirm" | "input" | "editor" | "notify" | "setStatus" | "setWidget" | "setTitle" | "set_editor_text";
|
|
206
|
+
export interface ExtensionUiRequest {
|
|
207
|
+
id: string;
|
|
208
|
+
sessionId: string;
|
|
209
|
+
method: ExtensionUiMethod;
|
|
210
|
+
title?: string;
|
|
211
|
+
message?: string;
|
|
212
|
+
options?: string[];
|
|
213
|
+
placeholder?: string;
|
|
214
|
+
prefill?: string;
|
|
215
|
+
timeout?: number;
|
|
216
|
+
widgetKey?: string;
|
|
217
|
+
widgetLines?: string[];
|
|
218
|
+
widgetPlacement?: string;
|
|
219
|
+
statusKey?: string;
|
|
220
|
+
statusText?: string;
|
|
221
|
+
notifyType?: string;
|
|
222
|
+
text?: string;
|
|
223
|
+
}
|
|
224
|
+
export type ExtensionUiResponse = {
|
|
225
|
+
id: string;
|
|
226
|
+
cancelled: true;
|
|
227
|
+
} | {
|
|
228
|
+
id: string;
|
|
229
|
+
cancelled?: false;
|
|
230
|
+
value: string;
|
|
231
|
+
} | {
|
|
232
|
+
id: string;
|
|
233
|
+
cancelled?: false;
|
|
234
|
+
confirmed: boolean;
|
|
235
|
+
} | {
|
|
236
|
+
id: string;
|
|
237
|
+
cancelled?: false;
|
|
238
|
+
selected: string[];
|
|
239
|
+
};
|
|
240
|
+
/** 不含 id 的 ExtensionUiResponse 联合类型(分布式 Omit) */
|
|
241
|
+
export type DistributiveOmitUiResponse = {
|
|
242
|
+
cancelled: true;
|
|
243
|
+
} | {
|
|
244
|
+
cancelled?: false;
|
|
245
|
+
value: string;
|
|
246
|
+
} | {
|
|
247
|
+
cancelled?: false;
|
|
248
|
+
confirmed: boolean;
|
|
249
|
+
} | {
|
|
250
|
+
cancelled?: false;
|
|
251
|
+
selected: string[];
|
|
252
|
+
};
|
|
253
|
+
export type HostEvent = {
|
|
254
|
+
type: "host_status";
|
|
255
|
+
status: string;
|
|
256
|
+
seq: number;
|
|
257
|
+
} | {
|
|
258
|
+
type: "host_info";
|
|
259
|
+
info: HostStatus;
|
|
260
|
+
seq: number;
|
|
261
|
+
} | {
|
|
262
|
+
type: "session_updated";
|
|
263
|
+
session: SessionState;
|
|
264
|
+
seq: number;
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* 消息终态投影:host 在 message_end 时按稳定 id 发出。
|
|
268
|
+
* 客户端契约:若 timeline 中已存在相同 id 的条目则替换,否则追加。
|
|
269
|
+
*/
|
|
270
|
+
| {
|
|
271
|
+
type: "timeline_item";
|
|
272
|
+
sessionId: string;
|
|
273
|
+
item: TimelineItem;
|
|
274
|
+
seq: number;
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* 流式增量:message_update 期间按同一稳定 itemId 发出(可节流)。
|
|
278
|
+
* 客户端契约:已存在该 id 的条目则追加文本;尚不存在时可忽略(终态由 timeline_item 补齐)。
|
|
279
|
+
*/
|
|
280
|
+
| {
|
|
281
|
+
type: "timeline_delta";
|
|
282
|
+
sessionId: string;
|
|
283
|
+
itemId: string;
|
|
284
|
+
delta: string;
|
|
285
|
+
seq: number;
|
|
286
|
+
} | {
|
|
287
|
+
type: "raw_event";
|
|
288
|
+
sessionId: string;
|
|
289
|
+
event: JsonValue;
|
|
290
|
+
seq: number;
|
|
291
|
+
} | {
|
|
292
|
+
type: "command_error";
|
|
293
|
+
sessionId: string;
|
|
294
|
+
command: string;
|
|
295
|
+
message: string;
|
|
296
|
+
seq: number;
|
|
297
|
+
} | {
|
|
298
|
+
type: "extension_ui_request";
|
|
299
|
+
sessionId: string;
|
|
300
|
+
request: ExtensionUiRequest;
|
|
301
|
+
seq: number;
|
|
302
|
+
} | {
|
|
303
|
+
type: "extension_ui_cleared";
|
|
304
|
+
sessionId: string;
|
|
305
|
+
requestId: string;
|
|
306
|
+
seq: number;
|
|
307
|
+
} | {
|
|
308
|
+
type: "maestro_state";
|
|
309
|
+
state: MaestroState;
|
|
310
|
+
seq: number;
|
|
311
|
+
} | {
|
|
312
|
+
type: "monitor_state";
|
|
313
|
+
state: MonitorState;
|
|
314
|
+
seq: number;
|
|
315
|
+
} | {
|
|
316
|
+
type: "teammate_event";
|
|
317
|
+
scheduleId: string;
|
|
318
|
+
dispatchId?: string;
|
|
319
|
+
status: string;
|
|
320
|
+
seq: number;
|
|
321
|
+
} | {
|
|
322
|
+
type: "error";
|
|
323
|
+
code: string;
|
|
324
|
+
message: string;
|
|
325
|
+
seq: number;
|
|
326
|
+
};
|
|
327
|
+
export type ClientCommand = {
|
|
328
|
+
type: "open_session";
|
|
329
|
+
cwd: string;
|
|
330
|
+
mode?: "create" | "continue";
|
|
331
|
+
sessionFile?: string;
|
|
332
|
+
} | {
|
|
333
|
+
type: "list_host_sessions";
|
|
334
|
+
cwd?: string;
|
|
335
|
+
} | {
|
|
336
|
+
type: "list_live_sessions";
|
|
337
|
+
} | {
|
|
338
|
+
type: "load_more_history";
|
|
339
|
+
sessionId: string;
|
|
340
|
+
count?: number;
|
|
341
|
+
} | {
|
|
342
|
+
type: "search_history";
|
|
343
|
+
sessionId: string;
|
|
344
|
+
keyword: string;
|
|
345
|
+
maxResults?: number;
|
|
346
|
+
previewLength?: number;
|
|
347
|
+
} | {
|
|
348
|
+
type: "list_models";
|
|
349
|
+
sessionId: string;
|
|
350
|
+
} | {
|
|
351
|
+
type: "list_skills";
|
|
352
|
+
sessionId: string;
|
|
353
|
+
} | {
|
|
354
|
+
type: "get_maestro_settings";
|
|
355
|
+
} | {
|
|
356
|
+
type: "update_maestro_settings";
|
|
357
|
+
key: string;
|
|
358
|
+
patch: Record<string, unknown>;
|
|
359
|
+
} | {
|
|
360
|
+
type: "set_model";
|
|
361
|
+
sessionId: string;
|
|
362
|
+
modelId: string;
|
|
363
|
+
} | {
|
|
364
|
+
type: "set_thinking";
|
|
365
|
+
sessionId: string;
|
|
366
|
+
level: string;
|
|
367
|
+
} | {
|
|
368
|
+
type: "compact";
|
|
369
|
+
sessionId: string;
|
|
370
|
+
customInstructions?: string;
|
|
371
|
+
} | {
|
|
372
|
+
type: "rename_session";
|
|
373
|
+
sessionId: string;
|
|
374
|
+
name: string;
|
|
375
|
+
} | {
|
|
376
|
+
type: "close_session";
|
|
377
|
+
sessionId: string;
|
|
378
|
+
} | {
|
|
379
|
+
type: "list_sessions";
|
|
380
|
+
cwd?: string;
|
|
381
|
+
} | {
|
|
382
|
+
type: "list_directories";
|
|
383
|
+
path: string;
|
|
384
|
+
} | {
|
|
385
|
+
type: "prompt";
|
|
386
|
+
sessionId: string;
|
|
387
|
+
message: string;
|
|
388
|
+
images?: {
|
|
389
|
+
data: string;
|
|
390
|
+
mime: string;
|
|
391
|
+
}[];
|
|
392
|
+
} | {
|
|
393
|
+
type: "steer";
|
|
394
|
+
sessionId: string;
|
|
395
|
+
message: string;
|
|
396
|
+
} | {
|
|
397
|
+
type: "steer_window";
|
|
398
|
+
endpointId: string;
|
|
399
|
+
cwd: string;
|
|
400
|
+
message: string;
|
|
401
|
+
} | {
|
|
402
|
+
type: "follow_up";
|
|
403
|
+
sessionId: string;
|
|
404
|
+
message: string;
|
|
405
|
+
} | {
|
|
406
|
+
type: "abort";
|
|
407
|
+
sessionId: string;
|
|
408
|
+
} | {
|
|
409
|
+
type: "extension_ui_response";
|
|
410
|
+
sessionId: string;
|
|
411
|
+
requestId: string;
|
|
412
|
+
response: ExtensionUiResponse;
|
|
413
|
+
} | {
|
|
414
|
+
type: "get_snapshot";
|
|
415
|
+
sessionId: string;
|
|
416
|
+
} | {
|
|
417
|
+
type: "get_session_usage";
|
|
418
|
+
sessionId: string;
|
|
419
|
+
} | {
|
|
420
|
+
type: "get_maestro_state";
|
|
421
|
+
} | {
|
|
422
|
+
type: "get_monitor_state";
|
|
423
|
+
};
|
|
424
|
+
/** steer_window 结果(tookOver=true 表示窗口原先未打开,Host 已接管为受控会话) */
|
|
425
|
+
export interface SteerWindowResult {
|
|
426
|
+
ok: boolean;
|
|
427
|
+
sessionId: string;
|
|
428
|
+
tookOver: boolean;
|
|
429
|
+
error?: string;
|
|
430
|
+
}
|
|
431
|
+
/** 会话 token 用量(JSONL 聚合;entries=0 表示无 usage 数据) */
|
|
432
|
+
export interface SessionUsageSummary {
|
|
433
|
+
sessionId: string;
|
|
434
|
+
entries: number;
|
|
435
|
+
input: number;
|
|
436
|
+
output: number;
|
|
437
|
+
cacheRead: number;
|
|
438
|
+
cacheWrite: number;
|
|
439
|
+
reasoning: number;
|
|
440
|
+
/** input+output+cacheRead+cacheWrite+reasoning 之和(参考值,非独立增量) */
|
|
441
|
+
totalTokens: number;
|
|
442
|
+
/** 累计成本(美元;免费模型为 0) */
|
|
443
|
+
cost: number;
|
|
444
|
+
/** SDK 实时上下文用量(未流式响应或刚 compact 后可能为 null) */
|
|
445
|
+
context: {
|
|
446
|
+
tokens: number | null;
|
|
447
|
+
contextWindow: number;
|
|
448
|
+
percent: number | null;
|
|
449
|
+
} | null;
|
|
450
|
+
}
|
|
451
|
+
export interface HostStatus {
|
|
452
|
+
ok: boolean;
|
|
453
|
+
version: string;
|
|
454
|
+
maestroDetected: boolean;
|
|
455
|
+
maestroVersion?: string;
|
|
456
|
+
/** Pi coding agent 版本(探测失败时不返回,UI 显示「待接入」) */
|
|
457
|
+
piVersion?: string;
|
|
458
|
+
/** pi-maestro-flow 扩展版本 */
|
|
459
|
+
flowVersion?: string;
|
|
460
|
+
/** Maestro CLI 版本 */
|
|
461
|
+
maestroCliVersion?: string;
|
|
462
|
+
sessions: number;
|
|
463
|
+
uptimeMs: number;
|
|
464
|
+
}
|
|
465
|
+
export declare class ProtocolError extends Error {
|
|
466
|
+
readonly code: string;
|
|
467
|
+
constructor(message: string, code: string);
|
|
468
|
+
}
|
|
469
|
+
export declare function isHostEvent(value: unknown): value is HostEvent;
|
|
470
|
+
export declare function isClientCommand(value: unknown): value is ClientCommand;
|
|
471
|
+
//# sourceMappingURL=protocol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/vendor/shared/protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Maestro Mobile 共享协议类型
|
|
3
|
+
*
|
|
4
|
+
* 数据契约核心:
|
|
5
|
+
* - HostEvent — host 推送给客户端的统一事件流
|
|
6
|
+
* - ClientCommand — 客户端发给 host 的命令
|
|
7
|
+
* - MaestroState — teammate/flow-schedule 调度状态投影
|
|
8
|
+
* - MonitorWindow — monitor 窗口状态
|
|
9
|
+
* - ExtensionUiRequest/Response — ask 弹窗协议(解决 maestro ask 在 remote 环境失效问题)
|
|
10
|
+
*/
|
|
11
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
12
|
+
// 错误类型
|
|
13
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
14
|
+
export class ProtocolError extends Error {
|
|
15
|
+
code;
|
|
16
|
+
constructor(message, code) {
|
|
17
|
+
super(message);
|
|
18
|
+
this.code = code;
|
|
19
|
+
this.name = "ProtocolError";
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
export function isHostEvent(value) {
|
|
23
|
+
if (typeof value !== "object" || value === null)
|
|
24
|
+
return false;
|
|
25
|
+
const v = value;
|
|
26
|
+
return typeof v.type === "string" && typeof v.seq === "number";
|
|
27
|
+
}
|
|
28
|
+
export function isClientCommand(value) {
|
|
29
|
+
if (typeof value !== "object" || value === null)
|
|
30
|
+
return false;
|
|
31
|
+
const v = value;
|
|
32
|
+
return typeof v.type === "string";
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=protocol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/vendor/shared/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA0YH,gFAAgF;AAChF,OAAO;AACP,gFAAgF;AAEhF,MAAM,OAAO,aAAc,SAAQ,KAAK;IAG3B;IAFX,YACE,OAAe,EACN,IAAY;QAErB,KAAK,CAAC,OAAO,CAAC,CAAC;QAFN,SAAI,GAAJ,IAAI,CAAQ;QAGrB,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,CAAC,GAAG,KAAgC,CAAC;IAC3C,OAAO,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,CAAC,GAAG,KAAgC,CAAC;IAC3C,OAAO,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;AACpC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { TimelineItem, HostEvent } from "./protocol.js";
|
|
2
|
+
export interface TimelineProjectionState {
|
|
3
|
+
lastSeq: number;
|
|
4
|
+
}
|
|
5
|
+
export declare function createTimelineProjectionState(): TimelineProjectionState;
|
|
6
|
+
/**
|
|
7
|
+
* 将 Pi SDK 原始事件投影为 TimelineItem
|
|
8
|
+
* 这是一个纯函数,不依赖 SDK 类型,只处理投影过的结构化事件
|
|
9
|
+
*/
|
|
10
|
+
export declare function projectEventToTimeline(state: TimelineProjectionState, event: HostEvent): TimelineItem[];
|
|
11
|
+
/**
|
|
12
|
+
* 从 SessionState 的 messageCount 反推是否需要补充 user 消息
|
|
13
|
+
*/
|
|
14
|
+
export declare function isUserMessage(message: string, items: TimelineItem[]): boolean;
|
|
15
|
+
//# sourceMappingURL=timeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeline.d.ts","sourceRoot":"","sources":["../../../src/vendor/shared/timeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE7D,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,6BAA6B,IAAI,uBAAuB,CAEvE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,uBAAuB,EAC9B,KAAK,EAAE,SAAS,GACf,YAAY,EAAE,CAKhB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,OAAO,CAG7E"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export function createTimelineProjectionState() {
|
|
2
|
+
return { lastSeq: 0 };
|
|
3
|
+
}
|
|
4
|
+
/**
|
|
5
|
+
* 将 Pi SDK 原始事件投影为 TimelineItem
|
|
6
|
+
* 这是一个纯函数,不依赖 SDK 类型,只处理投影过的结构化事件
|
|
7
|
+
*/
|
|
8
|
+
export function projectEventToTimeline(state, event) {
|
|
9
|
+
if (event.type === "timeline_item") {
|
|
10
|
+
return [event.item];
|
|
11
|
+
}
|
|
12
|
+
return [];
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* 从 SessionState 的 messageCount 反推是否需要补充 user 消息
|
|
16
|
+
*/
|
|
17
|
+
export function isUserMessage(message, items) {
|
|
18
|
+
return message.trim().length > 0
|
|
19
|
+
&& items.every((item) => item.text !== message);
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=timeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeline.js","sourceRoot":"","sources":["../../../src/vendor/shared/timeline.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,6BAA6B;IAC3C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AACxB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAA8B,EAC9B,KAAgB;IAEhB,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QACnC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,KAAqB;IAClE,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;WAC3B,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;AACpD,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type HostEvent, type ClientCommand } from "./protocol.js";
|
|
2
|
+
export declare function validateHostEvent(value: unknown): HostEvent;
|
|
3
|
+
export declare function validateClientCommand(value: unknown): ClientCommand;
|
|
4
|
+
/**
|
|
5
|
+
* 验证 JSON 可序列化
|
|
6
|
+
*/
|
|
7
|
+
export declare function validateJsonSerializable(value: unknown): void;
|
|
8
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/vendor/shared/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAEjG,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAK3D;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,CAKnE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAM7D"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { isHostEvent, isClientCommand } from "./protocol.js";
|
|
2
|
+
export function validateHostEvent(value) {
|
|
3
|
+
if (!isHostEvent(value)) {
|
|
4
|
+
throw new Error("Invalid HostEvent: missing type or seq");
|
|
5
|
+
}
|
|
6
|
+
return value;
|
|
7
|
+
}
|
|
8
|
+
export function validateClientCommand(value) {
|
|
9
|
+
if (!isClientCommand(value)) {
|
|
10
|
+
throw new Error("Invalid ClientCommand: missing type");
|
|
11
|
+
}
|
|
12
|
+
return value;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* 验证 JSON 可序列化
|
|
16
|
+
*/
|
|
17
|
+
export function validateJsonSerializable(value) {
|
|
18
|
+
try {
|
|
19
|
+
JSON.stringify(value);
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
throw new Error("Value is not JSON-serializable");
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/vendor/shared/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAsC,MAAM,eAAe,CAAC;AAEjG,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAc;IACrD,IAAI,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export interface ComponentVersions {
|
|
2
|
+
/** Pi coding agent 版本(桌面 TUI 同款) */
|
|
3
|
+
piVersion?: string;
|
|
4
|
+
/** pi-maestro-flow 扩展版本 */
|
|
5
|
+
flowVersion?: string;
|
|
6
|
+
/** Maestro CLI(maestro-flow 全局包)版本 */
|
|
7
|
+
maestroCliVersion?: string;
|
|
8
|
+
}
|
|
9
|
+
/** execFile 兜底:bin 不存在/超时均返回 undefined(3s 超时,版本命令无 stdin 输入)
|
|
10
|
+
* Windows:npm 全局 bin 是 pi.cmd / maestro.cmd,无 shell 的 execFile("pi") 找不到 .cmd —— 先探测 .cmd 再回退裸名 */
|
|
11
|
+
declare function binVersion(bin: string): Promise<string | undefined>;
|
|
12
|
+
export declare class VersionDetector {
|
|
13
|
+
private cache;
|
|
14
|
+
private detecting;
|
|
15
|
+
/** 探测(结果缓存;并发调用共享同一次探测) */
|
|
16
|
+
detect(): Promise<ComponentVersions>;
|
|
17
|
+
/** 测试注入用:清空缓存 */
|
|
18
|
+
reset(): void;
|
|
19
|
+
private detectOnce;
|
|
20
|
+
/** Pi:自身依赖(host 直接依赖 SDK,最可靠)→ 宿主 ~/.pi 目录 → pi bin */
|
|
21
|
+
private detectPi;
|
|
22
|
+
/** pi-maestro-flow:宿主 ~/.pi 目录(扩展安装位置)→ 自身依赖 */
|
|
23
|
+
private detectFlow;
|
|
24
|
+
/** Maestro CLI:npm -g maestro-flow → bin 兜底 */
|
|
25
|
+
private detectMaestroCli;
|
|
26
|
+
/** 本进程 node_modules 依赖版本(createRequire 链式向上解析) */
|
|
27
|
+
private selfDependencyVersion;
|
|
28
|
+
/** npm 全局目录探测(macOS homebrew / Linux nvm 路径差异大,仅试常见前缀) */
|
|
29
|
+
private globalModuleVersion;
|
|
30
|
+
}
|
|
31
|
+
/** 便捷函数:探测全部组件版本(内部自带缓存语义) */
|
|
32
|
+
export declare function detectComponentVersions(detector: VersionDetector): Promise<ComponentVersions>;
|
|
33
|
+
/** 测试导出:Windows .cmd 探测路径 */
|
|
34
|
+
export declare const binVersionForTest: typeof binVersion;
|
|
35
|
+
export {};
|
|
36
|
+
//# sourceMappingURL=version-detector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-detector.d.ts","sourceRoot":"","sources":["../src/version-detector.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,iBAAiB;IAChC,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sCAAsC;IACtC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAyBD;mGACmG;AACnG,iBAAS,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAK5D;AAaD,qBAAa,eAAe;IAC1B,OAAO,CAAC,KAAK,CAAkC;IAC/C,OAAO,CAAC,SAAS,CAA2C;IAE5D,2BAA2B;IACrB,MAAM,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAY1C,iBAAiB;IACjB,KAAK,IAAI,IAAI;YAKC,UAAU;IAaxB,uDAAuD;YACzC,QAAQ;IAQtB,gDAAgD;YAClC,UAAU;IAOxB,+CAA+C;YACjC,gBAAgB;IAO9B,kDAAkD;IAClD,OAAO,CAAC,qBAAqB;IAY7B,0DAA0D;YAC5C,mBAAmB;CAYlC;AAED,8BAA8B;AAC9B,wBAAsB,uBAAuB,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAEnG;AAED,6BAA6B;AAC7B,eAAO,MAAM,iBAAiB,mBAAa,CAAC"}
|