k8ordo
  • UI
  • Form
  • State
  • Router
  • Static
  • Server
ダークモードに切り替え
  • Get Started
  • Theming
  • i18n
  • Components
  • Hooks
  • Helpers
  • AI
ナビゲーションを開く
AI
  • AI Chat
  • Generative UI
  • AI Agents
k8ordo

Baselineに入った機能を、制限なく使うReactのライブラリ群。

パッケージ
  • @k8ordo/ui
  • @k8ordo/form
  • @k8ordo/state
  • @k8ordo/router
  • @k8ordo/static
  • @k8ordo/server
UI
  • Get Started
  • Theming
  • i18n
  • Components
  • Hooks
  • Helpers
  • AIチャット
  • Generative UI
  • AIエージェント
  • Storybook
リソース
  • GitHub
  • npm

© 2026 k8o — MIT License

組版 — Noto Sans JP / M PLUS 2

AI

AI
  • AI Chat
  • Generative UI
  • AI Agents

Generative UI

k8ordo UIは、LLMがk8ordo UIコンポーネントだけでUIを生成できる公式アダプタ(json-render / OpenUI)を同梱しています。プロンプトはサーバーで生成し、出力を検証してからクライアントで描画します。

プロンプトを生成(サーバー)

catalogはサーバー安全です。Server Componentでシステムプロンプトを生成し、uiRulesで横断ルールを注入します。

描画(クライアント)

JsonRenderUIがプロバイダー・レンダラー・registryを内部結線済みなので、specを渡すだけで描画できます。

LLM出力の検証と修復

validateGeneratedSpecが機械修正・構造検証・コンポーネントごとのprops検証を行い、失敗時はそのまま投げ返せる修復プロンプトを返します。

型付きspec

satisfies UISpecで書くと、component名・propsのtypoがコンパイル時に検出されます。

OpenUI

OpenUIはDSL文字列をlibraryで描画します。プロンプトは専用のopenui/promptエントリでサーバー生成できます。

import { catalog, uiRules } from '@k8ordo/ui/json-render';

// Runs on the server. customRules injects constraints the model tends to break.
const systemPrompt = catalog.prompt({ customRules: [...uiRules] });
'use client';
import { JsonRenderUI } from '@k8ordo/ui/json-render/registry';

export function GenUi({ spec }: { spec: unknown }) {
  return <JsonRenderUI spec={spec} />;
}
import { validateGeneratedSpec } from '@k8ordo/ui/json-render';

const result = validateGeneratedSpec(JSON.parse(llmOutput));
if (result.ok) {
  return <JsonRenderUI spec={result.spec} />;
}
const retried = await llm(result.repairPrompt); // fix and retry
import type { UISpec } from '@k8ordo/ui/json-render';

const spec = {
  root: 'root',
  elements: {
    root: { type: 'Stack', props: { direction: 'column' }, children: ['ok'] },
    ok: { type: 'Button', props: { label: 'OK' } },
  },
} satisfies UISpec;
'use client';
import { library } from '@k8ordo/ui/openui';
import { Renderer } from '@openuidev/react-lang';

export function GenUi({ response }: { response: string }) {
  return <Renderer library={library} response={response} />;
}
// Server-safe prompt generation (symmetric with catalog.prompt()).
import { prompt } from '@k8ordo/ui/openui/prompt';

const systemPrompt = prompt();