UNPKG

eve

Version:

Filesystem-first framework for durable backend AI agents that run anywhere.

1 lines 1.51 kB
function createJsonSchemaSample(e){if(!isRecord(e))return{};if(`const`in e)return e.const;if(Array.isArray(e.enum)&&e.enum.length>0)return e.enum[0];let t=getFirstSchema(e.oneOf)??getFirstSchema(e.anyOf);if(t!==void 0)return createJsonSchemaSample(t);switch(getJsonSchemaType(e)){case`array`:return[createJsonSchemaSample(getFirstSchema(e.items)??e.items)];case`boolean`:return!0;case`integer`:case`number`:return 1;case`null`:return null;case`object`:return createJsonSchemaObjectSample(e);case`string`:return createJsonSchemaStringSample(e);default:return isRecord(e.properties)?createJsonSchemaObjectSample(e):e.items===void 0?{}:[createJsonSchemaSample(getFirstSchema(e.items)??e.items)]}}function createJsonSchemaObjectSample(e){let t=isRecord(e.properties)?e.properties:{},n=Array.isArray(e.required)?e.required.filter(e=>typeof e==`string`):[],r=new Set([...n,...Object.keys(t)]),i={};for(let e of r)i[e]=createJsonSchemaSample(t[e]);return i}function createJsonSchemaStringSample(e){switch(e.format){case`date`:return`2026-01-01`;case`date-time`:return`2026-01-01T00:00:00.000Z`;case`email`:return`eve@example.com`;case`uri`:return`https://example.com`;default:return`structured-output`}}function getJsonSchemaType(e){if(typeof e.type==`string`)return e.type;if(Array.isArray(e.type))return e.type.find(e=>typeof e==`string`&&e!==`null`)}function getFirstSchema(e){return Array.isArray(e)?e[0]:e}function isRecord(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}export{createJsonSchemaSample};