@jmfederico/pi-web 1.202606.0 → 1.202606.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 +23 -7
- package/dist/client/assets/{CodeViewer-N88Bx8F6.js → CodeViewer-iYSv2-dg.js} +1 -1
- package/dist/client/assets/{TerminalPanel-DKiL51Xi.js → TerminalPanel-BpFW6j27.js} +4 -4
- package/dist/client/assets/index-D4dbiKXF.js +2210 -0
- package/dist/client/index.html +1 -1
- package/dist/config.js +63 -1
- package/dist/config.js.map +1 -1
- package/dist/pi-web-plugins/info/pi-web-plugin.js +8 -1
- package/dist/pi-web-plugins/updates/package.json +9 -0
- package/dist/pi-web-plugins/{pi-web → updates}/pi-web-plugin.js +38 -30
- package/dist/pi-web-plugins/workspace-tasks/config.js +91 -0
- package/dist/pi-web-plugins/workspace-tasks/package.json +9 -0
- package/dist/pi-web-plugins/workspace-tasks/pi-web-plugin.js +48 -0
- package/dist/pi-web-plugins/workspace-tasks/taskRunner.js +12 -0
- package/dist/pi-web-plugins/workspace-tasks/tasksPanelElement.js +292 -0
- package/dist/pi-web-plugins/workspace-tasks/workspaceTasksClient.js +47 -0
- package/dist/plugin-api/unstable.d.ts +22 -0
- package/dist/plugin-api.d.ts +169 -0
- package/dist/server/app.js +63 -26
- package/dist/server/app.js.map +1 -1
- package/dist/server/configRoutes.js +123 -0
- package/dist/server/configRoutes.js.map +1 -0
- package/dist/server/git/gitEnv.js +15 -0
- package/dist/server/git/gitEnv.js.map +1 -0
- package/dist/server/git/gitService.js +2 -1
- package/dist/server/git/gitService.js.map +1 -1
- package/dist/server/gitRoutes.js +3 -3
- package/dist/server/gitRoutes.js.map +1 -1
- package/dist/server/machines/machineClient.js +134 -0
- package/dist/server/machines/machineClient.js.map +1 -0
- package/dist/server/machines/machinePluginProxyRoutes.js +187 -0
- package/dist/server/machines/machinePluginProxyRoutes.js.map +1 -0
- package/dist/server/machines/machineProxyRoutes.js +92 -0
- package/dist/server/machines/machineProxyRoutes.js.map +1 -0
- package/dist/server/machines/machineRoutes.js +56 -0
- package/dist/server/machines/machineRoutes.js.map +1 -0
- package/dist/server/machines/machineService.js +260 -0
- package/dist/server/machines/machineService.js.map +1 -0
- package/dist/server/machines/machineStore.js +128 -0
- package/dist/server/machines/machineStore.js.map +1 -0
- package/dist/server/piWebPluginService.js +45 -15
- package/dist/server/piWebPluginService.js.map +1 -1
- package/dist/server/piWebStatus.js +127 -36
- package/dist/server/piWebStatus.js.map +1 -1
- package/dist/server/piWebStatusCache.js +32 -0
- package/dist/server/piWebStatusCache.js.map +1 -0
- package/dist/server/sessiond/sessionProxyRoutes.js +17 -14
- package/dist/server/sessiond/sessionProxyRoutes.js.map +1 -1
- package/dist/server/sessiond.js +18 -7
- package/dist/server/sessiond.js.map +1 -1
- package/dist/server/sessions/piSessionManagerGateway.js +87 -0
- package/dist/server/sessions/piSessionManagerGateway.js.map +1 -0
- package/dist/server/sessions/piSessionService.js +147 -66
- package/dist/server/sessions/piSessionService.js.map +1 -1
- package/dist/server/sessions/sessionArchiveStore.js +12 -0
- package/dist/server/sessions/sessionArchiveStore.js.map +1 -1
- package/dist/server/sessions/sessionNameGenerator.js +2 -0
- package/dist/server/sessions/sessionNameGenerator.js.map +1 -1
- package/dist/server/sessions/sessionRoutes.js +126 -43
- package/dist/server/sessions/sessionRoutes.js.map +1 -1
- package/dist/server/terminalProxyRoutes.js +20 -10
- package/dist/server/terminalProxyRoutes.js.map +1 -1
- package/dist/server/terminals/terminalRoutes.js +11 -0
- package/dist/server/terminals/terminalRoutes.js.map +1 -1
- package/dist/server/terminals/terminalService.js +6 -0
- package/dist/server/terminals/terminalService.js.map +1 -1
- package/dist/server/workspaceExplorerRoutes.js +4 -4
- package/dist/server/workspaceExplorerRoutes.js.map +1 -1
- package/dist/server/workspaces/fileSuggestions.js +98 -17
- package/dist/server/workspaces/fileSuggestions.js.map +1 -1
- package/dist/server/workspaces/gitWorktreeDiscovery.js +3 -2
- package/dist/server/workspaces/gitWorktreeDiscovery.js.map +1 -1
- package/dist/server/workspaces/workspaceDeletionRoutes.js +113 -0
- package/dist/server/workspaces/workspaceDeletionRoutes.js.map +1 -0
- package/dist/shared/apiTypes.d.ts +498 -0
- package/dist/shared/apiTypes.js +3 -1
- package/dist/shared/apiTypes.js.map +1 -1
- package/dist/shared/capabilities.js +25 -0
- package/dist/shared/capabilities.js.map +1 -0
- package/dist/shared/federatedRoutes.js +61 -0
- package/dist/shared/federatedRoutes.js.map +1 -0
- package/dist/shared/machinePluginIds.js +41 -0
- package/dist/shared/machinePluginIds.js.map +1 -0
- package/dist/shared/piWebStatusParsing.js +43 -0
- package/dist/shared/piWebStatusParsing.js.map +1 -1
- package/dist/shared/pluginIds.js +5 -0
- package/dist/shared/pluginIds.js.map +1 -0
- package/dist/shared/workspaceDeletion.js +12 -0
- package/dist/shared/workspaceDeletion.js.map +1 -0
- package/docs/plugins.md +278 -71
- package/package.json +8 -12
- package/plugin-api/unstable.d.ts +1 -0
- package/plugin-api.d.ts +1 -148
- package/dist/client/assets/index-DeSR1RUE.js +0 -1446
- package/dist/pi-web-plugins/pi-web/package.json +0 -9
|
@@ -0,0 +1,498 @@
|
|
|
1
|
+
export type MachineKind = "local" | "remote";
|
|
2
|
+
export type MachineStatus = "unknown" | "online" | "offline" | "error";
|
|
3
|
+
export declare const PI_WEB_CAPABILITIES: {
|
|
4
|
+
readonly sessionsDeleteArchived: "sessions.deleteArchived";
|
|
5
|
+
};
|
|
6
|
+
export type PiWebCapability = typeof PI_WEB_CAPABILITIES[keyof typeof PI_WEB_CAPABILITIES];
|
|
7
|
+
export interface Machine {
|
|
8
|
+
id: string;
|
|
9
|
+
name: string;
|
|
10
|
+
kind: MachineKind;
|
|
11
|
+
baseUrl?: string;
|
|
12
|
+
createdAt: string;
|
|
13
|
+
updatedAt: string;
|
|
14
|
+
status?: MachineStatus;
|
|
15
|
+
statusMessage?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface MachineHealth {
|
|
18
|
+
machineId: string;
|
|
19
|
+
ok: boolean;
|
|
20
|
+
checkedAt: string;
|
|
21
|
+
status?: MachineStatus;
|
|
22
|
+
web?: PiWebComponentStatus;
|
|
23
|
+
sessiond?: PiWebComponentStatus;
|
|
24
|
+
error?: string;
|
|
25
|
+
}
|
|
26
|
+
export interface MachineRuntime {
|
|
27
|
+
machineId: string;
|
|
28
|
+
ok: boolean;
|
|
29
|
+
checkedAt: string;
|
|
30
|
+
packageName?: string;
|
|
31
|
+
generatedAt?: string;
|
|
32
|
+
components?: PiWebRuntimeResponse["components"];
|
|
33
|
+
capabilities?: PiWebCapability[];
|
|
34
|
+
error?: string;
|
|
35
|
+
}
|
|
36
|
+
export type PiWebShortcutConfig = Record<string, string | null>;
|
|
37
|
+
export type PiWebPluginSettings = Record<string, unknown>;
|
|
38
|
+
export type PiWebPluginConfigMap = Record<string, PiWebPluginConfig>;
|
|
39
|
+
export interface PiWebPluginConfig {
|
|
40
|
+
enabled?: boolean;
|
|
41
|
+
settings?: PiWebPluginSettings;
|
|
42
|
+
[key: string]: unknown;
|
|
43
|
+
}
|
|
44
|
+
export interface PiWebConfigValues {
|
|
45
|
+
host?: string;
|
|
46
|
+
port?: number;
|
|
47
|
+
allowedHosts?: string[] | true;
|
|
48
|
+
shortcuts?: PiWebShortcutConfig;
|
|
49
|
+
plugins?: PiWebPluginConfigMap;
|
|
50
|
+
}
|
|
51
|
+
export type PiWebPluginScope = "bundled" | "local" | "user" | "project";
|
|
52
|
+
export interface PiWebPluginInfo {
|
|
53
|
+
id: string;
|
|
54
|
+
module: string;
|
|
55
|
+
source: string;
|
|
56
|
+
scope: PiWebPluginScope;
|
|
57
|
+
machineSpecific: boolean;
|
|
58
|
+
enabled: boolean;
|
|
59
|
+
}
|
|
60
|
+
export interface PiWebPluginsResponse {
|
|
61
|
+
plugins: PiWebPluginInfo[];
|
|
62
|
+
}
|
|
63
|
+
export interface PiWebConfigEnvOverrides {
|
|
64
|
+
host: boolean;
|
|
65
|
+
port: boolean;
|
|
66
|
+
allowedHosts: boolean;
|
|
67
|
+
}
|
|
68
|
+
export interface PiWebConfigResponse {
|
|
69
|
+
path: string;
|
|
70
|
+
exists: boolean;
|
|
71
|
+
config: PiWebConfigValues;
|
|
72
|
+
effectiveConfig: PiWebConfigValues;
|
|
73
|
+
envOverrides: PiWebConfigEnvOverrides;
|
|
74
|
+
}
|
|
75
|
+
export interface Project {
|
|
76
|
+
id: string;
|
|
77
|
+
name: string;
|
|
78
|
+
path: string;
|
|
79
|
+
createdAt: string;
|
|
80
|
+
}
|
|
81
|
+
export interface Workspace {
|
|
82
|
+
id: string;
|
|
83
|
+
projectId: string;
|
|
84
|
+
path: string;
|
|
85
|
+
label: string;
|
|
86
|
+
branch?: string;
|
|
87
|
+
isMain: boolean;
|
|
88
|
+
isGitRepo: boolean;
|
|
89
|
+
isGitWorktree: boolean;
|
|
90
|
+
}
|
|
91
|
+
export interface SessionRef {
|
|
92
|
+
id: string;
|
|
93
|
+
cwd: string;
|
|
94
|
+
}
|
|
95
|
+
export interface SessionInfo extends SessionRef {
|
|
96
|
+
path: string;
|
|
97
|
+
name?: string;
|
|
98
|
+
created: string;
|
|
99
|
+
modified: string;
|
|
100
|
+
messageCount: number;
|
|
101
|
+
firstMessage: string;
|
|
102
|
+
parentSessionPath?: string;
|
|
103
|
+
archived?: boolean;
|
|
104
|
+
archivedAt?: string;
|
|
105
|
+
}
|
|
106
|
+
export interface ArchiveSessionsResponse {
|
|
107
|
+
archived: true;
|
|
108
|
+
sessionIds?: string[];
|
|
109
|
+
archivedCount?: number;
|
|
110
|
+
skippedAlreadyArchivedCount?: number;
|
|
111
|
+
}
|
|
112
|
+
export interface SessionActivity {
|
|
113
|
+
sessionId: string;
|
|
114
|
+
phase: "active" | "idle" | "error";
|
|
115
|
+
label: string;
|
|
116
|
+
detail?: string;
|
|
117
|
+
at: string;
|
|
118
|
+
}
|
|
119
|
+
export interface QueuedSessionMessage {
|
|
120
|
+
kind: "steer" | "followUp";
|
|
121
|
+
text: string;
|
|
122
|
+
}
|
|
123
|
+
export interface SessionModel {
|
|
124
|
+
provider?: string;
|
|
125
|
+
id?: string;
|
|
126
|
+
name?: string;
|
|
127
|
+
contextWindow?: number;
|
|
128
|
+
reasoning?: unknown;
|
|
129
|
+
}
|
|
130
|
+
export type ThinkingLevel = "off" | "minimal" | "low" | "medium" | "high" | "xhigh";
|
|
131
|
+
export type AuthType = "oauth" | "api_key";
|
|
132
|
+
export type AuthStatusSource = "stored" | "runtime" | "environment" | "fallback" | "models_json_key" | "models_json_command";
|
|
133
|
+
export interface AuthProviderStatus {
|
|
134
|
+
configured: boolean;
|
|
135
|
+
source?: AuthStatusSource;
|
|
136
|
+
label?: string;
|
|
137
|
+
}
|
|
138
|
+
export interface AuthProviderOption {
|
|
139
|
+
id: string;
|
|
140
|
+
name: string;
|
|
141
|
+
authType: AuthType;
|
|
142
|
+
status: AuthProviderStatus;
|
|
143
|
+
}
|
|
144
|
+
export interface AuthProvidersResponse {
|
|
145
|
+
providers: AuthProviderOption[];
|
|
146
|
+
}
|
|
147
|
+
export interface OAuthFlowState {
|
|
148
|
+
flowId: string;
|
|
149
|
+
providerId: string;
|
|
150
|
+
providerName: string;
|
|
151
|
+
status: "running" | "complete" | "error" | "cancelled";
|
|
152
|
+
auth?: {
|
|
153
|
+
url: string;
|
|
154
|
+
instructions?: string;
|
|
155
|
+
};
|
|
156
|
+
prompt?: {
|
|
157
|
+
requestId: string;
|
|
158
|
+
message: string;
|
|
159
|
+
placeholder?: string;
|
|
160
|
+
allowEmpty?: boolean;
|
|
161
|
+
kind: "prompt" | "manual";
|
|
162
|
+
};
|
|
163
|
+
select?: {
|
|
164
|
+
requestId: string;
|
|
165
|
+
message: string;
|
|
166
|
+
options: CommandOption[];
|
|
167
|
+
};
|
|
168
|
+
progress: string[];
|
|
169
|
+
error?: string;
|
|
170
|
+
}
|
|
171
|
+
export interface ModelSelectionResponse {
|
|
172
|
+
models: SessionModel[];
|
|
173
|
+
}
|
|
174
|
+
export interface ThinkingLevelsResponse {
|
|
175
|
+
levels: ThinkingLevel[];
|
|
176
|
+
}
|
|
177
|
+
export interface SessionStatus {
|
|
178
|
+
sessionId: string;
|
|
179
|
+
model?: SessionModel;
|
|
180
|
+
thinkingLevel?: string;
|
|
181
|
+
isStreaming: boolean;
|
|
182
|
+
isCompacting: boolean;
|
|
183
|
+
isBashRunning: boolean;
|
|
184
|
+
pendingMessageCount: number;
|
|
185
|
+
queuedMessages: QueuedSessionMessage[];
|
|
186
|
+
messageCount?: number;
|
|
187
|
+
tokens: {
|
|
188
|
+
input: number;
|
|
189
|
+
output: number;
|
|
190
|
+
cacheRead: number;
|
|
191
|
+
cacheWrite: number;
|
|
192
|
+
total: number;
|
|
193
|
+
};
|
|
194
|
+
cost: number;
|
|
195
|
+
contextUsage?: {
|
|
196
|
+
tokens: number | null;
|
|
197
|
+
contextWindow: number;
|
|
198
|
+
percent: number | null;
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
export interface WorkspaceActivity {
|
|
202
|
+
cwd: string;
|
|
203
|
+
hasSessionActivity: boolean;
|
|
204
|
+
hasTerminalActivity: boolean;
|
|
205
|
+
updatedAt: string;
|
|
206
|
+
}
|
|
207
|
+
export interface WorkspaceActivityResponse {
|
|
208
|
+
workspaces: WorkspaceActivity[];
|
|
209
|
+
generatedAt: string;
|
|
210
|
+
}
|
|
211
|
+
export interface SlashCommand {
|
|
212
|
+
name: string;
|
|
213
|
+
description?: string;
|
|
214
|
+
source: "extension" | "prompt" | "skill" | "builtin";
|
|
215
|
+
}
|
|
216
|
+
export interface FileSuggestion {
|
|
217
|
+
path: string;
|
|
218
|
+
kind: "tracked" | "untracked" | "other";
|
|
219
|
+
}
|
|
220
|
+
export interface FileTreeEntry {
|
|
221
|
+
name: string;
|
|
222
|
+
path: string;
|
|
223
|
+
type: "file" | "directory" | "symlink";
|
|
224
|
+
size?: number;
|
|
225
|
+
modifiedAt?: string;
|
|
226
|
+
}
|
|
227
|
+
export interface FileTreeResponse {
|
|
228
|
+
path: string;
|
|
229
|
+
entries: FileTreeEntry[];
|
|
230
|
+
scannedAt: string;
|
|
231
|
+
truncated: boolean;
|
|
232
|
+
}
|
|
233
|
+
export type FileContentMediaType = "image";
|
|
234
|
+
export interface FileContentResponse {
|
|
235
|
+
path: string;
|
|
236
|
+
language?: string;
|
|
237
|
+
mediaType?: FileContentMediaType;
|
|
238
|
+
mimeType?: string;
|
|
239
|
+
encoding: "utf8";
|
|
240
|
+
size: number;
|
|
241
|
+
modifiedAt: string;
|
|
242
|
+
content: string;
|
|
243
|
+
truncated: boolean;
|
|
244
|
+
binary: boolean;
|
|
245
|
+
}
|
|
246
|
+
export type GitFileState = "unmodified" | "modified" | "added" | "deleted" | "renamed" | "copied" | "untracked" | "ignored" | "conflicted";
|
|
247
|
+
export interface GitStatusFile {
|
|
248
|
+
path: string;
|
|
249
|
+
oldPath?: string;
|
|
250
|
+
index: GitFileState;
|
|
251
|
+
workingTree: GitFileState;
|
|
252
|
+
}
|
|
253
|
+
export interface GitStatusResponse {
|
|
254
|
+
isGitRepo: boolean;
|
|
255
|
+
hash: string;
|
|
256
|
+
branch?: string;
|
|
257
|
+
upstream?: string;
|
|
258
|
+
ahead?: number;
|
|
259
|
+
behind?: number;
|
|
260
|
+
files: GitStatusFile[];
|
|
261
|
+
}
|
|
262
|
+
export interface GitDiffResponse {
|
|
263
|
+
path?: string;
|
|
264
|
+
staged: boolean;
|
|
265
|
+
hash: string;
|
|
266
|
+
diff: string;
|
|
267
|
+
truncated: boolean;
|
|
268
|
+
}
|
|
269
|
+
export interface TerminalInfo {
|
|
270
|
+
id: string;
|
|
271
|
+
cwd: string;
|
|
272
|
+
name: string;
|
|
273
|
+
createdAt: string;
|
|
274
|
+
exited: boolean;
|
|
275
|
+
exitCode?: number;
|
|
276
|
+
commandRunId?: string;
|
|
277
|
+
}
|
|
278
|
+
export type TerminalCommandRunStatus = "queued" | "running" | "succeeded" | "failed";
|
|
279
|
+
export interface TerminalCommandRun {
|
|
280
|
+
id: string;
|
|
281
|
+
origin: string;
|
|
282
|
+
projectId: string;
|
|
283
|
+
workspaceId: string;
|
|
284
|
+
terminalId: string;
|
|
285
|
+
title: string;
|
|
286
|
+
command: string;
|
|
287
|
+
status: TerminalCommandRunStatus;
|
|
288
|
+
exitCode?: number;
|
|
289
|
+
createdAt: string;
|
|
290
|
+
startedAt?: string;
|
|
291
|
+
completedAt?: string;
|
|
292
|
+
metadata: Record<string, string>;
|
|
293
|
+
}
|
|
294
|
+
export interface RunTerminalCommandInput {
|
|
295
|
+
workspace: Workspace;
|
|
296
|
+
title: string;
|
|
297
|
+
command: string;
|
|
298
|
+
metadata?: Record<string, string>;
|
|
299
|
+
open?: boolean;
|
|
300
|
+
}
|
|
301
|
+
export interface TerminalCommandRunHandle {
|
|
302
|
+
run: TerminalCommandRun;
|
|
303
|
+
completed: Promise<TerminalCommandRun>;
|
|
304
|
+
}
|
|
305
|
+
export interface TerminalCommandRunFilter {
|
|
306
|
+
projectId?: string;
|
|
307
|
+
workspaceId?: string;
|
|
308
|
+
terminalId?: string;
|
|
309
|
+
statuses?: TerminalCommandRunStatus[];
|
|
310
|
+
metadata?: Record<string, string>;
|
|
311
|
+
}
|
|
312
|
+
export type PiWebServiceComponent = "web" | "sessiond";
|
|
313
|
+
export type PiWebStatusSeverity = "info" | "warning" | "error";
|
|
314
|
+
export type PiWebInstallationKind = "pi-package" | "npm-global" | "local" | "unknown";
|
|
315
|
+
export interface PiWebInstallationInfo {
|
|
316
|
+
kind: PiWebInstallationKind;
|
|
317
|
+
path?: string;
|
|
318
|
+
source?: string;
|
|
319
|
+
scope?: "user" | "project";
|
|
320
|
+
npmRoot?: string;
|
|
321
|
+
}
|
|
322
|
+
export interface PiWebComponentStatus {
|
|
323
|
+
component: PiWebServiceComponent;
|
|
324
|
+
label: string;
|
|
325
|
+
runtimeVersion?: string;
|
|
326
|
+
installedVersion?: string;
|
|
327
|
+
stale: boolean;
|
|
328
|
+
available: boolean;
|
|
329
|
+
installation?: PiWebInstallationInfo;
|
|
330
|
+
error?: string;
|
|
331
|
+
}
|
|
332
|
+
export interface PiWebRuntimeComponent {
|
|
333
|
+
component: PiWebServiceComponent;
|
|
334
|
+
label: string;
|
|
335
|
+
runtimeVersion?: string;
|
|
336
|
+
available: boolean;
|
|
337
|
+
capabilities: PiWebCapability[];
|
|
338
|
+
error?: string;
|
|
339
|
+
}
|
|
340
|
+
export interface PiWebReleaseStatus {
|
|
341
|
+
packageName: string;
|
|
342
|
+
latestVersion?: string;
|
|
343
|
+
updateAvailable: boolean;
|
|
344
|
+
checkedAt?: string;
|
|
345
|
+
skipped?: boolean;
|
|
346
|
+
error?: string;
|
|
347
|
+
}
|
|
348
|
+
export interface PiWebStatusMessage {
|
|
349
|
+
id: string;
|
|
350
|
+
severity: PiWebStatusSeverity;
|
|
351
|
+
title: string;
|
|
352
|
+
body: string;
|
|
353
|
+
command?: string;
|
|
354
|
+
}
|
|
355
|
+
export interface PiWebVersionResponse {
|
|
356
|
+
packageName: string;
|
|
357
|
+
generatedAt: string;
|
|
358
|
+
components: {
|
|
359
|
+
web: PiWebComponentStatus;
|
|
360
|
+
sessiond: PiWebComponentStatus;
|
|
361
|
+
};
|
|
362
|
+
}
|
|
363
|
+
export interface PiWebRuntimeResponse {
|
|
364
|
+
packageName: string;
|
|
365
|
+
generatedAt: string;
|
|
366
|
+
components: {
|
|
367
|
+
web: PiWebRuntimeComponent;
|
|
368
|
+
sessiond: PiWebRuntimeComponent;
|
|
369
|
+
};
|
|
370
|
+
capabilities: PiWebCapability[];
|
|
371
|
+
}
|
|
372
|
+
export interface PiWebStatusResponse extends PiWebVersionResponse {
|
|
373
|
+
release: PiWebReleaseStatus;
|
|
374
|
+
commands: {
|
|
375
|
+
update?: string;
|
|
376
|
+
restart?: string;
|
|
377
|
+
restartWeb?: string;
|
|
378
|
+
restartSessiond?: string;
|
|
379
|
+
status?: string;
|
|
380
|
+
};
|
|
381
|
+
messages: PiWebStatusMessage[];
|
|
382
|
+
}
|
|
383
|
+
export type TerminalUiEvent = {
|
|
384
|
+
type: "terminal.created";
|
|
385
|
+
terminal: TerminalInfo;
|
|
386
|
+
} | {
|
|
387
|
+
type: "terminal.exited";
|
|
388
|
+
terminal: TerminalInfo;
|
|
389
|
+
} | {
|
|
390
|
+
type: "terminal.closed";
|
|
391
|
+
terminalId: string;
|
|
392
|
+
cwd: string;
|
|
393
|
+
};
|
|
394
|
+
export interface WorkspaceActivityUiEvent {
|
|
395
|
+
type: "workspace.activity";
|
|
396
|
+
activity: WorkspaceActivity;
|
|
397
|
+
}
|
|
398
|
+
export interface CommandOption {
|
|
399
|
+
value: string;
|
|
400
|
+
label: string;
|
|
401
|
+
description?: string;
|
|
402
|
+
}
|
|
403
|
+
export interface MessagePage {
|
|
404
|
+
messages: unknown[];
|
|
405
|
+
start: number;
|
|
406
|
+
total: number;
|
|
407
|
+
}
|
|
408
|
+
export type CommandResult = {
|
|
409
|
+
type: "done";
|
|
410
|
+
message?: string;
|
|
411
|
+
session?: SessionInfo;
|
|
412
|
+
promptDraft?: string;
|
|
413
|
+
} | {
|
|
414
|
+
type: "select";
|
|
415
|
+
requestId: string;
|
|
416
|
+
title: string;
|
|
417
|
+
options: CommandOption[];
|
|
418
|
+
} | {
|
|
419
|
+
type: "unsupported";
|
|
420
|
+
message: string;
|
|
421
|
+
};
|
|
422
|
+
export type SessionUiEvent = {
|
|
423
|
+
type: "message.append";
|
|
424
|
+
message: unknown;
|
|
425
|
+
} | {
|
|
426
|
+
type: "assistant.delta";
|
|
427
|
+
text: string;
|
|
428
|
+
} | {
|
|
429
|
+
type: "assistant.thinking.delta";
|
|
430
|
+
text: string;
|
|
431
|
+
} | {
|
|
432
|
+
type: "tool.start";
|
|
433
|
+
toolName: string;
|
|
434
|
+
toolCallId: string;
|
|
435
|
+
summary: string;
|
|
436
|
+
args?: unknown;
|
|
437
|
+
} | {
|
|
438
|
+
type: "tool.update";
|
|
439
|
+
toolName: string;
|
|
440
|
+
toolCallId: string;
|
|
441
|
+
text: string;
|
|
442
|
+
content?: unknown;
|
|
443
|
+
details?: unknown;
|
|
444
|
+
} | {
|
|
445
|
+
type: "tool.end";
|
|
446
|
+
toolName: string;
|
|
447
|
+
toolCallId: string;
|
|
448
|
+
text: string;
|
|
449
|
+
isError: boolean;
|
|
450
|
+
content?: unknown;
|
|
451
|
+
details?: unknown;
|
|
452
|
+
} | {
|
|
453
|
+
type: "shell.start";
|
|
454
|
+
command: string;
|
|
455
|
+
excludeFromContext?: boolean;
|
|
456
|
+
} | {
|
|
457
|
+
type: "shell.chunk";
|
|
458
|
+
chunk: string;
|
|
459
|
+
} | {
|
|
460
|
+
type: "shell.end";
|
|
461
|
+
output?: string;
|
|
462
|
+
exitCode?: number | null;
|
|
463
|
+
cancelled?: boolean;
|
|
464
|
+
truncated?: boolean;
|
|
465
|
+
fullOutputPath?: string;
|
|
466
|
+
isError?: boolean;
|
|
467
|
+
} | {
|
|
468
|
+
type: "agent.start";
|
|
469
|
+
} | {
|
|
470
|
+
type: "agent.end";
|
|
471
|
+
} | {
|
|
472
|
+
type: "message.end";
|
|
473
|
+
message?: unknown;
|
|
474
|
+
} | {
|
|
475
|
+
type: "status.update";
|
|
476
|
+
status: SessionStatus;
|
|
477
|
+
} | {
|
|
478
|
+
type: "activity.update";
|
|
479
|
+
activity: SessionActivity;
|
|
480
|
+
} | {
|
|
481
|
+
type: "command.output";
|
|
482
|
+
level: "info" | "success" | "error";
|
|
483
|
+
message: string;
|
|
484
|
+
} | {
|
|
485
|
+
type: "session.error";
|
|
486
|
+
message: string;
|
|
487
|
+
} | {
|
|
488
|
+
type: "session.name";
|
|
489
|
+
sessionId: string;
|
|
490
|
+
name?: string;
|
|
491
|
+
} | {
|
|
492
|
+
type: "pi.event";
|
|
493
|
+
eventType: string;
|
|
494
|
+
};
|
|
495
|
+
export type GlobalSessionEvent = Extract<SessionUiEvent, {
|
|
496
|
+
type: "status.update" | "activity.update" | "session.name";
|
|
497
|
+
}>;
|
|
498
|
+
export type RealtimeEvent = GlobalSessionEvent | TerminalUiEvent | WorkspaceActivityUiEvent;
|
package/dist/shared/apiTypes.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiTypes.js","sourceRoot":"","sources":["../../src/shared/apiTypes.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"apiTypes.js","sourceRoot":"","sources":["../../src/shared/apiTypes.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,sBAAsB,EAAE,yBAAyB;CACzC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { PI_WEB_CAPABILITIES } from "./apiTypes.js";
|
|
2
|
+
export { PI_WEB_CAPABILITIES };
|
|
3
|
+
export const KNOWN_PI_WEB_CAPABILITIES = Object.values(PI_WEB_CAPABILITIES);
|
|
4
|
+
const knownPiWebCapabilities = new Set(KNOWN_PI_WEB_CAPABILITIES);
|
|
5
|
+
export const WEB_RUNTIME_CAPABILITIES = [PI_WEB_CAPABILITIES.sessionsDeleteArchived];
|
|
6
|
+
export const SESSIOND_RUNTIME_CAPABILITIES = [PI_WEB_CAPABILITIES.sessionsDeleteArchived];
|
|
7
|
+
const EFFECTIVE_CAPABILITY_REQUIREMENTS = {
|
|
8
|
+
[PI_WEB_CAPABILITIES.sessionsDeleteArchived]: ["web", "sessiond"],
|
|
9
|
+
};
|
|
10
|
+
export function isPiWebCapability(value) {
|
|
11
|
+
return typeof value === "string" && knownPiWebCapabilities.has(value);
|
|
12
|
+
}
|
|
13
|
+
export function supportsPiWebCapability(source, capability) {
|
|
14
|
+
return source?.capabilities?.includes(capability) === true;
|
|
15
|
+
}
|
|
16
|
+
export function effectivePiWebCapabilities(components) {
|
|
17
|
+
return KNOWN_PI_WEB_CAPABILITIES.filter((capability) => {
|
|
18
|
+
const requiredComponents = EFFECTIVE_CAPABILITY_REQUIREMENTS[capability];
|
|
19
|
+
return requiredComponents.every((component) => {
|
|
20
|
+
const runtime = components[component];
|
|
21
|
+
return runtime?.available === true && supportsPiWebCapability(runtime, capability);
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=capabilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/shared/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAgF,MAAM,eAAe,CAAC;AAElI,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAG/B,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAC5E,MAAM,sBAAsB,GAAwB,IAAI,GAAG,CAAC,yBAAyB,CAAC,CAAC;AAEvF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,mBAAmB,CAAC,sBAAsB,CAA+C,CAAC;AACnI,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,mBAAmB,CAAC,sBAAsB,CAA+C,CAAC;AAExI,MAAM,iCAAiC,GAAG;IACxC,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC;CACW,CAAC;AAE/E,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAAiE,EAAE,UAA2B;IACpI,OAAO,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,UAA6G;IACtJ,OAAO,yBAAyB,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE;QACrD,MAAM,kBAAkB,GAAG,iCAAiC,CAAC,UAAU,CAAC,CAAC;QACzE,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,EAAE;YAC5C,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;YACtC,OAAO,OAAO,EAAE,SAAS,KAAK,IAAI,IAAI,uBAAuB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACrF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
export const FEDERATED_HTTP_ROUTES = [
|
|
2
|
+
{ method: "GET", path: "/pi-web/status" },
|
|
3
|
+
{ method: "GET", path: "/projects" },
|
|
4
|
+
{ method: "POST", path: "/projects" },
|
|
5
|
+
{ method: "DELETE", path: "/projects/:projectId" },
|
|
6
|
+
{ method: "GET", path: "/project-directories" },
|
|
7
|
+
{ method: "GET", path: "/projects/:projectId/workspaces" },
|
|
8
|
+
{ method: "DELETE", path: "/projects/:projectId/workspaces/:workspaceId" },
|
|
9
|
+
{ method: "GET", path: "/projects/:projectId/workspaces/:workspaceId/tree" },
|
|
10
|
+
{ method: "GET", path: "/projects/:projectId/workspaces/:workspaceId/file" },
|
|
11
|
+
{ method: "GET", path: "/projects/:projectId/workspaces/:workspaceId/file/preview" },
|
|
12
|
+
{ method: "GET", path: "/projects/:projectId/workspaces/:workspaceId/git/status" },
|
|
13
|
+
{ method: "GET", path: "/projects/:projectId/workspaces/:workspaceId/git/diff" },
|
|
14
|
+
{ method: "GET", path: "/projects/:projectId/workspaces/:workspaceId/terminals" },
|
|
15
|
+
{ method: "POST", path: "/projects/:projectId/workspaces/:workspaceId/terminals" },
|
|
16
|
+
{ method: "DELETE", path: "/projects/:projectId/workspaces/:workspaceId/terminals" },
|
|
17
|
+
{ method: "POST", path: "/projects/:projectId/workspaces/:workspaceId/terminals/:terminalId/continue" },
|
|
18
|
+
{ method: "DELETE", path: "/projects/:projectId/workspaces/:workspaceId/terminals/:terminalId" },
|
|
19
|
+
{ method: "POST", path: "/projects/:projectId/workspaces/:workspaceId/terminal-command-runs" },
|
|
20
|
+
{ method: "GET", path: "/terminal-command-runs" },
|
|
21
|
+
{ method: "GET", path: "/terminal-command-runs/:runId" },
|
|
22
|
+
{ method: "POST", path: "/terminal-command-runs/:runId/cancel" },
|
|
23
|
+
{ method: "GET", path: "/files" },
|
|
24
|
+
{ method: "GET", path: "/activity" },
|
|
25
|
+
{ method: "GET", path: "/sessions" },
|
|
26
|
+
{ method: "POST", path: "/sessions" },
|
|
27
|
+
{ method: "GET", path: "/sessions/:sessionId/messages" },
|
|
28
|
+
{ method: "GET", path: "/sessions/:sessionId/status" },
|
|
29
|
+
{ method: "GET", path: "/sessions/:sessionId/models" },
|
|
30
|
+
{ method: "POST", path: "/sessions/:sessionId/model" },
|
|
31
|
+
{ method: "POST", path: "/sessions/:sessionId/model/cycle" },
|
|
32
|
+
{ method: "GET", path: "/sessions/:sessionId/thinking-levels" },
|
|
33
|
+
{ method: "POST", path: "/sessions/:sessionId/thinking-level" },
|
|
34
|
+
{ method: "POST", path: "/sessions/:sessionId/thinking-level/cycle" },
|
|
35
|
+
{ method: "GET", path: "/sessions/:sessionId/commands" },
|
|
36
|
+
{ method: "POST", path: "/sessions/:sessionId/prompt" },
|
|
37
|
+
{ method: "POST", path: "/sessions/:sessionId/shell" },
|
|
38
|
+
{ method: "POST", path: "/sessions/:sessionId/commands/run" },
|
|
39
|
+
{ method: "POST", path: "/sessions/:sessionId/commands/respond" },
|
|
40
|
+
{ method: "POST", path: "/sessions/:sessionId/abort" },
|
|
41
|
+
{ method: "POST", path: "/sessions/:sessionId/stop" },
|
|
42
|
+
{ method: "POST", path: "/sessions/:sessionId/archive" },
|
|
43
|
+
{ method: "POST", path: "/sessions/:sessionId/archive-tree" },
|
|
44
|
+
{ method: "POST", path: "/sessions/:sessionId/restore" },
|
|
45
|
+
{ method: "DELETE", path: "/sessions/:sessionId" },
|
|
46
|
+
{ method: "POST", path: "/sessions/:sessionId/detach-parent" },
|
|
47
|
+
{ method: "GET", path: "/auth/providers" },
|
|
48
|
+
{ method: "POST", path: "/auth/api-key" },
|
|
49
|
+
{ method: "POST", path: "/auth/logout" },
|
|
50
|
+
{ method: "POST", path: "/auth/oauth" },
|
|
51
|
+
{ method: "GET", path: "/auth/oauth/:flowId" },
|
|
52
|
+
{ method: "POST", path: "/auth/oauth/:flowId/respond" },
|
|
53
|
+
{ method: "POST", path: "/auth/oauth/:flowId/cancel" },
|
|
54
|
+
];
|
|
55
|
+
export const FEDERATED_WEBSOCKET_ROUTES = [
|
|
56
|
+
"/events",
|
|
57
|
+
"/sessions/events",
|
|
58
|
+
"/sessions/:sessionId/events",
|
|
59
|
+
"/projects/:projectId/workspaces/:workspaceId/terminals/:terminalId/socket",
|
|
60
|
+
];
|
|
61
|
+
//# sourceMappingURL=federatedRoutes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"federatedRoutes.js","sourceRoot":"","sources":["../../src/shared/federatedRoutes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { isPiWebPluginId } from "./pluginIds.js";
|
|
2
|
+
const MACHINE_PLUGIN_ID_PREFIX = "machine.";
|
|
3
|
+
export function machineScopedPluginId(machineId, pluginId) {
|
|
4
|
+
if (machineId === "")
|
|
5
|
+
throw new Error("Machine id is required");
|
|
6
|
+
if (!isPiWebPluginId(pluginId))
|
|
7
|
+
throw new Error(`Invalid PI WEB plugin id: ${pluginId}`);
|
|
8
|
+
return `${MACHINE_PLUGIN_ID_PREFIX}${stringToHex(machineId)}.${pluginId}`;
|
|
9
|
+
}
|
|
10
|
+
export function parseMachineScopedPluginId(pluginId) {
|
|
11
|
+
if (!pluginId.startsWith(MACHINE_PLUGIN_ID_PREFIX))
|
|
12
|
+
return undefined;
|
|
13
|
+
const rest = pluginId.slice(MACHINE_PLUGIN_ID_PREFIX.length);
|
|
14
|
+
const separator = rest.indexOf(".");
|
|
15
|
+
if (separator < 1)
|
|
16
|
+
return undefined;
|
|
17
|
+
const encodedMachineId = rest.slice(0, separator);
|
|
18
|
+
const sourcePluginId = rest.slice(separator + 1);
|
|
19
|
+
if (!isHexString(encodedMachineId) || !isPiWebPluginId(sourcePluginId))
|
|
20
|
+
return undefined;
|
|
21
|
+
const machineId = hexToString(encodedMachineId);
|
|
22
|
+
if (machineId === "")
|
|
23
|
+
return undefined;
|
|
24
|
+
return { machineId, pluginId: sourcePluginId };
|
|
25
|
+
}
|
|
26
|
+
function stringToHex(value) {
|
|
27
|
+
return [...new TextEncoder().encode(value)]
|
|
28
|
+
.map((byte) => byte.toString(16).padStart(2, "0"))
|
|
29
|
+
.join("");
|
|
30
|
+
}
|
|
31
|
+
function hexToString(value) {
|
|
32
|
+
const bytes = new Uint8Array(value.length / 2);
|
|
33
|
+
for (let index = 0; index < value.length; index += 2) {
|
|
34
|
+
bytes[index / 2] = Number.parseInt(value.slice(index, index + 2), 16);
|
|
35
|
+
}
|
|
36
|
+
return new TextDecoder().decode(bytes);
|
|
37
|
+
}
|
|
38
|
+
function isHexString(value) {
|
|
39
|
+
return value.length > 0 && value.length % 2 === 0 && /^[0-9a-f]+$/u.test(value);
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=machinePluginIds.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"machinePluginIds.js","sourceRoot":"","sources":["../../src/shared/machinePluginIds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,MAAM,wBAAwB,GAAG,UAAU,CAAC;AAO5C,MAAM,UAAU,qBAAqB,CAAC,SAAiB,EAAE,QAAgB;IACvE,IAAI,SAAS,KAAK,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAChE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,EAAE,CAAC,CAAC;IACzF,OAAO,GAAG,wBAAwB,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,QAAQ,EAAE,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,QAAgB;IACzD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,wBAAwB,CAAC;QAAE,OAAO,SAAS,CAAC;IACrE,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,SAAS,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAEpC,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAClD,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IACjD,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC;QAAE,OAAO,SAAS,CAAC;IAEzF,MAAM,SAAS,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAChD,IAAI,SAAS,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IACvC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;AACjD,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,CAAC,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACxC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SACjD,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClF,CAAC"}
|