@tutti-os/agent-gui 0.0.6 → 0.0.7

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.
@@ -4,6 +4,7 @@ import { AgentGuiWorkbenchState, AgentGuiWorkbenchProvider } from './types.js';
4
4
 
5
5
  declare const agentGuiWorkbenchDefaultNodeFrame: WorkbenchFrame;
6
6
  declare const agentGuiWorkbenchDefaultUsableHeightRatio = 0.7;
7
+ declare const agentGuiWorkbenchCompactVisibleAreaRatio = 0.9;
7
8
  declare const AGENT_GUI_WORKBENCH_CONVERSATION_RAIL_TOGGLE_EVENT = "nextop:agent-gui-workbench-conversation-rail-toggle";
8
9
  interface AgentGuiWorkbenchConversationRailToggleDetail {
9
10
  conversationRailCollapsed: boolean;
@@ -29,6 +30,7 @@ interface CreateAgentGuiWorkbenchContributionInput {
29
30
  frame?: WorkbenchFrame;
30
31
  id?: string;
31
32
  renderBody(context: WorkbenchHostNodeBodyContext<AgentGuiWorkbenchState | null, unknown>, helpers: AgentGuiWorkbenchRenderBodyHelpers): ReactNode;
33
+ renderPreview?(context: WorkbenchHostNodeBodyContext<AgentGuiWorkbenchState | null, unknown>, helpers: AgentGuiWorkbenchRenderBodyHelpers): ReactNode;
32
34
  resolveDockEntryVisibility?: (provider: AgentGuiWorkbenchProvider) => WorkbenchHostDockEntry["visibility"];
33
35
  workspaceId: string;
34
36
  }
@@ -39,4 +41,4 @@ declare function resolveAgentGuiWorkbenchDefaultLaunchFrame(input: {
39
41
  }): WorkbenchFrame;
40
42
  declare function resolveAgentGuiWorkbenchContributionCopy(copy?: AgentGuiWorkbenchContributionCopyOverrides): AgentGuiWorkbenchContributionCopy;
41
43
 
42
- export { AGENT_GUI_WORKBENCH_CONVERSATION_RAIL_TOGGLE_EVENT, type AgentGuiWorkbenchContributionCopy, type AgentGuiWorkbenchContributionCopyOverrides, type AgentGuiWorkbenchConversationRailToggleDetail, type AgentGuiWorkbenchRenderBodyHelpers, type CreateAgentGuiWorkbenchContributionInput, agentGuiWorkbenchDefaultCopy, agentGuiWorkbenchDefaultNodeFrame, agentGuiWorkbenchDefaultUsableHeightRatio, createAgentGuiWorkbenchContribution, resolveAgentGuiWorkbenchContributionCopy, resolveAgentGuiWorkbenchDefaultLaunchFrame };
44
+ export { AGENT_GUI_WORKBENCH_CONVERSATION_RAIL_TOGGLE_EVENT, type AgentGuiWorkbenchContributionCopy, type AgentGuiWorkbenchContributionCopyOverrides, type AgentGuiWorkbenchConversationRailToggleDetail, type AgentGuiWorkbenchRenderBodyHelpers, type CreateAgentGuiWorkbenchContributionInput, agentGuiWorkbenchCompactVisibleAreaRatio, agentGuiWorkbenchDefaultCopy, agentGuiWorkbenchDefaultNodeFrame, agentGuiWorkbenchDefaultUsableHeightRatio, createAgentGuiWorkbenchContribution, resolveAgentGuiWorkbenchContributionCopy, resolveAgentGuiWorkbenchDefaultLaunchFrame };
@@ -1,12 +1,13 @@
1
1
  import {
2
2
  AGENT_GUI_WORKBENCH_CONVERSATION_RAIL_TOGGLE_EVENT,
3
+ agentGuiWorkbenchCompactVisibleAreaRatio,
3
4
  agentGuiWorkbenchDefaultCopy,
4
5
  agentGuiWorkbenchDefaultNodeFrame,
5
6
  agentGuiWorkbenchDefaultUsableHeightRatio,
6
7
  createAgentGuiWorkbenchContribution,
7
8
  resolveAgentGuiWorkbenchContributionCopy,
8
9
  resolveAgentGuiWorkbenchDefaultLaunchFrame
9
- } from "../chunk-C63Z2JWT.js";
10
+ } from "../chunk-4RB33ETE.js";
10
11
  import "../chunk-3735XYFZ.js";
11
12
  import "../chunk-GEXHKJK5.js";
12
13
  import "../chunk-22L4VWUR.js";
@@ -15,6 +16,7 @@ import "../chunk-GYG57VTA.js";
15
16
  import "../chunk-ZU3FKYMG.js";
16
17
  export {
17
18
  AGENT_GUI_WORKBENCH_CONVERSATION_RAIL_TOGGLE_EVENT,
19
+ agentGuiWorkbenchCompactVisibleAreaRatio,
18
20
  agentGuiWorkbenchDefaultCopy,
19
21
  agentGuiWorkbenchDefaultNodeFrame,
20
22
  agentGuiWorkbenchDefaultUsableHeightRatio,
@@ -5,7 +5,7 @@ import {
5
5
  agentGuiWorkbenchDefaultNodeFrame,
6
6
  createAgentGuiWorkbenchContribution,
7
7
  resolveAgentGuiWorkbenchContributionCopy
8
- } from "../chunk-C63Z2JWT.js";
8
+ } from "../chunk-4RB33ETE.js";
9
9
  import {
10
10
  agentGuiWorkbenchDockEntryId,
11
11
  agentGuiWorkbenchInstanceId,
@@ -4,12 +4,12 @@ import {
4
4
  resolveWorkspaceAgentActivityStatus,
5
5
  resolveWorkspaceAgentActivityTitle,
6
6
  reuseWorkspaceAgentActivityListViewModelIfUnchanged
7
- } from "./chunk-KGFWU4FL.js";
7
+ } from "./chunk-DHOAJJ3K.js";
8
8
  import {
9
9
  workspaceAgentProviderLabel
10
10
  } from "./chunk-3D5VTIKP.js";
11
11
  import "./chunk-GCBDIQDX.js";
12
- import "./chunk-JWVLIF5R.js";
12
+ import "./chunk-ZAVQMGAX.js";
13
13
  export {
14
14
  buildWorkspaceAgentActivityListViewModel,
15
15
  collectWorkspaceAgentGeneratedFiles,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tutti-os/agent-gui",
3
- "version": "0.0.6",
3
+ "version": "0.0.7",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "types": "./dist/index.d.ts",
@@ -70,15 +70,15 @@
70
70
  },
71
71
  "dependencies": {
72
72
  "@monaco-editor/react": "^4.7.0",
73
- "@tutti-os/agent-activity-core": "0.0.6",
74
- "@tutti-os/ui-i18n-runtime": "0.0.6",
75
- "@tutti-os/ui-react-hooks": "0.0.6",
76
- "@tutti-os/ui-system": "0.0.6",
77
- "@tutti-os/workbench-surface": "0.0.6",
78
- "@tutti-os/workspace-file-manager": "0.0.6",
79
- "@tutti-os/workspace-file-reference": "0.0.6",
80
- "@tutti-os/workspace-issue-manager": "0.0.6",
81
- "@tutti-os/workspace-user-project": "0.0.6",
73
+ "@tutti-os/agent-activity-core": "0.0.7",
74
+ "@tutti-os/ui-i18n-runtime": "0.0.7",
75
+ "@tutti-os/ui-react-hooks": "0.0.7",
76
+ "@tutti-os/ui-system": "0.0.7",
77
+ "@tutti-os/workbench-surface": "0.0.7",
78
+ "@tutti-os/workspace-file-manager": "0.0.7",
79
+ "@tutti-os/workspace-file-reference": "0.0.7",
80
+ "@tutti-os/workspace-issue-manager": "0.0.7",
81
+ "@tutti-os/workspace-user-project": "0.0.7",
82
82
  "@tanstack/react-virtual": "^3.13.12",
83
83
  "@tiptap/core": "^3.11.1",
84
84
  "@tiptap/pm": "^3.23.6",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../workbench/contribution.ts","../workbench/header.ts"],"sourcesContent":["import { createElement, type ReactNode } from \"react\";\nimport {\n getWorkbenchLayoutFrame,\n type WorkbenchContribution,\n type WorkbenchFrame,\n type WorkbenchHostDockEntry,\n type WorkbenchHostLaunchRequest,\n type WorkbenchHostNodeBodyContext\n} from \"@tutti-os/workbench-surface\";\nimport {\n resolveAgentGUIExpandedWindowFrame,\n shouldAutoCollapseAgentGUIConversationRail\n} from \"../agent-gui/agentGuiNode/model/agentGuiRailLayout.ts\";\nimport { agentGuiDockIconUrls } from \"../dockIcons.ts\";\nimport { AgentGuiWorkbenchHeader } from \"./header.ts\";\nimport {\n agentGuiWorkbenchDockEntryId,\n agentGuiWorkbenchProviderFromIdentifier,\n agentGuiWorkbenchTypeId,\n createAgentGuiWorkbenchLaunchDescriptor\n} from \"./launch.ts\";\nimport {\n agentGuiWorkbenchProviderFromInstanceId,\n createAgentGuiWorkbenchNodeStateSource,\n normalizeAgentGuiWorkbenchNodeState,\n normalizeAgentGuiWorkbenchState\n} from \"./state.ts\";\nimport {\n agentGuiWorkbenchProviderLabels,\n agentGuiWorkbenchProviders,\n isAgentGuiWorkbenchDefaultDockProvider,\n resolveAgentGuiWorkbenchProviderLabel\n} from \"./providerCatalog.ts\";\nimport type {\n AgentGuiWorkbenchProvider,\n AgentGuiWorkbenchState\n} from \"./types.ts\";\n\nexport const agentGuiWorkbenchDefaultNodeFrame: WorkbenchFrame = {\n height: 560,\n width: 1040,\n x: 140,\n y: 48\n};\n\nexport const agentGuiWorkbenchDefaultUsableHeightRatio = 0.7;\n\nexport const AGENT_GUI_WORKBENCH_CONVERSATION_RAIL_TOGGLE_EVENT =\n \"nextop:agent-gui-workbench-conversation-rail-toggle\";\n\nexport interface AgentGuiWorkbenchConversationRailToggleDetail {\n conversationRailCollapsed: boolean;\n instanceId: string;\n}\n\nexport interface AgentGuiWorkbenchContributionCopy {\n collapseConversationRail: string;\n expandConversationRail: string;\n fallbackAgentLabel: string;\n nodeTitle: string;\n}\n\nexport type AgentGuiWorkbenchContributionCopyOverrides =\n Partial<AgentGuiWorkbenchContributionCopy>;\n\nexport const agentGuiWorkbenchDefaultCopy: AgentGuiWorkbenchContributionCopy = {\n collapseConversationRail: \"Collapse conversation rail\",\n expandConversationRail: \"Expand conversation rail\",\n fallbackAgentLabel: \"Agent\",\n nodeTitle: \"Agent\"\n};\n\nexport interface AgentGuiWorkbenchRenderBodyHelpers {\n nodeTypeId: string;\n onStateChange(state: AgentGuiWorkbenchState): void;\n provider: AgentGuiWorkbenchProvider;\n}\n\nexport interface CreateAgentGuiWorkbenchContributionInput {\n copy?: AgentGuiWorkbenchContributionCopyOverrides;\n dockIconUrls?: Partial<Record<AgentGuiWorkbenchProvider, string>>;\n dockSectionId?: string;\n frame?: WorkbenchFrame;\n id?: string;\n renderBody(\n context: WorkbenchHostNodeBodyContext<\n AgentGuiWorkbenchState | null,\n unknown\n >,\n helpers: AgentGuiWorkbenchRenderBodyHelpers\n ): ReactNode;\n resolveDockEntryVisibility?: (\n provider: AgentGuiWorkbenchProvider\n ) => WorkbenchHostDockEntry[\"visibility\"];\n workspaceId: string;\n}\n\nexport function createAgentGuiWorkbenchContribution(\n input: CreateAgentGuiWorkbenchContributionInput\n): WorkbenchContribution {\n const nodeStateSource = createAgentGuiWorkbenchNodeStateSource({\n workspaceId: input.workspaceId\n });\n const frame = input.frame ?? agentGuiWorkbenchDefaultNodeFrame;\n const copy = resolveAgentGuiWorkbenchContributionCopy(input.copy);\n\n return {\n dockEntries: agentGuiWorkbenchProviders.map((provider, index) =>\n createAgentGuiWorkbenchDockEntry({\n label: agentGuiWorkbenchProviderLabels[provider],\n iconUrl:\n input.dockIconUrls?.[provider] ?? agentGuiDockIconUrls[provider],\n order: index,\n provider,\n sectionId: input.dockSectionId ?? \"agents\",\n visibility:\n input.resolveDockEntryVisibility?.(provider) ??\n (isAgentGuiWorkbenchDefaultDockProvider(provider)\n ? \"always\"\n : \"never\")\n })\n ),\n externalStateSource: nodeStateSource.externalStateSource,\n id: input.id ?? \"workspace-agent-gui\",\n nodes: [\n {\n frame,\n instance: { mode: \"multi\" },\n renderBody: (context) =>\n input.renderBody(\n context as WorkbenchHostNodeBodyContext<\n AgentGuiWorkbenchState | null,\n unknown\n >,\n {\n nodeTypeId: agentGuiWorkbenchTypeId,\n onStateChange: (state) => {\n nodeStateSource.writeNodeState({\n instanceId: context.instanceId,\n state,\n typeId: agentGuiWorkbenchTypeId\n });\n },\n provider: agentGuiWorkbenchProviderFromInstanceId(\n context.instanceId\n )\n }\n ),\n renderHeader: ({\n defaultActions,\n dragHandleProps,\n externalNodeState,\n instanceId,\n isFocused,\n node,\n surfaceSize,\n windowActions\n }) => {\n const provider = agentGuiWorkbenchProviderFromInstanceId(instanceId);\n const title = resolveAgentGuiWorkbenchProviderLabel(provider);\n const workbenchState = normalizeAgentGuiWorkbenchState(\n externalNodeState ?? node.data.runtimeNodeState\n );\n const nodeState = normalizeAgentGuiWorkbenchNodeState(\n workbenchState,\n provider\n );\n const isConversationRailAutoCollapsed =\n shouldAutoCollapseAgentGUIConversationRail(node.frame.width);\n const isConversationRailCollapsed =\n nodeState.conversationRailCollapsed === true ||\n isConversationRailAutoCollapsed;\n const persistConversationRailCollapsed = (collapsed: boolean) => {\n nodeStateSource.writeNodeState({\n instanceId,\n state: {\n ...workbenchState,\n conversationRailCollapsed: collapsed\n },\n typeId: agentGuiWorkbenchTypeId\n });\n };\n const announceConversationRailCollapsed = (collapsed: boolean) => {\n window.dispatchEvent(\n new CustomEvent<AgentGuiWorkbenchConversationRailToggleDetail>(\n AGENT_GUI_WORKBENCH_CONVERSATION_RAIL_TOGGLE_EVENT,\n {\n detail: {\n conversationRailCollapsed: collapsed,\n instanceId\n }\n }\n )\n );\n };\n\n return createElement(AgentGuiWorkbenchHeader, {\n copy,\n defaultActions,\n isConversationRailAutoCollapsed,\n isConversationRailCollapsed,\n title,\n ...dragHandleProps,\n onPointerDown: (event) => {\n dragHandleProps.onPointerDown?.(event);\n if (!isFocused) {\n windowActions.focus();\n }\n },\n onToggleConversationRail: (nextCollapsed) => {\n announceConversationRailCollapsed(nextCollapsed);\n if (\n isConversationRailCollapsed &&\n nextCollapsed === false &&\n node.displayMode !== \"fullscreen\"\n ) {\n const expandedFrame = resolveAgentGUIExpandedWindowFrame({\n conversationRailWidthPx: nodeState.conversationRailWidthPx,\n desktopSize: surfaceSize,\n height: node.frame.height,\n position: {\n x: node.frame.x,\n y: node.frame.y\n },\n width: node.frame.width\n });\n\n windowActions.resize({\n ...node.frame,\n height: expandedFrame.size.height,\n width: expandedFrame.size.width,\n x: expandedFrame.position.x,\n y: expandedFrame.position.y\n });\n }\n\n persistConversationRailCollapsed(nextCollapsed);\n }\n });\n },\n title: copy.nodeTitle,\n typeId: agentGuiWorkbenchTypeId,\n window: {\n closable: true,\n defaultOpen: false,\n minimizedDock: {\n kind: \"snapshot\"\n },\n minimizable: true\n }\n }\n ],\n onLaunchRequest: (request) => {\n if (request.typeId !== agentGuiWorkbenchTypeId) {\n return null;\n }\n\n const {\n activation,\n dockEntryId,\n instanceId,\n provider,\n reuseDockEntryNode,\n targetAgentSessionId\n } = createAgentGuiWorkbenchLaunchDescriptor(request);\n const title = resolveAgentGuiWorkbenchProviderLabel(provider);\n if (targetAgentSessionId) {\n const previousState = nodeStateSource.readNodeState({\n instanceId,\n typeId: agentGuiWorkbenchTypeId\n });\n nodeStateSource.writeNodeState({\n instanceId,\n state: {\n ...(previousState ?? normalizeAgentGuiWorkbenchState(null)),\n ...(targetAgentSessionId\n ? { lastActiveAgentSessionId: targetAgentSessionId }\n : {})\n },\n typeId: agentGuiWorkbenchTypeId\n });\n }\n return {\n activation,\n defaultFrame: resolveAgentGuiWorkbenchDefaultLaunchFrame({\n frame,\n request\n }),\n dockEntryId,\n framePolicy: \"cascade-same-type-centered\",\n instanceId,\n reuseDockEntryNode,\n title,\n typeId: agentGuiWorkbenchTypeId\n };\n }\n };\n}\n\nexport function resolveAgentGuiWorkbenchDefaultLaunchFrame(input: {\n frame: WorkbenchFrame;\n request: Pick<\n WorkbenchHostLaunchRequest,\n \"layoutConstraints\" | \"surfaceSize\"\n >;\n}): WorkbenchFrame {\n const layoutFrame = getWorkbenchLayoutFrame(\n input.request.surfaceSize,\n input.request.layoutConstraints\n );\n\n return {\n ...input.frame,\n height: Math.round(\n layoutFrame.height * agentGuiWorkbenchDefaultUsableHeightRatio\n )\n };\n}\n\nexport function resolveAgentGuiWorkbenchContributionCopy(\n copy?: AgentGuiWorkbenchContributionCopyOverrides\n): AgentGuiWorkbenchContributionCopy {\n return {\n ...agentGuiWorkbenchDefaultCopy,\n ...copy\n };\n}\n\nfunction createAgentGuiWorkbenchDockEntry(input: {\n iconUrl?: string;\n label: string;\n order: number;\n provider: AgentGuiWorkbenchProvider;\n sectionId: string;\n visibility: WorkbenchHostDockEntry[\"visibility\"];\n}): WorkbenchHostDockEntry {\n return {\n icon: createElement(\"img\", {\n alt: \"\",\n draggable: false,\n src: input.iconUrl\n }),\n iconSize: \"large\",\n id: agentGuiWorkbenchDockEntryId(input.provider),\n label: input.label,\n launchBehavior: \"enabled\",\n launchPayload: { provider: input.provider },\n matchNode: (node) =>\n node.data.typeId === agentGuiWorkbenchTypeId &&\n agentGuiWorkbenchProviderFromIdentifier(node.data.instanceId) ===\n input.provider,\n order: input.order,\n resolvePopupItem: ({ externalNodeState }) => ({\n title: resolveAgentGuiWorkbenchDockPopupTitle(externalNodeState)\n }),\n sectionId: input.sectionId,\n typeId: agentGuiWorkbenchTypeId,\n visibility: input.visibility\n };\n}\n\nfunction resolveAgentGuiWorkbenchDockPopupTitle(state: unknown): string | null {\n const title = (state as Partial<AgentGuiWorkbenchState> | null)\n ?.lastActiveConversationTitle;\n return typeof title === \"string\" && title.trim() ? title.trim() : null;\n}\n","import { createElement, type HTMLAttributes, type ReactNode } from \"react\";\nimport { Button, PanelIcon, cn } from \"@tutti-os/ui-system\";\n\nexport interface AgentGuiWorkbenchHeaderCopy {\n collapseConversationRail: string;\n expandConversationRail: string;\n fallbackAgentLabel: string;\n}\n\nexport interface AgentGuiWorkbenchHeaderProps extends HTMLAttributes<HTMLElement> {\n copy: AgentGuiWorkbenchHeaderCopy;\n defaultActions?: ReactNode;\n isConversationRailAutoCollapsed: boolean;\n isConversationRailCollapsed: boolean;\n onToggleConversationRail: (nextCollapsed: boolean) => void;\n title?: string;\n}\n\nexport function AgentGuiWorkbenchHeader({\n className,\n copy,\n defaultActions,\n isConversationRailAutoCollapsed,\n isConversationRailCollapsed,\n onToggleConversationRail,\n title,\n ...headerProps\n}: AgentGuiWorkbenchHeaderProps): ReactNode {\n const toggleLabel = isConversationRailCollapsed\n ? copy.expandConversationRail\n : copy.collapseConversationRail;\n\n return createElement(\n \"header\",\n {\n ...headerProps,\n className: cn(\n \"flex h-full min-h-0 items-center justify-between gap-3 bg-[var(--background-panel)] px-2 pl-3\",\n className\n )\n },\n createElement(\n \"div\",\n { className: \"flex min-w-0 items-center gap-2\" },\n createElement(\n \"span\",\n {\n className:\n \"min-w-0 truncate text-[13px] font-semibold leading-5 text-[var(--text-primary)]\"\n },\n title?.trim() || copy.fallbackAgentLabel\n ),\n createElement(\n Button as never,\n {\n \"aria-label\": toggleLabel,\n className: \"cursor-pointer rounded-md\",\n \"data-agent-gui-conversation-rail-auto-collapsed\":\n isConversationRailAutoCollapsed ? \"true\" : undefined,\n \"data-agent-gui-conversation-rail-collapsed\":\n isConversationRailCollapsed ? \"true\" : undefined,\n \"data-testid\": \"agent-gui-toggle-conversation-rail\",\n size: \"icon-sm\",\n title: toggleLabel,\n type: \"button\",\n variant: \"ghost\",\n onClick: (event) => {\n event.stopPropagation();\n onToggleConversationRail(!isConversationRailCollapsed);\n },\n onDoubleClick: (event) => event.stopPropagation(),\n onPointerDown: (event) => event.stopPropagation()\n },\n createElement(PanelIcon, { className: \"size-[18px]\" })\n )\n ),\n createElement(\n \"div\",\n {\n className: \"flex flex-none items-center gap-1\",\n onDoubleClick: (event) => event.stopPropagation(),\n onPointerDown: (event) => event.stopPropagation()\n },\n defaultActions\n )\n );\n}\n"],"mappings":"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","names":["createElement","createElement"]}