All files / kernel-utils/src schema.ts

0% Statements 0/0
0% Branches 0/0
0% Functions 0/0
0% Lines 0/0

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58                                                                                                                   
/**
 * JSON Schema type for describing values. Supports primitives, arrays, and objects
 * with recursive definitions.
 */
export type JsonSchema =
  | PrimitiveJsonSchema
  | ArrayJsonSchema
  | ObjectJsonSchema;
 
/**
 * Primitive JSON Schema types (string, number, boolean).
 */
type PrimitiveJsonSchema = {
  type: 'string' | 'number' | 'boolean';
  description?: string;
};
 
/**
 * Array JSON Schema with recursive item type.
 */
type ArrayJsonSchema = {
  type: 'array';
  description?: string;
  items: JsonSchema;
};
 
/**
 * Object JSON Schema with recursive property definitions.
 */
type ObjectJsonSchema = {
  type: 'object';
  description?: string;
  properties: {
    [key: string]: JsonSchema;
  };
  required?: string[];
  additionalProperties?: boolean;
};
 
/**
 * Schema describing a method, including its purpose, arguments, and return value.
 */
export type MethodSchema = {
  /**
   * Description of the method's purpose and behavior.
   */
  description: string;
  /**
   * Arguments of the method, keyed by argument name.
   * Each argument includes its type and description.
   */
  args: Record<string, JsonSchema>;
  /**
   * Return value schema, including type and description.
   */
  returns?: JsonSchema;
};