Bridge (Validation)

API-backed action validation and preset loading

View as Markdown

Bridge operations in sdk@0.6.3 are exposed via thunks and API routes.

Validate Action

1import { createSDKStore, validateBridgeThunk } from '@forbocai/core';
2
3const store = createSDKStore();
4
5const result = await store.dispatch(validateBridgeThunk({
6 action: {
7 type: 'OPEN_GATE',
8 target: 'north_gate'
9 },
10 context: {
11 npcState: { alertLevel: 0 },
12 worldState: { curfew: false }
13 },
14 apiUrl: 'https://api.forboc.ai',
15 apiKey: process.env.FORBOCAI_API_KEY
16})).unwrap();
17
18console.log(result.valid, result.reason);

List Rules

1import { getBridgeRulesThunk } from '@forbocai/core';
2
3const rules = await store.dispatch(getBridgeRulesThunk({
4 apiUrl: 'https://api.forboc.ai',
5 apiKey: process.env.FORBOCAI_API_KEY
6})).unwrap();
7
8console.log(rules.length);

Load Preset

1import { loadBridgePresetThunk } from '@forbocai/core';
2
3const preset = await store.dispatch(loadBridgePresetThunk({
4 presetName: 'rpg',
5 apiUrl: 'https://api.forboc.ai',
6 apiKey: process.env.FORBOCAI_API_KEY
7})).unwrap();
8
9console.log(preset.id);

CLI

$npx forbocai bridge validate ./action.json
$npx forbocai bridge rules
$npx forbocai bridge preset rpg