chore(vendor): import pi 0.85.1
Imported as a linear vendor commit so forge rebases do not replay the upstream root tree. git-subtree-dir: third_party/pi git-subtree-split: d981de1229ef899957bbe968bc8dcda02a21f477
This commit is contained in:
35
third_party/pi/packages/coding-agent/src/experimental/services/sessions.ts
vendored
Normal file
35
third_party/pi/packages/coding-agent/src/experimental/services/sessions.ts
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
import { type Context, defineService, type ReplicatedState } from "@earendil-works/chord";
|
||||
import type { ServerId } from "@earendil-works/pi-protocol";
|
||||
|
||||
export interface SessionAddress {
|
||||
serverId: ServerId;
|
||||
sessionId: string;
|
||||
}
|
||||
|
||||
export interface SessionSummary extends SessionAddress {
|
||||
createdAt: number;
|
||||
}
|
||||
|
||||
export interface SessionCreateOptions {
|
||||
id?: string;
|
||||
}
|
||||
|
||||
export interface SessionDirectoryState {
|
||||
revision: number;
|
||||
sessions: SessionSummary[];
|
||||
}
|
||||
|
||||
export interface SessionDirectory {
|
||||
readonly state: ReplicatedState<SessionDirectoryState>;
|
||||
}
|
||||
|
||||
export const SessionDirectory = defineService<SessionDirectory>("pi.session-directory");
|
||||
|
||||
export interface SessionManagement {
|
||||
create(options: SessionCreateOptions, context: Context): Promise<SessionSummary>;
|
||||
remove(sessionId: string, context: Context): Promise<void>;
|
||||
attach(sessionId: string, context: Context): Promise<void>;
|
||||
detach(context: Context): Promise<void>;
|
||||
}
|
||||
|
||||
export const SessionManagement = defineService<SessionManagement>("pi.session-management");
|
||||
Reference in New Issue
Block a user