@tutti-os/agent-gui 0.0.5 → 0.0.6

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.
@@ -8,7 +8,7 @@ import {
8
8
  import {
9
9
  translate,
10
10
  translateInUiLanguage
11
- } from "./chunk-BHCCGKOP.js";
11
+ } from "./chunk-JWVLIF5R.js";
12
12
 
13
13
  // shared/workspaceAgentStatusNormalizer.ts
14
14
  var FAILED_STATUS_TOKENS = /* @__PURE__ */ new Set(["failed", "error"]);
@@ -918,4 +918,4 @@ export {
918
918
  resolveWorkspaceAgentActivityStatus,
919
919
  resolveWorkspaceAgentActivityTitle
920
920
  };
921
- //# sourceMappingURL=chunk-7ICAFTA2.js.map
921
+ //# sourceMappingURL=chunk-KGFWU4FL.js.map
@@ -590,6 +590,7 @@ declare const agentGuiI18nResources: {
590
590
  readonly approvalUnavailable: "No choices are available.";
591
591
  readonly approvalOptions: {
592
592
  readonly allowOnce: "Yes, proceed";
593
+ readonly allowForSession: "Yes, for this session";
593
594
  readonly allowAlways: "Yes, and don't ask again";
594
595
  readonly allowAlwaysForCommandPrefix: "Yes, and don't ask again for commands that start with `{{command}}`";
595
596
  readonly allowAlwaysForCommandPrefixLead: "Yes, and don't ask again for commands that start with";
@@ -2866,6 +2867,7 @@ declare const agentGuiI18nResources: {
2866
2867
  readonly approvalUnavailable: "没有可用选项。";
2867
2868
  readonly approvalOptions: {
2868
2869
  readonly allowOnce: "允许执行";
2870
+ readonly allowForSession: "本次会话允许";
2869
2871
  readonly allowAlways: "允许,并且不再询问";
2870
2872
  readonly allowAlwaysForCommandPrefix: "允许,并且不再询问以 `{{command}}` 开头的命令";
2871
2873
  readonly allowAlwaysForCommandPrefixLead: "允许,并且不再询问以下列内容开头的命令";
@@ -6,7 +6,7 @@ import {
6
6
  translate,
7
7
  translateInUiLanguage,
8
8
  useTranslation
9
- } from "../chunk-BHCCGKOP.js";
9
+ } from "../chunk-JWVLIF5R.js";
10
10
  export {
11
11
  AgentGuiI18nProvider,
12
12
  agentGuiI18nModule,
package/dist/index.js CHANGED
@@ -7,7 +7,7 @@ import {
7
7
  mergeWorkspaceAgentActivityDurableAndOverlayMessages,
8
8
  normalizeOptionalWorkspaceAgentStatus,
9
9
  selectWorkspaceAgentActivityOverlayMessages
10
- } from "./chunk-7ICAFTA2.js";
10
+ } from "./chunk-KGFWU4FL.js";
11
11
  import {
12
12
  AgentActivityHostProvider,
13
13
  AgentActivityRuntimeProvider,
@@ -27,7 +27,6 @@ import {
27
27
  getOptionalAgentHostApi,
28
28
  managedAgentRoundedIconUrl,
29
29
  normalizeManagedAgentProvider,
30
- normalizeWorkspaceAgentActivityDisplayStatus,
31
30
  resetAgentActivityRuntimeForTests,
32
31
  resolveWebsiteNavigationUrl,
33
32
  resolveWorkspaceLinkAction,
@@ -39,7 +38,7 @@ import {
39
38
  useOptionalAgentHostApi,
40
39
  user_avatar_placeholder_default,
41
40
  workspaceAgentActivityStatusLabel
42
- } from "./chunk-F55LU7IJ.js";
41
+ } from "./chunk-FKCXHCPO.js";
43
42
  import {
44
43
  resolveWorkspaceAgentSessionSortTimeUnixMs,
45
44
  workspaceAgentProviderLabel
@@ -57,7 +56,7 @@ import {
57
56
  getActiveUiLanguage,
58
57
  translate,
59
58
  useTranslation
60
- } from "./chunk-BHCCGKOP.js";
59
+ } from "./chunk-JWVLIF5R.js";
61
60
  import {
62
61
  resolveAgentMentionFileThumbnailUrl,
63
62
  resolveAgentMentionFileVisualKind
@@ -161,7 +160,7 @@ function agentHostSessionFromCore(session, id, presenceId) {
161
160
  title: session.title || void 0,
162
161
  turnPhase: agentHostTurnPhaseFromCore(session.status),
163
162
  updatedAtUnixMs: session.updatedAtUnixMs ?? session.lastEventUnixMs,
164
- userId: "local",
163
+ userId: session.userId?.trim() || "local",
165
164
  workspaceId: session.workspaceId
166
165
  };
167
166
  }
@@ -27830,6 +27829,9 @@ import {
27830
27829
  useRef as useRef18,
27831
27830
  useState as useState24
27832
27831
  } from "react";
27832
+ import {
27833
+ normalizeAgentActivityDisplayStatus
27834
+ } from "@tutti-os/agent-activity-core";
27833
27835
 
27834
27836
  // app/renderer/components/icons/FolderFailedFilledIcon.tsx
27835
27837
  import { jsx as jsx80 } from "react/jsx-runtime";
@@ -27880,19 +27882,6 @@ function KeyboardFilledIcon(props) {
27880
27882
  // app/renderer/components/ui/underline-tabs.tsx
27881
27883
  import { UnderlineTabs } from "@tutti-os/ui-system";
27882
27884
 
27883
- // shared/workspaceAgentActivityStatusClassName.ts
27884
- var STATUS_CLASS_BY_STATUS = {
27885
- working: "working",
27886
- waiting: "waiting",
27887
- idle: "idle",
27888
- completed: "done",
27889
- canceled: "done",
27890
- failed: "failed"
27891
- };
27892
- function workspaceAgentActivityStatusClassName(status) {
27893
- return STATUS_CLASS_BY_STATUS[status];
27894
- }
27895
-
27896
27885
  // shared/roomIssueStatusLabel.ts
27897
27886
  function roomIssueStatusLabel(status, t) {
27898
27887
  const translateFn = t ?? translate;
@@ -27919,7 +27908,7 @@ function roomIssueStatusLabel(status, t) {
27919
27908
  }
27920
27909
 
27921
27910
  // agent-gui/agentGuiNode/AgentFileMentionPalette.tsx
27922
- import { Badge, menuItemClassName as menuItemClassName2 } from "@tutti-os/ui-system";
27911
+ import { Badge, StatusDot as StatusDot2, menuItemClassName as menuItemClassName2 } from "@tutti-os/ui-system";
27923
27912
  import { Fragment as Fragment12, jsx as jsx82, jsxs as jsxs53 } from "react/jsx-runtime";
27924
27913
  var paletteStyles2 = {
27925
27914
  palette: "agent-gui-node__mention-palette nodrag grid h-full max-h-[320px] min-h-0 grid-rows-[auto_minmax(0,1fr)_auto] overflow-hidden text-[13px] [-webkit-app-region:no-drag]",
@@ -28650,8 +28639,8 @@ function renderMentionRow(item) {
28650
28639
  }
28651
28640
  if (item.kind === "session") {
28652
28641
  const statusTag = renderSessionMentionStatusTag(item.status);
28653
- return /* @__PURE__ */ jsxs53("span", { className: "flex min-w-0 items-center justify-between gap-3", children: [
28654
- /* @__PURE__ */ jsxs53("span", { className: "flex min-w-0 items-center gap-2", children: [
28642
+ return /* @__PURE__ */ jsxs53("span", { className: "grid w-full min-w-0 grid-cols-[minmax(0,1fr)_auto] items-center gap-3", children: [
28643
+ /* @__PURE__ */ jsxs53("span", { className: "flex min-w-0 items-center gap-2 overflow-hidden", children: [
28655
28644
  /* @__PURE__ */ jsx82(MentionSessionAvatarStack, { item }),
28656
28645
  /* @__PURE__ */ jsx82("span", { className: "min-w-0 truncate text-[13px] font-semibold leading-[16px] text-[var(--text-primary)]", children: /* @__PURE__ */ jsx82(MentionSessionTitle, { item }) })
28657
28646
  ] }),
@@ -28833,19 +28822,33 @@ function MentionSessionTitle({
28833
28822
  }
28834
28823
  function MentionStatusTag({ status }) {
28835
28824
  "use memo";
28836
- const activityStatus = normalizeWorkspaceAgentActivityDisplayStatus(status);
28837
- const statusClass = workspaceAgentActivityStatusClassName(activityStatus);
28838
- return /* @__PURE__ */ jsx82(
28825
+ const activityStatus = normalizeAgentActivityDisplayStatus(status);
28826
+ const statusTone = mentionStatusTone(activityStatus);
28827
+ const statusLabel = workspaceAgentActivityStatusLabel(activityStatus);
28828
+ return /* @__PURE__ */ jsxs53(
28839
28829
  Badge,
28840
28830
  {
28841
28831
  variant: "secondary",
28842
28832
  className: cn(
28843
- "shrink-0 text-[13px]",
28844
- mentionStatusBadgeClassName(statusClass)
28833
+ "inline-flex h-5 shrink-0 items-center gap-1.5 rounded-[4px] px-2 text-[11px] font-semibold leading-none",
28834
+ mentionStatusBadgeClassName(activityStatus)
28845
28835
  ),
28846
28836
  "data-agent-mention-status-tag": "true",
28847
28837
  "data-status": activityStatus,
28848
- children: workspaceAgentActivityStatusLabel(activityStatus)
28838
+ "data-tone": statusTone,
28839
+ title: statusLabel,
28840
+ children: [
28841
+ /* @__PURE__ */ jsx82(
28842
+ StatusDot2,
28843
+ {
28844
+ tone: statusTone,
28845
+ pulse: activityStatus === "working" || activityStatus === "waiting",
28846
+ size: "xs",
28847
+ title: statusLabel
28848
+ }
28849
+ ),
28850
+ /* @__PURE__ */ jsx82("span", { children: statusLabel })
28851
+ ]
28849
28852
  }
28850
28853
  );
28851
28854
  }
@@ -28853,10 +28856,7 @@ function renderSessionMentionStatusTag(status) {
28853
28856
  if (!status) {
28854
28857
  return null;
28855
28858
  }
28856
- const activityStatus = normalizeWorkspaceAgentActivityDisplayStatus(status);
28857
- if (activityStatus !== "working" && activityStatus !== "waiting" && activityStatus !== "canceled" && activityStatus !== "failed") {
28858
- return null;
28859
- }
28859
+ const activityStatus = normalizeAgentActivityDisplayStatus(status);
28860
28860
  return /* @__PURE__ */ jsx82(MentionStatusTag, { status: activityStatus });
28861
28861
  }
28862
28862
  function IssueMentionStatusTag({
@@ -28878,11 +28878,32 @@ function IssueMentionStatusTag({
28878
28878
  }
28879
28879
  );
28880
28880
  }
28881
- function mentionStatusBadgeClassName(statusClass) {
28882
- if (statusClass === "working" || statusClass === "done") {
28883
- return "bg-[color:color-mix(in_srgb,var(--state-success)_12%,transparent)] text-[var(--state-success)]";
28881
+ function mentionStatusTone(status) {
28882
+ if (status === "working") {
28883
+ return "blue";
28884
+ }
28885
+ if (status === "waiting" || status === "canceled") {
28886
+ return "amber";
28887
+ }
28888
+ if (status === "completed" || status === "idle") {
28889
+ return "green";
28890
+ }
28891
+ if (status === "failed") {
28892
+ return "red";
28893
+ }
28894
+ return "neutral";
28895
+ }
28896
+ function mentionStatusBadgeClassName(status) {
28897
+ if (status === "working") {
28898
+ return "bg-sky-500/10 text-sky-700";
28899
+ }
28900
+ if (status === "waiting" || status === "canceled") {
28901
+ return "bg-[color:color-mix(in_srgb,var(--color-amber-500)_12%,transparent)] text-[var(--color-amber-500)]";
28902
+ }
28903
+ if (status === "completed" || status === "idle") {
28904
+ return "bg-[var(--tsh-ui-pill-success-bg)] text-[var(--tsh-ui-pill-success-fg)]";
28884
28905
  }
28885
- if (statusClass === "failed") {
28906
+ if (status === "failed") {
28886
28907
  return "bg-[var(--on-danger)] text-[var(--state-danger)]";
28887
28908
  }
28888
28909
  return "bg-[var(--transparency-block)] text-[var(--text-secondary)]";
@@ -31012,8 +31033,11 @@ function AttentionGlyph() {
31012
31033
  import { Fragment as Fragment16, jsx as jsx86, jsxs as jsxs56 } from "react/jsx-runtime";
31013
31034
  var AGENT_GUI_STICK_TO_BOTTOM_THRESHOLD_PX = 24;
31014
31035
  var AGENT_GUI_TIMELINE_SCROLL_AREA_CONTENT_STYLE = {
31036
+ width: "100%",
31015
31037
  minWidth: "100%",
31016
31038
  display: "grid",
31039
+ gridTemplateColumns: "minmax(0, min(100%, var(--agent-gui-detail-flow-max-width)))",
31040
+ justifyContent: "center",
31017
31041
  gap: "24px"
31018
31042
  };
31019
31043
  var EMPTY_WORKSPACE_APP_ICONS4 = [];