Documentation Index
Fetch the complete documentation index at: https://docs.emergence.ai/llms.txt
Use this file to discover all available pages before exploring further.
TypeScript SDK
The CRAFT TypeScript SDK provides fully typed clients for all platform APIs, with support for Node.js and browser environments.
Installation
# Configure the @emergence-ai npm scope
echo "@emergence-ai:registry=https://us-central1-npm.pkg.dev/aip-artifacts-store/aip-npm/" >> .npmrc
# Install all SDKs
npm install @emergence-ai/em-runtime-governance-sdk \
@emergence-ai/em-runtime-assets-sdk \
@emergence-ai/em-runtime-utils-sdk
Quick Start
import {
Configuration,
OrganizationsApi,
ProjectsApi,
} from '@emergence-ai/em-runtime-governance-sdk';
const config = new Configuration({
basePath: 'https://your-instance.emergence.ai/governance',
accessToken: 'your-jwt-token',
});
const orgsApi = new OrganizationsApi(config);
const projectsApi = new ProjectsApi(config);
List Organizations
const { data: orgs } = await orgsApi.listOrganizations();
orgs.items.forEach(org => {
console.log(`${org.id}: ${org.name}`);
});
Create a Project
const { data: project } = await projectsApi.createProject({
projectCreate: {
name: 'My Project',
description: 'Data analysis workspace',
},
});
console.log(`Created project: ${project.id}`);
Create a Data Connection
import {
Configuration as AssetsConfig,
DataApi,
} from '@emergence-ai/em-runtime-assets-sdk';
const assetsConfig = new AssetsConfig({
basePath: 'https://your-instance.emergence.ai/assets',
accessToken: 'your-jwt-token',
});
const dataApi = new DataApi(assetsConfig);
const { data: connection } = await dataApi.createDataConnection({
dataConnectionCreate: {
name: 'analytics-db',
connectionType: 'postgres',
description: 'Analytics PostgreSQL database',
},
});
Error Handling
import { AxiosError } from 'axios';
try {
const { data } = await orgsApi.listOrganizations();
} catch (error) {
if (error instanceof AxiosError) {
switch (error.response?.status) {
case 401:
console.error('Token expired — refresh and retry');
break;
case 403:
console.error('Insufficient permissions');
break;
default:
console.error(`API error: ${error.response?.status}`);
}
}
}
Token Refresh Pattern
import { Configuration } from '@emergence-ai/em-runtime-governance-sdk';
// Dynamic token provider
const config = new Configuration({
basePath: 'https://your-instance.emergence.ai/governance',
accessToken: async () => {
// Fetch fresh token from Keycloak
const token = await refreshKeycloakToken();
return token;
},
});
Package Reference
| Package | Covers | Scope |
|---|
@emergence-ai/em-runtime-governance-sdk | Organizations, Projects, Permissions | governance |
@emergence-ai/em-runtime-assets-sdk | Artifacts, Data Connections, Files, Models | assets |
@emergence-ai/em-runtime-utils-sdk | Data Catalog, Scheduling, Context Packs, Memories | utils |
Next Steps
Python SDK
Python client guide
API Reference
Interactive API playground