@@ -24,7 +24,8 @@ export const DAEMON_CONTROL_MESSAGE_KINDS: readonly [
2424' error' ,
2525' setRawMode' ,
2626' rawModeChanged' ,
27- ' terminalPolicy'
27+ ' terminalPolicy' ,
28+ ' queuePosition'
2829];
2930
3031// @beta
@@ -52,11 +53,14 @@ export const DAEMON_INTERACTIVE_IO_PROTOCOL_MINOR: number;
5253// @beta
5354export const DAEMON_PROTOCOL_VERSION: IDaemonProtocolVersion ;
5455
56+ // @beta
57+ export const DAEMON_REQUEST_ADMISSION_PROTOCOL_MINOR: number ;
58+
5559// @beta
5660export type DaemonCommandOutcome = ' success' | ' success-with-warning' | ' failure' | ' aborted' ;
5761
5862// @beta
59- export type DaemonControlMessage = IDaemonHelloMessage | IDaemonHelloAckMessage | IDaemonSubscribeMessage | IDaemonUnsubscribeMessage | IDaemonPingMessage | IDaemonPongMessage | IDaemonErrorMessage | IDaemonSetRawModeMessage | IDaemonRawModeChangedMessage | IDaemonTerminalPolicyMessage ;
63+ export type DaemonControlMessage = IDaemonHelloMessage | IDaemonHelloAckMessage | IDaemonSubscribeMessage | IDaemonUnsubscribeMessage | IDaemonPingMessage | IDaemonPongMessage | IDaemonErrorMessage | IDaemonSetRawModeMessage | IDaemonRawModeChangedMessage | IDaemonTerminalPolicyMessage | IDaemonRequestQueuePositionMessage ;
6064
6165// @beta
6266export type DaemonControlMessageKind = (typeof DAEMON_CONTROL_MESSAGE_KINDS )[number ];
@@ -121,6 +125,12 @@ export class DaemonProtocolError extends Error {
121125// @beta
122126export type DaemonProtocolErrorCode = ' frameTooLarge' | ' unknownFrameType' | ' malformedPayload' | ' malformedControlMessage' | ' protocolVersionMismatch' ;
123127
128+ // @beta
129+ export type DaemonRequestAdmissionErrorCode = ' aborted' | ' no-wait' | ' wait-timeout' ;
130+
131+ // @beta
132+ export type DaemonRushCommandOrigin = ' built-in' | ' custom' ;
133+
124134// @beta
125135export type DaemonTerminalPolicyDecision = ' runInDaemon' | ' requiresInProcess' ;
126136
@@ -181,12 +191,14 @@ export interface IDaemonClientCaps {
181191 readonly columns? : number ;
182192 readonly isTTY: boolean ;
183193 readonly supportsInteractiveIO? : boolean ;
194+ readonly supportsRequestAdmission? : boolean ;
184195 readonly verbosity? : DaemonVerbosity ;
185196}
186197
187198// @beta
188199export interface IDaemonCommandResult {
189200 readonly aborted: boolean ;
201+ readonly admissionErrorCode? : DaemonRequestAdmissionErrorCode ;
190202 readonly errorMessage? : string ;
191203 readonly exitCode: number ;
192204 readonly outcome: DaemonCommandOutcome ;
@@ -337,7 +349,9 @@ export interface IDaemonPhasedOperationSelection {
337349// @beta
338350export interface IDaemonPhasedRequest {
339351 readonly acceptsStdin? : boolean ;
352+ readonly admission? : IDaemonRequestAdmissionOptions ;
340353 readonly commandName: string ;
354+ readonly commandOrigin? : DaemonRushCommandOrigin ;
341355 readonly engineShape: IDaemonPhasedEngineShape ;
342356 readonly environment: Readonly <Record <string , string >>;
343357 readonly operationSelection: ReadonlyArray <IDaemonPhasedOperationSelection >;
@@ -394,6 +408,23 @@ export interface IDaemonRawModeChangedMessage {
394408 };
395409}
396410
411+ // @beta
412+ export interface IDaemonRequestAdmissionOptions {
413+ readonly noWait? : boolean ;
414+ readonly waitTimeoutMs? : number ;
415+ }
416+
417+ // @beta
418+ export interface IDaemonRequestQueuePositionMessage {
419+ // (undocumented)
420+ readonly kind: ' queuePosition' ;
421+ // (undocumented)
422+ readonly payload: {
423+ readonly position: number ;
424+ readonly requestId: string ;
425+ };
426+ }
427+
397428// @beta
398429export interface IDaemonSetRawModeMessage {
399430 // (undocumented)
@@ -478,6 +509,9 @@ export const LENGTH_FIELD_BYTES: number;
478509// @beta
479510export const LENGTH_FIELD_OFFSET: number ;
480511
512+ // @beta
513+ export const MAX_DAEMON_REQUEST_WAIT_TIMEOUT_MS: number ;
514+
481515// @beta
482516export const MAX_OPERATION_ID_BYTES: number ;
483517
@@ -536,4 +570,7 @@ export function validateDaemonControlMessage(value: unknown): void;
536570// @beta
537571export function validateDaemonEventEnvelope(value : unknown ): IDaemonEventEnvelope ;
538572
573+ // @beta
574+ export function validateDaemonRequestAdmissionOptions(options : IDaemonRequestAdmissionOptions | undefined ): void ;
575+
539576```
0 commit comments