@chainingintention/pi-web-cn 1.202607.11 → 1.202608.3
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 +9 -9
- package/dist/cli.js +27 -12
- package/dist/cli.js.map +1 -1
- package/dist/client/assets/{CodeViewer-WeDkBH1U.js → CodeViewer-4gPJstDS.js} +1 -1
- package/dist/client/assets/{TerminalPanel-DgiIksV-.js → TerminalPanel-BOafuuU6.js} +5 -5
- package/dist/client/assets/{UnifiedDiffViewer-FKeWfK-h.js → UnifiedDiffViewer-BZewUESj.js} +1 -1
- package/dist/client/assets/index-DHGDF1O1.js +4101 -0
- package/dist/client/index.html +1 -1
- package/dist/config.js +36 -0
- package/dist/config.js.map +1 -1
- package/dist/nativeServices/servicePlan.js +3 -2
- package/dist/nativeServices/servicePlan.js.map +1 -1
- package/dist/nativeServices/serviceProbe.js +7 -5
- package/dist/nativeServices/serviceProbe.js.map +1 -1
- package/dist/pi-web-plugins/info/infoInternals.js +223 -0
- package/dist/pi-web-plugins/info/pi-web-plugin.js +19 -22
- package/dist/pi-web-plugins/relays/markdownDocument.js +81 -0
- package/dist/pi-web-plugins/relays/package.json +9 -0
- package/dist/pi-web-plugins/relays/pi-web-plugin.js +44 -0
- package/dist/pi-web-plugins/relays/relayDiscovery.js +96 -0
- package/dist/pi-web-plugins/relays/relaysPanelElement.js +327 -0
- package/dist/pi-web-plugins/relays/vendor/README.md +24 -0
- package/dist/pi-web-plugins/relays/vendor/marked.esm.js +76 -0
- package/dist/pi-web-plugins/updates/pi-web-plugin.js +100 -100
- package/dist/pi-web-plugins/updates/updatesLogic.js +8 -5
- package/dist/plugin-api.d.ts +5 -1
- package/dist/server/configRoutes.js +11 -0
- package/dist/server/configRoutes.js.map +1 -1
- package/dist/server/diagnostics/nodePtyNativeModule.js +36 -0
- package/dist/server/diagnostics/nodePtyNativeModule.js.map +1 -0
- package/dist/server/git/gitService.js +176 -5
- package/dist/server/git/gitService.js.map +1 -1
- package/dist/server/piWebStatus.js +7 -4
- package/dist/server/piWebStatus.js.map +1 -1
- package/dist/server/realtime/sessionEventHub.js +16 -2
- package/dist/server/realtime/sessionEventHub.js.map +1 -1
- package/dist/server/sessiond/sessionDaemonStartup.js +0 -42
- package/dist/server/sessiond/sessionDaemonStartup.js.map +1 -1
- package/dist/server/sessiond/sessionServiceDependencies.js +31 -0
- package/dist/server/sessiond/sessionServiceDependencies.js.map +1 -0
- package/dist/server/sessions/askUserTool.js +105 -0
- package/dist/server/sessions/askUserTool.js.map +1 -0
- package/dist/server/sessions/authProviderOptions.js +26 -29
- package/dist/server/sessions/authProviderOptions.js.map +1 -1
- package/dist/server/sessions/authRoutes.js +9 -1
- package/dist/server/sessions/authRoutes.js.map +1 -1
- package/dist/server/sessions/authService.js +143 -33
- package/dist/server/sessions/authService.js.map +1 -1
- package/dist/server/sessions/globalProviderPolicy.js +167 -0
- package/dist/server/sessions/globalProviderPolicy.js.map +1 -0
- package/dist/server/sessions/modelCatalogRefresher.js +192 -0
- package/dist/server/sessions/modelCatalogRefresher.js.map +1 -0
- package/dist/server/sessions/oauthLoginFlowService.js +181 -56
- package/dist/server/sessions/oauthLoginFlowService.js.map +1 -1
- package/dist/server/sessions/parentSessionLocator.js +75 -0
- package/dist/server/sessions/parentSessionLocator.js.map +1 -0
- package/dist/server/sessions/pendingAskStore.js +278 -0
- package/dist/server/sessions/pendingAskStore.js.map +1 -0
- package/dist/server/sessions/piSessionService.js +1264 -199
- package/dist/server/sessions/piSessionService.js.map +1 -1
- package/dist/server/sessions/plainTextTheme.js +112 -0
- package/dist/server/sessions/plainTextTheme.js.map +1 -0
- package/dist/server/sessions/projectAuthService.js +3 -3
- package/dist/server/sessions/projectAuthService.js.map +1 -1
- package/dist/server/sessions/sessionCommandService.js +60 -5
- package/dist/server/sessions/sessionCommandService.js.map +1 -1
- package/dist/server/sessions/sessionFileHeader.js +45 -0
- package/dist/server/sessions/sessionFileHeader.js.map +1 -0
- package/dist/server/sessions/sessionNotificationStore.js +484 -0
- package/dist/server/sessions/sessionNotificationStore.js.map +1 -0
- package/dist/server/sessions/sessionRoutes.js +245 -1
- package/dist/server/sessions/sessionRoutes.js.map +1 -1
- package/dist/server/sessions/sessionTreeProjection.js +250 -0
- package/dist/server/sessions/sessionTreeProjection.js.map +1 -0
- package/dist/server/sessions/sessionUnreadStore.js +520 -0
- package/dist/server/sessions/sessionUnreadStore.js.map +1 -0
- package/dist/server/sessions/spawnSubsessionTool.js +10 -12
- package/dist/server/sessions/spawnSubsessionTool.js.map +1 -1
- package/dist/server/sessions/spawnTargetResolver.js +3 -16
- package/dist/server/sessions/spawnTargetResolver.js.map +1 -1
- package/dist/server/terminals/terminalService.js +8 -2
- package/dist/server/terminals/terminalService.js.map +1 -1
- package/dist/server/workspaces/gitWorktreeDiscovery.js +9 -0
- package/dist/server/workspaces/gitWorktreeDiscovery.js.map +1 -1
- package/dist/server/workspaces/projectWorkspaceCwds.js +22 -0
- package/dist/server/workspaces/projectWorkspaceCwds.js.map +1 -0
- package/dist/server/workspaces/workspaceService.js +15 -2
- package/dist/server/workspaces/workspaceService.js.map +1 -1
- package/dist/shared/activity.js +9 -1
- package/dist/shared/activity.js.map +1 -1
- package/dist/shared/apiTypes.d.ts +403 -8
- package/dist/shared/apiTypes.js +26 -0
- package/dist/shared/apiTypes.js.map +1 -1
- package/dist/shared/capabilities.js +9 -0
- package/dist/shared/capabilities.js.map +1 -1
- package/dist/shared/federatedRoutes.js +12 -0
- package/dist/shared/federatedRoutes.js.map +1 -1
- package/docs/config.md +76 -9
- package/docs/plugins.md +72 -16
- package/install.sh +1 -1
- package/package.json +4 -2
- package/dist/client/assets/index-kgpXTDyy.js +0 -3247
- package/dist/server/sessions/sessionArchiveMigration.js +0 -590
- package/dist/server/sessions/sessionArchiveMigration.js.map +0 -1
|
@@ -7,6 +7,9 @@ export declare const PI_WEB_CAPABILITIES: {
|
|
|
7
7
|
readonly sessionsReload: "sessions.reload";
|
|
8
8
|
readonly sessionsClearQueue: "sessions.clearQueue";
|
|
9
9
|
readonly sessionsPersistedState: "sessions.persistedState";
|
|
10
|
+
readonly sessionsNotifications: "sessions.notifications";
|
|
11
|
+
readonly sessionsUnread: "sessions.unread";
|
|
12
|
+
readonly sessionsAskUser: "sessions.askUser";
|
|
10
13
|
readonly promptAttachments: "prompt.attachments";
|
|
11
14
|
readonly workspaceFileSuggestions: "workspace.fileSuggestions";
|
|
12
15
|
readonly piPackagesManage: "piPackages.manage";
|
|
@@ -86,6 +89,11 @@ export interface PiWebConfigValues {
|
|
|
86
89
|
* while the capability stabilizes. Requires spawnSessions to be enabled.
|
|
87
90
|
*/
|
|
88
91
|
subsessions?: boolean;
|
|
92
|
+
/**
|
|
93
|
+
* When true, LLMs can post a question set to the browser via the ask_user
|
|
94
|
+
* tool. On by default; set to `false` to remove the tool from the runtime.
|
|
95
|
+
*/
|
|
96
|
+
askUser?: boolean;
|
|
89
97
|
/** Desired Pi-compatible agent profile and companion CLI (Pi by default). */
|
|
90
98
|
agent?: PiWebAgentConfig;
|
|
91
99
|
}
|
|
@@ -158,6 +166,7 @@ export interface PiWebConfigEnvOverrides {
|
|
|
158
166
|
allowedHosts: boolean;
|
|
159
167
|
spawnSessions: boolean;
|
|
160
168
|
subsessions: boolean;
|
|
169
|
+
askUser: boolean;
|
|
161
170
|
agentCommand: boolean;
|
|
162
171
|
agentDir: boolean;
|
|
163
172
|
/** The configured directory environment source, even when Pi compatibility is inactive for the desired command. */
|
|
@@ -171,16 +180,16 @@ export interface PiWebConfigResponse {
|
|
|
171
180
|
effectiveConfig: PiWebConfigValues;
|
|
172
181
|
envOverrides: PiWebConfigEnvOverrides;
|
|
173
182
|
}
|
|
174
|
-
export interface NormalAuthStatusResponse {
|
|
175
|
-
configured: boolean;
|
|
176
|
-
authenticated: boolean;
|
|
177
|
-
}
|
|
178
183
|
export interface Project {
|
|
179
184
|
id: string;
|
|
180
185
|
name: string;
|
|
181
186
|
path: string;
|
|
182
187
|
createdAt: string;
|
|
183
188
|
}
|
|
189
|
+
export interface NormalAuthStatusResponse {
|
|
190
|
+
configured: boolean;
|
|
191
|
+
authenticated: boolean;
|
|
192
|
+
}
|
|
184
193
|
export interface WorkspaceEffectiveConfig {
|
|
185
194
|
uploads?: PiWebUploadsConfig;
|
|
186
195
|
}
|
|
@@ -200,6 +209,116 @@ export interface SessionRef {
|
|
|
200
209
|
id: string;
|
|
201
210
|
cwd: string;
|
|
202
211
|
}
|
|
212
|
+
export declare const SESSION_UNREAD_LIMIT = 1000;
|
|
213
|
+
export declare const SESSION_UNREAD_SESSION_ID_MAX_LENGTH = 512;
|
|
214
|
+
export declare const SESSION_UNREAD_CWD_MAX_LENGTH: number;
|
|
215
|
+
export declare const SESSION_UNREAD_CATALOG_ID_MAX_LENGTH = 512;
|
|
216
|
+
export declare const SESSION_UNREAD_COMPLETED_AT_MAX_LENGTH = 64;
|
|
217
|
+
export interface SessionUnreadSummary {
|
|
218
|
+
sessionId: string;
|
|
219
|
+
cwd: string;
|
|
220
|
+
/** Monotonic within a catalog and never greater than its containing revision. */
|
|
221
|
+
completionOrder: number;
|
|
222
|
+
completedAt: string;
|
|
223
|
+
}
|
|
224
|
+
export interface SessionUnreadCatalogSnapshot {
|
|
225
|
+
/** Stable for one persisted catalog epoch; changes when unread state is reset. */
|
|
226
|
+
catalogId: string;
|
|
227
|
+
/** Monotonic catalog mutation revision; at least every contained completion order. */
|
|
228
|
+
catalogRevision: number;
|
|
229
|
+
/** Bounded by `SESSION_UNREAD_LIMIT` and ordered newest completion first. */
|
|
230
|
+
sessions: SessionUnreadSummary[];
|
|
231
|
+
}
|
|
232
|
+
export interface SessionUnreadAcknowledgeRequest {
|
|
233
|
+
cwd: string;
|
|
234
|
+
/** The catalog epoch in which `throughCompletionOrder` was observed. */
|
|
235
|
+
catalogId: string;
|
|
236
|
+
throughCompletionOrder: number;
|
|
237
|
+
}
|
|
238
|
+
/** Authoritative delta for one session in the daemon-owned unread catalog. */
|
|
239
|
+
export interface SessionUnreadEvent {
|
|
240
|
+
type: "sessions.unread";
|
|
241
|
+
catalogId: string;
|
|
242
|
+
/** At least `unread.completionOrder` when carrying an unread summary. */
|
|
243
|
+
catalogRevision: number;
|
|
244
|
+
sessionId: string;
|
|
245
|
+
cwd: string;
|
|
246
|
+
unread: SessionUnreadSummary | null;
|
|
247
|
+
}
|
|
248
|
+
export declare const SESSION_NOTIFICATION_LIMIT = 100;
|
|
249
|
+
export declare const SESSION_NOTIFICATION_MESSAGE_BYTES: number;
|
|
250
|
+
export type SessionNotificationSeverity = "info" | "warning" | "error";
|
|
251
|
+
export interface SessionNotification {
|
|
252
|
+
id: string;
|
|
253
|
+
message: string;
|
|
254
|
+
truncated: boolean;
|
|
255
|
+
severity: SessionNotificationSeverity;
|
|
256
|
+
receivedAt: string;
|
|
257
|
+
order: number;
|
|
258
|
+
}
|
|
259
|
+
export interface SessionNotificationSummary {
|
|
260
|
+
sessionId: string;
|
|
261
|
+
cwd: string;
|
|
262
|
+
inboxRevision: number;
|
|
263
|
+
retainedCount: number;
|
|
264
|
+
discardedCount: number;
|
|
265
|
+
highestSeverity?: SessionNotificationSeverity;
|
|
266
|
+
}
|
|
267
|
+
export interface SessionNotificationDismissThrough {
|
|
268
|
+
order: number;
|
|
269
|
+
overflowWatermark: number;
|
|
270
|
+
}
|
|
271
|
+
export interface SessionNotificationInboxSnapshot {
|
|
272
|
+
daemonInstanceId: string;
|
|
273
|
+
catalogRevision: number;
|
|
274
|
+
summary: SessionNotificationSummary;
|
|
275
|
+
notifications: SessionNotification[];
|
|
276
|
+
dismissThrough: SessionNotificationDismissThrough;
|
|
277
|
+
}
|
|
278
|
+
export interface SessionNotificationCatalogSnapshot {
|
|
279
|
+
daemonInstanceId: string;
|
|
280
|
+
catalogRevision: number;
|
|
281
|
+
sessions: SessionNotificationSummary[];
|
|
282
|
+
}
|
|
283
|
+
export interface SessionNotificationDismissRequest {
|
|
284
|
+
cwd: string;
|
|
285
|
+
daemonInstanceId: string;
|
|
286
|
+
notificationId: string;
|
|
287
|
+
}
|
|
288
|
+
export interface SessionNotificationDismissAllRequest {
|
|
289
|
+
cwd: string;
|
|
290
|
+
daemonInstanceId: string;
|
|
291
|
+
throughOrder: number;
|
|
292
|
+
throughOverflowWatermark: number;
|
|
293
|
+
}
|
|
294
|
+
export type SessionNotificationClearReason = "runtime-close" | "archive" | "delete" | "restore" | "archive-reconcile" | "replacement" | "initialization-failed" | "service-dispose";
|
|
295
|
+
export type SessionNotificationInboxDelta = {
|
|
296
|
+
kind: "added";
|
|
297
|
+
notification: SessionNotification;
|
|
298
|
+
evictedNotificationId?: string;
|
|
299
|
+
} | {
|
|
300
|
+
kind: "dismissed";
|
|
301
|
+
notificationIds: string[];
|
|
302
|
+
} | {
|
|
303
|
+
kind: "cleared";
|
|
304
|
+
reason: SessionNotificationClearReason;
|
|
305
|
+
} | {
|
|
306
|
+
kind: "resync";
|
|
307
|
+
};
|
|
308
|
+
export interface SessionNotificationInboxEvent {
|
|
309
|
+
type: "notifications.inbox";
|
|
310
|
+
daemonInstanceId: string;
|
|
311
|
+
catalogRevision: number;
|
|
312
|
+
summary: SessionNotificationSummary;
|
|
313
|
+
dismissThrough: SessionNotificationDismissThrough;
|
|
314
|
+
delta: SessionNotificationInboxDelta;
|
|
315
|
+
}
|
|
316
|
+
export interface SessionNotificationSummaryEvent {
|
|
317
|
+
type: "notifications.summary";
|
|
318
|
+
daemonInstanceId: string;
|
|
319
|
+
catalogRevision: number;
|
|
320
|
+
summary: SessionNotificationSummary;
|
|
321
|
+
}
|
|
203
322
|
export interface SessionInfo extends SessionRef {
|
|
204
323
|
path: string;
|
|
205
324
|
/** True when the server has verified a backing session file exists; false when known transient. */
|
|
@@ -210,6 +329,21 @@ export interface SessionInfo extends SessionRef {
|
|
|
210
329
|
messageCount: number;
|
|
211
330
|
firstMessage: string;
|
|
212
331
|
parentSessionPath?: string;
|
|
332
|
+
/**
|
|
333
|
+
* Working directory of the parent session, read from the parent session file
|
|
334
|
+
* header. Only populated when the parent is outside this listing's cwd, so a
|
|
335
|
+
* child whose parent lives in another worktree can point at it instead of
|
|
336
|
+
* only reporting that the parent is unavailable here.
|
|
337
|
+
*/
|
|
338
|
+
parentSessionCwd?: string;
|
|
339
|
+
/** Session id of an out-of-cwd parent, so the browser can select it after switching workspace. */
|
|
340
|
+
parentSessionId?: string;
|
|
341
|
+
/**
|
|
342
|
+
* Number of sessions in other workspaces of the same project that record this
|
|
343
|
+
* session as their parent. Only set when non-zero, so a parent can show that
|
|
344
|
+
* it has children which are not nested beneath it in this workspace.
|
|
345
|
+
*/
|
|
346
|
+
childSessionsElsewhere?: number;
|
|
213
347
|
archived?: boolean;
|
|
214
348
|
archivedAt?: string;
|
|
215
349
|
}
|
|
@@ -221,7 +355,6 @@ export interface SessionContentSearchExcerpt {
|
|
|
221
355
|
}[];
|
|
222
356
|
}
|
|
223
357
|
export interface SessionContentSearchMatch {
|
|
224
|
-
/** Position in the raw session transcript; stable across paged reads. */
|
|
225
358
|
messageIndex: number;
|
|
226
359
|
role: "user" | "assistant";
|
|
227
360
|
excerpts: SessionContentSearchExcerpt[];
|
|
@@ -233,7 +366,6 @@ export interface SessionContentSearchResult {
|
|
|
233
366
|
}
|
|
234
367
|
export interface SessionContentSearchResponse {
|
|
235
368
|
results: SessionContentSearchResult[];
|
|
236
|
-
/** Total matching user/assistant messages before the response limit. */
|
|
237
369
|
matchCount: number;
|
|
238
370
|
truncated: boolean;
|
|
239
371
|
}
|
|
@@ -312,11 +444,155 @@ export interface SessionActivity {
|
|
|
312
444
|
label: string;
|
|
313
445
|
detail?: string;
|
|
314
446
|
at: string;
|
|
447
|
+
/**
|
|
448
|
+
* Set only on the startup window's own reports. A startup phase is genuinely
|
|
449
|
+
* in progress, so it is published as `active` and rendered like any other
|
|
450
|
+
* activity, but *starting* a session is not *working* in it: there is nothing
|
|
451
|
+
* to stop, nothing that blocks reloading from disk, and no workspace-level
|
|
452
|
+
* work to report. `isSessionActive()` reads this to keep the two apart.
|
|
453
|
+
*/
|
|
454
|
+
startup?: boolean;
|
|
315
455
|
}
|
|
316
456
|
export interface QueuedSessionMessage {
|
|
317
457
|
kind: "steer" | "followUp";
|
|
318
458
|
text: string;
|
|
319
459
|
}
|
|
460
|
+
/**
|
|
461
|
+
* `customType` of the follow-up custom message that carries a closed ask back to
|
|
462
|
+
* the model and into the transcript. Its `details` are an {@link AskUserOutcome}.
|
|
463
|
+
*/
|
|
464
|
+
export declare const ASK_USER_ANSWERS_CUSTOM_TYPE = "pi-web.ask.answers";
|
|
465
|
+
/** Largest question set one `ask_user` call may post. */
|
|
466
|
+
export declare const ASK_USER_QUESTION_LIMIT = 20;
|
|
467
|
+
/** Largest option list one question may offer. */
|
|
468
|
+
export declare const ASK_USER_OPTION_LIMIT = 12;
|
|
469
|
+
/** Length bound for ids: the ask id, question ids, and option values. */
|
|
470
|
+
export declare const ASK_USER_ID_MAX_LENGTH = 128;
|
|
471
|
+
/** Length bound for model-authored prose: questions, details, and option labels. */
|
|
472
|
+
export declare const ASK_USER_TEXT_MAX_LENGTH = 1000;
|
|
473
|
+
/** Length bound for the free text a user types as a custom answer. */
|
|
474
|
+
export declare const ASK_USER_OTHER_TEXT_MAX_LENGTH = 4000;
|
|
475
|
+
/** One selectable option of an {@link AskUserQuestion}. */
|
|
476
|
+
export interface AskUserQuestionOption {
|
|
477
|
+
/** Stable machine value reported back to the model. */
|
|
478
|
+
value: string;
|
|
479
|
+
/** Short human label rendered in the browser. */
|
|
480
|
+
label: string;
|
|
481
|
+
/** Optional clarifying line rendered under the label. */
|
|
482
|
+
detail?: string;
|
|
483
|
+
}
|
|
484
|
+
/**
|
|
485
|
+
* One question of an `ask_user` set. Questions are never required: the user may
|
|
486
|
+
* submit while leaving any of them untouched, and unanswered questions are
|
|
487
|
+
* reported to the model as such.
|
|
488
|
+
*/
|
|
489
|
+
export interface AskUserQuestion {
|
|
490
|
+
/** Unique within the ask; used as the answer key. */
|
|
491
|
+
id: string;
|
|
492
|
+
/** The question itself, as one plain-text line. */
|
|
493
|
+
question: string;
|
|
494
|
+
/** Optional supporting context rendered under the question. */
|
|
495
|
+
detail?: string;
|
|
496
|
+
/** Offered options; may be empty when only free text makes sense. */
|
|
497
|
+
options: AskUserQuestionOption[];
|
|
498
|
+
/**
|
|
499
|
+
* Compatibility marker for older clients. Canonical questions set this to
|
|
500
|
+
* true because every question offers a custom free-text answer.
|
|
501
|
+
*/
|
|
502
|
+
allowOther?: boolean;
|
|
503
|
+
/** When true, several options may be selected at once. */
|
|
504
|
+
multiple?: boolean;
|
|
505
|
+
}
|
|
506
|
+
/**
|
|
507
|
+
* The open, unanswered question set of a session. Daemon-owned and reported in
|
|
508
|
+
* {@link SessionStatus}, so a reconnecting or reloading browser rehydrates it
|
|
509
|
+
* without depending on having seen the `ask.opened` event.
|
|
510
|
+
*/
|
|
511
|
+
export interface PendingAskUser {
|
|
512
|
+
askId: string;
|
|
513
|
+
askedAt: string;
|
|
514
|
+
questions: AskUserQuestion[];
|
|
515
|
+
}
|
|
516
|
+
/** Why an ask stopped being the session's open ask. */
|
|
517
|
+
export type AskUserCloseReason = "submitted" | "superseded" | "cancelled";
|
|
518
|
+
/**
|
|
519
|
+
* What the user replied to one question. Absent from a submission means the
|
|
520
|
+
* question was left untouched; an empty `values` with no `otherText` means the
|
|
521
|
+
* same thing.
|
|
522
|
+
*/
|
|
523
|
+
export interface AskUserAnswer {
|
|
524
|
+
/** Matches an {@link AskUserQuestion.id} of the open ask. */
|
|
525
|
+
id: string;
|
|
526
|
+
/** Selected {@link AskUserQuestionOption.value} entries; several only when the question allows it. */
|
|
527
|
+
values: string[];
|
|
528
|
+
/** Free text typed as the question's custom answer. */
|
|
529
|
+
otherText?: string;
|
|
530
|
+
}
|
|
531
|
+
/** One submit of the open ask: answers for some or all of its questions. */
|
|
532
|
+
export interface AskUserSubmission {
|
|
533
|
+
answers: AskUserAnswer[];
|
|
534
|
+
}
|
|
535
|
+
/**
|
|
536
|
+
* One question of a closed ask paired with what came back for it. Carries the
|
|
537
|
+
* question itself so the record renders without the original ask still existing.
|
|
538
|
+
*/
|
|
539
|
+
export interface AskUserQuestionRecord {
|
|
540
|
+
question: AskUserQuestion;
|
|
541
|
+
/** True when at least one option was selected or custom text was given. */
|
|
542
|
+
answered: boolean;
|
|
543
|
+
values: string[];
|
|
544
|
+
otherText?: string;
|
|
545
|
+
}
|
|
546
|
+
/**
|
|
547
|
+
* The complete result of an ask, computed when it closes. Shared by the
|
|
548
|
+
* model-facing follow-up message and the browser's read-only record, so both
|
|
549
|
+
* report the same answered and unanswered questions.
|
|
550
|
+
*/
|
|
551
|
+
export interface AskUserOutcome {
|
|
552
|
+
askId: string;
|
|
553
|
+
reason: AskUserCloseReason;
|
|
554
|
+
askedAt: string;
|
|
555
|
+
closedAt: string;
|
|
556
|
+
questions: AskUserQuestionRecord[];
|
|
557
|
+
answeredCount: number;
|
|
558
|
+
/** Ids of the questions left unanswered, in the order they were asked. */
|
|
559
|
+
unansweredIds: string[];
|
|
560
|
+
/** One line, for example `Answered 3 of 5; unanswered: q2, q5`. */
|
|
561
|
+
summary: string;
|
|
562
|
+
}
|
|
563
|
+
/**
|
|
564
|
+
* Result of the browser closing an ask by submitting or cancelling it.
|
|
565
|
+
*
|
|
566
|
+
* `"stale"` is an ordinary race rather than an error: the named ask was already
|
|
567
|
+
* submitted, superseded by a newer one, or gone with its session runtime. The
|
|
568
|
+
* browser drops its card and trusts `sessionStatus`, which is returned in both
|
|
569
|
+
* cases so closing an ask needs no follow-up status request.
|
|
570
|
+
*/
|
|
571
|
+
export interface AskUserCloseResponse {
|
|
572
|
+
result: "closed" | "stale";
|
|
573
|
+
/** Present only when this call is the one that closed the ask. */
|
|
574
|
+
outcome?: AskUserOutcome;
|
|
575
|
+
sessionStatus: SessionStatus;
|
|
576
|
+
}
|
|
577
|
+
/**
|
|
578
|
+
* Progress of the session startup window, where the daemon is still
|
|
579
|
+
* constructing the agent session and no `PiAgentSession` exists yet, so
|
|
580
|
+
* `activity.update` cannot be published for it.
|
|
581
|
+
*
|
|
582
|
+
* `startupToken` is the opaque label a create request supplied, echoed back so a
|
|
583
|
+
* browser row still waiting for a session id recognises its own construction.
|
|
584
|
+
* The daemon never interprets it and it never becomes the session id:
|
|
585
|
+
* `activity.sessionId` always carries the real id, which is how an *open* of a
|
|
586
|
+
* session the browser already knows is routed instead.
|
|
587
|
+
*
|
|
588
|
+
* `activity.phase === "idle"` means the startup window ended with nothing left
|
|
589
|
+
* to report, so a browser that substituted its own text should restore it.
|
|
590
|
+
*/
|
|
591
|
+
export interface SessionStartupProgressEvent {
|
|
592
|
+
type: "session.startup";
|
|
593
|
+
startupToken?: string;
|
|
594
|
+
activity: SessionActivity;
|
|
595
|
+
}
|
|
320
596
|
/**
|
|
321
597
|
* A pi-native image attachment carried with a prompt. The wire format mirrors
|
|
322
598
|
* pi's own `ImageContent` shape (`{ type: "image", data, mimeType }`) so these
|
|
@@ -375,6 +651,8 @@ export interface AuthProviderOption {
|
|
|
375
651
|
name: string;
|
|
376
652
|
authType: AuthType;
|
|
377
653
|
status: AuthProviderStatus;
|
|
654
|
+
/** Additive hint: use the generic AuthInteraction transport instead of the legacy one-secret form. */
|
|
655
|
+
loginFlow?: "interactive";
|
|
378
656
|
}
|
|
379
657
|
export interface AuthProvidersResponse {
|
|
380
658
|
providers: AuthProviderOption[];
|
|
@@ -387,12 +665,19 @@ export interface OAuthFlowState {
|
|
|
387
665
|
auth?: {
|
|
388
666
|
url: string;
|
|
389
667
|
instructions?: string;
|
|
668
|
+
deviceCode?: {
|
|
669
|
+
userCode: string;
|
|
670
|
+
intervalSeconds?: number;
|
|
671
|
+
expiresInSeconds?: number;
|
|
672
|
+
};
|
|
390
673
|
};
|
|
391
674
|
prompt?: {
|
|
392
675
|
requestId: string;
|
|
393
676
|
message: string;
|
|
394
677
|
placeholder?: string;
|
|
395
678
|
allowEmpty?: boolean;
|
|
679
|
+
/** Additive semantic detail; legacy peers continue to use `kind`. */
|
|
680
|
+
promptType?: "text" | "secret" | "manual_code";
|
|
396
681
|
kind: "prompt" | "manual";
|
|
397
682
|
};
|
|
398
683
|
select?: {
|
|
@@ -401,6 +686,13 @@ export interface OAuthFlowState {
|
|
|
401
686
|
options: CommandOption[];
|
|
402
687
|
};
|
|
403
688
|
progress: string[];
|
|
689
|
+
info?: {
|
|
690
|
+
message: string;
|
|
691
|
+
links?: {
|
|
692
|
+
url: string;
|
|
693
|
+
label?: string;
|
|
694
|
+
}[];
|
|
695
|
+
}[];
|
|
404
696
|
error?: string;
|
|
405
697
|
}
|
|
406
698
|
export interface ModelSelectionResponse {
|
|
@@ -409,6 +701,30 @@ export interface ModelSelectionResponse {
|
|
|
409
701
|
export interface ThinkingLevelsResponse {
|
|
410
702
|
levels: string[];
|
|
411
703
|
}
|
|
704
|
+
export type SessionWarningSeverity = "info" | "warning" | "error";
|
|
705
|
+
/**
|
|
706
|
+
* A live, runtime-scoped warning surfaced to the browser (skill/resource
|
|
707
|
+
* diagnostics, extension load errors, subscription-auth billing notice, etc.).
|
|
708
|
+
*
|
|
709
|
+
* Warnings are recomputed whenever the runtime is (re)built inside sessiond and
|
|
710
|
+
* are not persisted chat messages. `source` is an optional short origin label
|
|
711
|
+
* (e.g. `"skill"`, `"extension"`, `"anthropic"`); `path` carries a related file
|
|
712
|
+
* path when the warning came from a resource diagnostic.
|
|
713
|
+
*
|
|
714
|
+
* `dismiss` is present only when the warning has a durable, first-class
|
|
715
|
+
* off-switch in the underlying `pi` agent (not a UI-only hide). Its `id` is the
|
|
716
|
+
* opaque token the server maps back to that suppression; the client renders a
|
|
717
|
+
* dismiss control for any warning carrying it, without knowing what it means.
|
|
718
|
+
*/
|
|
719
|
+
export interface SessionWarning {
|
|
720
|
+
severity: SessionWarningSeverity;
|
|
721
|
+
message: string;
|
|
722
|
+
source?: string;
|
|
723
|
+
path?: string;
|
|
724
|
+
dismiss?: {
|
|
725
|
+
id: string;
|
|
726
|
+
};
|
|
727
|
+
}
|
|
412
728
|
export interface SessionStatus {
|
|
413
729
|
sessionId: string;
|
|
414
730
|
/** True when the server has verified a backing session file exists; false when known transient. */
|
|
@@ -434,6 +750,18 @@ export interface SessionStatus {
|
|
|
434
750
|
contextWindow: number;
|
|
435
751
|
percent: number | null;
|
|
436
752
|
};
|
|
753
|
+
/**
|
|
754
|
+
* Live, runtime-scoped warnings for this session (skill/resource diagnostics,
|
|
755
|
+
* extension load errors, Anthropic subscription-auth billing notice, etc.).
|
|
756
|
+
* Recomputed on each status read from the current runtime; absent/empty when
|
|
757
|
+
* there are none. See {@link SessionWarning}.
|
|
758
|
+
*/
|
|
759
|
+
warnings?: SessionWarning[];
|
|
760
|
+
/**
|
|
761
|
+
* The session's open `ask_user` question set, when one is waiting for the
|
|
762
|
+
* user. Daemon-owned, so it survives browser reload and web/API restarts.
|
|
763
|
+
*/
|
|
764
|
+
pendingAsk?: PendingAskUser;
|
|
437
765
|
}
|
|
438
766
|
export interface WorkspaceActivity {
|
|
439
767
|
cwd: string;
|
|
@@ -517,6 +845,8 @@ export interface GitStatusFile {
|
|
|
517
845
|
oldPath?: string;
|
|
518
846
|
index: GitFileState;
|
|
519
847
|
workingTree: GitFileState;
|
|
848
|
+
submoduleFromCommit?: string;
|
|
849
|
+
submoduleToCommit?: string;
|
|
520
850
|
}
|
|
521
851
|
export interface GitStatusResponse {
|
|
522
852
|
isGitRepo: boolean;
|
|
@@ -526,6 +856,7 @@ export interface GitStatusResponse {
|
|
|
526
856
|
ahead?: number;
|
|
527
857
|
behind?: number;
|
|
528
858
|
files: GitStatusFile[];
|
|
859
|
+
submodules: string[];
|
|
529
860
|
}
|
|
530
861
|
export interface GitDiffResponse {
|
|
531
862
|
path?: string;
|
|
@@ -680,13 +1011,60 @@ export interface CommandOption {
|
|
|
680
1011
|
label: string;
|
|
681
1012
|
description?: string;
|
|
682
1013
|
}
|
|
1014
|
+
export type SessionTreeNodeKind = "user" | "assistant" | "tool-result" | "bash" | "custom-message" | "compaction" | "branch-summary" | "model-change" | "thinking-level-change" | "session-info" | "label" | "custom" | "other";
|
|
1015
|
+
export interface SessionTreeNode {
|
|
1016
|
+
id: string;
|
|
1017
|
+
parentId: string | null;
|
|
1018
|
+
kind: SessionTreeNodeKind;
|
|
1019
|
+
summary: string;
|
|
1020
|
+
timestamp?: string;
|
|
1021
|
+
label?: string;
|
|
1022
|
+
}
|
|
1023
|
+
export interface SessionTreeSnapshot {
|
|
1024
|
+
/** Pre-order, parent-linked projection of all retained roots and descendants. */
|
|
1025
|
+
nodes: SessionTreeNode[];
|
|
1026
|
+
activeLeafId: string | null;
|
|
1027
|
+
/** Root-to-leaf IDs for explicit, non-color-only active-path rendering. */
|
|
1028
|
+
activePathIds: string[];
|
|
1029
|
+
}
|
|
1030
|
+
export declare const SESSION_TREE_CUSTOM_INSTRUCTIONS_MAX_LENGTH = 10000;
|
|
1031
|
+
export type SessionTreeSummaryChoice = {
|
|
1032
|
+
mode: "none";
|
|
1033
|
+
} | {
|
|
1034
|
+
mode: "default";
|
|
1035
|
+
} | {
|
|
1036
|
+
mode: "custom";
|
|
1037
|
+
instructions: string;
|
|
1038
|
+
};
|
|
1039
|
+
export interface SessionTreeNavigateRequest {
|
|
1040
|
+
targetId: string;
|
|
1041
|
+
/** Leaf shown when the navigator opened; null is valid for an empty/root position. */
|
|
1042
|
+
expectedLeafId: string | null;
|
|
1043
|
+
summary: SessionTreeSummaryChoice;
|
|
1044
|
+
}
|
|
1045
|
+
export type SessionTreeNavigateResult = {
|
|
1046
|
+
cancelled: false;
|
|
1047
|
+
editorText?: string;
|
|
1048
|
+
} | {
|
|
1049
|
+
cancelled: true;
|
|
1050
|
+
aborted?: boolean;
|
|
1051
|
+
};
|
|
683
1052
|
export interface MessagePage {
|
|
684
1053
|
messages: unknown[];
|
|
685
1054
|
start: number;
|
|
686
1055
|
total: number;
|
|
687
1056
|
}
|
|
1057
|
+
/**
|
|
1058
|
+
* Join-time snapshot of a session's in-flight assistant stream. `seq` is the
|
|
1059
|
+
* `SessionEventHub` watermark captured together with `partial` in a single tick,
|
|
1060
|
+
* so a joining client can seed `partial` and then apply only buffered live events
|
|
1061
|
+
* with `seq > snapshot.seq` (exactly-once). `partial` is a browser-projected
|
|
1062
|
+
* in-flight `AssistantMessage` (thinking signatures stripped), or `null` when the
|
|
1063
|
+
* session is not mid assistant-message stream.
|
|
1064
|
+
*/
|
|
688
1065
|
export interface SessionStreamSnapshot {
|
|
689
1066
|
seq: number;
|
|
1067
|
+
/** Browser-projected in-flight `AssistantMessage`, or `null` when idle. */
|
|
690
1068
|
partial: unknown;
|
|
691
1069
|
}
|
|
692
1070
|
export type CommandResult = {
|
|
@@ -699,10 +1077,19 @@ export type CommandResult = {
|
|
|
699
1077
|
requestId: string;
|
|
700
1078
|
title: string;
|
|
701
1079
|
options: CommandOption[];
|
|
1080
|
+
} | {
|
|
1081
|
+
type: "tree";
|
|
1082
|
+
tree: SessionTreeSnapshot;
|
|
702
1083
|
} | {
|
|
703
1084
|
type: "unsupported";
|
|
704
1085
|
message: string;
|
|
705
1086
|
};
|
|
1087
|
+
/**
|
|
1088
|
+
* Transport-level per-session sequence stamp. `SessionEventHub.publish` assigns a
|
|
1089
|
+
* monotonic `seq` to every per-session event as it is serialized to the socket.
|
|
1090
|
+
* Clients use it as a watermark against the join-time stream snapshot so buffered
|
|
1091
|
+
* live events are applied exactly once. Existing consumers may ignore it.
|
|
1092
|
+
*/
|
|
706
1093
|
export type SessionUiEvent = SessionUiEventBody & {
|
|
707
1094
|
seq?: number;
|
|
708
1095
|
};
|
|
@@ -768,9 +1155,17 @@ type SessionUiEventBody = {
|
|
|
768
1155
|
type: "command.output";
|
|
769
1156
|
level: "info" | "success" | "error";
|
|
770
1157
|
message: string;
|
|
771
|
-
|
|
1158
|
+
notificationId?: string;
|
|
1159
|
+
} | SessionNotificationInboxEvent | {
|
|
772
1160
|
type: "session.error";
|
|
773
1161
|
message: string;
|
|
1162
|
+
} | {
|
|
1163
|
+
type: "ask.opened";
|
|
1164
|
+
ask: PendingAskUser;
|
|
1165
|
+
} | {
|
|
1166
|
+
type: "ask.closed";
|
|
1167
|
+
askId: string;
|
|
1168
|
+
reason: AskUserCloseReason;
|
|
774
1169
|
} | {
|
|
775
1170
|
type: "session.name";
|
|
776
1171
|
sessionId: string;
|
|
@@ -784,5 +1179,5 @@ type SessionUiEventBody = {
|
|
|
784
1179
|
};
|
|
785
1180
|
export type GlobalSessionEvent = Extract<SessionUiEventBody, {
|
|
786
1181
|
type: "status.update" | "activity.update" | "session.name" | "session.created";
|
|
787
|
-
}
|
|
1182
|
+
}> | SessionNotificationSummaryEvent | SessionUnreadEvent | SessionStartupProgressEvent;
|
|
788
1183
|
export type RealtimeEvent = GlobalSessionEvent | TerminalUiEvent | WorkspaceActivityUiEvent;
|
package/dist/shared/apiTypes.js
CHANGED
|
@@ -5,10 +5,36 @@ export const PI_WEB_CAPABILITIES = {
|
|
|
5
5
|
sessionsReload: "sessions.reload",
|
|
6
6
|
sessionsClearQueue: "sessions.clearQueue",
|
|
7
7
|
sessionsPersistedState: "sessions.persistedState",
|
|
8
|
+
sessionsNotifications: "sessions.notifications",
|
|
9
|
+
sessionsUnread: "sessions.unread",
|
|
10
|
+
sessionsAskUser: "sessions.askUser",
|
|
8
11
|
promptAttachments: "prompt.attachments",
|
|
9
12
|
workspaceFileSuggestions: "workspace.fileSuggestions",
|
|
10
13
|
piPackagesManage: "piPackages.manage",
|
|
11
14
|
selectedMachineSettings: "settings.selectedMachine",
|
|
12
15
|
agentProfileConfig: "settings.agentProfile",
|
|
13
16
|
};
|
|
17
|
+
export const SESSION_UNREAD_LIMIT = 1_000;
|
|
18
|
+
export const SESSION_UNREAD_SESSION_ID_MAX_LENGTH = 512;
|
|
19
|
+
export const SESSION_UNREAD_CWD_MAX_LENGTH = 32 * 1024;
|
|
20
|
+
export const SESSION_UNREAD_CATALOG_ID_MAX_LENGTH = 512;
|
|
21
|
+
export const SESSION_UNREAD_COMPLETED_AT_MAX_LENGTH = 64;
|
|
22
|
+
export const SESSION_NOTIFICATION_LIMIT = 100;
|
|
23
|
+
export const SESSION_NOTIFICATION_MESSAGE_BYTES = 8 * 1024;
|
|
24
|
+
/**
|
|
25
|
+
* `customType` of the follow-up custom message that carries a closed ask back to
|
|
26
|
+
* the model and into the transcript. Its `details` are an {@link AskUserOutcome}.
|
|
27
|
+
*/
|
|
28
|
+
export const ASK_USER_ANSWERS_CUSTOM_TYPE = "pi-web.ask.answers";
|
|
29
|
+
/** Largest question set one `ask_user` call may post. */
|
|
30
|
+
export const ASK_USER_QUESTION_LIMIT = 20;
|
|
31
|
+
/** Largest option list one question may offer. */
|
|
32
|
+
export const ASK_USER_OPTION_LIMIT = 12;
|
|
33
|
+
/** Length bound for ids: the ask id, question ids, and option values. */
|
|
34
|
+
export const ASK_USER_ID_MAX_LENGTH = 128;
|
|
35
|
+
/** Length bound for model-authored prose: questions, details, and option labels. */
|
|
36
|
+
export const ASK_USER_TEXT_MAX_LENGTH = 1_000;
|
|
37
|
+
/** Length bound for the free text a user types as a custom answer. */
|
|
38
|
+
export const ASK_USER_OTHER_TEXT_MAX_LENGTH = 4_000;
|
|
39
|
+
export const SESSION_TREE_CUSTOM_INSTRUCTIONS_MAX_LENGTH = 10_000;
|
|
14
40
|
//# sourceMappingURL=apiTypes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiTypes.js","sourceRoot":"","sources":["../../src/shared/apiTypes.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,sBAAsB,EAAE,yBAAyB;IACjD,qBAAqB,EAAE,wBAAwB;IAC/C,eAAe,EAAE,kBAAkB;IACnC,cAAc,EAAE,iBAAiB;IACjC,kBAAkB,EAAE,qBAAqB;IACzC,sBAAsB,EAAE,yBAAyB;IACjD,iBAAiB,EAAE,oBAAoB;IACvC,wBAAwB,EAAE,2BAA2B;IACrD,gBAAgB,EAAE,mBAAmB;IACrC,uBAAuB,EAAE,0BAA0B;IACnD,kBAAkB,EAAE,uBAAuB;CACnC,CAAC"}
|
|
1
|
+
{"version":3,"file":"apiTypes.js","sourceRoot":"","sources":["../../src/shared/apiTypes.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,sBAAsB,EAAE,yBAAyB;IACjD,qBAAqB,EAAE,wBAAwB;IAC/C,eAAe,EAAE,kBAAkB;IACnC,cAAc,EAAE,iBAAiB;IACjC,kBAAkB,EAAE,qBAAqB;IACzC,sBAAsB,EAAE,yBAAyB;IACjD,qBAAqB,EAAE,wBAAwB;IAC/C,cAAc,EAAE,iBAAiB;IACjC,eAAe,EAAE,kBAAkB;IACnC,iBAAiB,EAAE,oBAAoB;IACvC,wBAAwB,EAAE,2BAA2B;IACrD,gBAAgB,EAAE,mBAAmB;IACrC,uBAAuB,EAAE,0BAA0B;IACnD,kBAAkB,EAAE,uBAAuB;CACnC,CAAC;AAkOX,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC;AAC1C,MAAM,CAAC,MAAM,oCAAoC,GAAG,GAAG,CAAC;AACxD,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,GAAG,IAAI,CAAC;AACvD,MAAM,CAAC,MAAM,oCAAoC,GAAG,GAAG,CAAC;AACxD,MAAM,CAAC,MAAM,sCAAsC,GAAG,EAAE,CAAC;AAqCzD,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAC9C,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,GAAG,IAAI,CAAC;AAkP3D;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,oBAAoB,CAAC;AAEjE,yDAAyD;AACzD,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAC1C,kDAAkD;AAClD,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACxC,yEAAyE;AACzE,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAC1C,oFAAoF;AACpF,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC;AAC9C,sEAAsE;AACtE,MAAM,CAAC,MAAM,8BAA8B,GAAG,KAAK,CAAC;AAsmBpD,MAAM,CAAC,MAAM,2CAA2C,GAAG,MAAM,CAAC"}
|
|
@@ -9,6 +9,9 @@ export const WEB_RUNTIME_CAPABILITIES = [
|
|
|
9
9
|
PI_WEB_CAPABILITIES.sessionsReload,
|
|
10
10
|
PI_WEB_CAPABILITIES.sessionsClearQueue,
|
|
11
11
|
PI_WEB_CAPABILITIES.sessionsPersistedState,
|
|
12
|
+
PI_WEB_CAPABILITIES.sessionsNotifications,
|
|
13
|
+
PI_WEB_CAPABILITIES.sessionsUnread,
|
|
14
|
+
PI_WEB_CAPABILITIES.sessionsAskUser,
|
|
12
15
|
PI_WEB_CAPABILITIES.promptAttachments,
|
|
13
16
|
PI_WEB_CAPABILITIES.workspaceFileSuggestions,
|
|
14
17
|
PI_WEB_CAPABILITIES.piPackagesManage,
|
|
@@ -22,6 +25,9 @@ export const SESSIOND_RUNTIME_CAPABILITIES = [
|
|
|
22
25
|
PI_WEB_CAPABILITIES.sessionsReload,
|
|
23
26
|
PI_WEB_CAPABILITIES.sessionsClearQueue,
|
|
24
27
|
PI_WEB_CAPABILITIES.sessionsPersistedState,
|
|
28
|
+
PI_WEB_CAPABILITIES.sessionsNotifications,
|
|
29
|
+
PI_WEB_CAPABILITIES.sessionsUnread,
|
|
30
|
+
PI_WEB_CAPABILITIES.sessionsAskUser,
|
|
25
31
|
PI_WEB_CAPABILITIES.promptAttachments,
|
|
26
32
|
];
|
|
27
33
|
const EFFECTIVE_CAPABILITY_REQUIREMENTS = {
|
|
@@ -31,6 +37,9 @@ const EFFECTIVE_CAPABILITY_REQUIREMENTS = {
|
|
|
31
37
|
[PI_WEB_CAPABILITIES.sessionsReload]: ["web", "sessiond"],
|
|
32
38
|
[PI_WEB_CAPABILITIES.sessionsClearQueue]: ["web", "sessiond"],
|
|
33
39
|
[PI_WEB_CAPABILITIES.sessionsPersistedState]: ["web", "sessiond"],
|
|
40
|
+
[PI_WEB_CAPABILITIES.sessionsNotifications]: ["web", "sessiond"],
|
|
41
|
+
[PI_WEB_CAPABILITIES.sessionsUnread]: ["web", "sessiond"],
|
|
42
|
+
[PI_WEB_CAPABILITIES.sessionsAskUser]: ["web", "sessiond"],
|
|
34
43
|
[PI_WEB_CAPABILITIES.promptAttachments]: ["web", "sessiond"],
|
|
35
44
|
[PI_WEB_CAPABILITIES.workspaceFileSuggestions]: ["web"],
|
|
36
45
|
[PI_WEB_CAPABILITIES.piPackagesManage]: ["web"],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/shared/capabilities.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/shared/capabilities.ts"],"names":[],"mappings":"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"}
|