JSPM

@switchy-ai/sdk

0.1.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 15
  • Score
    100M100P100Q75598F
  • License MIT

Official TypeScript/JavaScript SDK for the Switchy AI memory and chat API

Package Exports

  • @switchy-ai/sdk

Readme

@switchy-ai/sdk

Official TypeScript/JavaScript SDK for the Switchy AI memory, knowledge-graph, and multi-model chat API.

Install

npm install @switchy-ai/sdk
# or
pnpm add @switchy-ai/sdk
# or
yarn add @switchy-ai/sdk

Quick start

import { Switchy } from '@switchy-ai/sdk';

const client = new Switchy({ apiKey: process.env.SWITCHY_API_KEY! });

const response = await client.chat.complete({
  model: 'anthropic/claude-sonnet-4',
  message: 'Summarise my recent project notes',
  memory: { enabled: true, extractMemories: true },
});

console.log(response.message.content);

Streaming

for await (const chunk of client.chat.stream({
  model: 'openai/gpt-5',
  message: 'Write a haiku about memory',
})) {
  if (chunk.type === 'token') process.stdout.write(chunk.content ?? '');
}

Memory

// Create a namespace
await client.namespaces.create({ name: 'my-project' });

// Store a memory frame
await client.memory.createFrame('my-project', {
  content: 'User prefers dark mode and TypeScript',
  metadata: { source: 'onboarding' },
});

// Contextual retrieval (semantic + recency)
const relevant = await client.memory.context('my-project', {
  query: 'What are the user preferences?',
  limit: 5,
});

Knowledge graph

await client.knowledgeGraph.createEntity('my-project', {
  name: 'AuthService',
  type: 'service',
});

await client.knowledgeGraph.createRelation('my-project', {
  source: 'AuthService',
  target: 'User',
  type: 'authenticates',
});

Error handling

import { Switchy, SwitchyError, RateLimitError } from '@switchy-ai/sdk';

try {
  await client.chat.complete({ model: 'openai/gpt-5', message: 'hi' });
} catch (err) {
  if (err instanceof RateLimitError) {
    console.log(`Rate limited, retry in ${err.retryAfter}s`);
  } else if (err instanceof SwitchyError) {
    console.log(`API error: ${err.code}${err.message}`);
  }
}

API reference

  • chat.complete(opts) — single-turn completion
  • chat.stream(opts) — SSE streaming generator
  • models.list({ featured, category, q }) — list available models
  • namespaces.{create,list,get,update,delete} — manage memory namespaces
  • memory.{createFrame,listFrames,context,semantic,search,bridge,consolidate} — memory operations
  • knowledgeGraph.{createEntity,createRelation,query} — graph operations
  • sessions.{create,list,get} — session management

See full OpenAPI spec: https://switchy.build/api/v1/openapi.json

License

MIT