Home / 開発者
For developers
仕様は OpenAPI。
約束はテストで。
manifest でシステムを説明し、hooks をつなぎ、52 項目の適合性テストで確かめる。ソースは GitHub で公開しています。
Quick start
5 分で動かす
# Node 22.19+ · pnpm 10 git clone https://github.com/ITC-cloud-soft/biz-ai.git cd biz-ai pnpm install pnpm test # every workspace package pnpm validate # OpenAPI lint + bundled manifests # the sample business system (PostgreSQL) pnpm --filter @dsh-bridge/example-equipment-inspection start → http://127.0.0.1:19730
import { createBridgeApp, createPool, createPostgresStore } from '@dsh-bridge/server-kit' const store = createPostgresStore({ pool: await createPool(DB_URL) }) await store.migrate() // bridge_* tables const bridge = await createBridgeApp({ manifest: { file: './bridge.manifest.yaml' }, store, serviceToken, bffSecret, hooks: { employees, authenticate, isSessionLive, recipientsFor, approvals, proposalKinds, reports, piiScan }, }) createServer(bridge.handler).listen(8080)
Hooks
業務システムが書くのは hooks だけ
| hook | 返すもの・守ること |
|---|---|
employees | { id, role, active }。無効にした職員はすべてのトークンを即時に失う |
authenticate | 既存のセッション → { user: { id, role }, sessionId }。別のログインは作らない |
recipientsFor | null / { stale } / { users, paramsFor, link, dedupeKey }。範囲を決め、1 人ずつ Web の認可で確かめる |
approvals | get・approvers・card・mayDecide・decide。Web とチャットで同じ規則 |
proposalKinds | { roles, validate, apply }。apply は人が採用したときだけ、同じトランザクションで |
reports | compute(viewer) → 件数だけのセクション |
piiScan | 名簿の名前に当たれば区分だけを返す(文字列は返さない) |
API reference · Bridge v1
エンドポイント
すべての応答に bridge-protocol: 1。エラーは { ok: false, error: <lower_snake_case> }。v1 の中では足すだけ。
| 区分 | 操作 | 主体 |
|---|---|---|
| 基本 | GET /health · GET /manifest | — · サービス |
| 身元 | GET /identity · POST /identities/link · /me/link-codes · /me/identities | サービス · 本人 |
| 委託 | POST /delegations · /assistant/tickets · /assistant/delegations | サービス · BFF |
| event・通知 | GET /events?after= · /notifications/for-event/{id} · /notifications/deliveries | サービス |
| 承認 | /approvals/{id}/deliveries · /approvals/{id}/im-decision · /approvals/im-decisions | サービス |
| 提案 | POST /proposals · /proposals/{id}/accept · /reject | 委託 · 本人 |
| 報告 | GET /reports/latest · POST /reports/run | 本人 · 委託 |
| 任意 | /help/* · /pii-scan · /ai-profile · /document-reads · /connectors/* | — |
Conformance suite
5 つの不変条件から、52 項目
| 不変条件 | 項目 |
|---|---|
| 1 本人だけが連携する | L2–L9 · B1–B4 · N3 |
| 2 委託 = 許可リスト ∩ 役割 | L1 · D1–D7 · S1–S5 · R2 |
| 3 AI は提案、人が決める | D3 · D5 · PR1–PR3 · A2–A4 · R3 |
| 4 個人情報を載せない | E1–E4 · N1 · N2 · A1 · R2 · L10 |
| 5 身元は業務システムから | L3 · D1 · D2 · S2 · A2 · N3 |
| プロトコルの作法 | P1–P6 · M1–M3 |
BRIDGE_BASE_URL=http://127.0.0.1:8080 \
BRIDGE_FIXTURES=./test/fixtures.mjs \
BRIDGE_MANIFEST_FILE=./bridge.manifest.yaml \
node --test packages/protocol/conformance/http.test.mjs
52 passed, 0 known gaps, 0 skippedmutation test:不変条件をわざと壊したモックでは、該当の項目が落ちることも確かめています。
Packages
パッケージ
@dsh-bridge/protocol
OpenAPI・JSON Schema・検証・bridge-validate・適合性テスト
@dsh-bridge/server-kit
業務システム側の Bridge v1 実装(Node.js・PostgreSQL)
@dsh-bridge/dsh-core
AI 面の中核:アプリの登録・委託・ツール・文面の枠
plugins/* (9)
identity・tools・events・notify・approvals・assistant・memory・persona・reader
@dsh-bridge/web-kit
React の画面部品:SNS 連携・通知設定・AI 社員の設定・外部連携
@dsh-bridge/gateway
BFF から AI 面への認証付きゲートウェイ(RPC は許可リスト)