@tutti-os/agent-gui 0.0.7 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/dist/agent-message-center/index.d.ts +1 -1
  2. package/dist/agent-message-center/index.js +3 -3
  3. package/dist/app/renderer/agentactivity.css +9 -9
  4. package/dist/{chunk-ZU3FKYMG.js → chunk-4ASBZ4X7.js} +7 -7
  5. package/dist/chunk-4ASBZ4X7.js.map +1 -0
  6. package/dist/{chunk-VBNWIBNV.js → chunk-CUQJ3VO3.js} +13 -13
  7. package/dist/chunk-CUQJ3VO3.js.map +1 -0
  8. package/dist/{chunk-DHOAJJ3K.js → chunk-EHLA6MSQ.js} +3 -3
  9. package/dist/{chunk-DHOAJJ3K.js.map → chunk-EHLA6MSQ.js.map} +1 -1
  10. package/dist/{chunk-4RB33ETE.js → chunk-QU4F2RSS.js} +3 -3
  11. package/dist/chunk-QU4F2RSS.js.map +1 -0
  12. package/dist/{chunk-GYG57VTA.js → chunk-R5Q2UDDH.js} +4 -4
  13. package/dist/{chunk-GYG57VTA.js.map → chunk-R5Q2UDDH.js.map} +1 -1
  14. package/dist/{chunk-ZAVQMGAX.js → chunk-T6U7AB7F.js} +44 -44
  15. package/dist/chunk-T6U7AB7F.js.map +1 -0
  16. package/dist/i18n/index.d.ts +43 -43
  17. package/dist/i18n/index.js +1 -1
  18. package/dist/index.d.ts +3 -1
  19. package/dist/index.js +37 -29
  20. package/dist/index.js.map +1 -1
  21. package/dist/workbench/contribution.d.ts +1 -1
  22. package/dist/workbench/contribution.js +3 -3
  23. package/dist/workbench/index.js +3 -3
  24. package/dist/workspace-agent-generated-files.d.ts +1 -1
  25. package/dist/workspace-agent-generated-files.js +2 -2
  26. package/dist/{workspaceAgentActivityListViewModel-PvLQDj60.d.ts → workspaceAgentActivityListViewModel-Be4zm3nk.d.ts} +2 -2
  27. package/package.json +11 -11
  28. package/dist/chunk-4RB33ETE.js.map +0 -1
  29. package/dist/chunk-VBNWIBNV.js.map +0 -1
  30. package/dist/chunk-ZAVQMGAX.js.map +0 -1
  31. package/dist/chunk-ZU3FKYMG.js.map +0 -1
  32. /package/dist/app/renderer/assets/icons/agents/{manage-agent-nextop.png → manage-agent-tutti.png} +0 -0
  33. /package/dist/app/renderer/assets/icons/agents/{nextop-doc-rounded.png → tutti-doc-rounded.png} +0 -0
@@ -218,8 +218,8 @@ declare const agentGuiI18nResources: {
218
218
  readonly authenticating: "Processing…";
219
219
  readonly loginTitle: "Sign in to continue";
220
220
  readonly loginSectionTitle: "Continue with your account";
221
- readonly loginDescription: "Choose a provider, complete login in the browser, then return to Nextop.";
222
- readonly loginBrowserHint: "Choose a provider, complete login in the browser, then return to Nextop.";
221
+ readonly loginDescription: "Choose a provider, complete login in the browser, then return to Tutti.";
222
+ readonly loginBrowserHint: "Choose a provider, complete login in the browser, then return to Tutti.";
223
223
  readonly loginOpeningBrowser: "Opening Browser...";
224
224
  readonly loginContinueWithGoogle: "Continue With Google";
225
225
  readonly loginContinueWithGitHub: "Continue With GitHub";
@@ -249,17 +249,17 @@ declare const agentGuiI18nResources: {
249
249
  readonly emailLoginCompleted: "Email login complete.";
250
250
  readonly emailRequired: "Email is required.";
251
251
  readonly emailCodeRequired: "Verification code is required.";
252
- readonly desktopAuthBridgeStale: "Desktop auth bridge is out of date. Restart Nextop and try again.";
252
+ readonly desktopAuthBridgeStale: "Desktop auth bridge is out of date. Restart Tutti and try again.";
253
253
  readonly desktopActionErrorGeneric: "Something went wrong. Please try again.";
254
254
  readonly desktopActionErrorGenericShort: "Something went wrong";
255
255
  readonly desktopActionErrorUnavailable: "This feature is unavailable.";
256
- readonly desktopActionErrorLoginTimedOut: "Login timed out. Return to Nextop and try again.";
257
- readonly desktopActionErrorDesktopApiUnavailable: "Desktop service is still updating. Restart Nextop and try again.";
256
+ readonly desktopActionErrorLoginTimedOut: "Login timed out. Return to Tutti and try again.";
257
+ readonly desktopActionErrorDesktopApiUnavailable: "Desktop service is still updating. Restart Tutti and try again.";
258
258
  readonly desktopActionErrorPackageDownloadInterrupted: "The agent package download was interrupted. Check your network connection and retry.";
259
259
  readonly desktopActionErrorPackageDownloadHTTPStatus: "The package server rejected the download. Retry later or contact support.";
260
260
  readonly desktopActionErrorPackageDownloadInvalid: "The downloaded package failed integrity checks. Retry the download.";
261
261
  readonly desktopActionErrorPackageDownloadDisk: "Unable to write the package cache. Check disk permissions and free space.";
262
- readonly productNameCanvas: "Nextop";
262
+ readonly productNameCanvas: "Tutti";
263
263
  readonly applications: {
264
264
  readonly eyebrow: "Agent OS apps";
265
265
  readonly title: "Applications";
@@ -748,7 +748,7 @@ declare const agentGuiI18nResources: {
748
748
  readonly referencesLabel: "References";
749
749
  readonly requirementNoOtherOutputDir: "3. Do not write final deliverables to any other directory.";
750
750
  readonly requirementStayInWorkspace: "1. Work under {{workspaceRoot}}; do not switch to unrelated directories.";
751
- readonly requirementSummaryOutput: "2. Unless the user specifies another location, write at least docs/nextop/issue_summary_{{issueId}}.md with the result, changes, and conclusion.";
751
+ readonly requirementSummaryOutput: "2. Unless the user specifies another location, write at least docs/tutti/issue_summary_{{issueId}}.md with the result, changes, and conclusion.";
752
752
  readonly taskContentLabel: "Task content";
753
753
  readonly taskTitleLabel: "Task title";
754
754
  };
@@ -940,10 +940,10 @@ declare const agentGuiI18nResources: {
940
940
  readonly workspaceParticipantsOverflowAria: "More workspace participants";
941
941
  readonly workspaceXagentsCollab: "xagents collaboration";
942
942
  readonly workspaceThemeHint: "Theme & appearance";
943
- readonly loadingNextop: "Loading Nextop…";
943
+ readonly loadingTutti: "Loading Tutti…";
944
944
  readonly runtimeArtifactStatus: {
945
945
  readonly startupTitle: "Preparing the workspace runtime";
946
- readonly startupDescription: "Nextop is preparing the local workspace runtime before login or workspace entry. This one-time setup may take a few minutes on the first launch.";
946
+ readonly startupDescription: "Tutti is preparing the local workspace runtime before login or workspace entry. This one-time setup may take a few minutes on the first launch.";
947
947
  readonly startupProgressHint: "Checking local runtime files and preparing downloads.";
948
948
  readonly downloadedOfTotal: "{{downloaded}} of {{total}}";
949
949
  readonly progressAria: "Workspace runtime download progress";
@@ -1427,7 +1427,7 @@ declare const agentGuiI18nResources: {
1427
1427
  readonly requesterFallback: "User";
1428
1428
  readonly agentCodex: "Codex";
1429
1429
  readonly agentClaudeCode: "Claude Code";
1430
- readonly agentNextop: "Nextop";
1430
+ readonly agentTutti: "Tutti";
1431
1431
  readonly agentHermes: "Hermes";
1432
1432
  readonly agentGemini: "Gemini";
1433
1433
  readonly agentOpenClaw: "OpenClaw";
@@ -1602,7 +1602,7 @@ declare const agentGuiI18nResources: {
1602
1602
  readonly agentNotInstalled: "No local settings found. Sync after local setup.";
1603
1603
  readonly agentNotSynced: "Local settings found. Sync now?";
1604
1604
  };
1605
- readonly manageAgentsGuideLead: "Syncing or removing only affects Nextop; agents on your computer are unchanged.";
1605
+ readonly manageAgentsGuideLead: "Syncing or removing only affects Tutti; agents on your computer are unchanged.";
1606
1606
  readonly manageAgentsColumnAgent: "Agent";
1607
1607
  readonly manageAgentsColumnRun: "Runs in";
1608
1608
  readonly manageAgentsColumnInstallStatus: "Status";
@@ -1617,8 +1617,8 @@ declare const agentGuiI18nResources: {
1617
1617
  readonly manageAgentActionRetry: "Retry";
1618
1618
  readonly manageAgentActionUninstalling: "Removing...";
1619
1619
  readonly manageAgentActionUninstallWaiting: "Waiting...";
1620
- readonly manageAgentUninstallConfirm: "This only removes {{name}} from Nextop. Apps, sign-in, and settings outside Nextop are not changed.";
1621
- readonly manageAgentCellRunsLocal: "Nextop local";
1620
+ readonly manageAgentUninstallConfirm: "This only removes {{name}} from Tutti. Apps, sign-in, and settings outside Tutti are not changed.";
1621
+ readonly manageAgentCellRunsLocal: "Tutti local";
1622
1622
  readonly manageAgentCellInstalled: "Synced";
1623
1623
  readonly manageAgentCellNotInstalled: "Not synced";
1624
1624
  readonly manageAgentUninstallWaiting: "Waiting to remove";
@@ -1629,22 +1629,22 @@ declare const agentGuiI18nResources: {
1629
1629
  readonly manageAgentDownloadWaitingInstall: "Waiting to install";
1630
1630
  readonly manageAgentDownloadInstalling: "Installing";
1631
1631
  readonly manageAgentConfigWillUse: "Local settings found";
1632
- readonly manageAgentConfigWillSyncFrom: "After sync, Nextop will use {{agent}} settings from {{device}}";
1632
+ readonly manageAgentConfigWillSyncFrom: "After sync, Tutti will use {{agent}} settings from {{device}}";
1633
1633
  readonly manageAgentConfigSynced: "Synced · {{time}}";
1634
1634
  readonly manageAgentConfigSyncedNoTime: "Synced";
1635
- readonly manageAgentConfigSyncedFrom: "Synced from {{device}} to Nextop · {{time}}";
1636
- readonly manageAgentConfigSyncedFromNoTime: "Synced from {{device}} to Nextop";
1635
+ readonly manageAgentConfigSyncedFrom: "Synced from {{device}} to Tutti · {{time}}";
1636
+ readonly manageAgentConfigSyncedFromNoTime: "Synced from {{device}} to Tutti";
1637
1637
  readonly manageAgentConfigNone: "No settings";
1638
1638
  readonly manageAgentConfigNotDetected: "No local settings found";
1639
1639
  readonly manageAgentMissingHostConfigTooltip: "{{agent}} depends on your local installation. Finish local setup before syncing.";
1640
- readonly manageAgentNextopDefaultConfig: "Nextop default settings";
1640
+ readonly manageAgentTuttiDefaultConfig: "Tutti default settings";
1641
1641
  readonly manageAgentHostDeviceFallback: "this computer";
1642
1642
  readonly manageAgentSyncTimeJustNow: "just now";
1643
1643
  readonly manageAgentSyncTimeMinutesAgo: "{{count}} minutes ago";
1644
1644
  readonly manageAgentSyncTimeHoursAgo: "{{count}} hours ago";
1645
1645
  readonly manageAgentSyncTimeDaysAgo: "{{count}} days ago";
1646
1646
  readonly manageAgentsOpenclawHint: "To use OpenClaw in rooms, sync OpenClaw from Manage Agents.";
1647
- readonly kicker: "Nextop · Desktop";
1647
+ readonly kicker: "Tutti · Desktop";
1648
1648
  readonly promoBadge: "You currently have {{count}} available agents, you can use them inside rooms.";
1649
1649
  readonly promoBadgeNavigateAria: "Go to Manage agents—you currently have {{count}} available agents";
1650
1650
  readonly heroTitle: "Real-Time Collaborative OS for Humans and Agents";
@@ -1656,7 +1656,7 @@ declare const agentGuiI18nResources: {
1656
1656
  readonly updateCardDownloadingTitle: "Downloading {{version}}";
1657
1657
  readonly updateCardDownloadingDetail: "The update package is downloading in the background.";
1658
1658
  readonly updateCardDownloadedTitle: "Update is ready to install";
1659
- readonly updateCardDownloadedDetail: "Restart Nextop to finish installing version {{version}}.";
1659
+ readonly updateCardDownloadedDetail: "Restart Tutti to finish installing version {{version}}.";
1660
1660
  readonly updateCardDownloadAction: "Download Update";
1661
1661
  readonly updateCardInstallAction: "Restart and Install";
1662
1662
  readonly sectionSpacesTitle: "Rooms";
@@ -1711,9 +1711,9 @@ declare const agentGuiI18nResources: {
1711
1711
  readonly sectionMoreAriaComingSoon: "More, coming soon";
1712
1712
  readonly sectionMoreComingSoonHint: "Coming soon";
1713
1713
  readonly betaGateCheckingTitle: "Checking beta access";
1714
- readonly betaGateCheckingBody: "We are confirming whether this account already has access to Nextop beta.";
1714
+ readonly betaGateCheckingBody: "We are confirming whether this account already has access to Tutti beta.";
1715
1715
  readonly betaGateBlockedTitle: "This account does not have beta access yet";
1716
- readonly betaGateBlockedBody: "Enter your invite code to unlock the Nextop desktop beta.";
1716
+ readonly betaGateBlockedBody: "Enter your invite code to unlock the Tutti desktop beta.";
1717
1717
  readonly betaGateInviteCodeLabel: "Invite code";
1718
1718
  readonly betaGateInviteCodePlaceholder: "Enter invite code";
1719
1719
  readonly betaGateInviteCodeRequired: "Enter an invite code before continuing.";
@@ -2110,7 +2110,7 @@ declare const agentGuiI18nResources: {
2110
2110
  readonly openclaw: "OpenClaw";
2111
2111
  readonly claudeCode: "Claude";
2112
2112
  readonly codex: "Codex";
2113
- readonly nexightAgent: "Nextop Agent";
2113
+ readonly nexightAgent: "Tutti Agent";
2114
2114
  };
2115
2115
  readonly dockPopupAgentAvailabilitySectionAria: "Availability status for {{name}}";
2116
2116
  readonly nodeDockContextNew: {
@@ -2496,8 +2496,8 @@ declare const agentGuiI18nResources: {
2496
2496
  readonly authenticating: "处理中…";
2497
2497
  readonly loginTitle: "登录以继续";
2498
2498
  readonly loginSectionTitle: "使用你的账号继续";
2499
- readonly loginDescription: "选择一种登录方式,在浏览器完成登录后,再返回 Nextop。";
2500
- readonly loginBrowserHint: "选择一种登录方式,在浏览器完成认证后,再返回 Nextop。";
2499
+ readonly loginDescription: "选择一种登录方式,在浏览器完成登录后,再返回 Tutti。";
2500
+ readonly loginBrowserHint: "选择一种登录方式,在浏览器完成认证后,再返回 Tutti。";
2501
2501
  readonly loginOpeningBrowser: "正在打开浏览器...";
2502
2502
  readonly loginContinueWithGoogle: "使用 Google 继续";
2503
2503
  readonly loginContinueWithGitHub: "使用 GitHub 继续";
@@ -2527,17 +2527,17 @@ declare const agentGuiI18nResources: {
2527
2527
  readonly emailLoginCompleted: "邮箱登录完成。";
2528
2528
  readonly emailRequired: "请输入邮箱地址。";
2529
2529
  readonly emailCodeRequired: "请输入验证码。";
2530
- readonly desktopAuthBridgeStale: "桌面端认证桥接已过期,请重启 Nextop 后重试。";
2530
+ readonly desktopAuthBridgeStale: "桌面端认证桥接已过期,请重启 Tutti 后重试。";
2531
2531
  readonly desktopActionErrorGeneric: "出错了,请稍后重试。";
2532
2532
  readonly desktopActionErrorGenericShort: "出错了";
2533
2533
  readonly desktopActionErrorUnavailable: "该功能暂不可用。";
2534
- readonly desktopActionErrorLoginTimedOut: "登录已超时,请返回 Nextop 后重试。";
2535
- readonly desktopActionErrorDesktopApiUnavailable: "桌面端服务正在更新,请重启 Nextop 后重试。";
2534
+ readonly desktopActionErrorLoginTimedOut: "登录已超时,请返回 Tutti 后重试。";
2535
+ readonly desktopActionErrorDesktopApiUnavailable: "桌面端服务正在更新,请重启 Tutti 后重试。";
2536
2536
  readonly desktopActionErrorPackageDownloadInterrupted: "智能体安装包下载中断。请检查网络后点击重试。";
2537
2537
  readonly desktopActionErrorPackageDownloadHTTPStatus: "安装包服务拒绝了下载请求。请稍后重试,或联系支持人员。";
2538
2538
  readonly desktopActionErrorPackageDownloadInvalid: "下载的安装包未通过完整性校验。请重新下载。";
2539
2539
  readonly desktopActionErrorPackageDownloadDisk: "无法写入安装包缓存。请检查磁盘空间和目录权限。";
2540
- readonly productNameCanvas: "Nextop";
2540
+ readonly productNameCanvas: "Tutti";
2541
2541
  readonly applications: {
2542
2542
  readonly eyebrow: "Agent OS 应用";
2543
2543
  readonly title: "应用中心";
@@ -3026,7 +3026,7 @@ declare const agentGuiI18nResources: {
3026
3026
  readonly referencesLabel: "引用资料";
3027
3027
  readonly requirementNoOtherOutputDir: "3. 不要把最终产物写到其他目录。";
3028
3028
  readonly requirementStayInWorkspace: "1. 在 {{workspaceRoot}} 下工作,不要切换到其他无关目录。";
3029
- readonly requirementSummaryOutput: "2. 如果用户没有另行指定位置,至少输出 docs/nextop/issue_summary_{{issueId}}.md,说明处理结果、改动与结论。";
3029
+ readonly requirementSummaryOutput: "2. 如果用户没有另行指定位置,至少输出 docs/tutti/issue_summary_{{issueId}}.md,说明处理结果、改动与结论。";
3030
3030
  readonly taskContentLabel: "任务内容";
3031
3031
  readonly taskTitleLabel: "任务标题";
3032
3032
  };
@@ -3218,10 +3218,10 @@ declare const agentGuiI18nResources: {
3218
3218
  readonly workspaceParticipantsOverflowAria: "更多 Workspace 成员";
3219
3219
  readonly workspaceXagentsCollab: "xagents 协同";
3220
3220
  readonly workspaceThemeHint: "主题与外观";
3221
- readonly loadingNextop: "正在加载 Nextop…";
3221
+ readonly loadingTutti: "正在加载 Tutti…";
3222
3222
  readonly runtimeArtifactStatus: {
3223
3223
  readonly startupTitle: "正在准备 Workspace 运行环境";
3224
- readonly startupDescription: "Nextop 正在准备本机 Workspace 运行环境,完成后会进入登录页或首页。首次启动可能需要几分钟。";
3224
+ readonly startupDescription: "Tutti 正在准备本机 Workspace 运行环境,完成后会进入登录页或首页。首次启动可能需要几分钟。";
3225
3225
  readonly startupProgressHint: "正在检查本地运行环境文件并准备下载。";
3226
3226
  readonly downloadedOfTotal: "{{downloaded}} / {{total}}";
3227
3227
  readonly progressAria: "Workspace 运行环境下载进度";
@@ -3705,7 +3705,7 @@ declare const agentGuiI18nResources: {
3705
3705
  readonly requesterFallback: "用户";
3706
3706
  readonly agentCodex: "Codex";
3707
3707
  readonly agentClaudeCode: "Claude Code";
3708
- readonly agentNextop: "Nextop";
3708
+ readonly agentTutti: "Tutti";
3709
3709
  readonly agentHermes: "Hermes";
3710
3710
  readonly agentGemini: "Gemini";
3711
3711
  readonly agentOpenClaw: "OpenClaw";
@@ -3880,7 +3880,7 @@ declare const agentGuiI18nResources: {
3880
3880
  readonly agentNotInstalled: "未检测到本机配置,请完成本地安装后再同步。";
3881
3881
  readonly agentNotSynced: "检测到本机配置,是否立即同步?";
3882
3882
  };
3883
- readonly manageAgentsGuideLead: "同步或移除只影响 Nextop,不会改动你电脑上的智能体。";
3883
+ readonly manageAgentsGuideLead: "同步或移除只影响 Tutti,不会改动你电脑上的智能体。";
3884
3884
  readonly manageAgentsColumnAgent: "智能体";
3885
3885
  readonly manageAgentsColumnRun: "运行在";
3886
3886
  readonly manageAgentsColumnInstallStatus: "同步状态";
@@ -3895,8 +3895,8 @@ declare const agentGuiI18nResources: {
3895
3895
  readonly manageAgentActionRetry: "重试";
3896
3896
  readonly manageAgentActionUninstalling: "正在移除…";
3897
3897
  readonly manageAgentActionUninstallWaiting: "等待移除…";
3898
- readonly manageAgentUninstallConfirm: "只会从 Nextop 中移除 {{name}},不会影响 Nextop 以外的应用、登录状态或配置。";
3899
- readonly manageAgentCellRunsLocal: "Nextop 本地";
3898
+ readonly manageAgentUninstallConfirm: "只会从 Tutti 中移除 {{name}},不会影响 Tutti 以外的应用、登录状态或配置。";
3899
+ readonly manageAgentCellRunsLocal: "Tutti 本地";
3900
3900
  readonly manageAgentCellInstalled: "已同步";
3901
3901
  readonly manageAgentCellNotInstalled: "未同步";
3902
3902
  readonly manageAgentUninstallWaiting: "等待移除";
@@ -3910,19 +3910,19 @@ declare const agentGuiI18nResources: {
3910
3910
  readonly manageAgentConfigWillSyncFrom: "同步后会沿用 {{device}} 上的 {{agent}} 配置";
3911
3911
  readonly manageAgentConfigSynced: "已同步 · {{time}}";
3912
3912
  readonly manageAgentConfigSyncedNoTime: "已同步";
3913
- readonly manageAgentConfigSyncedFrom: "已从 {{device}} 同步到 Nextop · {{time}}";
3914
- readonly manageAgentConfigSyncedFromNoTime: "已从 {{device}} 同步到 Nextop";
3913
+ readonly manageAgentConfigSyncedFrom: "已从 {{device}} 同步到 Tutti · {{time}}";
3914
+ readonly manageAgentConfigSyncedFromNoTime: "已从 {{device}} 同步到 Tutti";
3915
3915
  readonly manageAgentConfigNone: "未发现配置";
3916
3916
  readonly manageAgentConfigNotDetected: "未检测到本机配置";
3917
3917
  readonly manageAgentMissingHostConfigTooltip: "{{agent}} 依赖你的本地安装,请先完成本地安装再进行同步";
3918
- readonly manageAgentNextopDefaultConfig: "Nextop 默认配置";
3918
+ readonly manageAgentTuttiDefaultConfig: "Tutti 默认配置";
3919
3919
  readonly manageAgentHostDeviceFallback: "这台电脑";
3920
3920
  readonly manageAgentSyncTimeJustNow: "刚刚";
3921
3921
  readonly manageAgentSyncTimeMinutesAgo: "{{count}} 分钟前";
3922
3922
  readonly manageAgentSyncTimeHoursAgo: "{{count}} 小时前";
3923
3923
  readonly manageAgentSyncTimeDaysAgo: "{{count}} 天前";
3924
3924
  readonly manageAgentsOpenclawHint: "若要在房间内使用 OpenClaw,请前往管理智能体同步 OpenClaw。";
3925
- readonly kicker: "Nextop · 桌面工作台";
3925
+ readonly kicker: "Tutti · 桌面工作台";
3926
3926
  readonly promoBadge: "你目前有 {{count}} 个可用 agents,可以在房间内使用它们。";
3927
3927
  readonly promoBadgeNavigateAria: "前往管理智能体,你目前有 {{count}} 个可用 agents";
3928
3928
  readonly heroTitle: "首个多人与多 agent 实时协作 OS";
@@ -3934,7 +3934,7 @@ declare const agentGuiI18nResources: {
3934
3934
  readonly updateCardDownloadingTitle: "正在下载 {{version}}";
3935
3935
  readonly updateCardDownloadingDetail: "更新包正在后台下载。";
3936
3936
  readonly updateCardDownloadedTitle: "更新已准备就绪";
3937
- readonly updateCardDownloadedDetail: "重启 Nextop 后即可完成 {{version}} 的安装。";
3937
+ readonly updateCardDownloadedDetail: "重启 Tutti 后即可完成 {{version}} 的安装。";
3938
3938
  readonly updateCardDownloadAction: "下载更新";
3939
3939
  readonly updateCardInstallAction: "重启并安装";
3940
3940
  readonly sectionSpacesTitle: "房间";
@@ -3989,9 +3989,9 @@ declare const agentGuiI18nResources: {
3989
3989
  readonly sectionMoreAriaComingSoon: "更多,即将推出";
3990
3990
  readonly sectionMoreComingSoonHint: "即将推出";
3991
3991
  readonly betaGateCheckingTitle: "正在检查内测权限";
3992
- readonly betaGateCheckingBody: "我们正在确认当前账号是否已经拥有 Nextop 内测资格";
3992
+ readonly betaGateCheckingBody: "我们正在确认当前账号是否已经拥有 Tutti 内测资格";
3993
3993
  readonly betaGateBlockedTitle: "当前账号暂未获得内测资格";
3994
- readonly betaGateBlockedBody: "输入邀请码以解锁 Nextop 桌面端内测";
3994
+ readonly betaGateBlockedBody: "输入邀请码以解锁 Tutti 桌面端内测";
3995
3995
  readonly betaGateInviteCodeLabel: "邀请码";
3996
3996
  readonly betaGateInviteCodePlaceholder: "输入邀请码";
3997
3997
  readonly betaGateInviteCodeRequired: "请先输入邀请码。";
@@ -4388,7 +4388,7 @@ declare const agentGuiI18nResources: {
4388
4388
  readonly openclaw: "OpenClaw";
4389
4389
  readonly claudeCode: "Claude";
4390
4390
  readonly codex: "Codex";
4391
- readonly nexightAgent: "Nextop 智能体";
4391
+ readonly nexightAgent: "Tutti 智能体";
4392
4392
  };
4393
4393
  readonly dockPopupAgentAvailabilitySectionAria: "{{name}} 的可用性状态";
4394
4394
  readonly nodeDockContextNew: {
@@ -6,7 +6,7 @@ import {
6
6
  translate,
7
7
  translateInUiLanguage,
8
8
  useTranslation
9
- } from "../chunk-ZAVQMGAX.js";
9
+ } from "../chunk-T6U7AB7F.js";
10
10
  export {
11
11
  AgentGuiI18nProvider,
12
12
  agentGuiI18nModule,
package/dist/index.d.ts CHANGED
@@ -1,8 +1,9 @@
1
1
  import { AgentActivityNeedsAttentionItem, AgentActivitySnapshot, AgentActivityCancelSessionInput, AgentActivityCancelSessionResult, AgentActivityCreateSessionInput, AgentActivitySession, AgentActivityDeleteSessionInput, AgentActivityDeleteSessionResult, AgentActivitySendInput, AgentActivityMessageOrder, AgentActivityMessagePage, AgentActivitySubmitInteractiveInput, AgentActivitySnapshotListener } from '@tutti-os/agent-activity-core';
2
2
  export { AgentActivityAdapter, AgentActivityController, AgentActivityMessage, AgentActivityNeedsAttentionItem, AgentActivitySnapshot, selectNeedsAttentionCount, selectNeedsAttentionItems } from '@tutti-os/agent-activity-core';
3
- import { m as WorkspaceAgentActivityListViewModel, g as AgentHostWorkspaceAgentSession, f as AgentHostWorkspaceAgentMessage, l as AgentHostWorkspaceAgentSnapshot, B as BuildWorkspaceAgentActivityListOptions, d as AgentHostRuntimeOpenclawGatewayWarmupResult, A as AgentHostBatchUserInfoInput, a as AgentHostBatchUserInfoResult, b as AgentHostDeleteWorkspaceAgentSessionInput, k as AgentHostWorkspaceAgentSessionSummaryInput, j as AgentHostWorkspaceAgentSessionSummary, e as AgentHostWorkspaceAgentListInput, i as AgentHostWorkspaceAgentSessionMessagesInput, h as AgentHostWorkspaceAgentSessionMessages, c as AgentHostManagedAgentsState } from './workspaceAgentActivityListViewModel-PvLQDj60.js';
3
+ import { m as WorkspaceAgentActivityListViewModel, g as AgentHostWorkspaceAgentSession, f as AgentHostWorkspaceAgentMessage, l as AgentHostWorkspaceAgentSnapshot, B as BuildWorkspaceAgentActivityListOptions, d as AgentHostRuntimeOpenclawGatewayWarmupResult, A as AgentHostBatchUserInfoInput, a as AgentHostBatchUserInfoResult, b as AgentHostDeleteWorkspaceAgentSessionInput, k as AgentHostWorkspaceAgentSessionSummaryInput, j as AgentHostWorkspaceAgentSessionSummary, e as AgentHostWorkspaceAgentListInput, i as AgentHostWorkspaceAgentSessionMessagesInput, h as AgentHostWorkspaceAgentSessionMessages, c as AgentHostManagedAgentsState } from './workspaceAgentActivityListViewModel-Be4zm3nk.js';
4
4
  import { PropsWithChildren, JSX } from 'react';
5
5
  import { I18nRuntime } from '@tutti-os/ui-i18n-runtime';
6
+ import { WorkspaceUserProjectService } from '@tutti-os/workspace-user-project/contracts';
6
7
  import { WorkspaceFileReferenceAdapter, WorkspaceFileReference } from '@tutti-os/workspace-file-reference/contracts';
7
8
  import { W as WorkspaceLinkAction } from './workspaceLinkActions-Bwa-phu8.js';
8
9
  import { AgentRichTextAtProvider } from './agent-rich-text-at-provider.js';
@@ -407,6 +408,7 @@ interface AgentHostUserProject {
407
408
  lastUsedAtUnixMs?: number;
408
409
  }
409
410
  type AgentHostUserProjectsApi = AgentHostRecord & {
411
+ service?: WorkspaceUserProjectService;
410
412
  checkPath?: (input: {
411
413
  path: string;
412
414
  }) => AgentHostAsyncResult<{
package/dist/index.js CHANGED
@@ -7,7 +7,7 @@ import {
7
7
  mergeWorkspaceAgentActivityDurableAndOverlayMessages,
8
8
  normalizeOptionalWorkspaceAgentStatus,
9
9
  selectWorkspaceAgentActivityOverlayMessages
10
- } from "./chunk-DHOAJJ3K.js";
10
+ } from "./chunk-EHLA6MSQ.js";
11
11
  import {
12
12
  AgentActivityHostProvider,
13
13
  AgentActivityRuntimeProvider,
@@ -38,7 +38,7 @@ import {
38
38
  useOptionalAgentHostApi,
39
39
  user_avatar_placeholder_default,
40
40
  workspaceAgentActivityStatusLabel
41
- } from "./chunk-VBNWIBNV.js";
41
+ } from "./chunk-CUQJ3VO3.js";
42
42
  import {
43
43
  resolveWorkspaceAgentSessionSortTimeUnixMs,
44
44
  workspaceAgentProviderLabel
@@ -56,7 +56,7 @@ import {
56
56
  getActiveUiLanguage,
57
57
  translate,
58
58
  useTranslation
59
- } from "./chunk-ZAVQMGAX.js";
59
+ } from "./chunk-T6U7AB7F.js";
60
60
  import {
61
61
  resolveAgentMentionFileThumbnailUrl,
62
62
  resolveAgentMentionFileVisualKind
@@ -73,8 +73,8 @@ import {
73
73
  resolveAgentGUIExpandedWindowFrame,
74
74
  resolveNextAgentGUIConversationRailWidthPx,
75
75
  shouldAutoCollapseAgentGUIConversationRail
76
- } from "./chunk-GYG57VTA.js";
77
- import "./chunk-ZU3FKYMG.js";
76
+ } from "./chunk-R5Q2UDDH.js";
77
+ import "./chunk-4ASBZ4X7.js";
78
78
 
79
79
  // shared/agentActivitySnapshotProjection.ts
80
80
  import {
@@ -422,7 +422,7 @@ var CanvasNodeGhostIconButton = forwardRef(function CanvasNodeGhostIconButton2({
422
422
  ...rest,
423
423
  type: "button",
424
424
  className: cn(
425
- "nodrag inline-flex h-7 min-h-7 w-7 min-w-7 shrink-0 items-center justify-center rounded-[4px] border border-transparent bg-transparent p-0 text-[var(--cove-canvas-control-text)] transition-[background-color,color,border-color,opacity] duration-200 ease-in-out [-webkit-app-region:no-drag] hover:border-transparent hover:bg-[var(--transparency-block)] hover:text-[var(--cove-canvas-control-text-hover)] active:bg-[var(--transparency-block-active)] active:text-[var(--cove-canvas-control-text-hover)] disabled:cursor-not-allowed disabled:opacity-45 focus-visible:outline-2 focus-visible:outline-[color:color-mix(in_srgb,var(--tsh-shell-accent)_80%,white)] focus-visible:outline-offset-2 [&_svg]:block [&_svg]:h-4 [&_svg]:w-4 [&_svg]:shrink-0 [&_svg:not([data-nexight-chrome-glyph=fill]):not([data-nextop-chrome-glyph=fill])]:fill-none [&_svg:not([data-nexight-chrome-glyph=fill]):not([data-nextop-chrome-glyph=fill])]:stroke-current data-[menu-open=true]:border-transparent data-[menu-open=true]:bg-[var(--transparency-block)] data-[menu-open=true]:text-[var(--cove-canvas-control-text-hover)] data-[menu-open=true]:hover:bg-[var(--transparency-block-active)]",
425
+ "nodrag inline-flex h-7 min-h-7 w-7 min-w-7 shrink-0 items-center justify-center rounded-[4px] border border-transparent bg-transparent p-0 text-[var(--cove-canvas-control-text)] transition-[background-color,color,border-color,opacity] duration-200 ease-in-out [-webkit-app-region:no-drag] hover:border-transparent hover:bg-[var(--transparency-block)] hover:text-[var(--cove-canvas-control-text-hover)] active:bg-[var(--transparency-block-active)] active:text-[var(--cove-canvas-control-text-hover)] disabled:cursor-not-allowed disabled:opacity-45 focus-visible:outline-2 focus-visible:outline-[color:color-mix(in_srgb,var(--tsh-shell-accent)_80%,white)] focus-visible:outline-offset-2 [&_svg]:block [&_svg]:h-4 [&_svg]:w-4 [&_svg]:shrink-0 [&_svg:not([data-nexight-chrome-glyph=fill]):not([data-tutti-chrome-glyph=fill])]:fill-none [&_svg:not([data-nexight-chrome-glyph=fill]):not([data-tutti-chrome-glyph=fill])]:stroke-current data-[menu-open=true]:border-transparent data-[menu-open=true]:bg-[var(--transparency-block)] data-[menu-open=true]:text-[var(--cove-canvas-control-text-hover)] data-[menu-open=true]:hover:bg-[var(--transparency-block-active)]",
426
426
  className
427
427
  ),
428
428
  onPointerDown: (event) => {
@@ -520,7 +520,7 @@ function CanvasNodeGuideLinedIcon({
520
520
  xmlns: "http://www.w3.org/2000/svg",
521
521
  className,
522
522
  ...props,
523
- "data-nextop-chrome-glyph": "fill",
523
+ "data-tutti-chrome-glyph": "fill",
524
524
  "data-nexight-chrome-glyph": "fill",
525
525
  children: /* @__PURE__ */ jsx4("path", { d: GUIDE_LINED_PATH, fill: "currentColor" })
526
526
  }
@@ -538,7 +538,7 @@ function CanvasNodeMoreLinedIcon({
538
538
  xmlns: "http://www.w3.org/2000/svg",
539
539
  className,
540
540
  ...props,
541
- "data-nextop-chrome-glyph": "fill",
541
+ "data-tutti-chrome-glyph": "fill",
542
542
  "data-nexight-chrome-glyph": "fill",
543
543
  children: /* @__PURE__ */ jsx4("path", { d: MORE_LINED_PATH, fill: "currentColor" })
544
544
  }
@@ -556,7 +556,7 @@ function CanvasNodeTrashLinedIcon({
556
556
  xmlns: "http://www.w3.org/2000/svg",
557
557
  className,
558
558
  ...props,
559
- "data-nextop-chrome-glyph": "fill",
559
+ "data-tutti-chrome-glyph": "fill",
560
560
  "data-nexight-chrome-glyph": "fill",
561
561
  children: /* @__PURE__ */ jsx4("path", { d: TRASH_LINED_PATH, fill: "currentColor" })
562
562
  }
@@ -574,7 +574,7 @@ function CanvasNodeMaximizeLinedIcon({
574
574
  xmlns: "http://www.w3.org/2000/svg",
575
575
  className,
576
576
  ...props,
577
- "data-nextop-chrome-glyph": "fill",
577
+ "data-tutti-chrome-glyph": "fill",
578
578
  "data-nexight-chrome-glyph": "fill",
579
579
  children: /* @__PURE__ */ jsx4("path", { d: MAXIMIZE_LINED_PATH, fill: "currentColor" })
580
580
  }
@@ -592,7 +592,7 @@ function CanvasNodeMinimizeLinedIcon({
592
592
  xmlns: "http://www.w3.org/2000/svg",
593
593
  className,
594
594
  ...props,
595
- "data-nextop-chrome-glyph": "fill",
595
+ "data-tutti-chrome-glyph": "fill",
596
596
  "data-nexight-chrome-glyph": "fill",
597
597
  children: /* @__PURE__ */ jsx4("path", { d: MINIMIZE_LINED_PATH, fill: "currentColor" })
598
598
  }
@@ -610,7 +610,7 @@ function CanvasNodeLayoutLinedIcon({
610
610
  xmlns: "http://www.w3.org/2000/svg",
611
611
  className,
612
612
  ...props,
613
- "data-nextop-chrome-glyph": "fill",
613
+ "data-tutti-chrome-glyph": "fill",
614
614
  "data-nexight-chrome-glyph": "fill",
615
615
  children: /* @__PURE__ */ jsx4("path", { d: LAYOUT_LINED_PATH, fill: "currentColor" })
616
616
  }
@@ -628,7 +628,7 @@ function CanvasNodePanelLinedIcon({
628
628
  xmlns: "http://www.w3.org/2000/svg",
629
629
  className,
630
630
  ...props,
631
- "data-nextop-chrome-glyph": "fill",
631
+ "data-tutti-chrome-glyph": "fill",
632
632
  "data-nexight-chrome-glyph": "fill",
633
633
  children: [
634
634
  /* @__PURE__ */ jsx4("path", { d: PANEL_LINED_FRAME_PATH, fill: "currentColor" }),
@@ -688,7 +688,7 @@ function GridBottomLinedIcon(props) {
688
688
  viewBox: "0 0 24 24",
689
689
  fill: "currentColor",
690
690
  "aria-hidden": true,
691
- "data-nextop-chrome-glyph": "fill",
691
+ "data-tutti-chrome-glyph": "fill",
692
692
  "data-nexight-chrome-glyph": "fill",
693
693
  ...props,
694
694
  children: /* @__PURE__ */ jsx6("path", { d: "M19 2C20.6569 2 22 3.34315 22 5V19C22 20.6569 20.6569 22 19 22H5C3.34315 22 2 20.6569 2 19V5C2 3.34315 3.34315 2 5 2H19ZM4 16V19C4 19.5523 4.44772 20 5 20H19C19.5523 20 20 19.5523 20 19V16H4ZM5 4C4.44772 4 4 4.44772 4 5V14H20V5C20 4.44772 19.5523 4 19 4H5Z" })
@@ -707,7 +707,7 @@ function GridLeftLinedIcon(props) {
707
707
  viewBox: "0 0 24 24",
708
708
  fill: "currentColor",
709
709
  "aria-hidden": true,
710
- "data-nextop-chrome-glyph": "fill",
710
+ "data-tutti-chrome-glyph": "fill",
711
711
  "data-nexight-chrome-glyph": "fill",
712
712
  ...props,
713
713
  children: /* @__PURE__ */ jsx7("path", { d: "M19 2C20.6569 2 22 3.34315 22 5V19C22 20.6569 20.6569 22 19 22H5C3.34315 22 2 20.6569 2 19V5C2 3.34315 3.34315 2 5 2H19ZM10 20H19C19.5523 20 20 19.5523 20 19V5C20 4.44772 19.5523 4 19 4H10V20ZM5 4C4.44772 4 4 4.44772 4 5V19C4 19.5523 4.44772 20 5 20H8V4H5Z" })
@@ -726,7 +726,7 @@ function GridRightLinedIcon(props) {
726
726
  viewBox: "0 0 24 24",
727
727
  fill: "currentColor",
728
728
  "aria-hidden": true,
729
- "data-nextop-chrome-glyph": "fill",
729
+ "data-tutti-chrome-glyph": "fill",
730
730
  "data-nexight-chrome-glyph": "fill",
731
731
  ...props,
732
732
  children: /* @__PURE__ */ jsx8("path", { d: "M19 2C20.6569 2 22 3.34315 22 5V19C22 20.6569 20.6569 22 19 22H5C3.34315 22 2 20.6569 2 19V5C2 3.34315 3.34315 2 5 2H19ZM16 20H19C19.5523 20 20 19.5523 20 19V5C20 4.44772 19.5523 4 19 4H16V20ZM5 4C4.44772 4 4 4.44772 4 5V19C4 19.5523 4.44772 20 5 20H14V4H5Z" })
@@ -745,7 +745,7 @@ function GridTopLinedIcon(props) {
745
745
  viewBox: "0 0 24 24",
746
746
  fill: "currentColor",
747
747
  "aria-hidden": true,
748
- "data-nextop-chrome-glyph": "fill",
748
+ "data-tutti-chrome-glyph": "fill",
749
749
  "data-nexight-chrome-glyph": "fill",
750
750
  ...props,
751
751
  children: /* @__PURE__ */ jsx9("path", { d: "M19 2C20.6569 2 22 3.34315 22 5V19C22 20.6569 20.6569 22 19 22H5C3.34315 22 2 20.6569 2 19V5C2 3.34315 3.34315 2 5 2H19ZM4 10V19C4 19.5523 4.44772 20 5 20H19C19.5523 20 20 19.5523 20 19V10H4ZM5 4C4.44772 4 4 4.44772 4 5V8H20V5C20 4.44772 19.5523 4 19 4H5Z" })
@@ -1678,7 +1678,7 @@ function WindowLayoutMenuButton({
1678
1678
  {
1679
1679
  align: "end",
1680
1680
  sideOffset: 10,
1681
- className: "t-dropdown is-open relative min-w-[160px] rounded-[var(--nextop-radius-xl)] border border-hairline bg-background-fronted p-0 text-foreground shadow-[var(--tsh-shell-shadow)]",
1681
+ className: "t-dropdown is-open relative min-w-[160px] rounded-[var(--tutti-radius-xl)] border border-hairline bg-background-fronted p-0 text-foreground shadow-[var(--tsh-shell-shadow)]",
1682
1682
  "data-origin": "top-right",
1683
1683
  "data-testid": "window-layout-menu",
1684
1684
  children: [
@@ -5687,7 +5687,7 @@ function isDirectAgentGeneratedImagePath(path) {
5687
5687
  }
5688
5688
  const segments = path.split("/").filter(Boolean);
5689
5689
  const stateRootIndex = segments.findIndex(
5690
- (segment) => segment === ".nextop" || segment === ".nextop-dev"
5690
+ (segment) => segment === ".tutti" || segment === ".tutti-dev"
5691
5691
  );
5692
5692
  if (stateRootIndex < 0) {
5693
5693
  return false;
@@ -7044,7 +7044,7 @@ function normalizeAgentGUIProviderIdentity(provider) {
7044
7044
  case "codex":
7045
7045
  return "codex";
7046
7046
  case "nexight":
7047
- case "nextop":
7047
+ case "tutti":
7048
7048
  return "nexight";
7049
7049
  case "gemini":
7050
7050
  return "gemini";
@@ -22902,7 +22902,7 @@ function DirectLinedIcon(props) {
22902
22902
  fill: "currentColor",
22903
22903
  "aria-hidden": true,
22904
22904
  "data-nexight-chrome-glyph": "fill",
22905
- "data-nextop-chrome-glyph": "fill",
22905
+ "data-tutti-chrome-glyph": "fill",
22906
22906
  ...props,
22907
22907
  children: /* @__PURE__ */ jsx67(
22908
22908
  "path",
@@ -22935,7 +22935,7 @@ var CanvasNodeGhostIconButton3 = forwardRef8(function CanvasNodeGhostIconButton4
22935
22935
  ...rest,
22936
22936
  type: "button",
22937
22937
  className: cn(
22938
- "nodrag inline-flex h-7 min-h-7 w-7 min-w-7 shrink-0 items-center justify-center rounded-[4px] border border-transparent bg-transparent p-0 text-[var(--cove-canvas-control-text)] transition-[background-color,color,border-color,opacity] duration-200 ease-in-out [-webkit-app-region:no-drag] hover:border-transparent hover:bg-[var(--transparency-block)] hover:text-[var(--cove-canvas-control-text-hover)] active:bg-[var(--transparency-block-active)] active:text-[var(--cove-canvas-control-text-hover)] disabled:cursor-not-allowed disabled:opacity-45 focus-visible:outline-2 focus-visible:outline-[color:color-mix(in_srgb,var(--tsh-shell-accent)_80%,white)] focus-visible:outline-offset-2 [&_svg]:block [&_svg]:h-4 [&_svg]:w-4 [&_svg]:shrink-0 [&_svg:not([data-nexight-chrome-glyph=fill]):not([data-nextop-chrome-glyph=fill])]:fill-none [&_svg:not([data-nexight-chrome-glyph=fill]):not([data-nextop-chrome-glyph=fill])]:stroke-current data-[menu-open=true]:border-transparent data-[menu-open=true]:bg-[var(--transparency-block)] data-[menu-open=true]:text-[var(--cove-canvas-control-text-hover)] data-[menu-open=true]:hover:bg-[var(--transparency-block-active)]",
22938
+ "nodrag inline-flex h-7 min-h-7 w-7 min-w-7 shrink-0 items-center justify-center rounded-[4px] border border-transparent bg-transparent p-0 text-[var(--cove-canvas-control-text)] transition-[background-color,color,border-color,opacity] duration-200 ease-in-out [-webkit-app-region:no-drag] hover:border-transparent hover:bg-[var(--transparency-block)] hover:text-[var(--cove-canvas-control-text-hover)] active:bg-[var(--transparency-block-active)] active:text-[var(--cove-canvas-control-text-hover)] disabled:cursor-not-allowed disabled:opacity-45 focus-visible:outline-2 focus-visible:outline-[color:color-mix(in_srgb,var(--tsh-shell-accent)_80%,white)] focus-visible:outline-offset-2 [&_svg]:block [&_svg]:h-4 [&_svg]:w-4 [&_svg]:shrink-0 [&_svg:not([data-nexight-chrome-glyph=fill]):not([data-tutti-chrome-glyph=fill])]:fill-none [&_svg:not([data-nexight-chrome-glyph=fill]):not([data-tutti-chrome-glyph=fill])]:stroke-current data-[menu-open=true]:border-transparent data-[menu-open=true]:bg-[var(--transparency-block)] data-[menu-open=true]:text-[var(--cove-canvas-control-text-hover)] data-[menu-open=true]:hover:bg-[var(--transparency-block-active)]",
22939
22939
  className
22940
22940
  ),
22941
22941
  onPointerDown: (event) => {
@@ -23543,7 +23543,7 @@ var AgentTranscriptView = memo3(function AgentTranscriptView2({
23543
23543
  showTurnDivider ? /* @__PURE__ */ jsx71(
23544
23544
  "div",
23545
23545
  {
23546
- className: "h-px w-full flex-none bg-[var(--line-2,var(--nextop-line-2))]",
23546
+ className: "h-px w-full flex-none bg-[var(--line-2,var(--tutti-line-2))]",
23547
23547
  "data-testid": "agent-transcript-turn-divider",
23548
23548
  "aria-hidden": "true"
23549
23549
  }
@@ -25542,6 +25542,7 @@ function AgentProjectDropdown({
25542
25542
  }
25543
25543
  ),
25544
25544
  selectedProjectPath: composerSettings.selectedProjectPath,
25545
+ service: agentHostApi.userProjects?.service ?? null,
25545
25546
  showCreateProjectAction: true,
25546
25547
  onProjectMissingChange,
25547
25548
  onProjectPathChange
@@ -29070,8 +29071,8 @@ var composerStyles = {
29070
29071
  dropdownSurface: "nodrag isolate rounded-[12px] border border-hairline bg-background-fronted p-[4px] text-foreground shadow-[var(--tsh-shell-shadow)] [-webkit-app-region:no-drag]",
29071
29072
  slashDropdown: "overflow-hidden"
29072
29073
  };
29073
- var workspaceReferenceSelectValue = "__nextop_workspace_reference_idle__";
29074
- var workspaceReferenceOptionValue = "__nextop_workspace_reference_add__";
29074
+ var workspaceReferenceSelectValue = "__tutti_workspace_reference_idle__";
29075
+ var workspaceReferenceOptionValue = "__tutti_workspace_reference_add__";
29075
29076
  var composerPaletteZIndex = "var(--z-popover)";
29076
29077
  var SLASH_PALETTE_HEIGHT_PX = 280;
29077
29078
  var MENTION_PALETTE_MIN_HEIGHT_PX = 280;
@@ -31308,6 +31309,9 @@ function conversationHasActiveWork2(conversation) {
31308
31309
  return false;
31309
31310
  }) ?? false;
31310
31311
  }
31312
+ function isSettledConversationStatus2(status) {
31313
+ return status === "completed" || status === "failed" || status === "canceled";
31314
+ }
31311
31315
  function resolveActiveConversationBusyStatus(input) {
31312
31316
  if (input.conversationStatus === "waiting" || input.detailStatus === "waiting") {
31313
31317
  return "waiting";
@@ -31315,6 +31319,9 @@ function resolveActiveConversationBusyStatus(input) {
31315
31319
  if (input.conversationStatus === "working" || input.detailStatus === "working") {
31316
31320
  return "working";
31317
31321
  }
31322
+ if (isSettledConversationStatus2(input.conversationStatus) || isSettledConversationStatus2(input.detailStatus)) {
31323
+ return null;
31324
+ }
31318
31325
  if (conversationHasActiveWork2(input.conversation)) {
31319
31326
  return "working";
31320
31327
  }
@@ -33132,6 +33139,7 @@ function AgentGUIProjectRailHeader({
33132
33139
  }
33133
33140
  ),
33134
33141
  selectedProjectPath: null,
33142
+ service: agentHostApi.userProjects?.service ?? null,
33135
33143
  shouldApplyPreparedSelection: false,
33136
33144
  showCreateProjectAction: true,
33137
33145
  showKnownProjectOptions: false,
@@ -33556,12 +33564,12 @@ var AGENT_HOST_MANAGED_TOOLCHAIN_AGENTS = [
33556
33564
  helperProvider: "codex"
33557
33565
  },
33558
33566
  {
33559
- id: "nextop",
33567
+ id: "tutti",
33560
33568
  // i18n-check-ignore: Provider brand name.
33561
- label: "Nextop",
33569
+ label: "Tutti",
33562
33570
  actionAgentId: "nexight",
33563
33571
  toolIds: ["nexight-cli"],
33564
- agentIds: ["nexight", "nextop"],
33572
+ agentIds: ["nexight", "tutti"],
33565
33573
  runtimeManaged: false,
33566
33574
  helperProvider: "nexight"
33567
33575
  },
@@ -33597,7 +33605,7 @@ var AGENT_HOST_MANAGED_TOOLCHAIN_AGENTS = [
33597
33605
  }
33598
33606
  ];
33599
33607
  var WORKSPACE_DESKTOP_MANAGED_AGENT_DOCK_PROVIDER_ORDER = AGENT_HOST_MANAGED_TOOLCHAIN_AGENTS.map(
33600
- (agent) => agent.id === "nextop" ? "nexight" : agent.id
33608
+ (agent) => agent.id === "tutti" ? "nexight" : agent.id
33601
33609
  );
33602
33610
  function normalizeKey(value) {
33603
33611
  return (value ?? "").trim().toLowerCase();