1.0.3 • Published 4 months ago

directoriesai v1.0.3

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
4 months ago

Directories.ai TypeScript SDK

Official TypeScript SDK for creating and managing AI-powered directories, listings, websites, apps, and assistants with Directories.ai.

Getting Started

  1. Get your API key from Directories.ai Dashboard
  2. Install the SDK:
npm install directoriesai
# or
pnpm add directoriesai
# or
yarn add directoriesai
  1. Initialize the client:
import { DirectoriesClient } from 'directoriesai';

const client = new DirectoriesClient({
  apiKey: process.env.DIRECTORIES_API_KEY // Get this from directories.ai/dashboard/settings/api
});

Core Concepts

Everything in Directories.ai operates within a directory context:

// Create a directory
const directory = await client.createDirectory({
  name: "My Business Directory",
  type: "business",
  purpose: "marketplace",
  industry: {
    type: "services",
    features: {
      booking: true,
      reviews: true,
      verification: true
    }
  }
});

// Set directory context for subsequent operations
client.setDirectoryId(directory.id);

// Create a listing within the directory
const listing = await client.createListing({
  name: "My Business",
  description: "Business description",
  type: "business",
  status: "published",
  contact: {
    email: "contact@business.com",
    phone: "+1234567890"
  }
});

// Deploy a website for the listing
const website = await client.createWebsite({
  listingId: listing.id,
  name: "Business Website",
  config: {
    theme: "modern",
    features: ["contact", "gallery", "booking"]
  },
  deployment: {
    platform: "vercel",
    domain: "mybusiness.com"
  }
});

// Create an AI assistant for the listing
const assistant = await client.createAssistant({
  name: "Business Assistant",
  type: "customer_service",
  capabilities: {
    core: ["answer_questions", "handle_bookings"],
    industry: ["service_recommendations", "price_quotes"]
  }
});

Key Features

Directory Management

  • Create and configure directories
  • Set industry-specific features
  • Manage categories and taxonomies
  • Control access and permissions

Listings

  • Create and manage listings
  • Handle claims and verifications
  • Enrich content with AI
  • Manage media and attachments

Websites & Apps

  • Deploy modern web applications
  • Multiple deployment platforms (Vercel, Netlify, Cloudflare)
  • Custom domains and SSL
  • Built-in analytics and monitoring

AI Assistants

  • Industry-specific AI assistants
  • Customizable capabilities
  • Knowledge base management
  • Multi-platform deployment (web, mobile, API)

Automation

  • Automated content enrichment
  • Scheduled tasks and workflows
  • Content moderation
  • Performance monitoring

Example: Complete Business Directory

// 1. Create a directory
const directory = await client.createDirectory({
  name: "Local Business Directory",
  type: "business",
  industry: {
    type: "services",
    features: ["booking", "reviews"]
  }
});

// 2. Configure directory settings
await client.updateDirectory(directory.id, {
  settings: {
    listing: {
      requireVerification: true,
      moderationEnabled: true
    },
    ai: {
      contentEnrichment: true,
      customerSupport: true
    }
  }
});

// 3. Add categories
await client.createCategories(directory.id, [
  { name: "Restaurants", slug: "restaurants" },
  { name: "Retail", slug: "retail" },
  { name: "Professional Services", slug: "services" }
]);

// 4. Create a listing
const listing = await client.createListing({
  name: "City Cafe",
  category: "restaurants",
  description: "Modern cafe in downtown",
  contact: {
    email: "hello@citycafe.com",
    phone: "+1234567890"
  }
});

// 5. Deploy a website
const website = await client.createWebsite({
  listingId: listing.id,
  name: "City Cafe Website",
  deployment: {
    platform: "vercel",
    domain: "citycafe.com"
  }
});

// 6. Create an AI assistant
const assistant = await client.createAssistant({
  listingId: listing.id,
  type: "restaurant",
  capabilities: ["menu_info", "reservations", "faq"]
});

Error Handling

try {
  const directory = await client.createDirectory({...});
} catch (error) {
  if (error instanceof DirectoriesError) {
    console.error('API Error:', error.message, error.code);
    // Handle specific error cases
    switch (error.code) {
      case 'RATE_LIMIT_EXCEEDED':
        // Handle rate limiting
        break;
      case 'INVALID_CONFIGURATION':
        // Handle configuration errors
        break;
      default:
        // Handle other errors
    }
  }
}

Monitoring and Analytics

// Get directory metrics
const metrics = await client.getDirectoryMetrics(directory.id);

// Monitor AI performance
const aiMetrics = await client.getAIMetrics(directory.id);

// Get website analytics
const analytics = await client.getWebsiteAnalytics(website.id);

Documentation

Support

License

MIT License - see the LICENSE file for details.