clay-server 5.2.0-beta.1 → 5.2.0-beta.11

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 (608) hide show
  1. package/README.md +0 -4
  2. package/lib/account-auth-socket.js +1 -0
  3. package/lib/builtin-mates.js +19 -16
  4. package/lib/bundled-skills/clay-agent-browser/SKILL.md +6 -2
  5. package/lib/canonical-clay-record-authority.js +15 -0
  6. package/lib/canonical-clay-scheduling-authority.js +19 -0
  7. package/lib/claude-hook-installer.js +1 -239
  8. package/lib/claude-jsonl-watcher.js +1 -204
  9. package/lib/clay-control-presentation-binding.js +96 -0
  10. package/lib/clay-control-presentation.js +128 -0
  11. package/lib/clay-control-target-projection.js +26 -0
  12. package/lib/clay-mate-chat-receipts.js +26 -0
  13. package/lib/clay-mate-chat.js +88 -0
  14. package/lib/clay-mate-knowledge-input.js +26 -0
  15. package/lib/clay-mate-knowledge.js +95 -0
  16. package/lib/clay-mate-lifecycle.js +95 -0
  17. package/lib/clay-product-control-input.js +33 -0
  18. package/lib/clay-product-control-tools.js +52 -0
  19. package/lib/clay-product-control.js +250 -0
  20. package/lib/clay-project-lifecycle.js +154 -0
  21. package/lib/clay-project-record-input.js +44 -0
  22. package/lib/clay-project-records.js +84 -0
  23. package/lib/clay-scheduling-input.js +21 -0
  24. package/lib/clay-scheduling-receipts.js +26 -0
  25. package/lib/clay-scheduling.js +119 -0
  26. package/lib/clay-screen-controls.js +104 -0
  27. package/lib/clay-skill-install.js +1 -33
  28. package/lib/clay-vendor-usage.js +44 -0
  29. package/lib/clay-workspace-controls.js +84 -0
  30. package/lib/clay-workspace-input.js +17 -0
  31. package/lib/clay-workspace-receipts.js +26 -0
  32. package/lib/cli-sessions.js +1 -300
  33. package/lib/codex-defaults.js +1 -28
  34. package/lib/context-usage.js +3 -2
  35. package/lib/contextual-screen-snapshot.js +38 -0
  36. package/lib/daemon-project-access.js +11 -0
  37. package/lib/daemon-project-lifecycle-callbacks.js +15 -0
  38. package/lib/daemon-project-lifecycle.js +262 -0
  39. package/lib/daemon-projects.js +1 -1
  40. package/lib/daemon.js +78 -276
  41. package/lib/default-ai-runtime.js +4 -8
  42. package/lib/dm-digest-cursor.js +120 -0
  43. package/lib/email-mcp-server.js +1 -1
  44. package/lib/github-star-count.js +147 -0
  45. package/lib/issues-service.js +29 -15
  46. package/lib/kiro-defaults.js +1 -22
  47. package/lib/knowledge-db-import-validation.js +46 -0
  48. package/lib/knowledge-db-import.js +99 -0
  49. package/lib/knowledge-db-service.js +24 -33
  50. package/lib/knowledge-db-storage-nedb-maintenance.js +99 -0
  51. package/lib/knowledge-db-storage-nedb.js +66 -0
  52. package/lib/knowledge-db-storage.js +72 -0
  53. package/lib/knowledge-db-validation.js +0 -0
  54. package/lib/knowledge-document-index.js +2 -1
  55. package/lib/knowledge-file-store.js +7 -1
  56. package/lib/knowledge-product-operations.js +46 -0
  57. package/lib/mate-avatar-catalog.js +12 -0
  58. package/lib/mate-avatar-migration.js +41 -0
  59. package/lib/mate-context-service.js +138 -0
  60. package/lib/mate-context-tools.js +21 -0
  61. package/lib/mate-creation-mcp-server.js +2 -0
  62. package/lib/mate-knowledge-canonical-access.js +10 -0
  63. package/lib/mate-knowledge-mate-bound.js +53 -0
  64. package/lib/mate-knowledge-mcp-server.js +55 -8
  65. package/lib/mate-knowledge-service.js +16 -34
  66. package/lib/mate-knowledge-text-tools.js +106 -0
  67. package/lib/mate-lifecycle-service.js +94 -0
  68. package/lib/mate-message-delivery.js +43 -0
  69. package/lib/mate-ready-creation.js +9 -1
  70. package/lib/mate-schedule-input.js +29 -0
  71. package/lib/mate-schedule-lifecycle.js +151 -0
  72. package/lib/mate-scheduling.js +103 -0
  73. package/lib/mates.js +18 -6
  74. package/lib/mcp-agent-tools.js +117 -0
  75. package/lib/mcp-connection-store.js +119 -15
  76. package/lib/mcp-import-credentials.js +31 -0
  77. package/lib/mcp-local-transport.js +13 -0
  78. package/lib/mcp-oauth.js +8 -6
  79. package/lib/mcp-proxy.js +2 -32
  80. package/lib/mcp-query-bridge.js +30 -0
  81. package/lib/mcp-remote-connections.js +74 -20
  82. package/lib/mcp-source-adapters.js +1 -0
  83. package/lib/mcp-source-context.js +1 -0
  84. package/lib/mcp-source-discovery.js +1 -0
  85. package/lib/mcp-source-plugins.js +1 -0
  86. package/lib/mcp-source-restrictions.js +1 -0
  87. package/lib/mcp-tool-policy.js +9 -0
  88. package/lib/notes-checklist.js +92 -0
  89. package/lib/notes.js +51 -4
  90. package/lib/os-user-diagnostics.js +2 -4
  91. package/lib/os-users.js +24 -70
  92. package/lib/pane-pending-interactions.js +20 -0
  93. package/lib/pane-session-activation.js +114 -0
  94. package/lib/pane-session-transport.js +26 -0
  95. package/lib/project-admin-overview.js +51 -0
  96. package/lib/project-ask-user.js +8 -4
  97. package/lib/project-connection.js +14 -10
  98. package/lib/project-control-git-view.js +12 -0
  99. package/lib/project-debate.js +1 -0
  100. package/lib/project-delegated-follow-up.js +2 -1
  101. package/lib/project-directory-claim.js +65 -0
  102. package/lib/project-file-operations.js +61 -0
  103. package/lib/project-filesystem.js +15 -85
  104. package/lib/project-full-access.js +23 -2
  105. package/lib/project-http.js +7 -4
  106. package/lib/project-knowledge.js +32 -18
  107. package/lib/project-lifecycle-operations.js +98 -0
  108. package/lib/project-lifecycle-process-witness.js +32 -0
  109. package/lib/project-lifecycle-runtime.js +50 -0
  110. package/lib/project-linux-access.js +22 -0
  111. package/lib/project-logs-canonical-clay.js +27 -0
  112. package/lib/project-logs-clay-query.js +16 -0
  113. package/lib/project-logs-schema.js +4 -2
  114. package/lib/project-logs-service.js +8 -7
  115. package/lib/project-logs.js +1 -0
  116. package/lib/project-loop.js +1 -0
  117. package/lib/project-mate-chat-control.js +55 -0
  118. package/lib/project-mate-creation-proposal.js +18 -3
  119. package/lib/project-mate-interaction.js +40 -62
  120. package/lib/project-mcp.js +54 -16
  121. package/lib/project-models.js +14 -31
  122. package/lib/project-notifications.js +76 -17
  123. package/lib/project-ownership.js +77 -0
  124. package/lib/project-pair-result-delivery.js +14 -3
  125. package/lib/project-pair-usage.js +12 -13
  126. package/lib/project-pending-message-queue.js +4 -1
  127. package/lib/project-product-control.js +89 -0
  128. package/lib/project-product-session-queue.js +46 -0
  129. package/lib/project-push-access.js +28 -0
  130. package/lib/project-scheduled-message-queue.js +30 -0
  131. package/lib/project-scheduled-messages.js +67 -68
  132. package/lib/project-scheduled-task-control.js +83 -0
  133. package/lib/project-scheduled-tasks.js +13 -2
  134. package/lib/project-scheduling-access.js +10 -0
  135. package/lib/project-session-actions.js +65 -0
  136. package/lib/project-session-delete.js +8 -1
  137. package/lib/project-session-document.js +27 -7
  138. package/lib/project-session-github.js +63 -19
  139. package/lib/project-session-history-actions.js +167 -0
  140. package/lib/project-session-linear.js +14 -6
  141. package/lib/project-session-notes.js +40 -11
  142. package/lib/project-session-pair.js +1 -1
  143. package/lib/project-session-runtime-actions.js +64 -0
  144. package/lib/project-session-spawn.js +2 -3
  145. package/lib/project-session-vendor.js +55 -0
  146. package/lib/project-sessions.js +160 -290
  147. package/lib/project-shared-browser.js +78 -17
  148. package/lib/project-start-protocol.js +29 -0
  149. package/lib/project-studio-presentation.js +58 -0
  150. package/lib/project-user-message.js +67 -1
  151. package/lib/project-vendor-login.js +8 -36
  152. package/lib/project-workspace-operations.js +126 -0
  153. package/lib/project-workspace-query.js +19 -2
  154. package/lib/project.js +181 -45
  155. package/lib/public/app.js +71 -17
  156. package/lib/public/appearance-bootstrap.js +16 -0
  157. package/lib/public/css/clay-tool-activity.css +51 -0
  158. package/lib/public/css/clay-workspace.css +29 -0
  159. package/lib/public/css/command-palette.css +12 -33
  160. package/lib/public/css/contextual-clay.css +240 -0
  161. package/lib/public/css/filebrowser.css +1 -1
  162. package/lib/public/css/home-debate-planning.css +2 -0
  163. package/lib/public/css/home-mate-creation.css +5 -0
  164. package/lib/public/css/input.css +6 -0
  165. package/lib/public/css/mate-avatar-gallery.css +12 -0
  166. package/lib/public/css/mate-conversation.css +10 -5
  167. package/lib/public/css/mate-loading-scene.css +21 -0
  168. package/lib/public/css/messages.css +6 -2
  169. package/lib/public/css/overlays.css +68 -258
  170. package/lib/public/css/project-admin-overview.css +13 -0
  171. package/lib/public/css/project-mate-creation.css +5 -6
  172. package/lib/public/css/project-start.css +108 -0
  173. package/lib/public/css/projects-hub.css +53 -14
  174. package/lib/public/css/session-folders.css +11 -0
  175. package/lib/public/css/session-github.css +46 -1
  176. package/lib/public/css/settings-shell.css +103 -0
  177. package/lib/public/css/shared-browser.css +35 -1
  178. package/lib/public/css/sidebar.css +7 -0
  179. package/lib/public/css/sticky-notes.css +87 -1
  180. package/lib/public/css/title-bar.css +79 -0
  181. package/lib/public/index.html +61 -68
  182. package/lib/public/mate-avatars/B01.png +0 -0
  183. package/lib/public/mate-avatars/B02.png +0 -0
  184. package/lib/public/mate-avatars/B03.png +0 -0
  185. package/lib/public/mate-avatars/B04.png +0 -0
  186. package/lib/public/mate-avatars/B05.png +0 -0
  187. package/lib/public/mate-avatars/B06.png +0 -0
  188. package/lib/public/mate-avatars/B07.png +0 -0
  189. package/lib/public/mate-avatars/B08.png +0 -0
  190. package/lib/public/mate-avatars/B09.png +0 -0
  191. package/lib/public/mate-avatars/B10.png +0 -0
  192. package/lib/public/mate-avatars/B11.png +0 -0
  193. package/lib/public/mate-avatars/B12.png +0 -0
  194. package/lib/public/mate-avatars/B13.png +0 -0
  195. package/lib/public/mate-avatars/B14.png +0 -0
  196. package/lib/public/mate-avatars/B15.png +0 -0
  197. package/lib/public/mate-avatars/B16.png +0 -0
  198. package/lib/public/mate-avatars/B17.png +0 -0
  199. package/lib/public/mate-avatars/B18.png +0 -0
  200. package/lib/public/mate-avatars/B19.png +0 -0
  201. package/lib/public/mate-avatars/B20.png +0 -0
  202. package/lib/public/mate-avatars/B21.png +0 -0
  203. package/lib/public/mate-avatars/B22.png +0 -0
  204. package/lib/public/mate-avatars/B23.png +0 -0
  205. package/lib/public/mate-avatars/B24.png +0 -0
  206. package/lib/public/mate-avatars/B25.png +0 -0
  207. package/lib/public/mate-avatars/B26.png +0 -0
  208. package/lib/public/mate-avatars/B27.png +0 -0
  209. package/lib/public/mate-avatars/B28.png +0 -0
  210. package/lib/public/mate-avatars/B29.png +0 -0
  211. package/lib/public/mate-avatars/B30.png +0 -0
  212. package/lib/public/mate-avatars/B31.png +0 -0
  213. package/lib/public/mate-avatars/B32.png +0 -0
  214. package/lib/public/mate-avatars/B33.png +0 -0
  215. package/lib/public/mate-avatars/B34.png +0 -0
  216. package/lib/public/mate-avatars/B35.png +0 -0
  217. package/lib/public/mate-avatars/B36.png +0 -0
  218. package/lib/public/mate-avatars/B37.png +0 -0
  219. package/lib/public/mate-avatars/B38.png +0 -0
  220. package/lib/public/mate-avatars/B39.png +0 -0
  221. package/lib/public/mate-avatars/B40.png +0 -0
  222. package/lib/public/mate-avatars/B41.png +0 -0
  223. package/lib/public/mate-avatars/B42.png +0 -0
  224. package/lib/public/mate-avatars/B43.png +0 -0
  225. package/lib/public/mate-avatars/B44.png +0 -0
  226. package/lib/public/mate-avatars/B45.png +0 -0
  227. package/lib/public/mate-avatars/B46.png +0 -0
  228. package/lib/public/mate-avatars/B47.png +0 -0
  229. package/lib/public/mate-avatars/B48.png +0 -0
  230. package/lib/public/mate-avatars/C01.png +0 -0
  231. package/lib/public/mate-avatars/C02.png +0 -0
  232. package/lib/public/mate-avatars/C03.png +0 -0
  233. package/lib/public/mate-avatars/C04.png +0 -0
  234. package/lib/public/mate-avatars/C05.png +0 -0
  235. package/lib/public/mate-avatars/C06.png +0 -0
  236. package/lib/public/mate-avatars/C07.png +0 -0
  237. package/lib/public/mate-avatars/C08.png +0 -0
  238. package/lib/public/mate-avatars/C09.png +0 -0
  239. package/lib/public/mate-avatars/C10.png +0 -0
  240. package/lib/public/mate-avatars/C11.png +0 -0
  241. package/lib/public/mate-avatars/C12.png +0 -0
  242. package/lib/public/mate-avatars/C13.png +0 -0
  243. package/lib/public/mate-avatars/C14.png +0 -0
  244. package/lib/public/mate-avatars/C15.png +0 -0
  245. package/lib/public/mate-avatars/C16.png +0 -0
  246. package/lib/public/mate-avatars/C17.png +0 -0
  247. package/lib/public/mate-avatars/C18.png +0 -0
  248. package/lib/public/mate-avatars/C19.png +0 -0
  249. package/lib/public/mate-avatars/C20.png +0 -0
  250. package/lib/public/mate-avatars/C21.png +0 -0
  251. package/lib/public/mate-avatars/C22.png +0 -0
  252. package/lib/public/mate-avatars/C23.png +0 -0
  253. package/lib/public/mate-avatars/C24.png +0 -0
  254. package/lib/public/mate-avatars/C25.png +0 -0
  255. package/lib/public/mate-avatars/C26.png +0 -0
  256. package/lib/public/mate-avatars/C27.png +0 -0
  257. package/lib/public/mate-avatars/C28.png +0 -0
  258. package/lib/public/mate-avatars/C29.png +0 -0
  259. package/lib/public/mate-avatars/C30.png +0 -0
  260. package/lib/public/mate-avatars/C31.png +0 -0
  261. package/lib/public/mate-avatars/C32.png +0 -0
  262. package/lib/public/mate-avatars/C33.png +0 -0
  263. package/lib/public/mate-avatars/C34.png +0 -0
  264. package/lib/public/mate-avatars/C35.png +0 -0
  265. package/lib/public/mate-avatars/C36.png +0 -0
  266. package/lib/public/mate-avatars/C37.png +0 -0
  267. package/lib/public/mate-avatars/C38.png +0 -0
  268. package/lib/public/mate-avatars/C39.png +0 -0
  269. package/lib/public/mate-avatars/C40.png +0 -0
  270. package/lib/public/mate-avatars/C41.png +0 -0
  271. package/lib/public/mate-avatars/C42.png +0 -0
  272. package/lib/public/mate-avatars/C43.png +0 -0
  273. package/lib/public/mate-avatars/C44.png +0 -0
  274. package/lib/public/mate-avatars/C45.png +0 -0
  275. package/lib/public/mate-avatars/C46.png +0 -0
  276. package/lib/public/mate-avatars/C47.png +0 -0
  277. package/lib/public/mate-avatars/C48.png +0 -0
  278. package/lib/public/mate-avatars/catalog.json +482 -0
  279. package/lib/public/mate-avatars/lead-clay.png +0 -0
  280. package/lib/public/modules/admin-settings-invitations.js +2 -2
  281. package/lib/public/modules/admin-settings-projects.js +8 -4
  282. package/lib/public/modules/admin-settings-ui.js +20 -4
  283. package/lib/public/modules/admin-settings-users.js +4 -4
  284. package/lib/public/modules/app-connection.js +11 -1
  285. package/lib/public/modules/app-favicon.js +18 -9
  286. package/lib/public/modules/app-header.js +7 -4
  287. package/lib/public/modules/app-home-hub.js +2 -1
  288. package/lib/public/modules/app-loop-ui.js +2 -0
  289. package/lib/public/modules/app-message-router.js +22 -1
  290. package/lib/public/modules/app-messages.js +125 -19
  291. package/lib/public/modules/app-misc.js +3 -1
  292. package/lib/public/modules/app-notifications.js +11 -5
  293. package/lib/public/modules/app-panels.js +61 -123
  294. package/lib/public/modules/app-projects.js +14 -407
  295. package/lib/public/modules/app-rate-limit.js +19 -28
  296. package/lib/public/modules/app-rendering.js +4 -3
  297. package/lib/public/modules/avatar.js +15 -41
  298. package/lib/public/modules/chat-render-runtime.js +20 -0
  299. package/lib/public/modules/clay-browser-links.js +47 -0
  300. package/lib/public/modules/clay-control-activity.js +214 -0
  301. package/lib/public/modules/clay-control-copy.js +36 -0
  302. package/lib/public/modules/clay-control-detail-targets.js +44 -0
  303. package/lib/public/modules/clay-control-object-targets.js +52 -0
  304. package/lib/public/modules/clay-control-target-visibility.js +12 -0
  305. package/lib/public/modules/clay-control-targets.js +44 -0
  306. package/lib/public/modules/clay-log-links.js +23 -0
  307. package/lib/public/modules/clay-navigation-render.js +52 -0
  308. package/lib/public/modules/clay-owner-navigation.js +33 -0
  309. package/lib/public/modules/clay-session-links.js +31 -0
  310. package/lib/public/modules/clay-studio-bridge.js +20 -0
  311. package/lib/public/modules/clay-studio-document.js +67 -0
  312. package/lib/public/modules/clay-studio-render.js +146 -0
  313. package/lib/public/modules/clay-tool-activity.js +140 -0
  314. package/lib/public/modules/clay-tool-presentation.js +343 -0
  315. package/lib/public/modules/command-palette.js +162 -40
  316. package/lib/public/modules/contextual-ask-session.js +26 -0
  317. package/lib/public/modules/contextual-clay-geometry.js +155 -0
  318. package/lib/public/modules/contextual-clay-session.js +130 -0
  319. package/lib/public/modules/contextual-clay-workspace.js +169 -0
  320. package/lib/public/modules/contextual-clay.js +252 -0
  321. package/lib/public/modules/contextual-composer.js +91 -0
  322. package/lib/public/modules/contextual-mate-context.js +117 -0
  323. package/lib/public/modules/contextual-mate-hint.js +40 -0
  324. package/lib/public/modules/contextual-mate-identity.js +23 -0
  325. package/lib/public/modules/contextual-mate-sessions.js +134 -0
  326. package/lib/public/modules/contextual-search.js +137 -0
  327. package/lib/public/modules/contextual-session-citations.js +58 -0
  328. package/lib/public/modules/debate.js +1 -0
  329. package/lib/public/modules/default-ai.js +11 -3
  330. package/lib/public/modules/elicitation-form.js +5 -0
  331. package/lib/public/modules/filebrowser.js +20 -1
  332. package/lib/public/modules/generation-stop.js +8 -5
  333. package/lib/public/modules/git-panel.js +3 -1
  334. package/lib/public/modules/github-star.js +66 -0
  335. package/lib/public/modules/history-replay-batch.js +13 -1
  336. package/lib/public/modules/home-debate-live.js +2 -0
  337. package/lib/public/modules/home-debate-planning.js +7 -7
  338. package/lib/public/modules/home-mate-avatar-editor.js +127 -208
  339. package/lib/public/modules/home-mate-chat.js +8 -6
  340. package/lib/public/modules/home-mate-creation.js +73 -1
  341. package/lib/public/modules/home-mate-settings.js +19 -12
  342. package/lib/public/modules/icon-strip-tooltip.js +2 -1
  343. package/lib/public/modules/input.js +88 -10
  344. package/lib/public/modules/issues-render.js +3 -2
  345. package/lib/public/modules/knowledge-db-workbench.js +4 -4
  346. package/lib/public/modules/markdown.js +6 -34
  347. package/lib/public/modules/mate-avatar-catalog.js +97 -0
  348. package/lib/public/modules/mate-knowledge-workbench.js +1 -1
  349. package/lib/public/modules/mate-loading-scene.js +17 -0
  350. package/lib/public/modules/mate-management.js +40 -7
  351. package/lib/public/modules/mcp-connection-view.js +31 -13
  352. package/lib/public/modules/mcp-discovery-view.js +31 -0
  353. package/lib/public/modules/mcp-ui.js +23 -4
  354. package/lib/public/modules/mention.js +3 -0
  355. package/lib/public/modules/message-delivery.js +20 -2
  356. package/lib/public/modules/model-picker.js +2 -0
  357. package/lib/public/modules/pane-activation.js +214 -0
  358. package/lib/public/modules/pane-binding.js +82 -0
  359. package/lib/public/modules/pane-bridge.js +7 -4
  360. package/lib/public/modules/pane-browser-bridge.js +22 -0
  361. package/lib/public/modules/pane-file-bridge.js +4 -0
  362. package/lib/public/modules/pane-issue-bridge.js +4 -1
  363. package/lib/public/modules/pending-message-queue.js +1 -0
  364. package/lib/public/modules/permission-control.js +5 -4
  365. package/lib/public/modules/personal-settings-dialog.js +7 -1
  366. package/lib/public/modules/product-review.js +26 -0
  367. package/lib/public/modules/profile.js +12 -241
  368. package/lib/public/modules/project-access-recovery.js +17 -0
  369. package/lib/public/modules/project-admin-overview.js +21 -0
  370. package/lib/public/modules/project-chat-identity.js +13 -4
  371. package/lib/public/modules/project-logs-render.js +3 -0
  372. package/lib/public/modules/project-mate-creation-workspace.js +13 -4
  373. package/lib/public/modules/project-mate-navigation.js +144 -22
  374. package/lib/public/modules/project-session-visibility-settings.js +19 -16
  375. package/lib/public/modules/project-settings.js +119 -129
  376. package/lib/public/modules/project-start-dialog.js +130 -0
  377. package/lib/public/modules/project-start-folder-state.js +78 -0
  378. package/lib/public/modules/project-start-folder-view.js +190 -0
  379. package/lib/public/modules/project-start-forms.js +66 -0
  380. package/lib/public/modules/project-start-path.js +60 -0
  381. package/lib/public/modules/project-start-state.js +54 -0
  382. package/lib/public/modules/project-start-submit.js +67 -0
  383. package/lib/public/modules/projects-hub-view.js +33 -14
  384. package/lib/public/modules/projects-hub.js +10 -6
  385. package/lib/public/modules/rewind.js +5 -0
  386. package/lib/public/modules/scheduled-tasks.js +2 -0
  387. package/lib/public/modules/scheduler.js +2 -0
  388. package/lib/public/modules/search-clay-chat.js +5 -440
  389. package/lib/public/modules/server-settings.js +36 -91
  390. package/lib/public/modules/session-actions.js +5 -2
  391. package/lib/public/modules/session-context-menu.js +5 -0
  392. package/lib/public/modules/session-create-form.js +10 -10
  393. package/lib/public/modules/session-folder-layout.js +1 -1
  394. package/lib/public/modules/session-folder-view-menu.js +9 -0
  395. package/lib/public/modules/session-github.js +85 -14
  396. package/lib/public/modules/session-rich-drafts.js +21 -0
  397. package/lib/public/modules/session-switch-defer.js +67 -0
  398. package/lib/public/modules/session-work-primary.js +51 -0
  399. package/lib/public/modules/settings-defaults.js +27 -28
  400. package/lib/public/modules/settings-project-target.js +56 -0
  401. package/lib/public/modules/settings-select.js +1 -1
  402. package/lib/public/modules/settings-shell-registry.js +88 -0
  403. package/lib/public/modules/settings-shell-view.js +104 -0
  404. package/lib/public/modules/settings-shell.js +342 -0
  405. package/lib/public/modules/shared-browser-settings.js +112 -0
  406. package/lib/public/modules/shared-browser-tabs.js +13 -3
  407. package/lib/public/modules/shared-browser.js +29 -6
  408. package/lib/public/modules/sidebar-mobile.js +12 -33
  409. package/lib/public/modules/sidebar-projects.js +3 -1
  410. package/lib/public/modules/sidebar-session-folders-ui.js +1 -1
  411. package/lib/public/modules/sidebar-sessions.js +1 -0
  412. package/lib/public/modules/split-group-restore.js +68 -0
  413. package/lib/public/modules/split-pair-ui.js +1 -0
  414. package/lib/public/modules/split-pane-reconciler.js +15 -0
  415. package/lib/public/modules/split-pane-renderer.js +87 -6
  416. package/lib/public/modules/split-session-boundary.js +1 -1
  417. package/lib/public/modules/split-view.js +60 -68
  418. package/lib/public/modules/sticky-note-markdown.js +72 -6
  419. package/lib/public/modules/sticky-notes-actions.js +30 -0
  420. package/lib/public/modules/sticky-notes-browser.js +9 -2
  421. package/lib/public/modules/sticky-notes-card.js +23 -7
  422. package/lib/public/modules/sticky-notes-checklist.js +116 -0
  423. package/lib/public/modules/sticky-notes-editor.js +108 -44
  424. package/lib/public/modules/sticky-notes-shared.js +50 -2
  425. package/lib/public/modules/sticky-notes-state.js +66 -0
  426. package/lib/public/modules/sticky-notes.js +34 -51
  427. package/lib/public/modules/stt-controller.js +4 -1
  428. package/lib/public/modules/stt-recording.js +1 -1
  429. package/lib/public/modules/stt.js +7 -2
  430. package/lib/public/modules/terminal.js +9 -0
  431. package/lib/public/modules/theme.js +18 -3
  432. package/lib/public/modules/thinking-lifecycle.js +33 -3
  433. package/lib/public/modules/thinking-view.js +23 -1
  434. package/lib/public/modules/tools.js +60 -11
  435. package/lib/public/modules/tui-grab.js +1 -2
  436. package/lib/public/modules/user-settings-appearance.js +10 -3
  437. package/lib/public/modules/user-settings-editors.js +1 -1
  438. package/lib/public/modules/user-settings-layout.js +14 -30
  439. package/lib/public/modules/user-settings-preferences.js +6 -2
  440. package/lib/public/modules/user-settings-profile.js +13 -3
  441. package/lib/public/modules/user-settings.js +18 -84
  442. package/lib/public/modules/vendor-login-browser.js +5 -3
  443. package/lib/public/modules/vendor-login.js +2 -2
  444. package/lib/public/modules/vendor-priority.js +15 -1
  445. package/lib/public/modules/vendor-usage-format.js +93 -0
  446. package/lib/public/modules/vendor-usage-list.js +45 -0
  447. package/lib/public/modules/vendor-usage-model.js +215 -0
  448. package/lib/public/modules/vendor-usage-overview.js +312 -0
  449. package/lib/public/modules/wireframe-workbench.js +5 -2
  450. package/lib/public/muse-avatar.svg +4 -0
  451. package/lib/public/style.css +14 -6
  452. package/lib/public/sw.js +3 -1
  453. package/lib/public/welcome-art/conversation-desk.png +0 -0
  454. package/lib/public/welcome-art/mate-clay.png +0 -0
  455. package/lib/public/welcome-art/project-clay.png +0 -0
  456. package/lib/safe-bash-commands.js +3 -45
  457. package/lib/scheduled-task-records.js +3 -1
  458. package/lib/scheduler.js +2 -0
  459. package/lib/sdk-bridge.js +348 -402
  460. package/lib/sdk-foreground-admission.js +16 -0
  461. package/lib/sdk-mcp-descriptors.js +2 -37
  462. package/lib/sdk-message-processor.js +61 -18
  463. package/lib/sdk-quota-snapshot.js +21 -3
  464. package/lib/sdk-response-recovery.js +1 -0
  465. package/lib/sdk-worker.js +2 -677
  466. package/lib/server-admin.js +63 -16
  467. package/lib/server-appearance-settings.js +13 -1
  468. package/lib/server-contextual-clay-settings.js +40 -0
  469. package/lib/server-contextual-mate-sessions.js +70 -0
  470. package/lib/server-dm.js +2 -1
  471. package/lib/server-github-stars.js +39 -0
  472. package/lib/server-global-ws.js +26 -32
  473. package/lib/server-home-chat-events.js +18 -4
  474. package/lib/server-home-chat.js +22 -20
  475. package/lib/server-home-clay-entry.js +23 -4
  476. package/lib/server-home-clay-session-links.js +29 -9
  477. package/lib/server-home-mate-creation.js +1 -0
  478. package/lib/server-home-mcp-consent.js +14 -0
  479. package/lib/server-mates.js +25 -62
  480. package/lib/server-owner-ui.js +118 -0
  481. package/lib/server-path-access.js +38 -0
  482. package/lib/server-project-removal.js +22 -0
  483. package/lib/server-settings.js +6 -1
  484. package/lib/server.js +167 -43
  485. package/lib/session-config-transition.js +45 -0
  486. package/lib/session-folders.js +7 -2
  487. package/lib/session-fork-history.js +21 -0
  488. package/lib/session-github.js +9 -2
  489. package/lib/session-hygiene.js +3 -35
  490. package/lib/session-notes-mcp-server.js +26 -4
  491. package/lib/session-notes-writes.js +88 -0
  492. package/lib/session-permission-mode.js +4 -3
  493. package/lib/session-skill-scope.js +11 -0
  494. package/lib/session-visibility.js +25 -10
  495. package/lib/session-work-primary.js +50 -0
  496. package/lib/sessions.js +66 -99
  497. package/lib/shared-browser-cookie-sync.js +32 -0
  498. package/lib/shared-browser-cookies.js +79 -0
  499. package/lib/shared-browser-runtime.js +25 -9
  500. package/lib/shared-browser-storage-sync.js +43 -0
  501. package/lib/shared-browser-storage.js +101 -0
  502. package/lib/shared-browser-tools.js +2 -1
  503. package/lib/shared-browser-worker.js +46 -10
  504. package/lib/terminal-manager.js +65 -6
  505. package/lib/tool-llm.js +1 -1
  506. package/lib/tui-transcript-index.js +1 -132
  507. package/lib/users-contextual-clay-preferences.js +31 -0
  508. package/lib/users-permissions.js +2 -8
  509. package/lib/users.js +7 -0
  510. package/lib/vendor-login-browser.js +1 -11
  511. package/lib/vendor-usage-acp-readers.js +97 -0
  512. package/lib/vendor-usage-capabilities.js +88 -0
  513. package/lib/vendor-usage-http-readers.js +214 -0
  514. package/lib/vendor-usage-metrics.js +47 -0
  515. package/lib/vendor-usage-native-readers.js +106 -0
  516. package/lib/vendor-usage-overview.js +406 -0
  517. package/lib/vendor-usage-service.js +281 -0
  518. package/lib/workspace-assignment-service.js +25 -0
  519. package/lib/workspace-query-access.js +4 -1
  520. package/lib/workspace-query-mcp-server.js +1 -1
  521. package/lib/workspace-query-service.js +13 -2
  522. package/lib/ws-request.js +1 -0
  523. package/lib/ws-schema.js +22 -4
  524. package/lib/yoke/acp-agent-profiles.js +7 -5
  525. package/lib/yoke/adapters/antigravity.js +3 -14
  526. package/lib/yoke/adapters/claude-query-contract.js +9 -0
  527. package/lib/yoke/adapters/claude.js +66 -50
  528. package/lib/yoke/adapters/codex-query-contract.js +25 -0
  529. package/lib/yoke/adapters/codex.js +98 -123
  530. package/lib/yoke/adapters/kiro.js +3 -1
  531. package/lib/yoke/adapters/muse-query-contract.js +7 -0
  532. package/lib/yoke/adapters/muse.js +122 -0
  533. package/lib/yoke/auth-events.js +17 -0
  534. package/lib/yoke/claude-hook-installer.js +272 -0
  535. package/lib/yoke/claude-jsonl-watcher.js +204 -0
  536. package/lib/yoke/claude-maintenance.js +55 -0
  537. package/lib/yoke/claude-permission-patterns.js +53 -0
  538. package/lib/yoke/claude-response-recovery.js +155 -0
  539. package/lib/yoke/claude-transcript-hygiene.js +34 -0
  540. package/lib/yoke/claude-worker-startup.js +28 -0
  541. package/lib/yoke/clay-skill-install.js +33 -0
  542. package/lib/yoke/cli-sessions.js +300 -0
  543. package/lib/yoke/codex-app-server.js +7 -12
  544. package/lib/yoke/codex-dynamic-tool-names.js +80 -0
  545. package/lib/yoke/codex-idle-recovery.js +81 -1
  546. package/lib/yoke/codex-model-catalog.js +37 -3
  547. package/lib/yoke/codex-recovery-admission.js +164 -0
  548. package/lib/yoke/configuration.js +13 -0
  549. package/lib/yoke/discovery.js +70 -0
  550. package/lib/yoke/errors.js +8 -0
  551. package/lib/yoke/host-environment.js +7 -0
  552. package/lib/yoke/index.js +9 -51
  553. package/lib/yoke/interface.js +116 -0
  554. package/lib/yoke/kiro-acp-server.js +5 -5
  555. package/lib/yoke/legacy-sessions.js +89 -0
  556. package/lib/yoke/login-protocol.js +25 -0
  557. package/lib/yoke/maintenance.js +12 -0
  558. package/lib/yoke/mcp-proxy.js +32 -0
  559. package/lib/yoke/mcp-source-adapters.js +91 -0
  560. package/lib/yoke/mcp-source-context.js +42 -0
  561. package/lib/yoke/mcp-source-discovery.js +169 -0
  562. package/lib/yoke/mcp-source-plugins.js +68 -0
  563. package/lib/yoke/mcp-source-restrictions.js +47 -0
  564. package/lib/yoke/mcp-tool-policy-normalize.js +28 -0
  565. package/lib/yoke/model-preferences.js +6 -0
  566. package/lib/yoke/muse-artifacts.js +36 -0
  567. package/lib/yoke/muse-controls.js +50 -0
  568. package/lib/yoke/muse-input.js +64 -0
  569. package/lib/yoke/muse-items.js +157 -0
  570. package/lib/yoke/muse-policy.js +52 -0
  571. package/lib/yoke/muse-query.js +428 -0
  572. package/lib/yoke/muse-runtime.js +211 -0
  573. package/lib/yoke/muse-services.js +92 -0
  574. package/lib/yoke/muse-skills.js +79 -0
  575. package/lib/yoke/muse-turns.js +71 -0
  576. package/lib/yoke/options/acp.js +2 -0
  577. package/lib/yoke/options/antigravity.js +2 -0
  578. package/lib/yoke/options/claude.js +21 -0
  579. package/lib/yoke/options/codex-defaults.js +29 -0
  580. package/lib/yoke/options/codex-settings.js +21 -0
  581. package/lib/yoke/options/codex.js +6 -0
  582. package/lib/yoke/options/kiro-defaults.js +22 -0
  583. package/lib/yoke/options/kiro.js +5 -0
  584. package/lib/yoke/options/muse.js +5 -0
  585. package/lib/yoke/provider-contract.js +5 -0
  586. package/lib/yoke/providers/antigravity-executable.js +8 -0
  587. package/lib/yoke/providers/claude-executable.js +40 -0
  588. package/lib/yoke/providers/claude-model-descriptions.js +34 -0
  589. package/lib/yoke/providers/claude-process.js +97 -0
  590. package/lib/yoke/providers/claude-provision.js +75 -0
  591. package/lib/yoke/providers/codex-errors.js +8 -0
  592. package/lib/yoke/providers/muse-executable.js +17 -0
  593. package/lib/yoke/provisioning.js +6 -0
  594. package/lib/yoke/query-options.js +10 -0
  595. package/lib/yoke/response-recovery.js +41 -0
  596. package/lib/yoke/sdk-mcp-descriptors.js +37 -0
  597. package/lib/yoke/sdk-server-factory.js +7 -0
  598. package/lib/yoke/session-history.js +8 -0
  599. package/lib/yoke/session-tool-transport.js +34 -13
  600. package/lib/yoke/settings.js +23 -0
  601. package/lib/yoke/source-locations.js +4 -0
  602. package/lib/yoke/title-query.js +18 -7
  603. package/lib/yoke/tui-transcript-index.js +132 -0
  604. package/lib/yoke/usage.js +48 -0
  605. package/lib/yoke/user-input.js +13 -0
  606. package/lib/yoke/vendor-registry.js +87 -3
  607. package/package.json +11 -4
  608. package/lib/public/modules/server-settings-navigation.js +0 -39
package/lib/public/app.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { initStudioBridge } from './modules/clay-studio-bridge.js';
1
2
  import { initSharedBrowser } from './modules/shared-browser.js';
2
3
  import { initGenerationStop } from './modules/generation-stop.js';
3
4
  import { initIssueLinks } from './modules/clay-issue-links.js';
@@ -30,10 +31,11 @@ import { initMateMemory, renderMemoryList, hideMemory } from './modules/mate-mem
30
31
  import { initRewind, setRewindMode, showRewindModal, clearPendingRewindUuid, addRewindButton, onRewindComplete, onRewindError } from './modules/rewind.js';
31
32
  import { initNotifications, showDoneNotification, playDoneSound, isNotifAlertEnabled, isNotifSoundEnabled } from './modules/notifications.js';
32
33
  import { initInput, clearPendingImages, handleInputSync, autoResize, builtinCommands, sendMessage, hasSendableContent, setScheduleBtnDisabled, setScheduleDelayMs, clearScheduleDelay } from './modules/input.js';
33
- import { initQrCode, triggerShare } from './modules/qrcode.js';
34
+ import { initQrCode } from './modules/qrcode.js';
34
35
  import { initFileBrowser, loadRootDirectory, reopenFileViewer, refreshTree, handleFsList, handleFsRead, handleDirChanged, refreshIfOpen, handleFileChanged, handleFileHistory, handleGitDiff, handleFileAt, getPendingNavigate, closeFileViewer, resetFileBrowser } from './modules/filebrowser.js';
35
36
  import { initGitPanel } from './modules/git-panel.js';
36
37
  import { initWorkerPaneLock } from './modules/worker-pane-lock.js';
38
+ import { initPaneActivation } from './modules/pane-activation.js';
37
39
  import { initAutonomousRun } from './modules/autonomous-run.js';
38
40
  import { initLoopInterview } from './modules/loop-interview.js';
39
41
  import { initTerminal, openTerminal, closeTerminal, resetTerminals, handleTermList, handleTermCreated, handleTermOutput, handleTermResized, handleTermExited, handleTermClosed, sendTerminalCommand } from './modules/terminal.js';
@@ -44,6 +46,7 @@ import { initTheme, getThemeColor, getComputedVar, onThemeChange, getCurrentThem
44
46
  import { initTools, resetToolState, saveToolState, restoreToolState, renderAskUserQuestion, markAskUserAnswered, renderPermissionRequest, markPermissionResolved, markPermissionCancelled, renderElicitationRequest, markElicitationResolved, renderPlanBanner, renderPlanCard, handleTodoWrite, handleTaskCreate, handleTaskUpdate, startThinking, appendThinking, stopThinking, resetThinkingGroup, createToolItem, updateToolExecuting, updateToolResult, markAllToolsDone, addTurnMeta, resetTurnMetaCost, enableMainInput, getTools, getPlanContent, setPlanContent, isPlanFilePath, getTodoTools, updateSubagentActivity, addSubagentToolEntry, markSubagentDone, updateSubagentProgress, initSubagentStop, closeToolGroup, removeToolFromGroup } from './modules/tools.js';
45
47
  import { initServerSettings, updateSettingsStats, updateDaemonConfig, handleSetPinResult, handleKeepAwakeChanged, handleAutoContinueChanged, handleRestartResult, handleShutdownResult, handleSharedEnv, handleSharedEnvSaved } from './modules/server-settings.js';
46
48
  import { initProjectSettings } from './modules/project-settings.js';
49
+ import { initSettingsShell, openSettings } from './modules/settings-shell.js';
47
50
  import { initSkills, handleSkillInstalled, handleSkillUninstalled } from './modules/skills.js';
48
51
  import { initMcp } from './modules/mcp-ui.js';
49
52
  import { initScheduler, resetScheduler, handleLoopRegistryUpdated, handleScheduleRunStarted, handleScheduleRunFinished, handleLoopScheduled, openSchedulerToTab, isSchedulerOpen, closeScheduler, enterCraftingMode, exitCraftingMode, handleLoopRegistryFiles, getUpcomingSchedules } from './modules/scheduler.js';
@@ -70,10 +73,15 @@ import { initShellCommand } from './modules/shell-command.js';
70
73
  import { initConnection, connect as _connConnect, setStatus as _connSetStatus, scheduleReconnect as _connScheduleReconnect, cancelReconnect as _connCancelReconnect } from './modules/app-connection.js';
71
74
  import { processMessage as _msgProcessMessage } from './modules/app-messages.js';
72
75
  import { getWs as _getWsRef, setWs as _setWsRef } from './modules/ws-ref.js';
76
+ import { initialProjectStart } from './modules/project-start-state.js';
77
+ import { emptyFolderState } from './modules/project-start-folder-state.js';
78
+ import { openAddProjectModal, initProjectStart } from './modules/project-start-dialog.js';
73
79
  import { initProjectsHub, showProjectsHub, hideProjectsHub } from './modules/projects-hub.js';
74
80
  import { initHomeSurfaceBoot } from './modules/home-surface-boot.js';
75
81
  import { rememberHomePrimarySurface } from './modules/home-surface.js';
76
82
  import { initRateLimit, handleRateLimitEvent as _rlHandleRateLimitEvent, updateRateLimitUsage as _rlUpdateRateLimitUsage, handleFastModeState as _rlHandleFastModeState, resetRateLimitState } from './modules/app-rate-limit.js';
83
+ import { initVendorUsageOverview } from './modules/vendor-usage-overview.js';
84
+ import { initGithubStar } from './modules/github-star.js';
77
85
  import { initCursors, handleRemoteCursorMove as _curHandleRemoteCursorMove, handleRemoteCursorLeave as _curHandleRemoteCursorLeave, handleRemoteSelection as _curHandleRemoteSelection, clearRemoteCursors as _curClearRemoteCursors, initCursorToggle } from './modules/app-cursors.js';
78
86
  import { initDefaultAi } from './modules/default-ai.js';
79
87
  import { requestDefaultVendor } from './modules/default-vendor.js';
@@ -95,7 +103,7 @@ import { initProjectMateCreationWorkspace } from './modules/project-mate-creatio
95
103
  import { initProjectDebatePlanningWorkspace } from './modules/project-debate-planning-workspace.js';
96
104
  import { initProjectSessionNavigation } from './modules/project-session-navigation.js';
97
105
  import { initPanels, updateConfigChip as _panUpdateConfigChip, getModelEffortLevels as _panGetModelEffortLevels, accumulateUsage as _panAccumulateUsage, updateUsagePanel as _panUpdateUsagePanel, resetUsage as _panResetUsage, toggleUsagePanel as _panToggleUsagePanel, formatTokens as _panFormatTokens, updateStatusPanel as _panUpdateStatusPanel, requestProcessStats as _panRequestProcessStats, toggleStatusPanel as _panToggleStatusPanel, accumulateContext as _panAccumulateContext, updateContextPanel as _panUpdateContextPanel, resetContext as _panResetContext, resetContextData as _panResetContextData, minimizeContext as _panMinimizeContext, expandContext as _panExpandContext, toggleContextPanel as _panToggleContextPanel, getContextView as _panGetContextView, renderCtxPopover as _panRenderCtxPopover, hideCtxPopover as _panHideCtxPopover, formatBytes as _panFormatBytes, formatUptime as _panFormatUptime, getModelSupportsEffort as _panGetModelSupportsEffort, getSessionUsage, setSessionUsage, getContextData, setContextData, setContextView as _panSetContextView, applyContextView as _panApplyContextView } from './modules/app-panels.js';
98
- import { initProjects, updateProjectList as _projUpdateProjectList, renderProjectList as _projRenderProjectList, renderTopbarPresence as _projRenderTopbarPresence, switchProject as _projSwitchProject, resetClientState as _projResetClientState, confirmRemoveProject as _projConfirmRemoveProject, handleRemoveProjectCheckResult as _projHandleRemoveProjectCheckResult, handleRemoveProjectResult as _projHandleRemoveProjectResult, openAddProjectModal as _projOpenAddProjectModal, closeAddProjectModal as _projCloseAddProjectModal, handleBrowseDirResult as _projHandleBrowseDirResult, handleAddProjectResult as _projHandleAddProjectResult, handleCloneProgress as _projHandleCloneProgress, showUpdateAvailable as _projShowUpdateAvailable, getCachedProjects, setCachedProjects, getCachedProjectCount, getCachedRemovedProjects, setCachedRemovedProjects } from './modules/app-projects.js';
106
+ import { updateProjectList as _projUpdateProjectList, renderProjectList as _projRenderProjectList, renderTopbarPresence as _projRenderTopbarPresence, switchProject as _projSwitchProject, resetClientState as _projResetClientState, confirmRemoveProject as _projConfirmRemoveProject, handleRemoveProjectCheckResult as _projHandleRemoveProjectCheckResult, handleRemoveProjectResult as _projHandleRemoveProjectResult, showUpdateAvailable as _projShowUpdateAvailable, getCachedProjects, setCachedProjects, getCachedProjectCount, getCachedRemovedProjects, setCachedRemovedProjects } from './modules/app-projects.js';
99
107
  import { initRendering, addToMessages as _renAddToMessages, scrollToBottom as _renScrollToBottom, forceScrollToBottom as _renForceScrollToBottom, addUserMessage as _renAddUserMessage, getMsgTime as _renGetMsgTime, shouldGroupMessage as _renShouldGroupMessage, ensureAssistantBlock as _renEnsureAssistantBlock, addCopyHandler as _renAddCopyHandler, appendDelta as _renAppendDelta, flushStreamBuffer as _renFlushStreamBuffer, finalizeAssistantBlock as _renFinalizeAssistantBlock, addSystemMessage as _renAddSystemMessage, addConflictMessage as _renAddConflictMessage, addContextOverflowMessage as _renAddContextOverflowMessage, showClaudePreThinking as _renShowClaudePreThinking, showMatePreThinking as _renShowMatePreThinking, removeMatePreThinking as _renRemoveMatePreThinking, showSuggestionChips as _renShowSuggestionChips, hideSuggestionChips as _renHideSuggestionChips, getGhostSuggestion as _renGetGhostSuggestion, getTurnCounter, setTurnCounter, getPrependAnchor, setPrependAnchor, getActivityEl, setActivityEl, getIsUserScrolledUp, setIsUserScrolledUp, getStickyBottom, armStickyBottom, disarmStickyBottom } from './modules/app-rendering.js';
100
108
  import { initDm, openDm as _dmOpenDm, enterDmMode as _dmEnterDmMode, exitDmMode as _dmExitDmMode, handleMateCreatedInApp as _dmHandleMateCreatedInApp, buildMateInterviewPrompt as _dmBuildMateInterviewPrompt, updateMateIconStatus as _dmUpdateMateIconStatus, connectMateProject as _dmConnectMateProject, disconnectMateProject as _dmDisconnectMateProject, appendDmMessage as _dmAppendDmMessage, showDmTypingIndicator as _dmShowDmTypingIndicator, handleDmSend as _dmHandleDmSend } from './modules/app-dm.js';
101
109
  import { initMention, handleMentionStart, handleMentionStream, handleMentionDone, handleMentionError, handleMentionActivity, renderMentionUser, renderMentionResponse } from './modules/mention.js';
@@ -115,6 +123,7 @@ import { initDebate, handleDebatePreparing, handleDebateStarted, handleDebateRes
115
123
  if (paneMode) {
116
124
  wsPath += "?pane=1";
117
125
  if (paneSessionId) wsPath += "&session=" + paneSessionId;
126
+ if (bootParams.get("contextual") === "1") wsPath += "&contextual=1";
118
127
  }
119
128
 
120
129
  // --- DOM refs ---
@@ -189,7 +198,7 @@ import { initDebate, handleDebatePreparing, handleDebateStarted, handleDebateRes
189
198
  function updateProjectList(msg) { _projUpdateProjectList(msg); }
190
199
  function renderTopbarPresence(serverUsers) { _projRenderTopbarPresence(serverUsers); }
191
200
  function renderProjectList() { _projRenderProjectList(); }
192
- // projectListAddBtn listener -> modules/app-projects.js (initProjects)
201
+ // projectListAddBtn listener -> modules/project-start-dialog.js (initProjectStart)
193
202
 
194
203
  // Prevent Cmd+Z / Cmd+Shift+Z from triggering browser back/forward (Arc, etc.)
195
204
  // Always block browser default for Cmd+Z and manually invoke undo/redo via execCommand
@@ -277,6 +286,7 @@ import { initDebate, handleDebatePreparing, handleDebateStarted, handleDebateRes
277
286
  createStore({
278
287
  networkSettings: { loaded: false, busy: false, confirming: false, draft: "", saved: "", status: "", errorKind: "", requestId: 0 },
279
288
  vendorLoginBrowser: null,
289
+ githubStarCount: null,
280
290
  sharedBrowser: null,
281
291
  sharedBrowsers: [],
282
292
  mcpSkillsWorkbench: {},
@@ -285,12 +295,24 @@ import { initDebate, handleDebatePreparing, handleDebateStarted, handleDebateRes
285
295
  mcpConnections: { screen: "list", servers: [], search: "", loaded: false },
286
296
  sharedBrowserOpen: false,
287
297
  sharedBrowserUi: {},
298
+ sharedBrowserSettings: {},
299
+ browserLinksBound: false,
288
300
  // session / routing
289
301
  basePath: basePath,
290
302
  wsPath: wsPath,
291
303
  paneMode: paneMode,
292
304
  paneSessionId: paneSessionId,
293
305
  panePinPending: paneMode && !!paneSessionId,
306
+ paneCommittedBinding: null, panePendingBinding: null, paneReady: false, paneSuspended: false,
307
+ paneActivationGeneration: 0, paneActivationTimer: null, panePointerBinding: null, paneRichDrafts: {},
308
+ sessionRichDrafts: {},
309
+ sessionActionEpoch: 0, composerUploadingCount: 0, deferredSessionSwitch: null,
310
+ paneCallbackBinding: null, paneActionEvents: [], paneHeldKeys: {}, rewindAction: null, handoffAction: null,
311
+ authIdentityLoaded: false,
312
+ splitIdentityBlockedSocket: null,
313
+ splitIdentityHydrated: false,
314
+ paneActivationUnsupported: false,
315
+ paneBindingSessions: [],
294
316
  splitPanes: null,
295
317
  splitGroups: [],
296
318
  sessionFolders: null,
@@ -315,6 +337,9 @@ import { initDebate, handleDebatePreparing, handleDebateStarted, handleDebateRes
315
337
  historyTotal: 0,
316
338
  replayingHistory: false,
317
339
  historyReplayBatch: null,
340
+ pendingSessionEntryNavigation: null,
341
+ sessionEntryHighlight: null,
342
+ sessionNavigationRequestId: null,
318
343
  projectName: projectName,
319
344
  cwd: "",
320
345
  currentSlug: currentSlug,
@@ -322,9 +347,33 @@ import { initDebate, handleDebatePreparing, handleDebateStarted, handleDebateRes
322
347
  githubWorkSessions: [],
323
348
  githubWorkProject: null,
324
349
  githubWorkRefresh: null,
350
+ workPrimaryPending: null,
325
351
  activeProjectSlug: null,
326
352
  activeProjectMateId: null,
327
353
  activeProjectMateName: '',
354
+ clayReturnTarget: null,
355
+ contextualPrepared: null,
356
+ contextualSubmitted: {},
357
+ contextualClay: { mode: "closed", mateId: null },
358
+ contextualConversationHistory: null,
359
+ contextualConversationRequest: null,
360
+ clayControlActivity: null,
361
+ clayControlOrder: 0,
362
+ clayControlReceipts: [],
363
+ clayControlForwarded: null,
364
+ controlRuntimeId: null,
365
+ studioDocumentSource: null, studioDocumentView: null,
366
+ clayStudioRelays: {}, clayStudioForwarded: {}, clayStudioSurfaces: {},
367
+ clayControlNotifications: [],
368
+ clayControlFileView: null,
369
+ clayControlTerminalViews: [],
370
+ clayControlGitView: null,
371
+ clayNavigationRendering: null,
372
+ clayControlViewerRef: null,
373
+ contextualSessionReady: false,
374
+ contextualSessionReceived: false,
375
+ contextualSessionUnavailable: false,
376
+ clayReturnPendingProjectSlug: null,
328
377
  activeSessionMateId: null,
329
378
  activeSessionMateName: '',
330
379
  sessionActivatedProjectSlug: null,
@@ -379,6 +428,8 @@ import { initDebate, handleDebatePreparing, handleDebateStarted, handleDebateRes
379
428
  projectsAccessLoaded: false,
380
429
  projectsHubRestoreRequested: false,
381
430
  projectsShowGuide: false,
431
+ projectStart: initialProjectStart(),
432
+ projectStartFolder: emptyFolderState(),
382
433
  onboardingStep: 'welcome',
383
434
  onboardingIntent: null,
384
435
  currentProjectOwnerId: null,
@@ -576,6 +627,7 @@ import { initDebate, handleDebatePreparing, handleDebateStarted, handleDebateRes
576
627
  // rendering
577
628
  currentMsgTs: null,
578
629
  richContextUsage: null,
630
+ contextMeasurement: "unavailable",
579
631
  currentMsgEl: null,
580
632
  currentFullText: "",
581
633
  matePreThinkingEl: null,
@@ -602,6 +654,8 @@ import { initDebate, handleDebatePreparing, handleDebateStarted, handleDebateRes
602
654
  vendorInfo: {},
603
655
  // Rate-limit data is projected only for the displayed session/vendor.
604
656
  rateLimitState: {},
657
+ vendorUsageOverview: null,
658
+ vendorUsageOpen: null,
605
659
  currentMode: "default",
606
660
  effectivePermissionMode: null,
607
661
  permissionCapabilities: { auto: false, mcpOverride: false },
@@ -746,8 +800,7 @@ import { initDebate, handleDebatePreparing, handleDebateStarted, handleDebateRes
746
800
  switch (action) {
747
801
  case "createMate": startClayMateCreation(); break;
748
802
  case "openSettings":
749
- var sb = document.getElementById("server-settings-btn");
750
- if (sb) sb.click();
803
+ openSettings();
751
804
  break;
752
805
  case "showHome": showHomeHub(); break;
753
806
  }
@@ -1119,7 +1172,10 @@ import { initDebate, handleDebatePreparing, handleDebateStarted, handleDebateRes
1119
1172
  basePath: basePath,
1120
1173
  });
1121
1174
 
1122
- // --- User settings (full-screen overlay) ---
1175
+ // --- Unified full-screen settings shell (Personal, Project, Server panes) ---
1176
+ initSettingsShell();
1177
+
1178
+ // --- User settings (personal pane) ---
1123
1179
  initUserSettings({
1124
1180
  basePath: basePath,
1125
1181
  });
@@ -1138,6 +1194,7 @@ import { initDebate, handleDebatePreparing, handleDebateStarted, handleDebateRes
1138
1194
  if (document.body) document.body.classList.add('is-multi-user');
1139
1195
  }
1140
1196
  if (d.user && d.user.id) { store.set({ myUserId: d.user.id }); requestDefaultVendor(); }
1197
+ store.set({ authIdentityLoaded: true });
1141
1198
  store.set({ permissions: d.permissions || null, projectsAccessLoaded: true });
1142
1199
  if (d.mustChangePin) showForceChangePinOverlay();
1143
1200
  // Single-user mode: clear user strip skeletons immediately (no presence message will arrive)
@@ -1186,11 +1243,11 @@ import { initDebate, handleDebatePreparing, handleDebateStarted, handleDebateRes
1186
1243
  }
1187
1244
  }
1188
1245
  }).catch(function () {});
1189
- // Hide server settings and update controls for non-admin users in multi-user mode
1246
+ // Hide update controls for non-admin users in multi-user mode. The settings
1247
+ // gear stays for everyone: Personal and Project settings are not admin-only,
1248
+ // and the shell only offers Server settings to administrators.
1190
1249
  checkAdminAccess().then(function (isAdmin) {
1191
1250
  if (store.get('isMultiUserMode') && !isAdmin) {
1192
- var settingsBtn = document.getElementById("server-settings-btn");
1193
- if (settingsBtn) settingsBtn.style.display = "none";
1194
1251
  var updatePill = document.getElementById("update-pill-wrap");
1195
1252
  if (updatePill) updatePill.style.display = "none";
1196
1253
  }
@@ -1218,8 +1275,6 @@ import { initDebate, handleDebatePreparing, handleDebateStarted, handleDebateRes
1218
1275
 
1219
1276
  // --- QR code ---
1220
1277
  initQrCode();
1221
- var sharePill = document.getElementById("share-pill");
1222
- if (sharePill) sharePill.addEventListener("click", triggerShare);
1223
1278
 
1224
1279
  // --- File browser ---
1225
1280
  initFileBrowser({
@@ -1233,7 +1288,9 @@ import { initDebate, handleDebatePreparing, handleDebateStarted, handleDebateRes
1233
1288
  });
1234
1289
  initGitPanel();
1235
1290
  initSharedBrowser();
1291
+ initStudioBridge();
1236
1292
  initWorkerPaneLock();
1293
+ initPaneActivation();
1237
1294
 
1238
1295
  // --- Terminal ---
1239
1296
  initTerminal({
@@ -1401,11 +1458,6 @@ import { initDebate, handleDebatePreparing, handleDebateStarted, handleDebateRes
1401
1458
  function confirmRemoveProject(slug, name) { _projConfirmRemoveProject(slug, name); }
1402
1459
  function handleRemoveProjectCheckResult(msg) { _projHandleRemoveProjectCheckResult(msg); }
1403
1460
  function handleRemoveProjectResult(msg) { _projHandleRemoveProjectResult(msg); }
1404
- function openAddProjectModal() { _projOpenAddProjectModal(); }
1405
- function closeAddProjectModal() { _projCloseAddProjectModal(); }
1406
- function handleBrowseDirResult(msg) { _projHandleBrowseDirResult(msg); }
1407
- function handleAddProjectResult(msg) { _projHandleAddProjectResult(msg); }
1408
- function handleCloneProgress(msg) { _projHandleCloneProgress(msg); }
1409
1461
 
1410
1462
  // --- PWA install prompt -> modules/app-misc.js (set up in initMisc)
1411
1463
 
@@ -1421,9 +1473,11 @@ import { initDebate, handleDebatePreparing, handleDebateStarted, handleDebateRes
1421
1473
 
1422
1474
  // --- Rate Limit module ---
1423
1475
  initRateLimit();
1476
+ initVendorUsageOverview();
1477
+ initGithubStar();
1424
1478
 
1425
1479
  // --- Projects module ---
1426
- initProjects();
1480
+ initProjectStart();
1427
1481
 
1428
1482
  // --- Home Hub module ---
1429
1483
  initProjectMateNavigation();
@@ -0,0 +1,16 @@
1
+ (function () {
2
+ var root = document.documentElement;
3
+ var params = new URLSearchParams(window.location.search);
4
+ if (window.parent !== window && params.get('pane') === '1' && params.get('contextual') === '1') root.classList.add('contextual-pane-boot');
5
+ var light = window.matchMedia && window.matchMedia("(prefers-color-scheme: light)").matches;
6
+ var seed = window.__clayAppearanceSeed;
7
+
8
+ function applyMode(mode) {
9
+ if (mode !== "light" && mode !== "dark") return;
10
+ root.classList.toggle("light-theme", mode === "light");
11
+ root.classList.toggle("dark-theme", mode !== "light");
12
+ }
13
+
14
+ var savedMode = seed && seed.configured && (seed.mode === "light" || seed.mode === "dark") ? seed.mode : null;
15
+ applyMode(savedMode || (light ? "light" : "dark"));
16
+ }());
@@ -0,0 +1,51 @@
1
+ /* Keep internal activity in the established compact tool disclosure rows. */
2
+ .clay-tool-activity .tool-name {
3
+ flex-shrink: 1;
4
+ min-width: 0;
5
+ overflow: hidden;
6
+ text-overflow: ellipsis;
7
+ white-space: nowrap;
8
+ }
9
+ .clay-tool-activity .tool-desc {
10
+ font-family: var(--font-ui);
11
+ flex: 0 1 auto;
12
+ }
13
+ .clay-tool-activity .tool-status-icon { margin-left: auto; }
14
+ .clay-tool-activity .tool-subtitle { display: none; }
15
+ .tool-header[role="button"]:focus-visible,
16
+ .tool-group-header[role="button"]:focus-visible {
17
+ outline: 2px solid var(--accent);
18
+ outline-offset: 2px;
19
+ }
20
+ .clay-tool-activity[data-activity-phase="running"] .tool-bullet {
21
+ animation: pulse 1.5s ease-in-out infinite;
22
+ }
23
+ .clay-tool-activity[data-activity-phase="pending"] .tool-bullet,
24
+ .tool-group[data-activity-phase="pending"] .tool-group-bullet {
25
+ background: var(--text-muted);
26
+ animation: none;
27
+ }
28
+ .clay-tool-activity[data-activity-phase="error"] .tool-name,
29
+ .clay-tool-activity[data-activity-phase="cancelled"] .tool-name,
30
+ .tool-group[data-activity-phase="error"] .tool-group-label { color: var(--error); }
31
+ .clay-tool-technical-name,
32
+ .clay-tool-evidence-label {
33
+ padding: 8px 14px 0;
34
+ color: var(--text-muted);
35
+ font-size: 12px;
36
+ overflow-wrap: anywhere;
37
+ }
38
+ .clay-tool-technical-name { font-family: "Roboto Mono", monospace; }
39
+ .clay-tool-evidence-label { font-weight: 600; }
40
+ @media (prefers-reduced-motion: reduce) {
41
+ .clay-tool-activity .tool-bullet { animation: none; }
42
+ }
43
+
44
+ @media (max-width: 600px) {
45
+ .clay-tool-activity .tool-name {
46
+ white-space: normal;
47
+ overflow-wrap: anywhere;
48
+ line-height: 1.4;
49
+ }
50
+ .clay-tool-activity .tool-desc { max-width: 35%; }
51
+ }
@@ -4,6 +4,35 @@
4
4
  padding: 0;
5
5
  cursor: pointer;
6
6
  }
7
+ .clay-brand-flip {
8
+ position: relative;
9
+ display: block;
10
+ width: 38px;
11
+ height: 38px;
12
+ transform-style: preserve-3d;
13
+ transition: transform 220ms cubic-bezier(.2,.75,.25,1);
14
+ }
15
+ .clay-brand-face {
16
+ position: absolute;
17
+ inset: 0;
18
+ width: 38px;
19
+ height: 38px;
20
+ object-fit: contain;
21
+ backface-visibility: hidden;
22
+ transition: opacity 120ms ease;
23
+ }
24
+ .clay-brand-avatar { transform: rotateY(180deg); border-radius: 11px; }
25
+ .icon-strip-brand[data-clay-mode="mate"] .clay-brand-flip { transform: rotateY(180deg); }
26
+ .icon-strip-brand:hover .clay-brand-flip,
27
+ .icon-strip-brand:focus-visible .clay-brand-flip,
28
+ .icon-strip-brand.clay-speaking[data-clay-mode="project"] .clay-brand-flip { transform: rotateY(180deg); }
29
+ .icon-strip-brand[data-clay-mode="mate"]:hover .clay-brand-flip,
30
+ .icon-strip-brand[data-clay-mode="mate"]:focus-visible .clay-brand-flip { transform: rotateY(0deg); }
31
+ .icon-strip-brand.clay-speaking[data-clay-mode="mate"] .clay-brand-flip { transform: rotateY(180deg); }
32
+ .icon-strip-brand.clay-speaking .clay-brand-face { transition-duration: 80ms; }
33
+ @media (prefers-reduced-motion: reduce) {
34
+ .clay-brand-flip, .clay-brand-face { transition: none; }
35
+ }
7
36
  .icon-strip-brand:hover::before {
8
37
  background: var(--bg-alt);
9
38
  box-shadow: 0 1px 2px rgba(var(--shadow-rgb), 0.08);
@@ -550,41 +550,20 @@ body.mate-dm-active .search-clay-transcript .search-clay-message-user .bubble,
550
550
  .clayos-issue-link { --record-color: var(--link, var(--accent)); }
551
551
  .clayos-log-link { --record-color: var(--accent); }
552
552
 
553
- .clayos-session-link {
554
- display: inline-flex;
555
- align-items: center;
556
- gap: 6px;
557
- min-height: 26px;
558
- margin: 2px 1px;
559
- padding: 3px 8px 3px 6px;
560
- border: 1px solid color-mix(in srgb, var(--accent) 28%, var(--border));
561
- border-radius: 7px;
562
- background: color-mix(in srgb, var(--accent) 7%, var(--bg-alt));
563
- color: var(--text);
564
- font: inherit;
565
- font-size: 11px;
566
- line-height: 1;
567
- vertical-align: middle;
568
- cursor: pointer;
553
+ .clayos-session-link { --record-color: var(--accent); }
554
+
555
+ #messages .session-entry-target {
556
+ outline: 2px solid color-mix(in srgb, var(--accent) 72%, transparent);
557
+ outline-offset: 3px;
558
+ border-radius: 8px;
559
+ background: color-mix(in srgb, var(--accent) 7%, transparent);
560
+ animation: sessionEntryTargetFade 1800ms ease-out forwards;
569
561
  }
570
- .clayos-session-link::before {
571
- content: "\2197";
572
- display: grid;
573
- place-items: center;
574
- width: 17px;
575
- height: 17px;
576
- border-radius: 5px;
577
- background: color-mix(in srgb, var(--accent) 14%, transparent);
578
- color: var(--accent);
579
- font-size: 12px;
562
+
563
+ @keyframes sessionEntryTargetFade {
564
+ 0%, 72% { background: color-mix(in srgb, var(--accent) 10%, transparent); }
565
+ 100% { background: transparent; }
580
566
  }
581
- .clayos-session-link > span { font-weight: 620; }
582
- .clayos-session-link > small { color: var(--text-muted); font-size: 10px; }
583
- .clayos-session-link:hover { border-color: color-mix(in srgb, var(--accent) 52%, var(--border)); background: color-mix(in srgb, var(--accent) 11%, var(--bg-alt)); }
584
- .clayos-session-link:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
585
- .clayos-session-link.is-loading { opacity: 0.62; cursor: progress; }
586
- .clayos-session-link.is-loading::before { animation: searchClaySpin 1.2s linear infinite; }
587
- .clayos-session-link.is-error { border-color: color-mix(in srgb, var(--warning) 48%, var(--border)); }
588
567
 
589
568
  .search-clay-pending {
590
569
  align-self: flex-start;