daedalus-cli 3.74.0 → 3.76.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.
Files changed (70) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +1 -1
  3. package/dist/agents/roles.d.ts.map +1 -1
  4. package/dist/agents/roles.js +4 -1
  5. package/dist/agents/roles.js.map +1 -1
  6. package/dist/commands/webui.js +5 -5
  7. package/dist/commands/webui.js.map +1 -1
  8. package/dist/formatting.d.ts +1 -1
  9. package/dist/formatting.d.ts.map +1 -1
  10. package/dist/formatting.js +6 -2
  11. package/dist/formatting.js.map +1 -1
  12. package/dist/marathon/engine.js +1 -1
  13. package/dist/marathon/engine.js.map +1 -1
  14. package/dist/marathon/evaluator.d.ts +1 -0
  15. package/dist/marathon/evaluator.d.ts.map +1 -1
  16. package/dist/marathon/evaluator.js +33 -5
  17. package/dist/marathon/evaluator.js.map +1 -1
  18. package/dist/marathon/planner.d.ts.map +1 -1
  19. package/dist/marathon/planner.js +2 -1
  20. package/dist/marathon/planner.js.map +1 -1
  21. package/dist/repl.js +1 -1
  22. package/dist/repl.js.map +1 -1
  23. package/dist/tools/builtin/files.d.ts.map +1 -1
  24. package/dist/tools/builtin/files.js +11 -1
  25. package/dist/tools/builtin/files.js.map +1 -1
  26. package/dist/webui/install.test.d.ts +2 -0
  27. package/dist/webui/install.test.d.ts.map +1 -0
  28. package/dist/webui/install.test.js +43 -0
  29. package/dist/webui/install.test.js.map +1 -0
  30. package/dist/webui/public/apple-touch-icon.png +0 -0
  31. package/dist/webui/public/icon-192.png +0 -0
  32. package/dist/webui/public/icon-512.png +0 -0
  33. package/dist/webui/public/index.html +116 -32
  34. package/dist/webui/public/logo.png +0 -0
  35. package/dist/webui/public/manifest.json +25 -0
  36. package/dist/webui/public/script.js +404 -9
  37. package/dist/webui/public/styles.css +773 -3
  38. package/dist/webui/public/sw.js +81 -0
  39. package/dist/webui/public/types.d.ts +9 -0
  40. package/dist/webui/public/types.d.ts.map +1 -0
  41. package/dist/webui/public/types.js +2 -0
  42. package/dist/webui/public/types.js.map +1 -0
  43. package/dist/webui/public/types.ts +8 -0
  44. package/dist/webui/qr.d.ts +23 -0
  45. package/dist/webui/qr.d.ts.map +1 -0
  46. package/dist/webui/qr.js +60 -0
  47. package/dist/webui/qr.js.map +1 -0
  48. package/dist/webui/qr.test.d.ts +2 -0
  49. package/dist/webui/qr.test.d.ts.map +1 -0
  50. package/dist/webui/qr.test.js +34 -0
  51. package/dist/webui/qr.test.js.map +1 -0
  52. package/dist/webui/server.d.ts +3 -2
  53. package/dist/webui/server.d.ts.map +1 -1
  54. package/dist/webui/server.js +99 -35
  55. package/dist/webui/server.js.map +1 -1
  56. package/dist/webui/server.test.js +33 -1
  57. package/dist/webui/server.test.js.map +1 -1
  58. package/dist/webui/styles.test.d.ts +2 -0
  59. package/dist/webui/styles.test.d.ts.map +1 -0
  60. package/dist/webui/styles.test.js +19 -0
  61. package/dist/webui/styles.test.js.map +1 -0
  62. package/dist/webui/ws.d.ts +17 -0
  63. package/dist/webui/ws.d.ts.map +1 -0
  64. package/dist/webui/ws.js +57 -0
  65. package/dist/webui/ws.js.map +1 -0
  66. package/dist/webui/ws.test.d.ts +2 -0
  67. package/dist/webui/ws.test.d.ts.map +1 -0
  68. package/dist/webui/ws.test.js +66 -0
  69. package/dist/webui/ws.test.js.map +1 -0
  70. package/package.json +4 -1
@@ -5,6 +5,8 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1" />
6
6
  <title>DAEDALUS — Architect of Autonomous Systems</title>
7
7
  <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
8
+ <link rel="apple-touch-icon" href="/apple-touch-icon.png" />
9
+ <link rel="manifest" href="/manifest.json" />
8
10
  <link rel="preconnect" href="https://fonts.googleapis.com">
9
11
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
10
12
  <link href="https://fonts.googleapis.com/css2?family=Cinzel:wght@500;700;900&family=JetBrains+Mono:ital,wght@0,400;0,500;0,700;1,400&family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap" rel="stylesheet">
@@ -16,19 +18,7 @@
16
18
  <header class="header">
17
19
  <div class="brand">
18
20
  <div class="logo-crest" title="The Seal of Daedalus">
19
- <svg viewBox="0 0 44 44" class="crest-svg" fill="none" xmlns="http://www.w3.org/2000/svg">
20
- <polygon points="22,3 41,39 3,39" stroke="url(#gold-grad)" stroke-width="1.8" fill="rgba(229, 169, 60, 0.06)" />
21
- <polygon points="22,11 35,35 9,35" stroke="url(#gold-grad)" stroke-width="1" fill="none" opacity="0.6" />
22
- <path d="M22 17 L29 31 L15 31 Z" stroke="#38bdf8" stroke-width="1.2" fill="rgba(56, 189, 248, 0.12)" />
23
- <circle cx="22" cy="25" r="2.5" fill="#f5c358" filter="drop-shadow(0 0 4px #e5a93c)" />
24
- <defs>
25
- <linearGradient id="gold-grad" x1="3" y1="3" x2="41" y2="39" gradientUnits="userSpaceOnUse">
26
- <stop stop-color="#f5c358" />
27
- <stop offset="0.5" stop-color="#e5a93c" />
28
- <stop offset="1" stop-color="#b45309" />
29
- </linearGradient>
30
- </defs>
31
- </svg>
21
+ <img src="/logo.png" alt="Daedalus Emblem" class="crest-img" width="44" height="44" />
32
22
  </div>
33
23
  <div class="brand-titles">
34
24
  <div class="brand-main">
@@ -40,13 +30,25 @@
40
30
  </div>
41
31
  <div class="status-bar">
42
32
  <div class="model-pill-wrapper">
43
- <button type="button" id="active-model-badge" class="model-pill" title="Click to view & switch active model">
44
- <span class="model-icon">⚡</span>
33
+ <button type="button" id="active-model-badge" class="model-pill touch-target" title="Click to view & switch active model">
34
+ <span class="model-icon">
35
+ <svg viewBox="0 0 24 24" fill="currentColor"><path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z"/></svg>
36
+ </span>
45
37
  <span class="model-label" id="model-label">MODEL: AUTO</span>
46
38
  </button>
47
39
  </div>
48
- <div class="status-pill-wrapper">
49
- <span id="connection-status" class="status disconnected">● DISCONNECTED</span>
40
+ <div class="status-bar-subrow">
41
+ <div class="qr-pill-wrapper">
42
+ <button type="button" id="qr-pair-btn" class="model-pill qr-pair-btn touch-target" title="Pair mobile device via QR Code">
43
+ <span class="model-icon">
44
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="5" y="2" width="14" height="20" rx="2" ry="2"/><line x1="12" y1="18" x2="12.01" y2="18"/></svg>
45
+ </span>
46
+ <span class="model-label">PAIR QR</span>
47
+ </button>
48
+ </div>
49
+ <div class="status-pill-wrapper">
50
+ <span id="connection-status" class="status disconnected">● DISCONNECTED</span>
51
+ </div>
50
52
  </div>
51
53
  <div class="oracle-clock">
52
54
  <span class="oracle-label">CHRONOS</span>
@@ -59,7 +61,9 @@
59
61
  <div class="panel oracle-card card-pantheon">
60
62
  <div class="panel-header">
61
63
  <div class="metric-meta">
62
- <span class="oracle-glyph">⚡</span>
64
+ <span class="oracle-glyph">
65
+ <svg viewBox="0 0 24 24" fill="currentColor"><path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z"/></svg>
66
+ </span>
63
67
  <span class="metric-name">PANTHEON THROUGHPUT</span>
64
68
  </div>
65
69
  <span id="cpu-value" class="metric-value">0%</span>
@@ -74,7 +78,9 @@
74
78
  <div class="panel oracle-card card-memoria">
75
79
  <div class="panel-header">
76
80
  <div class="metric-meta">
77
- <span class="oracle-glyph">🏛️</span>
81
+ <span class="oracle-glyph">
82
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 10v10M8 10v10M12 10v10M16 10v10M20 10v10M2 10h20M2 20h20M12 2L2 7h20L12 2z"/></svg>
83
+ </span>
78
84
  <span class="metric-name">MEMORIA VAULT</span>
79
85
  </div>
80
86
  <span id="memory-value" class="metric-value">0%</span>
@@ -89,7 +95,9 @@
89
95
  <div class="panel oracle-card card-labyrinth">
90
96
  <div class="panel-header">
91
97
  <div class="metric-meta">
92
- <span class="oracle-glyph">📜</span>
98
+ <span class="oracle-glyph">
99
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/><line x1="16" y1="13" x2="8" y2="13"/><line x1="16" y1="17" x2="8" y2="17"/><polyline points="10 9 9 9 8 9"/></svg>
100
+ </span>
93
101
  <span class="metric-name">LABYRINTH SYMBOLS</span>
94
102
  </div>
95
103
  <span id="disk-value" class="metric-value">0%</span>
@@ -104,7 +112,9 @@
104
112
  <div class="panel oracle-card card-aegis">
105
113
  <div class="panel-header">
106
114
  <div class="metric-meta">
107
- <span class="oracle-glyph">🌐</span>
115
+ <span class="oracle-glyph">
116
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><line x1="2" y1="12" x2="22" y2="12"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg>
117
+ </span>
108
118
  <span class="metric-name">AEGIS ROUTER</span>
109
119
  </div>
110
120
  <span id="network-value" class="metric-value">0%</span>
@@ -119,10 +129,12 @@
119
129
  <div class="panel log-panel">
120
130
  <div class="panel-header">
121
131
  <div class="metric-meta">
122
- <span class="oracle-glyph">📜</span>
132
+ <span class="oracle-glyph">
133
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/><line x1="16" y1="13" x2="8" y2="13"/><line x1="16" y1="17" x2="8" y2="17"/></svg>
134
+ </span>
123
135
  <span class="metric-name">SYSTEM LOG OF ORACLES</span>
124
136
  </div>
125
- <button id="clear-log" class="clear-btn">PURGE</button>
137
+ <button id="clear-log" class="clear-btn touch-target">PURGE</button>
126
138
  </div>
127
139
  <div id="log-container" class="log-container">
128
140
  <div class="log-entry"><span class="time">[INIT]</span> Telemetry dashboard initialized. Ready for commands.</div>
@@ -133,12 +145,16 @@
133
145
  <div class="panel chat-panel">
134
146
  <div class="panel-header chat-header">
135
147
  <div class="metric-meta">
136
- <span class="oracle-glyph">⚡</span>
148
+ <span class="oracle-glyph">
149
+ <svg viewBox="0 0 24 24" fill="currentColor"><path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z"/></svg>
150
+ </span>
137
151
  <span class="metric-name">COMMUNICATION CONSOLE</span>
138
152
  </div>
139
153
  <div class="chat-badges">
140
154
  <span class="badge" id="chat-status-badge">SANCTUM READY</span>
141
- <button type="button" id="new-chat-btn" class="chat-header-btn" title="Begin a new consultation / clear console">✦ NEW RITE</button>
155
+ <button type="button" id="new-chat-btn" class="chat-header-btn" title="Begin a new consultation / clear console">
156
+ <svg class="oracle-icon-svg" style="width: 10px; height: 10px; display: inline-block; vertical-align: middle; margin-right: 3px;" viewBox="0 0 24 24" fill="currentColor"><path d="M12 2l2.4 7.2h7.6l-6.1 4.5 2.3 7.3-6.2-4.6-6.2 4.6 2.3-7.3-6.1-4.5h7.6z"/></svg>NEW RITE
157
+ </button>
142
158
  </div>
143
159
  </div>
144
160
  <div id="chat-messages" class="chat-messages">
@@ -153,20 +169,24 @@
153
169
  <div id="attachment-preview" class="attachment-preview hidden"></div>
154
170
  <form id="chat-form" class="chat-form">
155
171
  <input type="file" id="file-input" class="hidden" accept="image/*,.txt,.md,.json,.ts,.js,.py,.css,.html" />
156
- <button type="button" id="attach-btn" class="attach-btn" title="Offer artifact / attach file or image">
172
+ <button type="button" id="attach-btn" class="attach-btn touch-target" title="Offer artifact / attach file or image">
157
173
  <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
158
174
  <path d="m21.44 11.05-9.19 9.19a6 6 0 0 1-8.49-8.49l8.57-8.57A4 4 0 1 1 18 8.84l-8.59 8.57a2 2 0 0 1-2.83-2.83l8.49-8.48"></path>
159
175
  </svg>
160
176
  </button>
161
177
  <textarea id="chat-input" rows="1" placeholder="Inscribe an instruction, paste an image (Ctrl+V), or cast artifacts..." autocomplete="off"></textarea>
162
- <button type="submit" id="chat-send-btn" class="send-btn">TRANSMIT ⚡</button>
178
+ <button type="submit" id="chat-send-btn" class="send-btn">
179
+ TRANSMIT <svg class="oracle-icon-svg" style="width: 11px; height: 11px; display: inline-block; vertical-align: -1px; margin-left: 3px;" viewBox="0 0 24 24" fill="currentColor"><path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z"/></svg>
180
+ </button>
163
181
  </form>
164
182
  </div>
165
183
 
166
184
  <aside class="panel cheatsheet-panel">
167
185
  <div class="panel-header">
168
186
  <div class="metric-meta">
169
- <span class="oracle-glyph">🏛️</span>
187
+ <span class="oracle-glyph">
188
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 10v10M8 10v10M12 10v10M16 10v10M20 10v10M2 10h20M2 20h20M12 2L2 7h20L12 2z"/></svg>
189
+ </span>
170
190
  <span class="metric-name">ARCHIVES</span>
171
191
  </div>
172
192
  <div class="sidebar-tabs">
@@ -213,7 +233,9 @@
213
233
  <div class="sidebar-tab-content hidden" id="tab-files">
214
234
  <div class="file-tree-toolbar">
215
235
  <span id="file-tree-cwd" class="file-tree-cwd">—</span>
216
- <button id="file-tree-refresh" class="file-tree-refresh-btn" title="Refresh Labyrinth tree">↺</button>
236
+ <button id="file-tree-refresh" class="file-tree-refresh-btn" title="Refresh Labyrinth tree">
237
+ <svg style="width: 12px; height: 12px;" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M23 4v6h-6M1 20v-6h6"/><path d="M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"/></svg>
238
+ </button>
217
239
  </div>
218
240
  <div id="file-tree" class="file-tree">
219
241
  <div class="file-tree-loading">Exploring labyrinth paths...</div>
@@ -223,7 +245,9 @@
223
245
  <div class="sidebar-tab-content hidden" id="tab-context">
224
246
  <div class="file-tree-toolbar">
225
247
  <span class="file-tree-cwd">SANCTUM ACTIVE CONTEXT</span>
226
- <button id="context-refresh-btn" class="file-tree-refresh-btn" title="Refresh active context">↺</button>
248
+ <button id="context-refresh-btn" class="file-tree-refresh-btn" title="Refresh active context">
249
+ <svg style="width: 12px; height: 12px;" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M23 4v6h-6M1 20v-6h6"/><path d="M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"/></svg>
250
+ </button>
227
251
  </div>
228
252
  <div id="context-files-list" class="context-files-list">
229
253
  <div class="file-tree-loading">Sanctum is clear. No active files.</div>
@@ -235,7 +259,9 @@
235
259
  <span class="file-tree-cwd">MEMORIA CHRONICLES</span>
236
260
  <div class="session-toolbar-actions">
237
261
  <button id="session-new-btn" class="file-tree-refresh-btn" title="Create new session">+ NEW</button>
238
- <button id="session-refresh-btn" class="file-tree-refresh-btn" title="Refresh session archives">↺</button>
262
+ <button id="session-refresh-btn" class="file-tree-refresh-btn" title="Refresh session archives">
263
+ <svg style="width: 12px; height: 12px;" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M23 4v6h-6M1 20v-6h6"/><path d="M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"/></svg>
264
+ </button>
239
265
  </div>
240
266
  </div>
241
267
  <div id="sessions-list" class="sessions-list">
@@ -247,11 +273,69 @@
247
273
  </main>
248
274
  </div>
249
275
 
276
+ <div id="install-banner" class="install-banner hidden">
277
+ <button class="install-banner-close" title="Dismiss">×</button>
278
+ <div class="install-banner-header">
279
+ <div class="install-banner-crest">
280
+ <img src="/logo.png" alt="Daedalus Emblem" class="install-crest-img" width="48" height="48" />
281
+ </div>
282
+ <div class="install-banner-headings">
283
+ <h3 class="install-banner-title">DAEDALUS SOVEREIGN APP</h3>
284
+ <span class="install-banner-subtitle">PWA Companion · Offline &amp; Push Enabled</span>
285
+ </div>
286
+ </div>
287
+ <p class="install-banner-message">Add Daedalus to your home screen or dock for instant, full-screen autonomous orchestration with background telemetry.</p>
288
+ <div class="install-banner-features">
289
+ <span class="install-feature-pill">
290
+ <svg style="width: 11px; height: 11px; display: inline-block; vertical-align: -1px; margin-right: 3px;" viewBox="0 0 24 24" fill="currentColor"><path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z"/></svg>Instant Launch
291
+ </span>
292
+ <span class="install-feature-pill">
293
+ <svg style="width: 11px; height: 11px; display: inline-block; vertical-align: -1px; margin-right: 3px;" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9"/><path d="M13.73 21a2 2 0 0 1-3.46 0"/></svg>Push Alerts
294
+ </span>
295
+ <span class="install-feature-pill">
296
+ <svg style="width: 11px; height: 11px; display: inline-block; vertical-align: -1px; margin-right: 3px;" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="5" y="2" width="14" height="20" rx="2" ry="2"/><line x1="12" y1="18" x2="12.01" y2="18"/></svg>Mobile &amp; Desktop
297
+ </span>
298
+ </div>
299
+ <div class="install-banner-actions">
300
+ <button class="install-banner-button" id="install-button">
301
+ <span class="install-btn-icon">
302
+ <svg style="width: 14px; height: 14px;" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><polyline points="19 12 12 19 5 12"/></svg>
303
+ </span> INSTALL APPLICATION
304
+ </button>
305
+ <button type="button" class="install-banner-dismiss-btn" id="install-dismiss-button">NOT NOW</button>
306
+ </div>
307
+ </div>
308
+
309
+ <div id="qr-modal" class="modal-overlay hidden">
310
+ <div class="modal-card">
311
+ <div class="modal-header">
312
+ <div class="metric-meta">
313
+ <span class="oracle-glyph">
314
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="5" y="2" width="14" height="20" rx="2" ry="2"/><line x1="12" y1="18" x2="12.01" y2="18"/></svg>
315
+ </span>
316
+ <span class="metric-name">SOVEREIGN PAIRING · QR TELEMETRY</span>
317
+ </div>
318
+ <button type="button" id="qr-modal-close" class="modal-close-btn" title="Close">×</button>
319
+ </div>
320
+ <div class="modal-body" style="text-align: center;">
321
+ <p class="modal-subtitle">Scan this QR code with your mobile companion or camera to pair over LAN / Tailscale:</p>
322
+ <div class="qr-image-container" style="margin: 20px auto; display: flex; justify-content: center; align-items: center; min-height: 220px;">
323
+ <img id="qr-image" src="/api/qr" alt="Pairing QR Code" width="220" height="220" style="width: 220px; height: 220px; border-radius: 12px; border: 1px solid var(--bronze-border-strong); box-shadow: 0 0 24px rgba(245, 195, 88, 0.25); background: #0b0f19; padding: 6px; box-sizing: border-box;" />
324
+ </div>
325
+ <div id="qr-ws-url" class="qr-ws-url" style="font-family: var(--font-mono); font-size: 11px; color: var(--gold-bright); margin-top: 10px; word-break: break-all;">
326
+ ws://127.0.0.1:3888
327
+ </div>
328
+ </div>
329
+ </div>
330
+ </div>
331
+
250
332
  <div id="model-modal" class="modal-overlay hidden">
251
333
  <div class="modal-card">
252
334
  <div class="modal-header">
253
335
  <div class="metric-meta">
254
- <span class="oracle-glyph">⚡</span>
336
+ <span class="oracle-glyph">
337
+ <svg viewBox="0 0 24 24" fill="currentColor"><path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z"/></svg>
338
+ </span>
255
339
  <span class="metric-name">ROUTER ORACLES · MODEL SELECTION</span>
256
340
  </div>
257
341
  <button type="button" id="model-modal-close" class="modal-close-btn" title="Close">×</button>
Binary file
@@ -0,0 +1,25 @@
1
+ {
2
+ "name": "DAEDALUS — Architect of Autonomous Systems",
3
+ "short_name": "DAEDALUS",
4
+ "start_url": "/",
5
+ "display": "standalone",
6
+ "theme_color": "#0d1117",
7
+ "background_color": "#06080d",
8
+ "icons": [
9
+ {
10
+ "src": "/icon-192.png",
11
+ "sizes": "192x192",
12
+ "type": "image/png"
13
+ },
14
+ {
15
+ "src": "/icon-512.png",
16
+ "sizes": "512x512",
17
+ "type": "image/png"
18
+ },
19
+ {
20
+ "src": "/favicon.svg",
21
+ "sizes": "any",
22
+ "type": "image/svg+xml"
23
+ }
24
+ ]
25
+ }