@parley-im/parley 0.2.8 → 0.2.9
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/package.json +1 -1
- package/web/app.css +28 -30
- package/web/chat.html +1 -1
- package/web/chat.js +1 -1
- package/web/ended.html +1 -1
- package/web/home.js +1 -1
- package/web/icon-180.png +0 -0
- package/web/icon.png +0 -0
- package/web/icon.svg +1 -1
- package/web/missing.html +1 -1
- package/web/panel.html +1 -1
package/package.json
CHANGED
package/web/app.css
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/* parley: one stylesheet for the guest chat, your session view, your
|
|
2
|
-
control panel and parley's site.
|
|
3
|
-
|
|
2
|
+
control panel and parley's site. Dark, with lilac for the accents, for the
|
|
3
|
+
people who use Claude Code and Codex: Instrument Sans for everything
|
|
4
4
|
people read, JetBrains Mono for the wordmark, labels, files and numbers.
|
|
5
|
-
The agent's words are marked with a dot, as in Claude Code, and
|
|
6
|
-
|
|
5
|
+
The agent's words are marked with a dot, as in Claude Code, and three
|
|
6
|
+
dots pulse while it writes. The fonts are served from here, never from a
|
|
7
7
|
font service, so guest pages only ever talk to parley. */
|
|
8
8
|
|
|
9
9
|
@font-face { font-family: "Instrument Sans"; src: url("/static/fonts/instrument-sans.woff2") format("woff2"); font-weight: 400 700; font-style: normal; font-display: swap; }
|
|
@@ -11,25 +11,25 @@
|
|
|
11
11
|
@font-face { font-family: "JetBrains Mono"; src: url("/static/fonts/jetbrains-mono.woff2") format("woff2"); font-weight: 100 800; font-style: normal; font-display: swap; }
|
|
12
12
|
|
|
13
13
|
:root {
|
|
14
|
-
--bg: #
|
|
15
|
-
--panel: #
|
|
16
|
-
--subtle: #
|
|
17
|
-
--hover: #
|
|
18
|
-
--line: #
|
|
19
|
-
--line-strong: #
|
|
20
|
-
--text: #
|
|
21
|
-
--muted: #
|
|
22
|
-
--faint: #
|
|
23
|
-
--accent: #
|
|
24
|
-
--accent-fill: #
|
|
25
|
-
--accent-soft: #
|
|
26
|
-
--accent-ink: #
|
|
27
|
-
--tile: #
|
|
28
|
-
--guest: #
|
|
29
|
-
--guest-ink: #
|
|
30
|
-
--ok: #
|
|
31
|
-
--warn: #
|
|
32
|
-
--danger: #
|
|
14
|
+
--bg: #0c0c0d;
|
|
15
|
+
--panel: #131315;
|
|
16
|
+
--subtle: #19191c;
|
|
17
|
+
--hover: #212125;
|
|
18
|
+
--line: #26262b;
|
|
19
|
+
--line-strong: #36363c;
|
|
20
|
+
--text: #ececef;
|
|
21
|
+
--muted: #9b9ba4;
|
|
22
|
+
--faint: #66666f;
|
|
23
|
+
--accent: #9d92ff; /* lilac */
|
|
24
|
+
--accent-fill: #9d92ff; /* buttons, with dark text */
|
|
25
|
+
--accent-soft: #221f3d;
|
|
26
|
+
--accent-ink: #0c0c0d;
|
|
27
|
+
--tile: #9d92ff; /* the mark's tile */
|
|
28
|
+
--guest: #221f3d; /* your own messages */
|
|
29
|
+
--guest-ink: #e6e2ff;
|
|
30
|
+
--ok: #3ccf7a;
|
|
31
|
+
--warn: #e3a948;
|
|
32
|
+
--danger: #ff6b63;
|
|
33
33
|
--shadow: 0 1px 2px rgba(0, 0, 0, 0.4), 0 12px 32px -16px rgba(0, 0, 0, 0.8);
|
|
34
34
|
--sans: "Instrument Sans", ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
35
35
|
--display: var(--sans);
|
|
@@ -61,7 +61,7 @@ code, kbd, pre { font-family: var(--mono); }
|
|
|
61
61
|
.mark { display: inline-block; width: 24px; height: 24px; flex: none; }
|
|
62
62
|
.mark svg { display: block; width: 100%; height: 100%; }
|
|
63
63
|
.mark .tile { fill: var(--tile); }
|
|
64
|
-
.mark .glyph { fill:
|
|
64
|
+
.mark .glyph { fill: var(--accent-ink); }
|
|
65
65
|
.wordmark { font-family: var(--mono); font-weight: 700; letter-spacing: -0.04em; }
|
|
66
66
|
|
|
67
67
|
.topbar {
|
|
@@ -222,14 +222,12 @@ body:has(> .app) { overflow: hidden; overscroll-behavior: none; }
|
|
|
222
222
|
.body th { background: var(--subtle); font-weight: 600; white-space: nowrap; }
|
|
223
223
|
.body tr:last-child td { border-bottom: 0; }
|
|
224
224
|
|
|
225
|
-
/* Writing:
|
|
226
|
-
.thinking { display: inline-flex; align-items: center; gap:
|
|
227
|
-
.thinking span { width: 7px; height: 7px; border-radius:
|
|
228
|
-
.thinking span:nth-child(2), .thinking span:nth-child(3) { width: 17px; }
|
|
225
|
+
/* Writing: three dots, pulsing in turn. */
|
|
226
|
+
.thinking { display: inline-flex; align-items: center; gap: 5px; height: 26px; }
|
|
227
|
+
.thinking span { width: 7px; height: 7px; border-radius: 50%; background: var(--accent); opacity: 0.3; animation: pulse-dot 1.2s ease-in-out infinite; }
|
|
229
228
|
.thinking span:nth-child(2) { animation-delay: 0.16s; }
|
|
230
229
|
.thinking span:nth-child(3) { animation-delay: 0.32s; }
|
|
231
|
-
|
|
232
|
-
@keyframes morse { 0%, 70%, 100% { opacity: 0.25; } 30% { opacity: 1; } }
|
|
230
|
+
@keyframes pulse-dot { 0%, 70%, 100% { opacity: 0.3; transform: none; } 30% { opacity: 1; transform: translateY(-2px); } }
|
|
233
231
|
@keyframes blink { 0%, 49% { opacity: 1; } 50%, 100% { opacity: 0; } }
|
|
234
232
|
.cursor::after { content: ""; display: inline-block; width: 7px; height: 1.05em; background: var(--accent); border-radius: 1px; margin-left: 3px; vertical-align: -3px; animation: blink 1.06s steps(1) infinite; }
|
|
235
233
|
@media (prefers-reduced-motion: reduce) { .thinking span, .cursor::after, .dot.busy { animation: none; } .thinking span { opacity: 0.7; } }
|
package/web/chat.html
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content">
|
|
6
6
|
<meta name="robots" content="noindex, nofollow">
|
|
7
7
|
<meta name="referrer" content="no-referrer">
|
|
8
|
-
<meta name="theme-color" content="#
|
|
8
|
+
<meta name="theme-color" content="#0c0c0d">
|
|
9
9
|
<meta property="og:title" content="{{PREVIEW_TITLE}}">
|
|
10
10
|
<meta property="og:description" content="{{PREVIEW_TEXT}}">
|
|
11
11
|
<meta property="og:site_name" content="parley">
|
package/web/chat.js
CHANGED
|
@@ -222,7 +222,7 @@
|
|
|
222
222
|
if (live.text.trim()) {
|
|
223
223
|
live.bodyEl.innerHTML = window.renderMarkdown(live.text);
|
|
224
224
|
live.bodyEl.lastElementChild?.classList.add("cursor");
|
|
225
|
-
} else live.bodyEl.innerHTML = `<span class="thinking" role="img" aria-label="Writing"><span></span><span></span><span></span
|
|
225
|
+
} else live.bodyEl.innerHTML = `<span class="thinking" role="img" aria-label="Writing"><span></span><span></span><span></span></span>`;
|
|
226
226
|
// The last few things it looked at, newest highlighted.
|
|
227
227
|
live.stepsEl.textContent = "";
|
|
228
228
|
live.steps.slice(-4).forEach((line, i, shown) => live.stepsEl.append(el("li", { className: i === shown.length - 1 ? "now" : "", textContent: line })));
|
package/web/ended.html
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="utf-8">
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
-
<meta name="theme-color" content="#
|
|
6
|
+
<meta name="theme-color" content="#0c0c0d">
|
|
7
7
|
<meta name="robots" content="noindex, nofollow">
|
|
8
8
|
<title>This parley has ended</title>
|
|
9
9
|
<link rel="icon" href="/static/icon.svg?v=5" type="image/svg+xml">
|
package/web/home.js
CHANGED
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
// Working: the agent looks something up in the project, then writes.
|
|
56
56
|
const node = el("li", "msg agent");
|
|
57
57
|
const body = el("div", "body");
|
|
58
|
-
body.innerHTML = `<span class="thinking" role="img" aria-label="Writing"><span></span><span></span><span></span
|
|
58
|
+
body.innerHTML = `<span class="thinking" role="img" aria-label="Writing"><span></span><span></span><span></span></span>`;
|
|
59
59
|
const steps = el("ul", "steps");
|
|
60
60
|
node.append(body, steps);
|
|
61
61
|
list.append(node);
|
package/web/icon-180.png
CHANGED
|
Binary file
|
package/web/icon.png
CHANGED
|
Binary file
|
package/web/icon.svg
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64"><rect width="64" height="64" rx="14" fill="#
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64"><rect width="64" height="64" rx="14" fill="#9D92FF"/><rect x="19.5" y="16" width="7" height="32" rx="1.5" fill="#0C0C0D"/><path fill="#0C0C0D" fill-rule="evenodd" d="M44.5 25.5A10 10 0 1 1 24.5 25.5A10 10 0 1 1 44.5 25.5ZM38.5 25.5A4 4 0 1 0 30.5 25.5A4 4 0 1 0 38.5 25.5Z"/></svg>
|
package/web/missing.html
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="utf-8">
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
-
<meta name="theme-color" content="#
|
|
6
|
+
<meta name="theme-color" content="#0c0c0d">
|
|
7
7
|
<meta name="robots" content="noindex, nofollow">
|
|
8
8
|
<title>Link not found</title>
|
|
9
9
|
<link rel="icon" href="/static/icon.svg?v=5" type="image/svg+xml">
|
package/web/panel.html
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="utf-8">
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
-
<meta name="theme-color" content="#
|
|
6
|
+
<meta name="theme-color" content="#0c0c0d">
|
|
7
7
|
<title>Control panel · parley</title>
|
|
8
8
|
<link rel="icon" href="/static/icon.svg?v=5" type="image/svg+xml">
|
|
9
9
|
<link rel="stylesheet" href="/static/app.css">
|