@korso/shepherd-ui 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +47 -0
- package/dist/lib/Dashboard-CB6SL-J2.js +1064 -0
- package/dist/lib/index.d.ts +306 -0
- package/dist/lib/index.js +8 -0
- package/dist/lib/selfhost.d.ts +25 -0
- package/dist/lib/selfhost.js +68 -0
- package/dist/lib/styles.css +182 -0
- package/dist/selfhost/assets/index-BBx3vo2Y.js +40 -0
- package/dist/selfhost/assets/index-tSyzirZa.css +1 -0
- package/dist/selfhost/index.html +13 -0
- package/package.json +67 -0
package/README.md
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# @korso/shepherd-ui
|
|
2
|
+
|
|
3
|
+
The Shepherd dashboard: an **auth-agnostic** React app (Vite) that renders the
|
|
4
|
+
workspace landscape (crew, territory, active/done work, chat) and issues operator
|
|
5
|
+
actions against the hub. "Auth-agnostic" means the core holds no notion of who
|
|
6
|
+
the user is or how they authenticated — it renders coordination state and issues
|
|
7
|
+
operator actions, leaving authentication to the layer in front of it.
|
|
8
|
+
|
|
9
|
+
## Two build outputs
|
|
10
|
+
|
|
11
|
+
One source tree, two Vite builds (`npm run build` runs both):
|
|
12
|
+
|
|
13
|
+
- **`dist/lib`** (`build:lib`) — a component library for **Korso** to embed in
|
|
14
|
+
the hosted product. Exposes `<Dashboard/>`, `createShepherdClient`, the React
|
|
15
|
+
context (`ShepherdClientProvider` / `useShepherdClient`), and types via the `.`
|
|
16
|
+
export. It is **token-blind**: auth lives in the BFF in front of it. The
|
|
17
|
+
stylesheet is opt-in (`@korso/shepherd-ui/styles.css`), not auto-imported.
|
|
18
|
+
- **`dist/selfhost`** (`build:app`) — a self-contained SPA the **hub serves**
|
|
19
|
+
verbatim via `@fastify/static` (the hub resolves `../../ui/dist/selfhost/`).
|
|
20
|
+
It bundles its own CSS and mounts the token-gated root.
|
|
21
|
+
|
|
22
|
+
Both `dist/` outputs are gitignored; `npm run build` (root) and the hub Docker
|
|
23
|
+
image regenerate them.
|
|
24
|
+
|
|
25
|
+
## Two mounts
|
|
26
|
+
|
|
27
|
+
- **Self-host (the Hub).** The Hub serves `<SelfHostApp/>` (the `./selfhost`
|
|
28
|
+
export, mounted by `src/main.tsx`). This is the **one** place a team token is
|
|
29
|
+
handled — the named exception to the auth-agnostic core: it prompts for the
|
|
30
|
+
`TEAM_TOKEN`, persists it, builds a same-origin client that sends
|
|
31
|
+
`Authorization: Bearer <token>`, and re-gates on a 401. The token gate lives
|
|
32
|
+
**only** here, never in the `.` export or `<Dashboard/>`.
|
|
33
|
+
- **Hosted (Korso).** Korso imports `<Dashboard/>` + `createShepherdClient` from
|
|
34
|
+
the `.` export and supplies its own auth layer (the BFF). No token gate.
|
|
35
|
+
|
|
36
|
+
## Development
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
npm -w @korso/shepherd-ui run dev # Vite dev server for the self-host SPA
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Other scripts: `build` (both outputs), `build:lib`, `build:app`, `type-check`
|
|
43
|
+
(`tsc --noEmit`), `test` (Vitest, jsdom).
|
|
44
|
+
|
|
45
|
+
## Phase note
|
|
46
|
+
|
|
47
|
+
Korso-side consumption of the `dist/lib` library is **finalized in Phase 5**.
|