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.
- package/README.md +0 -4
- package/lib/account-auth-socket.js +1 -0
- package/lib/builtin-mates.js +19 -16
- package/lib/bundled-skills/clay-agent-browser/SKILL.md +6 -2
- package/lib/canonical-clay-record-authority.js +15 -0
- package/lib/canonical-clay-scheduling-authority.js +19 -0
- package/lib/claude-hook-installer.js +1 -239
- package/lib/claude-jsonl-watcher.js +1 -204
- package/lib/clay-control-presentation-binding.js +96 -0
- package/lib/clay-control-presentation.js +128 -0
- package/lib/clay-control-target-projection.js +26 -0
- package/lib/clay-mate-chat-receipts.js +26 -0
- package/lib/clay-mate-chat.js +88 -0
- package/lib/clay-mate-knowledge-input.js +26 -0
- package/lib/clay-mate-knowledge.js +95 -0
- package/lib/clay-mate-lifecycle.js +95 -0
- package/lib/clay-product-control-input.js +33 -0
- package/lib/clay-product-control-tools.js +52 -0
- package/lib/clay-product-control.js +250 -0
- package/lib/clay-project-lifecycle.js +154 -0
- package/lib/clay-project-record-input.js +44 -0
- package/lib/clay-project-records.js +84 -0
- package/lib/clay-scheduling-input.js +21 -0
- package/lib/clay-scheduling-receipts.js +26 -0
- package/lib/clay-scheduling.js +119 -0
- package/lib/clay-screen-controls.js +104 -0
- package/lib/clay-skill-install.js +1 -33
- package/lib/clay-vendor-usage.js +44 -0
- package/lib/clay-workspace-controls.js +84 -0
- package/lib/clay-workspace-input.js +17 -0
- package/lib/clay-workspace-receipts.js +26 -0
- package/lib/cli-sessions.js +1 -300
- package/lib/codex-defaults.js +1 -28
- package/lib/context-usage.js +3 -2
- package/lib/contextual-screen-snapshot.js +38 -0
- package/lib/daemon-project-access.js +11 -0
- package/lib/daemon-project-lifecycle-callbacks.js +15 -0
- package/lib/daemon-project-lifecycle.js +262 -0
- package/lib/daemon-projects.js +1 -1
- package/lib/daemon.js +78 -276
- package/lib/default-ai-runtime.js +4 -8
- package/lib/dm-digest-cursor.js +120 -0
- package/lib/email-mcp-server.js +1 -1
- package/lib/github-star-count.js +147 -0
- package/lib/issues-service.js +29 -15
- package/lib/kiro-defaults.js +1 -22
- package/lib/knowledge-db-import-validation.js +46 -0
- package/lib/knowledge-db-import.js +99 -0
- package/lib/knowledge-db-service.js +24 -33
- 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-document-index.js +2 -1
- package/lib/knowledge-file-store.js +7 -1
- package/lib/knowledge-product-operations.js +46 -0
- package/lib/mate-avatar-catalog.js +12 -0
- package/lib/mate-avatar-migration.js +41 -0
- package/lib/mate-context-service.js +138 -0
- package/lib/mate-context-tools.js +21 -0
- package/lib/mate-creation-mcp-server.js +2 -0
- package/lib/mate-knowledge-canonical-access.js +10 -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 +16 -34
- package/lib/mate-knowledge-text-tools.js +106 -0
- package/lib/mate-lifecycle-service.js +94 -0
- package/lib/mate-message-delivery.js +43 -0
- package/lib/mate-ready-creation.js +9 -1
- package/lib/mate-schedule-input.js +29 -0
- package/lib/mate-schedule-lifecycle.js +151 -0
- package/lib/mate-scheduling.js +103 -0
- package/lib/mates.js +18 -6
- 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-proxy.js +2 -32
- package/lib/mcp-query-bridge.js +30 -0
- package/lib/mcp-remote-connections.js +74 -20
- package/lib/mcp-source-adapters.js +1 -0
- package/lib/mcp-source-context.js +1 -0
- package/lib/mcp-source-discovery.js +1 -0
- package/lib/mcp-source-plugins.js +1 -0
- package/lib/mcp-source-restrictions.js +1 -0
- package/lib/mcp-tool-policy.js +9 -0
- package/lib/notes-checklist.js +92 -0
- package/lib/notes.js +51 -4
- package/lib/os-user-diagnostics.js +2 -4
- package/lib/os-users.js +24 -70
- package/lib/pane-pending-interactions.js +20 -0
- package/lib/pane-session-activation.js +114 -0
- package/lib/pane-session-transport.js +26 -0
- package/lib/project-admin-overview.js +51 -0
- package/lib/project-ask-user.js +8 -4
- package/lib/project-connection.js +14 -10
- package/lib/project-control-git-view.js +12 -0
- package/lib/project-debate.js +1 -0
- package/lib/project-delegated-follow-up.js +2 -1
- package/lib/project-directory-claim.js +65 -0
- package/lib/project-file-operations.js +61 -0
- package/lib/project-filesystem.js +15 -85
- package/lib/project-full-access.js +23 -2
- package/lib/project-http.js +7 -4
- package/lib/project-knowledge.js +32 -18
- package/lib/project-lifecycle-operations.js +98 -0
- package/lib/project-lifecycle-process-witness.js +32 -0
- package/lib/project-lifecycle-runtime.js +50 -0
- package/lib/project-linux-access.js +22 -0
- package/lib/project-logs-canonical-clay.js +27 -0
- package/lib/project-logs-clay-query.js +16 -0
- package/lib/project-logs-schema.js +4 -2
- package/lib/project-logs-service.js +8 -7
- package/lib/project-logs.js +1 -0
- package/lib/project-loop.js +1 -0
- package/lib/project-mate-chat-control.js +55 -0
- package/lib/project-mate-creation-proposal.js +18 -3
- package/lib/project-mate-interaction.js +40 -62
- package/lib/project-mcp.js +54 -16
- package/lib/project-models.js +14 -31
- package/lib/project-notifications.js +76 -17
- package/lib/project-ownership.js +77 -0
- package/lib/project-pair-result-delivery.js +14 -3
- package/lib/project-pair-usage.js +12 -13
- package/lib/project-pending-message-queue.js +4 -1
- package/lib/project-product-control.js +89 -0
- package/lib/project-product-session-queue.js +46 -0
- package/lib/project-push-access.js +28 -0
- package/lib/project-scheduled-message-queue.js +30 -0
- package/lib/project-scheduled-messages.js +67 -68
- package/lib/project-scheduled-task-control.js +83 -0
- package/lib/project-scheduled-tasks.js +13 -2
- package/lib/project-scheduling-access.js +10 -0
- package/lib/project-session-actions.js +65 -0
- package/lib/project-session-delete.js +8 -1
- package/lib/project-session-document.js +27 -7
- package/lib/project-session-github.js +63 -19
- package/lib/project-session-history-actions.js +167 -0
- package/lib/project-session-linear.js +14 -6
- package/lib/project-session-notes.js +40 -11
- package/lib/project-session-pair.js +1 -1
- package/lib/project-session-runtime-actions.js +64 -0
- package/lib/project-session-spawn.js +2 -3
- package/lib/project-session-vendor.js +55 -0
- package/lib/project-sessions.js +160 -290
- package/lib/project-shared-browser.js +78 -17
- package/lib/project-start-protocol.js +29 -0
- package/lib/project-studio-presentation.js +58 -0
- package/lib/project-user-message.js +67 -1
- package/lib/project-vendor-login.js +8 -36
- package/lib/project-workspace-operations.js +126 -0
- package/lib/project-workspace-query.js +19 -2
- package/lib/project.js +181 -45
- package/lib/public/app.js +71 -17
- package/lib/public/appearance-bootstrap.js +16 -0
- package/lib/public/css/clay-tool-activity.css +51 -0
- package/lib/public/css/clay-workspace.css +29 -0
- package/lib/public/css/command-palette.css +12 -33
- package/lib/public/css/contextual-clay.css +240 -0
- package/lib/public/css/filebrowser.css +1 -1
- package/lib/public/css/home-debate-planning.css +2 -0
- package/lib/public/css/home-mate-creation.css +5 -0
- package/lib/public/css/input.css +6 -0
- package/lib/public/css/mate-avatar-gallery.css +12 -0
- package/lib/public/css/mate-conversation.css +10 -5
- package/lib/public/css/mate-loading-scene.css +21 -0
- package/lib/public/css/messages.css +6 -2
- package/lib/public/css/overlays.css +68 -258
- package/lib/public/css/project-admin-overview.css +13 -0
- package/lib/public/css/project-mate-creation.css +5 -6
- package/lib/public/css/project-start.css +108 -0
- package/lib/public/css/projects-hub.css +53 -14
- package/lib/public/css/session-folders.css +11 -0
- package/lib/public/css/session-github.css +46 -1
- package/lib/public/css/settings-shell.css +103 -0
- package/lib/public/css/shared-browser.css +35 -1
- package/lib/public/css/sidebar.css +7 -0
- package/lib/public/css/sticky-notes.css +87 -1
- package/lib/public/css/title-bar.css +79 -0
- package/lib/public/index.html +61 -68
- 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/admin-settings-invitations.js +2 -2
- package/lib/public/modules/admin-settings-projects.js +8 -4
- package/lib/public/modules/admin-settings-ui.js +20 -4
- package/lib/public/modules/admin-settings-users.js +4 -4
- package/lib/public/modules/app-connection.js +11 -1
- package/lib/public/modules/app-favicon.js +18 -9
- package/lib/public/modules/app-header.js +7 -4
- package/lib/public/modules/app-home-hub.js +2 -1
- package/lib/public/modules/app-loop-ui.js +2 -0
- package/lib/public/modules/app-message-router.js +22 -1
- package/lib/public/modules/app-messages.js +125 -19
- package/lib/public/modules/app-misc.js +3 -1
- package/lib/public/modules/app-notifications.js +11 -5
- package/lib/public/modules/app-panels.js +61 -123
- package/lib/public/modules/app-projects.js +14 -407
- package/lib/public/modules/app-rate-limit.js +19 -28
- package/lib/public/modules/app-rendering.js +4 -3
- package/lib/public/modules/avatar.js +15 -41
- package/lib/public/modules/chat-render-runtime.js +20 -0
- package/lib/public/modules/clay-browser-links.js +47 -0
- package/lib/public/modules/clay-control-activity.js +214 -0
- package/lib/public/modules/clay-control-copy.js +36 -0
- package/lib/public/modules/clay-control-detail-targets.js +44 -0
- package/lib/public/modules/clay-control-object-targets.js +52 -0
- package/lib/public/modules/clay-control-target-visibility.js +12 -0
- package/lib/public/modules/clay-control-targets.js +44 -0
- package/lib/public/modules/clay-log-links.js +23 -0
- package/lib/public/modules/clay-navigation-render.js +52 -0
- package/lib/public/modules/clay-owner-navigation.js +33 -0
- package/lib/public/modules/clay-session-links.js +31 -0
- package/lib/public/modules/clay-studio-bridge.js +20 -0
- package/lib/public/modules/clay-studio-document.js +67 -0
- package/lib/public/modules/clay-studio-render.js +146 -0
- package/lib/public/modules/clay-tool-activity.js +140 -0
- package/lib/public/modules/clay-tool-presentation.js +343 -0
- package/lib/public/modules/command-palette.js +162 -40
- package/lib/public/modules/contextual-ask-session.js +26 -0
- package/lib/public/modules/contextual-clay-geometry.js +155 -0
- package/lib/public/modules/contextual-clay-session.js +130 -0
- package/lib/public/modules/contextual-clay-workspace.js +169 -0
- package/lib/public/modules/contextual-clay.js +252 -0
- package/lib/public/modules/contextual-composer.js +91 -0
- package/lib/public/modules/contextual-mate-context.js +117 -0
- package/lib/public/modules/contextual-mate-hint.js +40 -0
- package/lib/public/modules/contextual-mate-identity.js +23 -0
- package/lib/public/modules/contextual-mate-sessions.js +134 -0
- package/lib/public/modules/contextual-search.js +137 -0
- package/lib/public/modules/contextual-session-citations.js +58 -0
- package/lib/public/modules/debate.js +1 -0
- package/lib/public/modules/default-ai.js +11 -3
- package/lib/public/modules/elicitation-form.js +5 -0
- package/lib/public/modules/filebrowser.js +20 -1
- package/lib/public/modules/generation-stop.js +8 -5
- package/lib/public/modules/git-panel.js +3 -1
- package/lib/public/modules/github-star.js +66 -0
- package/lib/public/modules/history-replay-batch.js +13 -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 +8 -6
- package/lib/public/modules/home-mate-creation.js +73 -1
- package/lib/public/modules/home-mate-settings.js +19 -12
- package/lib/public/modules/icon-strip-tooltip.js +2 -1
- package/lib/public/modules/input.js +88 -10
- package/lib/public/modules/issues-render.js +3 -2
- package/lib/public/modules/knowledge-db-workbench.js +4 -4
- package/lib/public/modules/markdown.js +6 -34
- package/lib/public/modules/mate-avatar-catalog.js +97 -0
- package/lib/public/modules/mate-knowledge-workbench.js +1 -1
- package/lib/public/modules/mate-loading-scene.js +17 -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/message-delivery.js +20 -2
- package/lib/public/modules/model-picker.js +2 -0
- package/lib/public/modules/pane-activation.js +214 -0
- package/lib/public/modules/pane-binding.js +82 -0
- package/lib/public/modules/pane-bridge.js +7 -4
- package/lib/public/modules/pane-browser-bridge.js +22 -0
- package/lib/public/modules/pane-file-bridge.js +4 -0
- package/lib/public/modules/pane-issue-bridge.js +4 -1
- package/lib/public/modules/pending-message-queue.js +1 -0
- package/lib/public/modules/permission-control.js +5 -4
- package/lib/public/modules/personal-settings-dialog.js +7 -1
- package/lib/public/modules/product-review.js +26 -0
- package/lib/public/modules/profile.js +12 -241
- package/lib/public/modules/project-access-recovery.js +17 -0
- package/lib/public/modules/project-admin-overview.js +21 -0
- package/lib/public/modules/project-chat-identity.js +13 -4
- package/lib/public/modules/project-logs-render.js +3 -0
- package/lib/public/modules/project-mate-creation-workspace.js +13 -4
- package/lib/public/modules/project-mate-navigation.js +144 -22
- package/lib/public/modules/project-session-visibility-settings.js +19 -16
- package/lib/public/modules/project-settings.js +119 -129
- package/lib/public/modules/project-start-dialog.js +130 -0
- package/lib/public/modules/project-start-folder-state.js +78 -0
- package/lib/public/modules/project-start-folder-view.js +190 -0
- package/lib/public/modules/project-start-forms.js +66 -0
- package/lib/public/modules/project-start-path.js +60 -0
- package/lib/public/modules/project-start-state.js +54 -0
- package/lib/public/modules/project-start-submit.js +67 -0
- package/lib/public/modules/projects-hub-view.js +33 -14
- package/lib/public/modules/projects-hub.js +10 -6
- package/lib/public/modules/rewind.js +5 -0
- package/lib/public/modules/scheduled-tasks.js +2 -0
- package/lib/public/modules/scheduler.js +2 -0
- package/lib/public/modules/search-clay-chat.js +5 -440
- package/lib/public/modules/server-settings.js +36 -91
- package/lib/public/modules/session-actions.js +5 -2
- package/lib/public/modules/session-context-menu.js +5 -0
- package/lib/public/modules/session-create-form.js +10 -10
- package/lib/public/modules/session-folder-layout.js +1 -1
- package/lib/public/modules/session-folder-view-menu.js +9 -0
- package/lib/public/modules/session-github.js +85 -14
- package/lib/public/modules/session-rich-drafts.js +21 -0
- package/lib/public/modules/session-switch-defer.js +67 -0
- package/lib/public/modules/session-work-primary.js +51 -0
- package/lib/public/modules/settings-defaults.js +27 -28
- package/lib/public/modules/settings-project-target.js +56 -0
- package/lib/public/modules/settings-select.js +1 -1
- package/lib/public/modules/settings-shell-registry.js +88 -0
- package/lib/public/modules/settings-shell-view.js +104 -0
- package/lib/public/modules/settings-shell.js +342 -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 +29 -6
- package/lib/public/modules/sidebar-mobile.js +12 -33
- package/lib/public/modules/sidebar-projects.js +3 -1
- package/lib/public/modules/sidebar-session-folders-ui.js +1 -1
- package/lib/public/modules/sidebar-sessions.js +1 -0
- package/lib/public/modules/split-group-restore.js +68 -0
- package/lib/public/modules/split-pair-ui.js +1 -0
- package/lib/public/modules/split-pane-reconciler.js +15 -0
- package/lib/public/modules/split-pane-renderer.js +87 -6
- package/lib/public/modules/split-session-boundary.js +1 -1
- package/lib/public/modules/split-view.js +60 -68
- package/lib/public/modules/sticky-note-markdown.js +72 -6
- package/lib/public/modules/sticky-notes-actions.js +30 -0
- package/lib/public/modules/sticky-notes-browser.js +9 -2
- package/lib/public/modules/sticky-notes-card.js +23 -7
- package/lib/public/modules/sticky-notes-checklist.js +116 -0
- package/lib/public/modules/sticky-notes-editor.js +108 -44
- package/lib/public/modules/sticky-notes-shared.js +50 -2
- package/lib/public/modules/sticky-notes-state.js +66 -0
- package/lib/public/modules/sticky-notes.js +34 -51
- package/lib/public/modules/stt-controller.js +4 -1
- package/lib/public/modules/stt-recording.js +1 -1
- package/lib/public/modules/stt.js +7 -2
- package/lib/public/modules/terminal.js +9 -0
- package/lib/public/modules/theme.js +18 -3
- package/lib/public/modules/thinking-lifecycle.js +33 -3
- package/lib/public/modules/thinking-view.js +23 -1
- package/lib/public/modules/tools.js +60 -11
- package/lib/public/modules/tui-grab.js +1 -2
- package/lib/public/modules/user-settings-appearance.js +10 -3
- package/lib/public/modules/user-settings-editors.js +1 -1
- package/lib/public/modules/user-settings-layout.js +14 -30
- package/lib/public/modules/user-settings-preferences.js +6 -2
- package/lib/public/modules/user-settings-profile.js +13 -3
- package/lib/public/modules/user-settings.js +18 -84
- package/lib/public/modules/vendor-login-browser.js +5 -3
- package/lib/public/modules/vendor-login.js +2 -2
- package/lib/public/modules/vendor-priority.js +15 -1
- package/lib/public/modules/vendor-usage-format.js +93 -0
- package/lib/public/modules/vendor-usage-list.js +45 -0
- package/lib/public/modules/vendor-usage-model.js +215 -0
- package/lib/public/modules/vendor-usage-overview.js +312 -0
- package/lib/public/modules/wireframe-workbench.js +5 -2
- package/lib/public/muse-avatar.svg +4 -0
- package/lib/public/style.css +14 -6
- package/lib/public/sw.js +3 -1
- package/lib/public/welcome-art/conversation-desk.png +0 -0
- package/lib/public/welcome-art/mate-clay.png +0 -0
- package/lib/public/welcome-art/project-clay.png +0 -0
- package/lib/safe-bash-commands.js +3 -45
- package/lib/scheduled-task-records.js +3 -1
- package/lib/scheduler.js +2 -0
- package/lib/sdk-bridge.js +348 -402
- package/lib/sdk-foreground-admission.js +16 -0
- package/lib/sdk-mcp-descriptors.js +2 -37
- package/lib/sdk-message-processor.js +61 -18
- package/lib/sdk-quota-snapshot.js +21 -3
- package/lib/sdk-response-recovery.js +1 -0
- package/lib/sdk-worker.js +2 -677
- package/lib/server-admin.js +63 -16
- package/lib/server-appearance-settings.js +13 -1
- package/lib/server-contextual-clay-settings.js +40 -0
- package/lib/server-contextual-mate-sessions.js +70 -0
- package/lib/server-dm.js +2 -1
- package/lib/server-github-stars.js +39 -0
- package/lib/server-global-ws.js +26 -32
- package/lib/server-home-chat-events.js +18 -4
- package/lib/server-home-chat.js +22 -20
- package/lib/server-home-clay-entry.js +23 -4
- package/lib/server-home-clay-session-links.js +29 -9
- package/lib/server-home-mate-creation.js +1 -0
- package/lib/server-home-mcp-consent.js +14 -0
- package/lib/server-mates.js +25 -62
- package/lib/server-owner-ui.js +118 -0
- package/lib/server-path-access.js +38 -0
- package/lib/server-project-removal.js +22 -0
- package/lib/server-settings.js +6 -1
- package/lib/server.js +167 -43
- package/lib/session-config-transition.js +45 -0
- package/lib/session-folders.js +7 -2
- package/lib/session-fork-history.js +21 -0
- package/lib/session-github.js +9 -2
- package/lib/session-hygiene.js +3 -35
- package/lib/session-notes-mcp-server.js +26 -4
- package/lib/session-notes-writes.js +88 -0
- package/lib/session-permission-mode.js +4 -3
- package/lib/session-skill-scope.js +11 -0
- package/lib/session-visibility.js +25 -10
- package/lib/session-work-primary.js +50 -0
- package/lib/sessions.js +66 -99
- 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/terminal-manager.js +65 -6
- package/lib/tool-llm.js +1 -1
- package/lib/tui-transcript-index.js +1 -132
- package/lib/users-contextual-clay-preferences.js +31 -0
- package/lib/users-permissions.js +2 -8
- package/lib/users.js +7 -0
- package/lib/vendor-login-browser.js +1 -11
- package/lib/vendor-usage-acp-readers.js +97 -0
- package/lib/vendor-usage-capabilities.js +88 -0
- package/lib/vendor-usage-http-readers.js +214 -0
- package/lib/vendor-usage-metrics.js +47 -0
- package/lib/vendor-usage-native-readers.js +106 -0
- package/lib/vendor-usage-overview.js +406 -0
- package/lib/vendor-usage-service.js +281 -0
- package/lib/workspace-assignment-service.js +25 -0
- package/lib/workspace-query-access.js +4 -1
- package/lib/workspace-query-mcp-server.js +1 -1
- package/lib/workspace-query-service.js +13 -2
- package/lib/ws-request.js +1 -0
- package/lib/ws-schema.js +22 -4
- package/lib/yoke/acp-agent-profiles.js +7 -5
- package/lib/yoke/adapters/antigravity.js +3 -14
- package/lib/yoke/adapters/claude-query-contract.js +9 -0
- package/lib/yoke/adapters/claude.js +66 -50
- package/lib/yoke/adapters/codex-query-contract.js +25 -0
- package/lib/yoke/adapters/codex.js +98 -123
- package/lib/yoke/adapters/kiro.js +3 -1
- package/lib/yoke/adapters/muse-query-contract.js +7 -0
- package/lib/yoke/adapters/muse.js +122 -0
- package/lib/yoke/auth-events.js +17 -0
- package/lib/yoke/claude-hook-installer.js +272 -0
- package/lib/yoke/claude-jsonl-watcher.js +204 -0
- package/lib/yoke/claude-maintenance.js +55 -0
- package/lib/yoke/claude-permission-patterns.js +53 -0
- package/lib/yoke/claude-response-recovery.js +155 -0
- package/lib/yoke/claude-transcript-hygiene.js +34 -0
- package/lib/yoke/claude-worker-startup.js +28 -0
- package/lib/yoke/clay-skill-install.js +33 -0
- package/lib/yoke/cli-sessions.js +300 -0
- package/lib/yoke/codex-app-server.js +7 -12
- package/lib/yoke/codex-dynamic-tool-names.js +80 -0
- package/lib/yoke/codex-idle-recovery.js +81 -1
- package/lib/yoke/codex-model-catalog.js +37 -3
- package/lib/yoke/codex-recovery-admission.js +164 -0
- package/lib/yoke/configuration.js +13 -0
- package/lib/yoke/discovery.js +70 -0
- package/lib/yoke/errors.js +8 -0
- package/lib/yoke/host-environment.js +7 -0
- package/lib/yoke/index.js +9 -51
- package/lib/yoke/interface.js +116 -0
- package/lib/yoke/kiro-acp-server.js +5 -5
- package/lib/yoke/legacy-sessions.js +89 -0
- package/lib/yoke/login-protocol.js +25 -0
- package/lib/yoke/maintenance.js +12 -0
- package/lib/yoke/mcp-proxy.js +32 -0
- package/lib/yoke/mcp-source-adapters.js +91 -0
- package/lib/yoke/mcp-source-context.js +42 -0
- package/lib/yoke/mcp-source-discovery.js +169 -0
- package/lib/yoke/mcp-source-plugins.js +68 -0
- package/lib/yoke/mcp-source-restrictions.js +47 -0
- package/lib/yoke/mcp-tool-policy-normalize.js +28 -0
- package/lib/yoke/model-preferences.js +6 -0
- package/lib/yoke/muse-artifacts.js +36 -0
- package/lib/yoke/muse-controls.js +50 -0
- package/lib/yoke/muse-input.js +64 -0
- package/lib/yoke/muse-items.js +157 -0
- package/lib/yoke/muse-policy.js +52 -0
- package/lib/yoke/muse-query.js +428 -0
- package/lib/yoke/muse-runtime.js +211 -0
- package/lib/yoke/muse-services.js +92 -0
- package/lib/yoke/muse-skills.js +79 -0
- package/lib/yoke/muse-turns.js +71 -0
- package/lib/yoke/options/acp.js +2 -0
- package/lib/yoke/options/antigravity.js +2 -0
- package/lib/yoke/options/claude.js +21 -0
- package/lib/yoke/options/codex-defaults.js +29 -0
- package/lib/yoke/options/codex-settings.js +21 -0
- package/lib/yoke/options/codex.js +6 -0
- package/lib/yoke/options/kiro-defaults.js +22 -0
- package/lib/yoke/options/kiro.js +5 -0
- package/lib/yoke/options/muse.js +5 -0
- package/lib/yoke/provider-contract.js +5 -0
- package/lib/yoke/providers/antigravity-executable.js +8 -0
- package/lib/yoke/providers/claude-executable.js +40 -0
- package/lib/yoke/providers/claude-model-descriptions.js +34 -0
- package/lib/yoke/providers/claude-process.js +97 -0
- package/lib/yoke/providers/claude-provision.js +75 -0
- package/lib/yoke/providers/codex-errors.js +8 -0
- package/lib/yoke/providers/muse-executable.js +17 -0
- package/lib/yoke/provisioning.js +6 -0
- package/lib/yoke/query-options.js +10 -0
- package/lib/yoke/response-recovery.js +41 -0
- package/lib/yoke/sdk-mcp-descriptors.js +37 -0
- package/lib/yoke/sdk-server-factory.js +7 -0
- package/lib/yoke/session-history.js +8 -0
- package/lib/yoke/session-tool-transport.js +34 -13
- package/lib/yoke/settings.js +23 -0
- package/lib/yoke/source-locations.js +4 -0
- package/lib/yoke/title-query.js +18 -7
- package/lib/yoke/tui-transcript-index.js +132 -0
- package/lib/yoke/usage.js +48 -0
- package/lib/yoke/user-input.js +13 -0
- package/lib/yoke/vendor-registry.js +87 -3
- package/package.json +11 -4
- 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
|
|
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 {
|
|
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/
|
|
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
|
-
|
|
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
|
-
// ---
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
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
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
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;
|