|
|
@@ -387,12 +387,6 @@ export const SERVICE_API: readonly ServiceApiEntry[] = [
|
|
|
description: 'Host-only download surfaces (GET, no wire envelope); absent from IApiClient.',
|
|
|
parameters: [],
|
|
|
},
|
|
|
- {
|
|
|
- signature: 'respond(message: ClientResponse): Promise<RpcReceipt>',
|
|
|
- description: 'Response entry for server requests; not a domain method.',
|
|
|
- parameters: [{ name: 'message', description: 'Client response carrying the server request\'s rpcId.' }],
|
|
|
- returns: 'Transport receipt for the response delivery.',
|
|
|
- },
|
|
|
],
|
|
|
},
|
|
|
{
|
|
|
@@ -1195,6 +1189,109 @@ export const SERVICE_API: readonly ServiceApiEntry[] = [
|
|
|
},
|
|
|
],
|
|
|
},
|
|
|
+ {
|
|
|
+ key: 'sessionController',
|
|
|
+ summary: 'Host service backing the generated `ctx.remote.session` namespace.',
|
|
|
+ description: 'Host service backing the generated `ctx.remote.session` namespace.',
|
|
|
+ methods: [
|
|
|
+ {
|
|
|
+ signature: 'resolveAgent(sessionId: SessionId): Promise<ApiSessionAgentResult>',
|
|
|
+ description: 'Resolve or resume one ordinary Session for another Host API domain.',
|
|
|
+ parameters: [{ name: 'sessionId', description: 'Session identity whose Agent owns the operation.' }],
|
|
|
+ returns: 'the live Agent or the stable Session-domain failure.',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ signature: 'inspect( sessionId: SessionId, signal?: AbortSignal, ): Promise<{ meta: SessionHeader; events: SessionEvent[] }>',
|
|
|
+ description: 'Inspect one attached or persisted Session without activating its Agent.',
|
|
|
+ parameters: [{ name: 'sessionId', description: 'durable Session identity.' }, { name: 'signal', description: 'optional caller cancellation for persistence reads.' }],
|
|
|
+ returns: 'the current attached state or persisted header and event prefix.',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ signature: '@Remote(\'list\') async list(_request: SessionListRequest, signal: AbortSignal): Promise<SessionListValue>',
|
|
|
+ description: 'Read all visible Session rows without resuming an Agent.',
|
|
|
+ parameters: [{ name: '_request', description: 'reserved empty list request.' }, { name: 'signal', description: 'cancellation for persistence reads.' }],
|
|
|
+ returns: 'visible Session summaries ordered by activity.',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ signature: '@Remote(\'search\') search(request: SessionSearchRequest, signal: AbortSignal): Promise<SessionSearchValue>',
|
|
|
+ description: 'Search visible Session content without resuming an Agent.',
|
|
|
+ parameters: [{ name: 'request', description: 'literal message-content query.' }, { name: 'signal', description: 'cancellation for list and search reads.' }],
|
|
|
+ returns: 'authorized bounded Session search results.',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ signature: '@Remote(\'create\') create(request: SessionCreateRequest): Promise<SessionCreateValue>',
|
|
|
+ description: 'Create or idempotently adopt one ordinary Session.',
|
|
|
+ parameters: [{ name: 'request', description: 'requested identity, location, and Agent preset.' }],
|
|
|
+ returns: 'the Session identity and resolved preset when configured.',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ signature: '@Remote(\'models\') models(request: SessionModelsRequest): Promise<SessionModels>',
|
|
|
+ description: 'Read model choices after explicitly resuming the addressed Session.',
|
|
|
+ parameters: [{ name: 'request', description: 'Session whose model state is requested.' }],
|
|
|
+ returns: 'the current selection and available model groups.',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ signature: '@Remote(\'selectModel\') selectModel(request: SessionSelectModelRequest): Promise<SessionSelectModelValue>',
|
|
|
+ description: 'Select one Session-local model after explicitly resuming the Session.',
|
|
|
+ parameters: [{ name: 'request', description: 'Session identity and requested model selection.' }],
|
|
|
+ returns: 'the normalized selection installed for the Session.',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ signature: '@Remote(\'rename\') rename(request: SessionRenameRequest): Promise<SessionRenameValue>',
|
|
|
+ description: 'Rename one Session after explicitly resuming it.',
|
|
|
+ parameters: [{ name: 'request', description: 'Session identity and proposed title.' }],
|
|
|
+ returns: 'the accepted title and durable event sequence.',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ signature: '@Remote(\'fork\') fork(request: SessionForkRequest): Promise<SessionForkValue>',
|
|
|
+ description: 'Fork one cold-readable completed-turn prefix into a new Session.',
|
|
|
+ parameters: [{ name: 'request', description: 'source Session and optional event anchor.' }],
|
|
|
+ returns: 'the new Session identity.',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ signature: '@Remote(\'prompt\') prompt(request: SessionPromptRequest, signal: AbortSignal): Promise<SessionPromptValue>',
|
|
|
+ description: 'Admit one prompt after explicitly resuming its Session.',
|
|
|
+ parameters: [{ name: 'request', description: 'Session identity, prompt content, source metadata, and delivery mode.' }, { name: 'signal', description: 'caller cancellation before prompt admission begins.' }],
|
|
|
+ returns: 'acknowledgement that the Agent accepted the prompt.',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ signature: '@Remote(\'attachment\') attachment(request: SessionAttachmentRequest): Promise<SessionAttachmentValue>',
|
|
|
+ description: 'Read one image proven reachable from the addressed Session log.',
|
|
|
+ parameters: [{ name: 'request', description: 'Session and attachment identities used for authorization.' }],
|
|
|
+ returns: 'the durable attachment reference and base64-encoded bytes.',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ signature: '@Remote(\'updateQueue\') updateQueue(request: SessionUpdateQueueRequest): SessionUpdateQueueValue',
|
|
|
+ description: 'Mutate one still-pending queue occurrence on a live Agent.',
|
|
|
+ parameters: [{ name: 'request', description: 'Session, queue item, and requested mutation.' }],
|
|
|
+ returns: 'acknowledgement that the queue mutation was applied.',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ signature: '@Remote(\'cancel\') cancel(request: SessionCancelRequest): SessionCancelValue',
|
|
|
+ description: 'Cancel one active Agent turn without dropping its pending inbox.',
|
|
|
+ parameters: [{ name: 'request', description: 'Session whose active Agent turn is cancelled.' }],
|
|
|
+ returns: 'acknowledgement that cancellation was requested.',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ signature: '@Remote(\'page\') page(request: SessionPageRequest, signal: AbortSignal): Promise<SessionPage>',
|
|
|
+ description: 'Read one cold-safe, message-aligned Session history page.',
|
|
|
+ parameters: [{ name: 'request', description: 'durable address, backward cursor, and page budget.' }, { name: 'signal', description: 'cancellation for persistence and presentation reads.' }],
|
|
|
+ returns: 'one chronological page and optional latest projections.',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ signature: '@Remote({ mode: \'stream\' }) follow(request: SessionFollowRequest, signal: AbortSignal): AsyncIterable<SessionFollowFrame>',
|
|
|
+ description: 'Follow one Session log from its opening or resume cursor.',
|
|
|
+ parameters: [{ name: 'request', description: 'durable address and last committed sequence already held by the caller.' }, { name: 'signal', description: 'cancellation owned by the Remote stream carrier.' }],
|
|
|
+ returns: 'an opened cursor followed by gap-free event frames.',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ signature: '@Remote({ mode: \'stream\' }) control(signal: AbortSignal): AsyncIterable<SessionControlFrame>',
|
|
|
+ description: 'Stream a complete live-control baseline followed by replacement frames.',
|
|
|
+ parameters: [{ name: 'signal', description: 'cancellation owned by the Remote stream carrier.' }],
|
|
|
+ returns: 'one complete baseline followed by live replacement frames.',
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
{
|
|
|
key: 'sessionPersistence',
|
|
|
summary: 'Durable append-only session storage.',
|
|
|
@@ -2214,6 +2311,17 @@ export const SERVICE_API: readonly ServiceApiEntry[] = [
|
|
|
summary: 'Resolve strict generated definitions or conservative SRC markers against current Cordis Services and Typert providers.',
|
|
|
description: 'Resolve strict generated definitions or conservative SRC markers against current Cordis Services and Typert providers.',
|
|
|
methods: [
|
|
|
+ {
|
|
|
+ signature: 'readonly wireStream: TypertGatewayWireStream = { open: (endpoint, payload, signal) => this.openWireStream(endpoint, payload, signal), failure: error => rpcError(error), }',
|
|
|
+ description: 'Carrier adapter shared by the WebSocket mux and local Host transports.',
|
|
|
+ parameters: [],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ signature: 'registerRemoteEvents(source: TypertRemoteEventSource): () => Promise<void>',
|
|
|
+ description: 'Register the sole application-selected forwarded-event source.',
|
|
|
+ parameters: [{ name: 'source', description: 'stream factory installed by the Remote assembly.' }],
|
|
|
+ returns: 'disposer removing this source and cancelling its active streams.',
|
|
|
+ },
|
|
|
{
|
|
|
signature: 'async invoke(request: InvokeRemoteRequest): Promise<unknown>',
|
|
|
description: 'Invoke one live Remote method through strict generated reflection or SRC markers.',
|
|
|
@@ -2221,6 +2329,12 @@ export const SERVICE_API: readonly ServiceApiEntry[] = [
|
|
|
returns: 'the validated business result.',
|
|
|
throws: ['{@link TypertGatewayError} for dispatch, provider, or boundary failures; lookup-policy and business errors retain identity.'],
|
|
|
},
|
|
|
+ {
|
|
|
+ signature: 'async stream(request: InvokeRemoteRequest): Promise<AsyncIterable<unknown>>',
|
|
|
+ description: 'Open one live stream Remote method without assuming a physical carrier.',
|
|
|
+ parameters: [{ name: 'request', description: 'decoded endpoint and named wire arguments.' }],
|
|
|
+ returns: 'an iterable whose items have passed the generated result codec.',
|
|
|
+ },
|
|
|
],
|
|
|
},
|
|
|
{
|
|
|
@@ -2239,7 +2353,7 @@ export const SERVICE_API: readonly ServiceApiEntry[] = [
|
|
|
description: 'Ask the active UI provider and wait for the user\'s answer.\n\nWhen a caller supplies an agent, human interaction is valid only for the exact live runtime root. Runtime ownership, not durable session lineage, decides this boundary: an owned child has no human answerer and would block forever, while a lineage-bearing session resumed as a new runtime root may ask normally.',
|
|
|
parameters: [{ name: 'request', description: 'Questions, owner agent, and abort signal.' }],
|
|
|
returns: 'The answer chosen or typed by the human.',
|
|
|
- throws: ['{UserQuestionError} code `CALLER_NOT_LIVE` when a supplied agent is not the registry\'s exact live instance, or `DELEGATED_CALLER` when that live agent is owned by another agent.'],
|
|
|
+ throws: ['{UserQuestionError} code `ASK_ABORTED` when the supplied signal is already or becomes aborted, `CALLER_NOT_LIVE` when a supplied agent is not the registry\'s exact live instance, or `DELEGATED_CALLER` when that live agent is owned by another agent.'],
|
|
|
},
|
|
|
],
|
|
|
},
|
|
|
@@ -2355,6 +2469,55 @@ export const SERVICE_API: readonly ServiceApiEntry[] = [
|
|
|
},
|
|
|
],
|
|
|
},
|
|
|
+ {
|
|
|
+ key: 'workspaceController',
|
|
|
+ summary: 'Host service backing the generated `ctx.remote.workspace` namespace.',
|
|
|
+ description: 'Host service backing the generated `ctx.remote.workspace` namespace.',
|
|
|
+ methods: [
|
|
|
+ {
|
|
|
+ signature: '@Remote(\'create\') create(request: WorkspaceCreateRequest): Promise<WorkspaceCreateValue>',
|
|
|
+ description: 'Create or idempotently resolve one Workspace over an existing directory.',
|
|
|
+ parameters: [{ name: 'request', description: 'directory path to register.' }],
|
|
|
+ returns: 'the Workspace and whether this call created it.',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ signature: '@Remote(\'rename\') rename(request: WorkspaceRenameRequest): Promise<WorkspaceValue>',
|
|
|
+ description: 'Rename one Workspace to a unique non-blank title.',
|
|
|
+ parameters: [{ name: 'request', description: 'Workspace identity and proposed title.' }],
|
|
|
+ returns: 'the updated Workspace projection.',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ signature: '@Remote(\'delete\') delete(request: WorkspaceDeleteRequest): Promise<WorkspaceDeleteValue>',
|
|
|
+ description: 'Remove one Workspace registration while retaining files and Sessions.',
|
|
|
+ parameters: [{ name: 'request', description: 'Workspace identity to remove.' }],
|
|
|
+ returns: 'deletion confirmation.',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ signature: '@Remote(\'insertBefore\') insertBefore(request: WorkspaceInsertBeforeRequest): Promise<WorkspaceOrderValue>',
|
|
|
+ description: 'Move one Workspace within the registry display order.',
|
|
|
+ parameters: [{ name: 'request', description: 'moved Workspace and optional anchor.' }],
|
|
|
+ returns: 'the complete resulting Workspace order.',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ signature: '@Remote(\'insertSessionBefore\') insertSessionBefore(request: WorkspaceInsertSessionBeforeRequest): Promise<WorkspaceValue>',
|
|
|
+ description: 'Move one accounted Session within a Workspace.',
|
|
|
+ parameters: [{ name: 'request', description: 'Workspace, Session, and optional anchor identities.' }],
|
|
|
+ returns: 'the updated Workspace projection.',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ signature: '@Remote(\'archiveSession\') archiveSession(request: WorkspaceArchiveSessionRequest): Promise<WorkspaceArchiveValue>',
|
|
|
+ description: 'Hide one known Session from Workspace grouping surfaces.',
|
|
|
+ parameters: [{ name: 'request', description: 'Session identity to archive.' }],
|
|
|
+ returns: 'the complete resulting archive set.',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ signature: '@Remote({ mode: \'stream\' }) follow(signal: AbortSignal): AsyncIterable<WorkspaceFollowFrame>',
|
|
|
+ description: 'Stream a complete Workspace baseline followed by ordered increments.',
|
|
|
+ parameters: [{ name: 'signal', description: 'generation cancellation.' }],
|
|
|
+ returns: 'baseline followed by ordered Workspace increments.',
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
{
|
|
|
key: 'workspaceRegistry',
|
|
|
summary: 'Durable workspace registry.',
|
|
|
@@ -2520,13 +2683,53 @@ export const EVENT_API: readonly EventApiEntry[] = [
|
|
|
description: 'The turn is about to close: the model owes no response (no live tool calls, no fresh steering). Awaited before the boundary commits — a listener that objects steers (`agent.steer(...)`) and the machine re-reads its inbox: fresh steering runs another step, none closes the turn. Data decides, so listener order cannot change the outcome. The inverse control (stop a tool loop early) is data too: a tool result carrying `concludesTurn` ends the turn at its step. The conclusion never short-circuits already-submitted next-step work: same-step `additionalContexts` or racing steering still runs, and the turn closes only when that inbox drains.',
|
|
|
parameters: [{ name: 'payload', description: '.signal - the current turn\'s explicit abort signal. Scope-filtered dispatch (`@deepseek-ai/dsh-scope`): agent-scoped listeners receive only that agent.' }],
|
|
|
},
|
|
|
+ {
|
|
|
+ name: 'api-session/activity',
|
|
|
+ mode: 'emit',
|
|
|
+ signature: '\'api-session/activity\'(sessionId: SessionId, updatedAt: number): void',
|
|
|
+ summary: 'One user-authored durable message advanced Session list activity.',
|
|
|
+ description: 'One user-authored durable message advanced Session list activity.',
|
|
|
+ parameters: [{ name: 'sessionId', description: 'addressed Session identity.' }, { name: 'updatedAt', description: 'durable message time used for list ordering.' }],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'api-session/added',
|
|
|
+ mode: 'emit',
|
|
|
+ signature: '\'api-session/added\'(summary: SessionSummary): void',
|
|
|
+ summary: 'A Session became visible to Session list consumers.',
|
|
|
+ description: 'A Session became visible to Session list consumers.',
|
|
|
+ parameters: [{ name: 'summary', description: 'initial list row for the Session.' }],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'api-session/error',
|
|
|
+ mode: 'emit',
|
|
|
+ signature: '\'api-session/error\'(sessionId: SessionId, message: string): void',
|
|
|
+ summary: 'One Agent failed outside a durable turn position.',
|
|
|
+ description: 'One Agent failed outside a durable turn position.',
|
|
|
+ parameters: [{ name: 'sessionId', description: 'Agent and Session identity.' }, { name: 'message', description: 'user-safe failure chain.' }],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'api-session/removed',
|
|
|
+ mode: 'emit',
|
|
|
+ signature: '\'api-session/removed\'(sessionId: SessionId): void',
|
|
|
+ summary: 'A Session left the live Host registry.',
|
|
|
+ description: 'A Session left the live Host registry.',
|
|
|
+ parameters: [{ name: 'sessionId', description: 'removed Session identity.' }],
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'api-session/status',
|
|
|
+ mode: 'emit',
|
|
|
+ signature: '\'api-session/status\'(sessionId: SessionId, running: boolean): void',
|
|
|
+ summary: 'One Agent changed running state.',
|
|
|
+ description: 'One Agent changed running state.',
|
|
|
+ parameters: [{ name: 'sessionId', description: 'Agent and Session identity.' }, { name: 'running', description: 'whether the Agent is running.' }],
|
|
|
+ },
|
|
|
{
|
|
|
name: 'approval/request',
|
|
|
mode: 'waterfall',
|
|
|
- signature: '\'approval/request\'(this: Scoped<ApprovalService>, req: ApprovalRequest, next: () => Promise<ApprovalOutcome>): Promise<ApprovalOutcome>',
|
|
|
+ signature: '\'approval/request\'( this: Scoped<Agent>, req: ApprovalRequestEvent, next: () => Promise<ApprovalOutcome>, ): Promise<ApprovalOutcome>',
|
|
|
summary: 'Ask composed answerers for one decision.',
|
|
|
- description: 'Ask composed answerers for one decision. Return an outcome to claim the request or call `next()`; failure yields the fail-closed default. Scope-filtered dispatch (`@deepseek-ai/dsh-scope`): agent-scoped listeners receive only that agent.',
|
|
|
- parameters: [{ name: 'req', description: 'the pending decision (agent, tool identity, reason, signal).' }],
|
|
|
+ description: 'Ask composed answerers for one decision. Return an outcome to claim the request or call `next()` to delegate. Scope-filtered dispatch (`@deepseek-ai/dsh-scope`): agent-scoped listeners receive only that agent.',
|
|
|
+ parameters: [{ name: 'req', description: 'pending approval request.' }],
|
|
|
},
|
|
|
{
|
|
|
name: 'authorization/settled',
|
|
|
@@ -2824,6 +3027,14 @@ export const EVENT_API: readonly EventApiEntry[] = [
|
|
|
description: 'Observe the frozen, lossless-JSON final outcome. Listener failures are contained. Scope-filtered dispatch (`@deepseek-ai/dsh-scope`): keyed by `exec.agent`.',
|
|
|
parameters: [{ name: 'exec', description: 'the execution object that traversed the pipeline.' }, { name: 'result', description: 'a deep-frozen snapshot of the final returned result.' }],
|
|
|
},
|
|
|
+ {
|
|
|
+ name: 'user-questions/request',
|
|
|
+ mode: 'waterfall',
|
|
|
+ signature: '\'user-questions/request\'( this: Scoped<Agent>, request: AskUserQuestionRequestEvent, next: () => Promise<AskUserQuestionAnswer>, ): Promise<AskUserQuestionAnswer>',
|
|
|
+ summary: 'Ask composed answerers for structured user input.',
|
|
|
+ description: 'Ask composed answerers for structured user input. Return an answer to claim the request or call `next()` to delegate. Scope-filtered dispatch (`@deepseek-ai/dsh-scope`): agent-scoped listeners receive only that agent.',
|
|
|
+ parameters: [{ name: 'request', description: 'pending user-question request.' }],
|
|
|
+ },
|
|
|
{
|
|
|
name: 'webserver/index-inject',
|
|
|
mode: 'emit',
|
|
|
@@ -2890,7 +3101,7 @@ export const TYPE_API: readonly TypeApiEntry[] = [
|
|
|
},
|
|
|
{
|
|
|
name: 'Agent',
|
|
|
- declaration: 'export interface Agent {\n readonly id: SessionId;\n readonly options: AgentOptions;\n readonly session: Session;\n readonly inbox: Inbox;\n readonly status: AgentStatus;\n readonly ctx: Context;\n cancel(cause: AgentCancelCause, options?: CancelOptions): void;\n whenIdle(): Promise<void>;\n runMaintenance<T>(task: (signal: AbortSignal) => Promise<T>): Promise<T>;\n send(message: UserMessage, target: InboxTarget, wakeup: boolean): void;\n followup(message: UserMessage): void;\n steer(message: UserMessage): void;\n inject(message: UserMessage): void;\n}',
|
|
|
+ declaration: 'export interface Agent {\n readonly id: SessionId;\n}',
|
|
|
},
|
|
|
{
|
|
|
name: 'AgentCancelCause',
|
|
|
@@ -2928,6 +3139,14 @@ export const TYPE_API: readonly TypeApiEntry[] = [
|
|
|
name: 'ApiKeyRecord',
|
|
|
declaration: 'export interface ApiKeyRecord {\n readonly kind: \'api-key\';\n readonly key?: string;\n readonly env?: Readonly<Record<string, string>>;\n}',
|
|
|
},
|
|
|
+ {
|
|
|
+ name: 'ApiSessionAgentError',
|
|
|
+ declaration: 'export type ApiSessionAgentError = Extract<SessionError, {\n readonly code: \'session-not-found\' | \'agent-busy\' | \'internal\';\n}>;',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'ApiSessionAgentResult',
|
|
|
+ declaration: 'export type ApiSessionAgentResult = {\n readonly agent: Agent;\n} | {\n readonly error: ApiSessionAgentError;\n};',
|
|
|
+ },
|
|
|
{
|
|
|
name: 'ApprovalOutcome',
|
|
|
declaration: 'export type ApprovalOutcome = \'allowed-once\' | \'rejected\' | \'cancelled\' | \'unavailable\';',
|
|
|
@@ -2938,11 +3157,11 @@ export const TYPE_API: readonly TypeApiEntry[] = [
|
|
|
},
|
|
|
{
|
|
|
name: 'ApprovalRequest',
|
|
|
- declaration: 'export interface ApprovalRequest {\n readonly agent: Agent;\n readonly toolName: string;\n readonly callId?: CallId;\n readonly reason?: string;\n readonly signal?: AbortSignal;\n}',
|
|
|
+ declaration: 'export interface ApprovalRequest extends ApprovalRequestEvent {\n readonly agent: Agent;\n readonly toolName: string;\n readonly callId?: CallId;\n readonly reason?: string;\n readonly signal?: AbortSignal;\n}',
|
|
|
},
|
|
|
{
|
|
|
- name: 'ApprovalService',
|
|
|
- declaration: 'export class ApprovalService extends Service {\n static Config: z<Config>;\n constructor(ctx: Context, public config: Config);\n setPolicy(agent: Agent, policy: ApprovalPolicy): void;\n async request(req: ApprovalRequest): Promise<ApprovalOutcome>;\n overrideOf(session: Session): ApprovalPolicy | undefined;\n}',
|
|
|
+ name: 'ApprovalRequestEvent',
|
|
|
+ declaration: 'export interface ApprovalRequestEvent {\n readonly agent: Agent;\n readonly toolName: string;\n readonly callId?: CallId;\n readonly reason?: string;\n readonly signal?: AbortSignal;\n}',
|
|
|
},
|
|
|
{
|
|
|
name: 'AskUserQuestionAnswer',
|
|
|
@@ -2968,6 +3187,10 @@ export const TYPE_API: readonly TypeApiEntry[] = [
|
|
|
name: 'AskUserQuestionRequest',
|
|
|
declaration: 'export interface AskUserQuestionRequest {\n questions: AskUserQuestionItem[];\n agent?: Agent;\n signal?: AbortSignal;\n}',
|
|
|
},
|
|
|
+ {
|
|
|
+ name: 'AskUserQuestionRequestEvent',
|
|
|
+ declaration: 'export interface AskUserQuestionRequestEvent {\n questions: AskUserQuestionItem[];\n agent: Agent;\n signal?: AbortSignal;\n}',
|
|
|
+ },
|
|
|
{
|
|
|
name: 'AssembleContext',
|
|
|
declaration: 'export interface AssembleContext {\n scope?: ScopeKey;\n signal?: AbortSignal;\n}',
|
|
|
@@ -3060,14 +3283,6 @@ export const TYPE_API: readonly TypeApiEntry[] = [
|
|
|
name: 'Branded',
|
|
|
declaration: 'export type Branded<B extends string> = string & {\n readonly [BRAND]: B;\n};',
|
|
|
},
|
|
|
- {
|
|
|
- name: 'CancelOptions',
|
|
|
- declaration: 'export interface CancelOptions {\n keepInbox?: boolean | undefined;\n}',
|
|
|
- },
|
|
|
- {
|
|
|
- name: 'ClientResponse',
|
|
|
- declaration: 'export interface ClientResponse {\n type: \'client-response\';\n rpcId: RpcId;\n result: RpcResult<unknown>;\n}',
|
|
|
- },
|
|
|
{
|
|
|
name: 'CodeBindingErrorClass',
|
|
|
declaration: 'export interface CodeBindingErrorClass {\n name: string;\n memberNameProperty: string;\n}',
|
|
|
@@ -3528,18 +3743,6 @@ export const TYPE_API: readonly TypeApiEntry[] = [
|
|
|
name: 'ImageVariantId',
|
|
|
declaration: 'export type ImageVariantId = Branded<\'ImageVariantId\'>;',
|
|
|
},
|
|
|
- {
|
|
|
- name: 'Inbox',
|
|
|
- declaration: 'export class Inbox {\n constructor(private readonly session: Session, private readonly notifications: InboxNotifications);\n get nextTurn(): readonly UserMessage[];\n get nextStep(): readonly UserMessage[];\n get hasPending(): boolean;\n clear(): void;\n claim(target: InboxTarget, turn: number): UserMessage[];\n append(target: InboxTarget, message: UserMessage): void;\n prepend(target: InboxTarget, message: UserMessage): void;\n replace(messageId: MessageId, newMessage: UserMessage): boolean;\n remove(messageId: MessageId): boolean;\n splice(target: InboxTarget, start: number, deleteCount: number, inserted: UserMessage[]): UserMessage[];\n}',
|
|
|
- },
|
|
|
- {
|
|
|
- name: 'InboxNotifications',
|
|
|
- declaration: 'export interface InboxNotifications {\n inserted(message: UserMessage): void;\n discarded(message: UserMessage): void;\n claimed(message: UserMessage, turn: number): void;\n}',
|
|
|
- },
|
|
|
- {
|
|
|
- name: 'InboxTarget',
|
|
|
- declaration: 'export type InboxTarget = \'next-turn\' | \'next-step\';',
|
|
|
- },
|
|
|
{
|
|
|
name: 'IndexInjection',
|
|
|
declaration: 'export type IndexInjection = {\n kind: \'global\';\n name: string;\n value: unknown;\n} | {\n kind: \'script\';\n placement: IndexInjectionPlacement;\n text: string;\n} | {\n kind: \'script-src\';\n placement: IndexInjectionPlacement;\n src: string;\n} | {\n kind: \'style\';\n text: string;\n} | {\n kind: \'html\';\n placement: IndexInjectionPlacement;\n html: string;\n};',
|
|
|
@@ -3558,7 +3761,7 @@ export const TYPE_API: readonly TypeApiEntry[] = [
|
|
|
},
|
|
|
{
|
|
|
name: 'InvocationDescriptor',
|
|
|
- declaration: 'export interface InvocationDescriptor {\n readonly id: string;\n readonly service: string;\n readonly namespace: string;\n readonly method: string;\n readonly implementation?: string;\n readonly invocation: {\n readonly kind: \'direct\';\n } | {\n readonly kind: \'context\';\n readonly context: string;\n readonly wire: string;\n readonly codec: TypertCodec;\n };\n readonly scope?: {\n readonly context: string;\n readonly wire: string;\n };\n readonly parameters: readonly InvocationParameterDescriptor[];\n readonly cancellation?: {\n readonly parameter: \'signal\';\n };\n readonly result: TypertCodec;\n readonly sourceLocation?: InvocationSourceLocation;\n}',
|
|
|
+ declaration: 'export interface InvocationDescriptor {\n readonly id: string;\n readonly service: string;\n readonly namespace: string;\n readonly method: string;\n readonly implementation?: string;\n readonly mode?: \'stream\';\n readonly invocation: {\n readonly kind: \'direct\';\n } | {\n readonly kind: \'context\';\n readonly context: string;\n readonly wire: string;\n readonly codec: TypertCodec;\n };\n readonly scope?: {\n readonly context: string;\n readonly wire: string;\n };\n readonly parameters: readonly InvocationParameterDescriptor[];\n readonly cancellation?: {\n readonly parameter: \'signal\';\n };\n readonly result: TypertCodec;\n readonly sourceLocation?: InvocationSourceLocation;\n}',
|
|
|
},
|
|
|
{
|
|
|
name: 'InvocationParameterDescriptor',
|
|
|
@@ -3844,6 +4047,14 @@ export const TYPE_API: readonly TypeApiEntry[] = [
|
|
|
name: 'MessageSourceMap',
|
|
|
declaration: 'export interface MessageSourceMap {\n user: {\n kind: \'user\';\n };\n plugin: {\n kind: \'plugin\';\n plugin: string;\n } & ContextFormed;\n model: ModelMessageSource;\n tool: ToolMessageSource;\n}',
|
|
|
},
|
|
|
+ {
|
|
|
+ name: 'ModelCatalogFailure',
|
|
|
+ declaration: 'export interface ModelCatalogFailure {\n readonly id: string;\n readonly name: string;\n readonly message: string;\n}',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'ModelCatalogModel',
|
|
|
+ declaration: 'export interface ModelCatalogModel {\n readonly id: string;\n readonly name: string;\n readonly description?: string;\n readonly reasoning?: ModelReasoning;\n}',
|
|
|
+ },
|
|
|
{
|
|
|
name: 'ModelMessageSource',
|
|
|
declaration: 'export interface ModelMessageSource extends AssistantProvenance {\n kind: \'model\';\n}',
|
|
|
@@ -3856,6 +4067,18 @@ export const TYPE_API: readonly TypeApiEntry[] = [
|
|
|
name: 'ModelModalityMap',
|
|
|
declaration: 'export interface ModelModalityMap {\n text: \'text\';\n image: \'image\';\n}',
|
|
|
},
|
|
|
+ {
|
|
|
+ name: 'ModelProviderGroup',
|
|
|
+ declaration: 'export interface ModelProviderGroup {\n readonly id: string;\n readonly name: string;\n readonly models: readonly ModelCatalogModel[];\n}',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'ModelReasoning',
|
|
|
+ declaration: 'export interface ModelReasoning {\n readonly efforts: readonly ModelReasoningEffort[];\n readonly defaultEffort?: string;\n}',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'ModelReasoningEffort',
|
|
|
+ declaration: 'export interface ModelReasoningEffort {\n readonly id: string;\n readonly name: string;\n readonly description?: string;\n}',
|
|
|
+ },
|
|
|
{
|
|
|
name: 'ObjectJsonSchema',
|
|
|
declaration: 'export type ObjectJsonSchema = JsonSchemaNode & {\n type: \'object\';\n};',
|
|
|
@@ -3940,6 +4163,10 @@ export const TYPE_API: readonly TypeApiEntry[] = [
|
|
|
name: 'PromptAssembly',
|
|
|
declaration: 'export interface PromptAssembly {\n sections: AssembledSection[];\n contexts: AssembledContext[];\n tools: ToolSchema[];\n variables: Record<string, string | undefined>;\n}',
|
|
|
},
|
|
|
+ {
|
|
|
+ name: 'PromptContentPart',
|
|
|
+ declaration: 'export type PromptContentPart = {\n readonly type: \'text\';\n readonly text: string;\n} | {\n readonly type: \'image\';\n readonly mediaType: ImageMediaType;\n readonly data: string;\n readonly name?: string;\n};',
|
|
|
+ },
|
|
|
{
|
|
|
name: 'PromptContext',
|
|
|
declaration: 'export interface PromptContext {\n readonly name: string;\n readonly order: number;\n readonly text: string | ((context: AssembleContext) => string);\n}',
|
|
|
@@ -4046,16 +4273,12 @@ export const TYPE_API: readonly TypeApiEntry[] = [
|
|
|
},
|
|
|
{
|
|
|
name: 'RpcErrorDetailsMap',
|
|
|
- declaration: 'export interface RpcErrorDetailsMap {\n \'bad-request\': {\n issues: ZodIssue[];\n };\n \'cancelled\': {};\n \'session-not-found\': {\n sessionId: SessionId;\n };\n \'model-unavailable\': {\n provider: string;\n model: string;\n };\n \'session-conflict\': {\n sessionId: SessionId;\n requestedCwd: string;\n existingCwd?: string;\n };\n \'invalid-time-zone\': {\n value: string;\n };\n \'workspace-attach-failed\': {\n sessionId: SessionId;\n workspaceId: string;\n };\n \'workspace-not-found\': {\n workspaceId: string;\n };\n \'workspace-invalid-path\': {\n path: string;\n };\n \'workspace-name-conflict\': {\n name: string;\n };\n \'workspace-move-invalid\': {\n workspaceId: string;\n sessionId: SessionId;\n beforeSessionId?: SessionId;\n };\n \'directory-unreadable\': {\n path: string;\n };\n \'directory-exists\': {\n path: string;\n };\n \'directory-create-failed\': {\n path: string;\n };\n \'directory-picker-unavailable\': {\n capability: string;\n };\n \'agent-preset-read-only\': {\n agentPreset: string;\n reason: string;\n };\n \'agent-preset-locked\': {\n sessionId: SessionId;\n agentPreset: string;\n };\n \'agent-preset-conflict\': {\n sessionId: SessionId;\n requestedPreset: string;\n existingPreset?: string;\n };\n \'agent-preset-not-found\': {\n agentPreset: string;\n /* …truncated — full shape in source */',
|
|
|
+ declaration: 'export interface RpcErrorDetailsMap {\n \'bad-request\': {\n issues: ZodIssue[];\n };\n \'cancelled\': {};\n \'session-not-found\': {\n sessionId: SessionId;\n };\n \'invalid-time-zone\': {\n value: string;\n };\n \'directory-unreadable\': {\n path: string;\n };\n \'directory-exists\': {\n path: string;\n };\n \'directory-create-failed\': {\n path: string;\n };\n \'directory-picker-unavailable\': {\n capability: string;\n };\n \'agent-preset-read-only\': {\n agentPreset: string;\n reason: string;\n };\n \'agent-preset-locked\': {\n sessionId: SessionId;\n agentPreset: string;\n };\n \'agent-preset-not-found\': {\n agentPreset: string;\n available: readonly string[];\n };\n \'agent-preset-invalid\': {\n agentPreset: string;\n reason: string;\n };\n \'agent-busy\': {\n reason: string;\n };\n \'settings-rejected\': {\n ns: string;\n };\n \'settings-conflict\': {\n ns: string;\n expected: number;\n actual: number;\n };\n \'credential-rejected\': {\n ref: string;\n };\n \'model-discovery-failed\': {\n settingsNs: string;\n baseURL?: string;\n };\n \'subagent-parent-unavailable\': {\n parentSessionId: SessionId;\n };\n \'subagent-not-found\': {\n parentSessionId: SessionId;\n childSessionId: SessionId;\n };\n \'subagent-catalog-diagnostic\': {\n parentSessionId: SessionId;\n childS /* …truncated — full shape in source */',
|
|
|
},
|
|
|
{
|
|
|
name: 'RpcId',
|
|
|
declaration: 'export type RpcId = Branded<\'rpc-id\'>;',
|
|
|
},
|
|
|
- {
|
|
|
- name: 'RpcReceipt',
|
|
|
- declaration: 'export type RpcReceipt = {\n accepted: true;\n} | {\n accepted: false;\n reason: \'not-pending\' | \'bad-response\';\n};',
|
|
|
- },
|
|
|
{
|
|
|
name: 'RpcResult',
|
|
|
declaration: 'export type RpcResult<T> = {\n ok: true;\n value: T;\n} | {\n ok: false;\n error: RpcError;\n};',
|
|
|
@@ -4140,14 +4363,62 @@ export const TYPE_API: readonly TypeApiEntry[] = [
|
|
|
name: 'ServerResponse',
|
|
|
declaration: 'export interface ServerResponse {\n type: \'server-response\';\n rpcId: RpcId;\n result: RpcResult<unknown>;\n}',
|
|
|
},
|
|
|
+ {
|
|
|
+ name: 'SessionAddress',
|
|
|
+ declaration: 'export type SessionAddress = {\n readonly kind: \'session\';\n readonly sessionId: SessionId;\n} | {\n readonly kind: \'subagent\';\n readonly parentSessionId: SessionId;\n readonly childSessionId: SessionId;\n readonly mode: \'one-shot\' | \'continuable\';\n};',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'SessionAttachmentRequest',
|
|
|
+ declaration: 'export interface SessionAttachmentRequest {\n readonly sessionId: SessionId;\n readonly attachmentId: AttachmentIdType;\n}',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'SessionAttachmentValue',
|
|
|
+ declaration: 'export interface SessionAttachmentValue {\n readonly attachment: ImageAttachmentRef;\n readonly data: string;\n}',
|
|
|
+ },
|
|
|
{
|
|
|
name: 'SessionAvailability',
|
|
|
declaration: 'export type SessionAvailability = \'live\' | \'persisted\';',
|
|
|
},
|
|
|
+ {
|
|
|
+ name: 'SessionCancelRequest',
|
|
|
+ declaration: 'export interface SessionCancelRequest {\n readonly sessionId: SessionId;\n}',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'SessionCancelValue',
|
|
|
+ declaration: 'export interface SessionCancelValue {\n readonly accepted: true;\n}',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'SessionControlBaseline',
|
|
|
+ declaration: 'export interface SessionControlBaseline {\n readonly queues: Readonly<Record<SessionId, readonly SessionQueuedItem[]>>;\n readonly jobs: Readonly<Record<SessionId, readonly SessionJob[]>>;\n readonly projections: Readonly<Record<SessionId, SessionProjectionsBlock>>;\n}',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'SessionControlFrame',
|
|
|
+ declaration: 'export type SessionControlFrame = {\n readonly type: \'baseline\';\n readonly value: SessionControlBaseline;\n} | {\n readonly type: \'queue\';\n readonly sessionId: SessionId;\n readonly items: readonly SessionQueuedItem[];\n} | {\n readonly type: \'jobs\';\n readonly sessionId: SessionId;\n readonly jobs: readonly SessionJob[];\n} | ({\n readonly type: \'projection\';\n} & SessionProjectionUpdate);',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'SessionCreateRequest',
|
|
|
+ declaration: 'export interface SessionCreateRequest {\n readonly workspaceId?: WorkspaceId;\n readonly cwd?: string;\n readonly sessionId?: SessionId;\n readonly agentPreset?: string;\n}',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'SessionCreateValue',
|
|
|
+ declaration: 'export interface SessionCreateValue {\n readonly sessionId: SessionId;\n readonly agentPreset?: string;\n}',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'SessionError',
|
|
|
+ declaration: 'export type SessionError = {\n [Code in keyof SessionErrorDetailsMap]: {\n readonly code: Code;\n readonly message: string;\n readonly details: SessionErrorDetailsMap[Code];\n };\n}[keyof SessionErrorDetailsMap];',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'SessionErrorDetailsMap',
|
|
|
+ declaration: 'export interface SessionErrorDetailsMap {\n \'bad-request\': Record<never, never>;\n cancelled: Record<never, never>;\n \'session-not-found\': {\n readonly sessionId: SessionId;\n };\n \'model-unavailable\': {\n readonly provider: string;\n readonly model: string;\n };\n \'session-conflict\': {\n readonly sessionId: SessionId;\n readonly requestedCwd: string;\n readonly existingCwd?: string;\n };\n \'invalid-time-zone\': {\n readonly value: string;\n };\n \'workspace-attach-failed\': {\n readonly sessionId: SessionId;\n readonly workspaceId: string;\n };\n \'workspace-not-found\': {\n readonly workspaceId: string;\n };\n \'agent-preset-conflict\': {\n readonly sessionId: SessionId;\n readonly requestedPreset: string;\n readonly existingPreset?: string;\n };\n \'agent-preset-not-found\': {\n readonly agentPreset: string;\n readonly available: readonly string[];\n };\n \'agent-preset-invalid\': {\n readonly agentPreset: string;\n readonly reason: string;\n };\n \'agent-busy\': {\n readonly reason: string;\n };\n \'attachment-error\': {\n readonly reason: string;\n };\n \'queue-item-not-found\': {\n readonly itemId: MessageId;\n };\n \'steer-unavailable\': {\n readonly itemId: MessageId;\n };\n \'title-invalid\': {\n readonly sessionId: SessionId;\n };\n \'fork-unavailable\': {\n readonly sessionId: SessionId;\n /* …truncated — full shape in source */',
|
|
|
+ },
|
|
|
{
|
|
|
name: 'SessionEvent',
|
|
|
declaration: 'export type SessionEvent<T extends SessionEventType = SessionEventType> = {\n [K in SessionEventType]: {\n type: K;\n seq: number;\n time: number;\n data: SessionEventMap[K];\n ignorable?: true;\n } & (K extends SurfaceEventType ? {\n sourceEventSeqs?: number[];\n surfaceOp?: SurfaceOp;\n } : object);\n}[T];',
|
|
|
},
|
|
|
+ {
|
|
|
+ name: 'SessionEventEntry',
|
|
|
+ declaration: 'export interface SessionEventEntry {\n readonly event: SessionWireEvent;\n readonly view?: SessionToolView;\n}',
|
|
|
+ },
|
|
|
{
|
|
|
name: 'SessionEventMap',
|
|
|
declaration: 'export interface SessionEventMap {\n \'turn/start\': {\n turn: number;\n };\n \'turn/end\': {\n turn: number;\n reason: TurnEndReason;\n };\n \'step/start\': {\n turn: number;\n step: number;\n };\n \'step/end\': {\n turn: number;\n step: number;\n };\n \'user/message\': UserMessage;\n \'assistant/chunk\': {\n turn: number;\n step: number;\n chunk: StreamChunk;\n };\n \'assistant/message\': {\n turn: number;\n step: number;\n message: AssistantMessage;\n usage?: TokenUsage;\n interrupted?: true;\n };\n \'tool/call\': {\n turn: number;\n step: number;\n callId: CallId;\n name: string;\n arguments: string;\n };\n \'tool/result\': {\n turn: number;\n step: number;\n message: ToolResultMessage;\n error?: {\n name: string;\n code: string;\n };\n meta?: JsonValue;\n };\n \'request/header\': {\n header: EpochHeader;\n reason: RequestHeaderReason;\n };\n \'request/context\': RequestContext;\n \'session/end-seed\': Record<string, never>;\n}',
|
|
|
@@ -4208,10 +4479,26 @@ export const TYPE_API: readonly TypeApiEntry[] = [
|
|
|
name: 'SessionEventWindow',
|
|
|
declaration: 'export interface SessionEventWindow {\n session: SessionHeader;\n target: SessionEvent;\n events: SessionEvent[];\n startSeq: number;\n endSeq: number;\n}',
|
|
|
},
|
|
|
+ {
|
|
|
+ name: 'SessionFollowFrame',
|
|
|
+ declaration: 'export type SessionFollowFrame = {\n readonly type: \'opened\';\n readonly cursor: number;\n} | ({\n readonly type: \'event\';\n} & SessionEventEntry);',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'SessionFollowRequest',
|
|
|
+ declaration: 'export interface SessionFollowRequest {\n readonly address: SessionAddress;\n readonly afterSeq?: number;\n}',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'SessionForkRequest',
|
|
|
+ declaration: 'export interface SessionForkRequest {\n readonly sessionId: SessionId;\n readonly atSeq?: number;\n}',
|
|
|
+ },
|
|
|
{
|
|
|
name: 'SessionForkSource',
|
|
|
declaration: 'export type SessionForkSource = Session | SessionId;',
|
|
|
},
|
|
|
+ {
|
|
|
+ name: 'SessionForkValue',
|
|
|
+ declaration: 'export interface SessionForkValue {\n readonly sessionId: SessionId;\n}',
|
|
|
+ },
|
|
|
{
|
|
|
name: 'SessionHeader',
|
|
|
declaration: 'export interface SessionHeader {\n readonly version: number;\n readonly id: SessionId;\n readonly createdAt: number;\n readonly cwd?: string;\n readonly parentSession?: SessionId;\n readonly seedLength?: number;\n readonly origin?: \'subagent\';\n readonly delegationDepth?: number;\n readonly agentPreset?: string;\n}',
|
|
|
@@ -4224,6 +4511,10 @@ export const TYPE_API: readonly TypeApiEntry[] = [
|
|
|
name: 'SessionInspection',
|
|
|
declaration: 'export interface SessionInspection {\n readonly meta: SessionHeader;\n readonly events: readonly SessionEvent[];\n}',
|
|
|
},
|
|
|
+ {
|
|
|
+ name: 'SessionJob',
|
|
|
+ declaration: 'export interface SessionJob {\n readonly id: JobId;\n readonly kind: string;\n readonly label: string;\n readonly status: \'running\' | \'stopping\' | \'completed\' | \'killed\' | \'failed\';\n readonly detail?: string;\n readonly startedAt: number;\n readonly finishedAt?: number;\n}',
|
|
|
+ },
|
|
|
{
|
|
|
name: 'SessionLineageNode',
|
|
|
declaration: 'export interface SessionLineageNode {\n session: SessionRecord;\n descendants: SessionLineageNode[];\n}',
|
|
|
@@ -4232,6 +4523,14 @@ export const TYPE_API: readonly TypeApiEntry[] = [
|
|
|
name: 'SessionLineageTrace',
|
|
|
declaration: 'export type SessionLineageTrace = {\n target: SessionRecord;\n ancestors: SessionRecord[];\n descendants: SessionLineageNode[];\n} & ({\n complete: true;\n root: SessionRecord;\n} | {\n complete: false;\n unresolvedParentId: SessionId;\n});',
|
|
|
},
|
|
|
+ {
|
|
|
+ name: 'SessionListRequest',
|
|
|
+ declaration: 'export interface SessionListRequest {\n readonly cursor?: string;\n}',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'SessionListValue',
|
|
|
+ declaration: 'export interface SessionListValue {\n readonly items: readonly SessionSummary[];\n}',
|
|
|
+ },
|
|
|
{
|
|
|
name: 'SessionLocation',
|
|
|
declaration: 'export interface SessionLocation {\n readonly kind: string;\n readonly path: string;\n}',
|
|
|
@@ -4240,6 +4539,22 @@ export const TYPE_API: readonly TypeApiEntry[] = [
|
|
|
name: 'SessionLogSnapshot',
|
|
|
declaration: 'export interface SessionLogSnapshot {\n session: SessionHeader;\n events: SessionEvent[];\n}',
|
|
|
},
|
|
|
+ {
|
|
|
+ name: 'SessionModels',
|
|
|
+ declaration: 'export interface SessionModels {\n readonly current: ModelSelection;\n readonly routable: boolean;\n readonly groups: readonly ModelProviderGroup[];\n readonly failures: readonly ModelCatalogFailure[];\n}',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'SessionModelsRequest',
|
|
|
+ declaration: 'export interface SessionModelsRequest {\n readonly sessionId: SessionId;\n}',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'SessionPage',
|
|
|
+ declaration: 'export interface SessionPage {\n readonly events: readonly SessionEventEntry[];\n readonly hasMore: boolean;\n readonly projections?: SessionProjectionsBlock;\n}',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'SessionPageRequest',
|
|
|
+ declaration: 'export interface SessionPageRequest {\n readonly address: SessionAddress;\n readonly throughSeq: number;\n readonly beforeSeq?: number;\n readonly maxMessages?: number;\n}',
|
|
|
+ },
|
|
|
{
|
|
|
name: 'SessionPersistenceRevision',
|
|
|
declaration: 'export type SessionPersistenceRevision = Branded<\'SessionPersistenceRevision\'>;',
|
|
|
@@ -4260,10 +4575,38 @@ export const TYPE_API: readonly TypeApiEntry[] = [
|
|
|
name: 'SessionProjectionMap',
|
|
|
declaration: 'export interface SessionProjectionMap {\n}',
|
|
|
},
|
|
|
+ {
|
|
|
+ name: 'SessionProjectionsBlock',
|
|
|
+ declaration: 'export interface SessionProjectionsBlock {\n readonly asOfSeq: number;\n readonly values: SessionProjectionValues;\n}',
|
|
|
+ },
|
|
|
{
|
|
|
name: 'SessionProjectionStateMap',
|
|
|
declaration: 'export interface SessionProjectionStateMap {\n}',
|
|
|
},
|
|
|
+ {
|
|
|
+ name: 'SessionProjectionUpdate',
|
|
|
+ declaration: 'export interface SessionProjectionUpdate {\n readonly sessionId: SessionId;\n readonly key: string;\n readonly value: JsonValue;\n readonly seq: number;\n}',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'SessionProjectionValue',
|
|
|
+ declaration: 'export type SessionProjectionValue = JsonValue;',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'SessionProjectionValues',
|
|
|
+ declaration: 'export type SessionProjectionValues = Partial<SessionProjectionMap> & Readonly<Record<string, SessionProjectionValue>>;',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'SessionPromptRequest',
|
|
|
+ declaration: 'export interface SessionPromptRequest {\n readonly requestId: SessionRequestId;\n readonly sessionId: SessionId;\n readonly mode: \'queue\' | \'steer\';\n readonly content: readonly PromptContentPart[];\n readonly clientTimeZone?: string;\n}',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'SessionPromptValue',
|
|
|
+ declaration: 'export interface SessionPromptValue {\n readonly accepted: true;\n}',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'SessionQueuedItem',
|
|
|
+ declaration: 'export interface SessionQueuedItem {\n readonly id: MessageId;\n readonly placement: \'queued\' | \'steering\' | \'context\';\n readonly message: {\n readonly id: MessageId;\n readonly content: readonly JsonValue[];\n };\n}',
|
|
|
+ },
|
|
|
{
|
|
|
name: 'SessionRawArtifact',
|
|
|
declaration: 'export interface SessionRawArtifact {\n readonly meta: SessionHeader;\n readonly filename: string;\n readonly content: string;\n}',
|
|
|
@@ -4284,6 +4627,18 @@ export const TYPE_API: readonly TypeApiEntry[] = [
|
|
|
name: 'SessionReferenceMentionCandidate',
|
|
|
declaration: 'export interface SessionReferenceMentionCandidate extends SessionReferenceCandidate {\n mention: string;\n}',
|
|
|
},
|
|
|
+ {
|
|
|
+ name: 'SessionRenameRequest',
|
|
|
+ declaration: 'export interface SessionRenameRequest {\n readonly sessionId: SessionId;\n readonly title: string;\n}',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'SessionRenameValue',
|
|
|
+ declaration: 'export interface SessionRenameValue {\n readonly title: string;\n readonly seq: number;\n}',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'SessionRequestId',
|
|
|
+ declaration: 'export type SessionRequestId = Branded<\'session-request-id\'>;',
|
|
|
+ },
|
|
|
{
|
|
|
name: 'SessionResultFilter',
|
|
|
declaration: 'export type SessionResultFilter = {\n kind: \'id\';\n values: readonly SessionId[];\n} | {\n kind: \'cwd\';\n values: readonly (string | null)[];\n} | ({\n kind: \'created-at\';\n} & SessionResultRange) | {\n kind: \'parent\';\n values: readonly (SessionId | null)[];\n} | {\n kind: \'availability\';\n values: readonly SessionAvailability[];\n};',
|
|
|
@@ -4304,13 +4659,25 @@ export const TYPE_API: readonly TypeApiEntry[] = [
|
|
|
name: 'SessionSearchHit',
|
|
|
declaration: 'export interface SessionSearchHit extends SessionRecord {\n bestMatch: SessionEventSearchHit;\n}',
|
|
|
},
|
|
|
+ {
|
|
|
+ name: 'SessionSearchItem',
|
|
|
+ declaration: 'export interface SessionSearchItem {\n readonly sessionId: SessionId;\n readonly snippet: string;\n}',
|
|
|
+ },
|
|
|
{
|
|
|
name: 'SessionSearchPage',
|
|
|
declaration: 'export interface SessionSearchPage<T> {\n items: readonly T[];\n nextCursor?: SessionSearchCursor;\n}',
|
|
|
},
|
|
|
{
|
|
|
- name: 'SessionSearchRequest',
|
|
|
- declaration: 'export interface SessionSearchRequest {\n query: string;\n sessionFilters?: readonly SessionResultFilter[];\n eventFilters?: readonly SessionEventMetadataFilter[];\n limit?: number;\n cursor?: SessionSearchCursor;\n}',
|
|
|
+ name: 'SessionSearchValue',
|
|
|
+ declaration: 'export interface SessionSearchValue {\n readonly items: readonly SessionSearchItem[];\n readonly hasMore: boolean;\n}',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'SessionSelectModelRequest',
|
|
|
+ declaration: 'export interface SessionSelectModelRequest extends ModelSelection {\n readonly sessionId: SessionId;\n}',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'SessionSelectModelValue',
|
|
|
+ declaration: 'export interface SessionSelectModelValue {\n readonly selected: ModelSelection;\n}',
|
|
|
},
|
|
|
{
|
|
|
name: 'SessionStartSource',
|
|
|
@@ -4380,6 +4747,26 @@ export const TYPE_API: readonly TypeApiEntry[] = [
|
|
|
name: 'SessionTitleUserMessage',
|
|
|
declaration: 'export interface SessionTitleUserMessage {\n readonly seq: number;\n readonly text: string;\n}',
|
|
|
},
|
|
|
+ {
|
|
|
+ name: 'SessionToolCallView',
|
|
|
+ declaration: 'export type SessionToolCallView = (Omit<GenericCallView, \'rawInput\'> & {\n readonly rawInput?: JsonValue;\n}) | TerminalCallView | DiffCallView;',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'SessionToolView',
|
|
|
+ declaration: 'export type SessionToolView = {\n readonly for: \'call\';\n readonly view: SessionToolCallView;\n} | {\n readonly for: \'result\';\n readonly view: ToolResultView;\n};',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'SessionUpdateQueueRequest',
|
|
|
+ declaration: 'export interface SessionUpdateQueueRequest {\n readonly sessionId: SessionId;\n readonly itemId: MessageId;\n readonly action: QueueAction;\n}',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'SessionUpdateQueueValue',
|
|
|
+ declaration: 'export interface SessionUpdateQueueValue {\n readonly accepted: true;\n}',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'SessionWireEvent',
|
|
|
+ declaration: 'export interface SessionWireEvent {\n readonly type: string;\n readonly seq: number;\n readonly time: number;\n readonly data: JsonValue;\n readonly ignorable?: true;\n readonly sourceEventSeqs?: number[];\n readonly surfaceOp?: SurfaceOp;\n}',
|
|
|
+ },
|
|
|
{
|
|
|
name: 'SettingsApplies',
|
|
|
declaration: 'export type SettingsApplies = \'live\' | \'restart\';',
|
|
|
@@ -4952,6 +5339,10 @@ export const TYPE_API: readonly TypeApiEntry[] = [
|
|
|
name: 'TypertEventModel',
|
|
|
declaration: 'export interface TypertEventModel extends TypertDocumentation {\n readonly name: string;\n readonly mode?: string;\n readonly signature: string;\n}',
|
|
|
},
|
|
|
+ {
|
|
|
+ name: 'TypertGatewayWireStream',
|
|
|
+ declaration: 'export interface TypertGatewayWireStream {\n readonly open: (endpoint: string, payload: unknown, signal: AbortSignal) => Promise<AsyncIterable<unknown>>;\n readonly failure: (error: unknown) => {\n readonly code: string;\n readonly message: string;\n readonly details: object;\n };\n}',
|
|
|
+ },
|
|
|
{
|
|
|
name: 'TypertMemberModel',
|
|
|
declaration: 'export interface TypertMemberModel {\n readonly kind: \'property\' | \'method\' | \'getter\' | \'setter\' | \'call\' | \'construct\' | \'index\';\n readonly name: string;\n readonly signature: string;\n readonly summary?: string;\n readonly jsDoc?: string;\n}',
|
|
|
@@ -4972,6 +5363,30 @@ export const TYPE_API: readonly TypeApiEntry[] = [
|
|
|
name: 'TypertPackageRecord',
|
|
|
declaration: 'export interface TypertPackageRecord {\n readonly package: string;\n readonly face: TypertFace;\n readonly key: string;\n readonly model: TypertPackageModel;\n}',
|
|
|
},
|
|
|
+ {
|
|
|
+ name: 'TypertRemoteEventContext',
|
|
|
+ declaration: 'export interface TypertRemoteEventContext {\n readonly value: Context;\n readonly subject: object;\n}',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'TypertRemoteEventDispatch',
|
|
|
+ declaration: 'export type TypertRemoteEventDispatch = TypertRemoteEventFrame | TypertRemoteEventInvocation;',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'TypertRemoteEventFrame',
|
|
|
+ declaration: 'export interface TypertRemoteEventFrame {\n readonly event: string;\n readonly args: readonly unknown[];\n}',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'TypertRemoteEventInvocation',
|
|
|
+ declaration: 'export interface TypertRemoteEventInvocation {\n readonly event: string;\n readonly request: object;\n readonly context: TypertRemoteEventContext;\n readonly resolve: (outcome: TypertRemoteEventOutcome) => void;\n readonly reject: (reason: unknown) => void;\n}',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'TypertRemoteEventOutcome',
|
|
|
+ declaration: 'export type TypertRemoteEventOutcome = {\n readonly kind: \'result\';\n readonly value: unknown;\n} | {\n readonly kind: \'next\';\n};',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'TypertRemoteEventSource',
|
|
|
+ declaration: 'export type TypertRemoteEventSource = (signal: AbortSignal) => AsyncIterable<TypertRemoteEventDispatch>;',
|
|
|
+ },
|
|
|
{
|
|
|
name: 'TypertSchemaFilter',
|
|
|
declaration: 'export interface TypertSchemaFilter {\n readonly package?: string;\n readonly face?: TypertFace;\n}',
|
|
|
@@ -5152,6 +5567,70 @@ export const TYPE_API: readonly TypeApiEntry[] = [
|
|
|
name: 'WorkflowStopReason',
|
|
|
declaration: 'export type WorkflowStopReason = \'completed\' | \'cancelled\' | \'error\';',
|
|
|
},
|
|
|
+ {
|
|
|
+ name: 'Workspace',
|
|
|
+ declaration: 'export interface Workspace {\n readonly id: WorkspaceId;\n readonly path: string;\n readonly title: string;\n readonly createdAt: string;\n readonly updatedAt: string;\n readonly sessionIds: readonly SessionId[];\n setTitle(title: string): Promise<void>;\n attachSession(sessionId: SessionId): Promise<void>;\n insertSessionBefore(sessionId: SessionId, beforeSessionId?: SessionId): Promise<void>;\n detachSession(sessionId: SessionId): Promise<void>;\n status(): Promise<\'ok\' | \'missing-dir\'>;\n}',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'WorkspaceArchiveSessionRequest',
|
|
|
+ declaration: 'export interface WorkspaceArchiveSessionRequest {\n readonly sessionId: SessionId;\n}',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'WorkspaceArchiveValue',
|
|
|
+ declaration: 'export interface WorkspaceArchiveValue {\n readonly archivedSessionIds: readonly SessionId[];\n}',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'WorkspaceBaseline',
|
|
|
+ declaration: 'export interface WorkspaceBaseline {\n readonly items: readonly WorkspaceView[];\n readonly archivedSessionIds: readonly SessionId[];\n}',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'WorkspaceCreateRequest',
|
|
|
+ declaration: 'export interface WorkspaceCreateRequest {\n readonly path: string;\n}',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'WorkspaceCreateValue',
|
|
|
+ declaration: 'export interface WorkspaceCreateValue {\n readonly workspace: WorkspaceView;\n readonly created: boolean;\n}',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'WorkspaceDeleteRequest',
|
|
|
+ declaration: 'export interface WorkspaceDeleteRequest {\n readonly workspaceId: WorkspaceId;\n}',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'WorkspaceDeleteValue',
|
|
|
+ declaration: 'export interface WorkspaceDeleteValue {\n readonly deleted: true;\n}',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'WorkspaceFollowFrame',
|
|
|
+ declaration: 'export type WorkspaceFollowFrame = {\n readonly type: \'baseline\';\n readonly value: WorkspaceBaseline;\n} | WorkspaceFollowIncrement;',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'WorkspaceFollowIncrement',
|
|
|
+ declaration: 'export type WorkspaceFollowIncrement = {\n readonly type: \'upsert\';\n readonly workspace: WorkspaceView;\n} | {\n readonly type: \'remove\';\n readonly workspaceId: WorkspaceId;\n} | {\n readonly type: \'order\';\n readonly workspaceIds: readonly WorkspaceId[];\n} | {\n readonly type: \'archived\';\n readonly archivedSessionIds: readonly SessionId[];\n};',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'WorkspaceInsertBeforeRequest',
|
|
|
+ declaration: 'export interface WorkspaceInsertBeforeRequest {\n readonly workspaceId: WorkspaceId;\n readonly beforeWorkspaceId?: WorkspaceId;\n}',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'WorkspaceInsertSessionBeforeRequest',
|
|
|
+ declaration: 'export interface WorkspaceInsertSessionBeforeRequest {\n readonly workspaceId: WorkspaceId;\n readonly sessionId: SessionId;\n readonly beforeSessionId?: SessionId;\n}',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'WorkspaceOrderValue',
|
|
|
+ declaration: 'export interface WorkspaceOrderValue {\n readonly workspaceIds: readonly WorkspaceId[];\n}',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'WorkspaceRenameRequest',
|
|
|
+ declaration: 'export interface WorkspaceRenameRequest {\n readonly workspaceId: WorkspaceId;\n readonly title: string;\n}',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'WorkspaceValue',
|
|
|
+ declaration: 'export interface WorkspaceValue {\n readonly workspace: WorkspaceView;\n}',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'WorkspaceView',
|
|
|
+ declaration: 'export interface WorkspaceView {\n readonly workspaceId: WorkspaceId;\n readonly path: string;\n readonly title: string;\n readonly sessionIds: readonly SessionId[];\n readonly createdAt: string;\n readonly updatedAt: string;\n}',
|
|
|
+ },
|
|
|
]
|
|
|
|
|
|
/** The inherited `ctx` API (cordis core + loader/hmr/timer), in curated order. */
|