one-design-next 0.0.17 → 0.0.18

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.
@@ -132,18 +132,33 @@ export interface SkillItem {
132
132
  * 三种分支拆成命名 interface 导出,业务可直接 `import` 单一形态,
133
133
  * 无需再写 `Extract<ComposerSegment, { type: 'xxx' }>`。
134
134
  */
135
+ /** Composer 文本片段携带的数据。 */
136
+ export interface TextData {
137
+ text: string;
138
+ }
139
+ /**
140
+ * Composer segment 的 type 字面量集合。
141
+ *
142
+ * 用 `as const` 对象 + 同名类型 alias 取代 TS `enum`:
143
+ * - 业务方可写 `seg.type === ComposerSegmentType.Invocation` 取代裸字符串
144
+ * - 底层仍是字符串字面量 union,自动收窄、JSON 兼容、tree-shake 友好
145
+ */
146
+ export declare const ComposerSegmentType: {
147
+ readonly Text: "text";
148
+ readonly Invocation: "invocation";
149
+ readonly Mention: "mention";
150
+ };
151
+ export type ComposerSegmentType = (typeof ComposerSegmentType)[keyof typeof ComposerSegmentType];
135
152
  export interface ComposerTextSegment {
136
- type: 'text';
137
- data: {
138
- text: string;
139
- };
153
+ type: typeof ComposerSegmentType.Text;
154
+ data: TextData;
140
155
  }
141
156
  export interface ComposerInvocationSegment {
142
- type: 'invocation';
157
+ type: typeof ComposerSegmentType.Invocation;
143
158
  data: InvocationData;
144
159
  }
145
160
  export interface ComposerMentionSegment {
146
- type: 'mention';
161
+ type: typeof ComposerSegmentType.Mention;
147
162
  data: MentionData;
148
163
  }
149
164
  export type ComposerSegment = ComposerTextSegment | ComposerInvocationSegment | ComposerMentionSegment;
@@ -1 +1,47 @@
1
- export {};
1
+ /**
2
+ * 内联引用三态:
3
+ * - complete:默认稳态(无参数 / 参数已填)
4
+ * - pending:邀请补充参数(业务自定,不强制)
5
+ * - active:参数面板打开(最高优先级,由组件内部根据 `active` prop 控制)
6
+ */
7
+
8
+ /**
9
+ * Composer 正文内 `/` 触发的内联引用(Invocation 组件数据契约)。
10
+ *
11
+ * 库只关心 UI 渲染必需字段;业务字段(refId、参数、上下文等)放 `payload`,
12
+ * 库**不约定其内部结构**,发送时原样透传。
13
+ */
14
+
15
+ /** Composer 正文内 `@` 触发的内联引用(Mention 组件数据契约)。结构同 Invocation。 */
16
+
17
+ /**
18
+ * Composer 编辑器内 chip 实例数据(DOM host + Portal 渲染用)。
19
+ * 发送时经 `rawValueToSegments` 转为 `ComposerSegment` 的 invocation / mention。
20
+ */
21
+
22
+ /**
23
+ * Composer 发送时的有序内容 IR(与编辑器内出现顺序一致)。
24
+ *
25
+ * 这是 `onSend` 的**主出口**:业务按此数组顺序自定义拼后端(可选用
26
+ * `segmentsToReadableText` 工具函数兜底拼成一句话)。
27
+ *
28
+ * 三种分支拆成命名 interface 导出,业务可直接 `import` 单一形态,
29
+ * 无需再写 `Extract<ComposerSegment, { type: 'xxx' }>`。
30
+ */
31
+
32
+ /** Composer 文本片段携带的数据。 */
33
+
34
+ /**
35
+ * Composer segment 的 type 字面量集合。
36
+ *
37
+ * 用 `as const` 对象 + 同名类型 alias 取代 TS `enum`:
38
+ * - 业务方可写 `seg.type === ComposerSegmentType.Invocation` 取代裸字符串
39
+ * - 底层仍是字符串字面量 union,自动收窄、JSON 兼容、tree-shake 友好
40
+ */
41
+ export var ComposerSegmentType = {
42
+ Text: 'text',
43
+ Invocation: 'invocation',
44
+ Mention: 'mention'
45
+ };
46
+
47
+ /** `onSend(segments, meta?)` 第二参数:非正文的附加数据。 */
@@ -9,8 +9,10 @@
9
9
  * 一句话(默认 `[Skill: label]` / `[@label]`,与 ComposerMention 兼容)。
10
10
  * - `segmentsHasContent`:是否含可见内容;库内 send 校验用,业务可复用。
11
11
  */
12
- import type { ChipData, ComposerInvocationSegment, ComposerMentionSegment, ComposerSegment, ComposerTextSegment } from '../_genui-types';
13
- export type { ComposerInvocationSegment, ComposerMentionSegment, ComposerSegment, ComposerTextSegment, };
12
+ import type { ChipData, ComposerInvocationSegment, ComposerMentionSegment, ComposerSegment, ComposerTextSegment, TextData } from '../_genui-types';
13
+ import { ComposerSegmentType } from '../_genui-types';
14
+ export type { ComposerInvocationSegment, ComposerMentionSegment, ComposerSegment, ComposerTextSegment, TextData, };
15
+ export { ComposerSegmentType };
14
16
  export declare const isTextSegment: (s: ComposerSegment) => s is ComposerTextSegment;
15
17
  export declare const isInvocationSegment: (s: ComposerSegment) => s is ComposerInvocationSegment;
16
18
  export declare const isMentionSegment: (s: ComposerSegment) => s is ComposerMentionSegment;
@@ -10,8 +10,11 @@
10
10
  * - `segmentsHasContent`:是否含可见内容;库内 send 校验用,业务可复用。
11
11
  */
12
12
 
13
+ import { ComposerSegmentType } from "../_genui-types";
13
14
  import { chipToInvocationData, chipToMentionData } from "./send-meta";
14
15
  import { forEachMarkerSegment } from "./utils";
16
+ export { ComposerSegmentType };
17
+
15
18
  /* ────────────────────────────────────────────────────────────────────
16
19
  * Type guards · 给业务方 filter / find 用,避免现场写 Extract<…>。
17
20
  *
@@ -19,13 +22,13 @@ import { forEachMarkerSegment } from "./utils";
19
22
  * ──────────────────────────────────────────────────────────────────── */
20
23
 
21
24
  export var isTextSegment = function isTextSegment(s) {
22
- return s.type === 'text';
25
+ return s.type === ComposerSegmentType.Text;
23
26
  };
24
27
  export var isInvocationSegment = function isInvocationSegment(s) {
25
- return s.type === 'invocation';
28
+ return s.type === ComposerSegmentType.Invocation;
26
29
  };
27
30
  export var isMentionSegment = function isMentionSegment(s) {
28
- return s.type === 'mention';
31
+ return s.type === ComposerSegmentType.Mention;
29
32
  };
30
33
 
31
34
  /** 从含零宽 marker 的 raw value + chip 列表构建有序 segments。 */
package/dist/index.d.ts CHANGED
@@ -73,5 +73,6 @@ export { default as StreamText, type StreamTextProps, type TypographyOverrides }
73
73
  export { default as Suggestions, type SuggestionsProps } from './suggestions';
74
74
  export { default as UserBubble, type UserBubbleProps } from './user-bubble';
75
75
  export { default as Welcome, type WelcomeProps } from './welcome';
76
- export type { ToolCall, ToolStatus, Source, Attachment, PreviewTarget, PreviewTab, SendMeta, ComposerSegment, ComposerTextSegment, ComposerInvocationSegment, ComposerMentionSegment, InvocationData, MentionData, InlineRefState, SkillItem, AgentEvent, Conversation, MessageSnapshot, ChatMessage } from './_genui-types';
76
+ export type { ToolCall, ToolStatus, Source, Attachment, PreviewTarget, PreviewTab, SendMeta, ComposerSegment, ComposerTextSegment, ComposerInvocationSegment, ComposerMentionSegment, TextData, InvocationData, MentionData, InlineRefState, SkillItem, AgentEvent, Conversation, MessageSnapshot, ChatMessage } from './_genui-types';
77
+ export { ComposerSegmentType } from './_genui-types';
77
78
  export { rawValueToSegments, segmentsToReadableText, segmentsHasContent, isTextSegment, isInvocationSegment, isMentionSegment, type SegmentsToReadableTextOptions, } from './composer/segments';
package/dist/index.js CHANGED
@@ -81,4 +81,5 @@ export { default as Welcome } from "./welcome";
81
81
 
82
82
  // GenUI shared modules
83
83
 
84
+ export { ComposerSegmentType } from "./_genui-types";
84
85
  export { rawValueToSegments, segmentsToReadableText, segmentsHasContent, isTextSegment, isInvocationSegment, isMentionSegment } from "./composer/segments";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "one-design-next",
3
- "version": "0.0.17",
3
+ "version": "0.0.18",
4
4
  "description": "One Design Next from TAD@tencent.com",
5
5
  "packageManager": "pnpm@10.33.0",
6
6
  "module": "dist/index.js",