Backend helper functions for Cedar OS
npm install @cedar-os/backendBackend helper functions for Cedar OS that enable seamless integration between Cedar OS frontend capabilities and AI agents using Mastra.
``bash`
npm install @cedar-os/backendor
yarn add @cedar-os/backendor
pnpm add @cedar-os/backend
- 🔄 JSON Schema Extraction: Extract JSON schemas directly from Cedar OS frontend tools and state setters
- 🎯 Type Safety: Full TypeScript support with proper type inference
- 🔧 Zero Configuration: Works out of the box with Cedar OS additionalContextexperimental_output
- âš¡ Direct Integration: JSON schemas work directly with - no conversion needed
This package extracts JSON schemas directly from Cedar OS additionalContext for use with AI agent structured output.
`typescript
import {
getFrontendToolSchemas,
getStateSetterSchemas,
getFrontendToolSchema,
getStateSetterSchema,
} from '@cedar-os/backend';
// Extract all frontend tool schemas (returns JSON Schemas directly)
const frontendSchemas = getFrontendToolSchemas(requestBody);
// Extract all state setter schemas (returns JSON Schemas directly)
const setterSchemas = getStateSetterSchemas(requestBody);
// Extract a specific frontend tool schema
const notificationSchema = getFrontendToolSchema(
requestBody,
'showNotification'
);
// Extract a specific state setter schema
const addNodeSchema = getStateSetterSchema({
requestBody,
setterKey: 'addNode',
stateKey: 'nodes',
});
// Use directly with experimental_output
const response = await agent.generate({
messages: [{ role: 'user', content: body.prompt }],
experimental_output: {
schema: notificationSchema, // JSON Schema works directly
},
});
`
#### getFrontendToolSchema(requestBody, toolName)
Extract a single frontend tool schema from additionalContext.
- Parameters:
- requestBody: CedarRequestBody - The request body containing additionalContexttoolName: string
- - The name of the frontend toolRecord
- Returns: - The JSON Schema or null if not found
#### getFrontendToolSchemas(requestBody)
Extract all frontend tool schemas from additionalContext.
- Parameters:
- requestBody: CedarRequestBody - The request body containing additionalContextRecord
- Returns: - Object mapping tool names to JSON schemas
#### getStateSetterSchema({ requestBody, setterKey, stateKey })
Extract a single state setter schema from additionalContext.
- Parameters:
- requestBody: CedarRequestBody - The request body containing additionalContextsetterKey: string
- - The key of the state setterstateKey: string
- - The key of the state being setRecord
- Returns: - The JSON Schema or null if not found
#### getStateSetterSchemas(requestBody)
Extract all state setter schemas from additionalContext.
- Parameters:
- requestBody: CedarRequestBody - The request body containing additionalContextRecord
- Returns: - Object mapping setter keys to JSON schemas
#### getJsonSchema(jsonSchema)
Extract and validate a JSON Schema object.
- Parameters:
- jsonSchema: unknown - The JSON Schema objectRecord
- Returns: - The validated JSON Schema or null if invalid
- Phase 2: Mastra tool creation utilities
- Phase 3: Combined utilities and structured output schemas
- Phase 4: Complete integration examples
This package is under active development. The current Phase 1 implementation provides JSON Schema extraction that works directly with experimental_output`. Future phases will add Mastra tool creation and full integration capabilities.
MIT