Download packages/api/session-controller/src/client/index.ts from SaylorTwift/deepseek-harness: direct link, hf CLI and curl.
- Browser
- Download file 4.23 kB
-
https://huggingface.co/SaylorTwift/deepseek-harness/resolve/main/packages/api/session-controller/src/client/index.ts
- Command line
-
hf download hf://SaylorTwift/deepseek-harness/packages/api/session-controller/src/client/index.ts
-
curl -L -o index.ts https://huggingface.co/SaylorTwift/deepseek-harness/resolve/main/packages/api/session-controller/src/client/index.ts
4.23 kB
| /** Client Session object layer, Agent scopes, and Remote lifecycle wiring. */ | |
| import type { Context } from '@deepseek-ai/cordis' | |
| import type {} from '@deepseek-ai/dsh-agent/types' | |
| import type {} from '@deepseek-ai/dsh-client-connection/client' | |
| import type {} from '@deepseek-ai/dsh-client-file-upload/client' | |
| import { createSessionControlStream } from './transport.ts' | |
| import { ClientSessions } from './sessions/service.ts' | |
| import type { SessionRemotes } from './sessions/remotes.ts' | |
| import type {} from '../remote-events.ts' | |
| export { | |
| createSessionControlStream, | |
| SessionEventStream, | |
| SESSION_SEARCH_RESULT_LIMIT, | |
| SESSION_SEARCH_SNIPPET_MAX_CODE_POINTS, | |
| } from './transport.ts' | |
| export type { | |
| ClientSessionPageRequest, | |
| SessionControlStream, | |
| SessionControlStreamOptions, | |
| SessionEventStreamOptions, | |
| SessionJournalChange, | |
| SessionRemote, | |
| } from './transport.ts' | |
| export { createScope, scopeOf } from './scope.ts' | |
| export type { AgentContext, AgentScopeHandle } from './scope.ts' | |
| export { SessionCreateError, SessionForkError } from './sessions/service.ts' | |
| export type { SessionBinding, SessionListState, SessionSummary } from './sessions/service.ts' | |
| export type { | |
| SessionListPhase, | |
| SessionListSnapshot, | |
| SessionSearchResultItem, | |
| SubagentCatalogSnapshot, | |
| } from './sessions/manager.ts' | |
| export type { Session } from './sessions/session.ts' | |
| export type { | |
| ProjectionsBaseline, | |
| ProjectionValueStore, | |
| SessionProjectionMap, | |
| UseProjection, | |
| } from './sessions/projection-store.ts' | |
| export type { | |
| BeginSubmissionInput, | |
| ISession, | |
| PendingSubmissionRetirement, | |
| ProjectionsFace, | |
| SessionFace, | |
| SubmissionHandle, | |
| } from './contract/session.ts' | |
| export type { ISessions } from './contract/sessions.ts' | |
| export { MutableSessionEventSource } from './contract/events.ts' | |
| export type { | |
| AssistantLiveChunkEvent, | |
| SessionAssistantSettlementEntry, | |
| SessionEventChange, | |
| SessionEventLike, | |
| SessionEventLikeEntry, | |
| SessionEventSource, | |
| SessionEventWindow, | |
| SessionLiveEventEntry, | |
| SessionTransientEventEntry, | |
| } from './contract/events.ts' | |
| export type { | |
| OpenState, | |
| PendingSubmission, | |
| PendingSubmissionAttachment, | |
| PendingSubmissionFileAttachment, | |
| PendingSubmissionImage, | |
| PendingSubmissionImageAttachment, | |
| PendingSubmissionPlacement, | |
| PromptError, | |
| QueuedMessage, | |
| SessionSnapshot, | |
| } from './contract/snapshot.ts' | |
| declare module '@deepseek-ai/cordis' { | |
| interface Context { | |
| /** Client Session object layer and Agent scope owner. */ | |
| sessions: import('./contract/sessions.ts').ISessions | |
| } | |
| } | |
| /** Required Remote and Context projection services. */ | |
| export const inject = [ | |
| 'connection', | |
| 'fileUpload', | |
| 'typert', | |
| 'remote', | |
| 'remote.commands', | |
| 'remote.session', | |
| 'remote.subagents', | |
| ] | |
| /** | |
| * Install Client Session state and its reconnecting control stream. | |
| * @param ctx - Client Cordis context. | |
| */ | |
| export function apply(ctx: Context): void { | |
| const remotes = ctx.remote as unknown as SessionRemotes | |
| const sessions = new ClientSessions(ctx, remotes) | |
| ctx.remote.$on('api-session/added', (summary) => { sessions.handleSessionAdded(summary) }) | |
| ctx.remote.$on('api-session/removed', (sessionId) => { sessions.handleSessionRemoved(sessionId) }) | |
| ctx.remote.$on('api-session/status', (sessionId, running) => { | |
| sessions.handleSessionStatus(sessionId, running) | |
| }) | |
| ctx.remote.$on('api-session/activity', (sessionId, updatedAt) => { | |
| sessions.handleSessionActivity(sessionId, updatedAt) | |
| }) | |
| ctx.remote.$on('api-session/error', (sessionId, message) => { | |
| sessions.handleSessionError(sessionId, message) | |
| }) | |
| const control = createSessionControlStream(remotes, { | |
| accept: (frame) => { sessions.handleControlFrame(frame) }, | |
| failed: (error) => { console.error('[session-controller] control stream failed:', error) }, | |
| }) | |
| control.start() | |
| ctx.on('connection/reset', () => { sessions.handleConnected() }) | |
| if (ctx.remote.$host.home !== undefined) sessions.handleConnected() | |
| ctx.typert.contexts.registerClient('agent', { | |
| identity: candidate => sessions.scopeOf(candidate), | |
| resolve: sessionId => sessions.resolveAgentScope(sessionId), | |
| }) | |
| ctx.effect(() => async () => { await control.dispose() }, 'session-controller.client.control') | |
| } | |