XLLM_SESSION_MODULE_XLLM_SESSION常量

xwork 及其直接依赖。

#define XLLM_SESSION_MODULE_XLLM_SESSION

xwork_tool_execute_fn类型

Image passthrough (read): owned bytes + mime; a text summary rides

extern "C" { #endif #define XWORK_VERSION_MAJOR 2 #define XWORK_VERSION_MINOR 3 #define XWORK_VERSION_PATCH 1 typedef struct xwork_agent xwork_agent; typedef struct xwork_mcp_client xwork_mcp_client; typedef enum xwork_result { XWORK_RESULT_OK = 0, XWORK_RESULT_ERROR = -1, XWORK_RESULT_CANCELLED = -2, XWORK_RESULT_LIMIT = -3, XWORK_RESULT_TIMEOUT = -4 } xwork_result; typedef enum xwork_error_code { XWORK_ERROR_NONE = 0, XWORK_ERROR_INVALID_ARGUMENT, XWORK_ERROR_OUT_OF_MEMORY, XWORK_ERROR_MODEL, XWORK_ERROR_TOOL, XWORK_ERROR_POLICY, XWORK_ERROR_IO, XWORK_ERROR_CONTEXT, XWORK_ERROR_LOOP_GUARD, XWORK_ERROR_CANCELLED, XWORK_ERROR_TIMEOUT } xwork_error_code; typedef struct xwork_error { xwork_error_code eCode; char sMessage[1024]; xllm_error tModelError; } xwork_error; typedef enum xwork_tool_effect { XWORK_TOOL_EFFECT_READ_ONLY = 0, XWORK_TOOL_EFFECT_WORKSPACE_WRITE, XWORK_TOOL_EFFECT_PROCESS } xwork_tool_effect; typedef enum xwork_approval_mode { XWORK_APPROVAL_AUTO = 0, XWORK_APPROVAL_CALLBACK, XWORK_APPROVAL_READ_ONLY } xwork_approval_mode; typedef enum xwork_eol_policy { XWORK_EOL_AUTO = 0, XWORK_EOL_FORCE_LF, XWORK_EOL_FORCE_CRLF, XWORK_EOL_PRESERVE } xwork_eol_policy; typedef enum xwork_permission_decision { XWORK_PERMISSION_DEFAULT = 0, XWORK_PERMISSION_ALLOW, XWORK_PERMISSION_DENY } xwork_permission_decision; typedef enum xwork_resource_kind { XWORK_RESOURCE_NONE = 0, XWORK_RESOURCE_PATH, XWORK_RESOURCE_COMMAND, XWORK_RESOURCE_PROCESS } xwork_resource_kind; typedef enum xwork_risk_level { XWORK_RISK_LOW = 0, XWORK_RISK_MEDIUM, XWORK_RISK_HIGH } xwork_risk_level; typedef struct xwork_permission_request { const char* sToolName; xwork_tool_effect eEffect; xwork_risk_level eRisk; xwork_resource_kind eResourceKind; const char* sResource; const char* sArgumentsJson; const char* sWorkspaceRoot; uint64_t uAgentTurn; } xwork_permission_request; typedef enum xwork_hook_phase { XWORK_HOOK_BEFORE_TOOL = 0, XWORK_HOOK_AFTER_TOOL } xwork_hook_phase; typedef enum xwork_hook_action { XWORK_HOOK_CONTINUE = 0, XWORK_HOOK_DENY, XWORK_HOOK_CANCEL } xwork_hook_action; typedef struct xwork_hook_event { xwork_hook_phase ePhase; uint64_t uAgentTurn; const char* sToolName; xwork_tool_effect eEffect; const char* sArgumentsJson; const char* sOutput; bool bSuccess; } xwork_hook_event; typedef struct xwork_tool_context { xwork_agent* pAgent; const char* sWorkspaceRoot; const char* sToolCallId; uint64_t uAgentTurn; } xwork_tool_context; typedef struct xwork_tool_output { char* sContent; bool bSuccess; unsigned char* pImageBytes; size_t iImageSize; char sImageMime[32]; } xwork_tool_output; typedef xwork_result(*xwork_tool_execute_fn)( void* pUserData, const xwork_tool_context* pContext, const char* sArgumentsJson, xwork_tool_output* pOutput, xwork_error* pError ); typedef struct xwork_tool_definition { const char* sName; const char* sDescription; const char* sParametersJson; bool bStrict; xwork_tool_effect eEffect; xwork_tool_execute_fn OnExecute; void* pUserData; const char* sSource; } xwork_tool_definition; typedef struct xwork_tool_info { const char* sName; const char* sDescription; const char* sParametersJson; const char* sSource; bool bStrict; xwork_tool_effect eEffect; } xwork_tool_info; typedef enum xwork_event_kind { XWORK_EVENT_AGENT_START = 0, XWORK_EVENT_MODEL_START, XWORK_EVENT_MODEL_TEXT_DELTA, XWORK_EVENT_MODEL_REASONING_DELTA, XWORK_EVENT_MODEL_DONE, XWORK_EVENT_TOOL_START, XWORK_EVENT_TOOL_DONE, XWORK_EVENT_COMPACTION_START, XWORK_EVENT_COMPACTION_REJECTED, XWORK_EVENT_COMPACTION_DONE, XWORK_EVENT_AGENT_DONE, XWORK_EVENT_ERROR } xwork_event_kind; typedef struct xwork_event { xwork_event_kind eKind; uint64_t uAgentTurn; uint32_t uAgentDepth; uint64_t uDelegationId; uint64_t uParentAgentTurn; const char* sText; size_t iTextLength; const char* sToolName; const char* sToolCallId; const char* sArtifactPath; const char* sModel; const char* sProviderRequestId; const char* sProviderCode; const char* sProviderMessage; const char* sFinishReason; const char* sRequestFingerprint; size_t iMessageCount; size_t iToolDefinitionCount; size_t iResponseToolCallCount; uint32_t uMaxOutputTokens; uint32_t uHttpStatus; xllm_error_code eModelErrorCode; bool bSuccess; uint32_t uCompactionAttempt; xllm_compaction_quality tCompactionQuality; xllm_usage tUsage; xllm_diagnostics tDiagnostics; xllm_session_stats tSessionStats; } xwork_event; typedef bool (*xwork_event_fn)(void* pUserData, const xwork_event* pEvent); typedef bool (*xwork_approval_fn)( void* pUserData, const char* sToolName, xwork_tool_effect eEffect, const char* sArgumentsJson ); typedef xwork_permission_decision (*xwork_permission_fn)( void* pUserData, const xwork_permission_request* pRequest ); typedef xwork_hook_action (*xwork_hook_fn)(void* pUserData, const xwork_hook_event* pEvent); typedef xllm_result (*xwork_model_complete_fn)( void* pUserData, const xllm_request* pRequest, const xllm_stream_callbacks* pCallbacks, xllm_response** ppResponse, xllm_error* pError ); typedef struct xwork_agent_config { xllm_client* pClient; xllm_session* pSession; const char* sWorkspaceRoot; const char* sSystemPrompt; const char* sSessionPath; const char* sArtifactDirectory; const char* sModel; const char* sReasoningEffort; xcancel* pCancel; int64_t iTimeout; xwork_approval_mode eApprovalMode; xwork_approval_fn OnApproval; void* pApprovalUserData; xwork_permission_fn OnPermission; void* pPermissionUserData; xwork_hook_fn OnHook; void* pHookUserData; xwork_eol_policy eEolPolicy; xwork_event_fn OnEvent; void* pEventUserData; xwork_model_complete_fn OnModelComplete; void* pModelUserData; uint32_t uCommandTimeoutMs; uint32_t uMaxAgentTurns; uint32_t uRepeatedToolBatchLimit; uint32_t uConsecutiveFailureLimit; uint32_t uMaxManagedProcesses; uint32_t uCompletionVerificationRetries; uint32_t uCompactionQualityRetries; size_t iMaxInlineToolBytes; size_t iMaxCapturedCommandBytes; bool bRegisterBuiltinTools; bool bAutoSaveSession; bool bAllowArtifactWrites; bool bRequireVerificationAfterWrite; bool bInjectSystemPrompt; } xwork_agent_config; typedef struct xwork_run_result { char* sFinalText; uint64_t uAgentTurns; uint64_t uModelCalls; uint64_t uToolCalls; uint64_t uCompactions; uint64_t uRejectedCompactionSummaries; uint32_t uAgentDepth; uint64_t uDelegationId; xllm_usage tLastUsage; xllm_session_stats tFinalSessionStats; } xwork_run_result; typedef struct xwork_readonly_subagent_config { const char* sSystemPrompt; xwork_permission_fn OnPermission; void* pPermissionUserData; xwork_event_fn OnEvent; void* pEventUserData; uint64_t uParentAgentTurn; uint32_t uTimeoutMs; uint32_t uMaxAgentTurns; uint32_t uMaxOutputTokens; size_t iMaxFinalBytes; } xwork_readonly_subagent_config; XRT_API void xworkErrorInit(xwork_error* pError); XRT_API const char* xworkErrorCodeName(xwork_error_code eCode); XRT_API void xworkToolOutputInit(xwork_tool_output* pOutput); XRT_API void xworkToolOutputUnit(xwork_tool_output* pOutput); XRT_API bool xworkToolOutputSet(xwork_tool_output* pOutput, bool bSuccess, const char* sContent); XRT_API bool xworkToolOutputSetImage(xwork_tool_output* pOutput, const unsigned char* pData, size_t iSize, const char* sMime); XRT_API void xworkAgentConfigInit(xwork_agent_config* pConfig); XRT_API void xworkReadOnlySubagentConfigInit(xwork_readonly_subagent_config* pConfig); XRT_API xwork_agent* xworkAgentCreate(const xwork_agent_config* pConfig, xwork_error* pError); XRT_API void xworkAgentDestroy(xwork_agent* pAgent); XRT_API bool xworkAgentRegisterTool(xwork_agent* pAgent, const xwork_tool_definition* pDefinition, xwork_error* pError); XRT_API bool xworkAgentUnregisterTool(xwork_agent* pAgent, const char* sName, xwork_error* pError); XRT_API bool xworkAgentUnregisterToolsBySource( xwork_agent* pAgent, const char* sSource, size_t* piRemoved, xwork_error* pError ); XRT_API size_t xworkAgentToolCount(const xwork_agent* pAgent); XRT_API bool xworkAgentToolAt(const xwork_agent* pAgent, size_t iIndex, xwork_tool_info* pInfo); XRT_API uint64_t xworkAgentToolRegistryGeneration(const xwork_agent* pAgent); typedef struct xwork_mcp_stdio_config { const char* sServerName; const char* sProgram; const char* const* psArguments; size_t iArgumentCount; const char* sWorkingDirectory; const char* sProtocolVersion; uint32_t uRequestTimeoutMs; size_t iMaxMessageBytes; size_t iMaxTools; xwork_tool_effect eDefaultToolEffect; bool bTrustReadOnlyAnnotations; xcancel* pCancel; int64_t iTimeout; } xwork_mcp_stdio_config; typedef struct xwork_mcp_info { const char* sServerName; const char* sProtocolVersion; const char* sToolSource; size_t iToolCount; uint64_t uRequestsCompleted; bool bConnected; bool bServerSupportsToolListChanges; } xwork_mcp_info; XRT_API void xworkMcpStdioConfigInit(xwork_mcp_stdio_config* pConfig); XRT_API xwork_mcp_client* xworkMcpClientCreate(const xwork_mcp_stdio_config* pConfig, xwork_error* pError); XRT_API bool xworkMcpClientConnect(xwork_mcp_client* pClient, xwork_error* pError); XRT_API bool xworkMcpClientRefreshTools(xwork_mcp_client* pClient, xwork_agent* pAgent, xwork_error* pError); XRT_API xwork_result xworkMcpClientCallTool( xwork_mcp_client* pClient, const char* sRemoteToolName, const char* sArgumentsJson, xcancel* pCancel, int64_t iTimeout, xwork_tool_output* pOutput, xwork_error* pError ); XRT_API bool xworkMcpClientGetInfo(const xwork_mcp_client* pClient, xwork_mcp_info* pInfo); XRT_API void xworkMcpClientDestroy(xwork_mcp_client* pClient); XRT_API bool xworkAgentCancel(xwork_agent* pAgent); XRT_API const char* xworkAgentWorkspaceRoot(const xwork_agent* pAgent); XRT_API bool xworkPathIsProtected(const char* sPath); XRT_API xwork_result xworkAgentRun(xwork_agent* pAgent, const char* sPrompt, xwork_run_result* pResult, xwork_error* pError); XRT_API bool xworkAgentRunBegin(xwork_agent* pAgent, xwork_error* pError); XRT_API void xworkAgentRunEnd(xwork_agent* pAgent); typedef enum xwork_task_kind { XWORK_TASK_PROCESS = 0, XWORK_TASK_AGENT } xwork_task_kind; typedef struct xwork_task_notice { uint64_t uTaskId; xwork_task_kind eKind; int32_t iExitCode; bool bExitedCleanly; const char* sNotify; const char* sPreview; } xwork_task_notice; typedef struct xwork_watchdog_digest { bool bShouldWake; uint64_t uNextWakeMs; size_t iRunningTasks; size_t iStalledTasks; size_t iUncollectedNotices; } xwork_watchdog_digest; XRT_API size_t xworkAgentTakeTaskNotices(xwork_agent* pAgent, xwork_task_notice* pNotices, size_t iCapacity); XRT_API bool xworkTaskWatchdog(xwork_agent* pAgent, xwork_watchdog_digest* pDigest); typedef struct xwork_subagent_type { const char* sName; const char* sDescription; const char* sSystemPrompt; const char* const* psTools; size_t iToolCount; const char* sModel; uint32_t uMaxTurns; uint32_t uTimeoutMs; uint32_t uMaxOutputTokens; size_t iMaxFinalBytes; bool bReadOnly; } xwork_subagent_type; XRT_API bool xworkAgentRegisterSubagentType(xwork_agent* pAgent, const xwork_subagent_type* pType, xwork_error* pError); XRT_API bool xworkAgentUnregisterSubagentType(xwork_agent* pAgent, const char* sName, xwork_error* pError); XRT_API size_t xworkAgentSubagentTypeCount(const xwork_agent* pAgent); XRT_API xwork_result xworkAgentRunReadOnlySubagent( xwork_agent* pParent, const xwork_readonly_subagent_config* pConfig, const char* sTask, xwork_run_result* pResult, xwork_error* pError ); XRT_API xwork_result xworkAgentResume(xwork_agent* pAgent, xwork_run_result* pResult, xwork_error* pError); XRT_API xwork_result xworkAgentCompact(xwork_agent* pAgent, xwork_error* pError); XRT_API void xworkRunResultUnit(xwork_run_result* pResult); XRT_API bool xworkAgentRegisterBuiltinTools(xwork_agent* pAgent, xwork_error* pError); XRT_API bool xworkAgentRegisterBuiltinReadOnlyTools(xwork_agent* pAgent, xwork_error* pError); typedef struct xwork_executor_state xwork_executor_state; XRT_API bool xworkExecutorBind(xllm_executor* pOut, xwork_agent* pAgent, xwork_error* pError); XRT_API void xworkExecutorUnbind(xllm_executor* pExecutor)

XWORK_RESULT_OK常量

契约注释见公共头文件。

XWORK_RESULT_OK

XWORK_RESULT_ERROR常量

契约注释见公共头文件。

XWORK_RESULT_ERROR

XWORK_RESULT_CANCELLED常量

契约注释见公共头文件。

XWORK_RESULT_CANCELLED

XWORK_RESULT_LIMIT常量

契约注释见公共头文件。

XWORK_RESULT_LIMIT

XWORK_RESULT_TIMEOUT常量

契约注释见公共头文件。

XWORK_RESULT_TIMEOUT

XWORK_ERROR_NONE常量

契约注释见公共头文件。

XWORK_ERROR_NONE

XWORK_ERROR_INVALID_ARGUMENT常量

契约注释见公共头文件。

XWORK_ERROR_INVALID_ARGUMENT

XWORK_ERROR_OUT_OF_MEMORY常量

契约注释见公共头文件。

XWORK_ERROR_OUT_OF_MEMORY

XWORK_ERROR_MODEL常量

契约注释见公共头文件。

XWORK_ERROR_MODEL

XWORK_ERROR_TOOL常量

契约注释见公共头文件。

XWORK_ERROR_TOOL

XWORK_ERROR_POLICY常量

契约注释见公共头文件。

XWORK_ERROR_POLICY

XWORK_ERROR_IO常量

契约注释见公共头文件。

XWORK_ERROR_IO

XWORK_ERROR_CONTEXT常量

契约注释见公共头文件。

XWORK_ERROR_CONTEXT

XWORK_ERROR_LOOP_GUARD常量

契约注释见公共头文件。

XWORK_ERROR_LOOP_GUARD

XWORK_ERROR_CANCELLED常量

契约注释见公共头文件。

XWORK_ERROR_CANCELLED

XWORK_ERROR_TIMEOUT常量

契约注释见公共头文件。

XWORK_ERROR_TIMEOUT

XWORK_TOOL_EFFECT_READ_ONLY常量

契约注释见公共头文件。

XWORK_TOOL_EFFECT_READ_ONLY

XWORK_TOOL_EFFECT_WORKSPACE_WRITE常量

契约注释见公共头文件。

XWORK_TOOL_EFFECT_WORKSPACE_WRITE

XWORK_TOOL_EFFECT_PROCESS常量

契约注释见公共头文件。

XWORK_TOOL_EFFECT_PROCESS

XWORK_APPROVAL_AUTO常量

契约注释见公共头文件。

XWORK_APPROVAL_AUTO

XWORK_APPROVAL_CALLBACK常量

契约注释见公共头文件。

XWORK_APPROVAL_CALLBACK

XWORK_APPROVAL_READ_ONLY常量

契约注释见公共头文件。

XWORK_APPROVAL_READ_ONLY

XWORK_EOL_AUTO常量

契约注释见公共头文件。

XWORK_EOL_AUTO

XWORK_EOL_FORCE_LF常量

契约注释见公共头文件。

XWORK_EOL_FORCE_LF

XWORK_EOL_FORCE_CRLF常量

契约注释见公共头文件。

XWORK_EOL_FORCE_CRLF

XWORK_EOL_PRESERVE常量

契约注释见公共头文件。

XWORK_EOL_PRESERVE

XWORK_PERMISSION_DEFAULT常量

契约注释见公共头文件。

XWORK_PERMISSION_DEFAULT

XWORK_PERMISSION_ALLOW常量

契约注释见公共头文件。

XWORK_PERMISSION_ALLOW

XWORK_PERMISSION_DENY常量

契约注释见公共头文件。

XWORK_PERMISSION_DENY

XWORK_RESOURCE_NONE常量

契约注释见公共头文件。

XWORK_RESOURCE_NONE

XWORK_RESOURCE_PATH常量

契约注释见公共头文件。

XWORK_RESOURCE_PATH

XWORK_RESOURCE_COMMAND常量

契约注释见公共头文件。

XWORK_RESOURCE_COMMAND

XWORK_RESOURCE_PROCESS常量

契约注释见公共头文件。

XWORK_RESOURCE_PROCESS

XWORK_RISK_LOW常量

契约注释见公共头文件。

XWORK_RISK_LOW

XWORK_RISK_MEDIUM常量

契约注释见公共头文件。

XWORK_RISK_MEDIUM

XWORK_RISK_HIGH常量

契约注释见公共头文件。

XWORK_RISK_HIGH

XWORK_HOOK_BEFORE_TOOL常量

契约注释见公共头文件。

XWORK_HOOK_BEFORE_TOOL

XWORK_HOOK_AFTER_TOOL常量

契约注释见公共头文件。

XWORK_HOOK_AFTER_TOOL

XWORK_HOOK_CONTINUE常量

契约注释见公共头文件。

XWORK_HOOK_CONTINUE

XWORK_HOOK_DENY常量

契约注释见公共头文件。

XWORK_HOOK_DENY

XWORK_HOOK_CANCEL常量

契约注释见公共头文件。

XWORK_HOOK_CANCEL

XWORK_EVENT_AGENT_START常量

契约注释见公共头文件。

XWORK_EVENT_AGENT_START

XWORK_EVENT_MODEL_START常量

契约注释见公共头文件。

XWORK_EVENT_MODEL_START

XWORK_EVENT_MODEL_TEXT_DELTA常量

契约注释见公共头文件。

XWORK_EVENT_MODEL_TEXT_DELTA

XWORK_EVENT_MODEL_REASONING_DELTA常量

契约注释见公共头文件。

XWORK_EVENT_MODEL_REASONING_DELTA

XWORK_EVENT_MODEL_DONE常量

契约注释见公共头文件。

XWORK_EVENT_MODEL_DONE

XWORK_EVENT_TOOL_START常量

契约注释见公共头文件。

XWORK_EVENT_TOOL_START

XWORK_EVENT_TOOL_DONE常量

契约注释见公共头文件。

XWORK_EVENT_TOOL_DONE

XWORK_EVENT_COMPACTION_START常量

契约注释见公共头文件。

XWORK_EVENT_COMPACTION_START

XWORK_EVENT_COMPACTION_REJECTED常量

契约注释见公共头文件。

XWORK_EVENT_COMPACTION_REJECTED

XWORK_EVENT_COMPACTION_DONE常量

契约注释见公共头文件。

XWORK_EVENT_COMPACTION_DONE

XWORK_EVENT_AGENT_DONE常量

契约注释见公共头文件。

XWORK_EVENT_AGENT_DONE

XWORK_EVENT_ERROR常量

契约注释见公共头文件。

XWORK_EVENT_ERROR

XWORK_TASK_PROCESS常量

契约注释见公共头文件。

XWORK_TASK_PROCESS

XWORK_TASK_AGENT常量

契约注释见公共头文件。

XWORK_TASK_AGENT

xwork_result类型

Top-level result of an agent or tool call (ok / error / cancelled / limit).

typedef enum xwork_result { ... } xwork_result;

xwork_error_code类型

Stable error categories for agent and tool failures.

typedef enum xwork_error_code { ... } xwork_error_code;

xwork_error类型

Error detail: code, message buffer, and the underlying model error when present.

typedef struct xwork_error { ... } xwork_error;

xwork_tool_effect类型

What a tool may do (read-only / workspace write / process spawn).

typedef enum xwork_tool_effect { ... } xwork_tool_effect;

xwork_approval_mode类型

How tool permission is granted (auto / callback / read-only).

typedef enum xwork_approval_mode { ... } xwork_approval_mode;

xwork_eol_policy类型

Line-ending discipline for text tools. The model always works in LF

typedef enum xwork_eol_policy { ... } xwork_eol_policy;

xwork_permission_decision类型

Host decision for a permission request (default / allow / deny).

typedef enum xwork_permission_decision { ... } xwork_permission_decision;

xwork_resource_kind类型

The kind of resource a permission request refers to.

typedef enum xwork_resource_kind { ... } xwork_resource_kind;

xwork_risk_level类型

Coarse risk grading attached to tools and requests.

typedef enum xwork_risk_level { ... } xwork_risk_level;

xwork_permission_request类型

A permission request: tool, effect, risk, resource, and arguments.

typedef struct xwork_permission_request { ... } xwork_permission_request;

xwork_hook_phase类型

Hook timing (before or after a tool call).

typedef enum xwork_hook_phase { ... } xwork_hook_phase;

xwork_hook_action类型

Hook verdict (continue / deny / cancel).

typedef enum xwork_hook_action { ... } xwork_hook_action;

xwork_hook_event类型

Hook input: phase, turn, tool name, effect, and arguments.

typedef struct xwork_hook_event { ... } xwork_hook_event;

xwork_tool_context类型

Per-call context handed to tool implementations.

typedef struct xwork_tool_context { ... } xwork_tool_context;

xwork_tool_output类型

Tool result: text plus an optional owned image payload.

typedef struct xwork_tool_output { ... } xwork_tool_output;

xwork_tool_definition类型

A host tool registration (name, description, JSON schema, strictness).

typedef struct xwork_tool_definition { ... } xwork_tool_definition;

xwork_tool_info类型

Read view of a registry entry, adding the source tag.

typedef struct xwork_tool_info { ... } xwork_tool_info;

xwork_event_kind类型

Agent and run event kinds (turns, model deltas, tool calls, delegation).

typedef enum xwork_event_kind { ... } xwork_event_kind;

xwork_event类型

One agent event; the union payload is selected by kind.

typedef struct xwork_event { ... } xwork_event;

xwork_agent_config类型

Agent wiring: client, session, workspace, system prompt, approvals, hooks.

typedef struct xwork_agent_config { ... } xwork_agent_config;

xwork_run_result类型

Final run outcome: text plus turn, model, and tool counters.

typedef struct xwork_run_result { ... } xwork_run_result;

xwork_readonly_subagent_config类型

Read-only sub-agent wiring (prompt, permission callback, event sink).

typedef struct xwork_readonly_subagent_config { ... } xwork_readonly_subagent_config;

xwork_mcp_stdio_config类型

MCP stdio client. The client owns the subprocess and discovered proxy

typedef struct xwork_mcp_stdio_config { ... } xwork_mcp_stdio_config;

xwork_mcp_info类型

MCP connection snapshot (server, protocol, tool count, liveness).

typedef struct xwork_mcp_info { ... } xwork_mcp_info;

xwork_task_kind类型

Task kinds the unified task system tracks (process; agent reserved).

typedef enum xwork_task_kind { ... } xwork_task_kind;

xwork_task_notice类型

Completion notice from a background task (id, exit code, clean flag).

typedef struct xwork_task_notice { ... } xwork_task_notice;

xwork_watchdog_digest类型

Watchdog state: wake hint, next deadline, running and stalled counts.

typedef struct xwork_watchdog_digest { ... } xwork_watchdog_digest;

xwork_subagent_type类型

A registered sub-agent type (name, prompt, allowed tools).

typedef struct xwork_subagent_type { ... } xwork_subagent_type;

xworkErrorInit函数

Zero an error struct; reusable across failure paths.

XRT_API void xworkErrorInit(xwork_error* pError)

xworkErrorCodeName函数

Stable name for an error code (never NULL).

XRT_API const char* xworkErrorCodeName(xwork_error_code eCode)

xworkToolOutputInit函数

Zero a tool output.

XRT_API void xworkToolOutputInit(xwork_tool_output* pOutput)

xworkToolOutputUnit函数

Free the contents of a tool output.

XRT_API void xworkToolOutputUnit(xwork_tool_output* pOutput)

xworkToolOutputSet函数

Set the success flag and text content (copied).

XRT_API bool xworkToolOutputSet(xwork_tool_output* pOutput, bool bSuccess, const char* sContent)

xworkToolOutputSetImage函数

Attach an image payload (copies); the text summary should already be in

XRT_API bool xworkToolOutputSetImage(xwork_tool_output* pOutput, const unsigned char* pData, size_t iSize, const char* sMime)

xworkAgentConfigInit函数

Zero an agent config (default tools, approvals, loop bounds).

XRT_API void xworkAgentConfigInit(xwork_agent_config* pConfig)

xworkReadOnlySubagentConfigInit函数

Zero a read-only sub-agent config.

XRT_API void xworkReadOnlySubagentConfigInit(xwork_readonly_subagent_config* pConfig)

xworkAgentCreate函数

Create an agent; NULL with pError on failure.

XRT_API xwork_agent* xworkAgentCreate(const xwork_agent_config* pConfig, xwork_error* pError)

xworkAgentDestroy函数

Destroy the agent after in-flight work has finished.

XRT_API void xworkAgentDestroy(xwork_agent* pAgent)

xworkAgentRegisterTool函数

Register a custom tool (replaces any tool with the same name).

XRT_API bool xworkAgentRegisterTool(xwork_agent* pAgent, const xwork_tool_definition* pDefinition, xwork_error* pError)

xworkAgentUnregisterTool函数

Unregister a tool by name (built-ins cannot be removed).

XRT_API bool xworkAgentUnregisterTool(xwork_agent* pAgent, const char* sName, xwork_error* pError)

xworkAgentUnregisterToolsBySource函数

Unregister tools by source in bulk (e.g. one MCP server).

XRT_API bool xworkAgentUnregisterToolsBySource(xwork_agent* pAgent, const char* sSource, size_t* piRemoved, xwork_error* pError)

xworkAgentToolCount函数

Number of tools currently in the registry.

XRT_API size_t xworkAgentToolCount(const xwork_agent* pAgent)

xworkAgentToolAt函数

Fetch tool info by index (name, description, source).

XRT_API bool xworkAgentToolAt(const xwork_agent* pAgent, size_t iIndex, xwork_tool_info* pInfo)

xworkAgentToolRegistryGeneration函数

Registry generation; bumped on every change (cache invalidation).

XRT_API uint64_t xworkAgentToolRegistryGeneration(const xwork_agent* pAgent)

xworkMcpStdioConfigInit函数

Zero a stdio MCP config (command line, env, trust flags).

XRT_API void xworkMcpStdioConfigInit(xwork_mcp_stdio_config* pConfig)

xworkMcpClientCreate函数

Create a stdio MCP client without connecting yet.

XRT_API xwork_mcp_client* xworkMcpClientCreate(const xwork_mcp_stdio_config* pConfig, xwork_error* pError)

xworkMcpClientConnect函数

Spawn the child process and finish the MCP initialize handshake.

XRT_API bool xworkMcpClientConnect(xwork_mcp_client* pClient, xwork_error* pError)

xworkMcpClientRefreshTools函数

Fetch the remote tool list into the agent (replacing that source).

XRT_API bool xworkMcpClientRefreshTools(xwork_mcp_client* pClient, xwork_agent* pAgent, xwork_error* pError)

xworkMcpClientCallTool函数

Call a remote tool directly, bypassing the agent loop; cancellable with timeout.

XRT_API xwork_result xworkMcpClientCallTool(xwork_mcp_client* pClient, const char* sRemoteToolName, const char* sArgumentsJson, xcancel* pCancel, int64_t iTimeout, xwork_tool_output* pOutput, xwork_error* pError)

xworkMcpClientGetInfo函数

Copy connection info (server name, protocol version, tool count, state).

XRT_API bool xworkMcpClientGetInfo(const xwork_mcp_client* pClient, xwork_mcp_info* pInfo)

xworkMcpClientDestroy函数

Disconnect and destroy the client after in-flight calls finish.

XRT_API void xworkMcpClientDestroy(xwork_mcp_client* pClient)

xworkAgentCancel函数

Cooperatively cancel the current run (visible to tools and the loop).

XRT_API bool xworkAgentCancel(xwork_agent* pAgent)

xworkAgentWorkspaceRoot函数

The agent's workspace root (base for tool-relative paths).

XRT_API const char* xworkAgentWorkspaceRoot(const xwork_agent* pAgent)

xworkPathIsProtected函数

True when any path component is an internal control directory (.git,

XRT_API bool xworkPathIsProtected(const char* sPath)

xworkAgentRun函数

Run one agent turn synchronously (prompt in, result out; cancellable).

XRT_API xwork_result xworkAgentRun(xwork_agent* pAgent, const char* sPrompt, xwork_run_result* pResult, xwork_error* pError)

xworkAgentRunBegin函数

Declare an externally driven run window: while open, registry mutation and

XRT_API bool xworkAgentRunBegin(xwork_agent* pAgent, xwork_error* pError)

xworkAgentRunEnd函数

End the run state and release run-scoped resources; call after Run.

XRT_API void xworkAgentRunEnd(xwork_agent* pAgent)

xworkAgentTakeTaskNotices函数

Call from the thread that owns the agent (the same thread that drives

XRT_API size_t xworkAgentTakeTaskNotices(xwork_agent* pAgent, xwork_task_notice* pNotices, size_t iCapacity)

xworkTaskWatchdog函数

Copy the task-system watchdog digest (model clock, hung tasks).

XRT_API bool xworkTaskWatchdog(xwork_agent* pAgent, xwork_watchdog_digest* pDigest)

xworkAgentRegisterSubagentType函数

Register an archetype (deep copy). The agent tool appears with the

XRT_API bool xworkAgentRegisterSubagentType(xwork_agent* pAgent, const xwork_subagent_type* pType, xwork_error* pError)

xworkAgentUnregisterSubagentType函数

Remove one archetype by name (tool persists while others remain).

XRT_API bool xworkAgentUnregisterSubagentType(xwork_agent* pAgent, const char* sName, xwork_error* pError)

xworkAgentSubagentTypeCount函数

Number of registered sub-agent types.

XRT_API size_t xworkAgentSubagentTypeCount(const xwork_agent* pAgent)

xworkAgentRunReadOnlySubagent函数

Run a read-only sub-agent on a subtask (depth lock prevents recursion).

XRT_API xwork_result xworkAgentRunReadOnlySubagent(xwork_agent* pParent, const xwork_readonly_subagent_config* pConfig, const char* sTask, xwork_run_result* pResult, xwork_error* pError)

xworkAgentResume函数

Resume an interrupted run without appending another user prompt. Pending

XRT_API xwork_result xworkAgentResume(xwork_agent* pAgent, xwork_run_result* pResult, xwork_error* pError)

xworkAgentCompact函数

Force one safe-prefix summary compaction and persist the committed session.

XRT_API xwork_result xworkAgentCompact(xwork_agent* pAgent, xwork_error* pError)

xworkRunResultUnit函数

Free the contents of a run result.

XRT_API void xworkRunResultUnit(xwork_run_result* pResult)

xworkAgentRegisterBuiltinTools函数

Registers filesystem, transactional edit, synchronous command, and managed process tools.

XRT_API bool xworkAgentRegisterBuiltinTools(xwork_agent* pAgent, xwork_error* pError)

xworkAgentRegisterBuiltinReadOnlyTools函数

Registers only filesystem inspection tools: read_file, list_files, and search_text.

XRT_API bool xworkAgentRegisterBuiltinReadOnlyTools(xwork_agent* pAgent, xwork_error* pError)

xworkExecutorBind函数

Bind an agent as an xllm executor (the mdo OnWire seam).

XRT_API bool xworkExecutorBind(xllm_executor* pOut, xwork_agent* pAgent, xwork_error* pError)

xworkExecutorUnbind函数

Unbind the executor without destroying the agent.

XRT_API void xworkExecutorUnbind(xllm_executor* pExecutor)