IntelligenceX

API Reference

Class

AppServerClient

Namespace IntelligenceX.OpenAI.AppServer
Assembly IntelligenceX
Implements
IDisposable
Modifiers sealed

Low-level client for the OpenAI app-server JSON-RPC protocol.

Inheritance

  • Object
  • AppServerClient

Usage

This type appears in these public API surfaces even when no hand-authored example is attached directly to the page.

Methods

public Task ArchiveThreadAsync(String threadId, CancellationToken cancellationToken = null) #
Returns: Task

Archives a thread by id.

Parameters

threadId System.String requiredposition: 0
Thread id.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Cancellation token.

Returns

A task that completes when the operation finishes.

public Task<JsonValue> CallAsync(String method, JsonObject parameters, CancellationToken cancellationToken = null) #
Returns: Task<JsonValue>

Executes a raw JSON-RPC call.

Parameters

method System.String requiredposition: 0
Method name.
parameters IntelligenceX.Json.JsonObject requiredposition: 1
Optional parameters.
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
Cancellation token.

Returns

A task that resolves to JsonValue?.

public virtual Void Dispose() #
Returns: Void

Disposes the app-server client and underlying process.

public async Task<CommandExecResult> ExecuteCommandAsync(CommandExecRequest request, CancellationToken cancellationToken = null) #
Returns: Task<CommandExecResult>

Executes a command through the app-server.

Parameters

request IntelligenceX.OpenAI.AppServer.Models.CommandExecRequest requiredposition: 0
Command execution request.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Cancellation token.

Returns

A task that resolves to CommandExecResult.

public async Task<ThreadInfo> ForkThreadAsync(String threadId, CancellationToken cancellationToken = null) #
Returns: Task<ThreadInfo>

Forks a thread by id.

Parameters

threadId System.String requiredposition: 0
Thread id.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Cancellation token.

Returns

A task that resolves to ThreadInfo.

public async Task<HealthCheckResult> HealthCheckAsync(String method = null, Nullable<TimeSpan> timeout = null, CancellationToken cancellationToken = null) #
Returns: Task<HealthCheckResult>

Executes a health check call.

Parameters

method System.String = null optionalposition: 0
Optional method override.
timeout System.Nullable{System.TimeSpan} = null optionalposition: 1
Optional timeout.
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
Cancellation token.

Returns

A task that resolves to HealthCheckResult.

public async Task InitializeAsync(ClientInfo clientInfo, CancellationToken cancellationToken = null) #
Returns: Task

Initializes the app-server with client metadata.

Parameters

clientInfo IntelligenceX.OpenAI.AppServer.ClientInfo requiredposition: 0
Client identity information.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Cancellation token.

Returns

A task that completes when the operation finishes.

public Task InterruptTurnAsync(String threadId, String turnId, CancellationToken cancellationToken = null) #
Returns: Task

Interrupts an in-flight turn.

Parameters

threadId System.String requiredposition: 0
Thread id.
turnId System.String requiredposition: 1
Turn id.
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
Cancellation token.

Returns

A task that completes when the operation finishes.

public async Task<CollaborationModeListResult> ListCollaborationModesAsync(CancellationToken cancellationToken = null) #
Returns: Task<CollaborationModeListResult>

Lists available collaboration modes.

Parameters

cancellationToken System.Threading.CancellationToken = null optionalposition: 0
Cancellation token.

Returns

A task that resolves to CollaborationModeListResult.

public async Task<ThreadIdListResult> ListLoadedThreadsAsync(CancellationToken cancellationToken = null) #
Returns: Task<ThreadIdListResult>

Lists currently loaded thread ids.

Parameters

cancellationToken System.Threading.CancellationToken = null optionalposition: 0
Cancellation token.

Returns

A task that resolves to ThreadIdListResult.

public async Task<McpServerStatusListResult> ListMcpServerStatusAsync(String cursor = null, Nullable<Int32> limit = null, CancellationToken cancellationToken = null) #
Returns: Task<McpServerStatusListResult>

Lists MCP server status entries, including auth and capability metadata.

Parameters

cursor System.String = null optionalposition: 0
Optional pagination cursor from a previous result.
limit System.Nullable{System.Int32} = null optionalposition: 1
Optional maximum number of items to return in this page.
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
Cancellation token.

Returns

A McpServerStatusListResult with the current page and optional NextCursor.

Examples


var firstPage = await client.ListMcpServerStatusAsync(limit: 25, cancellationToken: cancellationToken);
foreach (var server in firstPage.Servers) {
    Console.WriteLine($"{server.Name}: {server.AuthStatus}");
}
            
public async Task<ModelListResult> ListModelsAsync(CancellationToken cancellationToken = null) #
Returns: Task<ModelListResult>

Lists available models.

Parameters

cancellationToken System.Threading.CancellationToken = null optionalposition: 0
Cancellation token.

Returns

A task that resolves to ModelListResult.

public async Task<SkillListResult> ListSkillsAsync(IReadOnlyList<String> cwds = null, Nullable<Boolean> forceReload = null, CancellationToken cancellationToken = null) #
Returns: Task<SkillListResult>

Lists available skills.

Parameters

cwds System.Collections.Generic.IReadOnlyList{System.String} = null optionalposition: 0
Optional working directories to query.
forceReload System.Nullable{System.Boolean} = null optionalposition: 1
Whether to force reload.
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
Cancellation token.

Returns

A task that resolves to SkillListResult.

public async Task<ThreadListResult> ListThreadsAsync(String cursor = null, Nullable<Int32> limit = null, String sortKey = null, IReadOnlyList<String> modelProviders = null, CancellationToken cancellationToken = null) #
Returns: Task<ThreadListResult>

Lists threads with optional filters.

Parameters

cursor System.String = null optionalposition: 0
Pagination cursor.
limit System.Nullable{System.Int32} = null optionalposition: 1
Maximum number of items.
sortKey System.String = null optionalposition: 2
Sort key.
modelProviders System.Collections.Generic.IReadOnlyList{System.String} = null optionalposition: 3
Optional model provider filter.
cancellationToken System.Threading.CancellationToken = null optionalposition: 4
Cancellation token.

Returns

A task that resolves to ThreadListResult.

public Task LoginWithApiKeyAsync(String apiKey, CancellationToken cancellationToken = null) #
Returns: Task

Logs in using an API key.

Parameters

apiKey System.String requiredposition: 0
API key.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Cancellation token.

Returns

A task that completes when the operation finishes.

public Task LogoutAsync(CancellationToken cancellationToken = null) #
Returns: Task

Logs out of the current session.

Parameters

cancellationToken System.Threading.CancellationToken = null optionalposition: 0
Cancellation token.

Returns

A task that completes when the operation finishes.

public Task NotifyAsync(String method, JsonObject parameters, CancellationToken cancellationToken = null) #
Returns: Task

Sends a JSON-RPC notification.

Parameters

method System.String requiredposition: 0
Method name.
parameters IntelligenceX.Json.JsonObject requiredposition: 1
Optional parameters.
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
Cancellation token.

Returns

A task that completes when the operation finishes.

public async Task<AccountInfo> ReadAccountAsync(CancellationToken cancellationToken = null) #
Returns: Task<AccountInfo>

Reads account information.

Parameters

cancellationToken System.Threading.CancellationToken = null optionalposition: 0
Cancellation token.

Returns

A task that resolves to AccountInfo.

public async Task<ConfigReadResult> ReadConfigAsync(CancellationToken cancellationToken = null) #
Returns: Task<ConfigReadResult>

Reads the effective app-server configuration and layer metadata.

Parameters

cancellationToken System.Threading.CancellationToken = null optionalposition: 0
Cancellation token.

Returns

A ConfigReadResult containing merged configuration values, source metadata, and layer details.

Examples


var config = await client.ReadConfigAsync(cancellationToken);
var model = config.Config.GetString("model");
            
public async Task<ConfigRequirementsReadResult> ReadConfigRequirementsAsync(CancellationToken cancellationToken = null) #
Returns: Task<ConfigRequirementsReadResult>

Reads server-side constraints for configuration values.

Parameters

cancellationToken System.Threading.CancellationToken = null optionalposition: 0
Cancellation token.

Returns

A ConfigRequirementsReadResult describing allowed values such as approval policies and sandbox modes.

Examples


var requirements = await client.ReadConfigRequirementsAsync(cancellationToken);
var allowedPolicies = requirements.Requirements?.AllowedApprovalPolicies;
            
public async Task ReloadMcpServerConfigAsync(CancellationToken cancellationToken = null) #
Returns: Task

Reloads MCP server configuration in the running app-server.

Parameters

cancellationToken System.Threading.CancellationToken = null optionalposition: 0
Cancellation token.

Returns

A task that completes when the reload request is accepted.

Examples


await client.ReloadMcpServerConfigAsync(cancellationToken);
var status = await client.ListMcpServerStatusAsync(cancellationToken: cancellationToken);
            
public async Task<UserInputResponse> RequestUserInputAsync(IReadOnlyList<String> questions, CancellationToken cancellationToken = null) #
Returns: Task<UserInputResponse>

Requests user input responses.

Parameters

questions System.Collections.Generic.IReadOnlyList{System.String} requiredposition: 0
Questions to prompt.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Cancellation token.

Returns

A task that resolves to UserInputResponse.

public async Task<ThreadInfo> ResumeThreadAsync(String threadId, CancellationToken cancellationToken = null) #
Returns: Task<ThreadInfo>

Resumes a thread by id.

Parameters

threadId System.String requiredposition: 0
Thread id.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Cancellation token.

Returns

A task that resolves to ThreadInfo.

public async Task<ThreadInfo> RollbackThreadAsync(String threadId, Int32 turns, CancellationToken cancellationToken = null) #
Returns: Task<ThreadInfo>

Rolls back a thread by a number of turns.

Parameters

threadId System.String requiredposition: 0
Thread id.
turns System.Int32 requiredposition: 1
Number of turns to roll back.
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
Cancellation token.

Returns

A task that resolves to ThreadInfo.

public static async Task<AppServerClient> StartAsync(AppServerOptions options = null, CancellationToken cancellationToken = null) #
Returns: Task<AppServerClient>

Starts the app-server process and returns a connected client.

Parameters

options IntelligenceX.OpenAI.AppServer.AppServerOptions = null optionalposition: 0
Optional app-server options.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Cancellation token.

Returns

A task that resolves to AppServerClient.

public async Task<ChatGptLoginStart> StartChatGptLoginAsync(CancellationToken cancellationToken = null) #
Returns: Task<ChatGptLoginStart>

Starts a ChatGPT login flow.

Parameters

cancellationToken System.Threading.CancellationToken = null optionalposition: 0
Cancellation token.

Returns

A task that resolves to ChatGptLoginStart.

public async Task<McpOauthLoginStart> StartMcpOauthLoginAsync(String serverId, String serverName = null, CancellationToken cancellationToken = null) #
Returns: Task<McpOauthLoginStart>

Starts an MCP OAuth login flow for a configured server.

Parameters

serverId System.String requiredposition: 0
Optional MCP server identifier.
serverName System.String = null optionalposition: 1
Optional MCP server name.
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
Cancellation token.

Returns

A McpOauthLoginStart containing LoginId and browser AuthUrl.

Examples


var login = await client.StartMcpOauthLoginAsync(serverName: "github", cancellationToken: cancellationToken);
Console.WriteLine(login.AuthUrl);
            
public async Task<ReviewStartResult> StartReviewAsync(String threadId, String delivery, ReviewTarget target, CancellationToken cancellationToken = null) #
Returns: Task<ReviewStartResult>

Starts a review for a thread.

Parameters

threadId System.String requiredposition: 0
Thread id.
delivery System.String requiredposition: 1
Delivery channel.
target IntelligenceX.OpenAI.AppServer.Models.ReviewTarget requiredposition: 2
Review target.
cancellationToken System.Threading.CancellationToken = null optionalposition: 3
Cancellation token.

Returns

A task that resolves to ReviewStartResult.

public async Task<ThreadInfo> StartThreadAsync(String model, String currentDirectory = null, String approvalPolicy = null, String sandbox = null, CancellationToken cancellationToken = null) #
Returns: Task<ThreadInfo>

Starts a new chat thread.

Parameters

model System.String requiredposition: 0
Model name.
currentDirectory System.String = null optionalposition: 1
Optional working directory.
approvalPolicy System.String = null optionalposition: 2
Optional approval policy.
sandbox System.String = null optionalposition: 3
Optional sandbox mode.
cancellationToken System.Threading.CancellationToken = null optionalposition: 4
Cancellation token.

Returns

A task that resolves to ThreadInfo.

StartTurnAsync 3 overloads
public async Task<TurnInfo> StartTurnAsync(String threadId, String text, CancellationToken cancellationToken = null) #
Returns: Task<TurnInfo>

Starts a turn with a text-only input.

Parameters

threadId System.String requiredposition: 0
Thread id.
text System.String requiredposition: 1
Prompt text.
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
Cancellation token.

Returns

A task that resolves to TurnInfo.

public async Task<TurnInfo> StartTurnAsync(String threadId, String text, String model, String currentDirectory, String approvalPolicy, SandboxPolicy sandboxPolicy, CancellationToken cancellationToken = null) #
Returns: Task<TurnInfo>

Starts a turn with a text-only input and optional overrides.

Parameters

threadId System.String requiredposition: 0
Thread id.
text System.String requiredposition: 1
Prompt text.
model System.String requiredposition: 2
Optional model override.
currentDirectory System.String requiredposition: 3
Optional working directory.
approvalPolicy System.String requiredposition: 4
Optional approval policy.
sandboxPolicy IntelligenceX.OpenAI.AppServer.SandboxPolicy requiredposition: 5
Optional sandbox policy.
cancellationToken System.Threading.CancellationToken = null optionalposition: 6
Cancellation token.

Returns

A task that resolves to TurnInfo.

public async Task<TurnInfo> StartTurnAsync(String threadId, JsonArray input, String model, String currentDirectory, String approvalPolicy, SandboxPolicy sandboxPolicy, CancellationToken cancellationToken = null) #
Returns: Task<TurnInfo>

Starts a turn with a structured input payload.

Parameters

threadId System.String requiredposition: 0
Thread id.
input IntelligenceX.Json.JsonArray requiredposition: 1
Input items.
model System.String requiredposition: 2
Optional model override.
currentDirectory System.String requiredposition: 3
Optional working directory.
approvalPolicy System.String requiredposition: 4
Optional approval policy.
sandboxPolicy IntelligenceX.OpenAI.AppServer.SandboxPolicy requiredposition: 5
Optional sandbox policy.
cancellationToken System.Threading.CancellationToken = null optionalposition: 6
Cancellation token.

Returns

A task that resolves to TurnInfo.

public Task UploadFeedbackAsync(String content, CancellationToken cancellationToken = null) #
Returns: Task

Uploads feedback content.

Parameters

content System.String requiredposition: 0
Feedback content.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Cancellation token.

Returns

A task that completes when the operation finishes.

public Task WaitForLoginCompletionAsync(String loginId = null, CancellationToken cancellationToken = null) #
Returns: Task

Waits for a login completion notification.

Parameters

loginId System.String = null optionalposition: 0
Optional login id to match.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Cancellation token.

Returns

A task that completes when the operation finishes.

public Task WriteConfigBatchAsync(IReadOnlyList<ConfigEntry> entries, CancellationToken cancellationToken = null) #
Returns: Task

Writes multiple app-server configuration values in a single request.

Parameters

entries System.Collections.Generic.IReadOnlyList{IntelligenceX.OpenAI.AppServer.Models.ConfigEntry} requiredposition: 0
Configuration entries to write as a batch.
cancellationToken System.Threading.CancellationToken = null optionalposition: 1
Cancellation token.

Returns

A task that completes when the batch write request is accepted.

Examples


var entries = new[] {
    new ConfigEntry("model", JsonConversion.ToJsonValue("gpt-5.4")),
    new ConfigEntry("approvalPolicy", JsonConversion.ToJsonValue("on-failure"))
};
await client.WriteConfigBatchAsync(entries, cancellationToken);
            
public Task WriteConfigValueAsync(String key, JsonValue value, CancellationToken cancellationToken = null) #
Returns: Task

Writes a single app-server configuration value.

Parameters

key System.String requiredposition: 0
Configuration key to write (for example model).
value IntelligenceX.Json.JsonValue requiredposition: 1
Configuration value encoded as JSON.
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
Cancellation token.

Returns

A task that completes when the write request is accepted.

Examples


await client.WriteConfigValueAsync("model", JsonConversion.ToJsonValue("gpt-5.4"), cancellationToken);
            
public Task WriteSkillConfigAsync(String path, Boolean enabled, CancellationToken cancellationToken = null) #
Returns: Task

Writes a skill configuration entry.

Parameters

path System.String requiredposition: 0
Skill path.
enabled System.Boolean requiredposition: 1
Whether the skill is enabled.
cancellationToken System.Threading.CancellationToken = null optionalposition: 2
Cancellation token.

Returns

A task that completes when the operation finishes.

Events

public event EventHandler<JsonRpcNotificationEventArgs> NotificationReceived #

Raised when a JSON-RPC notification is received.

public event EventHandler<JsonRpcRequestEventArgs> RequestReceived #

Raised when an inbound request is received.

public event EventHandler<Exception> ProtocolError #

Raised when a protocol parsing error occurs.

public event EventHandler<String> StandardErrorReceived #

Raised when a line is received on standard error.

public event EventHandler<String> ProtocolLineReceived #

Raised when a protocol line is received.

public event EventHandler<RpcCallStartedEventArgs> RpcCallStarted #

Raised when an RPC call starts.

public event EventHandler<RpcCallCompletedEventArgs> RpcCallCompleted #

Raised when an RPC call completes.

public event EventHandler<LoginEventArgs> LoginStarted #

Raised when a login flow starts.

public event EventHandler<LoginEventArgs> LoginCompleted #

Raised when a login flow completes.