@tutti-os/workspace-file-reference 0.0.14 → 0.0.16
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/dist/{chunk-7C3RZYQE.js → chunk-JURSITRX.js} +121 -3
- package/dist/chunk-JURSITRX.js.map +1 -0
- package/dist/{chunk-CD3YNHYJ.js → chunk-LJZYN4MH.js} +284 -39
- package/dist/chunk-LJZYN4MH.js.map +1 -0
- package/dist/contracts/index.d.ts +67 -4
- package/dist/core/index.d.ts +63 -3
- package/dist/core/index.js +7 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +7 -1
- package/dist/react/index.d.ts +76 -3
- package/dist/react/index.js +2 -2
- package/dist/{referenceSourceAggregator-yyyLVOPi.d.ts → referenceSourceAggregator-B8ATnJOZ.d.ts} +5 -0
- package/dist/ui/index.d.ts +38 -5
- package/dist/ui/index.js +964 -361
- package/dist/ui/index.js.map +1 -1
- package/package.json +6 -6
- package/dist/chunk-7C3RZYQE.js.map +0 -1
- package/dist/chunk-CD3YNHYJ.js.map +0 -1
package/dist/react/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { WorkspaceFileReference, WorkspaceFileReferencePrefetchReason, WorkspaceFileReferencePrefetchState, WorkspaceFileReferenceTreeSnapshot, WorkspaceFileReferenceAdapter, ReferenceScope, ReferenceNode, SelectedReference } from '../contracts/index.js';
|
|
1
|
+
import { WorkspaceFileReference, WorkspaceFileReferencePrefetchReason, WorkspaceFileReferencePrefetchState, WorkspaceFileReferenceTreeSnapshot, WorkspaceFileReferenceAdapter, ReferenceScope, ReferenceNode, ReferenceLocateTarget, SelectedReference, ReferenceHandle } from '../contracts/index.js';
|
|
2
2
|
import * as react from 'react';
|
|
3
3
|
import { WorkspaceFilePreviewReadonlyReason } from '@tutti-os/workspace-file-preview';
|
|
4
|
-
import { R as ReferenceSourceAggregator, a as ReferenceSourceTab } from '../referenceSourceAggregator-
|
|
4
|
+
import { R as ReferenceSourceAggregator, a as ReferenceSourceTab } from '../referenceSourceAggregator-B8ATnJOZ.js';
|
|
5
5
|
|
|
6
6
|
declare const workspaceFileReferenceDefaultExpandedDepth = 4;
|
|
7
7
|
interface WorkspaceFileReferenceDirectoryState {
|
|
@@ -40,6 +40,10 @@ type WorkspaceFileReferencePreviewState = {
|
|
|
40
40
|
} | {
|
|
41
41
|
status: "error";
|
|
42
42
|
reference: WorkspaceFileReference;
|
|
43
|
+
} | {
|
|
44
|
+
status: "html";
|
|
45
|
+
content: string;
|
|
46
|
+
reference: WorkspaceFileReference;
|
|
43
47
|
} | {
|
|
44
48
|
status: "image";
|
|
45
49
|
objectUrl: string;
|
|
@@ -47,6 +51,10 @@ type WorkspaceFileReferencePreviewState = {
|
|
|
47
51
|
} | {
|
|
48
52
|
status: "loading";
|
|
49
53
|
reference: WorkspaceFileReference;
|
|
54
|
+
} | {
|
|
55
|
+
status: "video";
|
|
56
|
+
objectUrl: string;
|
|
57
|
+
reference: WorkspaceFileReference;
|
|
50
58
|
} | {
|
|
51
59
|
maxSizeBytes?: number;
|
|
52
60
|
reason: WorkspaceFilePreviewReadonlyReason;
|
|
@@ -114,8 +122,21 @@ interface ReferenceSourceTabState {
|
|
|
114
122
|
childrenByKey: Record<string, ReferenceSourceNodeChildrenState>;
|
|
115
123
|
mode: ReferenceSourcePickerMode;
|
|
116
124
|
searchQuery: string;
|
|
125
|
+
/** 已选文件类型筛选分类 id(全局统一口径);与 searchQuery 一起构成「查询」。 */
|
|
126
|
+
searchFilters: string[];
|
|
127
|
+
/** 当前搜索限定的二级分组节点 nodeId(左栏选中分组);null = 跨整源搜索。 */
|
|
128
|
+
searchScopeNodeId: string | null;
|
|
117
129
|
searchEntries: ReferenceNode[];
|
|
118
130
|
searchNextCursor: string | null;
|
|
131
|
+
/**
|
|
132
|
+
* 当前查询使用的结果上限(增长式分页:拉到底部时 +SEARCH_PAGE_SIZE 重查)。
|
|
133
|
+
* 0 = 尚未发起查询;每次新查询(改关键词/筛选/分组/换源)重置为 SEARCH_PAGE_SIZE。
|
|
134
|
+
*/
|
|
135
|
+
searchLimit: number;
|
|
136
|
+
/** 是否可能还有更多结果(本页返回数 ≥ 请求上限,且未达全局上限)。 */
|
|
137
|
+
searchHasMore: boolean;
|
|
138
|
+
/** 正在加载下一页(增长 limit 重查在途);用于底部 spinner,不清空已有结果。 */
|
|
139
|
+
isSearchLoadingMore: boolean;
|
|
119
140
|
isSearchLoading: boolean;
|
|
120
141
|
searchError: Error | null;
|
|
121
142
|
}
|
|
@@ -128,6 +149,23 @@ interface ReferenceSourcePickerSnapshot {
|
|
|
128
149
|
/** 跨 tab 累积的选中文件节点,按选中顺序。 */
|
|
129
150
|
selection: ReferenceNode[];
|
|
130
151
|
}
|
|
152
|
+
/** confirmGrouped 的产物:一个 navigable 源文件夹 = 一个 bundle(保留分组)。 */
|
|
153
|
+
interface ReferenceConfirmBundle {
|
|
154
|
+
/** 被选中的文件夹节点(提供 displayName / iconUrl / ref 作为 bundle 身份)。 */
|
|
155
|
+
root: ReferenceNode;
|
|
156
|
+
/**
|
|
157
|
+
* 该 bundle 归一成的可被 agent 解析的领域句柄(见 ReferenceHandle)。
|
|
158
|
+
* 由所属源 describeReferenceHandle 解码;发给 agent 的 `mention://workspace-reference/...`
|
|
159
|
+
* 由它构造,替代把文件路径全部展开。源不支持解码时为 null。
|
|
160
|
+
*/
|
|
161
|
+
handle: ReferenceHandle | null;
|
|
162
|
+
}
|
|
163
|
+
interface ReferenceConfirmGroupedResult {
|
|
164
|
+
/** 单独选中的文件 + 非 navigable 源的文件夹(保持单条引用)。 */
|
|
165
|
+
files: SelectedReference[];
|
|
166
|
+
/** 每个 navigable 源文件夹一项,文件已折叠在内。 */
|
|
167
|
+
bundles: ReferenceConfirmBundle[];
|
|
168
|
+
}
|
|
131
169
|
interface ReferenceSourcePickerController {
|
|
132
170
|
readonly store: ReferenceSourcePickerSnapshot;
|
|
133
171
|
getSnapshot(): ReferenceSourcePickerSnapshot;
|
|
@@ -135,13 +173,43 @@ interface ReferenceSourcePickerController {
|
|
|
135
173
|
close(): void;
|
|
136
174
|
reset(): void;
|
|
137
175
|
setActiveSource(sourceId: string): void;
|
|
176
|
+
/**
|
|
177
|
+
* 把「定位目标」解析为从源根到目标的真实 ReferenceNode 路径(root → leaf)。
|
|
178
|
+
* 纯数据解析:逐层 listChildren 找到真实节点(带 displayName 等),不改动任何 UI/导航态。
|
|
179
|
+
* 源不支持定位 / 未找到时返回部分路径(可能为空)。供「打开即定位」一次性应用。
|
|
180
|
+
*/
|
|
181
|
+
locatePath(target: ReferenceLocateTarget): Promise<ReferenceNode[]>;
|
|
138
182
|
/** 确保某节点(null=当前源根)的子节点已加载(抽屉式导航进入用,不切换展开态)。 */
|
|
139
183
|
ensureChildren(node: ReferenceNode | null): void;
|
|
140
184
|
/** 确保指定源的根层级已加载(左栏可同时展开多源时,为非 active 源预载分组)。 */
|
|
141
185
|
ensureSourceRoot(sourceId: string): void;
|
|
186
|
+
/** 幂等展开某 folder 并确保其子节点已加载(定位目标默认展开用)。 */
|
|
187
|
+
expandNode(node: ReferenceNode): void;
|
|
142
188
|
toggleNode(node: ReferenceNode): void;
|
|
143
189
|
loadMore(node: ReferenceNode | null): void;
|
|
144
|
-
|
|
190
|
+
/**
|
|
191
|
+
* 拉取指定源根层级的下一页(左栏二级分组分页用)。
|
|
192
|
+
* 与 loadMore(null) 的区别:后者只作用于 active 源;本方法显式指定源,
|
|
193
|
+
* 使左栏任一源(无论是否 active)都能继续拉取其分组。
|
|
194
|
+
*/
|
|
195
|
+
loadMoreSourceRoot(sourceId: string): void;
|
|
196
|
+
/**
|
|
197
|
+
* 设置搜索关键词。scopeNodeId 指定把搜索限定在 active 源内某个二级分组(左栏选中分组)
|
|
198
|
+
* 的节点 nodeId;缺省/null = 跨整源搜索。query 与 filters 任一非空即进入查询(平铺)态。
|
|
199
|
+
*/
|
|
200
|
+
setSearchQuery(query: string, scopeNodeId?: string | null): void;
|
|
201
|
+
/**
|
|
202
|
+
* 设置已选文件类型筛选分类(全局统一口径)。与 setSearchQuery 同构:
|
|
203
|
+
* 与现有关键词一起构成查询并(去抖)重搜;query 与 filters 同时为空才回浏览态。
|
|
204
|
+
*/
|
|
205
|
+
setSearchFilters(filters: string[], scopeNodeId?: string | null): void;
|
|
206
|
+
/** 搜索进行中切换左栏分组时更新限定范围并以现有关键词/筛选重搜。 */
|
|
207
|
+
setSearchScope(scopeNodeId: string | null): void;
|
|
208
|
+
/**
|
|
209
|
+
* 加载更多查询结果(增长式分页):以同一关键词/筛选、更大的 limit 立即重查,
|
|
210
|
+
* 结果整体替换(保留旧结果直到新结果就绪)。无更多 / 在途 / 非查询态时 no-op。
|
|
211
|
+
*/
|
|
212
|
+
loadMoreSearch(): void;
|
|
145
213
|
toggleSelection(node: ReferenceNode): void;
|
|
146
214
|
clearSelection(): void;
|
|
147
215
|
/**
|
|
@@ -152,6 +220,11 @@ interface ReferenceSourcePickerController {
|
|
|
152
220
|
* 含异步枚举,故返回 Promise;结果按 path 去重、保序。
|
|
153
221
|
*/
|
|
154
222
|
confirm(): Promise<SelectedReference[]>;
|
|
223
|
+
/**
|
|
224
|
+
* 与 confirm 同源,但保留分组:navigable 源的每个选中文件夹折叠成一个 bundle
|
|
225
|
+
* (文件已递归展开在内),其余作为单条文件。供「文件夹 = 一个节点」的插入形态用。
|
|
226
|
+
*/
|
|
227
|
+
confirmGrouped(): Promise<ReferenceConfirmGroupedResult>;
|
|
155
228
|
}
|
|
156
229
|
interface CreateReferenceSourcePickerControllerInput {
|
|
157
230
|
aggregator: ReferenceSourceAggregator;
|
package/dist/react/index.js
CHANGED
|
@@ -9,8 +9,8 @@ import {
|
|
|
9
9
|
prefetchReferenceTree,
|
|
10
10
|
useWorkspaceFileReferencePickerView,
|
|
11
11
|
workspaceFileReferenceDefaultExpandedDepth
|
|
12
|
-
} from "../chunk-
|
|
13
|
-
import "../chunk-
|
|
12
|
+
} from "../chunk-LJZYN4MH.js";
|
|
13
|
+
import "../chunk-JURSITRX.js";
|
|
14
14
|
export {
|
|
15
15
|
ROOT_CHILDREN_KEY,
|
|
16
16
|
collectVisibleTreeEntries,
|
package/dist/{referenceSourceAggregator-yyyLVOPi.d.ts → referenceSourceAggregator-B8ATnJOZ.d.ts}
RENAMED
|
@@ -31,6 +31,11 @@ interface ReferenceSourceAggregator {
|
|
|
31
31
|
open(scope: ReferenceScope, node: ReferenceNode): Promise<void>;
|
|
32
32
|
readPreview(scope: ReferenceScope, node: ReferenceNode): Promise<ReferencePreview | null>;
|
|
33
33
|
resolveSelection(node: ReferenceNode): SelectedReference;
|
|
34
|
+
/**
|
|
35
|
+
* 把语义定位参数解析为某源内从根到目标分组的 NodeRef 路径(root → leaf)。
|
|
36
|
+
* 源未实现 locateTarget / 未找到时返回 null。需先 listSources/listRoot 触发源加载。
|
|
37
|
+
*/
|
|
38
|
+
locateTarget(scope: ReferenceScope, sourceId: string, params: Record<string, string>): Promise<NodeRef[] | null>;
|
|
34
39
|
/** 取已加载的源(用于读取 capabilities/metadata)。需先 listRoot 触发加载。 */
|
|
35
40
|
getLoadedSource(sourceId: string): ReferenceSourceService | undefined;
|
|
36
41
|
}
|
package/dist/ui/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { WorkspaceFileReferenceCopy, WorkspaceFileReferenceAdapter, WorkspaceFileReference } from '../contracts/index.js';
|
|
2
|
+
import { WorkspaceFileReferenceCopy, WorkspaceFileReferenceAdapter, WorkspaceFileReference, ReferenceHandle, ReferenceLocateTarget } from '../contracts/index.js';
|
|
3
3
|
import { JSX } from 'react';
|
|
4
|
-
import { R as ReferenceSourceAggregator } from '../referenceSourceAggregator-
|
|
4
|
+
import { R as ReferenceSourceAggregator } from '../referenceSourceAggregator-B8ATnJOZ.js';
|
|
5
5
|
|
|
6
6
|
interface WorkspaceFileReferencePickerProps {
|
|
7
7
|
copy: WorkspaceFileReferenceCopy;
|
|
@@ -10,18 +10,51 @@ interface WorkspaceFileReferencePickerProps {
|
|
|
10
10
|
onClose: () => void;
|
|
11
11
|
onConfirm: (refs: WorkspaceFileReference[]) => void;
|
|
12
12
|
open: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* When true, the dialog is rendered inline (non-portaled, absolutely
|
|
15
|
+
* positioned) so it stays clipped within the nearest positioned ancestor —
|
|
16
|
+
* e.g. an agent GUI node window — instead of covering the whole viewport.
|
|
17
|
+
* Defaults to false (portal to body + cover the viewport).
|
|
18
|
+
*/
|
|
19
|
+
scoped?: boolean;
|
|
13
20
|
workspaceId: string;
|
|
14
21
|
}
|
|
15
|
-
declare function WorkspaceFileReferencePicker({ copy, fileAdapter, initialPath, onClose, onConfirm, open, workspaceId }: WorkspaceFileReferencePickerProps): react_jsx_runtime.JSX.Element
|
|
22
|
+
declare function WorkspaceFileReferencePicker({ copy, fileAdapter, initialPath, onClose, onConfirm, open, scoped, workspaceId }: WorkspaceFileReferencePickerProps): react_jsx_runtime.JSX.Element;
|
|
23
|
+
|
|
24
|
+
/** 一个 navigable 源文件夹的折叠选区(文件已映射为 WorkspaceFileReference)。 */
|
|
25
|
+
interface ReferenceBundleSelection {
|
|
26
|
+
sourceId: string;
|
|
27
|
+
nodeId: string;
|
|
28
|
+
displayName: string;
|
|
29
|
+
iconUrl?: string | null;
|
|
30
|
+
/**
|
|
31
|
+
* 可被 agent 解析的领域句柄(见 ReferenceHandle)。发给 agent 的
|
|
32
|
+
* `mention://workspace-reference/...` 由它构造;源未解码出句柄时为 null。
|
|
33
|
+
*/
|
|
34
|
+
handle: ReferenceHandle | null;
|
|
35
|
+
/** 该 bundle 下文件数(展示用,取节点 childCount;不再展开文件)。 */
|
|
36
|
+
fileCount: number;
|
|
37
|
+
}
|
|
38
|
+
interface ReferenceGroupedSelection {
|
|
39
|
+
files: WorkspaceFileReference[];
|
|
40
|
+
bundles: ReferenceBundleSelection[];
|
|
41
|
+
}
|
|
16
42
|
|
|
17
43
|
interface ReferenceSourcePickerProps {
|
|
18
44
|
aggregator: ReferenceSourceAggregator;
|
|
19
45
|
copy: WorkspaceFileReferenceCopy;
|
|
46
|
+
/** 可选:打开时直达某事项/应用分组(展开并聚焦)。 */
|
|
47
|
+
initialTarget?: ReferenceLocateTarget | null;
|
|
20
48
|
onClose: () => void;
|
|
21
49
|
onConfirm: (refs: WorkspaceFileReference[]) => void;
|
|
50
|
+
/**
|
|
51
|
+
* 可选:启用「文件夹=一个 bundle 节点」确认形态。提供时确认走 confirmGrouped,
|
|
52
|
+
* navigable 源的选中文件夹折叠成 bundle 回调,其余仍为单条文件。
|
|
53
|
+
*/
|
|
54
|
+
onConfirmBundles?: (result: ReferenceGroupedSelection) => void;
|
|
22
55
|
open: boolean;
|
|
23
56
|
workspaceId: string;
|
|
24
57
|
}
|
|
25
|
-
declare function ReferenceSourcePicker({ aggregator, copy, onClose, onConfirm, open, workspaceId }: ReferenceSourcePickerProps): JSX.Element | null;
|
|
58
|
+
declare function ReferenceSourcePicker({ aggregator, copy, initialTarget, onClose, onConfirm, onConfirmBundles, open, workspaceId }: ReferenceSourcePickerProps): JSX.Element | null;
|
|
26
59
|
|
|
27
|
-
export { ReferenceSourcePicker, type ReferenceSourcePickerProps, WorkspaceFileReferencePicker, type WorkspaceFileReferencePickerProps };
|
|
60
|
+
export { type ReferenceBundleSelection, type ReferenceGroupedSelection, ReferenceSourcePicker, type ReferenceSourcePickerProps, WorkspaceFileReferencePicker, type WorkspaceFileReferencePickerProps };
|