logo
0
0
WeChat Login
wangmiao<tuziling84@gmail.com>
fix

简体中文 | English | 한국어 | Français | Deutsch | 日本語 | Русский | Español | Português | Italiano | Tiếng Việt | العربية

Star Office UI Node

License Node pnpm GitHub stars

マルチエージェント協業向けの ピクセル風オフィス・ダッシュボード です。OpenClaw や Lobster などの AI アシスタントが今何をしているか、「昨日」の記録、誰がオンラインかをリアルタイムに可視化します。

本リポジトリは上流 Star-Office-UINode.js / Express で再実装したもので、見た目と HTTP 契約を保ち既存エージェントの変更を最小限にしつつ、バックエンドは 常駐サービス 向けに整理しています。

UI は 4 スタイル:ピクセル、ソフト、夜青、紙本 — 既定は ピクセル です。

像素风格
柔和风格 夜青风格 纸本风格

このフォークの特徴

  • サービス型構成: ルート・サービス・設定・ブートストラップを src/ に分離。
  • ツールチェーン固定: pnpmNode ≥ 20enginesonly-allowengine-strictsrc/bootstrap/env-check.js)。
  • 運用向け: SIGTERM / SIGINTgraceful shutdownGET /health、永続化後の GET /ready
  • ディスク上の状態: メイン状態・エージェント一覧・参加キーを JSON で保持 — バックアップとボリューム運用が容易。
  • 昨日のメモ: 隣接する memory/ の Markdown を読みます(GET /yesterday-memo)。

クレジット

クイックスタート

Node ≥ 20pnpm ≥ 9pnpm インストール)。

git clone https://github.com/wangmiaozero/Star-Office-UI-Node.git cd Star-Office-UI-Node pnpm install pnpm start

既定 URL: http://127.0.0.1:18791

ファイル監視付き開発:

pnpm dev

ポートが使用中の場合:

PORT=18792 pnpm start

環境変数の例:

cp .env.example .env

SKIP_PNPM_CHECK=1 は pnpm なしで node src/server.js を動かす際のみ — 本番では非推奨 です。

Docker Compose

docker compose up -d

ブラウザで http://127.0.0.1:18791

よく使うコマンド

メインエージェントの状態:

pnpm set-state writing "ドキュメント作成中"

ヘルス・レディ:

curl -s http://127.0.0.1:18791/health curl -s http://127.0.0.1:18791/ready

API 概要

  • GET /health — 生存
  • GET /ready — 準備完了(起動チェック後)
  • GET /status — メインエージェント状態
  • POST /set_state — メイン状態の設定
  • GET /agents — エージェント一覧(ゲスト整理・オフライン処理)
  • POST /join-agent — ゲスト参加
  • POST /agent-push — ゲスト状態のプッシュ
  • POST /leave-agent — ゲスト退出
  • POST /agent-approve / POST /agent-reject — 承認/拒否
  • GET /yesterday-memomemory/YYYY-MM-DD.md 由来のメモ
  • GET /, /join, /invite — ページ;静的ファイルは /static

OpenClaw / Lobster 連携

1) 対応状態

  • idle, writing, researching, executing, syncing, error

互換マッピング:

  • working / busy / writewriting
  • run / running / execute / execexecuting
  • syncsyncing
  • research / searchresearching

2) join と agentId の保存

curl -s -X POST http://127.0.0.1:18791/join-agent \ -H "Content-Type: application/json" \ -d '{ "name": "openclaw-agent-01", "joinKey": "ocj_starteam02", "state": "idle", "detail": "just joined" }'

3) 定期的なプッシュ(10〜30 秒)

curl -s -X POST http://127.0.0.1:18791/agent-push \ -H "Content-Type: application/json" \ -d '{ "agentId": "agent_xxx", "joinKey": "ocj_starteam02", "name": "openclaw-agent-01", "state": "writing", "detail": "working on current task context" }'

4) 退出

curl -s -X POST http://127.0.0.1:18791/leave-agent \ -H "Content-Type: application/json" \ -d '{"agentId":"agent_xxx"}'

推奨フロー: 起動時に join-agentagentId をローカル保存 → 一定間隔で agent-push → 正常終了時に leave-agent403/404 ではプッシュ停止と再 join またはアラート。

ライセンス

  • コード: MIT
  • アートは上流の条件がある場合があります。商用利用時は必要に応じて差し替えてください。

スター

役に立ったらスターをいただけると嬉しいです。


Made with ❤️ by wangmiaozero