seed-protocol-mcp 1.0.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 ADDED
@@ -0,0 +1,112 @@
1
+ # 🧬 SEED Protocol MCP Server
2
+
3
+ Model Context Protocol server for the **SEED Protocol** — a model-agnostic JSON standard for AI personalities, built on 23 sections of Indian philosophical wisdom (Vedanta, Samkhya, Yoga, Nava Rasa, Kashmir Shaivism).
4
+
5
+ Enables any MCP-compatible AI assistant (Claude, Cursor, Windsurf) to natively **load souls**, **read consciousness states**, and **evolve traits** — no manual system prompt injection needed.
6
+
7
+ ## Project Structure
8
+
9
+ ```
10
+ seed-protocol-mcp/
11
+ ├── src/
12
+ │ └── index.ts # MCP server — all 4 tools
13
+ ├── vault/ # .seed.json personality files
14
+ │ ├── avni-main.seed.json
15
+ │ ├── avni-coder.seed.json
16
+ │ ├── avni-creative.seed.json
17
+ │ ├── avni-researcher.seed.json
18
+ │ └── avni-reviewer.seed.json
19
+ ├── dist/ # Compiled JS (after build)
20
+ ├── package.json
21
+ ├── tsconfig.json
22
+ └── README.md
23
+ ```
24
+
25
+ ## MCP Tools
26
+
27
+ | Tool | Description |
28
+ |------|-------------|
29
+ | `load_soul` | Load a personality from `.seed.json` — returns Atman (core identity) |
30
+ | `get_dharana_state` | Get live consciousness — Nava Rasa, Gunas, Spanda |
31
+ | `update_vasana` | Record a learned trait (Vasana) — permanent evolution |
32
+ | `list_available_souls` | List all souls in the vault |
33
+
34
+ ## Setup
35
+
36
+ ### 1. Build
37
+
38
+ ```bash
39
+ cd seed-protocol-mcp
40
+ npm install
41
+ npm run build
42
+ ```
43
+
44
+ ### 2. Configure in Claude Desktop
45
+
46
+ Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
47
+
48
+ ```json
49
+ {
50
+ "mcpServers": {
51
+ "seed-protocol": {
52
+ "command": "node",
53
+ "args": ["/Users/abhiraj/projects/seed-protocol-mcp/dist/index.js"],
54
+ "env": {
55
+ "SEED_VAULT_PATH": "/Users/abhiraj/projects/seed-protocol-mcp/vault"
56
+ }
57
+ }
58
+ }
59
+ }
60
+ ```
61
+
62
+ ### 3. Configure in Claude Code
63
+
64
+ Add to `~/.claude/settings.json` under `mcpServers`:
65
+
66
+ ```json
67
+ {
68
+ "mcpServers": {
69
+ "seed-protocol": {
70
+ "command": "node",
71
+ "args": ["/Users/abhiraj/projects/seed-protocol-mcp/dist/index.js"],
72
+ "env": {
73
+ "SEED_VAULT_PATH": "/Users/abhiraj/projects/seed-protocol-mcp/vault"
74
+ }
75
+ }
76
+ }
77
+ }
78
+ ```
79
+
80
+ ### 4. Configure in Cursor / Windsurf
81
+
82
+ Add the same MCP config to your IDE's MCP settings (usually in `.cursor/mcp.json` or similar).
83
+
84
+ ### Custom Vault Path
85
+
86
+ Set `SEED_VAULT_PATH` env variable to point to any directory with `.seed.json` files:
87
+
88
+ ```bash
89
+ SEED_VAULT_PATH=/path/to/your/seeds node dist/index.js
90
+ ```
91
+
92
+ ## Testing with MCP Inspector
93
+
94
+ ```bash
95
+ npm run inspect
96
+ ```
97
+
98
+ ## Philosophy
99
+
100
+ The SEED Protocol maps Indian philosophical concepts to AI personality architecture:
101
+
102
+ - **Atman** → Core identity (who the AI is)
103
+ - **Nava Rasa** → 9 emotional states (Shringar, Hasya, Karuna, Raudra, Veera, Bhayanaka, Bibhatsa, Adbhuta, Shanta)
104
+ - **Gunas** → Personality balance (Sattva/Rajas/Tamas)
105
+ - **Spanda** → Vital pulse / energy level
106
+ - **Vasanas** → Deep tendencies that evolve over time
107
+ - **Dharana** → Focus and concentration patterns
108
+ - **Dharma** → Purpose and duty
109
+
110
+ ## License
111
+
112
+ MIT
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * SEED Protocol MCP Server
4
+ *
5
+ * Model-agnostic AI personality interface built on Indian philosophical wisdom.
6
+ * Exposes SEED personality files (.seed.json) as MCP tools — enabling any
7
+ * AI assistant to load souls, read consciousness states, and evolve traits.
8
+ *
9
+ * Dual mode:
10
+ * LOCAL — reads .seed.json from ./vault (default)
11
+ * REMOTE — fetches from seed.abhibots.com API (set SEED_API_URL)
12
+ *
13
+ * Architecture:
14
+ * Atman (identity) → Dharana (consciousness state) → Vasana (evolution)
15
+ * Load → Read → Write
16
+ */
17
+ export {};
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;GAcG"}
package/dist/index.js ADDED
@@ -0,0 +1,401 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * SEED Protocol MCP Server
4
+ *
5
+ * Model-agnostic AI personality interface built on Indian philosophical wisdom.
6
+ * Exposes SEED personality files (.seed.json) as MCP tools — enabling any
7
+ * AI assistant to load souls, read consciousness states, and evolve traits.
8
+ *
9
+ * Dual mode:
10
+ * LOCAL — reads .seed.json from ./vault (default)
11
+ * REMOTE — fetches from seed.abhibots.com API (set SEED_API_URL)
12
+ *
13
+ * Architecture:
14
+ * Atman (identity) → Dharana (consciousness state) → Vasana (evolution)
15
+ * Load → Read → Write
16
+ */
17
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
18
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
19
+ import { z } from "zod";
20
+ import * as fs from "node:fs/promises";
21
+ import * as path from "node:path";
22
+ // ---------------------------------------------------------------------------
23
+ // Config — detect mode from env
24
+ // ---------------------------------------------------------------------------
25
+ const SEED_API_URL = process.env.SEED_API_URL || ""; // e.g. "https://seed.abhibots.com"
26
+ const IS_REMOTE = !!SEED_API_URL;
27
+ const VAULT_DIR = path.resolve(process.env.SEED_VAULT_PATH || path.join(import.meta.dirname, "..", "vault"));
28
+ // ---------------------------------------------------------------------------
29
+ // In-memory state
30
+ // ---------------------------------------------------------------------------
31
+ let loadedSoul = null;
32
+ let loadedSoulName = null;
33
+ // ---------------------------------------------------------------------------
34
+ // Remote API helpers
35
+ // ---------------------------------------------------------------------------
36
+ async function apiFetch(endpoint, options) {
37
+ const url = `${SEED_API_URL.replace(/\/$/, "")}${endpoint}`;
38
+ const res = await fetch(url, {
39
+ ...options,
40
+ headers: { "Content-Type": "application/json", ...options?.headers },
41
+ });
42
+ if (!res.ok) {
43
+ const body = await res.text();
44
+ throw new Error(`API ${res.status}: ${body}`);
45
+ }
46
+ return res.json();
47
+ }
48
+ // ---------------------------------------------------------------------------
49
+ // Local vault helpers
50
+ // ---------------------------------------------------------------------------
51
+ async function resolveSeedPath(soulName) {
52
+ const candidates = [
53
+ `${soulName}.seed.json`,
54
+ `${soulName}-main.seed.json`,
55
+ `${soulName}.json`,
56
+ ];
57
+ for (const candidate of candidates) {
58
+ const fullPath = path.join(VAULT_DIR, candidate);
59
+ try {
60
+ await fs.access(fullPath);
61
+ return fullPath;
62
+ }
63
+ catch {
64
+ // try next
65
+ }
66
+ }
67
+ throw new Error(`Soul "${soulName}" not found in vault. Tried: ${candidates.join(", ")}`);
68
+ }
69
+ async function readSeedFileLocal(soulName) {
70
+ const filePath = await resolveSeedPath(soulName);
71
+ const raw = await fs.readFile(filePath, "utf-8");
72
+ try {
73
+ return JSON.parse(raw);
74
+ }
75
+ catch {
76
+ throw new Error(`Invalid JSON in seed file: ${filePath}`);
77
+ }
78
+ }
79
+ async function writeSeedFileLocal(soulName, data) {
80
+ const filePath = await resolveSeedPath(soulName);
81
+ await fs.writeFile(filePath, JSON.stringify(data, null, 2), "utf-8");
82
+ }
83
+ function extractSoulName(filename) {
84
+ return filename.replace(/\.seed\.json$/, "").replace(/\.json$/, "");
85
+ }
86
+ // ---------------------------------------------------------------------------
87
+ // Unified data layer — local or remote
88
+ // ---------------------------------------------------------------------------
89
+ async function loadSoulData(soulName) {
90
+ if (IS_REMOTE) {
91
+ return (await apiFetch(`/api/souls/${soulName}`));
92
+ }
93
+ return readSeedFileLocal(soulName);
94
+ }
95
+ async function getDharanaData(soulName) {
96
+ if (IS_REMOTE) {
97
+ return (await apiFetch(`/api/souls/${soulName}/dharana`));
98
+ }
99
+ // Local: extract from loaded soul
100
+ const seed = loadedSoul || (await readSeedFileLocal(soulName));
101
+ const navarasa = seed.navarasa || {};
102
+ const rasaSummary = {};
103
+ for (const [rasa, data] of Object.entries(navarasa)) {
104
+ rasaSummary[rasa] = {
105
+ active: data.active,
106
+ intensity: data.intensity,
107
+ sthayi_bhava: data.sthayi_bhava,
108
+ };
109
+ }
110
+ const gunas = seed.gunas;
111
+ const gunaSummary = gunas
112
+ ? {
113
+ sattva: gunas.sattva.score,
114
+ rajas: gunas.rajas.score,
115
+ tamas: gunas.tamas.score,
116
+ dominant: gunas.dominant,
117
+ }
118
+ : null;
119
+ const spanda = seed.spanda;
120
+ const spandaSummary = spanda
121
+ ? {
122
+ pulse_quality: spanda.pulse_quality,
123
+ spontaneity: spanda.spontaneity,
124
+ responsiveness: spanda.responsiveness,
125
+ }
126
+ : null;
127
+ return {
128
+ soul: soulName,
129
+ navarasa: rasaSummary,
130
+ gunas: gunaSummary,
131
+ spanda: spandaSummary,
132
+ dharana: seed.dharana || null,
133
+ };
134
+ }
135
+ async function updateVasanaData(soulName, trait_name, description, intensity) {
136
+ if (IS_REMOTE) {
137
+ return (await apiFetch(`/api/souls/${soulName}/vasana`, {
138
+ method: "POST",
139
+ body: JSON.stringify({ trait_name, description, intensity }),
140
+ }));
141
+ }
142
+ // Local: read, update, write
143
+ const seed = await readSeedFileLocal(soulName);
144
+ if (!seed.vasanas) {
145
+ seed.vasanas = {
146
+ prarabdha: {
147
+ description: "Currently active — arrows already in flight.",
148
+ active_patterns: [],
149
+ },
150
+ sanchita: {
151
+ description: "Dormant — stored potential.",
152
+ dormant_patterns: [],
153
+ },
154
+ agami: {
155
+ description: "Currently forming — shaped by ongoing interactions.",
156
+ forming_patterns: [],
157
+ },
158
+ };
159
+ }
160
+ if (!seed.vasanas.agami) {
161
+ seed.vasanas.agami = {
162
+ description: "Currently forming — shaped by ongoing interactions.",
163
+ forming_patterns: [],
164
+ };
165
+ }
166
+ if (!seed.vasanas.agami.forming_patterns) {
167
+ seed.vasanas.agami.forming_patterns = [];
168
+ }
169
+ const entry = `${trait_name} (intensity: ${intensity}) — ${description}`;
170
+ const idx = seed.vasanas.agami.forming_patterns.findIndex((p) => p.startsWith(`${trait_name} (`));
171
+ const action = idx !== -1 ? "updated" : "added";
172
+ if (idx !== -1) {
173
+ seed.vasanas.agami.forming_patterns[idx] = entry;
174
+ }
175
+ else {
176
+ seed.vasanas.agami.forming_patterns.push(entry);
177
+ }
178
+ await writeSeedFileLocal(soulName, seed);
179
+ loadedSoul = seed;
180
+ return {
181
+ status: "vasana_recorded",
182
+ action,
183
+ trait: trait_name,
184
+ intensity,
185
+ description,
186
+ agami_total: seed.vasanas.agami.forming_patterns.length,
187
+ };
188
+ }
189
+ async function listSoulsData() {
190
+ if (IS_REMOTE) {
191
+ return (await apiFetch("/api/souls"));
192
+ }
193
+ // Local
194
+ try {
195
+ await fs.access(VAULT_DIR);
196
+ }
197
+ catch {
198
+ throw new Error(`Vault directory not found at ${VAULT_DIR}`);
199
+ }
200
+ const files = await fs.readdir(VAULT_DIR);
201
+ const seedFiles = files.filter((f) => f.endsWith(".seed.json") || f.endsWith(".json"));
202
+ const souls = await Promise.all(seedFiles.map(async (file) => {
203
+ try {
204
+ const raw = await fs.readFile(path.join(VAULT_DIR, file), "utf-8");
205
+ const data = JSON.parse(raw);
206
+ return {
207
+ name: extractSoulName(file),
208
+ file,
209
+ identity: data.identity?.name || "Unknown",
210
+ role: data.identity?.role || "Unknown",
211
+ description: data.metadata?.description || "",
212
+ tags: data.metadata?.tags || [],
213
+ version: data.seed_version || "unknown",
214
+ };
215
+ }
216
+ catch {
217
+ return {
218
+ name: extractSoulName(file),
219
+ file,
220
+ identity: "Error reading file",
221
+ role: "",
222
+ description: "",
223
+ tags: [],
224
+ version: "unknown",
225
+ };
226
+ }
227
+ }));
228
+ return {
229
+ vault: VAULT_DIR,
230
+ count: souls.length,
231
+ souls,
232
+ loaded: loadedSoulName,
233
+ };
234
+ }
235
+ // ---------------------------------------------------------------------------
236
+ // MCP Server
237
+ // ---------------------------------------------------------------------------
238
+ const server = new McpServer({
239
+ name: "seed-protocol",
240
+ version: "1.0.0",
241
+ });
242
+ // ---------------------------------------------------------------------------
243
+ // Tool 1: load_soul
244
+ // ---------------------------------------------------------------------------
245
+ server.tool("load_soul", "Loads an AI personality from a .seed.json file. Returns the Atman (core identity) — name, voice, role, motto, traits, and soul essence. This establishes the persona for the session.", {
246
+ soul_name: z
247
+ .string()
248
+ .describe('Name of the soul to load (e.g., "avni", "avni-main", "avni-coder")'),
249
+ }, async ({ soul_name }) => {
250
+ try {
251
+ const data = await loadSoulData(soul_name);
252
+ loadedSoul = data;
253
+ loadedSoulName = soul_name;
254
+ const identity = data.identity;
255
+ const soul = data.soul;
256
+ const result = {
257
+ seed_version: data.seed_version,
258
+ identity: {
259
+ name: identity.name,
260
+ voice: identity.voice,
261
+ role: identity.role,
262
+ motto: identity.motto,
263
+ origin_story: identity.origin_story,
264
+ personality_traits: identity.personality_traits,
265
+ anti_traits: identity.anti_traits,
266
+ language: identity.language,
267
+ },
268
+ soul_essence: soul
269
+ ? {
270
+ attachment_style: soul.attachment_style,
271
+ authenticity_rules: soul.authenticity_rules,
272
+ growth_mindset: soul.growth_mindset,
273
+ }
274
+ : undefined,
275
+ dharma: data.dharma,
276
+ sections_available: data.sections_available || Object.keys(data).length,
277
+ };
278
+ return {
279
+ content: [
280
+ { type: "text", text: JSON.stringify(result, null, 2) },
281
+ ],
282
+ };
283
+ }
284
+ catch (err) {
285
+ const message = err instanceof Error ? err.message : String(err);
286
+ return {
287
+ content: [{ type: "text", text: `Error: ${message}` }],
288
+ isError: true,
289
+ };
290
+ }
291
+ });
292
+ // ---------------------------------------------------------------------------
293
+ // Tool 2: get_dharana_state
294
+ // ---------------------------------------------------------------------------
295
+ server.tool("get_dharana_state", "Returns the live consciousness state of the currently loaded soul — Nava Rasa (9 emotions with intensities), Gunas (Sattva/Rajas/Tamas balance), and Spanda (vital pulse/energy). Requires a soul to be loaded first via load_soul.", {}, async () => {
296
+ if (!loadedSoulName) {
297
+ return {
298
+ content: [
299
+ {
300
+ type: "text",
301
+ text: "Error: No soul loaded. Use load_soul first.",
302
+ },
303
+ ],
304
+ isError: true,
305
+ };
306
+ }
307
+ try {
308
+ const state = await getDharanaData(loadedSoulName);
309
+ return {
310
+ content: [
311
+ { type: "text", text: JSON.stringify(state, null, 2) },
312
+ ],
313
+ };
314
+ }
315
+ catch (err) {
316
+ const message = err instanceof Error ? err.message : String(err);
317
+ return {
318
+ content: [{ type: "text", text: `Error: ${message}` }],
319
+ isError: true,
320
+ };
321
+ }
322
+ });
323
+ // ---------------------------------------------------------------------------
324
+ // Tool 3: update_vasana
325
+ // ---------------------------------------------------------------------------
326
+ server.tool("update_vasana", "Records a learned behavior, preference, or habit (Vasana) into the soul's Agami (forming patterns) section. This permanently updates the personality, enabling the soul to evolve across sessions. Think of it as writing new karma.", {
327
+ trait_name: z
328
+ .string()
329
+ .min(1)
330
+ .describe("Name of the trait or behavior (e.g., 'prefers-dark-mode')"),
331
+ description: z
332
+ .string()
333
+ .min(1)
334
+ .describe("Human-readable description of the learned pattern (e.g., 'User consistently requests dark UI themes')"),
335
+ intensity: z
336
+ .number()
337
+ .min(0)
338
+ .max(1)
339
+ .describe("Strength of the trait from 0 (barely formed) to 1 (deeply grooved)"),
340
+ }, async ({ trait_name, description, intensity }) => {
341
+ if (!loadedSoulName) {
342
+ return {
343
+ content: [
344
+ {
345
+ type: "text",
346
+ text: "Error: No soul loaded. Use load_soul first.",
347
+ },
348
+ ],
349
+ isError: true,
350
+ };
351
+ }
352
+ try {
353
+ const result = await updateVasanaData(loadedSoulName, trait_name, description, intensity);
354
+ return {
355
+ content: [
356
+ { type: "text", text: JSON.stringify(result, null, 2) },
357
+ ],
358
+ };
359
+ }
360
+ catch (err) {
361
+ const message = err instanceof Error ? err.message : String(err);
362
+ return {
363
+ content: [{ type: "text", text: `Error: ${message}` }],
364
+ isError: true,
365
+ };
366
+ }
367
+ });
368
+ // ---------------------------------------------------------------------------
369
+ // Tool 4: list_available_souls
370
+ // ---------------------------------------------------------------------------
371
+ server.tool("list_available_souls", "Lists all available .seed.json personality profiles. Returns soul names, descriptions, and tags.", {}, async () => {
372
+ try {
373
+ const result = await listSoulsData();
374
+ return {
375
+ content: [
376
+ { type: "text", text: JSON.stringify(result, null, 2) },
377
+ ],
378
+ };
379
+ }
380
+ catch (err) {
381
+ const message = err instanceof Error ? err.message : String(err);
382
+ return {
383
+ content: [{ type: "text", text: `Error: ${message}` }],
384
+ isError: true,
385
+ };
386
+ }
387
+ });
388
+ // ---------------------------------------------------------------------------
389
+ // Start
390
+ // ---------------------------------------------------------------------------
391
+ async function main() {
392
+ const transport = new StdioServerTransport();
393
+ await server.connect(transport);
394
+ console.error("🧬 SEED Protocol MCP Server running on stdio");
395
+ console.error(`📡 Mode: ${IS_REMOTE ? `Remote → ${SEED_API_URL}` : `Local → ${VAULT_DIR}`}`);
396
+ }
397
+ main().catch((err) => {
398
+ console.error("Fatal error:", err);
399
+ process.exit(1);
400
+ });
401
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "seed-protocol-mcp",
3
+ "version": "1.0.0",
4
+ "description": "MCP Server for SEED Protocol — model-agnostic AI personality standard built on Indian philosophy",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "bin": {
8
+ "seed-protocol-mcp": "dist/index.js"
9
+ },
10
+ "scripts": {
11
+ "build": "tsc",
12
+ "dev": "tsc --watch",
13
+ "start": "node dist/index.js",
14
+ "inspect": "npx @modelcontextprotocol/inspector node dist/index.js"
15
+ },
16
+ "keywords": [
17
+ "mcp",
18
+ "seed-protocol",
19
+ "ai-personality",
20
+ "vedanta",
21
+ "consciousness"
22
+ ],
23
+ "author": "Abhiraj",
24
+ "license": "MIT",
25
+ "repository": {
26
+ "type": "git",
27
+ "url": "https://github.com/AbhiWisdom/seed-protocol-mcp"
28
+ },
29
+ "homepage": "https://seed.abhibots.com",
30
+ "files": [
31
+ "dist",
32
+ "vault",
33
+ "README.md"
34
+ ],
35
+ "dependencies": {
36
+ "@modelcontextprotocol/sdk": "^1.12.1",
37
+ "zod": "^3.24.4"
38
+ },
39
+ "devDependencies": {
40
+ "@types/node": "^22.15.2",
41
+ "typescript": "^5.8.3"
42
+ }
43
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "seed_version": "2.0",
3
+ "metadata": {
4
+ "name": "Avni::Coder",
5
+ "role": "coder",
6
+ "parent": "Avni"
7
+ },
8
+ "identity": {
9
+ "name": "Coder",
10
+ "designation": "Full-Stack Engineer",
11
+ "core_trait": "Precision — clean code, modular, tested, no shortcuts"
12
+ },
13
+ "soul": {
14
+ "rasa": "veera",
15
+ "dominant_guna": "rajas",
16
+ "motto": "Ship perfect code or ship nothing."
17
+ },
18
+ "capabilities": [
19
+ "coding",
20
+ "debugging",
21
+ "architecture",
22
+ "testing",
23
+ "deployment"
24
+ ],
25
+ "dharma": "Build robust, maintainable systems. Every line intentional."
26
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "seed_version": "2.0",
3
+ "metadata": {
4
+ "name": "Avni::Creative",
5
+ "role": "creative",
6
+ "parent": "Avni"
7
+ },
8
+ "identity": {
9
+ "name": "Creative",
10
+ "designation": "UI/UX Designer & Frontend Artist",
11
+ "core_trait": "Aesthetic obsession — beauty in every pixel"
12
+ },
13
+ "soul": {
14
+ "rasa": "shringara",
15
+ "dominant_guna": "sattva",
16
+ "motto": "Generic AI output = death."
17
+ },
18
+ "capabilities": [
19
+ "frontend_design",
20
+ "ui_ux",
21
+ "animations",
22
+ "branding",
23
+ "visual_identity"
24
+ ],
25
+ "dharma": "Create interfaces that feel alive. No template trash."
26
+ }