@openagentid/sdk
API contract shipped by @openagentid/sdk 0.7.2. Exact exports, signatures, dependencies and availability.
All packages · Runnable examples · Start an agent
| Contract | Value |
|---|---|
| Package | @openagentid/sdk@0.7.2 |
| Entry point | @openagentid/sdk |
| Availability | Current integration path |
| Reference source | Published TypeScript declarations |
| Package engines | node >=20 |
Entry points
@openagentid/sdk/agent@openagentid/sdk/identity@openagentid/sdk/credentials@openagentid/sdk/verification@openagentid/sdk/skills@openagentid/sdk/errors@openagentid/sdk/glyph@openagentid/sdk/identity-verification@openagentid/sdk/verification-api@openagentid/sdk/oats@openagentid/sdk/characters@openagentid/sdk/character-api@openagentid/sdk/character-state@openagentid/sdk/character-animation@openagentid/sdk/character-player@openagentid/sdk/browser@openagentid/sdk/local
Before integrating
The published VERSION constant is still the literal "0.6.0" in the 0.7.2 archive. Use package metadata or your lockfile to identify the installed release; do not use VERSION as a release check.
When using @openagentid/crypto-wasm 0.1.1 for ACT verification, call the SDK verifier builder .atTime(Math.floor(Date.now() / 1000)) on every verification. The default WASM system-clock path traps in Node. Supply trusted receiver current epoch seconds; never token-supplied time or a timestamp captured once at startup. The complete ACT example covers this requirement.
In SDK 0.7.2, withAct and requireActExpress do not expose a verification-clock option. The raw crypto-wasm 0.1.1 binding alone therefore traps for these wrappers; use the tested fluent .atTime(...) example, or qualify a binding adapter that supplies fresh trusted receiver time on every verification.
This reference is generated from the integrity-verified npm archive for this exact version. Signatures describe the public contract; they are not standalone programs. Complete examples are checked separately.
Import conditions
Use the public entry point above. The package resolves it to these shipped files; do not import its internal files directly.
| Condition | Published file |
|---|---|
| types | ./dist/index.d.ts |
| import | ./dist/index.js |
| require | ./dist/index.cjs |
Exports
actActClaims— typeActVerifierBuilderActVerifyOptions— typeAgentActivity— typeagentAvatarAgentAvatar— typeAgentIdentityProof— typeAgentKeys— typeallowAllSkillsArsenalClient— typeassertAncestorassertScopesassertVerifiedIdentityAuthContext— typeAvatarExpression— typeavatarExpressionSchemaAvatarOptions— typeAvatarStatus— typeCharacterAccessory— typeCharacterAccessoryDescription— typeCharacterAnimator— typeCharacterAnimatorOptions— typeCharacterApiHandlerOptions— typecharacterApiOpenApiCharacterAppearance— typecharacterAppearanceSchemaCharacterDescriptor— typeCharacterEyeFrame— typeCharacterEyePlacement— typeCharacterEyeStyle— typeCharacterFinish— typeCharacterFrame— typeCharacterOptions— typeCharacterRuntimeState— typeCharacterShape— typeCharacterSkin— typeCharacterSkinDescription— typeCharacterStateUpdate— typeCharacterView— typeConfigErrorCreateAgentInput— typecreateAgentInputSchemacreateCharacterAnimatorcreateCharacterApiHandlercreateCredentialHandlecreateIdentityVerificationHandlercreateOatsEvidenceVerifierCredentialErrorCredentialHandle— typeDEFAULT_NAMESPACEDEFAULT_REQUEST_TIMEOUT_MSdenyAllSkillsDid— typeDID_REGEXdidSchemaErrorCodeErrorCodeValue— typeErrorDetails— typeexpressionEyesexpressionForStatusextractBearerTokenEyeGeometry— typegenerateCharactergetCharacterAccessoriesgetCharacterExpressionsgetCharacterSkinsgetCharacterStatusesgetErrorMessageglyphCodewordglyphEndpointGlyphOptions— typeIdentityDocument— typeidentityDocumentSchemaIdentityErrorIdentityKeyPurpose— typeIdentityProvider— typeIdentityVerificationErrorIdentityVerificationFailure— typeIdentityVerificationHandlerOptions— typeIdentityVerifierIdentityVerifierConfig— typeInMemorySkillsPolicyInputValidationErrorisAgentAvatarDidIssuedCredential— typeKeyCryptoBinding— typekeysLEGACY_DID_REGEXLineageAuthorityContext— typeLiveEyeState— typeLogger— typeoasGlyphOATS_WEIGHTSOatsComponentScore— typeOatsCompositeScore— typeOatsCredential— typeOatsErrorOatsEvidenceType— typeOatsEvidenceVerifier— typeOatsEvidenceVerifierConfig— typeOatsIssuerAssertionDocument— typeoatsMeetsThresholdOatsScorerOptions— typeOatsVerificationContext— typeOpenAgentOpenAgentClients— typeOpenAgentConfig— typeOpenAgentErrorOpenAgentInstance— typeOpenAgentRuntimeparseAvatarOverrideparseCharacterAccessoriesparseCharacterAppearanceparseCharacterStateparseIdentityDocumentPrivilegedAuthorityVerificationClientPrivilegedAuthorityVerifier— typeproviderSchemaRemoteIdentityVerificationOptions— typerenderCharacterSvgReplayClaim— typeRequireActConfig— typerequireActExpressresolveConfigResolvedIdentityDocument— typeResolvedOpenAgentConfig— typeRevocationCheck— typescopeSchemaSelfRootAuthorization— typesetActCryptoBindingsetKeyCryptoBindingSignedAssertion— typesilentLoggerSkillDeniedErrorSkillId— typeSkillsPolicy— typetoIdentityProvidertoVerificationClientVerificationClient— typeVerificationErrorVerifiedAgentIdentity— typeVerifiedOatsEvidence— typeVerifiedOatsScorerVerifiedOwner— typeVerifyIdentityOptions— typeverifyIdentityRemoteVerifyRequestOptions— typeVERSIONwithActwrapError
act
The ACT namespace.
declare const act: {
readonly verify: (token: Uint8Array) => ActVerifierBuilder;
readonly setCryptoBinding: typeof setActCryptoBinding;
};Source: @openagentid/sdk@0.7.2, dist/index.d.ts:124.
ActClaims
The claims of a verified ACT, as returned by the canonical verifier.
Type-only declaration; it is not a runtime value.
interface ActClaims {
jti: string;
sub: string;
iss: string;
aud: string[];
iat: number;
nbf: number;
exp: number;
tenant_id: string;
scope: string[];
cnf?: {
key_fingerprint: string;
alg: string;
};
delegation?: {
allow_delegation: boolean;
max_depth: number;
};
ext?: Record<string, unknown>;
}Source: @openagentid/sdk@0.7.2, dist/index.d.ts:44.
ActVerifierBuilder
Fluent ACT verifier, built by {@link act.verify}.
declare class ActVerifierBuilder {
constructor(token: Uint8Array);
issuer(iss: string): this;
forAudience(audience: string): this;
requireScope(scope: string): this;
requireScopes(scopes: string[]): this;
trustedKeys(keys: Uint8Array[]): this;
withLeeway(seconds: number): this;
atTime(unixSeconds: number): this;
run(): Promise<ActClaims>;
}Source: @openagentid/sdk@0.7.2, dist/index.d.ts:102.
ActVerifyOptions
Options accepted by the fluent verifier.
Type-only declaration; it is not a runtime value.
interface ActVerifyOptions {
issuer?: string;
audience?: string;
scopes?: string[];
trustedKeys?: Uint8Array[];
leewaySeconds?: number;
nowUnixSeconds?: number;
}Source: @openagentid/sdk@0.7.2, dist/index.d.ts:77.
AgentActivity
Type-only declaration; it is not a runtime value.
type AgentActivity = 'idle' | 'listening' | 'reasoning' | 'working' | 'speaking' | 'success' | 'blocked' | 'error';Source: @openagentid/sdk@0.7.2, dist/character-state.d.ts:4.
agentAvatar
Return an external override or a self-contained deterministic SVG data URL.
declare function agentAvatar(did: string, profile?: AgentAvatar, options?: AvatarOptions): string;Source: @openagentid/sdk@0.7.2, dist/glyph.d.ts:35.
AgentAvatar
Type-only declaration; it is not a runtime value.
interface AgentAvatar {
avatarOverride?: string | null;
avatarSkin?: CharacterAppearance | null;
avatarExpression?: AvatarExpression;
}Source: @openagentid/sdk@0.7.2, dist/glyph.d.ts:11.
AgentIdentityProof
Type-only declaration; it is not a runtime value.
interface AgentIdentityProof {
readonly token: string;
readonly delegations: readonly string[];
}Source: @openagentid/sdk@0.7.2, dist/identity-verification.d.ts:42.
AgentKeys
An agent's key material, derived from one seed.
Type-only declaration; it is not a runtime value.
interface AgentKeys {
readonly seed: Uint8Array;
readonly signingKey: Uint8Array;
readonly verifyingKey: Uint8Array;
readonly encryptionSecretKey: Uint8Array;
readonly encryptionPublicKey: Uint8Array;
}Source: @openagentid/sdk@0.7.2, dist/index.d.ts:235.
allowAllSkills
Policy that allows any skill (dangerous — use only in tests).
declare const allowAllSkills: SkillsPolicy;Source: @openagentid/sdk@0.7.2, dist/skills.d.ts:47.
ArsenalClient
Arsenal broker client facade. The real client lives in @openagentid/arsenal-sdk
and is injected by the application; see INTEGRATION_NOTES.md.
Type-only declaration; it is not a runtime value.
interface ArsenalClient {
requestCredential(params: {
agentDid: Did;
provider: string;
scopes?: readonly string[];
}): Promise<IssuedCredential>;
release?(credentialProxyUrl: string): Promise<void>;
}Source: @openagentid/sdk@0.7.2, dist/credentials.d.ts:51.
assertAncestor
Assert that ctx.lineage contains ancestor.
declare function assertAncestor(ctx: AuthContext, ancestor: Did): void;Source: @openagentid/sdk@0.7.2, dist/verification.d.ts:110.
assertScopes
Assert that ctx holds every scope in required.
declare function assertScopes(ctx: AuthContext, required: readonly string[]): void;Source: @openagentid/sdk@0.7.2, dist/verification.d.ts:108.
assertVerifiedIdentity
Validate an authority verdict's root binding; this does not verify a signature.
declare function assertVerifiedIdentity(value: unknown, expectedDid?: string, now?: number): asserts value is VerifiedAgentIdentity;Source: @openagentid/sdk@0.7.2, dist/identity-verification.d.ts:109.
AuthContext
A resolved, authenticated caller identity.
Type-only declaration; it is not a runtime value.
interface AuthContext {
readonly did: Did;
readonly root: Did;
readonly lineage: readonly Did[];
readonly lineageAuthority?: LineageAuthorityContext;
readonly scopes: readonly string[];
readonly expiresAt: number;
readonly presentedToken?: string;
readonly claims?: Readonly<Record<string, unknown>>;
}Source: @openagentid/sdk@0.7.2, dist/verification.d.ts:44.
AvatarExpression
Type-only declaration; it is not a runtime value.
type AvatarExpression = typeof CHARACTER_EXPRESSIONS[number];Source: @openagentid/sdk@0.7.2, dist/character-state.d.ts:3.
avatarExpressionSchema
declare const avatarExpressionSchema: z.ZodEnum<[
"neutral",
"attentive",
"surprised",
"excited",
"happy",
"laughing",
"angry",
"sad",
"scared",
"suspicious",
"confused",
"curious",
"proud",
"shy",
"unimpressed",
"sleepy",
"thoughtful",
"concerned"
]>;Source: @openagentid/sdk@0.7.2, dist/identity.d.ts:100.
AvatarOptions
Type-only declaration; it is not a runtime value.
interface AvatarOptions extends GlyphOptions {
view?: CharacterView;
expression?: AvatarExpression;
animated?: boolean;
state?: LiveEyeState;
}Source: @openagentid/sdk@0.7.2, dist/glyph.d.ts:19.
AvatarStatus
Type-only declaration; it is not a runtime value.
type AvatarStatus = AvatarExpression | AgentActivity;Source: @openagentid/sdk@0.7.2, dist/character-state.d.ts:5.
CharacterAccessory
Independent, package-owned wearables in the shared face coordinate space.
Type-only declaration; it is not a runtime value.
type CharacterAccessory = 'glasses' | 'headphones';Source: @openagentid/sdk@0.7.2, dist/characters.d.ts:6.
CharacterAccessoryDescription
Type-only declaration; it is not a runtime value.
interface CharacterAccessoryDescription {
readonly id: CharacterAccessory;
readonly label: string;
readonly description: string;
}Source: @openagentid/sdk@0.7.2, dist/characters.d.ts:7.
CharacterAnimator
Type-only declaration; it is not a runtime value.
interface CharacterAnimator {
sample(atMs?: number): CharacterFrame;
update(state: CharacterStateUpdate, atMs?: number): CharacterRuntimeState;
getState(): CharacterRuntimeState;
setReducedMotion(value: boolean, atMs?: number): void;
}Source: @openagentid/sdk@0.7.2, dist/character-animation.d.ts:23.
CharacterAnimatorOptions
Type-only declaration; it is not a runtime value.
interface CharacterAnimatorOptions extends CharacterOptions {
readonly transitionMs?: number;
readonly reducedMotion?: boolean;
readonly now?: () => number;
}Source: @openagentid/sdk@0.7.2, dist/character-animation.d.ts:4.
CharacterApiHandlerOptions
Type-only declaration; it is not a runtime value.
interface CharacterApiHandlerOptions {
readonly basePath?: string;
}Source: @openagentid/sdk@0.7.2, dist/character-api.d.ts:1.
characterApiOpenApi
Bundled OpenAPI 3.1 contract; mirrored in docs/character-api.openapi.json.
declare const characterApiOpenApi: {
readonly openapi: "3.1.0";
readonly info: {
readonly title: "OpenAgentID Character API";
readonly version: "0.7.2";
readonly description: "Public, unauthenticated stateless deterministic agent decoration. Autos is the default rounded pill family. The catalog contains 17 families and 62 distinct character kinds, including Halloween, Thanksgiving and Christmas. Avatar rendering frames the face by default; view=full restores the complete character. Skin controls body and face geometry; expressions and live-v1 eyes are shared across skins. This API neither mints identities nor verifies possession, ownership, lineage, revocation or permissions. No secrets, external assets, JavaScript, CSS or fonts. Every response including errors and 304 includes wildcard CORS; credentials are not required. Unknown and duplicate query parameters are rejected. Input, streamed body chunks and geometry are bounded; hosted infrastructure supplies request rate and duration limits. Runtime state resolves state.expression before status mapping, then outer preferred expression, then neutral. Status is presentation state only and establishes no agent activity or authority. Independent glasses and headphones can be combined on every family. Accessories default to an empty selection, do not change identity-derived shape/color or live-eye state, and normalize to catalog order. Unknown, duplicate or malformed selections are refused. Every family supports shared finish (plush default, flat optional) and eyePlacement (face default, raised optional). These strictly closed appearance selectors do not change identity-derived shape/color or runtime state. Descriptors include both resolved values.";
};
readonly servers: readonly [
{
readonly url: "/v1/characters";
}
];
readonly security: readonly [
];
readonly paths: {
readonly "/skins": {
readonly get: {
readonly summary: "List versioned character skins";
readonly parameters: readonly [
{
readonly $ref: "#/components/parameters/IfNoneMatch";
}
];
readonly "x-reject-unknown-query-parameters": true;
readonly "x-reject-duplicate-query-parameters": true;
readonly responses: {
readonly "200": {
readonly description: "Deterministic representation; public max-age=3600, must-revalidate.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
readonly ETag: {
readonly $ref: "#/components/headers/ETag";
};
readonly "Content-Length": {
readonly $ref: "#/components/headers/ContentLength";
};
};
readonly content: {
readonly "application/json": {
readonly schema: {
readonly type: "array";
readonly items: {
readonly $ref: "#/components/schemas/CharacterSkinV1";
};
};
};
};
};
readonly "304": {
readonly description: "Matching validator, no body. CORS, ETag and SVG security headers are preserved.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
readonly ETag: {
readonly $ref: "#/components/headers/ETag";
};
readonly "Content-Length": {
readonly $ref: "#/components/headers/ContentLength";
};
};
};
readonly "400": {
readonly $ref: "#/components/responses/InvalidRequest";
};
readonly "404": {
readonly $ref: "#/components/responses/NotFound";
};
readonly "405": {
readonly $ref: "#/components/responses/MethodNotAllowed";
};
};
};
readonly head: {
readonly summary: "Headers for list versioned character skins";
readonly parameters: readonly [
{
readonly $ref: "#/components/parameters/IfNoneMatch";
}
];
readonly "x-reject-unknown-query-parameters": true;
readonly "x-reject-duplicate-query-parameters": true;
readonly description: "Same status, headers and Content-Length as GET, no response body.";
readonly responses: {
readonly "200": {
readonly description: "Deterministic representation; public max-age=3600, must-revalidate.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
readonly ETag: {
readonly $ref: "#/components/headers/ETag";
};
readonly "Content-Length": {
readonly $ref: "#/components/headers/ContentLength";
};
};
};
readonly "304": {
readonly description: "Matching validator, no body. CORS, ETag and SVG security headers are preserved.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
readonly ETag: {
readonly $ref: "#/components/headers/ETag";
};
readonly "Content-Length": {
readonly $ref: "#/components/headers/ContentLength";
};
};
};
readonly "400": {
readonly description: "Invalid request, no body.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
};
};
readonly "404": {
readonly description: "Not found, no body.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
};
};
readonly "405": {
readonly description: "Not allowed, no body.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
readonly Allow: {
readonly schema: {
readonly type: "string";
};
};
};
};
};
};
readonly options: {
readonly summary: "Public CORS preflight";
readonly parameters: readonly [
];
readonly responses: {
readonly "204": {
readonly description: "No body; schema-valid requests can be made cross-origin without credentials.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
readonly "Access-Control-Allow-Methods": {
readonly schema: {
readonly type: "string";
readonly const: "GET, HEAD, OPTIONS";
};
};
readonly "Access-Control-Allow-Headers": {
readonly schema: {
readonly type: "string";
readonly const: "Content-Type, If-None-Match";
};
};
readonly "Access-Control-Max-Age": {
readonly schema: {
readonly type: "integer";
readonly const: 86400;
};
};
};
};
readonly "400": {
readonly $ref: "#/components/responses/InvalidRequest";
};
readonly "404": {
readonly $ref: "#/components/responses/NotFound";
};
readonly "405": {
readonly $ref: "#/components/responses/MethodNotAllowed";
};
};
};
};
readonly "/statuses": {
readonly get: {
readonly summary: "List runtime status-to-expression mappings";
readonly parameters: readonly [
{
readonly $ref: "#/components/parameters/IfNoneMatch";
}
];
readonly "x-reject-unknown-query-parameters": true;
readonly "x-reject-duplicate-query-parameters": true;
readonly responses: {
readonly "200": {
readonly description: "Deterministic representation; public max-age=3600, must-revalidate.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
readonly ETag: {
readonly $ref: "#/components/headers/ETag";
};
readonly "Content-Length": {
readonly $ref: "#/components/headers/ContentLength";
};
};
readonly content: {
readonly "application/json": {
readonly schema: {
readonly type: "array";
readonly items: {
readonly $ref: "#/components/schemas/CharacterStatusV1";
};
readonly minItems: 26;
readonly maxItems: 26;
readonly description: "Immutable SDK mapping catalog serialized as JSON, including all expressions and runtime aliases.";
};
};
};
};
readonly "304": {
readonly description: "Matching validator, no body. CORS, ETag and SVG security headers are preserved.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
readonly ETag: {
readonly $ref: "#/components/headers/ETag";
};
readonly "Content-Length": {
readonly $ref: "#/components/headers/ContentLength";
};
};
};
readonly "400": {
readonly $ref: "#/components/responses/InvalidRequest";
};
readonly "404": {
readonly $ref: "#/components/responses/NotFound";
};
readonly "405": {
readonly $ref: "#/components/responses/MethodNotAllowed";
};
};
};
readonly head: {
readonly summary: "Headers for runtime status-to-expression mappings";
readonly parameters: readonly [
{
readonly $ref: "#/components/parameters/IfNoneMatch";
}
];
readonly "x-reject-unknown-query-parameters": true;
readonly "x-reject-duplicate-query-parameters": true;
readonly description: "Same status, headers and Content-Length as GET, no response body.";
readonly responses: {
readonly "200": {
readonly description: "Deterministic representation; public max-age=3600, must-revalidate.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
readonly ETag: {
readonly $ref: "#/components/headers/ETag";
};
readonly "Content-Length": {
readonly $ref: "#/components/headers/ContentLength";
};
};
};
readonly "304": {
readonly description: "Matching validator, no body. CORS, ETag and SVG security headers are preserved.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
readonly ETag: {
readonly $ref: "#/components/headers/ETag";
};
readonly "Content-Length": {
readonly $ref: "#/components/headers/ContentLength";
};
};
};
readonly "400": {
readonly description: "Invalid request, no body.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
};
};
readonly "404": {
readonly description: "Not found, no body.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
};
};
readonly "405": {
readonly description: "Not allowed, no body.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
readonly Allow: {
readonly schema: {
readonly type: "string";
};
};
};
};
};
};
readonly options: {
readonly summary: "Public CORS preflight";
readonly parameters: readonly [
];
readonly responses: {
readonly "204": {
readonly description: "No body; schema-valid requests can be made cross-origin without credentials.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
readonly "Access-Control-Allow-Methods": {
readonly schema: {
readonly type: "string";
readonly const: "GET, HEAD, OPTIONS";
};
};
readonly "Access-Control-Allow-Headers": {
readonly schema: {
readonly type: "string";
readonly const: "Content-Type, If-None-Match";
};
};
readonly "Access-Control-Max-Age": {
readonly schema: {
readonly type: "integer";
readonly const: 86400;
};
};
};
};
readonly "400": {
readonly $ref: "#/components/responses/InvalidRequest";
};
readonly "404": {
readonly $ref: "#/components/responses/NotFound";
};
readonly "405": {
readonly $ref: "#/components/responses/MethodNotAllowed";
};
};
};
};
readonly "/svg/{did}": {
readonly get: {
readonly summary: "Render a character SVG";
readonly parameters: readonly [
{
readonly $ref: "#/components/parameters/did";
},
{
readonly $ref: "#/components/parameters/skin";
},
{
readonly $ref: "#/components/parameters/skinVersion";
},
{
readonly $ref: "#/components/parameters/eyeStyle";
},
{
readonly $ref: "#/components/parameters/size";
},
{
readonly $ref: "#/components/parameters/animated";
},
{
readonly $ref: "#/components/parameters/blink";
},
{
readonly $ref: "#/components/parameters/gazeX";
},
{
readonly $ref: "#/components/parameters/gazeY";
},
{
readonly $ref: "#/components/parameters/IfNoneMatch";
},
{
readonly $ref: "#/components/parameters/shape";
},
{
readonly $ref: "#/components/parameters/expression";
},
{
readonly $ref: "#/components/parameters/status";
},
{
readonly $ref: "#/components/parameters/view";
},
{
readonly $ref: "#/components/parameters/accessories";
},
{
readonly $ref: "#/components/parameters/finish";
},
{
readonly $ref: "#/components/parameters/eyePlacement";
}
];
readonly "x-reject-unknown-query-parameters": true;
readonly "x-reject-duplicate-query-parameters": true;
readonly responses: {
readonly "200": {
readonly description: "Deterministic representation; public max-age=3600, must-revalidate.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
readonly ETag: {
readonly $ref: "#/components/headers/ETag";
};
readonly "Content-Length": {
readonly $ref: "#/components/headers/ContentLength";
};
readonly "Content-Security-Policy": {
readonly $ref: "#/components/headers/SvgCsp";
};
};
readonly content: {
readonly "image/svg+xml": {
readonly schema: {
readonly type: "string";
};
};
};
};
readonly "304": {
readonly description: "Matching validator, no body. CORS, ETag and SVG security headers are preserved.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
readonly ETag: {
readonly $ref: "#/components/headers/ETag";
};
readonly "Content-Length": {
readonly $ref: "#/components/headers/ContentLength";
};
readonly "Content-Security-Policy": {
readonly $ref: "#/components/headers/SvgCsp";
};
};
};
readonly "400": {
readonly $ref: "#/components/responses/InvalidRequest";
};
readonly "404": {
readonly $ref: "#/components/responses/NotFound";
};
readonly "405": {
readonly $ref: "#/components/responses/MethodNotAllowed";
};
};
};
readonly head: {
readonly summary: "Headers for render a character svg";
readonly parameters: readonly [
{
readonly $ref: "#/components/parameters/did";
},
{
readonly $ref: "#/components/parameters/skin";
},
{
readonly $ref: "#/components/parameters/skinVersion";
},
{
readonly $ref: "#/components/parameters/eyeStyle";
},
{
readonly $ref: "#/components/parameters/size";
},
{
readonly $ref: "#/components/parameters/animated";
},
{
readonly $ref: "#/components/parameters/blink";
},
{
readonly $ref: "#/components/parameters/gazeX";
},
{
readonly $ref: "#/components/parameters/gazeY";
},
{
readonly $ref: "#/components/parameters/IfNoneMatch";
},
{
readonly $ref: "#/components/parameters/shape";
},
{
readonly $ref: "#/components/parameters/expression";
},
{
readonly $ref: "#/components/parameters/status";
},
{
readonly $ref: "#/components/parameters/view";
},
{
readonly $ref: "#/components/parameters/accessories";
},
{
readonly $ref: "#/components/parameters/finish";
},
{
readonly $ref: "#/components/parameters/eyePlacement";
}
];
readonly "x-reject-unknown-query-parameters": true;
readonly "x-reject-duplicate-query-parameters": true;
readonly description: "Same status, headers and Content-Length as GET, no response body.";
readonly responses: {
readonly "200": {
readonly description: "Deterministic representation; public max-age=3600, must-revalidate.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
readonly ETag: {
readonly $ref: "#/components/headers/ETag";
};
readonly "Content-Length": {
readonly $ref: "#/components/headers/ContentLength";
};
readonly "Content-Security-Policy": {
readonly $ref: "#/components/headers/SvgCsp";
};
};
};
readonly "304": {
readonly description: "Matching validator, no body. CORS, ETag and SVG security headers are preserved.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
readonly ETag: {
readonly $ref: "#/components/headers/ETag";
};
readonly "Content-Length": {
readonly $ref: "#/components/headers/ContentLength";
};
readonly "Content-Security-Policy": {
readonly $ref: "#/components/headers/SvgCsp";
};
};
};
readonly "400": {
readonly description: "Invalid request, no body.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
};
};
readonly "404": {
readonly description: "Not found, no body.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
};
};
readonly "405": {
readonly description: "Not allowed, no body.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
readonly Allow: {
readonly schema: {
readonly type: "string";
};
};
};
};
};
};
readonly options: {
readonly summary: "Public CORS preflight";
readonly parameters: readonly [
{
readonly $ref: "#/components/parameters/did";
},
{
readonly $ref: "#/components/parameters/skin";
},
{
readonly $ref: "#/components/parameters/skinVersion";
},
{
readonly $ref: "#/components/parameters/eyeStyle";
},
{
readonly $ref: "#/components/parameters/size";
},
{
readonly $ref: "#/components/parameters/animated";
},
{
readonly $ref: "#/components/parameters/blink";
},
{
readonly $ref: "#/components/parameters/gazeX";
},
{
readonly $ref: "#/components/parameters/gazeY";
},
{
readonly $ref: "#/components/parameters/shape";
},
{
readonly $ref: "#/components/parameters/expression";
},
{
readonly $ref: "#/components/parameters/status";
},
{
readonly $ref: "#/components/parameters/view";
},
{
readonly $ref: "#/components/parameters/accessories";
},
{
readonly $ref: "#/components/parameters/finish";
},
{
readonly $ref: "#/components/parameters/eyePlacement";
}
];
readonly responses: {
readonly "204": {
readonly description: "No body; schema-valid requests can be made cross-origin without credentials.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
readonly "Access-Control-Allow-Methods": {
readonly schema: {
readonly type: "string";
readonly const: "GET, HEAD, OPTIONS";
};
};
readonly "Access-Control-Allow-Headers": {
readonly schema: {
readonly type: "string";
readonly const: "Content-Type, If-None-Match";
};
};
readonly "Access-Control-Max-Age": {
readonly schema: {
readonly type: "integer";
readonly const: 86400;
};
};
};
};
readonly "400": {
readonly $ref: "#/components/responses/InvalidRequest";
};
readonly "404": {
readonly $ref: "#/components/responses/NotFound";
};
readonly "405": {
readonly $ref: "#/components/responses/MethodNotAllowed";
};
};
};
};
readonly "/{did}": {
readonly get: {
readonly summary: "Generate a character descriptor";
readonly parameters: readonly [
{
readonly $ref: "#/components/parameters/did";
},
{
readonly $ref: "#/components/parameters/skin";
},
{
readonly $ref: "#/components/parameters/skinVersion";
},
{
readonly $ref: "#/components/parameters/eyeStyle";
},
{
readonly $ref: "#/components/parameters/size";
},
{
readonly $ref: "#/components/parameters/animated";
},
{
readonly $ref: "#/components/parameters/blink";
},
{
readonly $ref: "#/components/parameters/gazeX";
},
{
readonly $ref: "#/components/parameters/gazeY";
},
{
readonly $ref: "#/components/parameters/IfNoneMatch";
},
{
readonly $ref: "#/components/parameters/shape";
},
{
readonly $ref: "#/components/parameters/expression";
},
{
readonly $ref: "#/components/parameters/status";
},
{
readonly $ref: "#/components/parameters/view";
},
{
readonly $ref: "#/components/parameters/accessories";
},
{
readonly $ref: "#/components/parameters/finish";
},
{
readonly $ref: "#/components/parameters/eyePlacement";
}
];
readonly "x-reject-unknown-query-parameters": true;
readonly "x-reject-duplicate-query-parameters": true;
readonly responses: {
readonly "200": {
readonly description: "Deterministic representation; public max-age=3600, must-revalidate.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
readonly ETag: {
readonly $ref: "#/components/headers/ETag";
};
readonly "Content-Length": {
readonly $ref: "#/components/headers/ContentLength";
};
};
readonly content: {
readonly "application/json": {
readonly schema: {
readonly $ref: "#/components/schemas/CharacterDescriptorV1";
};
};
};
};
readonly "304": {
readonly description: "Matching validator, no body. CORS, ETag and SVG security headers are preserved.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
readonly ETag: {
readonly $ref: "#/components/headers/ETag";
};
readonly "Content-Length": {
readonly $ref: "#/components/headers/ContentLength";
};
};
};
readonly "400": {
readonly $ref: "#/components/responses/InvalidRequest";
};
readonly "404": {
readonly $ref: "#/components/responses/NotFound";
};
readonly "405": {
readonly $ref: "#/components/responses/MethodNotAllowed";
};
};
};
readonly head: {
readonly summary: "Headers for generate a character descriptor";
readonly parameters: readonly [
{
readonly $ref: "#/components/parameters/did";
},
{
readonly $ref: "#/components/parameters/skin";
},
{
readonly $ref: "#/components/parameters/skinVersion";
},
{
readonly $ref: "#/components/parameters/eyeStyle";
},
{
readonly $ref: "#/components/parameters/size";
},
{
readonly $ref: "#/components/parameters/animated";
},
{
readonly $ref: "#/components/parameters/blink";
},
{
readonly $ref: "#/components/parameters/gazeX";
},
{
readonly $ref: "#/components/parameters/gazeY";
},
{
readonly $ref: "#/components/parameters/IfNoneMatch";
},
{
readonly $ref: "#/components/parameters/shape";
},
{
readonly $ref: "#/components/parameters/expression";
},
{
readonly $ref: "#/components/parameters/status";
},
{
readonly $ref: "#/components/parameters/view";
},
{
readonly $ref: "#/components/parameters/accessories";
},
{
readonly $ref: "#/components/parameters/finish";
},
{
readonly $ref: "#/components/parameters/eyePlacement";
}
];
readonly "x-reject-unknown-query-parameters": true;
readonly "x-reject-duplicate-query-parameters": true;
readonly description: "Same status, headers and Content-Length as GET, no response body.";
readonly responses: {
readonly "200": {
readonly description: "Deterministic representation; public max-age=3600, must-revalidate.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
readonly ETag: {
readonly $ref: "#/components/headers/ETag";
};
readonly "Content-Length": {
readonly $ref: "#/components/headers/ContentLength";
};
};
};
readonly "304": {
readonly description: "Matching validator, no body. CORS, ETag and SVG security headers are preserved.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
readonly ETag: {
readonly $ref: "#/components/headers/ETag";
};
readonly "Content-Length": {
readonly $ref: "#/components/headers/ContentLength";
};
};
};
readonly "400": {
readonly description: "Invalid request, no body.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
};
};
readonly "404": {
readonly description: "Not found, no body.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
};
};
readonly "405": {
readonly description: "Not allowed, no body.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
readonly Allow: {
readonly schema: {
readonly type: "string";
};
};
};
};
};
};
readonly options: {
readonly summary: "Public CORS preflight";
readonly parameters: readonly [
{
readonly $ref: "#/components/parameters/did";
},
{
readonly $ref: "#/components/parameters/skin";
},
{
readonly $ref: "#/components/parameters/skinVersion";
},
{
readonly $ref: "#/components/parameters/eyeStyle";
},
{
readonly $ref: "#/components/parameters/size";
},
{
readonly $ref: "#/components/parameters/animated";
},
{
readonly $ref: "#/components/parameters/blink";
},
{
readonly $ref: "#/components/parameters/gazeX";
},
{
readonly $ref: "#/components/parameters/gazeY";
},
{
readonly $ref: "#/components/parameters/shape";
},
{
readonly $ref: "#/components/parameters/expression";
},
{
readonly $ref: "#/components/parameters/status";
},
{
readonly $ref: "#/components/parameters/view";
},
{
readonly $ref: "#/components/parameters/accessories";
},
{
readonly $ref: "#/components/parameters/finish";
},
{
readonly $ref: "#/components/parameters/eyePlacement";
}
];
readonly responses: {
readonly "204": {
readonly description: "No body; schema-valid requests can be made cross-origin without credentials.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
readonly "Access-Control-Allow-Methods": {
readonly schema: {
readonly type: "string";
readonly const: "GET, HEAD, OPTIONS";
};
};
readonly "Access-Control-Allow-Headers": {
readonly schema: {
readonly type: "string";
readonly const: "Content-Type, If-None-Match";
};
};
readonly "Access-Control-Max-Age": {
readonly schema: {
readonly type: "integer";
readonly const: 86400;
};
};
};
};
readonly "400": {
readonly $ref: "#/components/responses/InvalidRequest";
};
readonly "404": {
readonly $ref: "#/components/responses/NotFound";
};
readonly "405": {
readonly $ref: "#/components/responses/MethodNotAllowed";
};
};
};
};
readonly "/generate": {
readonly post: {
readonly summary: "Generate a character descriptor from JSON";
readonly description: "Stateless and unauthenticated; no query parameters. Unknown fields are rejected at every level. Streamed body size is checked independently of Content-Length.";
readonly "x-max-body-bytes": 16384;
readonly "x-reject-unknown-query-parameters": true;
readonly requestBody: {
readonly required: true;
readonly content: {
readonly "application/json": {
readonly schema: {
readonly $ref: "#/components/schemas/CharacterGenerateRequestV1";
};
};
};
};
readonly responses: {
readonly "200": {
readonly description: "Generated descriptor; no-store, no ETag.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
};
readonly content: {
readonly "application/json": {
readonly schema: {
readonly $ref: "#/components/schemas/CharacterDescriptorV1";
};
};
};
};
readonly "400": {
readonly $ref: "#/components/responses/InvalidRequest";
};
readonly "404": {
readonly $ref: "#/components/responses/NotFound";
};
readonly "405": {
readonly $ref: "#/components/responses/MethodNotAllowed";
};
readonly "413": {
readonly $ref: "#/components/responses/BodyTooLarge";
};
readonly "415": {
readonly $ref: "#/components/responses/UnsupportedMediaType";
};
};
};
readonly options: {
readonly summary: "Public CORS preflight";
readonly parameters: readonly [
];
readonly responses: {
readonly "204": {
readonly description: "No body; schema-valid requests can be made cross-origin without credentials.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
readonly "Access-Control-Allow-Methods": {
readonly schema: {
readonly type: "string";
readonly const: "POST, OPTIONS";
};
};
readonly "Access-Control-Allow-Headers": {
readonly schema: {
readonly type: "string";
readonly const: "Content-Type, If-None-Match";
};
};
readonly "Access-Control-Max-Age": {
readonly schema: {
readonly type: "integer";
readonly const: 86400;
};
};
};
};
readonly "400": {
readonly $ref: "#/components/responses/InvalidRequest";
};
readonly "404": {
readonly $ref: "#/components/responses/NotFound";
};
readonly "405": {
readonly $ref: "#/components/responses/MethodNotAllowed";
};
};
};
};
readonly "/openapi.json": {
readonly get: {
readonly summary: "Read this OpenAPI schema";
readonly parameters: readonly [
{
readonly $ref: "#/components/parameters/IfNoneMatch";
}
];
readonly "x-reject-unknown-query-parameters": true;
readonly "x-reject-duplicate-query-parameters": true;
readonly responses: {
readonly "200": {
readonly description: "Deterministic representation; public max-age=3600, must-revalidate.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
readonly ETag: {
readonly $ref: "#/components/headers/ETag";
};
readonly "Content-Length": {
readonly $ref: "#/components/headers/ContentLength";
};
};
readonly content: {
readonly "application/json": {
readonly schema: {
readonly type: "object";
readonly description: "OpenAPI 3.1 document; servers[0].url reflects the configured mount path.";
};
};
};
};
readonly "304": {
readonly description: "Matching validator, no body. CORS, ETag and SVG security headers are preserved.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
readonly ETag: {
readonly $ref: "#/components/headers/ETag";
};
readonly "Content-Length": {
readonly $ref: "#/components/headers/ContentLength";
};
};
};
readonly "400": {
readonly $ref: "#/components/responses/InvalidRequest";
};
readonly "404": {
readonly $ref: "#/components/responses/NotFound";
};
readonly "405": {
readonly $ref: "#/components/responses/MethodNotAllowed";
};
};
};
readonly head: {
readonly summary: "Headers for read this openapi schema";
readonly parameters: readonly [
{
readonly $ref: "#/components/parameters/IfNoneMatch";
}
];
readonly "x-reject-unknown-query-parameters": true;
readonly "x-reject-duplicate-query-parameters": true;
readonly description: "Same status, headers and Content-Length as GET, no response body.";
readonly responses: {
readonly "200": {
readonly description: "Deterministic representation; public max-age=3600, must-revalidate.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
readonly ETag: {
readonly $ref: "#/components/headers/ETag";
};
readonly "Content-Length": {
readonly $ref: "#/components/headers/ContentLength";
};
};
};
readonly "304": {
readonly description: "Matching validator, no body. CORS, ETag and SVG security headers are preserved.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
readonly ETag: {
readonly $ref: "#/components/headers/ETag";
};
readonly "Content-Length": {
readonly $ref: "#/components/headers/ContentLength";
};
};
};
readonly "400": {
readonly description: "Invalid request, no body.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
};
};
readonly "404": {
readonly description: "Not found, no body.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
};
};
readonly "405": {
readonly description: "Not allowed, no body.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
readonly Allow: {
readonly schema: {
readonly type: "string";
};
};
};
};
};
};
readonly options: {
readonly summary: "Public CORS preflight";
readonly parameters: readonly [
];
readonly responses: {
readonly "204": {
readonly description: "No body; schema-valid requests can be made cross-origin without credentials.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
readonly "Access-Control-Allow-Methods": {
readonly schema: {
readonly type: "string";
readonly const: "GET, HEAD, OPTIONS";
};
};
readonly "Access-Control-Allow-Headers": {
readonly schema: {
readonly type: "string";
readonly const: "Content-Type, If-None-Match";
};
};
readonly "Access-Control-Max-Age": {
readonly schema: {
readonly type: "integer";
readonly const: 86400;
};
};
};
};
readonly "400": {
readonly $ref: "#/components/responses/InvalidRequest";
};
readonly "404": {
readonly $ref: "#/components/responses/NotFound";
};
readonly "405": {
readonly $ref: "#/components/responses/MethodNotAllowed";
};
};
};
};
readonly "/accessories": {
readonly get: {
readonly summary: "List combinable character accessories";
readonly parameters: readonly [
{
readonly $ref: "#/components/parameters/IfNoneMatch";
}
];
readonly "x-reject-unknown-query-parameters": true;
readonly "x-reject-duplicate-query-parameters": true;
readonly responses: {
readonly "200": {
readonly description: "Deterministic representation; public max-age=3600, must-revalidate.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
readonly ETag: {
readonly $ref: "#/components/headers/ETag";
};
readonly "Content-Length": {
readonly $ref: "#/components/headers/ContentLength";
};
};
readonly content: {
readonly "application/json": {
readonly schema: {
readonly type: "array";
readonly items: {
readonly $ref: "#/components/schemas/CharacterAccessoryDescriptionV1";
};
};
};
};
};
readonly "304": {
readonly description: "Matching validator, no body. CORS, ETag and SVG security headers are preserved.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
readonly ETag: {
readonly $ref: "#/components/headers/ETag";
};
readonly "Content-Length": {
readonly $ref: "#/components/headers/ContentLength";
};
};
};
readonly "400": {
readonly $ref: "#/components/responses/InvalidRequest";
};
readonly "404": {
readonly $ref: "#/components/responses/NotFound";
};
readonly "405": {
readonly $ref: "#/components/responses/MethodNotAllowed";
};
};
};
readonly head: {
readonly summary: "Headers for the character accessory catalog";
readonly parameters: readonly [
{
readonly $ref: "#/components/parameters/IfNoneMatch";
}
];
readonly "x-reject-unknown-query-parameters": true;
readonly "x-reject-duplicate-query-parameters": true;
readonly description: "Same status, headers and Content-Length as GET, no response body.";
readonly responses: {
readonly "200": {
readonly description: "Deterministic representation; public max-age=3600, must-revalidate.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
readonly ETag: {
readonly $ref: "#/components/headers/ETag";
};
readonly "Content-Length": {
readonly $ref: "#/components/headers/ContentLength";
};
};
};
readonly "304": {
readonly description: "Matching validator, no body. CORS, ETag and SVG security headers are preserved.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
readonly ETag: {
readonly $ref: "#/components/headers/ETag";
};
readonly "Content-Length": {
readonly $ref: "#/components/headers/ContentLength";
};
};
};
readonly "400": {
readonly description: "Invalid request, no body.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
};
};
readonly "404": {
readonly description: "Not found, no body.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
};
};
readonly "405": {
readonly description: "Not allowed, no body.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
readonly Allow: {
readonly schema: {
readonly type: "string";
};
};
};
};
};
};
readonly options: {
readonly summary: "Preflight for the character accessory catalog";
readonly parameters: readonly [
];
readonly responses: {
readonly "204": {
readonly description: "No body; schema-valid requests can be made cross-origin without credentials.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
readonly "Access-Control-Allow-Methods": {
readonly schema: {
readonly type: "string";
readonly const: "GET, HEAD, OPTIONS";
};
};
readonly "Access-Control-Allow-Headers": {
readonly schema: {
readonly type: "string";
readonly const: "Content-Type, If-None-Match";
};
};
readonly "Access-Control-Max-Age": {
readonly schema: {
readonly type: "integer";
readonly const: 86400;
};
};
};
};
readonly "400": {
readonly $ref: "#/components/responses/InvalidRequest";
};
readonly "404": {
readonly $ref: "#/components/responses/NotFound";
};
readonly "405": {
readonly $ref: "#/components/responses/MethodNotAllowed";
};
};
};
};
};
readonly components: {
readonly schemas: {
readonly AgentDid: {
readonly type: "string";
readonly maxLength: 512;
readonly pattern: "^did:(?:(?:oas:[a-z0-9][a-z0-9-]{0,63}|l1fe):agent(?::instance)?:[A-Za-z0-9._-]+|oas:agent-instance:[0-7][0-9A-HJKMNP-TV-Z]{25})(?![\\s\\S])";
readonly description: "Existing agent or agent:instance DID, including the literal IAM did:oas:agent-instance:<canonical uppercase ULID> avatar format. Generation preserves the assigned DID and neither verifies nor registers a principal; authentication schemas are unchanged.";
};
readonly CharacterAppearanceV1: {
readonly type: "object";
readonly additionalProperties: false;
readonly required: readonly [
"skin"
];
readonly properties: {
readonly skin: {
readonly type: "string";
readonly enum: readonly [
"autos",
"spacex",
"fold",
"sprig",
"ripple",
"halo",
"purl",
"prism",
"coil",
"kiln",
"wisp",
"relay",
"cairn",
"tuft",
"halloween",
"thanksgiving",
"christmas"
];
readonly default: "autos";
};
readonly skinVersion: {
readonly type: "integer";
readonly const: 1;
readonly default: 1;
};
readonly eyeStyle: {
readonly type: "string";
readonly const: "live-v1";
readonly default: "live-v1";
readonly description: "Shared geometry across all families. Future eye geometries receive new identifiers.";
};
readonly shape: {
readonly type: "string";
readonly enum: readonly [
"standard",
"slender",
"wide",
"circle",
"pebble",
"squircle",
"capsule",
"triangle",
"hexagon",
"cloud",
"droplet",
"kite",
"fan",
"bud",
"leaf",
"drop",
"wave",
"comet",
"satellite",
"mitt",
"hood",
"crystal",
"obelisk",
"spring",
"bellows",
"vase",
"teapot",
"flame",
"curl",
"radio",
"beacon",
"tower",
"arch",
"pom",
"bear",
"pumpkin",
"ghost",
"bat",
"witch-hat",
"candy-corn",
"turkey",
"acorn",
"squash",
"pie",
"corn",
"light",
"tree",
"snowman",
"ornament",
"gift"
];
readonly description: "Optional body override; must belong to the selected skin. Omitted shape is deterministically selected from the DID and skin.";
};
readonly accessories: {
readonly $ref: "#/components/schemas/CharacterAccessoriesV1";
};
readonly finish: {
readonly $ref: "#/components/schemas/CharacterFinish";
};
readonly eyePlacement: {
readonly $ref: "#/components/schemas/CharacterEyePlacement";
};
};
readonly allOf: readonly [
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "autos";
};
};
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"slender",
"wide"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "spacex";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"circle",
"pebble",
"squircle",
"capsule",
"triangle",
"hexagon",
"cloud",
"droplet"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "fold";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"kite",
"fan"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "sprig";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"bud",
"leaf"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "ripple";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"drop",
"wave"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "halo";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"comet",
"satellite"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "purl";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"mitt",
"hood"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "prism";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"crystal",
"obelisk"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "coil";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"spring",
"bellows"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "kiln";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"vase",
"teapot"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "wisp";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"flame",
"curl"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "relay";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"radio",
"beacon"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "cairn";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"tower",
"arch"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "tuft";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"pom",
"bear"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "halloween";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"pumpkin",
"ghost",
"bat",
"witch-hat",
"candy-corn"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "thanksgiving";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"turkey",
"acorn",
"squash",
"pie",
"corn"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "christmas";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"light",
"tree",
"snowman",
"ornament",
"gift"
];
};
};
};
}
];
};
readonly GazeV1: {
readonly type: "object";
readonly additionalProperties: false;
readonly required: readonly [
"x",
"y"
];
readonly properties: {
readonly x: {
readonly type: "number";
readonly minimum: -1;
readonly maximum: 1;
readonly default: 0;
};
readonly y: {
readonly type: "number";
readonly minimum: -1;
readonly maximum: 1;
readonly default: 0;
};
};
};
readonly LiveEyeStateV1: {
readonly type: "object";
readonly additionalProperties: false;
readonly properties: {
readonly blink: {
readonly type: "number";
readonly minimum: 0;
readonly maximum: 1;
readonly default: 0;
};
readonly gaze: {
readonly $ref: "#/components/schemas/GazeV1";
};
readonly status: {
readonly $ref: "#/components/schemas/AvatarStatus";
readonly description: "Runtime status alias or literal expression. Overrides the outer preferred expression.";
};
readonly expression: {
readonly $ref: "#/components/schemas/AvatarExpression";
readonly description: "Explicit runtime expression; overrides state.status mapping and outer preferred expression. Null is not accepted by this stateless API.";
};
};
readonly description: "Optional stateless snapshot. Resolution: state.expression > state.status mapping > outer expression > neutral. Unknown fields and null values are refused.";
};
readonly CharacterOptionsV1: {
readonly type: "object";
readonly additionalProperties: false;
readonly properties: {
readonly skin: {
readonly type: "string";
readonly enum: readonly [
"autos",
"spacex",
"fold",
"sprig",
"ripple",
"halo",
"purl",
"prism",
"coil",
"kiln",
"wisp",
"relay",
"cairn",
"tuft",
"halloween",
"thanksgiving",
"christmas"
];
readonly default: "autos";
};
readonly skinVersion: {
readonly type: "integer";
readonly const: 1;
readonly default: 1;
};
readonly eyeStyle: {
readonly type: "string";
readonly const: "live-v1";
readonly default: "live-v1";
readonly description: "Shared geometry across all families. Future eye geometries receive new identifiers.";
};
readonly size: {
readonly type: "integer";
readonly minimum: 32;
readonly maximum: 2048;
readonly default: 512;
};
readonly animated: {
readonly type: "boolean";
readonly default: true;
readonly description: "Native SMIL animation with no JavaScript or CSS.";
};
readonly state: {
readonly $ref: "#/components/schemas/LiveEyeStateV1";
};
readonly shape: {
readonly type: "string";
readonly enum: readonly [
"standard",
"slender",
"wide",
"circle",
"pebble",
"squircle",
"capsule",
"triangle",
"hexagon",
"cloud",
"droplet",
"kite",
"fan",
"bud",
"leaf",
"drop",
"wave",
"comet",
"satellite",
"mitt",
"hood",
"crystal",
"obelisk",
"spring",
"bellows",
"vase",
"teapot",
"flame",
"curl",
"radio",
"beacon",
"tower",
"arch",
"pom",
"bear",
"pumpkin",
"ghost",
"bat",
"witch-hat",
"candy-corn",
"turkey",
"acorn",
"squash",
"pie",
"corn",
"light",
"tree",
"snowman",
"ornament",
"gift"
];
readonly description: "Optional body override; must belong to the selected skin. Omitted shape is deterministically selected from the DID and skin.";
};
readonly expression: {
readonly type: "string";
readonly enum: readonly [
"neutral",
"attentive",
"surprised",
"excited",
"happy",
"laughing",
"angry",
"sad",
"scared",
"suspicious",
"confused",
"curious",
"proud",
"shy",
"unimpressed",
"sleepy",
"thoughtful",
"concerned"
];
readonly default: "neutral";
readonly description: "Outer preferred expression fallback. Explicit state.expression wins, then state.status mapping, then this preference, then neutral.";
};
readonly view: {
readonly type: "string";
readonly enum: readonly [
"avatar",
"full"
];
readonly default: "avatar";
readonly description: "Face crop for avatars by default; full shows the complete body. Rendering only, independent of stored appearance and runtime eye state.";
};
readonly accessories: {
readonly $ref: "#/components/schemas/CharacterAccessoriesV1";
};
readonly finish: {
readonly $ref: "#/components/schemas/CharacterFinish";
};
readonly eyePlacement: {
readonly $ref: "#/components/schemas/CharacterEyePlacement";
};
};
readonly allOf: readonly [
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "autos";
};
};
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"slender",
"wide"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "spacex";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"circle",
"pebble",
"squircle",
"capsule",
"triangle",
"hexagon",
"cloud",
"droplet"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "fold";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"kite",
"fan"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "sprig";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"bud",
"leaf"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "ripple";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"drop",
"wave"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "halo";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"comet",
"satellite"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "purl";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"mitt",
"hood"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "prism";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"crystal",
"obelisk"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "coil";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"spring",
"bellows"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "kiln";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"vase",
"teapot"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "wisp";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"flame",
"curl"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "relay";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"radio",
"beacon"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "cairn";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"tower",
"arch"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "tuft";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"pom",
"bear"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "halloween";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"pumpkin",
"ghost",
"bat",
"witch-hat",
"candy-corn"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "thanksgiving";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"turkey",
"acorn",
"squash",
"pie",
"corn"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "christmas";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"light",
"tree",
"snowman",
"ornament",
"gift"
];
};
};
};
}
];
};
readonly CharacterGenerateRequestV1: {
readonly type: "object";
readonly additionalProperties: false;
readonly required: readonly [
"did"
];
readonly properties: {
readonly did: {
readonly $ref: "#/components/schemas/AgentDid";
};
readonly skin: {
readonly type: "string";
readonly enum: readonly [
"autos",
"spacex",
"fold",
"sprig",
"ripple",
"halo",
"purl",
"prism",
"coil",
"kiln",
"wisp",
"relay",
"cairn",
"tuft",
"halloween",
"thanksgiving",
"christmas"
];
readonly default: "autos";
};
readonly skinVersion: {
readonly type: "integer";
readonly const: 1;
readonly default: 1;
};
readonly eyeStyle: {
readonly type: "string";
readonly const: "live-v1";
readonly default: "live-v1";
readonly description: "Shared geometry across all families. Future eye geometries receive new identifiers.";
};
readonly size: {
readonly type: "integer";
readonly minimum: 32;
readonly maximum: 2048;
readonly default: 512;
};
readonly animated: {
readonly type: "boolean";
readonly default: true;
readonly description: "Native SMIL animation with no JavaScript or CSS.";
};
readonly state: {
readonly $ref: "#/components/schemas/LiveEyeStateV1";
};
readonly shape: {
readonly type: "string";
readonly enum: readonly [
"standard",
"slender",
"wide",
"circle",
"pebble",
"squircle",
"capsule",
"triangle",
"hexagon",
"cloud",
"droplet",
"kite",
"fan",
"bud",
"leaf",
"drop",
"wave",
"comet",
"satellite",
"mitt",
"hood",
"crystal",
"obelisk",
"spring",
"bellows",
"vase",
"teapot",
"flame",
"curl",
"radio",
"beacon",
"tower",
"arch",
"pom",
"bear",
"pumpkin",
"ghost",
"bat",
"witch-hat",
"candy-corn",
"turkey",
"acorn",
"squash",
"pie",
"corn",
"light",
"tree",
"snowman",
"ornament",
"gift"
];
readonly description: "Optional body override; must belong to the selected skin. Omitted shape is deterministically selected from the DID and skin.";
};
readonly expression: {
readonly type: "string";
readonly enum: readonly [
"neutral",
"attentive",
"surprised",
"excited",
"happy",
"laughing",
"angry",
"sad",
"scared",
"suspicious",
"confused",
"curious",
"proud",
"shy",
"unimpressed",
"sleepy",
"thoughtful",
"concerned"
];
readonly default: "neutral";
readonly description: "Outer preferred expression fallback. Explicit state.expression wins, then state.status mapping, then this preference, then neutral.";
};
readonly view: {
readonly type: "string";
readonly enum: readonly [
"avatar",
"full"
];
readonly default: "avatar";
readonly description: "Face crop for avatars by default; full shows the complete body. Rendering only, independent of stored appearance and runtime eye state.";
};
readonly accessories: {
readonly $ref: "#/components/schemas/CharacterAccessoriesV1";
};
readonly finish: {
readonly $ref: "#/components/schemas/CharacterFinish";
};
readonly eyePlacement: {
readonly $ref: "#/components/schemas/CharacterEyePlacement";
};
};
readonly allOf: readonly [
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "autos";
};
};
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"slender",
"wide"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "spacex";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"circle",
"pebble",
"squircle",
"capsule",
"triangle",
"hexagon",
"cloud",
"droplet"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "fold";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"kite",
"fan"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "sprig";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"bud",
"leaf"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "ripple";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"drop",
"wave"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "halo";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"comet",
"satellite"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "purl";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"mitt",
"hood"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "prism";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"crystal",
"obelisk"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "coil";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"spring",
"bellows"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "kiln";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"vase",
"teapot"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "wisp";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"flame",
"curl"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "relay";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"radio",
"beacon"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "cairn";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"tower",
"arch"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "tuft";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"pom",
"bear"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "halloween";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"pumpkin",
"ghost",
"bat",
"witch-hat",
"candy-corn"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "thanksgiving";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"turkey",
"acorn",
"squash",
"pie",
"corn"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "christmas";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"light",
"tree",
"snowman",
"ornament",
"gift"
];
};
};
};
}
];
};
readonly CharacterDescriptorV1: {
readonly type: "object";
readonly additionalProperties: false;
readonly required: readonly [
"did",
"skin",
"skinVersion",
"eyeStyle",
"shape",
"color",
"size",
"animated",
"state",
"svg",
"expression",
"view",
"accessories",
"finish",
"eyePlacement"
];
readonly properties: {
readonly did: {
readonly $ref: "#/components/schemas/AgentDid";
};
readonly skin: {
readonly type: "string";
readonly enum: readonly [
"autos",
"spacex",
"fold",
"sprig",
"ripple",
"halo",
"purl",
"prism",
"coil",
"kiln",
"wisp",
"relay",
"cairn",
"tuft",
"halloween",
"thanksgiving",
"christmas"
];
readonly default: "autos";
};
readonly skinVersion: {
readonly type: "integer";
readonly const: 1;
readonly default: 1;
};
readonly eyeStyle: {
readonly type: "string";
readonly const: "live-v1";
readonly default: "live-v1";
readonly description: "Shared geometry across all families. Future eye geometries receive new identifiers.";
};
readonly size: {
readonly type: "integer";
readonly minimum: 32;
readonly maximum: 2048;
readonly default: 512;
};
readonly animated: {
readonly type: "boolean";
readonly default: true;
readonly description: "Native SMIL animation with no JavaScript or CSS.";
};
readonly state: {
readonly type: "object";
readonly additionalProperties: false;
readonly required: readonly [
"blink",
"gaze"
];
readonly properties: {
readonly blink: {
readonly type: "number";
readonly minimum: 0;
readonly maximum: 1;
readonly default: 0;
};
readonly gaze: {
readonly $ref: "#/components/schemas/GazeV1";
};
readonly status: {
readonly $ref: "#/components/schemas/AvatarStatus";
};
readonly expression: {
readonly $ref: "#/components/schemas/AvatarExpression";
};
};
readonly description: "Normalized blink/gaze, retaining status/expression only when explicitly supplied in input state. Descriptor.expression is the resolved expression; old snapshots without state status/expression preserve their prior shape.";
};
readonly color: {
readonly type: "string";
readonly pattern: "^#[0-9a-fA-F]{6}$";
};
readonly svg: {
readonly type: "string";
readonly description: "Escaped, self-contained SVG on a transparent background. No external resources, JavaScript, CSS or fonts.";
};
readonly shape: {
readonly type: "string";
readonly enum: readonly [
"standard",
"slender",
"wide",
"circle",
"pebble",
"squircle",
"capsule",
"triangle",
"hexagon",
"cloud",
"droplet",
"kite",
"fan",
"bud",
"leaf",
"drop",
"wave",
"comet",
"satellite",
"mitt",
"hood",
"crystal",
"obelisk",
"spring",
"bellows",
"vase",
"teapot",
"flame",
"curl",
"radio",
"beacon",
"tower",
"arch",
"pom",
"bear",
"pumpkin",
"ghost",
"bat",
"witch-hat",
"candy-corn",
"turkey",
"acorn",
"squash",
"pie",
"corn",
"light",
"tree",
"snowman",
"ornament",
"gift"
];
readonly description: "Optional body override; must belong to the selected skin. Omitted shape is deterministically selected from the DID and skin.";
};
readonly expression: {
readonly type: "string";
readonly enum: readonly [
"neutral",
"attentive",
"surprised",
"excited",
"happy",
"laughing",
"angry",
"sad",
"scared",
"suspicious",
"confused",
"curious",
"proud",
"shy",
"unimpressed",
"sleepy",
"thoughtful",
"concerned"
];
readonly default: "neutral";
readonly description: "Resolved expression: state.expression > state.status mapping > outer preferred expression > neutral. Body shape/color remain unchanged.";
};
readonly view: {
readonly type: "string";
readonly enum: readonly [
"avatar",
"full"
];
readonly default: "avatar";
readonly description: "Face crop for avatars by default; full shows the complete body. Rendering only, independent of stored appearance and runtime eye state.";
};
readonly accessories: {
readonly $ref: "#/components/schemas/CharacterAccessoriesV1";
};
readonly finish: {
readonly $ref: "#/components/schemas/CharacterFinish";
};
readonly eyePlacement: {
readonly $ref: "#/components/schemas/CharacterEyePlacement";
};
};
readonly allOf: readonly [
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "autos";
};
};
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"slender",
"wide"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "spacex";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"circle",
"pebble",
"squircle",
"capsule",
"triangle",
"hexagon",
"cloud",
"droplet"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "fold";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"kite",
"fan"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "sprig";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"bud",
"leaf"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "ripple";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"drop",
"wave"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "halo";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"comet",
"satellite"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "purl";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"mitt",
"hood"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "prism";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"crystal",
"obelisk"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "coil";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"spring",
"bellows"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "kiln";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"vase",
"teapot"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "wisp";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"flame",
"curl"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "relay";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"radio",
"beacon"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "cairn";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"tower",
"arch"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "tuft";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"standard",
"pom",
"bear"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "halloween";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"pumpkin",
"ghost",
"bat",
"witch-hat",
"candy-corn"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "thanksgiving";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"turkey",
"acorn",
"squash",
"pie",
"corn"
];
};
};
};
},
{
readonly if: {
readonly properties: {
readonly skin: {
readonly const: "christmas";
};
};
readonly required: readonly [
"skin"
];
};
readonly then: {
readonly properties: {
readonly shape: {
readonly enum: readonly [
"light",
"tree",
"snowman",
"ornament",
"gift"
];
};
};
};
}
];
};
readonly CharacterSkinV1: {
readonly type: "object";
readonly additionalProperties: false;
readonly required: readonly [
"id",
"label",
"version",
"eyeStyles",
"shapes",
"expressions"
];
readonly properties: {
readonly id: {
readonly type: "string";
readonly enum: readonly [
"autos",
"spacex",
"fold",
"sprig",
"ripple",
"halo",
"purl",
"prism",
"coil",
"kiln",
"wisp",
"relay",
"cairn",
"tuft",
"halloween",
"thanksgiving",
"christmas"
];
readonly default: "autos";
};
readonly label: {
readonly type: "string";
};
readonly version: {
readonly type: "integer";
readonly const: 1;
};
readonly eyeStyles: {
readonly type: "array";
readonly items: {
readonly type: "string";
readonly const: "live-v1";
readonly default: "live-v1";
readonly description: "Shared geometry across all families. Future eye geometries receive new identifiers.";
};
readonly minItems: 1;
readonly uniqueItems: true;
};
readonly shapes: {
readonly type: "array";
readonly items: {
readonly type: "string";
readonly enum: readonly [
"standard",
"slender",
"wide",
"circle",
"pebble",
"squircle",
"capsule",
"triangle",
"hexagon",
"cloud",
"droplet",
"kite",
"fan",
"bud",
"leaf",
"drop",
"wave",
"comet",
"satellite",
"mitt",
"hood",
"crystal",
"obelisk",
"spring",
"bellows",
"vase",
"teapot",
"flame",
"curl",
"radio",
"beacon",
"tower",
"arch",
"pom",
"bear",
"pumpkin",
"ghost",
"bat",
"witch-hat",
"candy-corn",
"turkey",
"acorn",
"squash",
"pie",
"corn",
"light",
"tree",
"snowman",
"ornament",
"gift"
];
readonly description: "Optional body override; must belong to the selected skin. Omitted shape is deterministically selected from the DID and skin.";
};
readonly minItems: 1;
readonly uniqueItems: true;
};
readonly expressions: {
readonly type: "array";
readonly items: {
readonly type: "string";
readonly enum: readonly [
"neutral",
"attentive",
"surprised",
"excited",
"happy",
"laughing",
"angry",
"sad",
"scared",
"suspicious",
"confused",
"curious",
"proud",
"shy",
"unimpressed",
"sleepy",
"thoughtful",
"concerned"
];
readonly default: "neutral";
readonly description: "Shared eye expression across all skins. Body shape and color remain unchanged. Explicit blink shrinks expression eye bars and gaze translates both together.";
};
readonly minItems: 18;
readonly maxItems: 18;
readonly uniqueItems: true;
};
};
readonly allOf: readonly [
{
readonly if: {
readonly required: readonly [
"id"
];
readonly properties: {
readonly id: {
readonly const: "autos";
};
};
};
readonly then: {
readonly properties: {
readonly shapes: {
readonly items: {
readonly enum: readonly [
"standard",
"slender",
"wide"
];
};
readonly minItems: 3;
readonly maxItems: 3;
};
};
};
},
{
readonly if: {
readonly required: readonly [
"id"
];
readonly properties: {
readonly id: {
readonly const: "spacex";
};
};
};
readonly then: {
readonly properties: {
readonly shapes: {
readonly items: {
readonly enum: readonly [
"circle",
"pebble",
"squircle",
"capsule",
"triangle",
"hexagon",
"cloud",
"droplet"
];
};
readonly minItems: 8;
readonly maxItems: 8;
};
};
};
},
{
readonly if: {
readonly required: readonly [
"id"
];
readonly properties: {
readonly id: {
readonly const: "fold";
};
};
};
readonly then: {
readonly properties: {
readonly shapes: {
readonly items: {
readonly enum: readonly [
"standard",
"kite",
"fan"
];
};
readonly minItems: 3;
readonly maxItems: 3;
};
};
};
},
{
readonly if: {
readonly required: readonly [
"id"
];
readonly properties: {
readonly id: {
readonly const: "sprig";
};
};
};
readonly then: {
readonly properties: {
readonly shapes: {
readonly items: {
readonly enum: readonly [
"standard",
"bud",
"leaf"
];
};
readonly minItems: 3;
readonly maxItems: 3;
};
};
};
},
{
readonly if: {
readonly required: readonly [
"id"
];
readonly properties: {
readonly id: {
readonly const: "ripple";
};
};
};
readonly then: {
readonly properties: {
readonly shapes: {
readonly items: {
readonly enum: readonly [
"standard",
"drop",
"wave"
];
};
readonly minItems: 3;
readonly maxItems: 3;
};
};
};
},
{
readonly if: {
readonly required: readonly [
"id"
];
readonly properties: {
readonly id: {
readonly const: "halo";
};
};
};
readonly then: {
readonly properties: {
readonly shapes: {
readonly items: {
readonly enum: readonly [
"standard",
"comet",
"satellite"
];
};
readonly minItems: 3;
readonly maxItems: 3;
};
};
};
},
{
readonly if: {
readonly required: readonly [
"id"
];
readonly properties: {
readonly id: {
readonly const: "purl";
};
};
};
readonly then: {
readonly properties: {
readonly shapes: {
readonly items: {
readonly enum: readonly [
"standard",
"mitt",
"hood"
];
};
readonly minItems: 3;
readonly maxItems: 3;
};
};
};
},
{
readonly if: {
readonly required: readonly [
"id"
];
readonly properties: {
readonly id: {
readonly const: "prism";
};
};
};
readonly then: {
readonly properties: {
readonly shapes: {
readonly items: {
readonly enum: readonly [
"standard",
"crystal",
"obelisk"
];
};
readonly minItems: 3;
readonly maxItems: 3;
};
};
};
},
{
readonly if: {
readonly required: readonly [
"id"
];
readonly properties: {
readonly id: {
readonly const: "coil";
};
};
};
readonly then: {
readonly properties: {
readonly shapes: {
readonly items: {
readonly enum: readonly [
"standard",
"spring",
"bellows"
];
};
readonly minItems: 3;
readonly maxItems: 3;
};
};
};
},
{
readonly if: {
readonly required: readonly [
"id"
];
readonly properties: {
readonly id: {
readonly const: "kiln";
};
};
};
readonly then: {
readonly properties: {
readonly shapes: {
readonly items: {
readonly enum: readonly [
"standard",
"vase",
"teapot"
];
};
readonly minItems: 3;
readonly maxItems: 3;
};
};
};
},
{
readonly if: {
readonly required: readonly [
"id"
];
readonly properties: {
readonly id: {
readonly const: "wisp";
};
};
};
readonly then: {
readonly properties: {
readonly shapes: {
readonly items: {
readonly enum: readonly [
"standard",
"flame",
"curl"
];
};
readonly minItems: 3;
readonly maxItems: 3;
};
};
};
},
{
readonly if: {
readonly required: readonly [
"id"
];
readonly properties: {
readonly id: {
readonly const: "relay";
};
};
};
readonly then: {
readonly properties: {
readonly shapes: {
readonly items: {
readonly enum: readonly [
"standard",
"radio",
"beacon"
];
};
readonly minItems: 3;
readonly maxItems: 3;
};
};
};
},
{
readonly if: {
readonly required: readonly [
"id"
];
readonly properties: {
readonly id: {
readonly const: "cairn";
};
};
};
readonly then: {
readonly properties: {
readonly shapes: {
readonly items: {
readonly enum: readonly [
"standard",
"tower",
"arch"
];
};
readonly minItems: 3;
readonly maxItems: 3;
};
};
};
},
{
readonly if: {
readonly required: readonly [
"id"
];
readonly properties: {
readonly id: {
readonly const: "tuft";
};
};
};
readonly then: {
readonly properties: {
readonly shapes: {
readonly items: {
readonly enum: readonly [
"standard",
"pom",
"bear"
];
};
readonly minItems: 3;
readonly maxItems: 3;
};
};
};
},
{
readonly if: {
readonly required: readonly [
"id"
];
readonly properties: {
readonly id: {
readonly const: "halloween";
};
};
};
readonly then: {
readonly properties: {
readonly shapes: {
readonly items: {
readonly enum: readonly [
"pumpkin",
"ghost",
"bat",
"witch-hat",
"candy-corn"
];
};
readonly minItems: 5;
readonly maxItems: 5;
};
};
};
},
{
readonly if: {
readonly required: readonly [
"id"
];
readonly properties: {
readonly id: {
readonly const: "thanksgiving";
};
};
};
readonly then: {
readonly properties: {
readonly shapes: {
readonly items: {
readonly enum: readonly [
"turkey",
"acorn",
"squash",
"pie",
"corn"
];
};
readonly minItems: 5;
readonly maxItems: 5;
};
};
};
},
{
readonly if: {
readonly required: readonly [
"id"
];
readonly properties: {
readonly id: {
readonly const: "christmas";
};
};
};
readonly then: {
readonly properties: {
readonly shapes: {
readonly items: {
readonly enum: readonly [
"light",
"tree",
"snowman",
"ornament",
"gift"
];
};
readonly minItems: 5;
readonly maxItems: 5;
};
};
};
}
];
};
readonly CharacterApiError: {
readonly type: "object";
readonly additionalProperties: false;
readonly required: readonly [
"error"
];
readonly properties: {
readonly error: {
readonly type: "string";
readonly enum: readonly [
"invalid_request",
"body_too_large",
"unsupported_media_type",
"method_not_allowed",
"not_found"
];
};
};
};
readonly AvatarExpression: {
readonly type: "string";
readonly enum: readonly [
"neutral",
"attentive",
"surprised",
"excited",
"happy",
"laughing",
"angry",
"sad",
"scared",
"suspicious",
"confused",
"curious",
"proud",
"shy",
"unimpressed",
"sleepy",
"thoughtful",
"concerned"
];
readonly description: "Shared eye expression across all families; does not change identity-derived shape or color.";
};
readonly AvatarStatus: {
readonly type: "string";
readonly enum: readonly [
"neutral",
"attentive",
"surprised",
"excited",
"happy",
"laughing",
"angry",
"sad",
"scared",
"suspicious",
"confused",
"curious",
"proud",
"shy",
"unimpressed",
"sleepy",
"thoughtful",
"concerned",
"idle",
"listening",
"reasoning",
"working",
"speaking",
"success",
"blocked",
"error"
];
readonly description: "Expressions map to themselves. Aliases: idle→neutral, listening→attentive, reasoning→thoughtful, working→attentive, speaking/success→happy, blocked/error→concerned. Presentation only; not evidence of actual agent activity.";
};
readonly CharacterStatusV1: {
readonly type: "object";
readonly additionalProperties: false;
readonly required: readonly [
"status",
"expression"
];
readonly properties: {
readonly status: {
readonly $ref: "#/components/schemas/AvatarStatus";
};
readonly expression: {
readonly $ref: "#/components/schemas/AvatarExpression";
};
};
};
readonly CharacterAccessory: {
readonly type: "string";
readonly enum: readonly [
"glasses",
"headphones"
];
readonly description: "Closed package-owned accessory identifier; independent of character family.";
};
readonly CharacterAccessoriesV1: {
readonly type: "array";
readonly items: {
readonly $ref: "#/components/schemas/CharacterAccessory";
};
readonly maxItems: 2;
readonly uniqueItems: true;
readonly default: readonly [
];
readonly description: "Optional independent accessories, canonicalized to glasses then headphones. Omitted selection resolves to []; no null, unknown identifier or duplicate is accepted.";
};
readonly CharacterAccessoryDescriptionV1: {
readonly type: "object";
readonly additionalProperties: false;
readonly required: readonly [
"id",
"label",
"description"
];
readonly properties: {
readonly id: {
readonly $ref: "#/components/schemas/CharacterAccessory";
};
readonly label: {
readonly type: "string";
readonly minLength: 1;
};
readonly description: {
readonly type: "string";
readonly minLength: 1;
};
};
};
readonly CharacterFinish: {
readonly type: "string";
readonly enum: readonly [
"plush",
"flat"
];
readonly default: "plush";
readonly description: "Shared body finish on every family: plush by default, flat for the vector material. Appearance only; identity and live state stay independent.";
};
readonly CharacterEyePlacement: {
readonly type: "string";
readonly enum: readonly [
"face",
"raised"
];
readonly default: "face";
readonly description: "Shared live-v1 eye placement on every family: on the face by default, or raised above the head. Appearance only; all eighteen expressions remain available.";
};
};
readonly parameters: {
readonly did: {
readonly name: "did";
readonly in: "path";
readonly required: true;
readonly schema: {
readonly $ref: "#/components/schemas/AgentDid";
};
readonly description: "Percent-encode the entire DID as one path segment.";
};
readonly IfNoneMatch: {
readonly name: "If-None-Match";
readonly in: "header";
readonly schema: {
readonly type: "string";
readonly maxLength: 4096;
};
readonly description: "GET/HEAD accepts a strong/weak validator, comma-separated list or *. Headers over 4096 characters are ignored.";
};
readonly skin: {
readonly name: "skin";
readonly in: "query";
readonly schema: {
readonly type: "string";
readonly enum: readonly [
"autos",
"spacex",
"fold",
"sprig",
"ripple",
"halo",
"purl",
"prism",
"coil",
"kiln",
"wisp",
"relay",
"cairn",
"tuft",
"halloween",
"thanksgiving",
"christmas"
];
readonly default: "autos";
};
};
readonly skinVersion: {
readonly name: "skinVersion";
readonly in: "query";
readonly schema: {
readonly type: "integer";
readonly const: 1;
readonly default: 1;
};
};
readonly eyeStyle: {
readonly name: "eyeStyle";
readonly in: "query";
readonly schema: {
readonly type: "string";
readonly const: "live-v1";
readonly default: "live-v1";
readonly description: "Shared geometry across all families. Future eye geometries receive new identifiers.";
};
};
readonly size: {
readonly name: "size";
readonly in: "query";
readonly schema: {
readonly type: "integer";
readonly minimum: 32;
readonly maximum: 2048;
readonly default: 512;
};
readonly description: "Unsigned decimal integer, no leading zeroes.";
};
readonly animated: {
readonly name: "animated";
readonly in: "query";
readonly schema: {
readonly type: "boolean";
readonly default: true;
readonly description: "Native SMIL animation with no JavaScript or CSS.";
};
readonly description: "Exactly true or false.";
};
readonly blink: {
readonly name: "blink";
readonly in: "query";
readonly schema: {
readonly type: "number";
readonly minimum: 0;
readonly maximum: 1;
readonly default: 0;
};
readonly description: "Finite ordinary decimal notation, no exponent, whitespace or leading +.";
};
readonly gazeX: {
readonly name: "gazeX";
readonly in: "query";
readonly schema: {
readonly type: "number";
readonly minimum: -1;
readonly maximum: 1;
readonly default: 0;
};
readonly description: "Finite ordinary decimal notation, no exponent, whitespace or leading +. gazeX and gazeY must be supplied together.";
};
readonly gazeY: {
readonly name: "gazeY";
readonly in: "query";
readonly schema: {
readonly type: "number";
readonly minimum: -1;
readonly maximum: 1;
readonly default: 0;
};
readonly description: "Finite ordinary decimal notation, no exponent, whitespace or leading +. gazeX and gazeY must be supplied together.";
};
readonly shape: {
readonly name: "shape";
readonly in: "query";
readonly schema: {
readonly type: "string";
readonly enum: readonly [
"standard",
"slender",
"wide",
"circle",
"pebble",
"squircle",
"capsule",
"triangle",
"hexagon",
"cloud",
"droplet",
"kite",
"fan",
"bud",
"leaf",
"drop",
"wave",
"comet",
"satellite",
"mitt",
"hood",
"crystal",
"obelisk",
"spring",
"bellows",
"vase",
"teapot",
"flame",
"curl",
"radio",
"beacon",
"tower",
"arch",
"pom",
"bear",
"pumpkin",
"ghost",
"bat",
"witch-hat",
"candy-corn",
"turkey",
"acorn",
"squash",
"pie",
"corn",
"light",
"tree",
"snowman",
"ornament",
"gift"
];
readonly description: "Optional body override; must belong to the selected skin. Omitted shape is deterministically selected from the DID and skin.";
};
};
readonly expression: {
readonly name: "expression";
readonly in: "query";
readonly schema: {
readonly type: "string";
readonly enum: readonly [
"neutral",
"attentive",
"surprised",
"excited",
"happy",
"laughing",
"angry",
"sad",
"scared",
"suspicious",
"confused",
"curious",
"proud",
"shy",
"unimpressed",
"sleepy",
"thoughtful",
"concerned"
];
readonly default: "neutral";
readonly description: "Shared eye expression across all skins. Body shape and color remain unchanged. Explicit blink shrinks expression eye bars and gaze translates both together.";
};
readonly description: "Outer preferred expression fallback. A status query is state.status and overrides this preference. Explicit runtime expression overrides can be supplied in POST state.expression.";
};
readonly status: {
readonly name: "status";
readonly in: "query";
readonly schema: {
readonly $ref: "#/components/schemas/AvatarStatus";
};
readonly description: "Parsed as state.status. Overrides expression query preference with its mapped expression. Duplicate/unknown status values are refused before rendering or cache validation.";
};
readonly view: {
readonly name: "view";
readonly in: "query";
readonly schema: {
readonly type: "string";
readonly enum: readonly [
"avatar",
"full"
];
readonly default: "avatar";
readonly description: "Face crop for avatars by default; full shows the complete body. Rendering only, independent of stored appearance and runtime eye state.";
};
};
readonly accessories: {
readonly name: "accessories";
readonly in: "query";
readonly required: false;
readonly style: "form";
readonly explode: false;
readonly allowEmptyValue: true;
readonly schema: {
readonly $ref: "#/components/schemas/CharacterAccessoriesV1";
};
readonly description: "One comma-separated selection, for example glasses,headphones. Empty string means []; either input order normalizes to catalog order. Repeated query parameters, duplicates, unknown IDs, whitespace and empty elements are refused.";
};
readonly finish: {
readonly name: "finish";
readonly in: "query";
readonly schema: {
readonly $ref: "#/components/schemas/CharacterFinish";
};
};
readonly eyePlacement: {
readonly name: "eyePlacement";
readonly in: "query";
readonly schema: {
readonly $ref: "#/components/schemas/CharacterEyePlacement";
};
};
};
readonly headers: {
readonly CorsOrigin: {
readonly schema: {
readonly type: "string";
readonly const: "*";
};
};
readonly CorsExpose: {
readonly schema: {
readonly type: "string";
readonly const: "ETag, Content-Length";
};
};
readonly NoSniff: {
readonly schema: {
readonly type: "string";
readonly const: "nosniff";
};
};
readonly CacheControl: {
readonly schema: {
readonly type: "string";
};
};
readonly ETag: {
readonly schema: {
readonly type: "string";
};
readonly description: "Strong SHA-256 validator for exact response bytes.";
};
readonly ContentLength: {
readonly schema: {
readonly type: "integer";
readonly minimum: 0;
};
};
readonly SvgCsp: {
readonly schema: {
readonly type: "string";
readonly const: "default-src 'none'; img-src 'none'; style-src 'none'; sandbox";
};
};
};
readonly responses: {
readonly InvalidRequest: {
readonly description: "Invalid DID, malformed value or JSON, unknown field, unknown or duplicate query parameter.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
};
readonly content: {
readonly "application/json": {
readonly schema: {
readonly $ref: "#/components/schemas/CharacterApiError";
};
};
};
};
readonly NotFound: {
readonly description: "Route outside this handler or unsupported route shape.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
};
readonly content: {
readonly "application/json": {
readonly schema: {
readonly $ref: "#/components/schemas/CharacterApiError";
};
};
};
};
readonly MethodNotAllowed: {
readonly description: "Method not supported; Allow identifies allowed methods.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
readonly Allow: {
readonly schema: {
readonly type: "string";
};
};
};
readonly content: {
readonly "application/json": {
readonly schema: {
readonly $ref: "#/components/schemas/CharacterApiError";
};
};
};
};
readonly BodyTooLarge: {
readonly description: "Announced or streamed body exceeds 16384 bytes.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
};
readonly content: {
readonly "application/json": {
readonly schema: {
readonly $ref: "#/components/schemas/CharacterApiError";
};
};
};
};
readonly UnsupportedMediaType: {
readonly description: "Requires uncompressed UTF-8 application/json, optionally charset=utf-8.";
readonly headers: {
readonly "Access-Control-Allow-Origin": {
readonly $ref: "#/components/headers/CorsOrigin";
};
readonly "Access-Control-Expose-Headers": {
readonly $ref: "#/components/headers/CorsExpose";
};
readonly "X-Content-Type-Options": {
readonly $ref: "#/components/headers/NoSniff";
};
readonly "Cache-Control": {
readonly $ref: "#/components/headers/CacheControl";
};
};
readonly content: {
readonly "application/json": {
readonly schema: {
readonly $ref: "#/components/schemas/CharacterApiError";
};
};
};
};
};
};
};Source: @openagentid/sdk@0.7.2, dist/character-api.d.ts:11.
CharacterAppearance
Type-only declaration; it is not a runtime value.
interface CharacterAppearance {
readonly skin: CharacterSkin;
readonly skinVersion?: 1;
readonly eyeStyle?: CharacterEyeStyle;
readonly finish?: CharacterFinish;
readonly eyePlacement?: CharacterEyePlacement;
readonly shape?: CharacterShape;
readonly accessories?: readonly CharacterAccessory[];
}Source: @openagentid/sdk@0.7.2, dist/characters.d.ts:29.
characterAppearanceSchema
Versioned body/face selection. Runtime expression and gaze are independent.
declare const characterAppearanceSchema: z.ZodEffects<z.ZodObject<{
skin: z.ZodEnum<[
CharacterSkin,
...CharacterSkin[]
]>;
skinVersion: z.ZodOptional<z.ZodLiteral<1>>;
eyeStyle: z.ZodOptional<z.ZodLiteral<"live-v1">>;
finish: z.ZodOptional<z.ZodEnum<[
"plush",
"flat"
]>>;
eyePlacement: z.ZodOptional<z.ZodEnum<[
"face",
"raised"
]>>;
shape: z.ZodOptional<z.ZodEnum<[
NonNullable<CharacterShape | undefined>,
...NonNullable<CharacterShape | undefined>[]
]>>;
accessories: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodEnum<[
"glasses",
"headphones"
]>, "many">, readonly CharacterAccessory[], ("glasses" | "headphones")[]>>;
}, "strict", z.ZodTypeAny, {
skin: CharacterSkin;
skinVersion?: 1 | undefined;
eyeStyle?: "live-v1" | undefined;
finish?: "flat" | "plush" | undefined;
eyePlacement?: "face" | "raised" | undefined;
shape?: NonNullable<CharacterShape | undefined> | undefined;
accessories?: readonly CharacterAccessory[] | undefined;
}, {
skin: CharacterSkin;
skinVersion?: 1 | undefined;
eyeStyle?: "live-v1" | undefined;
finish?: "flat" | "plush" | undefined;
eyePlacement?: "face" | "raised" | undefined;
shape?: NonNullable<CharacterShape | undefined> | undefined;
accessories?: ("glasses" | "headphones")[] | undefined;
}>, {
skin: CharacterSkin;
skinVersion?: 1 | undefined;
eyeStyle?: "live-v1" | undefined;
finish?: "flat" | "plush" | undefined;
eyePlacement?: "face" | "raised" | undefined;
shape?: NonNullable<CharacterShape | undefined> | undefined;
accessories?: readonly CharacterAccessory[] | undefined;
}, {
skin: CharacterSkin;
skinVersion?: 1 | undefined;
eyeStyle?: "live-v1" | undefined;
finish?: "flat" | "plush" | undefined;
eyePlacement?: "face" | "raised" | undefined;
shape?: NonNullable<CharacterShape | undefined> | undefined;
accessories?: ("glasses" | "headphones")[] | undefined;
}>;Source: @openagentid/sdk@0.7.2, dist/identity.d.ts:59.
CharacterDescriptor
Type-only declaration; it is not a runtime value.
interface CharacterDescriptor {
readonly did: string;
readonly skin: CharacterSkin;
readonly skinVersion: 1;
readonly eyeStyle: CharacterEyeStyle;
readonly finish: CharacterFinish;
readonly eyePlacement: CharacterEyePlacement;
readonly shape: CharacterShape;
readonly accessories: readonly CharacterAccessory[];
readonly expression: AvatarExpression;
readonly color: string;
readonly view: CharacterView;
readonly size: number;
readonly animated: boolean;
readonly state: {
readonly status?: AvatarStatus;
readonly expression?: AvatarExpression;
readonly blink: number;
readonly gaze: {
readonly x: number;
readonly y: number;
};
};
readonly svg: string;
}Source: @openagentid/sdk@0.7.2, dist/characters.d.ts:60.
CharacterEyeFrame
Type-only declaration; it is not a runtime value.
interface CharacterEyeFrame {
readonly x: number;
readonly y: number;
readonly width: number;
readonly height: number;
readonly rx: number;
readonly rotation: number;
readonly centerX: number;
readonly centerY: number;
}Source: @openagentid/sdk@0.7.2, dist/character-animation.d.ts:10.
CharacterEyePlacement
Type-only declaration; it is not a runtime value.
type CharacterEyePlacement = 'face' | 'raised';Source: @openagentid/sdk@0.7.2, dist/characters.d.ts:27.
CharacterEyeStyle
Type-only declaration; it is not a runtime value.
type CharacterEyeStyle = 'live-v1';Source: @openagentid/sdk@0.7.2, dist/characters.d.ts:26.
CharacterFinish
One self-contained material for every package-owned silhouette.
Type-only declaration; it is not a runtime value.
type CharacterFinish = 'plush' | 'flat';Source: @openagentid/sdk@0.7.2, dist/characters.d.ts:19.
CharacterFrame
Type-only declaration; it is not a runtime value.
interface CharacterFrame extends CharacterRuntimeState {
readonly eyes: readonly [
CharacterEyeFrame,
CharacterEyeFrame
];
}Source: @openagentid/sdk@0.7.2, dist/character-animation.d.ts:20.
CharacterOptions
Type-only declaration; it is not a runtime value.
interface CharacterOptions extends Omit<CharacterAppearance, 'skin'> {
readonly skin?: CharacterSkin;
readonly expression?: AvatarExpression;
readonly view?: CharacterView;
readonly size?: number;
readonly animated?: boolean;
readonly state?: LiveEyeState;
}Source: @openagentid/sdk@0.7.2, dist/characters.d.ts:41.
CharacterRuntimeState
Type-only declaration; it is not a runtime value.
interface CharacterRuntimeState {
readonly status: AvatarStatus;
readonly expression: AvatarExpression;
readonly blink: number;
readonly gaze: {
readonly x: number;
readonly y: number;
};
}Source: @openagentid/sdk@0.7.2, dist/character-state.d.ts:18.
CharacterShape
Type-only declaration; it is not a runtime value.
type CharacterShape = 'standard' | 'slender' | 'wide' | 'circle' | 'pebble' | 'squircle' | 'capsule' | 'triangle' | 'hexagon' | 'cloud' | 'droplet' | 'kite' | 'fan' | 'bud' | 'leaf' | 'drop' | 'wave' | 'comet' | 'satellite' | 'mitt' | 'hood' | 'crystal' | 'obelisk' | 'spring' | 'bellows' | 'vase' | 'teapot' | 'flame' | 'curl' | 'radio' | 'beacon' | 'tower' | 'arch' | 'pom' | 'bear' | 'pumpkin' | 'ghost' | 'bat' | 'witch-hat' | 'candy-corn' | 'turkey' | 'acorn' | 'squash' | 'pie' | 'corn' | 'light' | 'tree' | 'snowman' | 'ornament' | 'gift';Source: @openagentid/sdk@0.7.2, dist/characters.d.ts:28.
CharacterSkin
Type-only declaration; it is not a runtime value.
type CharacterSkin = 'autos' | 'spacex' | 'fold' | 'sprig' | 'ripple' | 'halo' | 'purl' | 'prism' | 'coil' | 'kiln' | 'wisp' | 'relay' | 'cairn' | 'tuft' | 'halloween' | 'thanksgiving' | 'christmas';Source: @openagentid/sdk@0.7.2, dist/characters.d.ts:24.
CharacterSkinDescription
Type-only declaration; it is not a runtime value.
interface CharacterSkinDescription {
readonly id: CharacterSkin;
readonly label: string;
readonly version: 1;
readonly eyeStyles: readonly CharacterEyeStyle[];
readonly shapes: readonly CharacterShape[];
readonly expressions: readonly AvatarExpression[];
}Source: @openagentid/sdk@0.7.2, dist/characters.d.ts:52.
CharacterStateUpdate
A status update clears the previous override; null restores the status expression.
Type-only declaration; it is not a runtime value.
interface CharacterStateUpdate extends Omit<LiveEyeState, 'expression'> {
readonly expression?: AvatarExpression | null;
}Source: @openagentid/sdk@0.7.2, dist/character-state.d.ts:28.
CharacterView
Type-only declaration; it is not a runtime value.
type CharacterView = 'avatar' | 'full';Source: @openagentid/sdk@0.7.2, dist/characters.d.ts:25.
ConfigError
Configuration or usage violation (invalid input, missing dependency).
declare class ConfigError extends OpenAgentError {
constructor(message: string, context?: Record<string, unknown>);
}Source: @openagentid/sdk@0.7.2, dist/errors.d.ts:68.
CreateAgentInput
Type-only declaration; it is not a runtime value.
type CreateAgentInput = z.infer<typeof createAgentInputSchema>;Source: @openagentid/sdk@0.7.2, dist/config.d.ts:56.
createAgentInputSchema
Parameters accepted by {@link OpenAgent.createAgent }.
declare const createAgentInputSchema: z.ZodObject<{
parent: z.ZodEffects<z.ZodString, string, string>;
name: z.ZodString;
scopes: z.ZodArray<z.ZodString, "many">;
namespace: z.ZodOptional<z.ZodString>;
skills: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
}, "strict", z.ZodTypeAny, {
parent: string;
name: string;
scopes: string[];
namespace?: string | undefined;
skills?: string[] | undefined;
metadata?: Record<string, unknown> | undefined;
}, {
parent: string;
name: string;
scopes: string[];
namespace?: string | undefined;
skills?: string[] | undefined;
metadata?: Record<string, unknown> | undefined;
}>;Source: @openagentid/sdk@0.7.2, dist/config.d.ts:28.
createCharacterAnimator
A single timeline: interruptions preserve both eye position and velocity.
declare function createCharacterAnimator(did: string, options?: CharacterAnimatorOptions): CharacterAnimator;Source: @openagentid/sdk@0.7.2, dist/character-animation.d.ts:30.
createCharacterApiHandler
Unauthenticated, stateless decoration only. This handler never resolves, registers, authenticates or verifies the requested agent identity.
declare function createCharacterApiHandler(options?: CharacterApiHandlerOptions): (request: Request) => Promise<Response>;Source: @openagentid/sdk@0.7.2, dist/character-api.d.ts:9.
createCredentialHandle
Create a {@link CredentialHandle} backed by an Arsenal client.
declare function createCredentialHandle(params: CreateCredentialHandleParams): Promise<CredentialHandle>;Source: @openagentid/sdk@0.7.2, dist/credentials.d.ts:96.
createIdentityVerificationHandler
Host this handler at your chosen POST endpoint. No endpoint is auto-deployed.
declare function createIdentityVerificationHandler(verifier: IdentityVerifier, options: IdentityVerificationHandlerOptions): (request: Request) => Promise<Response>;Source: @openagentid/sdk@0.7.2, dist/verification-api.d.ts:16.
createOatsEvidenceVerifier
Concrete OAS Ed25519Signature2020 verifier. It verifies upstream JCS signing bytes, assertion-authorized issuer keys, authoritative owner chains and current attestation revocation. No cryptographic work is delegated to callers.
declare function createOatsEvidenceVerifier(config: OatsEvidenceVerifierConfig): OatsEvidenceVerifier;Source: @openagentid/sdk@0.7.2, dist/oats.d.ts:99.
CredentialError
Arsenal credentials subsystem failure.
declare class CredentialError extends OpenAgentError {
constructor(message: string, details: ErrorDetails);
}Source: @openagentid/sdk@0.7.2, dist/errors.d.ts:80.
CredentialHandle
A live, fetch-ready credential bound to an agent DID + provider.
The fetch method is a drop-in replacement for globalThis.fetch. The
underlying credential is refreshed lazily when the caller invokes
refresh() — auto-rotation stays out of the per-request hot path.
Type-only declaration; it is not a runtime value.
interface CredentialHandle {
readonly provider: string;
readonly agentDid: Did;
readonly expiresAt: number;
fetch: typeof fetch;
refresh(): Promise<CredentialHandle>;
release(): Promise<void>;
}Source: @openagentid/sdk@0.7.2, dist/credentials.d.ts:68.
DEFAULT_NAMESPACE
declare const DEFAULT_NAMESPACE = "openagent";Source: @openagentid/sdk@0.7.2, dist/config.d.ts:125.
DEFAULT_REQUEST_TIMEOUT_MS
declare const DEFAULT_REQUEST_TIMEOUT_MS = 30000;Source: @openagentid/sdk@0.7.2, dist/config.d.ts:126.
denyAllSkills
Empty policy that denies everything.
declare const denyAllSkills: SkillsPolicy;Source: @openagentid/sdk@0.7.2, dist/skills.d.ts:45.
Did
Fully qualified did:oas identifier.
Type-only declaration; it is not a runtime value.
type Did = string;Source: @openagentid/sdk@0.7.2, dist/identity.d.ts:7.
DID_REGEX
DID regex for did:oas:<namespace>:<kind>:<identifier>.
Mirrors the OAS v1.1.0 specification. We keep it deliberately permissive here — strict validation belongs in the OAS SDK itself.
declare const DID_REGEX: RegExp;Source: @openagentid/sdk@0.7.2, dist/config.d.ts:17.
didSchema
declare const didSchema: z.ZodEffects<z.ZodString, string, string>;Source: @openagentid/sdk@0.7.2, dist/config.d.ts:20.
ErrorCode
Stable machine-readable error codes. These are part of the SDK's public contract and MUST stay in sync with the Rust reference implementation.
declare const ErrorCode: {
readonly INVALID_CONFIG: "openagent/invalid-config";
readonly INVALID_INPUT: "openagent/invalid-input";
readonly NOT_INITIALIZED: "openagent/not-initialized";
readonly IDENTITY_CREATE_FAILED: "openagent/identity/create-failed";
readonly IDENTITY_RESOLVE_FAILED: "openagent/identity/resolve-failed";
readonly IDENTITY_SIGNATURE_INVALID: "openagent/identity/signature-invalid";
readonly IDENTITY_LINEAGE_INVALID: "openagent/identity/lineage-invalid";
readonly CREDENTIAL_FETCH_FAILED: "openagent/credentials/fetch-failed";
readonly CREDENTIAL_SCOPE_DENIED: "openagent/credentials/scope-denied";
readonly CREDENTIAL_PROVIDER_UNKNOWN: "openagent/credentials/provider-unknown";
readonly CREDENTIAL_EXPIRED: "openagent/credentials/expired";
readonly VERIFICATION_FAILED: "openagent/verification/failed";
readonly AUTH_REQUIRED: "openagent/verification/auth-required";
readonly AUTH_CHALLENGE_INVALID: "openagent/verification/challenge-invalid";
readonly SKILL_DENIED: "openagent/skills/denied";
readonly SKILL_UNKNOWN: "openagent/skills/unknown";
readonly NETWORK_ERROR: "openagent/network-error";
readonly SERIALIZATION_ERROR: "openagent/serialization-error";
readonly UNKNOWN: "openagent/unknown";
};Source: @openagentid/sdk@0.7.2, dist/errors.d.ts:15.
ErrorCodeValue
Type-only declaration; it is not a runtime value.
type ErrorCodeValue = (typeof ErrorCode)[keyof typeof ErrorCode];Source: @openagentid/sdk@0.7.2, dist/errors.d.ts:36.
ErrorDetails
Structured error metadata attached to every {@link OpenAgentError}.
Type-only declaration; it is not a runtime value.
interface ErrorDetails {
code: ErrorCodeValue;
cause?: unknown;
context?: Record<string, unknown>;
}Source: @openagentid/sdk@0.7.2, dist/errors.d.ts:38.
expressionEyes
declare const expressionEyes: Readonly<Record<AvatarExpression, readonly [
EyeGeometry,
EyeGeometry
]>>;Source: @openagentid/sdk@0.7.2, dist/characters.d.ts:90.
expressionForStatus
declare function expressionForStatus(value: unknown): AvatarExpression;Source: @openagentid/sdk@0.7.2, dist/character-state.d.ts:37.
extractBearerToken
Extract the bearer token from a Request without trusting it.
Checks, in order: Authorization: OpenAgent ...,
Authorization: Bearer ..., X-OpenAgent-Token, and an oa_token
query parameter. Returns null if absent.
declare function extractBearerToken(req: Request): string | null;Source: @openagentid/sdk@0.7.2, dist/verification.d.ts:106.
EyeGeometry
Type-only declaration; it is not a runtime value.
type EyeGeometry = readonly [
width: number,
height: number,
centerY: number,
rotation: number
];Source: @openagentid/sdk@0.7.2, dist/characters.d.ts:89.
generateCharacter
Self-contained SVG character. Public DID-derived pixels are not identity proof.
declare function generateCharacter(did: string, options?: CharacterOptions): CharacterDescriptor;Source: @openagentid/sdk@0.7.2, dist/characters.d.ts:92.
getCharacterAccessories
Immutable catalog. Accessories can be combined and default to none.
declare function getCharacterAccessories(): readonly CharacterAccessoryDescription[];Source: @openagentid/sdk@0.7.2, dist/characters.d.ts:13.
getCharacterExpressions
declare function getCharacterExpressions(): readonly AvatarExpression[];Source: @openagentid/sdk@0.7.2, dist/character-state.d.ts:31.
getCharacterSkins
Immutable versioned body/face skins. Eye expression is independent of skin.
declare function getCharacterSkins(): readonly CharacterSkinDescription[];Source: @openagentid/sdk@0.7.2, dist/characters.d.ts:86.
getCharacterStatuses
declare function getCharacterStatuses(): readonly {
readonly status: AvatarStatus;
readonly expression: AvatarExpression;
}[];Source: @openagentid/sdk@0.7.2, dist/character-state.d.ts:32.
getErrorMessage
Narrow an unknown caught value to a human-readable message.
declare function getErrorMessage(err: unknown): string;Source: @openagentid/sdk@0.7.2, dist/errors.d.ts:95.
glyphCodeword
Compact payload and BLAKE3 detection parity matching upstream glyph format v1. This parity is not Reed–Solomon correction and is never authentication proof.
declare function glyphCodeword(did: string): Uint8Array;Source: @openagentid/sdk@0.7.2, dist/glyph.d.ts:30.
glyphEndpoint
GET /v1/glyph/svg/:did. This endpoint always renders identity-derived pixels; profile overrides are resolved by the caller, never fetched by this service.
declare function glyphEndpoint(request: Request): Response;Source: @openagentid/sdk@0.7.2, dist/glyph.d.ts:39.
GlyphOptions
Type-only declaration; it is not a runtime value.
interface GlyphOptions {
size?: number;
background?: boolean;
}Source: @openagentid/sdk@0.7.2, dist/glyph.d.ts:5.
IdentityDocument
OAS identity document fragment — minimum fields needed by the SDK.
Type-only declaration; it is not a runtime value.
interface IdentityDocument {
did: Did;
parent: Did;
publicKeyMultibase: string;
kind: string;
scopes: readonly string[];
createdAt: string;
avatarOverride?: string | null;
avatarSkin?: CharacterAppearance | null;
avatarExpression?: AvatarExpression;
metadata?: Record<string, unknown>;
}Source: @openagentid/sdk@0.7.2, dist/identity.d.ts:9.
identityDocumentSchema
Runtime-validated identity document schema.
declare const identityDocumentSchema: z.ZodObject<{
did: z.ZodEffects<z.ZodString, string, string>;
parent: z.ZodEffects<z.ZodString, string, string>;
publicKeyMultibase: z.ZodString;
kind: z.ZodString;
scopes: z.ZodReadonly<z.ZodArray<z.ZodString, "many">>;
createdAt: z.ZodString;
avatarOverride: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodString>>, string | null | undefined, string | null | undefined>;
avatarSkin: z.ZodOptional<z.ZodNullable<z.ZodEffects<z.ZodObject<{
skin: z.ZodEnum<[
CharacterSkin,
...CharacterSkin[]
]>;
skinVersion: z.ZodOptional<z.ZodLiteral<1>>;
eyeStyle: z.ZodOptional<z.ZodLiteral<"live-v1">>;
finish: z.ZodOptional<z.ZodEnum<[
"plush",
"flat"
]>>;
eyePlacement: z.ZodOptional<z.ZodEnum<[
"face",
"raised"
]>>;
shape: z.ZodOptional<z.ZodEnum<[
NonNullable<CharacterShape | undefined>,
...NonNullable<CharacterShape | undefined>[]
]>>;
accessories: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodEnum<[
"glasses",
"headphones"
]>, "many">, readonly CharacterAccessory[], ("glasses" | "headphones")[]>>;
}, "strict", z.ZodTypeAny, {
skin: CharacterSkin;
skinVersion?: 1 | undefined;
eyeStyle?: "live-v1" | undefined;
finish?: "flat" | "plush" | undefined;
eyePlacement?: "face" | "raised" | undefined;
shape?: NonNullable<CharacterShape | undefined> | undefined;
accessories?: readonly CharacterAccessory[] | undefined;
}, {
skin: CharacterSkin;
skinVersion?: 1 | undefined;
eyeStyle?: "live-v1" | undefined;
finish?: "flat" | "plush" | undefined;
eyePlacement?: "face" | "raised" | undefined;
shape?: NonNullable<CharacterShape | undefined> | undefined;
accessories?: ("glasses" | "headphones")[] | undefined;
}>, {
skin: CharacterSkin;
skinVersion?: 1 | undefined;
eyeStyle?: "live-v1" | undefined;
finish?: "flat" | "plush" | undefined;
eyePlacement?: "face" | "raised" | undefined;
shape?: NonNullable<CharacterShape | undefined> | undefined;
accessories?: readonly CharacterAccessory[] | undefined;
}, {
skin: CharacterSkin;
skinVersion?: 1 | undefined;
eyeStyle?: "live-v1" | undefined;
finish?: "flat" | "plush" | undefined;
eyePlacement?: "face" | "raised" | undefined;
shape?: NonNullable<CharacterShape | undefined> | undefined;
accessories?: ("glasses" | "headphones")[] | undefined;
}>>>;
avatarExpression: z.ZodOptional<z.ZodEnum<[
"neutral",
"attentive",
"surprised",
"excited",
"happy",
"laughing",
"angry",
"sad",
"scared",
"suspicious",
"confused",
"curious",
"proud",
"shy",
"unimpressed",
"sleepy",
"thoughtful",
"concerned"
]>>;
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
}, "strict", z.ZodTypeAny, {
parent: string;
scopes: readonly string[];
kind: string;
did: string;
publicKeyMultibase: string;
createdAt: string;
metadata?: Record<string, unknown> | undefined;
avatarOverride?: string | null | undefined;
avatarSkin?: {
skin: CharacterSkin;
skinVersion?: 1 | undefined;
eyeStyle?: "live-v1" | undefined;
finish?: "flat" | "plush" | undefined;
eyePlacement?: "face" | "raised" | undefined;
shape?: NonNullable<CharacterShape | undefined> | undefined;
accessories?: readonly CharacterAccessory[] | undefined;
} | null | undefined;
avatarExpression?: "neutral" | "attentive" | "surprised" | "excited" | "happy" | "laughing" | "angry" | "sad" | "scared" | "suspicious" | "confused" | "curious" | "proud" | "shy" | "unimpressed" | "sleepy" | "thoughtful" | "concerned" | undefined;
}, {
parent: string;
scopes: readonly string[];
kind: string;
did: string;
publicKeyMultibase: string;
createdAt: string;
metadata?: Record<string, unknown> | undefined;
avatarOverride?: string | null | undefined;
avatarSkin?: {
skin: CharacterSkin;
skinVersion?: 1 | undefined;
eyeStyle?: "live-v1" | undefined;
finish?: "flat" | "plush" | undefined;
eyePlacement?: "face" | "raised" | undefined;
shape?: NonNullable<CharacterShape | undefined> | undefined;
accessories?: ("glasses" | "headphones")[] | undefined;
} | null | undefined;
avatarExpression?: "neutral" | "attentive" | "surprised" | "excited" | "happy" | "laughing" | "angry" | "sad" | "scared" | "suspicious" | "confused" | "curious" | "proud" | "shy" | "unimpressed" | "sleepy" | "thoughtful" | "concerned" | undefined;
}>;Source: @openagentid/sdk@0.7.2, dist/identity.d.ts:102.
IdentityError
OAS identity subsystem failure.
declare class IdentityError extends OpenAgentError {
constructor(message: string, details: ErrorDetails);
}Source: @openagentid/sdk@0.7.2, dist/errors.d.ts:76.
IdentityKeyPurpose
DID verification relationships authorized by the authoritative resolver.
Type-only declaration; it is not a runtime value.
type IdentityKeyPurpose = 'authentication' | 'capabilityDelegation' | 'assertionMethod' | 'capabilityInvocation' | 'keyAgreement';Source: @openagentid/sdk@0.7.2, dist/identity-verification.d.ts:48.
IdentityProvider
The OAS identity facade. Concrete providers come from @openagentid/oas-sdk
(production) or from {@link StubIdentityProvider } (test / offline dev).
Type-only declaration; it is not a runtime value.
interface IdentityProvider {
createAgentIdentity(input: CreateAgentInput): Promise<IdentityDocument>;
resolve(did: Did): Promise<IdentityDocument>;
signChallenge(did: Did, challenge: Uint8Array): Promise<SignedAssertion>;
publicKey(did: Did): Promise<string>;
}Source: @openagentid/sdk@0.7.2, dist/identity.d.ts:48.
IdentityVerificationError
declare class IdentityVerificationError extends Error {
readonly code: IdentityVerificationFailure;
readonly name = "IdentityVerificationError";
constructor(code: IdentityVerificationFailure, message: string);
}Source: @openagentid/sdk@0.7.2, dist/identity-verification.d.ts:103.
IdentityVerificationFailure
Type-only declaration; it is not a runtime value.
type IdentityVerificationFailure = 'invalid_proof' | 'untrusted_owner' | 'revoked' | 'replayed' | 'authority_unavailable';Source: @openagentid/sdk@0.7.2, dist/identity-verification.d.ts:102.
IdentityVerificationHandlerOptions
Type-only declaration; it is not a runtime value.
interface IdentityVerificationHandlerOptions {
readonly audience: string;
resolveNonce(request: Request): Promise<string>;
readonly maxBodyBytes?: number;
}Source: @openagentid/sdk@0.7.2, dist/verification-api.d.ts:4.
IdentityVerifier
Signed possession, authorized roots, delegation and live revocation checks.
declare class IdentityVerifier {
constructor(config: IdentityVerifierConfig);
verify(proof: AgentIdentityProof, options: VerifyIdentityOptions): Promise<VerifiedAgentIdentity>;
verifyLineage(did: string, delegations: readonly string[], options: {
audience: string;
}): Promise<VerifiedAgentIdentity>;
resolve(did: string, options: {
audience: string;
}): Promise<VerifiedAgentIdentity>;
}Source: @openagentid/sdk@0.7.2, dist/identity-verification.d.ts:111.
IdentityVerifierConfig
Type-only declaration; it is not a runtime value.
interface IdentityVerifierConfig {
resolveDid(did: string): Promise<ResolvedIdentityDocument | null>;
authorizeOwner(rootDid: string): Promise<VerifiedOwner | null>;
authorizeSelfRoot?(rootDid: string, options: {
audience: string;
}): Promise<SelfRootAuthorization | null>;
checkRevocation(check: RevocationCheck): Promise<{
revoked: boolean;
checkedAt: number;
}>;
replay: {
consume(claim: ReplayClaim): Promise<boolean>;
};
resolveDelegations?(did: string, audience: string): Promise<readonly string[]>;
now?: () => number;
maxProofAgeSeconds?: number;
maxDelegationAgeSeconds?: number;
maxRevocationAgeSeconds?: number;
maxDepth?: number;
clockToleranceSeconds?: number;
}Source: @openagentid/sdk@0.7.2, dist/identity-verification.d.ts:70.
InMemorySkillsPolicy
In-memory, immutable skills policy. Every mutation returns a new instance.
Supports two match modes:
- Exact:
frontend-designmatches onlyfrontend-design - Wildcard suffix:
frontend-*matchesfrontend-design,frontend-test, ...
declare class InMemorySkillsPolicy implements SkillsPolicy {
constructor(skills?: readonly SkillId[]);
canInvoke(skill: SkillId): boolean;
assertCanInvoke(skill: SkillId): void;
listAllowed(): readonly SkillId[];
grant(skill: SkillId): SkillsPolicy;
revoke(skill: SkillId): SkillsPolicy;
}Source: @openagentid/sdk@0.7.2, dist/skills.d.ts:35.
InputValidationError
Runtime input validation failure (Zod, boundary checks).
declare class InputValidationError extends OpenAgentError {
constructor(message: string, cause?: unknown, context?: Record<string, unknown>);
}Source: @openagentid/sdk@0.7.2, dist/errors.d.ts:72.
isAgentAvatarDid
Supported agent avatar input, not registration, authorization or identity proof.
declare function isAgentAvatarDid(value: unknown): value is string;Source: @openagentid/sdk@0.7.2, dist/characters.d.ts:22.
IssuedCredential
A short-lived credential minted by the Arsenal broker.
Type-only declaration; it is not a runtime value.
interface IssuedCredential {
provider: string;
proxyUrl: string;
expiresAt: number;
remainingCalls?: number;
metadata?: Record<string, unknown>;
}Source: @openagentid/sdk@0.7.2, dist/credentials.d.ts:32.
KeyCryptoBinding
The crypto-wasm binding shape key custody consumes.
Type-only declaration; it is not a runtime value.
interface KeyCryptoBinding {
ed25519_generate_keypair(): {
signing_key: Uint8Array;
verifying_key: Uint8Array;
};
ed25519_public_from_private(signingKey: Uint8Array): Uint8Array;
x25519_generate_keypair(): {
secret_key: Uint8Array;
public_key: Uint8Array;
};
x25519_public_from_secret?(secretKey: Uint8Array): Uint8Array;
blake3_derive_key(context: string, keyMaterial: Uint8Array): Uint8Array;
}Source: @openagentid/sdk@0.7.2, dist/index.d.ts:219.
keys
The key-custody namespace.
declare const keys: {
readonly generate: () => Promise<AgentKeys>;
readonly fromSeed: (seed: Uint8Array) => AgentKeys;
readonly fromSeedHex: (hex: string) => AgentKeys;
readonly fromEnv: (envVar: string) => AgentKeys;
readonly saveSeed: (keys: AgentKeys, path: string) => Promise<void>;
readonly fromSeedFile: (path: string) => Promise<AgentKeys>;
readonly seedToHex: typeof toHex;
readonly setCryptoBinding: typeof setKeyCryptoBinding;
};Source: @openagentid/sdk@0.7.2, dist/index.d.ts:249.
LEGACY_DID_REGEX
Read existing legacy identities without rewriting their signed identifiers.
declare const LEGACY_DID_REGEX: RegExp;Source: @openagentid/sdk@0.7.2, dist/config.d.ts:19.
LineageAuthorityContext
Sigil-backed lineage authority attached by an OAS verifier.
Type-only declaration; it is not a runtime value.
interface LineageAuthorityContext {
readonly subject: Did;
readonly source: string;
readonly root: Did;
readonly path: readonly Did[];
readonly finalizedBlock: number;
readonly pathKind: string;
readonly scopes: readonly string[];
readonly generation: number;
readonly rootKind?: string;
readonly orgRootCommitment?: string;
readonly expiresAt?: string;
}Source: @openagentid/sdk@0.7.2, dist/verification.d.ts:19.
LiveEyeState
Type-only declaration; it is not a runtime value.
interface LiveEyeState {
readonly status?: AvatarStatus;
readonly expression?: AvatarExpression;
readonly blink?: number;
readonly gaze?: {
readonly x: number;
readonly y: number;
};
}Source: @openagentid/sdk@0.7.2, dist/character-state.d.ts:6.
Logger
Logger interface — structured, dependency-free.
Type-only declaration; it is not a runtime value.
interface Logger {
debug(msg: string, fields?: Record<string, unknown>): void;
info(msg: string, fields?: Record<string, unknown>): void;
warn(msg: string, fields?: Record<string, unknown>): void;
error(msg: string, fields?: Record<string, unknown>): void;
}Source: @openagentid/sdk@0.7.2, dist/config.d.ts:58.
oasGlyph
Deterministic SVG avatar. No network calls, private keys or raw DID markup.
declare function oasGlyph(did: string, options?: GlyphOptions): string;Source: @openagentid/sdk@0.7.2, dist/glyph.d.ts:32.
OATS_WEIGHTS
declare const OATS_WEIGHTS: Readonly<{
SecurityAudit: 0.3;
BenchmarkResult: 0.25;
ExpertEndorsement: 0.2;
PublisherBond: 0.15;
CommunityReview: 0.1;
}>;Source: @openagentid/sdk@0.7.2, dist/oats.d.ts:4.
OatsComponentScore
Type-only declaration; it is not a runtime value.
interface OatsComponentScore {
readonly rawScore: number;
readonly weight: number;
readonly evidenceCount: number;
readonly latestEvidence: string | null;
}Source: @openagentid/sdk@0.7.2, dist/oats.d.ts:76.
OatsCompositeScore
Type-only declaration; it is not a runtime value.
interface OatsCompositeScore {
readonly entityDid: string;
readonly components: Readonly<Record<OatsEvidenceType, OatsComponentScore>>;
readonly composite: number;
readonly confidence: number;
readonly evidenceCount: number;
readonly computedAt: string;
}Source: @openagentid/sdk@0.7.2, dist/oats.d.ts:82.
OatsCredential
An OAS VC; the adapter verifies its complete signed body and proof.
Type-only declaration; it is not a runtime value.
interface OatsCredential {
readonly id: string;
readonly issuer: string;
readonly issuanceDate: string;
readonly expirationDate?: string;
readonly type: readonly string[];
readonly oasAttestationType?: OatsEvidenceType;
readonly credentialSubject: Readonly<Record<string, unknown>> & {
readonly id: string;
};
readonly proof: Readonly<Record<string, unknown>>;
readonly [extension: string]: unknown;
}Source: @openagentid/sdk@0.7.2, dist/oats.d.ts:13.
OatsError
declare class OatsError extends Error {
readonly code: string;
constructor(code: string, message: string);
}Source: @openagentid/sdk@0.7.2, dist/oats.d.ts:90.
OatsEvidenceType
Type-only declaration; it is not a runtime value.
type OatsEvidenceType = keyof typeof OATS_WEIGHTS;Source: @openagentid/sdk@0.7.2, dist/oats.d.ts:11.
OatsEvidenceVerifier
Resolve keys from an authoritative source, verify the entire credential, and verify current identity roots, signed lineage and revocation for issuer and subject. Never derive trusted keys or owner bindings from the submitted credential itself.
Type-only declaration; it is not a runtime value.
type OatsEvidenceVerifier = (credential: OatsCredential, context: OatsVerificationContext) => Promise<VerifiedOatsEvidence>;Source: @openagentid/sdk@0.7.2, dist/oats.d.ts:49.
OatsEvidenceVerifierConfig
Type-only declaration; it is not a runtime value.
interface OatsEvidenceVerifierConfig {
readonly audience: string;
readonly identity: IdentityVerifierConfig & {
resolveDelegations(did: string, audience: string): Promise<readonly string[]>;
};
resolveIssuerAssertionMethods(did: string): Promise<OatsIssuerAssertionDocument | null>;
}Source: @openagentid/sdk@0.7.2, dist/oats.d.ts:59.
OatsIssuerAssertionDocument
Keys already authorized for assertionMethod by the authoritative OAS resolver.
Type-only declaration; it is not a runtime value.
interface OatsIssuerAssertionDocument {
readonly did: string;
readonly assertionMethods: readonly {
readonly id: string;
readonly controller: string;
readonly publicKeyJwk: JWK;
}[];
}Source: @openagentid/sdk@0.7.2, dist/oats.d.ts:51.
oatsMeetsThreshold
Both verified composite and confidence must meet the bounded thresholds.
declare function oatsMeetsThreshold(score: OatsCompositeScore, minimumComposite: number, minimumConfidence: number): boolean;Source: @openagentid/sdk@0.7.2, dist/oats.d.ts:109.
OatsScorerOptions
Type-only declaration; it is not a runtime value.
interface OatsScorerOptions {
readonly trustedIssuers: readonly string[];
readonly verifyEvidence: OatsEvidenceVerifier;
readonly now?: () => Date;
}Source: @openagentid/sdk@0.7.2, dist/oats.d.ts:69.
OatsVerificationContext
Type-only declaration; it is not a runtime value.
interface OatsVerificationContext {
readonly credentialId: string;
readonly issuerDid: string;
readonly subjectDid: string;
readonly now: string;
}Source: @openagentid/sdk@0.7.2, dist/oats.d.ts:26.
OpenAgent
OpenAgent — the public namespace. All calls delegate to a singleton
runtime created lazily on first use. Most apps never need more than this.
declare const OpenAgent: {
readonly configure: (config?: OpenAgentConfig) => OpenAgentRuntime;
readonly runtime: () => OpenAgentRuntime;
readonly createAgent: (input: CreateAgentInput) => Promise<OpenAgentInstance>;
readonly loadAgent: (did: Did, skills?: readonly SkillId[]) => Promise<OpenAgentInstance>;
readonly authenticate: (req: Request, options?: VerifyRequestOptions) => Promise<AuthContext>;
};Source: @openagentid/sdk@0.7.2, dist/agent.d.ts:83.
OpenAgentClients
Forward-declared clients for the three wrapped subsystems.
Concrete interfaces live in the per-module files so that this config file does not depend on internal implementation details.
Type-only declaration; it is not a runtime value.
interface OpenAgentClients {
readonly identity?: unknown;
readonly credentials?: unknown;
readonly verification?: unknown;
}Source: @openagentid/sdk@0.7.2, dist/config.d.ts:72.
OpenAgentConfig
Global SDK configuration.
All fields are optional at construction. Identity, credentials and request
verification each require their configured client when used. For a complete
file-backed Node identity authority, use the separate SDK ./local export.
Type-only declaration; it is not a runtime value.
interface OpenAgentConfig {
namespace?: string;
endpoints?: {
oasResolver?: string;
arsenalBroker?: string;
aegisVerifier?: string;
};
fetch?: typeof fetch;
logger?: Logger;
requestTimeoutMs?: number;
clients?: OpenAgentClients;
}Source: @openagentid/sdk@0.7.2, dist/config.d.ts:84.
OpenAgentError
Root of the OpenAgent SDK error hierarchy.
declare class OpenAgentError extends Error {
readonly code: ErrorCodeValue;
readonly cause?: unknown;
readonly context?: Record<string, unknown>;
constructor(message: string, details: ErrorDetails);
toJSON(): Record<string, unknown>;
}Source: @openagentid/sdk@0.7.2, dist/errors.d.ts:59.
OpenAgentInstance
A live, fully-authenticated agent handle.
Type-only declaration; it is not a runtime value.
interface OpenAgentInstance {
readonly did: Did;
readonly document: IdentityDocument;
skillsPolicy(): SkillsPolicy;
withSkillsPolicy(policy: SkillsPolicy): OpenAgentInstance;
credentialsFor(provider: string, scopes?: readonly string[]): Promise<CredentialHandle>;
identity(): IdentityProvider;
}Source: @openagentid/sdk@0.7.2, dist/agent.d.ts:32.
OpenAgentRuntime
Global, lazily-initialized OpenAgent runtime.
The default instance is populated by {@link OpenAgent.configure}. Callers
who need multiple runtimes in one process can instantiate OpenAgentRuntime
directly.
declare class OpenAgentRuntime {
constructor(config?: OpenAgentConfig);
config(): Readonly<ResolvedOpenAgentConfig>;
identity(): IdentityProvider;
arsenal(): ArsenalClient;
verification(): VerificationClient;
createAgent(input: CreateAgentInput): Promise<OpenAgentInstance>;
loadAgent(did: Did, skills?: readonly SkillId[]): Promise<OpenAgentInstance>;
authenticate(req: Request, options?: VerifyRequestOptions): Promise<AuthContext>;
}Source: @openagentid/sdk@0.7.2, dist/agent.d.ts:53.
parseAvatarOverride
declare function parseAvatarOverride(value: unknown): string | null;Source: @openagentid/sdk@0.7.2, dist/glyph.d.ts:33.
parseCharacterAccessories
Strict selection with canonical ordering; never retains a caller-owned array.
declare function parseCharacterAccessories(value: unknown): readonly CharacterAccessory[];Source: @openagentid/sdk@0.7.2, dist/characters.d.ts:15.
parseCharacterAppearance
Strict stored body/face selection; expression and live state belong elsewhere.
declare function parseCharacterAppearance(value: unknown): CharacterAppearance;Source: @openagentid/sdk@0.7.2, dist/characters.d.ts:88.
parseCharacterState
Validate an untrusted status snapshot without changing any identity/profile state.
declare function parseCharacterState(input: unknown, fallbackExpression?: AvatarExpression): CharacterRuntimeState;Source: @openagentid/sdk@0.7.2, dist/character-state.d.ts:40.
parseIdentityDocument
Validate an untrusted identity document. Throws {@link IdentityError } on failure.
declare function parseIdentityDocument(raw: unknown): IdentityDocument;Source: @openagentid/sdk@0.7.2, dist/identity.d.ts:193.
PrivilegedAuthorityVerificationClient
Wraps any verifier and requires OAS/Sigil authority for privileged requests.
declare class PrivilegedAuthorityVerificationClient implements VerificationClient {
constructor(inner: VerificationClient, authorityVerifier: PrivilegedAuthorityVerifier);
verifyRequest(req: Request, options?: VerifyRequestOptions): Promise<AuthContext>;
issueChallenge(): Promise<{
challenge: Uint8Array;
challengeId: string;
}>;
verifyChallengeResponse(params: {
challengeId: string;
agentDid: Did;
signatureBase64: string;
}): Promise<AuthContext>;
}Source: @openagentid/sdk@0.7.2, dist/verification.d.ts:117.
PrivilegedAuthorityVerifier
Runtime hook that turns an authenticated context into OAS/Sigil authority.
Type-only declaration; it is not a runtime value.
interface PrivilegedAuthorityVerifier {
verify(ctx: AuthContext, options: VerifyRequestOptions): Promise<LineageAuthorityContext>;
}Source: @openagentid/sdk@0.7.2, dist/verification.d.ts:96.
providerSchema
Provider identifier (e.g. openai, github, stripe).
declare const providerSchema: z.ZodString;Source: @openagentid/sdk@0.7.2, dist/config.d.ts:24.
RemoteIdentityVerificationOptions
Type-only declaration; it is not a runtime value.
interface RemoteIdentityVerificationOptions {
readonly nonce: string;
readonly fetch?: typeof fetch;
readonly signal?: AbortSignal;
readonly timeoutMs?: number;
}Source: @openagentid/sdk@0.7.2, dist/verification-api.d.ts:17.
renderCharacterSvg
Render a character without retaining its descriptor.
declare function renderCharacterSvg(did: string, options?: CharacterOptions): string;Source: @openagentid/sdk@0.7.2, dist/characters.d.ts:94.
ReplayClaim
Type-only declaration; it is not a runtime value.
interface ReplayClaim {
readonly issuer: string;
readonly tokenId: string;
readonly audience: string;
readonly nonce: string;
readonly expiresAt: number;
}Source: @openagentid/sdk@0.7.2, dist/identity-verification.d.ts:63.
RequireActConfig
Policy for the middleware: the verifier bindings plus optional scopes.
Type-only declaration; it is not a runtime value.
interface RequireActConfig {
issuer: string;
audience: string;
scopes?: string[];
trustedKeys: Uint8Array[];
leewaySeconds?: number;
extractToken?: (req: Request) => Uint8Array | undefined;
onUnauthorized?: (req: Request, reason: string) => Response;
}Source: @openagentid/sdk@0.7.2, dist/index.d.ts:152.
requireActExpress
Express-compatible middleware factory.
On success, the verified claims land on req.actClaims; on failure the
request is rejected with a 401 and never reaches the route.
declare function requireActExpress(config: RequireActConfig): (req: {
headers: Record<string, string | string[] | undefined>;
actClaims?: ActClaims;
}, res: {
status: (code: number) => {
json: (body: unknown) => unknown;
};
}, next: () => void) => Promise<void>;Source: @openagentid/sdk@0.7.2, dist/index.d.ts:189.
resolveConfig
Merge user config with defaults. Pure function — does not mutate input.
declare function resolveConfig(config?: OpenAgentConfig): ResolvedOpenAgentConfig;Source: @openagentid/sdk@0.7.2, dist/config.d.ts:128.
ResolvedIdentityDocument
Type-only declaration; it is not a runtime value.
interface ResolvedIdentityDocument {
readonly did: string;
readonly verificationMethods: readonly {
readonly id: string;
readonly publicKeyJwk: JWK;
readonly purposes: readonly IdentityKeyPurpose[];
}[];
}Source: @openagentid/sdk@0.7.2, dist/identity-verification.d.ts:49.
ResolvedOpenAgentConfig
Resolved configuration with all defaults applied.
Type-only declaration; it is not a runtime value.
interface ResolvedOpenAgentConfig {
namespace: string;
endpoints: {
oasResolver?: string;
arsenalBroker?: string;
aegisVerifier?: string;
};
fetch: typeof fetch;
logger: Logger;
requestTimeoutMs: number;
clients: OpenAgentClients;
}Source: @openagentid/sdk@0.7.2, dist/config.d.ts:113.
RevocationCheck
Type-only declaration; it is not a runtime value.
interface RevocationCheck {
readonly did: string;
readonly issuerDid?: string;
readonly credentialId?: string;
}Source: @openagentid/sdk@0.7.2, dist/identity-verification.d.ts:58.
scopeSchema
A parsed OAS scope string such as openai:chat:completions.
declare const scopeSchema: z.ZodString;Source: @openagentid/sdk@0.7.2, dist/config.d.ts:22.
SelfRootAuthorization
Current, server-authorized self-root registration; never supplied by the proof.
Type-only declaration; it is not a runtime value.
interface SelfRootAuthorization {
readonly did: string;
readonly audience: string;
readonly authorizationId: string;
readonly revision: string;
readonly issuedAt: number;
readonly notBefore: number;
readonly expiresAt: number;
readonly checkedAt: number;
}Source: @openagentid/sdk@0.7.2, dist/identity-verification.d.ts:32.
setActCryptoBinding
Inject the crypto-wasm binding. Called by consumers at startup (and by
tests with a mock). The binding is the @openagentid/crypto-wasm module's
nodejs or bundler build, already instantiated.
declare function setActCryptoBinding(binding: ActVerifyBinding): void;Source: @openagentid/sdk@0.7.2, dist/index.d.ts:100.
setKeyCryptoBinding
Inject the crypto-wasm binding (same one as {@link setActCryptoBinding}).
declare function setKeyCryptoBinding(binding: KeyCryptoBinding): void;Source: @openagentid/sdk@0.7.2, dist/index.d.ts:233.
SignedAssertion
Signed credential returned by the identity provider.
Type-only declaration; it is not a runtime value.
interface SignedAssertion {
token: string;
signature: string;
signer: Did;
issuedAt: number;
expiresAt: number;
}Source: @openagentid/sdk@0.7.2, dist/identity.d.ts:32.
silentLogger
No-op logger used by default.
declare const silentLogger: Logger;Source: @openagentid/sdk@0.7.2, dist/config.d.ts:65.
SkillDeniedError
Skills policy denial.
declare class SkillDeniedError extends OpenAgentError {
readonly skill: string;
constructor(skill: string, reason?: string, context?: Record<string, unknown>);
}Source: @openagentid/sdk@0.7.2, dist/errors.d.ts:88.
SkillId
A skill identifier such as frontend-design or sql-query.
Type-only declaration; it is not a runtime value.
type SkillId = string;Source: @openagentid/sdk@0.7.2, dist/skills.d.ts:14.
SkillsPolicy
The minimum contract the OpenAgent SDK expects from a skills policy.
Type-only declaration; it is not a runtime value.
interface SkillsPolicy {
canInvoke(skill: SkillId): boolean;
assertCanInvoke(skill: SkillId): void;
listAllowed(): readonly SkillId[];
grant(skill: SkillId): SkillsPolicy;
revoke(skill: SkillId): SkillsPolicy;
}Source: @openagentid/sdk@0.7.2, dist/skills.d.ts:16.
toIdentityProvider
Narrow any unknown value into an {@link IdentityProvider}, or throw.
This is the integration point where @openagentid/oas-sdk's client is adapted into
our interface. When that SDK is finalized, replace the duck-typing below
with a direct import.
declare function toIdentityProvider(client: unknown): IdentityProvider;Source: @openagentid/sdk@0.7.2, dist/identity.d.ts:201.
toVerificationClient
Narrow any unknown value into a {@link VerificationClient}, or throw.
Duck-typed for forward compatibility with @openagentid/aegis-sdk.
declare function toVerificationClient(client: unknown): VerificationClient;Source: @openagentid/sdk@0.7.2, dist/verification.d.ts:115.
VerificationClient
AEGIS verifier facade. Concrete implementation lives in @openagentid/aegis-sdk.
The OpenAgent SDK never decodes assertions itself — it delegates to AEGIS for all verification, lineage walking, and policy evaluation.
Type-only declaration; it is not a runtime value.
interface VerificationClient {
verifyRequest(req: Request, options?: VerifyRequestOptions): Promise<AuthContext>;
issueChallenge(): Promise<{
challenge: Uint8Array;
challengeId: string;
}>;
verifyChallengeResponse(params: {
challengeId: string;
agentDid: Did;
signatureBase64: string;
}): Promise<AuthContext>;
}Source: @openagentid/sdk@0.7.2, dist/verification.d.ts:81.
VerificationError
AEGIS verification subsystem failure.
declare class VerificationError extends OpenAgentError {
constructor(message: string, details: ErrorDetails);
}Source: @openagentid/sdk@0.7.2, dist/errors.d.ts:84.
VerifiedAgentIdentity
Current identity trust. This grants no application scopes or tenant access.
Type-only declaration; it is not a runtime value.
type VerifiedAgentIdentity = CommonAgentIdentity & ({
readonly owner: VerifiedOwner;
readonly root?: {
readonly kind: 'lifeid';
readonly did: string;
};
} | {
readonly owner: null;
readonly root: {
readonly kind: 'self';
readonly did: string;
readonly authorizationId: string;
readonly revision: string;
};
});Source: @openagentid/sdk@0.7.2, dist/identity-verification.d.ts:16.
VerifiedOatsEvidence
Return only after the exact credential signature and both identities pass.
Type-only declaration; it is not a runtime value.
interface VerifiedOatsEvidence {
readonly credentialId: string;
readonly issuerDid: string;
readonly subjectDid: string;
readonly signatureVerified: true;
readonly credentialRevocationChecked: true;
readonly issuer: VerifiedAgentIdentity;
readonly subject: VerifiedAgentIdentity;
}Source: @openagentid/sdk@0.7.2, dist/oats.d.ts:34.
VerifiedOatsScorer
declare class VerifiedOatsScorer {
constructor(options: OatsScorerOptions);
score(entityDid: string, credentials: readonly unknown[]): Promise<OatsCompositeScore>;
}Source: @openagentid/sdk@0.7.2, dist/oats.d.ts:100.
VerifiedOwner
Type-only declaration; it is not a runtime value.
interface VerifiedOwner {
readonly issuer: string;
readonly subject: string;
readonly organizationId?: string;
}Source: @openagentid/sdk@0.7.2, dist/identity-verification.d.ts:3.
VerifyIdentityOptions
Type-only declaration; it is not a runtime value.
interface VerifyIdentityOptions {
readonly audience: string;
readonly nonce: string;
}Source: @openagentid/sdk@0.7.2, dist/identity-verification.d.ts:97.
verifyIdentityRemote
The configured service is a trust authority. HTTPS protects its returned verdict.
declare function verifyIdentityRemote(endpoint: string, proof: AgentIdentityProof, options: RemoteIdentityVerificationOptions): Promise<VerifiedAgentIdentity>;Source: @openagentid/sdk@0.7.2, dist/verification-api.d.ts:24.
VerifyRequestOptions
Options for {@link VerificationClient.verifyRequest}.
Type-only declaration; it is not a runtime value.
interface VerifyRequestOptions {
requiredScopes?: readonly string[];
requiredAncestor?: Did;
requirePrivilegedAuthority?: boolean;
requiredAuthorityPath?: string;
clockSkewSeconds?: number;
}Source: @openagentid/sdk@0.7.2, dist/verification.d.ts:63.
VERSION
SDK version — kept in sync with package.json.
declare const VERSION = "0.6.0";Source: @openagentid/sdk@0.7.2, dist/index.d.ts:298.
withAct
Fetch-standard middleware factory.
Returns a handler that takes (request, claims). A request whose token is
missing, malformed, forged, expired, wrong-audience, or under-scoped gets
a 401 with the reason — the handler never runs, and unauthenticated claims
never reach the application.
declare function withAct(config: RequireActConfig, handler: (req: Request, claims: ActClaims) => Promise<Response> | Response): (req: Request) => Promise<Response>;Source: @openagentid/sdk@0.7.2, dist/index.d.ts:182.
wrapError
Wraps any non-OpenAgentError into the SDK hierarchy without losing the cause.
declare function wrapError(err: unknown, fallbackMessage: string): OpenAgentError;Source: @openagentid/sdk@0.7.2, dist/errors.d.ts:93.
Supporting declarations
These package-owned declarations are referenced by the exports above. Their presence here does not make them importable from this entry point. Import only the names in Exports.
ActVerifyBinding
The crypto-wasm binding shape this module consumes.
Type-only declaration; it is not a runtime value.
interface ActVerifyBinding {
act_verify(token: Uint8Array, trustedKeys: Uint8Array, issuer: string, audience: string, scopes: string[], leewaySeconds: bigint, nowUnixSeconds: bigint): string;
}Source: @openagentid/sdk@0.7.2, dist/index.d.ts:92.
CHARACTER_EXPRESSIONS
Portable presentation state. Status never grants identity or application authority.
declare const CHARACTER_EXPRESSIONS: readonly [
"neutral",
"attentive",
"surprised",
"excited",
"happy",
"laughing",
"angry",
"sad",
"scared",
"suspicious",
"confused",
"curious",
"proud",
"shy",
"unimpressed",
"sleepy",
"thoughtful",
"concerned"
];Source: @openagentid/sdk@0.7.2, dist/character-state.d.ts:2.
CommonAgentIdentity
Type-only declaration; it is not a runtime value.
interface CommonAgentIdentity {
readonly did: string;
readonly lineage: readonly string[];
readonly expiresAt: number;
}Source: @openagentid/sdk@0.7.2, dist/identity-verification.d.ts:8.
CreateCredentialHandleParams
Arguments for constructing a credential handle.
Type-only declaration; it is not a runtime value.
interface CreateCredentialHandleParams {
agentDid: Did;
provider: string;
arsenal: ArsenalClient;
fetchImpl: typeof fetch;
requestTimeoutMs: number;
scopes?: readonly string[];
}Source: @openagentid/sdk@0.7.2, dist/credentials.d.ts:87.
toHex
declare function toHex(bytes: Uint8Array): string;Source: @openagentid/sdk@0.7.2, dist/index.d.ts:247.
Package requirements
Dependencies
| Package | Published range |
|---|---|
| zod | ^3.23.8 |
| jose | ^5.10.0 |
| @noble/hashes | ^1.8.0 |
| @scure/base | ^1.2.6 |
Peer dependencies
| Package | Published range | Optional |
|---|---|---|
| @openagentid/aegis-sdk | ^0.1.0 | Yes |
| @openagentid/arsenal-sdk | ^0.1.0 | Yes |
| @openagentid/crypto-wasm | ^0.1.0 | Yes |
| @openagentid/oas-sdk | ^1.0.2 | Yes |
Archive verification
Pinned integrity:
sha512-9YlDb02di8sGffhuMOwNAQa/M3oBrhaqPc7t+qBltdoQRCqlxDmYB/nTRSB4eZgwE4lvM4TKzI72nJtJSVm/ww==