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

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, JsonArray input, 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.

StartTurnAsync(System.String threadId, IntelligenceX.Json.JsonArray input, System.String model, System.String currentDirectory, System.String approvalPolicy, IntelligenceX.OpenAI.AppServer.SandboxPolicy sandboxPolicy, System.Threading.CancellationToken cancellationToken) #

Starts a turn with a structured input payload.

Parameters

threadId System.String required
Thread id.
input IntelligenceX.Json.JsonArray required
Input items.
model System.String required
Optional model override.
currentDirectory System.String required
Optional working directory.
approvalPolicy System.String required
Optional approval policy.
sandboxPolicy IntelligenceX.OpenAI.AppServer.SandboxPolicy required
Optional sandbox policy.
cancellationToken System.Threading.CancellationToken required
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.