***

title: Cortex (Inference)
subtitle: Local Node/Web inference and remote completion thunk
slug: npm/cortex
----------------

The SDK supports three cortex execution paths:

* Node local inference via `createNodeCortex()` (`@forbocai/node`)
* Browser local inference via browser cortex thunks (`@forbocai/browser`)
* Remote compatibility completion via `completeRemoteThunk` (`@forbocai/core`)

## Node Local Cortex

```typescript
import { createNodeCortex } from '@forbocai/node';

const cortex = createNodeCortex('smollm2-135m');

await cortex.init();

const text = await cortex.complete('Return valid JSON only', {
  maxTokens: 128,
  temperature: 0.2,
  stop: ['</json>']
});

console.log(text);
```

## Browser Cortex Thunks

```typescript
import { createBrowserStore, initBrowserCortexThunk, completeBrowserCortexThunk } from '@forbocai/browser';

const store = createBrowserStore();

await store.dispatch(initBrowserCortexThunk({
  model: 'smollm2-135m',
  onProgress: (p) => console.log(p)
})).unwrap();

const text = await store.dispatch(completeBrowserCortexThunk({
  model: 'smollm2-135m',
  prompt: 'Say hello in one sentence',
  maxTokens: 64,
  temperature: 0.7
})).unwrap();

console.log(text);
```

## Remote Compatibility Completion

```typescript
import { createSDKStore, completeRemoteThunk } from '@forbocai/core';

const store = createSDKStore();

const text = await store.dispatch(completeRemoteThunk({
  cortexId: 'local',
  prompt: 'Return one short sentence.',
  apiUrl: 'https://api.forboc.ai',
  apiKey: process.env.FORBOCAI_API_KEY
})).unwrap();

console.log(text);
```

This maps to `POST /cortex/{cortexId}/complete`.
