Skip to content

Commit 8e42e68

Browse files
committed
fix(brand): separation of concerns — hanzo owns hanzo only
@hanzo/brand was a cross-org registry (hanzo + lux + zoo + pars all bundled). Brand belongs per-org: Zoo → @zooai/brand (github.com/zooai/brand) Lux → @luxfi/brand (github.com/luxfi/brand) Liquidity → @liquidityio/brand (github.com/liquidityio/brand) Delete lux/zoo/pars blocks from orgs.ts, narrow OrgId to 'hanzo', narrow index.ts exports. 200-line reduction. No callers broken — nothing in ~/work/{hanzo,lux,zoo,liquidity} imports @hanzo/ui/brand currently (verified via grep). This is dead cross-org code being removed.
1 parent f603ed7 commit 8e42e68

3 files changed

Lines changed: 22 additions & 207 deletions

File tree

pkg/brand/src/index.ts

Lines changed: 6 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
11
/**
2-
* @hanzo/brand
2+
* @hanzo/brand — Hanzo brand only.
33
*
4-
* Brand assets and configuration for Hanzo, Lux, Zoo, and Pars organizations.
5-
*
6-
* Exports:
7-
* - SVG strings (mark, wordmark, favicon) in dark/light/currentColor variants
8-
* - Per-org BrandConfig objects
9-
* - TypeScript types for brand configuration
10-
* - svgToDataUri helper
4+
* Each org owns its own brand package. Do NOT add other orgs here.
5+
* Zoo → @zooai/brand
6+
* Lux → @luxfi/brand
7+
* Liquidity → @liquidityio/brand
118
*/
129

13-
// Types
1410
export type {
1511
OrgId,
1612
ColorMode,
@@ -21,7 +17,6 @@ export type {
2117
BrandConfig,
2218
} from './types'
2319

24-
// SVG strings
2520
export {
2621
hanzoMark,
2722
hanzoMarkDark,
@@ -33,15 +28,5 @@ export {
3328
svgToDataUri,
3429
} from './svg'
3530

36-
// Per-org configs
37-
export {
38-
hanzo,
39-
lux,
40-
zoo,
41-
pars,
42-
orgs,
43-
getOrg,
44-
} from './orgs'
45-
46-
// Default brand (backward compat with v1.0.0 stub)
31+
export { hanzo, orgs, getOrg } from './orgs'
4732
export { hanzo as defaultBrand } from './orgs'

pkg/brand/src/orgs.ts

Lines changed: 15 additions & 185 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,14 @@
11
/**
2-
* Per-org brand configurations.
2+
* Hanzo brand configuration.
3+
*
4+
* Separation of concerns: this file owns ONLY Hanzo's identity.
5+
* @zooai/brand → Zoo (github.com/zooai/brand)
6+
* @luxfi/brand → Lux (github.com/luxfi/brand)
7+
* @liquidityio/brand → Liquidity (github.com/liquidityio/brand)
8+
*
9+
* Never add other orgs' identities here.
310
*/
4-
import type { BrandConfig, OrgId } from './types'
11+
import type { BrandConfig } from './types'
512
import {
613
hanzoMark,
714
hanzoMarkDark,
@@ -12,10 +19,6 @@ import {
1219
hanzoFavicon,
1320
} from './svg'
1421

15-
// ---------------------------------------------------------------------------
16-
// Hanzo
17-
// ---------------------------------------------------------------------------
18-
1922
export const hanzo: BrandConfig = {
2023
id: 'hanzo',
2124
name: 'Hanzo',
@@ -54,190 +57,17 @@ export const hanzo: BrandConfig = {
5457

5558
social: {
5659
twitter: '@hanzoai',
57-
discord: 'https://discord.gg/hanzo',
5860
github: 'https://github.com/hanzoai',
5961
},
6062

6163
seo: {
62-
title: 'Hanzo AI - Frontier AI Infrastructure',
63-
description: 'AI infrastructure, foundational models, and developer tools from Hanzo.',
64-
keywords: ['ai', 'infrastructure', 'llm', 'hanzo', 'mcp', 'agents'],
65-
},
66-
}
67-
68-
// ---------------------------------------------------------------------------
69-
// Lux
70-
// ---------------------------------------------------------------------------
71-
72-
export const lux: BrandConfig = {
73-
id: 'lux',
74-
name: 'Lux',
75-
orgName: 'Lux Network',
76-
orgHandle: 'luxfi',
77-
tagline: 'Multi-consensus blockchain',
78-
description: 'High-performance blockchain with post-quantum cryptography and multi-consensus architecture.',
79-
80-
npmOrg: '@luxfi',
81-
82-
domain: 'lux.network',
83-
iamDomain: 'lux.id',
84-
githubOrg: 'luxfi',
85-
docsUrl: 'https://docs.lux.network',
86-
87-
logo: {
88-
mark: hanzoMark,
89-
markDark: hanzoMarkDark,
90-
markLight: hanzoMarkLight,
91-
wordmark: hanzoWordmark,
92-
wordmarkDark: hanzoWordmarkDark,
93-
wordmarkLight: hanzoWordmarkLight,
94-
favicon: hanzoFavicon,
95-
width: 67,
96-
height: 67,
97-
},
98-
99-
colors: {
100-
primary: '250 60% 50%',
101-
primaryForeground: '0 0% 100%',
102-
secondary: '250 30% 95%',
103-
secondaryForeground: '250 60% 20%',
104-
accent: '250 60% 60%',
105-
accentForeground: '0 0% 100%',
106-
},
107-
108-
social: {
109-
twitter: '@luxnetwork',
110-
discord: 'https://discord.gg/lux',
111-
github: 'https://github.com/luxfi',
112-
},
113-
114-
seo: {
115-
title: 'Lux Network - Multi-Consensus Blockchain',
116-
description: 'High-performance blockchain with post-quantum cryptography.',
117-
keywords: ['blockchain', 'lux', 'consensus', 'post-quantum', 'defi'],
118-
},
119-
}
120-
121-
// ---------------------------------------------------------------------------
122-
// Zoo
123-
// ---------------------------------------------------------------------------
124-
125-
export const zoo: BrandConfig = {
126-
id: 'zoo',
127-
name: 'Zoo',
128-
orgName: 'Zoo Labs Foundation',
129-
orgHandle: 'zoo',
130-
tagline: 'Open AI research network',
131-
description: 'Decentralized AI and decentralized science research through community-driven governance.',
132-
133-
npmOrg: '@zoo',
134-
135-
domain: 'zoo.ngo',
136-
iamDomain: 'zoo.id',
137-
githubOrg: 'zooai',
138-
docsUrl: 'https://docs.zoo.ngo',
139-
140-
logo: {
141-
mark: hanzoMark,
142-
markDark: hanzoMarkDark,
143-
markLight: hanzoMarkLight,
144-
wordmark: hanzoWordmark,
145-
wordmarkDark: hanzoWordmarkDark,
146-
wordmarkLight: hanzoWordmarkLight,
147-
favicon: hanzoFavicon,
148-
width: 67,
149-
height: 67,
150-
},
151-
152-
colors: {
153-
primary: '142 60% 40%',
154-
primaryForeground: '0 0% 100%',
155-
secondary: '142 30% 95%',
156-
secondaryForeground: '142 60% 20%',
157-
accent: '142 60% 50%',
158-
accentForeground: '0 0% 100%',
159-
},
160-
161-
social: {
162-
twitter: '@zoo_labs',
163-
github: 'https://github.com/zooai',
164-
},
165-
166-
seo: {
167-
title: 'Zoo Labs Foundation - Open AI Research',
168-
description: 'Decentralized AI research and decentralized science.',
169-
keywords: ['deai', 'desci', 'research', 'zoo', 'foundation', 'governance'],
64+
title: 'Hanzo AI — Infrastructure for AI',
65+
description: 'Frontier AI infrastructure and developer tools.',
66+
keywords: ['ai', 'infrastructure', 'hanzo', 'llm', 'mcp'],
17067
},
17168
}
17269

173-
// ---------------------------------------------------------------------------
174-
// Pars
175-
// ---------------------------------------------------------------------------
176-
177-
export const pars: BrandConfig = {
178-
id: 'pars',
179-
name: 'Pars',
180-
orgName: 'Pars',
181-
orgHandle: 'pars',
182-
tagline: 'Identity and access',
183-
description: 'Identity, access management, and authentication infrastructure.',
184-
185-
npmOrg: '@pars',
186-
187-
domain: 'pars.id',
188-
iamDomain: 'pars.id',
189-
githubOrg: 'parsid',
190-
docsUrl: 'https://docs.pars.id',
191-
192-
logo: {
193-
mark: hanzoMark,
194-
markDark: hanzoMarkDark,
195-
markLight: hanzoMarkLight,
196-
wordmark: hanzoWordmark,
197-
wordmarkDark: hanzoWordmarkDark,
198-
wordmarkLight: hanzoWordmarkLight,
199-
favicon: hanzoFavicon,
200-
width: 67,
201-
height: 67,
202-
},
203-
204-
colors: {
205-
primary: '30 90% 50%',
206-
primaryForeground: '0 0% 100%',
207-
secondary: '30 40% 95%',
208-
secondaryForeground: '30 90% 20%',
209-
accent: '30 90% 60%',
210-
accentForeground: '0 0% 100%',
211-
},
212-
213-
social: {
214-
github: 'https://github.com/parsid',
215-
},
216-
217-
seo: {
218-
title: 'Pars - Identity & Access',
219-
description: 'Identity, access management, and authentication infrastructure.',
220-
keywords: ['identity', 'iam', 'auth', 'oidc', 'pars'],
221-
},
222-
}
223-
224-
// ---------------------------------------------------------------------------
225-
// Registry
226-
// ---------------------------------------------------------------------------
227-
228-
/** All org brand configs indexed by org ID */
229-
export const orgs: Record<OrgId, BrandConfig> = {
230-
hanzo,
231-
lux,
232-
zoo,
233-
pars,
234-
}
235-
236-
/** Look up an org brand config by ID. Throws if unknown. */
237-
export function getOrg(id: OrgId): BrandConfig {
238-
const config = orgs[id]
239-
if (!config) {
240-
throw new Error(`Unknown org: ${id}`)
241-
}
242-
return config
70+
export const orgs = { hanzo }
71+
export function getOrg(): BrandConfig {
72+
return hanzo
24373
}

pkg/brand/src/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
* Shared types for brand configuration.
33
*/
44

5-
export type OrgId = 'hanzo' | 'lux' | 'zoo' | 'pars'
5+
export type OrgId = 'hanzo'
66

77
export type ColorMode = 'light' | 'dark'
88

0 commit comments

Comments
 (0)