clay-server 5.2.0-beta.2 → 5.2.0-beta.4
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/lib/builtin-mates.js +2 -2
- package/lib/bundled-skills/clay-agent-browser/SKILL.md +6 -2
- package/lib/dm-digest-cursor.js +120 -0
- package/lib/knowledge-db-import-validation.js +46 -0
- package/lib/knowledge-db-import.js +98 -0
- package/lib/knowledge-db-service.js +18 -30
- package/lib/knowledge-db-storage-nedb-maintenance.js +99 -0
- package/lib/knowledge-db-storage-nedb.js +66 -0
- package/lib/knowledge-db-storage.js +72 -0
- package/lib/knowledge-db-validation.js +0 -0
- package/lib/knowledge-file-store.js +7 -1
- package/lib/mate-avatar-catalog.js +12 -0
- package/lib/mate-avatar-migration.js +41 -0
- package/lib/mate-knowledge-mate-bound.js +53 -0
- package/lib/mate-knowledge-mcp-server.js +55 -8
- package/lib/mate-knowledge-service.js +9 -30
- package/lib/mate-knowledge-text-tools.js +106 -0
- package/lib/mates.js +14 -3
- package/lib/mcp-agent-tools.js +117 -0
- package/lib/mcp-connection-store.js +119 -15
- package/lib/mcp-import-credentials.js +31 -0
- package/lib/mcp-local-transport.js +13 -0
- package/lib/mcp-oauth.js +8 -6
- package/lib/mcp-query-bridge.js +30 -0
- package/lib/mcp-remote-connections.js +74 -20
- package/lib/mcp-source-adapters.js +91 -0
- package/lib/mcp-source-context.js +42 -0
- package/lib/mcp-source-discovery.js +169 -0
- package/lib/mcp-source-plugins.js +68 -0
- package/lib/mcp-source-restrictions.js +47 -0
- package/lib/mcp-tool-policy.js +34 -0
- package/lib/project-ask-user.js +6 -4
- package/lib/project-debate.js +1 -0
- package/lib/project-mate-interaction.js +40 -62
- package/lib/project-mcp.js +54 -16
- package/lib/project-session-document.js +8 -3
- package/lib/project-session-github.js +16 -7
- package/lib/project-session-linear.js +14 -6
- package/lib/project-session-notes.js +7 -3
- package/lib/project-sessions.js +6 -2
- package/lib/project-shared-browser.js +56 -12
- package/lib/project.js +49 -34
- package/lib/public/app.js +5 -0
- package/lib/public/appearance-bootstrap.js +14 -0
- package/lib/public/css/clay-workspace.css +29 -0
- package/lib/public/css/home-debate-planning.css +2 -0
- package/lib/public/css/mate-avatar-gallery.css +12 -0
- package/lib/public/css/mate-conversation.css +10 -5
- package/lib/public/css/session-github.css +43 -1
- package/lib/public/css/shared-browser.css +35 -1
- package/lib/public/index.html +10 -4
- package/lib/public/mate-avatars/B01.png +0 -0
- package/lib/public/mate-avatars/B02.png +0 -0
- package/lib/public/mate-avatars/B03.png +0 -0
- package/lib/public/mate-avatars/B04.png +0 -0
- package/lib/public/mate-avatars/B05.png +0 -0
- package/lib/public/mate-avatars/B06.png +0 -0
- package/lib/public/mate-avatars/B07.png +0 -0
- package/lib/public/mate-avatars/B08.png +0 -0
- package/lib/public/mate-avatars/B09.png +0 -0
- package/lib/public/mate-avatars/B10.png +0 -0
- package/lib/public/mate-avatars/B11.png +0 -0
- package/lib/public/mate-avatars/B12.png +0 -0
- package/lib/public/mate-avatars/B13.png +0 -0
- package/lib/public/mate-avatars/B14.png +0 -0
- package/lib/public/mate-avatars/B15.png +0 -0
- package/lib/public/mate-avatars/B16.png +0 -0
- package/lib/public/mate-avatars/B17.png +0 -0
- package/lib/public/mate-avatars/B18.png +0 -0
- package/lib/public/mate-avatars/B19.png +0 -0
- package/lib/public/mate-avatars/B20.png +0 -0
- package/lib/public/mate-avatars/B21.png +0 -0
- package/lib/public/mate-avatars/B22.png +0 -0
- package/lib/public/mate-avatars/B23.png +0 -0
- package/lib/public/mate-avatars/B24.png +0 -0
- package/lib/public/mate-avatars/B25.png +0 -0
- package/lib/public/mate-avatars/B26.png +0 -0
- package/lib/public/mate-avatars/B27.png +0 -0
- package/lib/public/mate-avatars/B28.png +0 -0
- package/lib/public/mate-avatars/B29.png +0 -0
- package/lib/public/mate-avatars/B30.png +0 -0
- package/lib/public/mate-avatars/B31.png +0 -0
- package/lib/public/mate-avatars/B32.png +0 -0
- package/lib/public/mate-avatars/B33.png +0 -0
- package/lib/public/mate-avatars/B34.png +0 -0
- package/lib/public/mate-avatars/B35.png +0 -0
- package/lib/public/mate-avatars/B36.png +0 -0
- package/lib/public/mate-avatars/B37.png +0 -0
- package/lib/public/mate-avatars/B38.png +0 -0
- package/lib/public/mate-avatars/B39.png +0 -0
- package/lib/public/mate-avatars/B40.png +0 -0
- package/lib/public/mate-avatars/B41.png +0 -0
- package/lib/public/mate-avatars/B42.png +0 -0
- package/lib/public/mate-avatars/B43.png +0 -0
- package/lib/public/mate-avatars/B44.png +0 -0
- package/lib/public/mate-avatars/B45.png +0 -0
- package/lib/public/mate-avatars/B46.png +0 -0
- package/lib/public/mate-avatars/B47.png +0 -0
- package/lib/public/mate-avatars/B48.png +0 -0
- package/lib/public/mate-avatars/C01.png +0 -0
- package/lib/public/mate-avatars/C02.png +0 -0
- package/lib/public/mate-avatars/C03.png +0 -0
- package/lib/public/mate-avatars/C04.png +0 -0
- package/lib/public/mate-avatars/C05.png +0 -0
- package/lib/public/mate-avatars/C06.png +0 -0
- package/lib/public/mate-avatars/C07.png +0 -0
- package/lib/public/mate-avatars/C08.png +0 -0
- package/lib/public/mate-avatars/C09.png +0 -0
- package/lib/public/mate-avatars/C10.png +0 -0
- package/lib/public/mate-avatars/C11.png +0 -0
- package/lib/public/mate-avatars/C12.png +0 -0
- package/lib/public/mate-avatars/C13.png +0 -0
- package/lib/public/mate-avatars/C14.png +0 -0
- package/lib/public/mate-avatars/C15.png +0 -0
- package/lib/public/mate-avatars/C16.png +0 -0
- package/lib/public/mate-avatars/C17.png +0 -0
- package/lib/public/mate-avatars/C18.png +0 -0
- package/lib/public/mate-avatars/C19.png +0 -0
- package/lib/public/mate-avatars/C20.png +0 -0
- package/lib/public/mate-avatars/C21.png +0 -0
- package/lib/public/mate-avatars/C22.png +0 -0
- package/lib/public/mate-avatars/C23.png +0 -0
- package/lib/public/mate-avatars/C24.png +0 -0
- package/lib/public/mate-avatars/C25.png +0 -0
- package/lib/public/mate-avatars/C26.png +0 -0
- package/lib/public/mate-avatars/C27.png +0 -0
- package/lib/public/mate-avatars/C28.png +0 -0
- package/lib/public/mate-avatars/C29.png +0 -0
- package/lib/public/mate-avatars/C30.png +0 -0
- package/lib/public/mate-avatars/C31.png +0 -0
- package/lib/public/mate-avatars/C32.png +0 -0
- package/lib/public/mate-avatars/C33.png +0 -0
- package/lib/public/mate-avatars/C34.png +0 -0
- package/lib/public/mate-avatars/C35.png +0 -0
- package/lib/public/mate-avatars/C36.png +0 -0
- package/lib/public/mate-avatars/C37.png +0 -0
- package/lib/public/mate-avatars/C38.png +0 -0
- package/lib/public/mate-avatars/C39.png +0 -0
- package/lib/public/mate-avatars/C40.png +0 -0
- package/lib/public/mate-avatars/C41.png +0 -0
- package/lib/public/mate-avatars/C42.png +0 -0
- package/lib/public/mate-avatars/C43.png +0 -0
- package/lib/public/mate-avatars/C44.png +0 -0
- package/lib/public/mate-avatars/C45.png +0 -0
- package/lib/public/mate-avatars/C46.png +0 -0
- package/lib/public/mate-avatars/C47.png +0 -0
- package/lib/public/mate-avatars/C48.png +0 -0
- package/lib/public/mate-avatars/catalog.json +482 -0
- package/lib/public/mate-avatars/lead-clay.png +0 -0
- package/lib/public/modules/app-message-router.js +4 -0
- package/lib/public/modules/app-messages.js +13 -2
- package/lib/public/modules/app-rendering.js +1 -1
- package/lib/public/modules/avatar.js +15 -41
- package/lib/public/modules/chat-render-runtime.js +10 -1
- package/lib/public/modules/clay-browser-links.js +47 -0
- package/lib/public/modules/clay-log-links.js +1 -1
- package/lib/public/modules/command-palette.js +1 -1
- package/lib/public/modules/debate.js +1 -0
- package/lib/public/modules/history-replay-batch.js +5 -1
- package/lib/public/modules/home-debate-live.js +2 -0
- package/lib/public/modules/home-debate-planning.js +7 -7
- package/lib/public/modules/home-mate-avatar-editor.js +127 -208
- package/lib/public/modules/home-mate-chat.js +6 -6
- package/lib/public/modules/home-mate-settings.js +19 -12
- package/lib/public/modules/markdown.js +4 -0
- package/lib/public/modules/mate-avatar-catalog.js +97 -0
- package/lib/public/modules/mate-management.js +40 -7
- package/lib/public/modules/mcp-connection-view.js +31 -13
- package/lib/public/modules/mcp-discovery-view.js +31 -0
- package/lib/public/modules/mcp-ui.js +23 -4
- package/lib/public/modules/mention.js +3 -0
- package/lib/public/modules/pane-browser-bridge.js +20 -0
- package/lib/public/modules/profile.js +1 -238
- package/lib/public/modules/project-mate-navigation.js +99 -14
- package/lib/public/modules/search-clay-chat.js +16 -2
- package/lib/public/modules/session-github.js +23 -9
- package/lib/public/modules/session-work-primary.js +51 -0
- package/lib/public/modules/shared-browser-settings.js +112 -0
- package/lib/public/modules/shared-browser-tabs.js +13 -3
- package/lib/public/modules/shared-browser.js +27 -6
- package/lib/public/modules/split-view.js +2 -0
- package/lib/public/modules/theme.js +8 -1
- package/lib/public/modules/tools.js +2 -1
- package/lib/public/style.css +1 -0
- package/lib/public/sw.js +3 -1
- package/lib/sdk-bridge.js +9 -3
- package/lib/server-appearance-settings.js +13 -1
- package/lib/server-dm.js +1 -0
- package/lib/server-home-chat-events.js +14 -4
- package/lib/server-home-chat.js +10 -2
- package/lib/server-home-mcp-consent.js +14 -0
- package/lib/server-mates.js +6 -1
- package/lib/server-settings.js +4 -1
- package/lib/server.js +45 -12
- package/lib/session-work-primary.js +50 -0
- package/lib/sessions.js +3 -0
- package/lib/shared-browser-cookie-sync.js +32 -0
- package/lib/shared-browser-cookies.js +79 -0
- package/lib/shared-browser-runtime.js +25 -9
- package/lib/shared-browser-storage-sync.js +43 -0
- package/lib/shared-browser-storage.js +101 -0
- package/lib/shared-browser-tools.js +2 -1
- package/lib/shared-browser-worker.js +46 -10
- package/lib/yoke/acp-agent-profiles.js +2 -2
- package/package.json +5 -1
|
@@ -0,0 +1,482 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "B01",
|
|
4
|
+
"family": "B",
|
|
5
|
+
"name": "Indigo Cyclops"
|
|
6
|
+
},
|
|
7
|
+
{
|
|
8
|
+
"id": "B02",
|
|
9
|
+
"family": "B",
|
|
10
|
+
"name": "Coral Sentinel"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"id": "B03",
|
|
14
|
+
"family": "B",
|
|
15
|
+
"name": "Golden Visor"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"id": "B04",
|
|
19
|
+
"family": "B",
|
|
20
|
+
"name": "Mint Wide Eyes"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"id": "B05",
|
|
24
|
+
"family": "B",
|
|
25
|
+
"name": "Ivory Grin"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"id": "B06",
|
|
29
|
+
"family": "B",
|
|
30
|
+
"name": "Blue Teardrop"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"id": "B07",
|
|
34
|
+
"family": "B",
|
|
35
|
+
"name": "Peach Orbit"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"id": "B08",
|
|
39
|
+
"family": "B",
|
|
40
|
+
"name": "Lilac Sleeper"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"id": "B09",
|
|
44
|
+
"family": "B",
|
|
45
|
+
"name": "Coral Prism"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"id": "B10",
|
|
49
|
+
"family": "B",
|
|
50
|
+
"name": "Mint Spring"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"id": "B11",
|
|
54
|
+
"family": "B",
|
|
55
|
+
"name": "Golden Pebbles"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"id": "B12",
|
|
59
|
+
"family": "B",
|
|
60
|
+
"name": "Periwinkle Orbit"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"id": "B13",
|
|
64
|
+
"family": "B",
|
|
65
|
+
"name": "Coral Horizon"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"id": "B14",
|
|
69
|
+
"family": "B",
|
|
70
|
+
"name": "Indigo Stack"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"id": "B15",
|
|
74
|
+
"family": "B",
|
|
75
|
+
"name": "Mint Button Box"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"id": "B16",
|
|
79
|
+
"family": "B",
|
|
80
|
+
"name": "Golden Curve"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"id": "B17",
|
|
84
|
+
"family": "B",
|
|
85
|
+
"name": "Loop Listener"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"id": "B18",
|
|
89
|
+
"family": "B",
|
|
90
|
+
"name": "Blue Twin Antenna"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"id": "B19",
|
|
94
|
+
"family": "B",
|
|
95
|
+
"name": "Lilac Daydream"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"id": "B20",
|
|
99
|
+
"family": "B",
|
|
100
|
+
"name": "Coral Toothsome"
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"id": "B21",
|
|
104
|
+
"family": "B",
|
|
105
|
+
"name": "Ivory Satellite"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"id": "B22",
|
|
109
|
+
"family": "B",
|
|
110
|
+
"name": "Mint Coil"
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"id": "B23",
|
|
114
|
+
"family": "B",
|
|
115
|
+
"name": "Golden Wonder"
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"id": "B24",
|
|
119
|
+
"family": "B",
|
|
120
|
+
"name": "Slate Smile"
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"id": "B25",
|
|
124
|
+
"family": "B",
|
|
125
|
+
"name": "Lilac Shield"
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"id": "B26",
|
|
129
|
+
"family": "B",
|
|
130
|
+
"name": "Mint Diamond"
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"id": "B27",
|
|
134
|
+
"family": "B",
|
|
135
|
+
"name": "Coral Pebble"
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"id": "B28",
|
|
139
|
+
"family": "B",
|
|
140
|
+
"name": "Golden Horns"
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"id": "B29",
|
|
144
|
+
"family": "B",
|
|
145
|
+
"name": "Blue Trio"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"id": "B30",
|
|
149
|
+
"family": "B",
|
|
150
|
+
"name": "Ivory Tower"
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"id": "B31",
|
|
154
|
+
"family": "B",
|
|
155
|
+
"name": "Charcoal Grin"
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
"id": "B32",
|
|
159
|
+
"family": "B",
|
|
160
|
+
"name": "Teal Cheer"
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"id": "B33",
|
|
164
|
+
"family": "B",
|
|
165
|
+
"name": "Rose Satellite"
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
"id": "B34",
|
|
169
|
+
"family": "B",
|
|
170
|
+
"name": "Blue Spool"
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
"id": "B35",
|
|
174
|
+
"family": "B",
|
|
175
|
+
"name": "Golden Band"
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
"id": "B36",
|
|
179
|
+
"family": "B",
|
|
180
|
+
"name": "Mint Beacon"
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
"id": "B37",
|
|
184
|
+
"family": "B",
|
|
185
|
+
"name": "Charcoal Crescent"
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
"id": "B38",
|
|
189
|
+
"family": "B",
|
|
190
|
+
"name": "Coral Cyclops"
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
"id": "B39",
|
|
194
|
+
"family": "B",
|
|
195
|
+
"name": "Blue Scout"
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
"id": "B40",
|
|
199
|
+
"family": "B",
|
|
200
|
+
"name": "Ivory Navigator"
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"id": "B41",
|
|
204
|
+
"family": "B",
|
|
205
|
+
"name": "Golden Porthole"
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
"id": "B42",
|
|
209
|
+
"family": "B",
|
|
210
|
+
"name": "Lilac Windup"
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
"id": "B43",
|
|
214
|
+
"family": "B",
|
|
215
|
+
"name": "Mint Receiver"
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
"id": "B44",
|
|
219
|
+
"family": "B",
|
|
220
|
+
"name": "Coral Stack"
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
"id": "B45",
|
|
224
|
+
"family": "B",
|
|
225
|
+
"name": "Indigo Porthole"
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
"id": "B46",
|
|
229
|
+
"family": "B",
|
|
230
|
+
"name": "Stone Sprout"
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
"id": "B47",
|
|
234
|
+
"family": "B",
|
|
235
|
+
"name": "Mint Sunbeam"
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
"id": "B48",
|
|
239
|
+
"family": "B",
|
|
240
|
+
"name": "Golden Cubby"
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
"id": "C01",
|
|
244
|
+
"family": "C",
|
|
245
|
+
"name": "Violet Smile"
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
"id": "C02",
|
|
249
|
+
"family": "C",
|
|
250
|
+
"name": "Apricot Joy"
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
"id": "C03",
|
|
254
|
+
"family": "C",
|
|
255
|
+
"name": "Sage Curious"
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
"id": "C04",
|
|
259
|
+
"family": "C",
|
|
260
|
+
"name": "Golden Wink"
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
"id": "C05",
|
|
264
|
+
"family": "C",
|
|
265
|
+
"name": "Blue Sideglance"
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
"id": "C06",
|
|
269
|
+
"family": "C",
|
|
270
|
+
"name": "Charcoal Wonder"
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
"id": "C07",
|
|
274
|
+
"family": "C",
|
|
275
|
+
"name": "Lilac Specs"
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
"id": "C08",
|
|
279
|
+
"family": "C",
|
|
280
|
+
"name": "Coral Giggle"
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
"id": "C09",
|
|
284
|
+
"family": "C",
|
|
285
|
+
"name": "Mint Blush"
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
"id": "C10",
|
|
289
|
+
"family": "C",
|
|
290
|
+
"name": "Golden Button"
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
"id": "C11",
|
|
294
|
+
"family": "C",
|
|
295
|
+
"name": "Sky Smile"
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
"id": "C12",
|
|
299
|
+
"family": "C",
|
|
300
|
+
"name": "Plum Joy"
|
|
301
|
+
},
|
|
302
|
+
{
|
|
303
|
+
"id": "C13",
|
|
304
|
+
"family": "C",
|
|
305
|
+
"name": "Teal Diamond"
|
|
306
|
+
},
|
|
307
|
+
{
|
|
308
|
+
"id": "C14",
|
|
309
|
+
"family": "C",
|
|
310
|
+
"name": "Peach Dimple"
|
|
311
|
+
},
|
|
312
|
+
{
|
|
313
|
+
"id": "C15",
|
|
314
|
+
"family": "C",
|
|
315
|
+
"name": "Indigo Delight"
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
"id": "C16",
|
|
319
|
+
"family": "C",
|
|
320
|
+
"name": "Sage Sprout"
|
|
321
|
+
},
|
|
322
|
+
{
|
|
323
|
+
"id": "C17",
|
|
324
|
+
"family": "C",
|
|
325
|
+
"name": "Golden Specs"
|
|
326
|
+
},
|
|
327
|
+
{
|
|
328
|
+
"id": "C18",
|
|
329
|
+
"family": "C",
|
|
330
|
+
"name": "Lilac Stargaze"
|
|
331
|
+
},
|
|
332
|
+
{
|
|
333
|
+
"id": "C19",
|
|
334
|
+
"family": "C",
|
|
335
|
+
"name": "Blue Curiosity"
|
|
336
|
+
},
|
|
337
|
+
{
|
|
338
|
+
"id": "C20",
|
|
339
|
+
"family": "C",
|
|
340
|
+
"name": "Coral Heart"
|
|
341
|
+
},
|
|
342
|
+
{
|
|
343
|
+
"id": "C21",
|
|
344
|
+
"family": "C",
|
|
345
|
+
"name": "Mint Bud"
|
|
346
|
+
},
|
|
347
|
+
{
|
|
348
|
+
"id": "C22",
|
|
349
|
+
"family": "C",
|
|
350
|
+
"name": "Ivory Surprise"
|
|
351
|
+
},
|
|
352
|
+
{
|
|
353
|
+
"id": "C23",
|
|
354
|
+
"family": "C",
|
|
355
|
+
"name": "Rose Wink"
|
|
356
|
+
},
|
|
357
|
+
{
|
|
358
|
+
"id": "C24",
|
|
359
|
+
"family": "C",
|
|
360
|
+
"name": "Sky Giggle"
|
|
361
|
+
},
|
|
362
|
+
{
|
|
363
|
+
"id": "C25",
|
|
364
|
+
"family": "C",
|
|
365
|
+
"name": "Ivory Dreamer"
|
|
366
|
+
},
|
|
367
|
+
{
|
|
368
|
+
"id": "C26",
|
|
369
|
+
"family": "C",
|
|
370
|
+
"name": "Mint Loop"
|
|
371
|
+
},
|
|
372
|
+
{
|
|
373
|
+
"id": "C27",
|
|
374
|
+
"family": "C",
|
|
375
|
+
"name": "Violet Glasses"
|
|
376
|
+
},
|
|
377
|
+
{
|
|
378
|
+
"id": "C28",
|
|
379
|
+
"family": "C",
|
|
380
|
+
"name": "Coral Sunshine"
|
|
381
|
+
},
|
|
382
|
+
{
|
|
383
|
+
"id": "C29",
|
|
384
|
+
"family": "C",
|
|
385
|
+
"name": "Slate Sideglance"
|
|
386
|
+
},
|
|
387
|
+
{
|
|
388
|
+
"id": "C30",
|
|
389
|
+
"family": "C",
|
|
390
|
+
"name": "Golden Dimple"
|
|
391
|
+
},
|
|
392
|
+
{
|
|
393
|
+
"id": "C31",
|
|
394
|
+
"family": "C",
|
|
395
|
+
"name": "Teal Listener"
|
|
396
|
+
},
|
|
397
|
+
{
|
|
398
|
+
"id": "C32",
|
|
399
|
+
"family": "C",
|
|
400
|
+
"name": "Peach Cheer"
|
|
401
|
+
},
|
|
402
|
+
{
|
|
403
|
+
"id": "C33",
|
|
404
|
+
"family": "C",
|
|
405
|
+
"name": "Indigo Blush"
|
|
406
|
+
},
|
|
407
|
+
{
|
|
408
|
+
"id": "C34",
|
|
409
|
+
"family": "C",
|
|
410
|
+
"name": "Sage Daydream"
|
|
411
|
+
},
|
|
412
|
+
{
|
|
413
|
+
"id": "C35",
|
|
414
|
+
"family": "C",
|
|
415
|
+
"name": "Rose Wonder"
|
|
416
|
+
},
|
|
417
|
+
{
|
|
418
|
+
"id": "C36",
|
|
419
|
+
"family": "C",
|
|
420
|
+
"name": "Sky Blush"
|
|
421
|
+
},
|
|
422
|
+
{
|
|
423
|
+
"id": "C37",
|
|
424
|
+
"family": "C",
|
|
425
|
+
"name": "Peach Heart"
|
|
426
|
+
},
|
|
427
|
+
{
|
|
428
|
+
"id": "C38",
|
|
429
|
+
"family": "C",
|
|
430
|
+
"name": "Blue Button"
|
|
431
|
+
},
|
|
432
|
+
{
|
|
433
|
+
"id": "C39",
|
|
434
|
+
"family": "C",
|
|
435
|
+
"name": "Lilac Wink"
|
|
436
|
+
},
|
|
437
|
+
{
|
|
438
|
+
"id": "C40",
|
|
439
|
+
"family": "C",
|
|
440
|
+
"name": "Mint Dish"
|
|
441
|
+
},
|
|
442
|
+
{
|
|
443
|
+
"id": "C41",
|
|
444
|
+
"family": "C",
|
|
445
|
+
"name": "Ivory Wonder"
|
|
446
|
+
},
|
|
447
|
+
{
|
|
448
|
+
"id": "C42",
|
|
449
|
+
"family": "C",
|
|
450
|
+
"name": "Violet Cheer"
|
|
451
|
+
},
|
|
452
|
+
{
|
|
453
|
+
"id": "C43",
|
|
454
|
+
"family": "C",
|
|
455
|
+
"name": "Rose Specs"
|
|
456
|
+
},
|
|
457
|
+
{
|
|
458
|
+
"id": "C44",
|
|
459
|
+
"family": "C",
|
|
460
|
+
"name": "Teal Delight"
|
|
461
|
+
},
|
|
462
|
+
{
|
|
463
|
+
"id": "C45",
|
|
464
|
+
"family": "C",
|
|
465
|
+
"name": "Golden Diamond"
|
|
466
|
+
},
|
|
467
|
+
{
|
|
468
|
+
"id": "C46",
|
|
469
|
+
"family": "C",
|
|
470
|
+
"name": "Lilac Surprise"
|
|
471
|
+
},
|
|
472
|
+
{
|
|
473
|
+
"id": "C47",
|
|
474
|
+
"family": "C",
|
|
475
|
+
"name": "Sage Listener"
|
|
476
|
+
},
|
|
477
|
+
{
|
|
478
|
+
"id": "C48",
|
|
479
|
+
"family": "C",
|
|
480
|
+
"name": "Coral Crown"
|
|
481
|
+
}
|
|
482
|
+
]
|
|
Binary file
|
|
@@ -58,6 +58,10 @@ export function handleHomeProtocolMessage(msg) {
|
|
|
58
58
|
handleHomeDebateTranscript(msg);
|
|
59
59
|
return true;
|
|
60
60
|
}
|
|
61
|
+
if (msg.type === "home_mcp_import_question" || msg.type === "home_mcp_import_question_resolved") {
|
|
62
|
+
if (!handleSearchClayMessage(msg)) handleHomeDebateTranscript(msg);
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
61
65
|
if (msg.type === "home_debate_question" || msg.type === "home_debate_question_resolved" || msg.type === "home_debate_event") {
|
|
62
66
|
handleHomeDebateTranscript(msg);
|
|
63
67
|
return true;
|
|
@@ -8,6 +8,7 @@ import { refreshProjectAssistantIdentities } from './project-chat-identity.js';
|
|
|
8
8
|
import { handleLinearResult } from './linear-panel.js';
|
|
9
9
|
import { handleSharedBrowserMessage } from './shared-browser.js';
|
|
10
10
|
import { openWireframe } from './wireframe-workbench.js';
|
|
11
|
+
import { handlePrimaryWorkResult } from './session-work-primary.js';
|
|
11
12
|
import { syncGithubSessions } from './session-github.js';
|
|
12
13
|
import { handleIssuesMessageInContext as handleIssuesMessage } from './issues-context.js';
|
|
13
14
|
// app-messages.js - WebSocket message router
|
|
@@ -204,7 +205,7 @@ export function processMessage(msg) {
|
|
|
204
205
|
if (readyMatch) {
|
|
205
206
|
var newName = readyMatch[1].trim();
|
|
206
207
|
store.get('dmTargetUser').displayName = newName;
|
|
207
|
-
updateMateSidebarProfile({ profile: { displayName: newName, avatarColor: store.get('dmTargetUser').avatarColor, avatarStyle: store.get('dmTargetUser').avatarStyle, avatarSeed: store.get('dmTargetUser').avatarSeed } });
|
|
208
|
+
updateMateSidebarProfile({ profile: { displayName: newName, avatarCatalogId: store.get('dmTargetUser').avatarCatalogId, avatarColor: store.get('dmTargetUser').avatarColor, avatarStyle: store.get('dmTargetUser').avatarStyle, avatarSeed: store.get('dmTargetUser').avatarSeed } });
|
|
208
209
|
if (getWs() && getWs().readyState === 1) {
|
|
209
210
|
getWs().send(JSON.stringify({
|
|
210
211
|
type: "mate_update",
|
|
@@ -224,7 +225,8 @@ export function processMessage(msg) {
|
|
|
224
225
|
}
|
|
225
226
|
}
|
|
226
227
|
|
|
227
|
-
store.set({ currentHistoryIndex: Number.isSafeInteger(msg._historyIndex) && msg._historyIndex >= 0 ? msg._historyIndex : null
|
|
228
|
+
store.set({ currentHistoryIndex: Number.isSafeInteger(msg._historyIndex) && msg._historyIndex >= 0 ? msg._historyIndex : null,
|
|
229
|
+
currentHistoryIndexes: Array.isArray(msg._historyIndexes) ? msg._historyIndexes : null });
|
|
228
230
|
switch (msg.type) {
|
|
229
231
|
case "message_ack":
|
|
230
232
|
var acknowledgedEntry = acknowledgeMessage(msg.clientMessageId);
|
|
@@ -858,6 +860,9 @@ export function processMessage(msg) {
|
|
|
858
860
|
handleRemoteSelection(msg);
|
|
859
861
|
break;
|
|
860
862
|
|
|
863
|
+
case "session_work_primary_result":
|
|
864
|
+
handlePrimaryWorkResult(msg);
|
|
865
|
+
break;
|
|
861
866
|
case "linear_result":
|
|
862
867
|
handleLinearResult(msg);
|
|
863
868
|
break;
|
|
@@ -1274,6 +1279,11 @@ export function processMessage(msg) {
|
|
|
1274
1279
|
renderGeneratedImage(msg);
|
|
1275
1280
|
break;
|
|
1276
1281
|
|
|
1282
|
+
case 'mcp_import_consent_expired':
|
|
1283
|
+
markAskUserAnswered(msg.toolId, { 0: msg.error || 'No import was approved.' });
|
|
1284
|
+
stopUrgentBlink();
|
|
1285
|
+
break;
|
|
1286
|
+
|
|
1277
1287
|
case "ask_user_answered":
|
|
1278
1288
|
markAskUserAnswered(msg.toolId, msg.answers);
|
|
1279
1289
|
stopUrgentBlink();
|
|
@@ -1959,6 +1969,7 @@ export function processMessage(msg) {
|
|
|
1959
1969
|
// Sync dmTargetUser so subsequent renders use fresh data
|
|
1960
1970
|
var mp2 = msg.mate.profile || {};
|
|
1961
1971
|
store.get('dmTargetUser').displayName = mp2.displayName || msg.mate.name || store.get('dmTargetUser').displayName;
|
|
1972
|
+
store.get('dmTargetUser').avatarCatalogId = mp2.avatarCatalogId || '';
|
|
1962
1973
|
store.get('dmTargetUser').avatarStyle = mp2.avatarStyle || store.get('dmTargetUser').avatarStyle;
|
|
1963
1974
|
store.get('dmTargetUser').avatarSeed = mp2.avatarSeed || store.get('dmTargetUser').avatarSeed;
|
|
1964
1975
|
store.get('dmTargetUser').avatarColor = mp2.avatarColor || store.get('dmTargetUser').avatarColor;
|
|
@@ -45,7 +45,7 @@ export function addCopyHandler(msgEl, rawText) {
|
|
|
45
45
|
|
|
46
46
|
export function appendDelta(text) {
|
|
47
47
|
var assistantEl = ensureAssistantBlock();
|
|
48
|
-
if (store.get('replayingHistory')) addHistoryIndex(assistantEl, store.get('currentHistoryIndex'));
|
|
48
|
+
if (store.get('replayingHistory')) addHistoryIndex(assistantEl, store.get('currentHistoryIndexes') || store.get('currentHistoryIndex'));
|
|
49
49
|
streamBuffer += text;
|
|
50
50
|
if (store.get('replayingHistory')) {
|
|
51
51
|
store.set({ currentFullText: store.get('currentFullText') + streamBuffer });
|
|
@@ -1,37 +1,11 @@
|
|
|
1
1
|
// Centralized local avatar URL builder for people and Mates.
|
|
2
|
-
import { imprintDataUrl
|
|
3
|
-
|
|
4
|
-
var mateMarkCache = new Map();
|
|
5
|
-
|
|
6
|
-
// Historical DiceBear 9.x choices, now generated by Clay's local server.
|
|
7
|
-
export var MATE_AVATAR_STYLES = [
|
|
8
|
-
{ id: 'thumbs', name: 'Thumbs' },
|
|
9
|
-
{ id: 'bottts', name: 'Bots' },
|
|
10
|
-
{ id: 'pixel-art', name: 'Pixel' },
|
|
11
|
-
{ id: 'adventurer', name: 'Adventurer' },
|
|
12
|
-
{ id: 'micah', name: 'Micah' },
|
|
13
|
-
{ id: 'fun-emoji', name: 'Emoji' },
|
|
14
|
-
{ id: 'icons', name: 'Icons' },
|
|
15
|
-
];
|
|
2
|
+
import { imprintDataUrl } from './avatar-imprint.js';
|
|
16
3
|
|
|
17
4
|
export function avatarUrl(style, seed, size) {
|
|
18
5
|
// Legacy user styles remain part of the seed identity, never the artwork.
|
|
19
6
|
return imprintDataUrl({ style: style || 'imprint', seed: seed || 'anonymous', size: size || 64 });
|
|
20
7
|
}
|
|
21
8
|
|
|
22
|
-
export function mateStyleAvatarUrl(style, seed, size) {
|
|
23
|
-
var normalizedStyle = style || 'imprint';
|
|
24
|
-
var normalizedSeed = seed || 'anonymous';
|
|
25
|
-
var normalizedSize = size || 64;
|
|
26
|
-
var isHistorical = MATE_AVATAR_STYLES.some(function (entry) { return entry.id === normalizedStyle; });
|
|
27
|
-
if (isHistorical) {
|
|
28
|
-
return '/api/generated-avatar?style=' + encodeURIComponent(normalizedStyle)
|
|
29
|
-
+ '&seed=' + encodeURIComponent(normalizedSeed)
|
|
30
|
-
+ '&size=' + encodeURIComponent(normalizedSize);
|
|
31
|
-
}
|
|
32
|
-
return imprintDataUrl({ style: normalizedStyle, seed: normalizedSeed, size: normalizedSize });
|
|
33
|
-
}
|
|
34
|
-
|
|
35
9
|
// Use the same bounded account identity for fresh fallbacks across every surface.
|
|
36
10
|
export function userAvatarSeed(user) {
|
|
37
11
|
var profile = user && user.profile ? user.profile : user;
|
|
@@ -48,24 +22,24 @@ export function userAvatarUrl(user, size) {
|
|
|
48
22
|
return avatarUrl(style, userAvatarSeed(user), size);
|
|
49
23
|
}
|
|
50
24
|
|
|
51
|
-
|
|
52
|
-
var
|
|
53
|
-
|
|
54
|
-
var
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
return
|
|
25
|
+
function mappedMateAvatarId(mate) {
|
|
26
|
+
var p = mate.profile || mate;
|
|
27
|
+
var key = JSON.stringify([mate.id || '', p.avatarStyle || 'imprint', p.avatarSeed || mate.id || p.displayName || mate.name || 'Mate']);
|
|
28
|
+
var hash = 2166136261;
|
|
29
|
+
for (var i = 0; i < key.length; i++) hash = Math.imul(hash ^ key.charCodeAt(i), 16777619) >>> 0;
|
|
30
|
+
var index = hash % 96;
|
|
31
|
+
return (index < 48 ? 'B' : 'C') + String(index % 48 + 1).padStart(2, '0');
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export function mateCatalogAvatarUrl(id) {
|
|
35
|
+
if (id === 'lead-clay') return '/mate-avatars/lead-clay.png?v=4';
|
|
36
|
+
return typeof id === 'string' && /^[BC](0[1-9]|[1-3][0-9]|4[0-8])$/.test(id) ? '/mate-avatars/' + id + '.png?v=4' : '';
|
|
58
37
|
}
|
|
59
38
|
|
|
60
39
|
// Build avatar URL for a mate object, preferring custom avatar if set.
|
|
61
40
|
export function mateAvatarUrl(mate, size) {
|
|
62
|
-
if (!mate) return
|
|
41
|
+
if (!mate) return mateCatalogAvatarUrl('B01');
|
|
63
42
|
var p = mate.profile || mate;
|
|
64
43
|
if (p.avatarCustom || mate.avatarCustom) return p.avatarCustom || mate.avatarCustom;
|
|
65
|
-
|
|
66
|
-
var style = p.avatarStyle || mate.avatarStyle || 'imprint';
|
|
67
|
-
if (style !== 'imprint' && style !== 'initial') {
|
|
68
|
-
return mateStyleAvatarUrl(style, p.avatarSeed || mate.avatarSeed || mate.id || identity, size);
|
|
69
|
-
}
|
|
70
|
-
return mateMarkUrl(identity, size);
|
|
44
|
+
return mateCatalogAvatarUrl(p.avatarCatalogId) || mateCatalogAvatarUrl(mate.builtinKey === 'clay' ? 'lead-clay' : mappedMateAvatarId(mate));
|
|
71
45
|
}
|
|
@@ -155,13 +155,22 @@ export function setIsUserScrolledUp(value) { isUserScrolledUp = value; }
|
|
|
155
155
|
|
|
156
156
|
export function addToMessages(element) {
|
|
157
157
|
var messagesEl = getMessagesEl();
|
|
158
|
-
addHistoryIndex(element, store.get('currentHistoryIndex'));
|
|
158
|
+
addHistoryIndex(element, store.get('currentHistoryIndexes') || store.get('currentHistoryIndex'));
|
|
159
159
|
if (prependAnchor) messagesEl.insertBefore(element, prependAnchor);
|
|
160
160
|
else messagesEl.appendChild(element);
|
|
161
161
|
keepActiveThinkingAtTail();
|
|
162
162
|
}
|
|
163
163
|
|
|
164
164
|
export function addHistoryIndex(element, historyIndex) {
|
|
165
|
+
if (Array.isArray(historyIndex)) {
|
|
166
|
+
if (!element) return;
|
|
167
|
+
var indexes = new Set((element.dataset.historyIndexes || "").split(",").filter(Boolean));
|
|
168
|
+
for (var i = 0; i < historyIndex.length; i++) {
|
|
169
|
+
if (Number.isSafeInteger(historyIndex[i]) && historyIndex[i] >= 0) indexes.add(String(historyIndex[i]));
|
|
170
|
+
}
|
|
171
|
+
element.dataset.historyIndexes = Array.from(indexes).join(",");
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
165
174
|
if (!element || !Number.isSafeInteger(historyIndex) || historyIndex < 0) return;
|
|
166
175
|
var existing = element.dataset.historyIndexes || "";
|
|
167
176
|
if (existing.split(",").indexOf(String(historyIndex)) !== -1) return;
|