@telepath-computer/television 0.1.177 → 0.1.179
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/dist/canonical/v1/components.js +25 -7
- package/dist/canonical/v1/styles.css +17 -1
- package/dist/cli.cjs +1187 -392
- package/dist/onboarding/README.md +35 -0
- package/dist/onboarding/business-ops/about.html +150 -0
- package/dist/onboarding/business-ops/retention-vs-releases.html +572 -0
- package/dist/onboarding/business-ops/revenue-vs-goals.html +621 -0
- package/dist/onboarding/onboarding-screens.json +167 -0
- package/dist/onboarding/productivity/about.html +149 -0
- package/dist/onboarding/productivity/company-todos/index.html +121 -0
- package/dist/onboarding/productivity/company-todos/task.css +205 -0
- package/dist/onboarding/productivity/company-todos/task.js +307 -0
- package/dist/onboarding/productivity/meeting-prep.html +440 -0
- package/dist/onboarding/productivity/priorities-today.html +409 -0
- package/dist/onboarding/productivity/todays-calendar/calendar.css +1 -0
- package/dist/onboarding/productivity/todays-calendar/calendar.js +716 -0
- package/dist/onboarding/productivity/todays-calendar/index.html +52 -0
- package/dist/onboarding/research/about.html +152 -0
- package/dist/onboarding/research/draft-blog-post.md +30 -0
- package/dist/onboarding/research/open-model-research.html +542 -0
- package/dist/onboarding/research/todays-news.html +503 -0
- package/dist/onboarding/{television-onboarding → tv-guide/welcome}/index.html +5 -5
- package/dist/skills/television/SKILL.md +44 -0
- package/dist/skills/tv-tasks/SKILL.md +241 -0
- package/dist/skills/tv-tasks/task.css +205 -0
- package/dist/skills/tv-tasks/task.js +307 -0
- package/dist/views/markdown/index.html +1 -1
- package/dist/web/assets/calendar-DToAnkzj.png +0 -0
- package/dist/web/assets/main-5017mprd.css +1 -0
- package/dist/web/assets/main-C-OjKUzX.js +865 -0
- package/dist/web/assets/markdown-DdDrJuVK.png +0 -0
- package/dist/web/assets/table-oeG9uAN1.png +0 -0
- package/dist/web/assets/tasks-D4xqXFPl.png +0 -0
- package/dist/web/index.html +2 -2
- package/package.json +1 -1
- package/dist/web/assets/main-BSAIRhnY.js +0 -768
- package/dist/web/assets/main-o9Z-XUYA.css +0 -1
- /package/dist/onboarding/{television-onboarding → tv-guide/welcome}/assets/television.svg +0 -0
|
@@ -0,0 +1,503 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
+
<title>Today's AI News</title>
|
|
7
|
+
<link rel="stylesheet" href="/canonical/v1/styles.css">
|
|
8
|
+
<script type="module" src="/canonical/v1/components.js"></script>
|
|
9
|
+
<style>
|
|
10
|
+
/* Shared base for onboarding artifacts ([[../index.md]]): document padding
|
|
11
|
+
and the centered content shell. Typography, text color, and background
|
|
12
|
+
are the canonical stylesheet's — nothing in this set restates or pins
|
|
13
|
+
them, so artifacts follow the active theme ([[../index.md#^respect-theme]]). */
|
|
14
|
+
|
|
15
|
+
* {
|
|
16
|
+
box-sizing: border-box;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
body {
|
|
20
|
+
margin: 0;
|
|
21
|
+
padding: var(--space-32, 32px) var(--space-32, 32px) var(--space-64, 64px);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.shell {
|
|
25
|
+
max-width: 720px;
|
|
26
|
+
margin: 0 auto;
|
|
27
|
+
display: grid;
|
|
28
|
+
/* Pin the single column to the container so a wide child (a data table)
|
|
29
|
+
scrolls inside its own .table-wrap instead of stretching the track and
|
|
30
|
+
overflowing the card. */
|
|
31
|
+
grid-template-columns: minmax(0, 1fr);
|
|
32
|
+
gap: var(--space-20, 20px);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/* Card-density headings ([[../index.md]]): document-scale h1 is oversized
|
|
36
|
+
inside a TV card. */
|
|
37
|
+
h1 {
|
|
38
|
+
margin: 0;
|
|
39
|
+
font-size: var(--text-xl, 17px);
|
|
40
|
+
font-weight: 600;
|
|
41
|
+
line-height: 1.25;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/* A lead paragraph (the .lede or .summary-deck standfirst) belongs in the
|
|
45
|
+
header, tight beneath the title — not a full grid-gap below it. Every
|
|
46
|
+
onboarding artifact places its lead this way so the spacing is uniform. */
|
|
47
|
+
header > .lede,
|
|
48
|
+
header > .summary-deck {
|
|
49
|
+
margin-top: var(--space-8, 8px);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
/* The hero header idiom ([[../index.md]]): a plain document header opening a
|
|
54
|
+
dashboard-shaped artifact — the title with a fictional freshness line and
|
|
55
|
+
an optional source/meta line, sitting on the document itself rather than
|
|
56
|
+
inside a card. */
|
|
57
|
+
|
|
58
|
+
header.hero h1 {
|
|
59
|
+
margin: 0 0 var(--space-6, 6px);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.generated {
|
|
63
|
+
color: var(--color-text-muted);
|
|
64
|
+
font-size: var(--text-sm, 12px);
|
|
65
|
+
font-weight: 500;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.meta-line {
|
|
69
|
+
margin-top: var(--space-4, 4px);
|
|
70
|
+
color: var(--color-text-muted);
|
|
71
|
+
font-size: var(--text-sm, 12px);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
/* Artifact-specific styling for Today's AI News ([[index.md]]): the wider
|
|
76
|
+
feed shell, per-source accent props over canonical ramp tokens, the
|
|
77
|
+
source chips, the agent "why" notes, and the three source-shaped cards.
|
|
78
|
+
Chrome colors are semantic tokens; the artifact never redefines them
|
|
79
|
+
([[../../index.md#^respect-theme]]). */
|
|
80
|
+
|
|
81
|
+
.shell {
|
|
82
|
+
max-width: 760px;
|
|
83
|
+
gap: var(--space-16, 16px);
|
|
84
|
+
|
|
85
|
+
/* Source accents, scoped to this artifact. */
|
|
86
|
+
--hn-color: var(--orange-600);
|
|
87
|
+
--x-color: var(--neutral-950);
|
|
88
|
+
--tm-color: var(--red-600);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.feed {
|
|
92
|
+
display: grid;
|
|
93
|
+
gap: var(--space-12, 12px);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/* Each source is one card: a brand-colored header band, the body, and a grey
|
|
97
|
+
"Why:" footer. The source color lives only in the header now. */
|
|
98
|
+
.card {
|
|
99
|
+
overflow: hidden;
|
|
100
|
+
border: 1px solid var(--color-border);
|
|
101
|
+
border-radius: var(--radius-12, 12px);
|
|
102
|
+
background: var(--color-surface);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.card-header {
|
|
106
|
+
padding: var(--space-10, 10px) var(--space-16, 16px);
|
|
107
|
+
color: var(--white);
|
|
108
|
+
}
|
|
109
|
+
.card.hn .card-header { background: var(--hn-color); }
|
|
110
|
+
.card.x .card-header { background: var(--x-color); }
|
|
111
|
+
.card.tm .card-header { background: var(--tm-color); }
|
|
112
|
+
|
|
113
|
+
/* Small source label, then the item's own title, both inside the band. */
|
|
114
|
+
.card-source {
|
|
115
|
+
font-size: var(--text-xs, 11px);
|
|
116
|
+
font-weight: 700;
|
|
117
|
+
letter-spacing: 0.04em;
|
|
118
|
+
text-transform: uppercase;
|
|
119
|
+
opacity: 0.85;
|
|
120
|
+
}
|
|
121
|
+
.card-title {
|
|
122
|
+
display: block;
|
|
123
|
+
margin-top: var(--space-2, 2px);
|
|
124
|
+
color: var(--white);
|
|
125
|
+
font-size: var(--text-base, 13.5px);
|
|
126
|
+
font-weight: 600;
|
|
127
|
+
line-height: 1.3;
|
|
128
|
+
text-decoration: none;
|
|
129
|
+
}
|
|
130
|
+
a.card-title:hover {
|
|
131
|
+
text-decoration: underline;
|
|
132
|
+
}
|
|
133
|
+
/* Source metadata (domain / timestamp / outlet) under the title, dimmed. */
|
|
134
|
+
.card-meta {
|
|
135
|
+
margin-top: var(--space-4, 4px);
|
|
136
|
+
color: var(--white);
|
|
137
|
+
font-size: var(--text-sm, 12px);
|
|
138
|
+
opacity: 0.75;
|
|
139
|
+
}
|
|
140
|
+
/* X: author name is the title; handle rides alongside it, dimmed. */
|
|
141
|
+
.x-handle-h {
|
|
142
|
+
margin-left: var(--space-4, 4px);
|
|
143
|
+
font-weight: 400;
|
|
144
|
+
opacity: 0.7;
|
|
145
|
+
}
|
|
146
|
+
.x-handle-h::before {
|
|
147
|
+
content: "@";
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
.card-body {
|
|
151
|
+
padding: var(--space-12, 12px) var(--space-16, 16px);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.card-footer {
|
|
155
|
+
padding: var(--space-8, 8px) var(--space-16, 16px);
|
|
156
|
+
border-top: 1px solid var(--color-border-muted);
|
|
157
|
+
background: var(--color-surface-muted);
|
|
158
|
+
color: var(--color-text-muted);
|
|
159
|
+
font-size: var(--text-sm, 12px);
|
|
160
|
+
line-height: 1.4;
|
|
161
|
+
}
|
|
162
|
+
.card-footer::before {
|
|
163
|
+
content: "Why: ";
|
|
164
|
+
font-weight: 600;
|
|
165
|
+
color: var(--color-text);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/* Hacker News body. */
|
|
169
|
+
.hn-subhead {
|
|
170
|
+
margin: 0;
|
|
171
|
+
color: var(--color-text-muted);
|
|
172
|
+
font-size: var(--text-sm, 12px);
|
|
173
|
+
line-height: 1.4;
|
|
174
|
+
}
|
|
175
|
+
.hn-stats {
|
|
176
|
+
display: flex;
|
|
177
|
+
flex-wrap: wrap;
|
|
178
|
+
gap: var(--space-16, 16px);
|
|
179
|
+
margin: var(--space-10, 10px) 0 0;
|
|
180
|
+
}
|
|
181
|
+
.hn-stat {
|
|
182
|
+
display: flex;
|
|
183
|
+
align-items: center;
|
|
184
|
+
gap: var(--space-4, 4px);
|
|
185
|
+
color: var(--color-text-muted);
|
|
186
|
+
font-size: var(--text-sm, 12px);
|
|
187
|
+
}
|
|
188
|
+
.hn-stat strong {
|
|
189
|
+
color: var(--color-text);
|
|
190
|
+
font-weight: 600;
|
|
191
|
+
}
|
|
192
|
+
.hn-discussion {
|
|
193
|
+
color: var(--hn-color);
|
|
194
|
+
font-size: var(--text-sm, 12px);
|
|
195
|
+
text-decoration: none;
|
|
196
|
+
}
|
|
197
|
+
.hn-discussion:hover {
|
|
198
|
+
text-decoration: underline;
|
|
199
|
+
}
|
|
200
|
+
.hn-tags {
|
|
201
|
+
display: flex;
|
|
202
|
+
flex-wrap: wrap;
|
|
203
|
+
gap: var(--space-6, 6px);
|
|
204
|
+
margin: var(--space-8, 8px) 0 0;
|
|
205
|
+
}
|
|
206
|
+
.hn-tag {
|
|
207
|
+
display: inline-flex;
|
|
208
|
+
padding: 2px var(--space-8, 8px);
|
|
209
|
+
border: 1px solid var(--color-border);
|
|
210
|
+
border-radius: var(--radius-full, 9999px);
|
|
211
|
+
background: var(--color-surface-muted);
|
|
212
|
+
color: var(--color-text-muted);
|
|
213
|
+
font-size: var(--text-sm, 12px);
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
/* X body. */
|
|
217
|
+
.x-text {
|
|
218
|
+
margin: 0;
|
|
219
|
+
color: var(--color-text);
|
|
220
|
+
font-size: var(--text-base, 13.5px);
|
|
221
|
+
line-height: 1.45;
|
|
222
|
+
white-space: pre-wrap;
|
|
223
|
+
word-wrap: break-word;
|
|
224
|
+
}
|
|
225
|
+
.x-text a {
|
|
226
|
+
color: var(--color-link);
|
|
227
|
+
text-decoration: none;
|
|
228
|
+
}
|
|
229
|
+
.x-text a:hover {
|
|
230
|
+
text-decoration: underline;
|
|
231
|
+
}
|
|
232
|
+
.x-stats {
|
|
233
|
+
display: flex;
|
|
234
|
+
gap: var(--space-24, 24px);
|
|
235
|
+
margin: var(--space-12, 12px) 0 0;
|
|
236
|
+
padding-top: var(--space-10, 10px);
|
|
237
|
+
border-top: 1px solid var(--color-border-muted);
|
|
238
|
+
}
|
|
239
|
+
.x-stat {
|
|
240
|
+
display: flex;
|
|
241
|
+
align-items: center;
|
|
242
|
+
gap: var(--space-6, 6px);
|
|
243
|
+
color: var(--color-text-muted);
|
|
244
|
+
font-size: var(--text-sm, 12px);
|
|
245
|
+
}
|
|
246
|
+
.x-stat strong {
|
|
247
|
+
color: var(--color-text);
|
|
248
|
+
font-weight: 600;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
/* TechMeme body. */
|
|
252
|
+
.tm-excerpt {
|
|
253
|
+
margin: 0 0 var(--space-8, 8px);
|
|
254
|
+
color: var(--color-text-muted);
|
|
255
|
+
font-size: var(--text-sm, 12px);
|
|
256
|
+
line-height: 1.45;
|
|
257
|
+
}
|
|
258
|
+
.tm-related {
|
|
259
|
+
color: var(--color-text-muted);
|
|
260
|
+
font-size: var(--text-sm, 12px);
|
|
261
|
+
line-height: 1.5;
|
|
262
|
+
}
|
|
263
|
+
.tm-related-label {
|
|
264
|
+
color: var(--tm-color);
|
|
265
|
+
font-weight: 700;
|
|
266
|
+
}
|
|
267
|
+
.tm-related a {
|
|
268
|
+
color: var(--color-text-muted);
|
|
269
|
+
text-decoration: none;
|
|
270
|
+
}
|
|
271
|
+
.tm-related a:hover {
|
|
272
|
+
color: var(--color-link);
|
|
273
|
+
text-decoration: underline;
|
|
274
|
+
}
|
|
275
|
+
.tm-related-sep {
|
|
276
|
+
margin: 0 var(--space-2, 2px);
|
|
277
|
+
opacity: 0.3;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
@media (max-width: 520px) {
|
|
281
|
+
.x-stats { gap: var(--space-16, 16px); }
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
</style>
|
|
285
|
+
</head>
|
|
286
|
+
<body>
|
|
287
|
+
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
<main class="shell">
|
|
293
|
+
<header class="hero">
|
|
294
|
+
<h1>Today's AI News</h1>
|
|
295
|
+
<div class="meta-line">38 posts read across Hacker News, X, and TechMeme · 7 selected by relevance</div>
|
|
296
|
+
</header>
|
|
297
|
+
|
|
298
|
+
<div class="feed">
|
|
299
|
+
|
|
300
|
+
|
|
301
|
+
<article class="card hn">
|
|
302
|
+
<div class="card-header">
|
|
303
|
+
<div class="card-source">Hacker News</div>
|
|
304
|
+
|
|
305
|
+
<a class="card-title" href="https://news.ycombinator.com/item?id=42901234" target="_blank" rel="noopener">Why Open Models Are Critical to the Future of Computing</a>
|
|
306
|
+
<div class="card-meta">openweights.blog</div>
|
|
307
|
+
|
|
308
|
+
</div>
|
|
309
|
+
<div class="card-body">
|
|
310
|
+
|
|
311
|
+
<p class="hn-subhead">A front-page essay argues that open models — weights you can download, inspect, modify, and run on your own hardware — are the only path that preserves user sovereignty, privacy, censorship resistance, low latency, and cost control. The thread also rounds up recent open model releases: GLM-4.6-405B, Llama-4-70B, Mistral-Large-2, DeepSeek-V3, and Qwen-3-72B. Commenters debate whether the frontier gap is closing fast enough to matter for production deployments.</p>
|
|
312
|
+
<div class="hn-stats">
|
|
313
|
+
<span class="hn-stat">▲ <strong>927</strong> points</span>
|
|
314
|
+
<span class="hn-stat">💬 <strong>413</strong> comments</span>
|
|
315
|
+
<a class="hn-discussion" href="https://news.ycombinator.com/item?id=42901234" target="_blank" rel="noopener">view discussion →</a>
|
|
316
|
+
</div>
|
|
317
|
+
<div class="hn-tags">
|
|
318
|
+
|
|
319
|
+
<span class="hn-tag">open-models</span>
|
|
320
|
+
|
|
321
|
+
<span class="hn-tag">llm</span>
|
|
322
|
+
|
|
323
|
+
<span class="hn-tag">sovereignty</span>
|
|
324
|
+
|
|
325
|
+
<span class="hn-tag">privacy</span>
|
|
326
|
+
|
|
327
|
+
<span class="hn-tag">latency</span>
|
|
328
|
+
|
|
329
|
+
</div>
|
|
330
|
+
|
|
331
|
+
</div>
|
|
332
|
+
<div class="card-footer">You've been thinking and writing a lot about open models lately.</div>
|
|
333
|
+
</article>
|
|
334
|
+
|
|
335
|
+
|
|
336
|
+
<article class="card x">
|
|
337
|
+
<div class="card-header">
|
|
338
|
+
<div class="card-source">X</div>
|
|
339
|
+
|
|
340
|
+
<div class="card-title">Marcus Vane <span class="x-handle-h">marcusvane</span></div>
|
|
341
|
+
<div class="card-meta">3h ago</div>
|
|
342
|
+
|
|
343
|
+
</div>
|
|
344
|
+
<div class="card-body">
|
|
345
|
+
|
|
346
|
+
<div class="x-text">most AI startups are building for the demo, not the deployment. the enterprise buyers i talk to care about three things: does it work reliably, can i audit what it did, and can i roll it back. "autonomy" is maybe 4th on the list. maybe.</div>
|
|
347
|
+
<div class="x-stats">
|
|
348
|
+
<div class="x-stat">💬 <strong>287</strong> replies</div>
|
|
349
|
+
<div class="x-stat">🔁 <strong>1.2K</strong> reposts</div>
|
|
350
|
+
<div class="x-stat">❤️ <strong>5.8K</strong> likes</div>
|
|
351
|
+
<div class="x-stat">📊 <strong>89K</strong> views</div>
|
|
352
|
+
</div>
|
|
353
|
+
|
|
354
|
+
</div>
|
|
355
|
+
<div class="card-footer">Validates the Acme pilot positioning — auditability and rollback over autonomy is exactly what you're betting on.</div>
|
|
356
|
+
</article>
|
|
357
|
+
|
|
358
|
+
|
|
359
|
+
<article class="card x">
|
|
360
|
+
<div class="card-header">
|
|
361
|
+
<div class="card-source">X</div>
|
|
362
|
+
|
|
363
|
+
<div class="card-title">Nadia Okonkwo <span class="x-handle-h">nadiaoko</span></div>
|
|
364
|
+
<div class="card-meta">6h ago</div>
|
|
365
|
+
|
|
366
|
+
</div>
|
|
367
|
+
<div class="card-body">
|
|
368
|
+
|
|
369
|
+
<div class="x-text">we just open-sourced an eval framework for agentic workflows — regression thresholds, latency budgets, rollback traces, all configurable. 2k stars in 6 hours. link in reply 👇
|
|
370
|
+
|
|
371
|
+
the best part: it plugs into CI with 3 lines of yaml. no vendor lock-in. no managed service upsell. just the harness.</div>
|
|
372
|
+
<div class="x-stats">
|
|
373
|
+
<div class="x-stat">💬 <strong>94</strong> replies</div>
|
|
374
|
+
<div class="x-stat">🔁 <strong>2.1K</strong> reposts</div>
|
|
375
|
+
<div class="x-stat">❤️ <strong>7.3K</strong> likes</div>
|
|
376
|
+
<div class="x-stat">📊 <strong>120K</strong> views</div>
|
|
377
|
+
</div>
|
|
378
|
+
|
|
379
|
+
</div>
|
|
380
|
+
<div class="card-footer">This is likely the same framework that showed up as HN #1 today — worth evaluating for the Priya eval ownership discussion.</div>
|
|
381
|
+
</article>
|
|
382
|
+
|
|
383
|
+
|
|
384
|
+
<article class="card hn">
|
|
385
|
+
<div class="card-header">
|
|
386
|
+
<div class="card-source">Hacker News</div>
|
|
387
|
+
|
|
388
|
+
<a class="card-title" href="https://news.ycombinator.com/item?id=42900721" target="_blank" rel="noopener">How we cut our LLM inference latency by 60% with streaming + speculative decoding</a>
|
|
389
|
+
<div class="card-meta">eng.blog</div>
|
|
390
|
+
|
|
391
|
+
</div>
|
|
392
|
+
<div class="card-body">
|
|
393
|
+
|
|
394
|
+
<p class="hn-subhead">Engineering deep-dive on reducing p99 latency for agentic workloads using speculative decoding and chunked streaming, with benchmark code included. Covers tradeoffs between accuracy loss and latency gains across three model families.</p>
|
|
395
|
+
<div class="hn-stats">
|
|
396
|
+
<span class="hn-stat">▲ <strong>176</strong> points</span>
|
|
397
|
+
<span class="hn-stat">💬 <strong>63</strong> comments</span>
|
|
398
|
+
<a class="hn-discussion" href="https://news.ycombinator.com/item?id=42900721" target="_blank" rel="noopener">view discussion →</a>
|
|
399
|
+
</div>
|
|
400
|
+
<div class="hn-tags">
|
|
401
|
+
|
|
402
|
+
<span class="hn-tag">latency</span>
|
|
403
|
+
|
|
404
|
+
<span class="hn-tag">inference</span>
|
|
405
|
+
|
|
406
|
+
<span class="hn-tag">engineering</span>
|
|
407
|
+
|
|
408
|
+
</div>
|
|
409
|
+
|
|
410
|
+
</div>
|
|
411
|
+
<div class="card-footer">The latency issues that came up in the Product Reliability Sync could benefit from this approach.</div>
|
|
412
|
+
</article>
|
|
413
|
+
|
|
414
|
+
|
|
415
|
+
<article class="card tm">
|
|
416
|
+
<div class="card-header">
|
|
417
|
+
<div class="card-source">TechMeme</div>
|
|
418
|
+
|
|
419
|
+
<a class="card-title" href="https://techmeme.com/clip" target="_blank" rel="noopener">Mistral releases Mixtral 12B with Apache 2.0 license; benchmarks show parity with leading hosted mini models on tool-use at 1/8 the cost</a>
|
|
420
|
+
<div class="card-meta">TechCrunch · 8h ago</div>
|
|
421
|
+
|
|
422
|
+
</div>
|
|
423
|
+
<div class="card-body">
|
|
424
|
+
|
|
425
|
+
<p class="tm-excerpt">French AI lab Mistral published Mixtral 12B under Apache 2.0, with a Mixture-of-Experts architecture active at 4B parameters per token. Independent benchmarks on the AgentBench-2.0 agentic suite score it at parity with leading hosted mini models while running at roughly $0.30/M input tokens on self-hosted A100s.</p>
|
|
426
|
+
<div class="tm-related">
|
|
427
|
+
<span class="tm-related-label">More:</span>
|
|
428
|
+
|
|
429
|
+
<a href="#" target="_blank">The Register</a><span class="tm-related-sep">/</span>
|
|
430
|
+
|
|
431
|
+
<a href="#" target="_blank">VentureBeat</a><span class="tm-related-sep">/</span>
|
|
432
|
+
|
|
433
|
+
<a href="#" target="_blank">Hacker News (298↑)</a>
|
|
434
|
+
|
|
435
|
+
</div>
|
|
436
|
+
|
|
437
|
+
</div>
|
|
438
|
+
<div class="card-footer">Apache 2.0 with tool-use parity is worth a spike — could reduce per-workflow inference cost for the Acme pilot significantly.</div>
|
|
439
|
+
</article>
|
|
440
|
+
|
|
441
|
+
|
|
442
|
+
<article class="card hn">
|
|
443
|
+
<div class="card-header">
|
|
444
|
+
<div class="card-source">Hacker News</div>
|
|
445
|
+
|
|
446
|
+
<a class="card-title" href="https://news.ycombinator.com/item?id=42900555" target="_blank" rel="noopener">Seed funding landscape Q3 2026: AI rounds are closing faster but valuations are flattening</a>
|
|
447
|
+
<div class="card-meta">pitchbook.com</div>
|
|
448
|
+
|
|
449
|
+
</div>
|
|
450
|
+
<div class="card-body">
|
|
451
|
+
|
|
452
|
+
<p class="hn-subhead">Analysis of 120 seed rounds shows AI startups are raising 2-3x faster than last year, but median valuations have plateaued as investors demand more proof of revenue. The median time-to-close dropped from 8 weeks to 3 weeks.</p>
|
|
453
|
+
<div class="hn-stats">
|
|
454
|
+
<span class="hn-stat">▲ <strong>256</strong> points</span>
|
|
455
|
+
<span class="hn-stat">💬 <strong>98</strong> comments</span>
|
|
456
|
+
<a class="hn-discussion" href="https://news.ycombinator.com/item?id=42900555" target="_blank" rel="noopener">view discussion →</a>
|
|
457
|
+
</div>
|
|
458
|
+
<div class="hn-tags">
|
|
459
|
+
|
|
460
|
+
<span class="hn-tag">fundraising</span>
|
|
461
|
+
|
|
462
|
+
<span class="hn-tag">seed</span>
|
|
463
|
+
|
|
464
|
+
<span class="hn-tag">valuation</span>
|
|
465
|
+
|
|
466
|
+
</div>
|
|
467
|
+
|
|
468
|
+
</div>
|
|
469
|
+
<div class="card-footer">Relevant to your investor update with Jake — sets context for what investors are seeing across the market right now.</div>
|
|
470
|
+
</article>
|
|
471
|
+
|
|
472
|
+
|
|
473
|
+
<article class="card x">
|
|
474
|
+
<div class="card-header">
|
|
475
|
+
<div class="card-source">X</div>
|
|
476
|
+
|
|
477
|
+
<div class="card-title">Lena Park <span class="x-handle-h">lenapark</span></div>
|
|
478
|
+
<div class="card-meta">14h ago</div>
|
|
479
|
+
|
|
480
|
+
</div>
|
|
481
|
+
<div class="card-body">
|
|
482
|
+
|
|
483
|
+
<div class="x-text">hot take: the "eval harness" conversation is the most important infra convo in AI right now.
|
|
484
|
+
|
|
485
|
+
if you can't define what "good enough" means, you can't ship reliably, and if you can't ship reliably, enterprise won't buy.
|
|
486
|
+
|
|
487
|
+
it's not a QA problem, it's a go-to-market problem.</div>
|
|
488
|
+
<div class="x-stats">
|
|
489
|
+
<div class="x-stat">💬 <strong>156</strong> replies</div>
|
|
490
|
+
<div class="x-stat">🔁 <strong>847</strong> reposts</div>
|
|
491
|
+
<div class="x-stat">❤️ <strong>3.4K</strong> likes</div>
|
|
492
|
+
<div class="x-stat">📊 <strong>54K</strong> views</div>
|
|
493
|
+
</div>
|
|
494
|
+
|
|
495
|
+
</div>
|
|
496
|
+
<div class="card-footer">Directly relevant to the eval harness ownership decision you're discussing with Priya today.</div>
|
|
497
|
+
</article>
|
|
498
|
+
|
|
499
|
+
</div>
|
|
500
|
+
</main>
|
|
501
|
+
|
|
502
|
+
</body>
|
|
503
|
+
</html>
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
font-size: 15px;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
tv-icon {
|
|
27
27
|
position: relative;
|
|
28
28
|
top: 1px;
|
|
29
29
|
color: var(--color-text-muted);
|
|
@@ -181,9 +181,9 @@
|
|
|
181
181
|
|
|
182
182
|
<p class="lede">Television is the missing GUI for your personal agent, created by the team at Telepath. We’re glad you’re here.</p>
|
|
183
183
|
|
|
184
|
-
<p>This card is an <
|
|
184
|
+
<p>This card is an <tv-icon name="subtract-square" weight="duotone"></tv-icon> <strong>Artifact</strong>: a live surface your agent can create, edit, and update. Artifacts can be notes, editable documents, dashboards, web pages, reports, or custom web apps.</p>
|
|
185
185
|
|
|
186
|
-
<p>Artifacts live on <
|
|
186
|
+
<p>Artifacts live on <tv-icon name="squares-four" weight="duotone"></tv-icon> <strong>Screens</strong>. We put you on <strong>TV Guide</strong> to start. Double-click its name to rename it, use <tv-icon name="plus" weight="bold"></tv-icon> to add more screens, and drag artifacts to arrange them. Your open screens appear as tabs up the top. If you close one, you can find it again by clicking <tv-icon name="squares-four" weight="bold"></tv-icon>.</p>
|
|
187
187
|
|
|
188
188
|
<p>To create or change an artifact, just describe what you want to see. Try asking your agent…</p>
|
|
189
189
|
|
|
@@ -196,8 +196,8 @@
|
|
|
196
196
|
<p>Your agent will usually know when to answer by creating an artifact. If it replies in chat instead, just say: “put that on my TV.”</p>
|
|
197
197
|
|
|
198
198
|
<section class="callout">
|
|
199
|
-
<h2><svg class="callout-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="currentColor" aria-hidden="true"><
|
|
200
|
-
<p>
|
|
199
|
+
<h2><svg class="callout-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="currentColor" aria-hidden="true"><path d="M208,104a79.86,79.86,0,0,1-30.59,62.92A24.29,24.29,0,0,0,168,186v6a8,8,0,0,1-8,8H96a8,8,0,0,1-8-8v-6a24.11,24.11,0,0,0-9.3-19A79.87,79.87,0,0,1,48,104.45C47.76,61.09,82.72,25,126.07,24A80,80,0,0,1,208,104Z" opacity="0.2"/><path d="M176,232a8,8,0,0,1-8,8H88a8,8,0,0,1,0-16h80A8,8,0,0,1,176,232Zm40-128a87.55,87.55,0,0,1-33.64,69.21A16.24,16.24,0,0,0,176,186v6a16,16,0,0,1-16,16H96a16,16,0,0,1-16-16v-6a16,16,0,0,0-6.23-12.66A87.59,87.59,0,0,1,40,104.49C39.74,56.83,78.26,17.14,125.88,16A88,88,0,0,1,216,104Zm-16,0a72,72,0,0,0-73.74-72c-39,.92-70.47,33.39-70.26,72.39a71.65,71.65,0,0,0,27.64,56.3A32,32,0,0,1,96,186v6h64v-6a32.15,32.15,0,0,1,12.47-25.35A71.65,71.65,0,0,0,200,104Zm-16.11-9.34a57.6,57.6,0,0,0-46.56-46.55,8,8,0,0,0-2.66,15.78c16.57,2.79,30.63,16.85,33.44,33.45A8,8,0,0,0,176,104a9,9,0,0,0,1.35-.11A8,8,0,0,0,183.89,94.66Z"/></svg>More examples</h2>
|
|
200
|
+
<p>See the screens above for other examples of how to use Television. (You can close or delete these screens whenever you like; they're just there to give you ideas!)</p>
|
|
201
201
|
</section>
|
|
202
202
|
</body>
|
|
203
203
|
</html>
|
|
@@ -45,6 +45,10 @@ That relationship matters:
|
|
|
45
45
|
- deleting an artifact removes its registry record and its card from the screen
|
|
46
46
|
- moving the same underlying path or URL to another screen means deleting the old artifact and creating a new artifact with the same path or URL on the target screen
|
|
47
47
|
|
|
48
|
+
### Onboarding screens
|
|
49
|
+
|
|
50
|
+
Fresh installations receive a small set of bundled onboarding screens, each installed exactly once per storage directory. After installation they are ordinary screens: rename, edit, or delete them like any other, and Television never re-creates or overwrites what changed. You can tell one apart from a user-created screen by the `onboarding` marker (slug and install order) persisted in its screen metadata — visible in `tv list-screens` / `tv get-screen` output; user-created screens have no such field. The marker changes nothing about how you manage the screen.
|
|
51
|
+
|
|
48
52
|
### Artifact shapes
|
|
49
53
|
|
|
50
54
|
Television artifacts point to one of three shapes:
|
|
@@ -494,6 +498,29 @@ blockquotes, rules, images, and tables have readable defaults. Add local CSS for
|
|
|
494
498
|
artifact-specific layout, density, hierarchy, or specialized presentations; do
|
|
495
499
|
not recreate baseline prose styling in every artifact.
|
|
496
500
|
|
|
501
|
+
## Page header
|
|
502
|
+
|
|
503
|
+
A page header is optional — the Television card already names the artifact in
|
|
504
|
+
its title bar, so don't add one just to repeat that. Add one when the document
|
|
505
|
+
benefits from its own masthead: a title that differs from or says more than
|
|
506
|
+
the card name, or a subtitle line carrying context like a date, a person, or
|
|
507
|
+
a status.
|
|
508
|
+
|
|
509
|
+
When you do, use the house header idiom — a `<header>` holding an `<h1>` and
|
|
510
|
+
optionally one `<p>` subtitle:
|
|
511
|
+
|
|
512
|
+
```html
|
|
513
|
+
<header>
|
|
514
|
+
<h1>Quarterly plan</h1>
|
|
515
|
+
<p>Friday, June 26</p>
|
|
516
|
+
</header>
|
|
517
|
+
```
|
|
518
|
+
|
|
519
|
+
A `<p>` inside any `<header>` renders as a subtitle — slightly smaller than
|
|
520
|
+
body prose, at body weight, hugging its heading; proximity and the heading
|
|
521
|
+
above do the differentiating. The idiom is house language: use it as-is,
|
|
522
|
+
don't restyle it per artifact.
|
|
523
|
+
|
|
497
524
|
For prose-like documents, consider giving the content enough room above the bottom title bar. A reasonable starting point is 32px padding on the top and sides, with 64px at the bottom; adjust based on the content and layout:
|
|
498
525
|
|
|
499
526
|
```css
|
|
@@ -569,6 +596,23 @@ checkbox-item::part(box) {
|
|
|
569
596
|
}
|
|
570
597
|
```
|
|
571
598
|
|
|
599
|
+
### Icons
|
|
600
|
+
|
|
601
|
+
`<tv-icon name="…" size="16|24|32">` renders a glyph from the canonical
|
|
602
|
+
catalog. The catalog is small and closed — these are the only valid names:
|
|
603
|
+
|
|
604
|
+
- `calendar-blank`
|
|
605
|
+
- `hash`
|
|
606
|
+
- `plus`
|
|
607
|
+
- `squares-four`
|
|
608
|
+
- `subtract-square`
|
|
609
|
+
- `television`
|
|
610
|
+
|
|
611
|
+
Do not invent other names (an unknown name silently renders the
|
|
612
|
+
`subtract-square` fallback, which looks like a broken glyph). If no glyph
|
|
613
|
+
fits, use text without an icon; if a glyph is genuinely needed and none
|
|
614
|
+
fits, use an emoji instead of `<tv-icon>`.
|
|
615
|
+
|
|
572
616
|
## Viewport
|
|
573
617
|
|
|
574
618
|
Artifacts render inside a resizable Television card, not a full browser page.
|