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

Una dashboard d’ufficio in pixel per la collaborazione multi-agente: mostra in tempo reale cosa stanno facendo i tuoi assistenti IA (OpenClaw, Lobster, ecc.) — chi è attivo, cosa è successo «ieri» e chi è online — così le persone capiscono la situazione a colpo d’occhio.

Questo repository è un’implementazione Node.js / Express dell’idea Star-Office-UI a monte. Mantiene lo stesso aspetto e contratto HTTP così che agenti e script esistenti cambino poco o nulla, mentre il backend è strutturato per servizi a lunga esecuzione, non un unico script monolitico.

Il progetto offre quattro stili: Pixel, Soft, Night Blue e Paper; predefinito è Pixel.

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

Cosa rende questo fork diverso

  • Codice a forma di servizio: route, servizi, configurazione e bootstrap sotto src/ invece di un unico file. Più facile da revisionare, testare ed estendere.
  • La toolchain conta: pnpm e Node ≥ 20 sono obbligatori (engines, only-allow, engine-strict in .npmrc, controllo in src/bootstrap/env-check.js). CI e onboarding si comportano allo stesso modo ovunque.
  • Operatività: il server HTTP esegue shutdown graduale su SIGTERM / SIGINT (adatto a Docker/K8s). GET /health per liveness e GET /ready dopo l’inizializzazione della persistenza.
  • Stato su disco: stato principale, elenco agenti e chiavi di join in JSON accanto all’app — semplice da backuppare, diffare e montare con volumi in compose.
  • Memo di ieri: legge Markdown da una directory sorella memory/ (vedi GET /yesterday-memo), trasformando i diari in un breve «cosa abbiamo fatto l’ultima volta».

I crediti del progetto originale sono sotto; poi come eseguire e integrare.

Crediti

Grazie per aver reso open source il concetto di ufficio pixel, gli asset e il design delle interazioni.

Avvio rapido

Servono Node ≥ 20 e pnpm ≥ 9 (installa pnpm se necessario).

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

URL predefinito: http://127.0.0.1:18791

Sviluppo con watch:

pnpm dev

Se la porta è occupata:

PORT=18792 pnpm start

File di ambiente opzionale:

cp .env.example .env

SKIP_PNPM_CHECK=1 è documentato solo per casi limite in cui devi eseguire node src/server.js senza pnpm — non consigliato in produzione.

Docker Compose

docker compose up -d

Poi apri: http://127.0.0.1:18791

Comandi comuni

Imposta lo stato dell’agente principale (helper CLI):

pnpm set-state writing "Drafting docs"

Salute e readiness:

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

Panoramica API

  • GET /health — liveness
  • GET /ready — readiness (dopo i controlli di avvio)
  • GET /status — stato dell’agente principale
  • POST /set_state — imposta stato dell’agente principale
  • GET /agents — elenco agenti (pulizia ospiti / logica offline applicata)
  • POST /join-agent — ingresso agente ospite
  • POST /agent-push — invio stato agente
  • POST /leave-agent — uscita agente
  • POST /agent-approve / POST /agent-reject — approva o rifiuta ospite
  • GET /yesterday-memo — memo derivato da memory/YYYY-MM-DD.md
  • GET /, /join, /invite — pagine web; asset statici sotto /static

Integrazione con OpenClaw / Lobster

1) Stati supportati

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

Mappatura di compatibilità:

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

2) Entra una volta e memorizza 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) Invia stato periodicamente (ogni 10–30 s)

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) Esci

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

Ciclo di vita suggerito:

  1. Chiama join-agent all’avvio
  2. Persisti agentId in locale
  3. Invia a intervalli
  4. Chiama leave-agent allo shutdown graduale
  5. Su 403/404, smetti di inviare e rientra o avvisa

Licenza

  • Codice: MIT
  • Gli asset grafici possono avere termini aggiuntivi dall’upstream; per uso commerciale sostituiscili con i tuoi dove serve.

Storia delle stelle

Se questo progetto ti è utile, una stella è apprezzata.


Made with ❤️ by wangmiaozero