@qilin-agent/client-ui-workspace 3.1.4 → 3.1.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.
- package/README.i18n.yaml +5 -2
- package/README.md +10 -2
- package/README.zh.md +10 -2
- package/lib/client.js +392 -101
- package/lib/types/client/contract/slots.d.ts +26 -0
- package/lib/types/client/contract/toast.d.ts +55 -0
- package/lib/types/client/index.d.ts +1 -1
- package/lib/types/client/locales.d.ts +12 -0
- package/lib/types/client/navigation.d.ts +12 -3
- package/lib/types/client/rows/Rows.d.ts +7 -3
- package/lib/types/client/rows/WorkspaceBrowser.d.ts +1 -1
- package/lib/types/client/toast/RowActionToast.d.ts +9 -0
- package/lib/types/client/toast/Toast.d.ts +15 -0
- package/lib/types/client/toast/register.d.ts +8 -0
- package/package.json +23 -23
package/README.i18n.yaml
CHANGED
|
@@ -20,6 +20,9 @@
|
|
|
20
20
|
/qilin-agent-client-ui-workspace/use-this-package/reordering-and-view-options:
|
|
21
21
|
en: 6cea302320f00839
|
|
22
22
|
zh: d695994ec569a43e
|
|
23
|
+
/qilin-agent-client-ui-workspace/use-this-package/session-folding:
|
|
24
|
+
en: 3312e3a21049b4a5
|
|
25
|
+
zh: 296ef02efd66e231
|
|
23
26
|
/qilin-agent-client-ui-workspace/use-this-package/workspace-hierarchy:
|
|
24
27
|
en: 5e049b90c55eddb3
|
|
25
28
|
zh: e06dc8d0d25c013f
|
|
@@ -27,8 +30,8 @@
|
|
|
27
30
|
en: faf570bcad825439
|
|
28
31
|
zh: a65300b0b40a8550
|
|
29
32
|
/qilin-agent-client-ui-workspace/use-this-package/managing-sessions:
|
|
30
|
-
en:
|
|
31
|
-
zh:
|
|
33
|
+
en: 36a910e6ad337e1c
|
|
34
|
+
zh: 9607173765bac0c7
|
|
32
35
|
/qilin-agent-client-ui-workspace/use-this-package/pending-interactions:
|
|
33
36
|
en: efcede0546e167c5
|
|
34
37
|
zh: 74afe770abb49016
|
package/README.md
CHANGED
|
@@ -31,6 +31,10 @@ Use the sidebar to browse Workspaces and their Sessions, reorder them, and start
|
|
|
31
31
|
|
|
32
32
|
**Last updated** orders ordinary Sessions by their latest user prompt or steer time, newest first, in both grouped and flat views. **Manual** freezes the current displayed order and holds positions when activity changes; newly discovered ordinary Sessions append to the end, newest first when several arrive together. Returning to Last updated discards every manual position, and entering Manual again freezes the then-current recency order. The browser defaults to Last updated and remembers the selected mode across reloads. Dragging an ordinary Session applies the move locally and selects Manual. The selected blank **New Session** is always pinned first and cannot be dragged; after its first prompt it becomes an ordinary draggable row, retaining its first position in Manual or following its current timestamp in Last updated. In a collapsed group, drag boundaries follow rendered rows and place the source before intervening hidden rows, so a drag cannot hide its source. Session display orders for real Workspaces, Ungrouped, and the flat list are browser-local; Workspace group drag order remains Host-durable.
|
|
33
33
|
|
|
34
|
+
### Session folding
|
|
35
|
+
|
|
36
|
+
Each Workspace shows a contiguous prefix of its Sessions up to a per-group watermark. Five non-blank rows are the base, and the selected blank row always shows. The watermark rises to cover every running, waiting, unread-completion, or current Session within the first 50 rows, and to a search-reveal target at any row; it never falls on its own. **Show more** raises it by one base step, or to every row when the remainder fits, and **Show less** or folding the group — including any ancestor — resets it. A group hidden under a folded ancestor raises no watermark while it is hidden.
|
|
37
|
+
|
|
34
38
|
### Workspace hierarchy
|
|
35
39
|
|
|
36
40
|
Choose **Add workspace** and select a directory to register it and open a Session. **View options → Group by** defaults to **WorkSpace**, which lists Workspaces as sibling sections. Select **Workspace Tree** to nest each Workspace under its nearest registered ancestor, including Workspaces added later. Each Workspace keeps its own Sessions and row actions. Child Workspaces appear before the parent's own Sessions. Ancestors start expanded unless a saved collapsed state exists. A saved collapse also hides the current Session; ancestor folder icons stay highlighted when a descendant Workspace contains it. Row fills and hit targets span the same width at every level; only the contents indent. Workspace dragging reorders siblings; dropping on a descendant targets the nearest compatible ancestor, so an expanded parent can be moved past without collapsing it. Search-result navigation expands every ancestor. Grouping and expansion are saved in the current browser; switching modes preserves each Workspace's expansion preference, and the single-list view stays flat.
|
|
@@ -43,11 +47,15 @@ Collapsed search is one header action beside the view and add actions: activatin
|
|
|
43
47
|
|
|
44
48
|
### Managing sessions
|
|
45
49
|
|
|
46
|
-
The Session row's Rename action opens a dialog prefilled with the row's display title; confirming an unchanged title is deliberately allowed — it pins the current automatic title against regeneration. Rename uses a temporary `workspaceOperation` reference, while fork-title assignment uses a temporary `controllerOperation` reference inside Session Controller; both await the reference's initial history opening. Archive commits without a confirmation dialog and the row disappears from every grouping surface when the archive-set echo lands. Fork forks at the source's last completed turn, increments the inherited persisted title on the client, and then opens the child. Workspace Delete opens a confirmation that states the retention boundary; success removes the group while its Sessions remain under Ungrouped.
|
|
50
|
+
The Session row's Rename action opens a dialog prefilled with the row's display title; confirming an unchanged title is deliberately allowed — it pins the current automatic title against regeneration. Rename uses a temporary `workspaceOperation` reference, while fork-title assignment uses a temporary `controllerOperation` reference inside Session Controller; both await the reference's initial history opening. Archive commits without a confirmation dialog, from the row menu or the hover strip, and the row disappears from every grouping surface when the archive-set echo lands. Fork forks at the source's last completed turn, increments the inherited persisted title on the client, and then opens the child. Workspace Delete opens a confirmation that states the retention boundary; success removes the group while its Sessions remain under Ungrouped.
|
|
51
|
+
|
|
52
|
+
The Session row's "..." menu ends with **Copy Session ID**: it closes the menu and writes the complete id to the clipboard without retaining the Session, loading its history, or calling the Host. A successful copy reports through the notice slot; a failed copy can be retried from the menu.
|
|
53
|
+
|
|
54
|
+
Notices are keyed: the browser raises one `{ kind, seq }` notice, a `shell.overlay` entry dispatches it to the keyed `workspace.toast` slot, and each shipped kind registers its own localized display data. One package-local Factory renders every notice through the shared Toast primitive, so a new notice kind needs only its display registration.
|
|
47
55
|
|
|
48
56
|
Pin is a registry-global fact, not a browser-local order: the row menu and its hover button toggle it, a pinned row leads its group and the flat list and draws a marker in the trailing cell, and the Host call fronts the Session in every saved manual order that owns it. Unpin leaves those saved positions alone. An archived Session cannot be pinned, and archiving drops its pin in the same durable write.
|
|
49
57
|
|
|
50
|
-
A Session title wider than its row is clipped with an ellipsis at rest. Hovering the row
|
|
58
|
+
A Session title wider than its row is clipped with an ellipsis at rest. Hovering the row marquees the title at a constant speed to its far edge — the incremented title of a fork, for example — and reveals it without the ellipsis, fading both clipping edges over 12 px while it travels; leaving the row returns the title to its start in one step. Overflow of 8 px or less stays put, and a reduced-motion preference jumps straight to the far edge instead of crawling.
|
|
51
59
|
|
|
52
60
|
### Pending interactions
|
|
53
61
|
|
package/README.zh.md
CHANGED
|
@@ -31,6 +31,10 @@ kind: "package-reference"
|
|
|
31
31
|
|
|
32
32
|
**最近更新**在分组和单列表视图中都按普通 Session 的最近一次用户提示词或 steering(中途引导)时间降序排列。**手动排序**会冻结当前显示顺序,并在活动变化时保持已有位置;新发现的普通 Session 追加到末尾,多条同时到达时按最近更新时间降序排列。返回最近更新会丢弃所有手动位置;再次进入手动排序时,则冻结当时的最近更新顺序。浏览器默认采用最近更新,并在重新加载后记住所选模式。拖拽普通 Session 会在浏览器本地应用移动并选中手动排序。当前选中的空白**新会话**始终固定在首位且无法拖拽;首条提示词落地后,它成为可拖拽的普通行,在手动排序中保留首位,在最近更新中按当前时间戳排列。折叠分组的拖拽边界按渲染行确定,并把来源行放在中间隐藏行之前,因此拖拽不会隐藏来源行。真实 Workspace、Ungrouped 与单列表的 Session 显示顺序都保留在浏览器本地;Workspace 分组的拖拽顺序仍由 Host 持久化。
|
|
33
33
|
|
|
34
|
+
### 会话折叠
|
|
35
|
+
|
|
36
|
+
每个 Workspace 按分组水印显示其 Session 的连续前缀。基准为 5 个非空行,且当前选中的空白行始终显示。水印会升到足以覆盖前 50 行内每个运行中、等待中、有未读完成或当前选中的 Session,以及任意行上的搜索定位目标;水印不会自行回落。**展开其余**每次抬升一个基准步长,剩余行数不足一个步长时直接全部展开;**收起**或折叠该分组(含任一祖先)会重置水印。折叠祖先下的分组在隐藏期间不抬升水印。
|
|
37
|
+
|
|
34
38
|
### 工作区层级
|
|
35
39
|
|
|
36
40
|
选择**添加工作区**并选取目录,即可注册工作区并打开 Session。**视图选项 → 分组方式**默认为**按工作区**,将工作区作为同级分组显示。选择**按工作区树**后,每个 Workspace 会位于最近的已注册祖先之下,之后添加的 Workspace 也会自动归入。每个 Workspace 保留自己的 Session 和行操作,子 Workspace 显示在父级自己的 Session 之前。祖先默认展开,已有的折叠偏好除外。保存的折叠状态也会隐藏当前 Session;如果后代 Workspace 包含当前 Session,祖先文件夹图标仍保持高亮。各层级的高亮和点击区域保持整行同宽,仅内容缩进。拖拽 Workspace 仅重排同级项目;落在后代行上时,由最近的兼容祖先接收,因此无需先折叠父级就能将其他工作区拖到其后。选择搜索结果会展开全部祖先。分组方式和展开状态保存在当前浏览器中;切换模式会保留各 Workspace 的展开偏好,单列表视图保持平铺。
|
|
@@ -43,11 +47,15 @@ kind: "package-reference"
|
|
|
43
47
|
|
|
44
48
|
### 管理会话
|
|
45
49
|
|
|
46
|
-
Session 行内的 Rename 操作打开一个以该行显示标题预填的对话框;确认未修改的标题是有意允许的——这正是把当前自动标题钉住、不再被重新生成覆盖的手势。Rename 使用临时 `workspaceOperation` reference,fork 标题设置则由 Session Controller 使用临时 `controllerOperation` reference;两者都等待该 reference 的首次历史打开。Archive
|
|
50
|
+
Session 行内的 Rename 操作打开一个以该行显示标题预填的对话框;确认未修改的标题是有意允许的——这正是把当前自动标题钉住、不再被重新生成覆盖的手势。Rename 使用临时 `workspaceOperation` reference,fork 标题设置则由 Session Controller 使用临时 `controllerOperation` reference;两者都等待该 reference 的首次历史打开。Archive 不经确认对话框直接提交(行菜单与悬停按钮都可触发),归档集合回声落地后,该行从所有分组视图中消失。Fork 在源会话最后一个已完成轮次处 fork,在客户端递增继承的持久化标题后再打开子会话。Workspace 行内的 Delete 操作会打开确认框,说明保留边界;成功后该分组被移除,其 Session 则留在 Ungrouped 下。
|
|
51
|
+
|
|
52
|
+
Session 行的 “...” 菜单最后一项为**复制 Session ID**:它关闭菜单并直接复制完整 ID 到剪贴板,不 retain 会话、不加载历史、也不调用 Host。复制成功经提示槽反馈;失败时可从菜单重试。
|
|
53
|
+
|
|
54
|
+
提示按类型键控:browser 只发布一条 `{ kind, seq }` 提示,`shell.overlay` 条目按类型把它派发到 keyed `workspace.toast` 槽,每种内置类型各自注册本地化显示数据。包内同一个 Factory 经共享 Toast primitive 渲染所有提示,因此新增一种提示只需注册其显示数据。
|
|
47
55
|
|
|
48
56
|
置顶是注册表全局事实,而非浏览器的本地排序:行菜单与悬停按钮切换它,被置顶的行领在其分组与单列列表之前,并在尾随格绘制标记;Host 调用会把该 Session 提到每个拥有它的已保存手动排序之前。取消置顶不改动这些已保存位置。已归档的 Session 不可置顶,归档会在同一次持久化写入中丢弃它的置顶。
|
|
49
57
|
|
|
50
|
-
|
|
58
|
+
标题宽于所在行时,静止状态以省略号裁切。把指针停在行上,标题会以恒定速度跑马灯滚动到远端——例如 fork 递增后的标题——并在揭示时不显示省略号;滚动期间两端裁切边各以 12 px 渐隐,指针离开后标题一步回到开头。溢出不超过 8 px 时标题保持不动;开启减少动态效果时直接跳到远端而不滚动。
|
|
51
59
|
|
|
52
60
|
### 待处理交互
|
|
53
61
|
|