@wzrhine/agent-core 0.0.0-stage → 0.2.0

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.
Files changed (56) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/LICENSE +21 -0
  3. package/README.md +15 -3
  4. package/dist/contracts/actions.d.ts +46 -0
  5. package/dist/contracts/actions.d.ts.map +1 -0
  6. package/dist/contracts/actions.js +2 -0
  7. package/dist/contracts/actions.js.map +1 -0
  8. package/dist/contracts/composer.d.ts +92 -0
  9. package/dist/contracts/composer.d.ts.map +1 -0
  10. package/dist/contracts/composer.js +2 -0
  11. package/dist/contracts/composer.js.map +1 -0
  12. package/dist/contracts/conversation.d.ts +348 -0
  13. package/dist/contracts/conversation.d.ts.map +1 -0
  14. package/dist/contracts/conversation.js +2 -0
  15. package/dist/contracts/conversation.js.map +1 -0
  16. package/dist/contracts/intervention.d.ts +104 -0
  17. package/dist/contracts/intervention.d.ts.map +1 -0
  18. package/dist/contracts/intervention.js +2 -0
  19. package/dist/contracts/intervention.js.map +1 -0
  20. package/dist/contracts/status.d.ts +32 -0
  21. package/dist/contracts/status.d.ts.map +1 -0
  22. package/dist/contracts/status.js +9 -0
  23. package/dist/contracts/status.js.map +1 -0
  24. package/dist/contracts/tools.d.ts +288 -0
  25. package/dist/contracts/tools.d.ts.map +1 -0
  26. package/dist/contracts/tools.js +2 -0
  27. package/dist/contracts/tools.js.map +1 -0
  28. package/dist/contracts/workspace.d.ts +174 -0
  29. package/dist/contracts/workspace.d.ts.map +1 -0
  30. package/dist/contracts/workspace.js +2 -0
  31. package/dist/contracts/workspace.js.map +1 -0
  32. package/dist/helpers/composer-tokens.d.ts +74 -0
  33. package/dist/helpers/composer-tokens.d.ts.map +1 -0
  34. package/dist/helpers/composer-tokens.js +150 -0
  35. package/dist/helpers/composer-tokens.js.map +1 -0
  36. package/dist/helpers/diff.d.ts +28 -0
  37. package/dist/helpers/diff.d.ts.map +1 -0
  38. package/dist/helpers/diff.js +110 -0
  39. package/dist/helpers/diff.js.map +1 -0
  40. package/dist/helpers/format.d.ts +31 -0
  41. package/dist/helpers/format.d.ts.map +1 -0
  42. package/dist/helpers/format.js +124 -0
  43. package/dist/helpers/format.js.map +1 -0
  44. package/dist/helpers/snapshot.d.ts +45 -0
  45. package/dist/helpers/snapshot.d.ts.map +1 -0
  46. package/dist/helpers/snapshot.js +105 -0
  47. package/dist/helpers/snapshot.js.map +1 -0
  48. package/dist/helpers/status-meta.d.ts +30 -0
  49. package/dist/helpers/status-meta.d.ts.map +1 -0
  50. package/dist/helpers/status-meta.js +124 -0
  51. package/dist/helpers/status-meta.js.map +1 -0
  52. package/dist/index.d.ts +17 -0
  53. package/dist/index.d.ts.map +1 -0
  54. package/dist/index.js +7 -0
  55. package/dist/index.js.map +1 -0
  56. package/package.json +39 -3
package/CHANGELOG.md ADDED
@@ -0,0 +1,25 @@
1
+ # Changelog · @wzrhine/agent-core
2
+
3
+ 格式参考 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/),版本号遵循 [SemVer](https://semver.org/lang/zh-CN/)。本包为 **Experimental**,0.x 期间 API 可能调整。
4
+
5
+ ## [Unreleased]
6
+
7
+ ## [0.2.0] - 2026-10-14
8
+
9
+ ### Added
10
+ - **B2 · 材料与运行事实**:`ModelEffort.xhigh`;文件材料的可信统计(`statsReliable`、`observedBytes`)与原文 / 编辑 / 补丁三类材料的分页(`MaterialPageView`、`hasMore`、`materialReady`)和补丁基线 `expectedVersion`;manage-files 的操作计数与分页(`counts`、`total`、`page`)及 `created`;原生模型运行事实(`endpoint`、`route`、`timeoutMs`、`sha256`、`arguments`、`remote`、`stopReason`、`saveRetry`、`saveError`);结构化工具失败;终端 `source` / `activity` / `tail`;上下文估算的 `estimated` 标记与回执投递状态(`delivered`、`unreadOutcome`)。
11
+ - **B5 · Composer token**:`reconcileTokens(value, bindings)` 按触发符与完整名称把宿主绑定对账到当前草稿(保留原顺序、丢弃失效绑定、不发明绑定)与 `pathCrumbs(path, root)`(相对路径按根路径处理,绝对路径在 `root` 下时首段为根目录);`TokenBinding` 类型导出。
12
+ - **ADR-0013 · 开放分类法**:新增 `KnownModelEffort`、`ModelEffortOption`、`ModelCapability`、`AttachmentKind`、`ReferenceKind`、`CitationSourceType`、`RecoveryKind` 类型导出;展示性分类字段放宽为 `Known | (string & {})`,状态机枚举(`RunStatus` / `ToolStatus` / `SyncStatus` / `ActionStatus` 等)保持封闭。
13
+
14
+ ### Changed
15
+ - **行为变化**:token 编码不再把名称中的空格替换为连字符。历史草稿用 `reconcileTokens(value, bindings)` 与宿主绑定对账;不匹配的绑定会被丢弃。
16
+ - `detectTrigger` 增加第四个参数 `options.slash`(`"line-start" | "word-start"`),用于斜杠命令只在行首 / 词首识别的场景。
17
+ - `ModelOptionView.efforts` 接受 `(ModelEffort | ModelEffortOption)[]`,选项可自带 `label` / `description`。
18
+
19
+ ## [0.1.0] - 2026-10-12
20
+
21
+ 首次发布。
22
+
23
+ ### Added
24
+ - **M12(ADR-0010 / ADR-0011)**:新包。Conversation、Message(13 种 part)、Run / Process、Tool(11 种专项 detail)、Approval、Questionnaire、Composer、Terminal、Subagent、ContextUsage、PinnedSummary、Ledger、FilePreview、RunSummary 的 view-model;状态轴 `RunStatus` / `RunPhase` / `SyncStatus` / `ActionStatus` / `ToolStatus` 等(统一 kebab-case);`AgentActionContext` / `AgentActionResult` / `Capability`。
25
+ - 纯函数:`mergeById`、`dedupeById`、`sequenceGaps`、`buildTree`、`compareRevision`、`isStaleRevision`、`capability`;状态元数据 `runStatusMeta` 等与 `sparkPhase`、`canStopRun`;composer token(`encodeToken`、`parseTokens`、`toPlainText`、`insertToken`、`snapCaret`、`deleteTokenAt`、`detectTrigger`…);`lineDiff`、`parseUnifiedDiff`、`diffStats`;`formatCompact`、`formatDuration`、`formatBytes`、`usagePercent`(不完整数据不给百分比)等。
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 WhiteZhi
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,15 @@
1
- # Temporary Holding Version
2
-
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
1
+ # @wzrhine/agent-core
2
+
3
+ WzRhineLab UI Agent 界面的**框架无关契约**:view-model 类型、三条状态轴(运行 / 同步 / 动作回执)、状态元数据(字形 + 色调),以及 adapter 共用的纯函数(`mergeById` 去重与 revision 守卫、`buildTree`、`lineDiff` / `parseUnifiedDiff`、composer token 编码、格式化)。不依赖 React、DOM 或任何运行时,可以在 Node、Worker 或服务端使用。
4
+
5
+ > 实验性(0.x 期间 API 可能调整);MIT 许可证。组件在 [`@wzrhine/agent`](../agent/README.md),它会重新导出本包的全部公开项。
6
+
7
+ ```ts
8
+ import { mergeById, runStatusMeta, toPlainText } from '@wzrhine/agent-core';
9
+ import type { MessageView, RunView } from '@wzrhine/agent-core';
10
+ ```
11
+
12
+ - 契约:[ADR-0011](https://github.com/BaiZhi967/WzRhineLab-UI/blob/main/docs/development/adr/0011-agent-contracts.md)
13
+ - API 参考(自动生成):[docs/api/agent-core.md](https://github.com/BaiZhi967/WzRhineLab-UI/blob/main/docs/api/agent-core.md)
14
+ - 变更记录:[CHANGELOG.md](./CHANGELOG.md)
15
+ - 许可证:[MIT](./LICENSE)
@@ -0,0 +1,46 @@
1
+ import type { ActionStatus } from './status.js';
2
+ /**
3
+ * Actions and capabilities (ADR-0011 §4). Components emit intent; the consumer adapter decides
4
+ * whether it was accepted. A capability without a callback is never rendered as a button.
5
+ */
6
+ /** Identity of one user action. `actionId` is reused when retrying the same unknown action. */
7
+ export interface AgentActionContext {
8
+ actionId: string;
9
+ /** What the action targets: message, operation, questionnaire, terminal… */
10
+ targetId: string;
11
+ /** Revision the user was looking at. The adapter rejects stale actions with it. */
12
+ baseRevision?: string;
13
+ }
14
+ export type AgentActionResult = {
15
+ status: 'accepted';
16
+ revision?: string;
17
+ } | {
18
+ status: 'rejected';
19
+ reason: string;
20
+ code?: string;
21
+ } | {
22
+ status: 'unknown';
23
+ retryable: boolean;
24
+ reason?: string;
25
+ };
26
+ /** Sync or async action callback. */
27
+ export type AgentActionHandler<Args extends unknown[] = []> = (...args: Args) => AgentActionResult | void | Promise<AgentActionResult | void>;
28
+ /** A capability flag with an optional reason shown when it is unavailable. */
29
+ export interface Capability {
30
+ enabled: boolean;
31
+ /** Read out and shown as hint text when `enabled` is false. */
32
+ reason?: string;
33
+ }
34
+ /** Normalised capability: `true` / `false` / `{ enabled, reason }`. */
35
+ export type CapabilityInput = boolean | Capability;
36
+ /** Receipt of the most recent action against an object, shown next to its controls. */
37
+ export interface ActionReceipt {
38
+ status: ActionStatus;
39
+ actionId?: string;
40
+ /** Message for `rejected` / `unknown`. */
41
+ reason?: string;
42
+ /** For `unknown`: whether retrying the same action is safe. */
43
+ retryable?: boolean;
44
+ at?: string;
45
+ }
46
+ //# sourceMappingURL=actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/contracts/actions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;;GAGG;AAEH,+FAA+F;AAC/F,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,CAAC;IACjB,mFAAmF;IACnF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,iBAAiB,GACzB;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/D,qCAAqC;AACrC,MAAM,MAAM,kBAAkB,CAAC,IAAI,SAAS,OAAO,EAAE,GAAG,EAAE,IAAI,CAC5D,GAAG,IAAI,EAAE,IAAI,KACV,iBAAiB,GAAG,IAAI,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;AAElE,8EAA8E;AAC9E,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,uEAAuE;AACvE,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,UAAU,CAAC;AAEnD,uFAAuF;AACvF,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/contracts/actions.ts"],"names":[],"mappings":""}
@@ -0,0 +1,92 @@
1
+ import type { AttachmentView, ReferenceView } from './conversation.js';
2
+ import type { ActionStatus, DraftStatus } from './status.js';
3
+ /**
4
+ * Composer, picker and command view-models (ADR-0011 §8). A real textarea owns IME, selection
5
+ * and undo; tokens in the text are marked with Unicode isolates (see `composer-tokens`).
6
+ */
7
+ export interface SendInput {
8
+ /** Readable text: tokens converted back to `@name` / `/name`. */
9
+ text: string;
10
+ /** Raw value including token markers. */
11
+ raw: string;
12
+ references: ReferenceView[];
13
+ attachments: AttachmentView[];
14
+ }
15
+ export interface ComposerState {
16
+ value: string;
17
+ draftStatus?: DraftStatus;
18
+ submitStatus?: ActionStatus;
19
+ attachments?: AttachmentView[];
20
+ references?: ReferenceView[];
21
+ }
22
+ export type TriggerChar = '@' | '/';
23
+ export interface MentionOption {
24
+ id: string;
25
+ label: string;
26
+ /** Path / description, matched and shown dimmed. */
27
+ detail?: string;
28
+ kind: ReferenceView['kind'];
29
+ /** Folders can be drilled into instead of inserted. */
30
+ drillable?: boolean;
31
+ disabled?: boolean;
32
+ disabledReason?: string;
33
+ group?: string;
34
+ }
35
+ export interface CommandOption {
36
+ id: string;
37
+ /** Inserted / dispatched name without the slash. */
38
+ name: string;
39
+ label: string;
40
+ description?: string;
41
+ kind: 'command' | 'skill' | 'action';
42
+ aliases?: string[];
43
+ shortcut?: string;
44
+ disabled?: boolean;
45
+ disabledReason?: string;
46
+ selected?: boolean;
47
+ group?: string;
48
+ }
49
+ /**
50
+ * Reasoning-effort level of a model. The six built-in levels have localised copy in
51
+ * `@wzrhine/agent`; adapters may use any other string (vendor tiers, numeric levels) and supply
52
+ * labels through `ModelEffortOption.label`, the ModelPicker `effortLabels` prop or the
53
+ * `composer.effort` message table (ADR-0013 §1).
54
+ */
55
+ export type ModelEffort = 'off' | 'low' | 'medium' | 'high' | 'max' | 'xhigh' | (string & {});
56
+ /** The effort levels `@wzrhine/agent` ships copy for. */
57
+ export type KnownModelEffort = 'off' | 'low' | 'medium' | 'high' | 'max' | 'xhigh';
58
+ /** An effort choice carrying its own copy; beats the message table. */
59
+ export interface ModelEffortOption {
60
+ id: ModelEffort;
61
+ label?: string;
62
+ /** Longer hint shown under the label (Radio description). */
63
+ description?: string;
64
+ }
65
+ /** Model capabilities the library ships copy for; any other string renders as-is (ADR-0013 §2). */
66
+ export type ModelCapability = 'image' | 'video' | 'tools' | 'reasoning' | 'long-context';
67
+ export interface ModelOptionView {
68
+ id: string;
69
+ label: string;
70
+ providerId: string;
71
+ description?: string;
72
+ capabilities?: (ModelCapability | (string & {}))[];
73
+ /** Effort levels this model accepts: bare ids (copy from the message table) or labelled options. */
74
+ efforts?: (ModelEffort | ModelEffortOption)[];
75
+ disabled?: boolean;
76
+ unavailableReason?: string;
77
+ }
78
+ export interface ModelProviderView {
79
+ id: string;
80
+ label: string;
81
+ disabled?: boolean;
82
+ unavailableReason?: string;
83
+ models: ModelOptionView[];
84
+ }
85
+ export interface PermissionModeView {
86
+ id: string;
87
+ label: string;
88
+ description?: string;
89
+ /** `elevated` modes (full access) ask for confirmation before switching. */
90
+ risk?: 'normal' | 'elevated';
91
+ }
92
+ //# sourceMappingURL=composer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composer.d.ts","sourceRoot":"","sources":["../../src/contracts/composer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=composer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composer.js","sourceRoot":"","sources":["../../src/contracts/composer.ts"],"names":[],"mappings":""}
@@ -0,0 +1,348 @@
1
+ import type { ActionReceipt } from './actions.js';
2
+ import type { ActionStatus, Completeness, RunPhase, RunStatus, SyncStatus, ToolStatus } from './status.js';
3
+ import type { ToolCallView } from './tools.js';
4
+ /**
5
+ * Conversation, message and run view-models (ADR-0011 §2). Snapshots only: plain, serialisable
6
+ * data with stable ids. Adapters dedupe, order and guard revisions before they reach a component.
7
+ */
8
+ export interface AgentIdentityView {
9
+ id: string;
10
+ name: string;
11
+ /** Short role / kind label, e.g. "Research agent". */
12
+ role?: string;
13
+ /** Initials or a short monogram used when no avatar renderer is given. */
14
+ monogram?: string;
15
+ }
16
+ /** Where a conversation came from. */
17
+ export interface ConversationOrigin {
18
+ kind: 'fork' | 'subagent';
19
+ /** Parent conversation id. */
20
+ parentId: string;
21
+ parentTitle?: string;
22
+ }
23
+ export interface ConversationView {
24
+ id: string;
25
+ title: string;
26
+ /** Second line: agent name, message count, last activity… */
27
+ preview?: string;
28
+ /** ISO timestamp of the last activity. */
29
+ updatedAt?: string;
30
+ pinned?: boolean;
31
+ archived?: boolean;
32
+ /** Unread finished-run count; 0 / undefined hides the marker. */
33
+ unread?: number;
34
+ runStatus?: RunStatus;
35
+ runPhase?: RunPhase;
36
+ /** Needs the user (approval, question, child needs attention). Shown above unread. */
37
+ attention?: 'approval' | 'question' | 'children' | 'error';
38
+ origin?: ConversationOrigin;
39
+ revision?: string;
40
+ /** Whether the latest reference/result was delivered to the host. */
41
+ unreadOutcome?: 'delivered' | 'pending' | 'failed' | 'unknown';
42
+ disabled?: boolean | {
43
+ reason?: string;
44
+ };
45
+ }
46
+ export interface ConversationSection {
47
+ id: string;
48
+ label: string;
49
+ items: ConversationView[];
50
+ }
51
+ export type MessageRole = 'user' | 'assistant' | 'system' | 'tool';
52
+ /** Message delivery state; streaming is not a status of its own but `status: 'streaming'`. */
53
+ export type MessageStatus = 'pending' | 'streaming' | 'complete' | 'partial' | 'failed' | 'cancelled' | 'interrupted';
54
+ /** Attachment kinds the library ships copy and icons for. Any other string is accepted and falls
55
+ * back to the `file` icon and the raw id as its label (ADR-0013 §2). */
56
+ export type AttachmentKind = 'image' | 'file' | 'pdf' | 'text' | 'code' | 'unknown';
57
+ export interface AttachmentView {
58
+ id: string;
59
+ name: string;
60
+ kind: AttachmentKind | (string & {});
61
+ mimeType?: string;
62
+ /** Bytes. */
63
+ size?: number;
64
+ status: 'ready' | 'uploading' | 'failed' | 'stale' | 'disabled';
65
+ /** 0–1 when known; omit for indeterminate uploads. */
66
+ progress?: number;
67
+ /** Thumbnail URL (data: or same-origin). Only rendered for `kind: 'image'`. */
68
+ thumbnail?: string;
69
+ /** Alternative text for image thumbnails. */
70
+ alt?: string;
71
+ /** Reason for `failed` / `stale` / `disabled`. */
72
+ reason?: string;
73
+ }
74
+ /** Reference kinds the library ships copy and icons for; any other string is accepted and falls
75
+ * back to the `custom` presentation (ADR-0013 §2). */
76
+ export type ReferenceKind = 'file' | 'folder' | 'skill' | 'command' | 'url' | 'symbol' | 'custom';
77
+ /** A context reference attached to a message or the composer (file, folder, skill, URL…). */
78
+ export interface ReferenceView {
79
+ id: string;
80
+ kind: ReferenceKind | (string & {});
81
+ label: string;
82
+ /** Full path / URL / description used for the accessible name and tooltip. */
83
+ detail?: string;
84
+ /** Outside the workspace. */
85
+ external?: boolean;
86
+ status?: 'ready' | 'loading' | 'stale' | 'failed';
87
+ reason?: string;
88
+ delivered?: boolean;
89
+ }
90
+ /** Citation source types the library ships copy and icons for; any other string falls back to
91
+ * the `other` presentation (ADR-0013 §2). */
92
+ export type CitationSourceType = 'file' | 'web' | 'code' | 'dataset' | 'message' | 'other';
93
+ export interface CitationView {
94
+ id: string;
95
+ /** Visible index, e.g. 1 → "[1]". */
96
+ index: number;
97
+ title: string;
98
+ sourceType: CitationSourceType | (string & {});
99
+ /** Path, URL or locator shown in the hover card. */
100
+ locator?: string;
101
+ excerpt?: string;
102
+ /** Source is no longer reachable; the chip stays but cannot be opened. */
103
+ unavailable?: boolean;
104
+ reason?: string;
105
+ }
106
+ /** Artifact kinds the library ships copy and icons for; any other string falls back to the
107
+ * `file` icon and the raw id as its label (ADR-0013 §2). */
108
+ export type ArtifactKind = 'text' | 'markdown' | 'code' | 'image' | 'file' | 'diff' | 'data' | 'unknown';
109
+ export interface ArtifactView {
110
+ id: string;
111
+ title: string;
112
+ kind: ArtifactKind | (string & {});
113
+ mimeType?: string;
114
+ size?: number;
115
+ /** Version or revision label. */
116
+ version?: string;
117
+ /**
118
+ * `saved` only after the artifact is actually persisted. `partial` keeps `reason`.
119
+ * `generating` shows activity without a percentage.
120
+ */
121
+ status: 'generating' | 'partial' | 'saved' | 'failed' | 'unavailable' | 'stale';
122
+ /** Change against the workspace, for file artifacts. */
123
+ change?: 'created' | 'modified' | 'moved' | 'deleted';
124
+ path?: string;
125
+ /** Short text preview or thumbnail URL (for `image`). */
126
+ preview?: string;
127
+ alt?: string;
128
+ reason?: string;
129
+ }
130
+ /** Public thinking summary for one model call. Never assumes full private reasoning exists. */
131
+ export interface ThinkingView {
132
+ id: string;
133
+ label?: string;
134
+ status: 'streaming' | 'completed' | 'interrupted';
135
+ /** Approved summary text (markdown allowed through the renderer). */
136
+ summary?: string;
137
+ /** Latest single line, shown collapsed while streaming. */
138
+ latestLine?: string;
139
+ /** Milliseconds. */
140
+ elapsedMs?: number;
141
+ /** The shown summary is cut; offer the full record. */
142
+ truncated?: boolean;
143
+ }
144
+ export type MessagePartView = {
145
+ type: 'text';
146
+ id: string;
147
+ text: string;
148
+ streaming?: boolean;
149
+ } | {
150
+ type: 'markdown';
151
+ id: string;
152
+ source: string;
153
+ streaming?: boolean;
154
+ } | {
155
+ type: 'code';
156
+ id: string;
157
+ code: string;
158
+ language?: string;
159
+ filename?: string;
160
+ } | {
161
+ type: 'image';
162
+ id: string;
163
+ src: string;
164
+ alt: string;
165
+ caption?: string;
166
+ width?: number;
167
+ height?: number;
168
+ } | {
169
+ type: 'thinking';
170
+ id: string;
171
+ thinking: ThinkingView;
172
+ } | {
173
+ type: 'tool-call';
174
+ id: string;
175
+ tool: ToolCallView;
176
+ } | {
177
+ type: 'attachment';
178
+ id: string;
179
+ attachment: AttachmentView;
180
+ } | {
181
+ type: 'reference';
182
+ id: string;
183
+ reference: ReferenceView;
184
+ } | {
185
+ type: 'citation';
186
+ id: string;
187
+ citation: CitationView;
188
+ } | {
189
+ type: 'artifact';
190
+ id: string;
191
+ artifact: ArtifactView;
192
+ } | {
193
+ type: 'status';
194
+ id: string;
195
+ status: RunStatus;
196
+ phase?: RunPhase;
197
+ text?: string;
198
+ } | {
199
+ type: 'error';
200
+ id: string;
201
+ error: RecoveryView;
202
+ } | {
203
+ type: 'custom';
204
+ id: string;
205
+ renderer: string;
206
+ payload: unknown;
207
+ summary?: string;
208
+ };
209
+ export type MessagePartType = MessagePartView['type'];
210
+ export interface TokenUsageView {
211
+ input?: number;
212
+ output?: number;
213
+ total?: number;
214
+ cacheRead?: number;
215
+ cacheWrite?: number;
216
+ completeness: Completeness;
217
+ /** "inherited" history, "not returned by provider"… */
218
+ note?: string;
219
+ }
220
+ /** A skill / plugin that was actually loaded for a turn (vs. merely requested). */
221
+ export interface SkillUseView {
222
+ id: string;
223
+ name: string;
224
+ /** Where it came from: "应用内置", "当前工作区"… */
225
+ source?: string;
226
+ method: 'selected' | 'model-loaded';
227
+ /** Content digest (shown shortened) so reviewers can tell versions apart. */
228
+ digest?: string;
229
+ }
230
+ /** What actually ran for one turn (run-details disclosure). Every field optional; missing ≠ zero. */
231
+ export interface RunDetailsView {
232
+ permission?: string;
233
+ provider?: string;
234
+ model?: string;
235
+ modelId?: string;
236
+ effort?: string;
237
+ startedAt?: string;
238
+ elapsedMs?: number;
239
+ /** `lower-bound`: the run was cut, the real time is at least `elapsedMs`. */
240
+ elapsedKind?: 'exact' | 'lower-bound' | 'unknown';
241
+ lastActivityAt?: string;
242
+ usage?: TokenUsageView;
243
+ /** Usage of models called from inside tools. */
244
+ toolModelUsage?: TokenUsageView & {
245
+ unreportedCalls?: number;
246
+ };
247
+ /** Tokens spent on context compaction during the turn. */
248
+ compactionTokens?: number;
249
+ errorCode?: string;
250
+ notes?: string[];
251
+ }
252
+ export interface MessageView {
253
+ id: string;
254
+ conversationId?: string;
255
+ runId?: string;
256
+ role: MessageRole;
257
+ /** Visible author name ("你", agent name, model label). */
258
+ author?: string;
259
+ createdAt?: string;
260
+ /** User edited the message after sending. */
261
+ edited?: boolean;
262
+ revision?: string;
263
+ sequence?: number;
264
+ status: MessageStatus;
265
+ parts: MessagePartView[];
266
+ /** Run-level usage footer for assistant messages. */
267
+ usage?: TokenUsageView;
268
+ /** Inherited from a parent/fork; read-only. */
269
+ inherited?: boolean;
270
+ /** Skills actually loaded for this turn. */
271
+ skillUses?: SkillUseView[];
272
+ /** Run details for the assistant turn. */
273
+ details?: RunDetailsView;
274
+ }
275
+ /** Recovery kinds the library ships copy and tones for; any other string falls back to the
276
+ * `unknown` presentation (warning tone + question glyph) and renders its raw id (ADR-0013 §2). */
277
+ export type RecoveryKind = 'retryable' | 'save-pending' | 'cancel-unconfirmed' | 'tool-side-effects' | 'timeout' | 'offline' | 'unknown' | 'resolved';
278
+ /** Recoverable error state (ErrorRecoveryNotice). */
279
+ export interface RecoveryView {
280
+ id: string;
281
+ kind: RecoveryKind | (string & {});
282
+ title: string;
283
+ message?: string;
284
+ code?: string;
285
+ /** What is still safe: output kept, draft kept… */
286
+ preserved?: string[];
287
+ /** Safe actions; `id` is passed back to the handler. Labels must say what they act on. */
288
+ actions?: {
289
+ id: string;
290
+ label: string;
291
+ tone?: 'primary' | 'secondary' | 'danger';
292
+ }[];
293
+ }
294
+ /** One step inside a model call (stage text, tool reference, thinking). */
295
+ export type ProcessBlockView = {
296
+ type: 'thinking';
297
+ id: string;
298
+ thinking: ThinkingView;
299
+ } | {
300
+ type: 'text';
301
+ id: string;
302
+ text: string;
303
+ truncated?: boolean;
304
+ } | {
305
+ type: 'tool';
306
+ id: string;
307
+ tool: ToolCallView;
308
+ }
309
+ /** Record exists but has not loaded; shows a late-arrival entry instead of a fake result. */
310
+ | {
311
+ type: 'pending-record';
312
+ id: string;
313
+ label: string;
314
+ };
315
+ export interface ProcessCallView {
316
+ id: string;
317
+ /** 1-based call round. */
318
+ ordinal: number;
319
+ status: 'running' | 'completed' | 'interrupted' | 'failed';
320
+ elapsedMs?: number;
321
+ blocks: ProcessBlockView[];
322
+ }
323
+ export interface RunView {
324
+ id: string;
325
+ status: RunStatus;
326
+ phase?: RunPhase;
327
+ /** Overrides the default phase label. */
328
+ label?: string;
329
+ startedAt?: string;
330
+ elapsedMs?: number;
331
+ model?: string;
332
+ calls?: ProcessCallView[];
333
+ /** Some calls are not shown. */
334
+ truncated?: boolean;
335
+ syncStatus?: SyncStatus;
336
+ actionStatus?: ActionStatus;
337
+ receipt?: ActionReceipt;
338
+ toolCount?: number;
339
+ toolStatusCounts?: Partial<Record<ToolStatus, number>>;
340
+ artifacts?: ArtifactView[];
341
+ usage?: TokenUsageView;
342
+ error?: RecoveryView;
343
+ /** Run finished but local persistence is pending / failed. */
344
+ persistence?: 'saved' | 'saving' | 'failed' | 'unknown';
345
+ /** Tool calls in this run may have changed external state. */
346
+ sideEffects?: boolean;
347
+ }
348
+ //# sourceMappingURL=conversation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/contracts/conversation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=conversation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../src/contracts/conversation.ts"],"names":[],"mappings":""}