@agentdeck/shared 0.2.0 → 0.2.3

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 (99) hide show
  1. package/dist/adapter.d.ts +3 -1
  2. package/dist/adapter.d.ts.map +1 -1
  3. package/dist/adapter.js +24 -0
  4. package/dist/adapter.js.map +1 -1
  5. package/dist/command-builders.d.ts +7 -2
  6. package/dist/command-builders.d.ts.map +1 -1
  7. package/dist/command-builders.js +17 -2
  8. package/dist/command-builders.js.map +1 -1
  9. package/dist/connection-status.d.ts +42 -0
  10. package/dist/connection-status.d.ts.map +1 -0
  11. package/dist/connection-status.js +52 -0
  12. package/dist/connection-status.js.map +1 -0
  13. package/dist/d200h-layout.d.ts +131 -0
  14. package/dist/d200h-layout.d.ts.map +1 -0
  15. package/dist/d200h-layout.js +627 -0
  16. package/dist/d200h-layout.js.map +1 -0
  17. package/dist/design-tokens.d.ts +259 -0
  18. package/dist/design-tokens.d.ts.map +1 -0
  19. package/dist/design-tokens.js +156 -0
  20. package/dist/design-tokens.js.map +1 -0
  21. package/dist/eval-schema.d.ts +26 -2
  22. package/dist/eval-schema.d.ts.map +1 -1
  23. package/dist/eval-schema.js.map +1 -1
  24. package/dist/format-utils.d.ts +25 -0
  25. package/dist/format-utils.d.ts.map +1 -1
  26. package/dist/format-utils.js +45 -0
  27. package/dist/format-utils.js.map +1 -1
  28. package/dist/gateway-protocol.d.ts +1 -1
  29. package/dist/gateway-protocol.js +1 -1
  30. package/dist/index.d.ts +8 -0
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +8 -0
  33. package/dist/index.js.map +1 -1
  34. package/dist/llm-settings.d.ts +3 -3
  35. package/dist/llm-settings.d.ts.map +1 -1
  36. package/dist/llm-settings.js +3 -3
  37. package/dist/llm-settings.js.map +1 -1
  38. package/dist/net-utils.d.ts +2 -1
  39. package/dist/net-utils.d.ts.map +1 -1
  40. package/dist/net-utils.js +100 -3
  41. package/dist/net-utils.js.map +1 -1
  42. package/dist/pricing.d.ts +45 -0
  43. package/dist/pricing.d.ts.map +1 -0
  44. package/dist/pricing.js +93 -0
  45. package/dist/pricing.js.map +1 -0
  46. package/dist/protocol.d.ts +175 -5
  47. package/dist/protocol.d.ts.map +1 -1
  48. package/dist/protocol.js +11 -1
  49. package/dist/protocol.js.map +1 -1
  50. package/dist/sample.d.ts +152 -0
  51. package/dist/sample.d.ts.map +1 -0
  52. package/dist/sample.js +22 -0
  53. package/dist/sample.js.map +1 -0
  54. package/dist/session-utils.d.ts +82 -2
  55. package/dist/session-utils.d.ts.map +1 -1
  56. package/dist/session-utils.js +205 -10
  57. package/dist/session-utils.js.map +1 -1
  58. package/dist/state-colors.d.ts.map +1 -1
  59. package/dist/state-colors.js +2 -0
  60. package/dist/state-colors.js.map +1 -1
  61. package/dist/states.d.ts +1 -0
  62. package/dist/states.d.ts.map +1 -1
  63. package/dist/states.js +6 -1
  64. package/dist/states.js.map +1 -1
  65. package/dist/svg-renderers/agent-logos.d.ts +17 -5
  66. package/dist/svg-renderers/agent-logos.d.ts.map +1 -1
  67. package/dist/svg-renderers/agent-logos.js +177 -39
  68. package/dist/svg-renderers/agent-logos.js.map +1 -1
  69. package/dist/svg-renderers/session-slot-renderer.d.ts +59 -6
  70. package/dist/svg-renderers/session-slot-renderer.d.ts.map +1 -1
  71. package/dist/svg-renderers/session-slot-renderer.js +398 -209
  72. package/dist/svg-renderers/session-slot-renderer.js.map +1 -1
  73. package/dist/svg-renderers/text-utils.d.ts +14 -0
  74. package/dist/svg-renderers/text-utils.d.ts.map +1 -1
  75. package/dist/svg-renderers/text-utils.js +34 -0
  76. package/dist/svg-renderers/text-utils.js.map +1 -1
  77. package/dist/telemetry-envelope.d.ts +1 -1
  78. package/dist/telemetry-envelope.d.ts.map +1 -1
  79. package/dist/timeline-icons.d.ts +70 -0
  80. package/dist/timeline-icons.d.ts.map +1 -0
  81. package/dist/timeline-icons.js +161 -0
  82. package/dist/timeline-icons.js.map +1 -0
  83. package/dist/timeline-label.d.ts +38 -0
  84. package/dist/timeline-label.d.ts.map +1 -0
  85. package/dist/timeline-label.js +95 -0
  86. package/dist/timeline-label.js.map +1 -0
  87. package/dist/timeline-markdown.d.ts +80 -0
  88. package/dist/timeline-markdown.d.ts.map +1 -0
  89. package/dist/timeline-markdown.js +221 -0
  90. package/dist/timeline-markdown.js.map +1 -0
  91. package/dist/timeline-summarizer.d.ts +24 -0
  92. package/dist/timeline-summarizer.d.ts.map +1 -1
  93. package/dist/timeline-summarizer.js +55 -13
  94. package/dist/timeline-summarizer.js.map +1 -1
  95. package/dist/timeline.d.ts +72 -2
  96. package/dist/timeline.d.ts.map +1 -1
  97. package/dist/timeline.js +187 -10
  98. package/dist/timeline.js.map +1 -1
  99. package/package.json +1 -1
@@ -1,12 +1,20 @@
1
1
  /**
2
- * Agent logo SVG paths for icon and watermark rendering on session buttons.
2
+ * Agent creature SVG fragments for session buttons.
3
3
  *
4
- * Each logo is a centered path designed for a 144x144 button canvas.
5
- * Two rendering modes:
6
- * agentLogoIcon() — prominent icon at top of button (primary identification)
7
- * agentLogoWatermark() — low-opacity background mark
4
+ * The exported names are kept for plugin compatibility, but the rendered
5
+ * marks are the same AgentDeck creature language used by the terrarium:
6
+ * Claude = robot, Codex = cloud prompt, OpenClaw = crayfish, OpenCode =
7
+ * nested-square floater, Antigravity = peak/arc mark.
8
8
  */
9
9
  import { dimColor, agentBrandColor } from '../state-colors.js';
10
+ // Claude Code creature = the rusty robot (design/brand/claudecode.svg): blocky
11
+ // head with two eye holes. Exported so 1-bit surfaces (TRMNL e-ink) render the
12
+ // canonical mark rather than a drifted approximation.
13
+ export const ROBOT_CREATURE_PATH = 'M20.998 10.949H24v3.102h-3v3.028h-1.487V20H18v-2.921h-1.487V20H15v-2.921H9V20H7.488v-2.921H6V20H4.487v-2.921H3V14.05H0v-3.1h3V5h17.998v5.949zM6 10.949h1.488V8.102H6v2.847zm10.51 0H18V8.102h-1.49v2.847z';
14
+ /** OpenCode mark (design/brand/opencode.svg): hollow nested-square ring. */
15
+ export const OPENCODE_RING_PATH = 'M16 6H8v12h8V6zm4 16H4V2h16v20z';
16
+ /** Antigravity mark (design/brand/antigravity.svg): peak/arc. */
17
+ export const ANTIGRAVITY_PATH = 'M21.751 22.607c1.34 1.005 3.35.335 1.508-1.508C17.73 15.74 18.904 1 12.037 1 5.17 1 6.342 15.74.815 21.1c-2.01 2.009.167 2.511 1.507 1.506 5.192-3.517 4.857-9.714 9.715-9.714 4.857 0 4.522 6.197 9.714 9.715z';
10
18
  /** Claude Code creature asset: assets/logos/claude.svg. viewBox 0 0 24 24. */
11
19
  export const CLAUDE_LOGO_PATH = 'M4.709 15.955l4.72-2.647.08-.23-.08-.128H9.2l-.79-.048-2.698-.073-2.339-.097-2.266-.122-.571-.121L0 11.784l.055-.352.48-.321.686.06 1.52.103 2.278.158 1.652.097 2.449.255h.389l.055-.157-.134-.098-.103-.097-2.358-1.596-2.552-1.688-1.336-.972-.724-.491-.364-.462-.158-1.008.656-.722.881.06.225.061.893.686 1.908 1.476 2.491 1.833.365.304.145-.103.019-.073-.164-.274-1.355-2.446-1.446-2.49-.644-1.032-.17-.619a2.97 2.97 0 01-.104-.729L6.283.134 6.696 0l.996.134.42.364.62 1.414 1.002 2.229 1.555 3.03.456.898.243.832.091.255h.158V9.01l.128-1.706.237-2.095.23-2.695.08-.76.376-.91.747-.492.584.28.48.685-.067.444-.286 1.851-.559 2.903-.364 1.942h.212l.243-.242.985-1.306 1.652-2.064.73-.82.85-.904.547-.431h1.033l.76 1.129-.34 1.166-1.064 1.347-.881 1.142-1.264 1.7-.79 1.36.073.11.188-.02 2.856-.606 1.543-.28 1.841-.315.833.388.091.395-.328.807-1.969.486-2.309.462-3.439.813-.042.03.049.061 1.549.146.662.036h1.622l3.02.225.79.522.474.638-.079.485-1.215.62-1.64-.389-3.829-.91-1.312-.329h-.182v.11l1.093 1.068 2.006 1.81 2.509 2.33.127.578-.322.455-.34-.049-2.205-1.657-.851-.747-1.926-1.62h-.128v.17l.444.649 2.345 3.521.122 1.08-.17.353-.608.213-.668-.122-1.374-1.925-1.415-2.167-1.143-1.943-.14.08-.674 7.254-.316.37-.729.28-.607-.461-.322-.747.322-1.476.389-1.924.315-1.53.286-1.9.17-.632-.012-.042-.14.018-1.434 1.967-2.18 2.945-1.726 1.845-.414.164-.717-.37.067-.662.401-.589 2.388-3.036 1.44-1.882.93-1.086-.006-.158h-.055L4.132 18.56l-1.13.146-.487-.456.061-.746.231-.243 1.908-1.312-.006.006z';
12
20
  /** Legacy OpenClaw paths kept for the Gateway preset mini-browser icon. */
@@ -23,18 +31,163 @@ export const OPENCLAW_LOGO_PATHS = [
23
31
  'M.395 13.118c-.966-1.932-.163-3.863 2.41-3.365v-.001l.05.01c.084.018.17.038.26.06.033.009.067.017.1.027.084.022.168.048.255.076l.09.027c.528 0 .95.158 1.16.501.212.343.212.87-.105 1.61-.085.17-.178.333-.276.489l-.01.017a4.967 4.967 0 01-.62.791l-.019.02c-1.092 1.117-2.496 1.336-3.295-.262z',
24
32
  'M21.193 9.753c2.574-.5 3.378 1.433 2.411 3.365-.58 1.159-1.476 1.361-2.342.96l-.011-.005a2.419 2.419 0 01-.114-.056l-.019-.01a2.751 2.751 0 01-.115-.067l-.023-.014c-.035-.022-.071-.044-.106-.068l-.05-.035c-.55-.388-1.062-1.007-1.44-1.76-.276-.647-.311-1.132-.174-1.472.176-.439.636-.639 1.23-.639.032-.011.066-.02.099-.03.08-.026.16-.05.238-.072l.117-.03a5.502 5.502 0 01.3-.067z',
25
33
  ];
34
+ const OPENCLAW_BODY_PATHS = OPENCLAW_LOGO_PATHS.slice(2);
26
35
  function officialPathIcon(path, fill, size, opacity, cx, cy) {
27
36
  const s = size / 24;
28
37
  return `<g transform="translate(${cx},${cy}) scale(${s.toFixed(3)}) translate(-12,-12)" opacity="${opacity}"><path d="${path}" fill="${fill}" fill-rule="evenodd" clip-rule="evenodd"/></g>`;
29
38
  }
30
- function officialMultiPathIcon(paths, fill, size, opacity, cx, cy) {
39
+ function gradientPathIcon(path, size, opacity, cx, cy) {
31
40
  const s = size / 24;
41
+ const idSuffix = `${Math.round(size)}-${Math.round(cx * 10)}-${Math.round(cy * 10)}`.replace(/-/g, '_');
42
+ const gradId = `antigravity_rainbow_${idSuffix}`;
43
+ const warmId = `antigravity_warm_${idSuffix}`;
44
+ const greenId = `antigravity_green_${idSuffix}`;
45
+ const purpleId = `antigravity_purple_${idSuffix}`;
32
46
  return [
33
- `<g transform="translate(${cx},${cy}) scale(${s.toFixed(3)}) translate(-12,-12)" opacity="${opacity}" fill="${fill}" fill-rule="evenodd" clip-rule="evenodd">`,
34
- ...paths.map((p) => `<path d="${p}"/>`),
47
+ `<g transform="translate(${cx},${cy}) scale(${s.toFixed(3)}) translate(-12,-12)" opacity="${opacity}">`,
48
+ `<defs>`,
49
+ `<linearGradient id="${gradId}" x1="12" y1="1" x2="12" y2="23" gradientUnits="userSpaceOnUse">`,
50
+ `<stop offset="0%" stop-color="#FF8A18"/>`,
51
+ `<stop offset="24%" stop-color="#FF4F47"/>`,
52
+ `<stop offset="52%" stop-color="#28BDF3"/>`,
53
+ `<stop offset="100%" stop-color="#247CFF"/>`,
54
+ `</linearGradient>`,
55
+ `<radialGradient id="${warmId}" cx="9" cy="2" r="9" gradientUnits="userSpaceOnUse">`,
56
+ `<stop offset="0%" stop-color="#F3D233"/>`,
57
+ `<stop offset="58%" stop-color="#FF8A18" stop-opacity="0.74"/>`,
58
+ `<stop offset="100%" stop-color="#FF8A18" stop-opacity="0"/>`,
59
+ `</radialGradient>`,
60
+ `<radialGradient id="${greenId}" cx="4" cy="10" r="8" gradientUnits="userSpaceOnUse">`,
61
+ `<stop offset="0%" stop-color="#2FD66D"/>`,
62
+ `<stop offset="72%" stop-color="#2FD66D" stop-opacity="0.58"/>`,
63
+ `<stop offset="100%" stop-color="#2FD66D" stop-opacity="0"/>`,
64
+ `</radialGradient>`,
65
+ `<radialGradient id="${purpleId}" cx="20" cy="9" r="9" gradientUnits="userSpaceOnUse">`,
66
+ `<stop offset="0%" stop-color="#A85CC8"/>`,
67
+ `<stop offset="70%" stop-color="#A85CC8" stop-opacity="0.58"/>`,
68
+ `<stop offset="100%" stop-color="#A85CC8" stop-opacity="0"/>`,
69
+ `</radialGradient>`,
70
+ `</defs>`,
71
+ `<path d="${path}" fill="url(#${gradId})" fill-rule="evenodd" clip-rule="evenodd"/>`,
72
+ `<path d="${path}" fill="url(#${warmId})" fill-rule="evenodd" clip-rule="evenodd"/>`,
73
+ `<path d="${path}" fill="url(#${greenId})" fill-rule="evenodd" clip-rule="evenodd"/>`,
74
+ `<path d="${path}" fill="url(#${purpleId})" fill-rule="evenodd" clip-rule="evenodd"/>`,
35
75
  `</g>`,
36
76
  ].join('');
37
77
  }
78
+ function robotCreatureIcon(fill, size, opacity, cx, cy) {
79
+ return officialPathIcon(ROBOT_CREATURE_PATH, fill, size, opacity, cx, cy);
80
+ }
81
+ function codexCloudCreatureIcon(size, opacity, cx, cy) {
82
+ const body = size * 0.78;
83
+ const half = body / 2;
84
+ const idSuffix = `${Math.round(size)}-${Math.round(cx * 10)}-${Math.round(cy * 10)}`.replace(/-/g, '_');
85
+ const gradId = `codex_cloud_${idSuffix}`;
86
+ const glowId = `codex_cloud_glow_${idSuffix}`;
87
+ const lobes = [
88
+ [-0.14, -0.30, 0.30],
89
+ [0.16, -0.26, 0.28],
90
+ [0.32, -0.02, 0.28],
91
+ [0.14, 0.26, 0.28],
92
+ [-0.16, 0.26, 0.28],
93
+ [-0.32, -0.02, 0.28],
94
+ ];
95
+ const lobeEls = lobes.map(([dx, dy, r]) => {
96
+ const lcx = cx + dx * body;
97
+ const lcy = cy + dy * body;
98
+ const lr = r * body;
99
+ return `<circle cx="${lcx.toFixed(2)}" cy="${lcy.toFixed(2)}" r="${lr.toFixed(2)}" fill="url(#${gradId})"/>`;
100
+ }).join('');
101
+ const glowEls = lobes.map(([dx, dy, r]) => {
102
+ const lcx = cx + dx * body;
103
+ const lcy = cy + dy * body;
104
+ const lr = r * body * 1.06;
105
+ return `<circle cx="${lcx.toFixed(2)}" cy="${lcy.toFixed(2)}" r="${lr.toFixed(2)}" fill="#BFD7FF"/>`;
106
+ }).join('');
107
+ return [
108
+ `<g opacity="${opacity}">`,
109
+ `<defs>`,
110
+ `<linearGradient id="${gradId}" x1="${cx}" y1="${cy - half}" x2="${cx}" y2="${cy + half}" gradientUnits="userSpaceOnUse">`,
111
+ `<stop offset="0%" stop-color="#D9D3FF"/>`,
112
+ `<stop offset="48%" stop-color="#8BA4FF"/>`,
113
+ `<stop offset="100%" stop-color="#3941FF"/>`,
114
+ `</linearGradient>`,
115
+ `<filter id="${glowId}" x="-50%" y="-50%" width="200%" height="200%"><feGaussianBlur stdDeviation="${Math.max(1.4, size * 0.04).toFixed(1)}"/></filter>`,
116
+ `</defs>`,
117
+ `<g opacity="0.30" filter="url(#${glowId})">${glowEls}</g>`,
118
+ `<g>${lobeEls}</g>`,
119
+ `<path d="M${(cx - body * 0.17).toFixed(1)} ${(cy - body * 0.11).toFixed(1)} L${(cx + body * 0.05).toFixed(1)} ${cy.toFixed(1)} L${(cx - body * 0.17).toFixed(1)} ${(cy + body * 0.11).toFixed(1)}" fill="none" stroke="#FFFFFF" stroke-width="${Math.max(2, body * 0.075).toFixed(1)}" stroke-linecap="round" stroke-linejoin="round"/>`,
120
+ `<line x1="${(cx + body * 0.16).toFixed(1)}" y1="${(cy + body * 0.11).toFixed(1)}" x2="${(cx + body * 0.34).toFixed(1)}" y2="${(cy + body * 0.11).toFixed(1)}" stroke="#FFFFFF" stroke-width="${Math.max(2, body * 0.075).toFixed(1)}" stroke-linecap="round"/>`,
121
+ `</g>`,
122
+ ].join('');
123
+ }
124
+ function openClawCreatureIcon(size, opacity, cx, cy) {
125
+ const bodySize = size * 0.92;
126
+ const s = bodySize / 24;
127
+ const idSuffix = `${Math.round(size)}-${Math.round(cx * 10)}-${Math.round(cy * 10)}`.replace(/-/g, '_');
128
+ const gradId = `openclaw_shell_${idSuffix}`;
129
+ return [
130
+ `<g transform="translate(${cx},${cy}) scale(${s.toFixed(3)}) translate(-12,-12)" opacity="${opacity}">`,
131
+ `<defs>`,
132
+ `<linearGradient id="${gradId}" x1="0" y1="0" x2="24" y2="24" gradientUnits="userSpaceOnUse">`,
133
+ `<stop offset="0%" stop-color="#FF6B6B"/>`,
134
+ `<stop offset="100%" stop-color="#991B1B"/>`,
135
+ `</linearGradient>`,
136
+ `</defs>`,
137
+ `<g fill="url(#${gradId})" fill-rule="evenodd" clip-rule="evenodd">`,
138
+ ...OPENCLAW_BODY_PATHS.map((p) => `<path d="${p}"/>`),
139
+ `</g>`,
140
+ `<circle cx="8.835" cy="7.843" r="1.266" fill="#050810"/>`,
141
+ `<circle cx="15.165" cy="7.843" r="1.266" fill="#050810"/>`,
142
+ `<circle cx="9.046" cy="7.632" r="0.527" fill="#00E5CC" opacity="0.9"/>`,
143
+ `<circle cx="15.376" cy="7.632" r="0.527" fill="#00E5CC" opacity="0.9"/>`,
144
+ `</g>`,
145
+ ].join('');
146
+ }
147
+ function openCodeCreatureIcon(size, opacity, cx, cy) {
148
+ // Canonical opencode mark (opencode.svg, viewBox 24, evenodd): a single-color vertical
149
+ // rectangular RING with a HOLLOW center — not filled nested squares. Map so the mark
150
+ // (16×20) sits centered on (cx,cy) at ~0.6×size tall.
151
+ const s = (size * 0.72) / 24;
152
+ const tx = cx - 12 * s;
153
+ const ty = cy - 12 * s;
154
+ return [
155
+ `<g opacity="${opacity}" transform="translate(${tx.toFixed(2)} ${ty.toFixed(2)}) scale(${s.toFixed(4)})">`,
156
+ `<path d="M16 6H8v12h8V6zm4 16H4V2h16v20z" fill-rule="evenodd" fill="#F1ECEC"/>`,
157
+ `</g>`,
158
+ ].join('');
159
+ }
160
+ function antigravityCreatureIcon(size, opacity, cx, cy) {
161
+ return gradientPathIcon(ANTIGRAVITY_PATH, size * 0.76, opacity, cx, cy);
162
+ }
163
+ const AGENT_MONO_GLYPH = {
164
+ 'claude-code': { paths: [ROBOT_CREATURE_PATH] },
165
+ 'codex-cli': { paths: [CODEX_LOGO_PATH] },
166
+ 'codex-app': { paths: [CODEX_LOGO_PATH] },
167
+ codex: { paths: [CODEX_LOGO_PATH] },
168
+ opencode: { paths: [OPENCODE_RING_PATH] },
169
+ antigravity: { paths: [ANTIGRAVITY_PATH] },
170
+ openclaw: { paths: OPENCLAW_BODY_PATHS, eyes: [[8.835, 7.843, 1.05], [15.165, 7.843, 1.05]] },
171
+ };
172
+ /**
173
+ * Render the agent's canonical brand mark as a 1-bit glyph: the path(s) filled
174
+ * with `ink` (evenodd so in-path holes — robot eyes, opencode ring, codex prompt —
175
+ * read as paper), plus any separate `paper` eye cutouts. 24-unit viewBox scaled to
176
+ * `size`, centered on (cx,cy). Used by the TRMNL e-ink layout; mirrored in Swift.
177
+ */
178
+ export function agentGlyphMono(agent, cx, cy, size, ink, paper) {
179
+ const g = AGENT_MONO_GLYPH[(agent || '').toLowerCase()] ?? AGENT_MONO_GLYPH.openclaw;
180
+ const s = size / 24;
181
+ const agentClass = (agent || '').toLowerCase();
182
+ const out = [`<g class="agent-mono-glyph-${agentClass}" transform="translate(${cx.toFixed(2)},${cy.toFixed(2)}) scale(${s.toFixed(4)}) translate(-12,-12)">`];
183
+ for (const p of g.paths)
184
+ out.push(`<path d="${p}" fill="${ink}" fill-rule="evenodd"/>`);
185
+ if (g.eyes)
186
+ for (const [ex, ey, er] of g.eyes)
187
+ out.push(`<circle cx="${ex}" cy="${ey}" r="${er}" fill="${paper}"/>`);
188
+ out.push('</g>');
189
+ return out.join('');
190
+ }
38
191
  // ===== Prominent agent icon (top of button, primary identification) =====
39
192
  /**
40
193
  * Render agent logo as a visible icon at top-center of button.
@@ -46,26 +199,18 @@ function officialMultiPathIcon(paths, fill, size, opacity, cx, cy) {
46
199
  export function agentLogoIcon(agent, size = 48, opacity = 0.7, cx = 72, cy = size / 2 + 12) {
47
200
  const brandColor = agentBrandColor(agent);
48
201
  if (agent === 'claude-code') {
49
- return officialPathIcon(CLAUDE_LOGO_PATH, brandColor, size, opacity, cx, cy);
202
+ return robotCreatureIcon(brandColor, size, opacity, cx, cy);
50
203
  }
51
- if (agent === 'codex-cli') {
52
- return officialPathIcon(CODEX_LOGO_PATH, brandColor, size, opacity, cx, cy);
204
+ if (agent === 'codex-cli' || agent === 'codex-app') {
205
+ return codexCloudCreatureIcon(size, opacity, cx, cy);
53
206
  }
54
207
  if (agent === 'opencode') {
55
- // Smaller icon for OpenCode (geometric squares are visually heavier)
56
- const ocSize = Math.round(size * 0.75);
57
- const half = ocSize / 2;
58
- const ring = ocSize * 0.18;
59
- const inner = ocSize * 0.5;
60
- return [
61
- `<g opacity="${opacity}">`,
62
- `<rect x="${cx - half}" y="${cy - half}" width="${ocSize}" height="${ocSize}" rx="4" fill="${dimColor(brandColor, 0.3)}"/>`,
63
- `<rect x="${cx - half + ring}" y="${cy - half + ring}" width="${ocSize - ring * 2}" height="${ocSize - ring * 2}" rx="2" fill="${dimColor('#4B4646', 0.2)}"/>`,
64
- `<rect x="${cx - inner / 2}" y="${cy - inner / 2}" width="${inner}" height="${inner}" rx="2" fill="${dimColor('#4B4646', 0.2)}"/>`,
65
- `</g>`,
66
- ].join('');
208
+ return openCodeCreatureIcon(size, opacity, cx, cy);
67
209
  }
68
- return officialMultiPathIcon(OPENCLAW_LOGO_PATHS, brandColor, size, opacity, cx, cy);
210
+ if (agent === 'antigravity') {
211
+ return antigravityCreatureIcon(size, opacity, cx, cy);
212
+ }
213
+ return openClawCreatureIcon(size, opacity, cx, cy);
69
214
  }
70
215
  // ===== Low-opacity watermark (background mark) =====
71
216
  /**
@@ -77,24 +222,17 @@ export function agentLogoWatermark(agent, _color, opacity = 0.12) {
77
222
  const markOpacity = Math.min(opacity * 4, 0.9);
78
223
  const fill = dimColor(brandColor, 0.5);
79
224
  if (agent === 'claude-code') {
80
- return officialPathIcon(CLAUDE_LOGO_PATH, fill, 72, markOpacity, 72, 72);
225
+ return robotCreatureIcon(fill, 72, markOpacity, 72, 72);
81
226
  }
82
- if (agent === 'codex-cli') {
83
- return officialPathIcon(CODEX_LOGO_PATH, fill, 72, markOpacity, 72, 72);
227
+ if (agent === 'codex-cli' || agent === 'codex-app') {
228
+ return codexCloudCreatureIcon(72, markOpacity, 72, 72);
84
229
  }
85
230
  if (agent === 'opencode') {
86
- const s = 72;
87
- const half = s / 2;
88
- const ring = s * 0.18;
89
- const inner = s * 0.5;
90
- return [
91
- `<g opacity="${markOpacity}">`,
92
- `<rect x="${72 - half}" y="${72 - half}" width="${s}" height="${s}" fill="${dimColor('#F1ECEC', 0.6)}"/>`,
93
- `<rect x="${72 - half + ring}" y="${72 - half + ring}" width="${s - ring * 2}" height="${s - ring * 2}" fill="${dimColor('#4B4646', 0.5)}"/>`,
94
- `<rect x="${72 - inner / 2}" y="${72 - inner / 2}" width="${inner}" height="${inner}" fill="${dimColor('#4B4646', 0.5)}"/>`,
95
- `</g>`,
96
- ].join('');
231
+ return openCodeCreatureIcon(72, markOpacity, 72, 72);
232
+ }
233
+ if (agent === 'antigravity') {
234
+ return antigravityCreatureIcon(72, markOpacity, 72, 72);
97
235
  }
98
- return officialMultiPathIcon(OPENCLAW_LOGO_PATHS, fill, 72, markOpacity, 72, 72);
236
+ return openClawCreatureIcon(72, markOpacity, 72, 72);
99
237
  }
100
238
  //# sourceMappingURL=agent-logos.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-logos.js","sourceRoot":"","sources":["../../src/svg-renderers/agent-logos.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE/D,8EAA8E;AAC9E,MAAM,CAAC,MAAM,gBAAgB,GAC3B,69CAA69C,CAAC;AAEh+C,2EAA2E;AAC3E,MAAM,CAAC,MAAM,OAAO,GAClB,+JAA+J,CAAC;AAClK,MAAM,CAAC,MAAM,SAAS,GACpB,+DAA+D,CAAC;AAClE,MAAM,CAAC,MAAM,SAAS,GACpB,yEAAyE,CAAC;AAE5E,uFAAuF;AACvF,MAAM,CAAC,MAAM,eAAe,GAC1B,6nCAA6nC,CAAC;AAEhoC,6EAA6E;AAC7E,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,wDAAwD;IACxD,yDAAyD;IACzD,87BAA87B;IAC97B,oSAAoS;IACpS,6XAA6X;CAC9X,CAAC;AAEF,SAAS,gBAAgB,CAAC,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,OAAe,EAAE,EAAU,EAAE,EAAU;IACzG,MAAM,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;IACpB,OAAO,2BAA2B,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,kCAAkC,OAAO,cAAc,IAAI,WAAW,IAAI,iDAAiD,CAAC;AAC/L,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAe,EAAE,IAAY,EAAE,IAAY,EAAE,OAAe,EAAE,EAAU,EAAE,EAAU;IACjH,MAAM,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;IACpB,OAAO;QACL,2BAA2B,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,kCAAkC,OAAO,WAAW,IAAI,4CAA4C;QAC9J,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC;QACvC,MAAM;KACP,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACb,CAAC;AAED,2EAA2E;AAE3E;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAC3B,KAAgB,EAChB,IAAI,GAAG,EAAE,EACT,OAAO,GAAG,GAAG,EACb,EAAE,GAAG,EAAE,EACP,EAAE,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE;IAElB,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAE1C,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;QAC5B,OAAO,gBAAgB,CAAC,gBAAgB,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/E,CAAC;IACD,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;QAC1B,OAAO,gBAAgB,CAAC,eAAe,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;QACzB,qEAAqE;QACrE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,CAAC;QACxB,MAAM,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;QAC3B,MAAM,KAAK,GAAG,MAAM,GAAG,GAAG,CAAC;QAC3B,OAAO;YACL,eAAe,OAAO,IAAI;YAC1B,YAAY,EAAE,GAAG,IAAI,QAAQ,EAAE,GAAG,IAAI,YAAY,MAAM,aAAa,MAAM,kBAAkB,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,KAAK;YAC3H,YAAY,EAAE,GAAG,IAAI,GAAG,IAAI,QAAQ,EAAE,GAAG,IAAI,GAAG,IAAI,YAAY,MAAM,GAAG,IAAI,GAAG,CAAC,aAAa,MAAM,GAAG,IAAI,GAAG,CAAC,kBAAkB,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,KAAK;YAC9J,YAAY,EAAE,GAAG,KAAK,GAAG,CAAC,QAAQ,EAAE,GAAG,KAAK,GAAG,CAAC,YAAY,KAAK,aAAa,KAAK,kBAAkB,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,KAAK;YAClI,MAAM;SACP,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,CAAC;IACD,OAAO,qBAAqB,CAAC,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AACvF,CAAC;AAED,sDAAsD;AAEtD;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAAgB,EAChB,MAAe,EACf,OAAO,GAAG,IAAI;IAEd,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAEvC,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;QAC5B,OAAO,gBAAgB,CAAC,gBAAgB,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;QAC1B,OAAO,gBAAgB,CAAC,eAAe,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACnB,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;QACtB,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC;QACtB,OAAO;YACL,eAAe,WAAW,IAAI;YAC9B,YAAY,EAAE,GAAG,IAAI,QAAQ,EAAE,GAAG,IAAI,YAAY,CAAC,aAAa,CAAC,WAAW,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,KAAK;YACzG,YAAY,EAAE,GAAG,IAAI,GAAG,IAAI,QAAQ,EAAE,GAAG,IAAI,GAAG,IAAI,YAAY,CAAC,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,KAAK;YAC7I,YAAY,EAAE,GAAG,KAAK,GAAG,CAAC,QAAQ,EAAE,GAAG,KAAK,GAAG,CAAC,YAAY,KAAK,aAAa,KAAK,WAAW,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,KAAK;YAC3H,MAAM;SACP,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,CAAC;IACD,OAAO,qBAAqB,CAAC,mBAAmB,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AACnF,CAAC"}
1
+ {"version":3,"file":"agent-logos.js","sourceRoot":"","sources":["../../src/svg-renderers/agent-logos.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,69 @@
1
1
  import type { SessionInfo } from '../protocol.js';
2
2
  import type { PromptOption } from '../states.js';
3
3
  import { State } from '../states.js';
4
+ export type DisconnectedSlotKind = 'open-app' | 'empty';
5
+ export type ClusterQuadrant = 'tl' | 'tr' | 'bl' | 'br';
6
+ export interface DisconnectedSlotConfig {
7
+ kind: DisconnectedSlotKind;
8
+ label?: string;
9
+ subtitle?: string;
10
+ detail?: string;
11
+ /**
12
+ * When set, render the matching 144×144 quadrant of a 288×288 cluster
13
+ * hero — used by even×even decks (SD+, SD XL) so the OFFLINE card sits
14
+ * on the geometric center 2×2 of the keypad instead of one off-center key.
15
+ */
16
+ quadrant?: ClusterQuadrant;
17
+ col?: number;
18
+ row?: number;
19
+ cols?: number;
20
+ rows?: number;
21
+ }
22
+ export type StatusIconKind = 'hub' | 'no-session' | 'agentdeck' | 'tool' | 'model' | 'mode' | 'ready' | 'activity' | 'open-app' | 'retry' | 'offline' | 'back' | 'more' | 'esc' | 'stop' | 'play' | 'review' | 'commit' | 'clear' | 'gateway' | 'status' | 'allow' | 'deny' | 'diff' | 'option';
23
+ export type StatusCardTone = 'ready' | 'idle' | 'info' | 'warning' | 'danger' | 'muted' | 'agent' | 'action' | 'brand' | 'purple';
24
+ export interface StatusCardConfig {
25
+ icon: StatusIconKind;
26
+ label: string;
27
+ subtitle?: string;
28
+ detail?: string;
29
+ tone?: StatusCardTone;
30
+ }
4
31
  /**
5
- * Format "Model · effort" suffix for session tile / detail view.
6
- * Skips neutral efforts ("medium" legacy, "default" is Claude Code 2.1+
7
- * per-model default) so they don't clutter the tile. Truncates the model
8
- * name preferentially so the effort label survives in tight pixel budgets.
32
+ * Compact, readable model strings for narrow surfaces (StreamDeck 144\u00d7144 keys).
33
+ * - claude-sonnet-4-6 \u2192 "sonnet 4.6"
34
+ * - claude-opus-4-7 \u2192 "opus 4.7"
35
+ * - claude-haiku-4-5-20251001 \u2192 "haiku 4.5" (date suffix dropped)
36
+ * - gpt-5-codex / gpt-5 / others \u2192 unchanged (caller still truncates if needed)
9
37
  */
38
+ export declare function aliasModelName(name: string): string;
10
39
  export declare function formatModelEffort(modelName?: string, effortLevel?: string, maxLen?: number): string;
40
+ /**
41
+ * AgentDeck product mark — the aquarium dome over a hardware deck (glass dome +
42
+ * waterline + highlight + rounded deck base + three keys + two bubbles). Ported
43
+ * unit-for-unit (0..24 space) from the SwiftUI `AgentDeckLogo` / Compose
44
+ * `AgentDeckMark` so the Stream Deck / D200H offline hero shows the SAME brand
45
+ * mark that the macOS/iOS/Android connection overlays and the ESP32 splash draw.
46
+ * Centered on (x,y); `size` is the mark's width in px. `color` draws the dome/deck
47
+ * strokes + keys; `accent` tints the waterline + bubbles.
48
+ */
49
+ export declare function renderAgentDeckMark(x: number, y: number, size: number, color: string, accent?: string): string;
11
50
  export declare function renderSessionSlot(session: SessionInfo, isActive: boolean, animFrame: number, displayName?: string, options?: {
12
51
  animated?: boolean;
52
+ processingStartFrame?: number;
53
+ isStale?: boolean;
13
54
  }): string;
14
55
  export declare function renderEmptySlot(): string;
15
- export declare function renderNoDaemonSlot(slot: number): string;
56
+ export declare function renderQuietSlot(): string;
57
+ export declare function renderStatusCard(config: StatusCardConfig): string;
58
+ export declare function renderDisconnectedSlot(config: DisconnectedSlotConfig): string;
59
+ /**
60
+ * Renders a single 144×144 viewport into a 288×288 cluster hero. Each of the
61
+ * four center keys (tl/tr/bl/br) emits the same logical content offset by its
62
+ * quadrant; viewBox clipping keeps only the relevant 144×144 visible. The
63
+ * cluster reads as one card visually, with the inner panel + glyph + text
64
+ * spanning all four keys while each key keeps its own outer rounded bezel.
65
+ */
66
+ export declare function renderOpenAppQuadrant(quadrant: ClusterQuadrant, label?: string, subtitle?: string): string;
16
67
  export declare function renderBackButton(): string;
17
68
  export declare function renderNextPageButton(pageLabel: string): string;
18
69
  export declare function renderEscButton(active?: boolean): string;
@@ -20,6 +71,8 @@ export declare function renderStopButton(active?: boolean): string;
20
71
  export declare function renderDetailInfo(session: SessionInfo | undefined, state: State, tool?: string, modelName?: string, mode?: string, displayName?: string, effortLevel?: string): string;
21
72
  export declare function renderOptionButton(option: PromptOption, index: number): string;
22
73
  export declare function renderPresetButton(label: string, iconSvg: string, color: string, textColor: string, subtitle?: string, loading?: boolean): string;
23
- export declare function renderInfoSlot(label: string, subtitle?: string): string;
74
+ export declare function renderInfoSlot(label: string, subtitle?: string, icon?: StatusIconKind, tone?: StatusCardTone, detail?: string): string;
24
75
  export declare function svgFrame(bgColor: string, innerElements: string): string;
76
+ export declare function renderOpenAppGrid(col: number, row: number, cols: number, rows: number, label?: string, subtitle?: string): string;
77
+ export declare function renderOfflineTouchStrip(index: number): string;
25
78
  //# sourceMappingURL=session-slot-renderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-slot-renderer.d.ts","sourceRoot":"","sources":["../../src/svg-renderers/session-slot-renderer.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAwCrC;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,MAAM,SAAK,GAAG,MAAM,CAS/F;AAID,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,OAAO,EACjB,SAAS,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAC/B,MAAM,CA8HR;AAID,wBAAgB,eAAe,IAAI,MAAM,CAGxC;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUvD;AAID,wBAAgB,gBAAgB,IAAI,MAAM,CAIzC;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAK9D;AAED,wBAAgB,eAAe,CAAC,MAAM,UAAO,GAAG,MAAM,CASrD;AAED,wBAAgB,gBAAgB,CAAC,MAAM,UAAO,GAAG,MAAM,CAStD;AAID,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAiDrL;AAID,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAkB9E;AAID,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CASjJ;AAID,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAMvE;AAID,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAkBvE"}
1
+ {"version":3,"file":"session-slot-renderer.d.ts","sourceRoot":"","sources":["../../src/svg-renderers/session-slot-renderer.ts"],"names":[],"mappings":"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"}