openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
784 lines (783 loc) • 34.8 kB
TypeScript
import { Type } from "typebox";
/**
* Agent, model, skill, and tool catalog schemas.
*
* These contracts back dashboard selectors, agent management, model catalogs,
* skill upload/install flows, skill workshop proposals, and effective tool
* discovery. Keep public request/result schemas documented because they are
* shared by gateway RPC, CLI, and UI clients.
*/
/** Model option shown in selectors and model catalog results. */
export declare const ModelChoiceSchema: Type.TObject<{
id: Type.TString;
name: Type.TString;
provider: Type.TString;
alias: Type.TOptional<Type.TString>;
available: Type.TOptional<Type.TBoolean>;
contextWindow: Type.TOptional<Type.TInteger>;
reasoning: Type.TOptional<Type.TBoolean>;
}>;
/** Condensed agent record returned by list APIs. */
export declare const AgentSummarySchema: Type.TObject<{
id: Type.TString;
name: Type.TOptional<Type.TString>;
identity: Type.TOptional<Type.TObject<{
name: Type.TOptional<Type.TString>;
theme: Type.TOptional<Type.TString>;
emoji: Type.TOptional<Type.TString>;
avatar: Type.TOptional<Type.TString>;
avatarUrl: Type.TOptional<Type.TString>;
}>>;
workspace: Type.TOptional<Type.TString>;
model: Type.TOptional<Type.TObject<{
primary: Type.TOptional<Type.TString>;
fallbacks: Type.TOptional<Type.TArray<Type.TString>>;
}>>;
agentRuntime: Type.TOptional<Type.TObject<{
id: Type.TString;
fallback: Type.TOptional<Type.TUnion<[Type.TLiteral<"openclaw">, Type.TLiteral<"none">]>>;
source: Type.TUnion<[Type.TLiteral<"env">, Type.TLiteral<"agent">, Type.TLiteral<"defaults">, Type.TLiteral<"model">, Type.TLiteral<"provider">, Type.TLiteral<"implicit">]>;
}>>;
thinkingLevels: Type.TOptional<Type.TArray<Type.TObject<{
id: Type.TString;
label: Type.TString;
}>>>;
thinkingOptions: Type.TOptional<Type.TArray<Type.TString>>;
thinkingDefault: Type.TOptional<Type.TString>;
}>;
/** Empty request payload for listing configured agents. */
export declare const AgentsListParamsSchema: Type.TObject<{}>;
/** Agent list result including the default agent and session scoping mode. */
export declare const AgentsListResultSchema: Type.TObject<{
defaultId: Type.TString;
mainKey: Type.TString;
scope: Type.TUnion<[Type.TLiteral<"per-sender">, Type.TLiteral<"global">]>;
agents: Type.TArray<Type.TObject<{
id: Type.TString;
name: Type.TOptional<Type.TString>;
identity: Type.TOptional<Type.TObject<{
name: Type.TOptional<Type.TString>;
theme: Type.TOptional<Type.TString>;
emoji: Type.TOptional<Type.TString>;
avatar: Type.TOptional<Type.TString>;
avatarUrl: Type.TOptional<Type.TString>;
}>>;
workspace: Type.TOptional<Type.TString>;
model: Type.TOptional<Type.TObject<{
primary: Type.TOptional<Type.TString>;
fallbacks: Type.TOptional<Type.TArray<Type.TString>>;
}>>;
agentRuntime: Type.TOptional<Type.TObject<{
id: Type.TString;
fallback: Type.TOptional<Type.TUnion<[Type.TLiteral<"openclaw">, Type.TLiteral<"none">]>>;
source: Type.TUnion<[Type.TLiteral<"env">, Type.TLiteral<"agent">, Type.TLiteral<"defaults">, Type.TLiteral<"model">, Type.TLiteral<"provider">, Type.TLiteral<"implicit">]>;
}>>;
thinkingLevels: Type.TOptional<Type.TArray<Type.TObject<{
id: Type.TString;
label: Type.TString;
}>>>;
thinkingOptions: Type.TOptional<Type.TArray<Type.TString>>;
thinkingDefault: Type.TOptional<Type.TString>;
}>>;
}>;
/** Creates a configured agent with workspace, identity, and optional model. */
export declare const AgentsCreateParamsSchema: Type.TObject<{
name: Type.TString;
workspace: Type.TString;
model: Type.TOptional<Type.TString>;
emoji: Type.TOptional<Type.TString>;
avatar: Type.TOptional<Type.TString>;
}>;
/** Result returned after creating an agent. */
export declare const AgentsCreateResultSchema: Type.TObject<{
ok: Type.TLiteral<true>;
agentId: Type.TString;
name: Type.TString;
workspace: Type.TString;
model: Type.TOptional<Type.TString>;
}>;
/** Updates mutable agent identity, workspace, and model fields. */
export declare const AgentsUpdateParamsSchema: Type.TObject<{
agentId: Type.TString;
name: Type.TOptional<Type.TString>;
workspace: Type.TOptional<Type.TString>;
model: Type.TOptional<Type.TString>;
emoji: Type.TOptional<Type.TString>;
avatar: Type.TOptional<Type.TString>;
}>;
/** Result returned after updating an agent. */
export declare const AgentsUpdateResultSchema: Type.TObject<{
ok: Type.TLiteral<true>;
agentId: Type.TString;
}>;
/** Deletes an agent and optionally its workspace/config files. */
export declare const AgentsDeleteParamsSchema: Type.TObject<{
agentId: Type.TString;
deleteFiles: Type.TOptional<Type.TBoolean>;
}>;
/** Result returned after deleting an agent and unbinding sessions. */
export declare const AgentsDeleteResultSchema: Type.TObject<{
ok: Type.TLiteral<true>;
agentId: Type.TString;
removedBindings: Type.TInteger;
}>;
/** File metadata and optional content for agent-local editable files. */
export declare const AgentsFileEntrySchema: Type.TObject<{
name: Type.TString;
path: Type.TString;
missing: Type.TBoolean;
size: Type.TOptional<Type.TInteger>;
updatedAtMs: Type.TOptional<Type.TInteger>;
content: Type.TOptional<Type.TString>;
}>;
/** Lists editable files for one agent. */
export declare const AgentsFilesListParamsSchema: Type.TObject<{
agentId: Type.TString;
}>;
/** Editable file list for an agent workspace. */
export declare const AgentsFilesListResultSchema: Type.TObject<{
agentId: Type.TString;
workspace: Type.TString;
files: Type.TArray<Type.TObject<{
name: Type.TString;
path: Type.TString;
missing: Type.TBoolean;
size: Type.TOptional<Type.TInteger>;
updatedAtMs: Type.TOptional<Type.TInteger>;
content: Type.TOptional<Type.TString>;
}>>;
}>;
/** Reads one editable agent file by name. */
export declare const AgentsFilesGetParamsSchema: Type.TObject<{
agentId: Type.TString;
name: Type.TString;
}>;
/** Result for reading one editable agent file. */
export declare const AgentsFilesGetResultSchema: Type.TObject<{
agentId: Type.TString;
workspace: Type.TString;
file: Type.TObject<{
name: Type.TString;
path: Type.TString;
missing: Type.TBoolean;
size: Type.TOptional<Type.TInteger>;
updatedAtMs: Type.TOptional<Type.TInteger>;
content: Type.TOptional<Type.TString>;
}>;
}>;
/** Writes one editable agent file. */
export declare const AgentsFilesSetParamsSchema: Type.TObject<{
agentId: Type.TString;
name: Type.TString;
content: Type.TString;
}>;
/** Result returned after writing an editable agent file. */
export declare const AgentsFilesSetResultSchema: Type.TObject<{
ok: Type.TLiteral<true>;
agentId: Type.TString;
workspace: Type.TString;
file: Type.TObject<{
name: Type.TString;
path: Type.TString;
missing: Type.TBoolean;
size: Type.TOptional<Type.TInteger>;
updatedAtMs: Type.TOptional<Type.TInteger>;
content: Type.TOptional<Type.TString>;
}>;
}>;
/** Model catalog request with optional visibility scope. */
export declare const ModelsListParamsSchema: Type.TObject<{
view: Type.TOptional<Type.TUnion<[Type.TLiteral<"default">, Type.TLiteral<"configured">, Type.TLiteral<"all">]>>;
}>;
/** Model catalog result. */
export declare const ModelsListResultSchema: Type.TObject<{
models: Type.TArray<Type.TObject<{
id: Type.TString;
name: Type.TString;
provider: Type.TString;
alias: Type.TOptional<Type.TString>;
available: Type.TOptional<Type.TBoolean>;
contextWindow: Type.TOptional<Type.TInteger>;
reasoning: Type.TOptional<Type.TBoolean>;
}>>;
}>;
/** Reads installed skill status, optionally for a selected agent. */
export declare const SkillsStatusParamsSchema: Type.TObject<{
agentId: Type.TOptional<Type.TString>;
}>;
/** Empty request payload for listing available skill bins. */
export declare const SkillsBinsParamsSchema: Type.TObject<{}>;
/** Skill bin names available to the gateway. */
export declare const SkillsBinsResultSchema: Type.TObject<{
bins: Type.TArray<Type.TString>;
}>;
/** Starts a chunked skill archive upload. */
export declare const SkillsUploadBeginParamsSchema: Type.TObject<{
kind: Type.TLiteral<"skill-archive">;
slug: Type.TString;
sizeBytes: Type.TInteger;
sha256: Type.TOptional<Type.TString>;
force: Type.TOptional<Type.TBoolean>;
idempotencyKey: Type.TOptional<Type.TString>;
}>;
/** Uploads one base64-encoded chunk for a skill archive. */
export declare const SkillsUploadChunkParamsSchema: Type.TObject<{
uploadId: Type.TString;
offset: Type.TInteger;
dataBase64: Type.TString;
}>;
/** Commits a completed skill archive upload. */
export declare const SkillsUploadCommitParamsSchema: Type.TObject<{
uploadId: Type.TString;
sha256: Type.TOptional<Type.TString>;
}>;
/** Installs a skill from legacy install id, ClawHub, or uploaded archive. */
export declare const SkillsInstallParamsSchema: Type.TUnion<[Type.TObject<{
name: Type.TString;
installId: Type.TString;
dangerouslyForceUnsafeInstall: Type.TOptional<Type.TBoolean>;
timeoutMs: Type.TOptional<Type.TInteger>;
}>, Type.TObject<{
source: Type.TLiteral<"clawhub">;
slug: Type.TString;
version: Type.TOptional<Type.TString>;
force: Type.TOptional<Type.TBoolean>;
timeoutMs: Type.TOptional<Type.TInteger>;
}>, Type.TObject<{
source: Type.TLiteral<"upload">;
uploadId: Type.TString;
slug: Type.TString;
force: Type.TOptional<Type.TBoolean>;
sha256: Type.TOptional<Type.TString>;
timeoutMs: Type.TOptional<Type.TInteger>;
}>]>;
/** Updates installed skill settings or refreshes ClawHub-installed skills. */
export declare const SkillsUpdateParamsSchema: Type.TUnion<[Type.TObject<{
skillKey: Type.TString;
enabled: Type.TOptional<Type.TBoolean>;
apiKey: Type.TOptional<Type.TString>;
env: Type.TOptional<Type.TRecord<"^.*$", Type.TString>>;
}>, Type.TObject<{
source: Type.TLiteral<"clawhub">;
slug: Type.TOptional<Type.TString>;
all: Type.TOptional<Type.TBoolean>;
}>]>;
/** Searches the skill registry. */
export declare const SkillsSearchParamsSchema: Type.TObject<{
query: Type.TOptional<Type.TString>;
limit: Type.TOptional<Type.TInteger>;
}>;
/** Ranked skill registry search results. */
export declare const SkillsSearchResultSchema: Type.TObject<{
results: Type.TArray<Type.TObject<{
score: Type.TNumber;
slug: Type.TString;
displayName: Type.TString;
summary: Type.TOptional<Type.TString>;
version: Type.TOptional<Type.TString>;
updatedAt: Type.TOptional<Type.TInteger>;
}>>;
}>;
/** Reads registry detail for one skill slug. */
export declare const SkillsDetailParamsSchema: Type.TObject<{
slug: Type.TString;
}>;
/** Reads current security verdicts for configured skills. */
export declare const SkillsSecurityVerdictsParamsSchema: Type.TObject<{
agentId: Type.TOptional<Type.TString>;
}>;
/** Skill registry detail, latest version, metadata, and owner info. */
export declare const SkillsDetailResultSchema: Type.TObject<{
skill: Type.TUnion<[Type.TObject<{
slug: Type.TString;
displayName: Type.TString;
summary: Type.TOptional<Type.TString>;
tags: Type.TOptional<Type.TRecord<"^.*$", Type.TString>>;
createdAt: Type.TInteger;
updatedAt: Type.TInteger;
}>, Type.TNull]>;
latestVersion: Type.TOptional<Type.TUnion<[Type.TObject<{
version: Type.TString;
createdAt: Type.TInteger;
changelog: Type.TOptional<Type.TString>;
}>, Type.TNull]>>;
metadata: Type.TOptional<Type.TUnion<[Type.TObject<{
os: Type.TOptional<Type.TUnion<[Type.TArray<Type.TString>, Type.TNull]>>;
systems: Type.TOptional<Type.TUnion<[Type.TArray<Type.TString>, Type.TNull]>>;
}>, Type.TNull]>>;
owner: Type.TOptional<Type.TUnion<[Type.TObject<{
handle: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
displayName: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
image: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
}>, Type.TNull]>>;
}>;
/** Security verdict report for installed/requested skills. */
export declare const SkillsSecurityVerdictsResultSchema: Type.TObject<{
schema: Type.TLiteral<"openclaw.skills.security-verdicts.v1">;
items: Type.TArray<Type.TObject<{
registry: Type.TString;
ok: Type.TBoolean;
decision: Type.TString;
reasons: Type.TArray<Type.TString>;
requestedSlug: Type.TString;
requestedVersion: Type.TString;
slug: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
version: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
displayName: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
publisherHandle: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
publisherDisplayName: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
createdAt: Type.TOptional<Type.TUnion<[Type.TInteger, Type.TNull]>>;
checkedAt: Type.TOptional<Type.TUnion<[Type.TInteger, Type.TNull]>>;
skillUrl: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
securityAuditUrl: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
securityStatus: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>;
securityPassed: Type.TOptional<Type.TUnion<[Type.TBoolean, Type.TNull]>>;
error: Type.TOptional<Type.TObject<{
code: Type.TOptional<Type.TString>;
message: Type.TOptional<Type.TString>;
}>>;
}>>;
}>;
/** Reads the rendered skill card for one installed skill. */
export declare const SkillsSkillCardParamsSchema: Type.TObject<{
agentId: Type.TOptional<Type.TString>;
skillKey: Type.TString;
}>;
/** Rendered skill card content and file metadata. */
export declare const SkillsSkillCardResultSchema: Type.TObject<{
schema: Type.TLiteral<"openclaw.skills.skill-card.v1">;
skillKey: Type.TString;
path: Type.TString;
sizeBytes: Type.TInteger;
content: Type.TString;
}>;
/** Lists skill-workshop proposals for the selected agent scope. */
export declare const SkillsProposalsListParamsSchema: Type.TObject<{
agentId: Type.TOptional<Type.TString>;
}>;
/** Proposal manifest response for dashboard/workshop list views. */
export declare const SkillsProposalsListResultSchema: Type.TObject<{
schema: Type.TLiteral<"openclaw.skill-workshop.proposals-manifest.v1">;
updatedAt: Type.TString;
proposals: Type.TArray<Type.TObject<{
id: Type.TString;
kind: Type.TUnion<[Type.TLiteral<"create">, Type.TLiteral<"update">]>;
status: Type.TUnion<[Type.TLiteral<"pending">, Type.TLiteral<"applied">, Type.TLiteral<"rejected">, Type.TLiteral<"quarantined">, Type.TLiteral<"stale">]>;
title: Type.TString;
description: Type.TString;
skillName: Type.TString;
skillKey: Type.TString;
createdAt: Type.TString;
updatedAt: Type.TString;
scanState: Type.TUnion<[Type.TLiteral<"pending">, Type.TLiteral<"clean">, Type.TLiteral<"failed">, Type.TLiteral<"quarantined">]>;
}>>;
}>;
/** Reads a proposal record plus editable draft/support content. */
export declare const SkillsProposalInspectParamsSchema: Type.TObject<{
agentId: Type.TOptional<Type.TString>;
proposalId: Type.TString;
}>;
/** Full proposal inspection result used before apply/revise decisions. */
export declare const SkillsProposalInspectResultSchema: Type.TObject<{
record: Type.TObject<{
schema: Type.TLiteral<"openclaw.skill-workshop.proposal.v1">;
id: Type.TString;
kind: Type.TUnion<[Type.TLiteral<"create">, Type.TLiteral<"update">]>;
status: Type.TUnion<[Type.TLiteral<"pending">, Type.TLiteral<"applied">, Type.TLiteral<"rejected">, Type.TLiteral<"quarantined">, Type.TLiteral<"stale">]>;
title: Type.TString;
description: Type.TString;
createdAt: Type.TString;
updatedAt: Type.TString;
createdBy: Type.TUnion<[Type.TLiteral<"skill-workshop">, Type.TLiteral<"cli">, Type.TLiteral<"gateway">]>;
origin: Type.TOptional<Type.TObject<{
agentId: Type.TOptional<Type.TString>;
sessionKey: Type.TOptional<Type.TString>;
runId: Type.TOptional<Type.TString>;
messageId: Type.TOptional<Type.TString>;
}>>;
proposedVersion: Type.TString;
draftFile: Type.TLiteral<"PROPOSAL.md">;
draftHash: Type.TString;
supportFiles: Type.TOptional<Type.TArray<Type.TObject<{
path: Type.TString;
sizeBytes: Type.TInteger;
hash: Type.TString;
targetExisted: Type.TOptional<Type.TBoolean>;
targetContentHash: Type.TOptional<Type.TString>;
}>>>;
target: Type.TObject<{
skillName: Type.TString;
skillKey: Type.TString;
skillDir: Type.TString;
skillFile: Type.TString;
source: Type.TOptional<Type.TString>;
currentContentHash: Type.TOptional<Type.TString>;
}>;
scan: Type.TObject<{
state: Type.TUnion<[Type.TLiteral<"pending">, Type.TLiteral<"clean">, Type.TLiteral<"failed">, Type.TLiteral<"quarantined">]>;
scannedAt: Type.TString;
critical: Type.TInteger;
warn: Type.TInteger;
info: Type.TInteger;
findings: Type.TArray<Type.TObject<{
ruleId: Type.TString;
severity: Type.TUnion<[Type.TLiteral<"info">, Type.TLiteral<"warn">, Type.TLiteral<"critical">]>;
file: Type.TString;
line: Type.TInteger;
message: Type.TString;
evidence: Type.TString;
}>>;
}>;
goal: Type.TOptional<Type.TString>;
evidence: Type.TOptional<Type.TString>;
appliedAt: Type.TOptional<Type.TString>;
rejectedAt: Type.TOptional<Type.TString>;
quarantinedAt: Type.TOptional<Type.TString>;
staleAt: Type.TOptional<Type.TString>;
statusReason: Type.TOptional<Type.TString>;
}>;
content: Type.TString;
supportFiles: Type.TOptional<Type.TArray<Type.TObject<{
path: Type.TString;
content: Type.TString;
}>>>;
}>;
/** Creates a proposal for a new skill. */
export declare const SkillsProposalCreateParamsSchema: Type.TObject<{
agentId: Type.TOptional<Type.TString>;
name: Type.TString;
description: Type.TString;
content: Type.TString;
supportFiles: Type.TOptional<Type.TArray<Type.TObject<{
path: Type.TString;
content: Type.TString;
}>>>;
goal: Type.TOptional<Type.TString>;
evidence: Type.TOptional<Type.TString>;
}>;
/** Creates a proposal to update an existing skill. */
export declare const SkillsProposalUpdateParamsSchema: Type.TObject<{
agentId: Type.TOptional<Type.TString>;
skillName: Type.TString;
description: Type.TOptional<Type.TString>;
content: Type.TString;
supportFiles: Type.TOptional<Type.TArray<Type.TObject<{
path: Type.TString;
content: Type.TString;
}>>>;
goal: Type.TOptional<Type.TString>;
evidence: Type.TOptional<Type.TString>;
}>;
/** Replaces draft content/support files for an existing proposal. */
export declare const SkillsProposalReviseParamsSchema: Type.TObject<{
agentId: Type.TOptional<Type.TString>;
proposalId: Type.TString;
content: Type.TString;
supportFiles: Type.TOptional<Type.TArray<Type.TObject<{
path: Type.TString;
content: Type.TString;
}>>>;
description: Type.TOptional<Type.TString>;
goal: Type.TOptional<Type.TString>;
evidence: Type.TOptional<Type.TString>;
}>;
/** Starts an agent turn that revises a pending proposal from natural-language instructions. */
export declare const SkillsProposalRequestRevisionParamsSchema: Type.TObject<{
agentId: Type.TOptional<Type.TString>;
targetAgentId: Type.TOptional<Type.TString>;
proposalId: Type.TString;
instructions: Type.TString;
sessionKey: Type.TString;
sessionId: Type.TOptional<Type.TString>;
idempotencyKey: Type.TString;
}>;
/** Chat-run acknowledgement returned after queueing a Skill Workshop revision request. */
export declare const SkillsProposalRequestRevisionResultSchema: Type.TObject<{
runId: Type.TString;
status: Type.TUnion<[Type.TLiteral<"started">, Type.TLiteral<"in_flight">, Type.TLiteral<"ok">]>;
}>;
/** Shared approve/reject/quarantine action payload for one proposal. */
export declare const SkillsProposalActionParamsSchema: Type.TObject<{
agentId: Type.TOptional<Type.TString>;
proposalId: Type.TString;
reason: Type.TOptional<Type.TString>;
}>;
/** Result returned after applying a skill proposal to disk. */
export declare const SkillsProposalApplyResultSchema: Type.TObject<{
record: Type.TObject<{
schema: Type.TLiteral<"openclaw.skill-workshop.proposal.v1">;
id: Type.TString;
kind: Type.TUnion<[Type.TLiteral<"create">, Type.TLiteral<"update">]>;
status: Type.TUnion<[Type.TLiteral<"pending">, Type.TLiteral<"applied">, Type.TLiteral<"rejected">, Type.TLiteral<"quarantined">, Type.TLiteral<"stale">]>;
title: Type.TString;
description: Type.TString;
createdAt: Type.TString;
updatedAt: Type.TString;
createdBy: Type.TUnion<[Type.TLiteral<"skill-workshop">, Type.TLiteral<"cli">, Type.TLiteral<"gateway">]>;
origin: Type.TOptional<Type.TObject<{
agentId: Type.TOptional<Type.TString>;
sessionKey: Type.TOptional<Type.TString>;
runId: Type.TOptional<Type.TString>;
messageId: Type.TOptional<Type.TString>;
}>>;
proposedVersion: Type.TString;
draftFile: Type.TLiteral<"PROPOSAL.md">;
draftHash: Type.TString;
supportFiles: Type.TOptional<Type.TArray<Type.TObject<{
path: Type.TString;
sizeBytes: Type.TInteger;
hash: Type.TString;
targetExisted: Type.TOptional<Type.TBoolean>;
targetContentHash: Type.TOptional<Type.TString>;
}>>>;
target: Type.TObject<{
skillName: Type.TString;
skillKey: Type.TString;
skillDir: Type.TString;
skillFile: Type.TString;
source: Type.TOptional<Type.TString>;
currentContentHash: Type.TOptional<Type.TString>;
}>;
scan: Type.TObject<{
state: Type.TUnion<[Type.TLiteral<"pending">, Type.TLiteral<"clean">, Type.TLiteral<"failed">, Type.TLiteral<"quarantined">]>;
scannedAt: Type.TString;
critical: Type.TInteger;
warn: Type.TInteger;
info: Type.TInteger;
findings: Type.TArray<Type.TObject<{
ruleId: Type.TString;
severity: Type.TUnion<[Type.TLiteral<"info">, Type.TLiteral<"warn">, Type.TLiteral<"critical">]>;
file: Type.TString;
line: Type.TInteger;
message: Type.TString;
evidence: Type.TString;
}>>;
}>;
goal: Type.TOptional<Type.TString>;
evidence: Type.TOptional<Type.TString>;
appliedAt: Type.TOptional<Type.TString>;
rejectedAt: Type.TOptional<Type.TString>;
quarantinedAt: Type.TOptional<Type.TString>;
staleAt: Type.TOptional<Type.TString>;
statusReason: Type.TOptional<Type.TString>;
}>;
targetSkillFile: Type.TString;
}>;
/** Proposal record result returned after non-apply proposal actions. */
export declare const SkillsProposalRecordResultSchema: Type.TObject<{
schema: Type.TLiteral<"openclaw.skill-workshop.proposal.v1">;
id: Type.TString;
kind: Type.TUnion<[Type.TLiteral<"create">, Type.TLiteral<"update">]>;
status: Type.TUnion<[Type.TLiteral<"pending">, Type.TLiteral<"applied">, Type.TLiteral<"rejected">, Type.TLiteral<"quarantined">, Type.TLiteral<"stale">]>;
title: Type.TString;
description: Type.TString;
createdAt: Type.TString;
updatedAt: Type.TString;
createdBy: Type.TUnion<[Type.TLiteral<"skill-workshop">, Type.TLiteral<"cli">, Type.TLiteral<"gateway">]>;
origin: Type.TOptional<Type.TObject<{
agentId: Type.TOptional<Type.TString>;
sessionKey: Type.TOptional<Type.TString>;
runId: Type.TOptional<Type.TString>;
messageId: Type.TOptional<Type.TString>;
}>>;
proposedVersion: Type.TString;
draftFile: Type.TLiteral<"PROPOSAL.md">;
draftHash: Type.TString;
supportFiles: Type.TOptional<Type.TArray<Type.TObject<{
path: Type.TString;
sizeBytes: Type.TInteger;
hash: Type.TString;
targetExisted: Type.TOptional<Type.TBoolean>;
targetContentHash: Type.TOptional<Type.TString>;
}>>>;
target: Type.TObject<{
skillName: Type.TString;
skillKey: Type.TString;
skillDir: Type.TString;
skillFile: Type.TString;
source: Type.TOptional<Type.TString>;
currentContentHash: Type.TOptional<Type.TString>;
}>;
scan: Type.TObject<{
state: Type.TUnion<[Type.TLiteral<"pending">, Type.TLiteral<"clean">, Type.TLiteral<"failed">, Type.TLiteral<"quarantined">]>;
scannedAt: Type.TString;
critical: Type.TInteger;
warn: Type.TInteger;
info: Type.TInteger;
findings: Type.TArray<Type.TObject<{
ruleId: Type.TString;
severity: Type.TUnion<[Type.TLiteral<"info">, Type.TLiteral<"warn">, Type.TLiteral<"critical">]>;
file: Type.TString;
line: Type.TInteger;
message: Type.TString;
evidence: Type.TString;
}>>;
}>;
goal: Type.TOptional<Type.TString>;
evidence: Type.TOptional<Type.TString>;
appliedAt: Type.TOptional<Type.TString>;
rejectedAt: Type.TOptional<Type.TString>;
quarantinedAt: Type.TOptional<Type.TString>;
staleAt: Type.TOptional<Type.TString>;
statusReason: Type.TOptional<Type.TString>;
}>;
/** Reads the configured tool catalog for an agent. */
export declare const ToolsCatalogParamsSchema: Type.TObject<{
agentId: Type.TOptional<Type.TString>;
includePlugins: Type.TOptional<Type.TBoolean>;
}>;
/** Reads the effective tool set for one session. */
export declare const ToolsEffectiveParamsSchema: Type.TObject<{
agentId: Type.TOptional<Type.TString>;
sessionKey: Type.TString;
}>;
/** Invokes one tool through the gateway tool dispatcher. */
export declare const ToolsInvokeParamsSchema: Type.TObject<{
name: Type.TString;
args: Type.TOptional<Type.TRecord<"^.*$", Type.TUnknown>>;
sessionKey: Type.TOptional<Type.TString>;
agentId: Type.TOptional<Type.TString>;
confirm: Type.TOptional<Type.TBoolean>;
idempotencyKey: Type.TOptional<Type.TString>;
}>;
/** Tool profile shown in catalog views. */
export declare const ToolCatalogProfileSchema: Type.TObject<{
id: Type.TUnion<[Type.TLiteral<"minimal">, Type.TLiteral<"coding">, Type.TLiteral<"messaging">, Type.TLiteral<"full">]>;
label: Type.TString;
}>;
/** Tool catalog entry before session-specific filtering is applied. */
export declare const ToolCatalogEntrySchema: Type.TObject<{
id: Type.TString;
label: Type.TString;
description: Type.TString;
source: Type.TUnion<[Type.TLiteral<"core">, Type.TLiteral<"plugin">]>;
pluginId: Type.TOptional<Type.TString>;
optional: Type.TOptional<Type.TBoolean>;
risk: Type.TOptional<Type.TUnion<[Type.TLiteral<"low">, Type.TLiteral<"medium">, Type.TLiteral<"high">]>>;
tags: Type.TOptional<Type.TArray<Type.TString>>;
defaultProfiles: Type.TArray<Type.TUnion<[Type.TLiteral<"minimal">, Type.TLiteral<"coding">, Type.TLiteral<"messaging">, Type.TLiteral<"full">]>>;
}>;
/** Group of related catalog tools from core or a plugin. */
export declare const ToolCatalogGroupSchema: Type.TObject<{
id: Type.TString;
label: Type.TString;
source: Type.TUnion<[Type.TLiteral<"core">, Type.TLiteral<"plugin">]>;
pluginId: Type.TOptional<Type.TString>;
tools: Type.TArray<Type.TObject<{
id: Type.TString;
label: Type.TString;
description: Type.TString;
source: Type.TUnion<[Type.TLiteral<"core">, Type.TLiteral<"plugin">]>;
pluginId: Type.TOptional<Type.TString>;
optional: Type.TOptional<Type.TBoolean>;
risk: Type.TOptional<Type.TUnion<[Type.TLiteral<"low">, Type.TLiteral<"medium">, Type.TLiteral<"high">]>>;
tags: Type.TOptional<Type.TArray<Type.TString>>;
defaultProfiles: Type.TArray<Type.TUnion<[Type.TLiteral<"minimal">, Type.TLiteral<"coding">, Type.TLiteral<"messaging">, Type.TLiteral<"full">]>>;
}>>;
}>;
/** Tool catalog result for agent configuration UI. */
export declare const ToolsCatalogResultSchema: Type.TObject<{
agentId: Type.TString;
profiles: Type.TArray<Type.TObject<{
id: Type.TUnion<[Type.TLiteral<"minimal">, Type.TLiteral<"coding">, Type.TLiteral<"messaging">, Type.TLiteral<"full">]>;
label: Type.TString;
}>>;
groups: Type.TArray<Type.TObject<{
id: Type.TString;
label: Type.TString;
source: Type.TUnion<[Type.TLiteral<"core">, Type.TLiteral<"plugin">]>;
pluginId: Type.TOptional<Type.TString>;
tools: Type.TArray<Type.TObject<{
id: Type.TString;
label: Type.TString;
description: Type.TString;
source: Type.TUnion<[Type.TLiteral<"core">, Type.TLiteral<"plugin">]>;
pluginId: Type.TOptional<Type.TString>;
optional: Type.TOptional<Type.TBoolean>;
risk: Type.TOptional<Type.TUnion<[Type.TLiteral<"low">, Type.TLiteral<"medium">, Type.TLiteral<"high">]>>;
tags: Type.TOptional<Type.TArray<Type.TString>>;
defaultProfiles: Type.TArray<Type.TUnion<[Type.TLiteral<"minimal">, Type.TLiteral<"coding">, Type.TLiteral<"messaging">, Type.TLiteral<"full">]>>;
}>>;
}>>;
}>;
/** Effective tool entry after session/profile/channel/plugin filtering. */
export declare const ToolsEffectiveEntrySchema: Type.TObject<{
id: Type.TString;
label: Type.TString;
description: Type.TString;
rawDescription: Type.TString;
source: Type.TUnion<[Type.TLiteral<"core">, Type.TLiteral<"plugin">, Type.TLiteral<"channel">, Type.TLiteral<"mcp">]>;
pluginId: Type.TOptional<Type.TString>;
channelId: Type.TOptional<Type.TString>;
risk: Type.TOptional<Type.TUnion<[Type.TLiteral<"low">, Type.TLiteral<"medium">, Type.TLiteral<"high">]>>;
tags: Type.TOptional<Type.TArray<Type.TString>>;
}>;
/** Effective tool group shown to runtime/session callers. */
export declare const ToolsEffectiveGroupSchema: Type.TObject<{
id: Type.TUnion<[Type.TLiteral<"core">, Type.TLiteral<"plugin">, Type.TLiteral<"channel">, Type.TLiteral<"mcp">]>;
label: Type.TString;
source: Type.TUnion<[Type.TLiteral<"core">, Type.TLiteral<"plugin">, Type.TLiteral<"channel">, Type.TLiteral<"mcp">]>;
tools: Type.TArray<Type.TObject<{
id: Type.TString;
label: Type.TString;
description: Type.TString;
rawDescription: Type.TString;
source: Type.TUnion<[Type.TLiteral<"core">, Type.TLiteral<"plugin">, Type.TLiteral<"channel">, Type.TLiteral<"mcp">]>;
pluginId: Type.TOptional<Type.TString>;
channelId: Type.TOptional<Type.TString>;
risk: Type.TOptional<Type.TUnion<[Type.TLiteral<"low">, Type.TLiteral<"medium">, Type.TLiteral<"high">]>>;
tags: Type.TOptional<Type.TArray<Type.TString>>;
}>>;
}>;
/** Notice explaining runtime filtering such as quarantined tool schemas. */
export declare const ToolsEffectiveNoticeSchema: Type.TObject<{
id: Type.TString;
severity: Type.TUnion<[Type.TLiteral<"info">, Type.TLiteral<"warning">]>;
message: Type.TString;
}>;
/** Effective tool set for a session, including profile and filtering notices. */
export declare const ToolsEffectiveResultSchema: Type.TObject<{
agentId: Type.TString;
profile: Type.TString;
groups: Type.TArray<Type.TObject<{
id: Type.TUnion<[Type.TLiteral<"core">, Type.TLiteral<"plugin">, Type.TLiteral<"channel">, Type.TLiteral<"mcp">]>;
label: Type.TString;
source: Type.TUnion<[Type.TLiteral<"core">, Type.TLiteral<"plugin">, Type.TLiteral<"channel">, Type.TLiteral<"mcp">]>;
tools: Type.TArray<Type.TObject<{
id: Type.TString;
label: Type.TString;
description: Type.TString;
rawDescription: Type.TString;
source: Type.TUnion<[Type.TLiteral<"core">, Type.TLiteral<"plugin">, Type.TLiteral<"channel">, Type.TLiteral<"mcp">]>;
pluginId: Type.TOptional<Type.TString>;
channelId: Type.TOptional<Type.TString>;
risk: Type.TOptional<Type.TUnion<[Type.TLiteral<"low">, Type.TLiteral<"medium">, Type.TLiteral<"high">]>>;
tags: Type.TOptional<Type.TArray<Type.TString>>;
}>>;
}>>;
notices: Type.TOptional<Type.TArray<Type.TObject<{
id: Type.TString;
severity: Type.TUnion<[Type.TLiteral<"info">, Type.TLiteral<"warning">]>;
message: Type.TString;
}>>>;
}>;
/** Normalized error shape for tool invocation failures. */
export declare const ToolsInvokeErrorSchema: Type.TObject<{
code: Type.TString;
message: Type.TString;
details: Type.TOptional<Type.TUnknown>;
}>;
/** Tool invocation result, including approval handoff when required. */
export declare const ToolsInvokeResultSchema: Type.TObject<{
ok: Type.TBoolean;
toolName: Type.TString;
output: Type.TOptional<Type.TUnknown>;
requiresApproval: Type.TOptional<Type.TBoolean>;
approvalId: Type.TOptional<Type.TString>;
source: Type.TOptional<Type.TUnion<[Type.TLiteral<"core">, Type.TLiteral<"plugin">, Type.TLiteral<"mcp">, Type.TLiteral<"channel">, Type.TString]>>;
error: Type.TOptional<Type.TObject<{
code: Type.TString;
message: Type.TString;
details: Type.TOptional<Type.TUnknown>;
}>>;
}>;