wyrm-mcp 5.5.0 β†’ 5.7.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.
@@ -1 +1 @@
1
- {"version":3,"file":"http-auth.d.ts","sourceRoot":"","sources":["../src/http-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AA+HvD;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CA+B1D;AAID;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,eAAe,GAAG;IACpD,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,CAiCA;AAID;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAU1D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAa/E;AAOD;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,GAClB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAuDvD;AAID;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAYzC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAQzD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAQrE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAUrD;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAGpC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI;IAC/B,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACpE,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B,CAQA"}
1
+ {"version":3,"file":"http-auth.d.ts","sourceRoot":"","sources":["../src/http-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AA+HvD;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAyC1D;AAID;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,eAAe,GAAG;IACpD,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,CAiCA;AAID;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAU1D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAa/E;AAOD;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,GAClB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAuDvD;AAID;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAYzC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAQzD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAQrE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAUrD;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAGpC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI;IAC/B,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACpE,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B,CAQA"}
package/dist/http-auth.js CHANGED
@@ -107,6 +107,15 @@ export function authenticate(req) {
107
107
  return true;
108
108
  }
109
109
  }
110
+ // Spec 016: the local Wyrm Web UI announces itself with X-Wyrm-Origin: ui.
111
+ // Requests from localhost with that header bypass token auth (the UI is
112
+ // trusted as it ships in the same npm tarball). Non-localhost requests with
113
+ // that header still need a token β€” header alone is not sufficient.
114
+ const remoteAddr = req.socket.remoteAddress ?? '';
115
+ const isLocal = remoteAddr === '127.0.0.1' || remoteAddr === '::1' || remoteAddr === '::ffff:127.0.0.1' || remoteAddr.startsWith('127.');
116
+ if (isLocal && req.headers['x-wyrm-origin'] === 'ui') {
117
+ return true;
118
+ }
110
119
  // Check if auth is required
111
120
  if (!cfg.requireAuth) {
112
121
  logger.warn('Authentication disabled - API is open');
@@ -1 +1 @@
1
- {"version":3,"file":"http-auth.js","sourceRoot":"","sources":["../src/http-auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http-auth.js","sourceRoot":"","sources":["../src/http-auth.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":";AACA;;;;;;GAMG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AA2XxB,QAAA,MAAM,MAAM,sEAgFV,CAAC;AAUH,OAAO,EAAE,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":";AACA;;;;;;GAMG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AAybxB,QAAA,MAAM,MAAM,sEAyHV,CAAC;AAUH,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -7,11 +7,30 @@
7
7
  * @license Proprietary - See LICENSE file for details.
8
8
  */
9
9
  import http from 'http';
10
+ import { readFileSync, existsSync, statSync } from 'fs';
11
+ import { fileURLToPath } from 'url';
12
+ import { dirname, join, normalize, extname } from 'path';
13
+ import { homedir } from 'os';
10
14
  import { WyrmDB } from './database.js';
11
15
  import { createContextBundle } from './summarizer.js';
12
16
  import { authMiddleware, getSecurityHeaders, getAuthStatus } from './http-auth.js';
13
17
  import { getLogger } from './logger.js';
14
18
  import { sanitizeFtsQuery } from './security.js';
19
+ import { gatherBuddyInputs, buildBuddyOutput } from './buddy.js';
20
+ import { AgentDaemon } from './agent-daemon.js';
21
+ const __filename = fileURLToPath(import.meta.url);
22
+ const __dirname = dirname(__filename);
23
+ const UI_DIR = join(__dirname, '..', 'ui');
24
+ const MIME = {
25
+ '.html': 'text/html; charset=utf-8',
26
+ '.css': 'text/css; charset=utf-8',
27
+ '.js': 'application/javascript; charset=utf-8',
28
+ '.json': 'application/json; charset=utf-8',
29
+ '.svg': 'image/svg+xml',
30
+ '.ico': 'image/x-icon',
31
+ '.woff2': 'font/woff2',
32
+ '.png': 'image/png',
33
+ };
15
34
  const PORT = parseInt(process.env.WYRM_PORT || '3333') || 3333; // || 3333 guards NaN
16
35
  const MAX_BODY_SIZE = 1024 * 1024; // 1MB limit
17
36
  const db = new WyrmDB();
@@ -297,9 +316,115 @@ const routes = {
297
316
  // Health check endpoint (no auth required)
298
317
  'GET /health': () => {
299
318
  return { status: 'ok', timestamp: Date.now(), version: '3.0.0' };
300
- }
319
+ },
320
+ // ============================================================
321
+ // Spec 016 β€” Web UI read endpoints
322
+ // ============================================================
323
+ 'GET /skills': (body) => {
324
+ const search = body.search;
325
+ const category = body.category;
326
+ const limit = parseInt(String(body.limit ?? 200), 10) || 200;
327
+ let sql = 'SELECT id, name, description, category, tags, version, is_active as active FROM skills WHERE 1=1';
328
+ const args = [];
329
+ if (search) {
330
+ sql += ' AND (name LIKE ? OR description LIKE ? OR tags LIKE ?)';
331
+ const s = `%${search}%`;
332
+ args.push(s, s, s);
333
+ }
334
+ if (category) {
335
+ sql += ' AND category = ?';
336
+ args.push(category);
337
+ }
338
+ sql += ' ORDER BY category, name LIMIT ?';
339
+ args.push(limit);
340
+ const rows = db.getDatabase().prepare(sql).all(...args);
341
+ return { skills: rows };
342
+ },
343
+ 'GET /agent': () => {
344
+ try {
345
+ const daemon = new AgentDaemon(db.getDatabase());
346
+ return daemon.status();
347
+ }
348
+ catch (e) {
349
+ return { running: false, error: e.message };
350
+ }
351
+ },
352
+ 'GET /buddy': (body) => {
353
+ try {
354
+ const projectPath = body.project_path;
355
+ const project = projectPath ? db.getProject(projectPath) : null;
356
+ if (!project)
357
+ return { error: 'no project found at the given project_path' };
358
+ const inputs = gatherBuddyInputs(db.getDatabase(), project.id);
359
+ const out = buildBuddyOutput(inputs, {
360
+ mood: body.mood,
361
+ persona: body.persona ?? 'wyrm',
362
+ });
363
+ return { markdown: out.markdown, mood: out.resolvedMood, persona: out.resolvedPersona };
364
+ }
365
+ catch (e) {
366
+ return { error: e.message };
367
+ }
368
+ },
301
369
  };
302
370
  const server = http.createServer(async (req, res) => {
371
+ // ---------- Spec 016 Web UI (no auth required for /ui/* and /ui-token) ----------
372
+ const url0 = new URL(req.url || '/', `http://localhost:${PORT}`);
373
+ const remoteAddr = req.socket.remoteAddress ?? '';
374
+ const isLocal = remoteAddr === '::1' || remoteAddr === '127.0.0.1' || remoteAddr === '::ffff:127.0.0.1' || remoteAddr.startsWith('127.');
375
+ // /ui-token: hand the local-only browser the bearer token to call other endpoints.
376
+ // Refuses non-localhost requests. If no token is set, returns empty.
377
+ if (url0.pathname === '/ui-token' && req.method === 'GET') {
378
+ if (!isLocal) {
379
+ res.writeHead(403);
380
+ res.end('localhost only');
381
+ return;
382
+ }
383
+ try {
384
+ const cfgPath = join(homedir(), '.wyrm', 'http-config.json');
385
+ const cfg = existsSync(cfgPath) ? JSON.parse(readFileSync(cfgPath, 'utf-8')) : {};
386
+ res.writeHead(200, { 'Content-Type': 'application/json' });
387
+ res.end(JSON.stringify({ token: cfg.token ?? null }));
388
+ }
389
+ catch {
390
+ res.writeHead(200, { 'Content-Type': 'application/json' });
391
+ res.end('{"token":null}');
392
+ }
393
+ return;
394
+ }
395
+ // /ui/* static asset serving (localhost only)
396
+ if (url0.pathname === '/ui' || url0.pathname === '/ui/' || url0.pathname.startsWith('/ui/')) {
397
+ if (!isLocal) {
398
+ res.writeHead(403);
399
+ res.end('localhost only');
400
+ return;
401
+ }
402
+ let rel = url0.pathname.replace(/^\/ui\/?/, '') || 'index.html';
403
+ if (rel.endsWith('/'))
404
+ rel += 'index.html';
405
+ const safe = normalize(rel).replace(/^(\.\.[\\/])+/, '');
406
+ const file = join(UI_DIR, safe);
407
+ if (!file.startsWith(UI_DIR)) {
408
+ res.writeHead(403);
409
+ res.end('forbidden');
410
+ return;
411
+ }
412
+ if (!existsSync(file) || !statSync(file).isFile()) {
413
+ // SPA fallback: serve index.html so client-side router can handle the path
414
+ const idx = join(UI_DIR, 'index.html');
415
+ if (existsSync(idx)) {
416
+ res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
417
+ res.end(readFileSync(idx));
418
+ return;
419
+ }
420
+ res.writeHead(404);
421
+ res.end('not found');
422
+ return;
423
+ }
424
+ res.writeHead(200, { 'Content-Type': MIME[extname(file)] ?? 'application/octet-stream' });
425
+ res.end(readFileSync(file));
426
+ return;
427
+ }
303
428
  // Apply authentication middleware (handles CORS preflight, rate limiting, auth)
304
429
  const authResult = authMiddleware(req, res);
305
430
  if (authResult.error) {
@@ -1 +1 @@
1
- {"version":3,"file":"http-server.js","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http-server.js","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * πŸ‰ wyrm-ui β€” open the Wyrm web UI in the operator's default browser.
4
+ *
5
+ * 1. Probes localhost:WYRM_HTTP_PORT (default 3333) for /health.
6
+ * 2. If unreachable, spawns `wyrm-http` detached.
7
+ * 3. Opens the OS default browser to http://localhost:PORT/ui/.
8
+ *
9
+ * Cross-OS shell-out: `xdg-open` (Linux/Termux), `open` (macOS), `start` (Win).
10
+ *
11
+ * @copyright 2026 Ghost Protocol (Pvt) Ltd. All Rights Reserved.
12
+ * @license Proprietary
13
+ */
14
+ export {};
15
+ //# sourceMappingURL=wyrm-ui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wyrm-ui.d.ts","sourceRoot":"","sources":["../src/wyrm-ui.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;GAWG"}
@@ -0,0 +1,67 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * πŸ‰ wyrm-ui β€” open the Wyrm web UI in the operator's default browser.
4
+ *
5
+ * 1. Probes localhost:WYRM_HTTP_PORT (default 3333) for /health.
6
+ * 2. If unreachable, spawns `wyrm-http` detached.
7
+ * 3. Opens the OS default browser to http://localhost:PORT/ui/.
8
+ *
9
+ * Cross-OS shell-out: `xdg-open` (Linux/Termux), `open` (macOS), `start` (Win).
10
+ *
11
+ * @copyright 2026 Ghost Protocol (Pvt) Ltd. All Rights Reserved.
12
+ * @license Proprietary
13
+ */
14
+ import { spawn } from 'child_process';
15
+ import { setTimeout as sleep } from 'timers/promises';
16
+ const PORT = parseInt(process.env.WYRM_HTTP_PORT ?? '3333', 10) || 3333;
17
+ const HOST = '127.0.0.1';
18
+ const URL_BASE = `http://${HOST}:${PORT}`;
19
+ async function isHttpUp() {
20
+ try {
21
+ const r = await fetch(`${URL_BASE}/health`, { signal: AbortSignal.timeout(1500) });
22
+ return r.ok;
23
+ }
24
+ catch {
25
+ return false;
26
+ }
27
+ }
28
+ function platformOpenCmd(target) {
29
+ switch (process.platform) {
30
+ case 'darwin': return ['open', [target]];
31
+ case 'win32': return ['cmd', ['/c', 'start', '""', target]];
32
+ default: return ['xdg-open', [target]]; // linux / freebsd / termux
33
+ }
34
+ }
35
+ async function main() {
36
+ const target = `${URL_BASE}/ui/`;
37
+ if (!(await isHttpUp())) {
38
+ process.stderr.write(`[wyrm-ui] starting wyrm-http detached on :${PORT}\n`);
39
+ const proc = spawn('wyrm-http', [], { detached: true, stdio: 'ignore' });
40
+ proc.unref();
41
+ // Wait up to 6 seconds for the server to come up.
42
+ for (let i = 0; i < 12; i++) {
43
+ await sleep(500);
44
+ if (await isHttpUp())
45
+ break;
46
+ }
47
+ if (!(await isHttpUp())) {
48
+ process.stderr.write('[wyrm-ui] wyrm-http did not respond within 6s; opening browser anyway\n');
49
+ }
50
+ }
51
+ const [cmd, argv] = platformOpenCmd(target);
52
+ try {
53
+ const proc = spawn(cmd, argv, { detached: true, stdio: 'ignore' });
54
+ proc.unref();
55
+ process.stdout.write(`πŸ‰ Opened ${target}\n`);
56
+ }
57
+ catch (e) {
58
+ process.stderr.write(`[wyrm-ui] could not launch browser via ${cmd}: ${e.message}\n`);
59
+ process.stdout.write(`Open this URL manually: ${target}\n`);
60
+ process.exit(1);
61
+ }
62
+ }
63
+ main().catch((e) => {
64
+ process.stderr.write(`[wyrm-ui] fatal: ${e.message}\n`);
65
+ process.exit(1);
66
+ });
67
+ //# sourceMappingURL=wyrm-ui.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wyrm-ui.js","sourceRoot":"","sources":["../src/wyrm-ui.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wyrm-mcp",
3
- "version": "5.5.0",
3
+ "version": "5.7.0",
4
4
  "description": "πŸ‰ Wyrm - Persistent AI Memory System with encryption, full-text search, and infinite storage",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -9,10 +9,12 @@
9
9
  "wyrm-http": "dist/http-server.js",
10
10
  "wyrm": "dist/wyrm-cli.js",
11
11
  "wyrm-setup": "dist/setup.js",
12
- "wyrm-loop": "dist/wyrm-loop.js"
12
+ "wyrm-loop": "dist/wyrm-loop.js",
13
+ "wyrm-ui": "dist/wyrm-ui.js"
13
14
  },
14
15
  "files": [
15
16
  "dist",
17
+ "ui",
16
18
  "scripts/preinstall.cjs",
17
19
  "scripts/postinstall.cjs",
18
20
  "README.md",
package/ui/index.html ADDED
@@ -0,0 +1,575 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en" data-theme="dark">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>πŸ‰ Wyrm</title>
7
+ <link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ctext y='20' font-size='20'%3EπŸ‰%3C/text%3E%3C/svg%3E">
8
+ <style>
9
+ /* ============================================================
10
+ Dragon Constitution rule II:
11
+ teal #00B89F primary, red #ff5a55 critical, monospace for IDs,
12
+ h1 weight 900 / 2.5rem / -0.02em. Black-and-green forbidden.
13
+ ============================================================ */
14
+ :root {
15
+ --teal: #00B89F;
16
+ --teal-hot: #34d399;
17
+ --red: #ff5a55;
18
+ --orange: #ff8c42;
19
+ --amber: #f0b400;
20
+ --blue: #4d8cff;
21
+ --grey: #8a8a8a;
22
+ --bg: #0a0c0e;
23
+ --bg-card: #14171a;
24
+ --bg-hover: #1c2025;
25
+ --fg: #e8eaed;
26
+ --fg-muted: #8a8a8a;
27
+ --border: #23272d;
28
+ --sans: 'Inter', system-ui, -apple-system, sans-serif;
29
+ --mono: 'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, monospace;
30
+ }
31
+
32
+ * { box-sizing: border-box; margin: 0; padding: 0; }
33
+
34
+ body {
35
+ font-family: var(--sans);
36
+ background: var(--bg);
37
+ color: var(--fg);
38
+ line-height: 1.5;
39
+ min-height: 100vh;
40
+ }
41
+
42
+ h1 {
43
+ font-weight: 900;
44
+ font-size: 2.5rem;
45
+ letter-spacing: -0.02em;
46
+ line-height: 1.1;
47
+ margin-bottom: 1rem;
48
+ }
49
+ h2 { font-weight: 700; font-size: 1.5rem; margin: 1.5rem 0 0.75rem; }
50
+ h3 { font-weight: 600; font-size: 1.1rem; margin: 1rem 0 0.5rem; }
51
+
52
+ .mono, code, .id, .kbd {
53
+ font-family: var(--mono);
54
+ font-size: 0.85em;
55
+ }
56
+
57
+ a { color: var(--teal); text-decoration: none; }
58
+ a:hover { color: var(--teal-hot); text-decoration: underline; }
59
+
60
+ /* Layout */
61
+ .app {
62
+ display: grid;
63
+ grid-template-columns: 220px 1fr;
64
+ min-height: 100vh;
65
+ }
66
+ .sidebar {
67
+ background: var(--bg-card);
68
+ border-right: 1px solid var(--border);
69
+ padding: 1.5rem 1rem;
70
+ position: sticky;
71
+ top: 0;
72
+ height: 100vh;
73
+ overflow-y: auto;
74
+ }
75
+ .sidebar .brand {
76
+ font-family: var(--mono);
77
+ font-weight: 700;
78
+ color: var(--teal);
79
+ font-size: 1.25rem;
80
+ margin-bottom: 2rem;
81
+ letter-spacing: -0.03em;
82
+ }
83
+ .sidebar nav a {
84
+ display: block;
85
+ padding: 0.5rem 0.75rem;
86
+ margin-bottom: 0.25rem;
87
+ border-radius: 6px;
88
+ color: var(--fg);
89
+ font-family: var(--mono);
90
+ font-size: 0.9rem;
91
+ }
92
+ .sidebar nav a:hover { background: var(--bg-hover); text-decoration: none; }
93
+ .sidebar nav a.active { background: var(--teal); color: var(--bg); }
94
+
95
+ .main {
96
+ padding: 2rem;
97
+ max-width: 1100px;
98
+ }
99
+
100
+ /* Header */
101
+ .header {
102
+ display: flex;
103
+ justify-content: space-between;
104
+ align-items: center;
105
+ margin-bottom: 1.5rem;
106
+ flex-wrap: wrap;
107
+ gap: 1rem;
108
+ }
109
+ .header .search {
110
+ flex: 1;
111
+ max-width: 400px;
112
+ padding: 0.5rem 0.75rem;
113
+ background: var(--bg-card);
114
+ border: 1px solid var(--border);
115
+ border-radius: 6px;
116
+ color: var(--fg);
117
+ font-family: var(--sans);
118
+ }
119
+ .header .search:focus { outline: 2px solid var(--teal); border-color: var(--teal); }
120
+
121
+ /* Cards / tiles */
122
+ .grid {
123
+ display: grid;
124
+ grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
125
+ gap: 1rem;
126
+ }
127
+ .card {
128
+ background: var(--bg-card);
129
+ border: 1px solid var(--border);
130
+ border-radius: 8px;
131
+ padding: 1rem;
132
+ }
133
+ .card .title { font-weight: 600; margin-bottom: 0.5rem; color: var(--fg); }
134
+ .card .meta { color: var(--fg-muted); font-family: var(--mono); font-size: 0.85em; }
135
+
136
+ /* Tables */
137
+ table { width: 100%; border-collapse: collapse; }
138
+ th, td {
139
+ padding: 0.5rem 0.75rem;
140
+ text-align: left;
141
+ border-bottom: 1px solid var(--border);
142
+ }
143
+ th {
144
+ font-weight: 600;
145
+ color: var(--fg-muted);
146
+ font-size: 0.85rem;
147
+ text-transform: uppercase;
148
+ letter-spacing: 0.05em;
149
+ }
150
+ tr:hover { background: var(--bg-hover); }
151
+
152
+ /* Pills */
153
+ .pill {
154
+ display: inline-block;
155
+ padding: 0.15rem 0.5rem;
156
+ border-radius: 4px;
157
+ font-family: var(--mono);
158
+ font-size: 0.75rem;
159
+ font-weight: 600;
160
+ text-transform: uppercase;
161
+ }
162
+ .pill.critical { background: var(--red); color: white; }
163
+ .pill.high { background: var(--orange); color: white; }
164
+ .pill.medium { background: var(--amber); color: var(--bg); }
165
+ .pill.low { background: var(--blue); color: white; }
166
+ .pill.info { background: var(--grey); color: var(--bg); }
167
+ .pill.teal { background: var(--teal); color: var(--bg); }
168
+
169
+ /* States */
170
+ .empty {
171
+ padding: 2rem;
172
+ text-align: center;
173
+ color: var(--fg-muted);
174
+ background: var(--bg-card);
175
+ border-radius: 8px;
176
+ }
177
+ .error {
178
+ padding: 1rem;
179
+ background: rgba(255,90,85,0.1);
180
+ border: 1px solid var(--red);
181
+ border-radius: 6px;
182
+ color: var(--red);
183
+ }
184
+
185
+ /* Mobile */
186
+ @media (max-width: 768px) {
187
+ .app { grid-template-columns: 1fr; }
188
+ .sidebar {
189
+ position: fixed;
190
+ z-index: 100;
191
+ height: auto;
192
+ width: 100%;
193
+ padding: 0.5rem 1rem;
194
+ top: 0;
195
+ display: flex;
196
+ align-items: center;
197
+ gap: 0.5rem;
198
+ overflow-x: auto;
199
+ }
200
+ .sidebar .brand { margin: 0 1rem 0 0; }
201
+ .sidebar nav { display: flex; gap: 0.25rem; }
202
+ .sidebar nav a { padding: 0.25rem 0.5rem; font-size: 0.8rem; white-space: nowrap; }
203
+ .main { padding: 5rem 1rem 2rem; }
204
+ h1 { font-size: 1.75rem; }
205
+ }
206
+
207
+ /* Loading */
208
+ .loading {
209
+ padding: 2rem;
210
+ text-align: center;
211
+ color: var(--fg-muted);
212
+ }
213
+ .loading::after {
214
+ content: '';
215
+ display: inline-block;
216
+ width: 12px;
217
+ height: 12px;
218
+ margin-left: 0.5rem;
219
+ border: 2px solid var(--teal);
220
+ border-top-color: transparent;
221
+ border-radius: 50%;
222
+ animation: spin 0.6s linear infinite;
223
+ }
224
+ @keyframes spin { to { transform: rotate(360deg); } }
225
+ </style>
226
+ </head>
227
+ <body>
228
+ <div class="app">
229
+ <aside class="sidebar">
230
+ <div class="brand">πŸ‰ Wyrm</div>
231
+ <nav>
232
+ <a href="#/" data-route="">Dashboard</a>
233
+ <a href="#/projects" data-route="projects">Projects</a>
234
+ <a href="#/quests" data-route="quests">Quests</a>
235
+ <a href="#/truths" data-route="truths">Truths</a>
236
+ <a href="#/skills" data-route="skills">Skills</a>
237
+ <a href="#/buddy" data-route="buddy">Buddy</a>
238
+ <a href="#/agent" data-route="agent">Agent</a>
239
+ <a href="#/search" data-route="search">Search</a>
240
+ </nav>
241
+ </aside>
242
+ <main class="main">
243
+ <div class="header">
244
+ <h1 id="page-title">Dashboard</h1>
245
+ <input type="search" class="search" placeholder="/ to search…" id="quick-search">
246
+ </div>
247
+ <div id="content"><div class="loading">Loading…</div></div>
248
+ </main>
249
+ </div>
250
+
251
+ <script>
252
+ // ============================================================
253
+ // Wyrm Web UI β€” vanilla JS, hash-routed, calls wyrm-http API.
254
+ // Auth: token bootstrap from /ui-token (only served to localhost).
255
+ // ============================================================
256
+ let TOKEN = null;
257
+ const API = ''; // relative; same origin
258
+
259
+ async function bootToken() {
260
+ try {
261
+ const r = await fetch('/ui-token');
262
+ if (r.ok) {
263
+ const j = await r.json();
264
+ TOKEN = j.token;
265
+ }
266
+ } catch { /* no token; auth disabled or call failed */ }
267
+ }
268
+
269
+ async function api(path, opts = {}) {
270
+ const headers = {
271
+ 'Content-Type': 'application/json',
272
+ 'X-Wyrm-Origin': 'ui',
273
+ ...(opts.headers || {}),
274
+ };
275
+ if (TOKEN) headers['Authorization'] = `Bearer ${TOKEN}`;
276
+ const r = await fetch(API + path, { ...opts, headers });
277
+ if (!r.ok) throw new Error(`${r.status} ${r.statusText} on ${path}`);
278
+ const text = await r.text();
279
+ try { return JSON.parse(text); } catch { return text; }
280
+ }
281
+
282
+ function el(html) {
283
+ const t = document.createElement('template');
284
+ t.innerHTML = html.trim();
285
+ return t.content.firstChild;
286
+ }
287
+
288
+ function fmtDate(s) {
289
+ if (!s) return '';
290
+ const d = new Date(s);
291
+ if (isNaN(d.getTime())) return s;
292
+ return d.toISOString().slice(0, 16).replace('T', ' ');
293
+ }
294
+
295
+ // -- Routes -------------------------------------------------------
296
+ const routes = {
297
+ '': renderDashboard,
298
+ 'projects': renderProjects,
299
+ 'quests': renderQuests,
300
+ 'truths': renderTruths,
301
+ 'skills': renderSkills,
302
+ 'buddy': renderBuddy,
303
+ 'agent': renderAgent,
304
+ 'search': renderSearch,
305
+ };
306
+
307
+ function navigate() {
308
+ const hash = location.hash.slice(2) || '';
309
+ const route = hash.split('/')[0];
310
+ const fn = routes[route] || renderNotFound;
311
+ document.querySelectorAll('.sidebar nav a').forEach(a => {
312
+ a.classList.toggle('active', a.dataset.route === route);
313
+ });
314
+ const titles = {
315
+ '': 'Dashboard', projects: 'Projects', quests: 'Quests',
316
+ truths: 'Ground Truths', skills: 'Skills', buddy: 'Buddy',
317
+ agent: 'Agent', search: 'Search'
318
+ };
319
+ document.getElementById('page-title').textContent = titles[route] || 'Wyrm';
320
+ document.getElementById('content').innerHTML = '<div class="loading">Loading…</div>';
321
+ fn(hash.split('/').slice(1));
322
+ }
323
+
324
+ async function renderDashboard() {
325
+ try {
326
+ const [stats, quests] = await Promise.all([
327
+ api('/stats'),
328
+ api('/quests?limit=10'),
329
+ ]);
330
+ const out = document.getElementById('content');
331
+ out.innerHTML = '';
332
+ out.appendChild(el(`
333
+ <div class="grid">
334
+ <div class="card">
335
+ <div class="title">Projects</div>
336
+ <div class="meta">${stats.projects || 0} tracked</div>
337
+ </div>
338
+ <div class="card">
339
+ <div class="title">Sessions</div>
340
+ <div class="meta">${stats.sessions || 0} recorded</div>
341
+ </div>
342
+ <div class="card">
343
+ <div class="title">Quests</div>
344
+ <div class="meta">${stats.quests || 0} total</div>
345
+ </div>
346
+ <div class="card">
347
+ <div class="title">Database</div>
348
+ <div class="meta">${stats.dbSize || '?'}</div>
349
+ </div>
350
+ </div>
351
+ `));
352
+ out.appendChild(el('<h2>Recent quests</h2>'));
353
+ renderQuestTable(out, quests.quests || quests || []);
354
+ } catch (e) {
355
+ showError(e);
356
+ }
357
+ }
358
+
359
+ async function renderProjects() {
360
+ try {
361
+ const data = await api('/projects');
362
+ const projects = data.projects || data || [];
363
+ const out = document.getElementById('content');
364
+ out.innerHTML = '';
365
+ if (projects.length === 0) {
366
+ out.appendChild(el('<div class="empty">No projects yet. Run <code>wyrm_scan_projects</code> from your AI client.</div>'));
367
+ return;
368
+ }
369
+ const table = el(`<table>
370
+ <thead><tr><th>Name</th><th>Stack</th><th>Path</th><th>Branch</th></tr></thead>
371
+ <tbody></tbody>
372
+ </table>`);
373
+ const tbody = table.querySelector('tbody');
374
+ for (const p of projects) {
375
+ tbody.appendChild(el(`<tr>
376
+ <td><strong>${escape(p.name)}</strong></td>
377
+ <td><span class="mono">${escape(p.stack || '?')}</span></td>
378
+ <td class="mono" style="color:var(--fg-muted);font-size:0.85em">${escape(p.path)}</td>
379
+ <td class="mono">${escape(p.branch || '')}</td>
380
+ </tr>`));
381
+ }
382
+ out.appendChild(table);
383
+ } catch (e) { showError(e); }
384
+ }
385
+
386
+ async function renderQuests() {
387
+ try {
388
+ const data = await api('/quests');
389
+ const out = document.getElementById('content');
390
+ out.innerHTML = '';
391
+ renderQuestTable(out, data.quests || data || []);
392
+ } catch (e) { showError(e); }
393
+ }
394
+
395
+ function renderQuestTable(parent, quests) {
396
+ if (quests.length === 0) {
397
+ parent.appendChild(el('<div class="empty">No quests.</div>'));
398
+ return;
399
+ }
400
+ const table = el(`<table>
401
+ <thead><tr><th>ID</th><th>Priority</th><th>Title</th><th>Status</th><th>Tags</th></tr></thead>
402
+ <tbody></tbody>
403
+ </table>`);
404
+ const tbody = table.querySelector('tbody');
405
+ for (const q of quests) {
406
+ tbody.appendChild(el(`<tr>
407
+ <td><span class="mono">#${q.id}</span></td>
408
+ <td><span class="pill ${q.priority || 'info'}">${escape(q.priority || 'info')}</span></td>
409
+ <td><strong>${escape(q.title)}</strong></td>
410
+ <td><span class="mono">${escape(q.status || '')}</span></td>
411
+ <td class="mono" style="font-size:0.85em">${escape(q.tags || '')}</td>
412
+ </tr>`));
413
+ }
414
+ parent.appendChild(table);
415
+ }
416
+
417
+ async function renderTruths() {
418
+ try {
419
+ // /global gives the global truths; per-project truths would need
420
+ // a projectPath. The MVP shows global; future versions add project picker.
421
+ const data = await api('/global');
422
+ const out = document.getElementById('content');
423
+ out.innerHTML = '';
424
+ const entries = Object.entries(data || {});
425
+ if (entries.length === 0) {
426
+ out.appendChild(el('<div class="empty">No global truths set. Use <code>wyrm_set_global</code> or <code>wyrm_truth_set</code>.</div>'));
427
+ return;
428
+ }
429
+ const grid = el('<div class="grid"></div>');
430
+ for (const [k, v] of entries) {
431
+ grid.appendChild(el(`<div class="card">
432
+ <div class="title">${escape(k)}</div>
433
+ <div style="color:var(--fg);font-size:0.95em">${escape(String(v).slice(0, 500))}</div>
434
+ </div>`));
435
+ }
436
+ out.appendChild(grid);
437
+ } catch (e) { showError(e); }
438
+ }
439
+
440
+ async function renderSkills() {
441
+ try {
442
+ const data = await api('/skills');
443
+ const skills = data.skills || data || [];
444
+ const out = document.getElementById('content');
445
+ out.innerHTML = '';
446
+ if (skills.length === 0) {
447
+ out.appendChild(el('<div class="empty">No skills registered yet.</div>'));
448
+ return;
449
+ }
450
+ // Group by category
451
+ const byCat = {};
452
+ for (const s of skills) {
453
+ const c = s.category || 'general';
454
+ (byCat[c] = byCat[c] || []).push(s);
455
+ }
456
+ for (const cat of Object.keys(byCat).sort()) {
457
+ out.appendChild(el(`<h2>${escape(cat)} <span class="pill teal">${byCat[cat].length}</span></h2>`));
458
+ const grid = el('<div class="grid"></div>');
459
+ for (const s of byCat[cat]) {
460
+ grid.appendChild(el(`<div class="card">
461
+ <div class="title">${escape(s.name)}</div>
462
+ <div style="font-size:0.9em;color:var(--fg);margin-bottom:0.5rem">${escape((s.description || '').slice(0, 200))}</div>
463
+ <div class="meta">${escape(s.tags || '')}</div>
464
+ </div>`));
465
+ }
466
+ out.appendChild(grid);
467
+ }
468
+ } catch (e) { showError(e); }
469
+ }
470
+
471
+ async function renderBuddy() {
472
+ try {
473
+ const data = await api('/buddy');
474
+ const out = document.getElementById('content');
475
+ out.innerHTML = '';
476
+ const card = el('<div class="card" style="white-space:pre-wrap;font-family:var(--mono);line-height:1.6;padding:1.5rem"></div>');
477
+ card.textContent = data.markdown || data.text || JSON.stringify(data);
478
+ out.appendChild(card);
479
+ } catch (e) {
480
+ showError(e);
481
+ }
482
+ }
483
+
484
+ async function renderAgent() {
485
+ try {
486
+ const data = await api('/agent');
487
+ const out = document.getElementById('content');
488
+ out.innerHTML = '';
489
+ out.appendChild(el(`
490
+ <div class="grid">
491
+ <div class="card">
492
+ <div class="title">Status</div>
493
+ <div class="meta">${data.running ? '🟒 running' : 'πŸ”΄ stopped'}</div>
494
+ </div>
495
+ <div class="card">
496
+ <div class="title">PID</div>
497
+ <div class="meta">${data.pid || 'β€”'}</div>
498
+ </div>
499
+ <div class="card">
500
+ <div class="title">Started</div>
501
+ <div class="meta">${fmtDate(data.started_at) || 'β€”'}</div>
502
+ </div>
503
+ <div class="card">
504
+ <div class="title">Uptime</div>
505
+ <div class="meta">${data.uptime_seconds ? Math.round(data.uptime_seconds / 60) + ' min' : 'β€”'}</div>
506
+ </div>
507
+ </div>
508
+ `));
509
+ } catch (e) { showError(e); }
510
+ }
511
+
512
+ async function renderSearch(params) {
513
+ const out = document.getElementById('content');
514
+ out.innerHTML = '';
515
+ const form = el(`<div class="card">
516
+ <input type="search" class="search" id="search-q" placeholder="Search across projects, sessions, quests, truths…" style="width:100%">
517
+ <div id="search-results" style="margin-top:1rem"></div>
518
+ </div>`);
519
+ out.appendChild(form);
520
+ const input = form.querySelector('#search-q');
521
+ const results = form.querySelector('#search-results');
522
+ input.focus();
523
+ input.addEventListener('input', async (e) => {
524
+ const q = e.target.value.trim();
525
+ if (q.length < 2) { results.innerHTML = ''; return; }
526
+ try {
527
+ const data = await api('/search?q=' + encodeURIComponent(q));
528
+ results.innerHTML = '';
529
+ const hits = data.results || data || [];
530
+ if (hits.length === 0) { results.innerHTML = '<div class="empty">No hits.</div>'; return; }
531
+ for (const h of hits.slice(0, 20)) {
532
+ results.appendChild(el(`<div style="padding:0.5rem 0;border-bottom:1px solid var(--border)">
533
+ <span class="mono pill teal">${escape(h.kind || h.type || '?')}</span>
534
+ <strong>${escape(h.title || h.text || h.problem || JSON.stringify(h).slice(0, 100))}</strong>
535
+ </div>`));
536
+ }
537
+ } catch (err) { results.innerHTML = `<div class="error">${escape(String(err))}</div>`; }
538
+ });
539
+ }
540
+
541
+ function renderNotFound() {
542
+ document.getElementById('content').innerHTML = '<div class="empty">Route not found.</div>';
543
+ }
544
+
545
+ function showError(e) {
546
+ const out = document.getElementById('content');
547
+ out.innerHTML = `<div class="error">${escape(String(e))}</div>`;
548
+ }
549
+
550
+ function escape(s) {
551
+ return String(s ?? '').replace(/[&<>"]/g, c => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;' }[c]));
552
+ }
553
+
554
+ // -- Keymap -------------------------------------------------------
555
+ document.addEventListener('keydown', (e) => {
556
+ if (e.target.tagName === 'INPUT' || e.target.tagName === 'TEXTAREA') return;
557
+ if (e.key === '/') { e.preventDefault(); document.getElementById('quick-search').focus(); }
558
+ if (e.key === 'g') {
559
+ let next = '';
560
+ const t = setTimeout(() => {}, 1000);
561
+ document.addEventListener('keydown', function once(e2) {
562
+ document.removeEventListener('keydown', once);
563
+ clearTimeout(t);
564
+ const map = { p: 'projects', q: 'quests', t: 'truths', s: 'skills', b: 'buddy', a: 'agent' };
565
+ if (map[e2.key]) location.hash = '#/' + map[e2.key];
566
+ }, { once: true });
567
+ }
568
+ });
569
+
570
+ // -- Boot ---------------------------------------------------------
571
+ window.addEventListener('hashchange', navigate);
572
+ bootToken().then(() => navigate());
573
+ </script>
574
+ </body>
575
+ </html>