@tita-agent/dsh-data-table 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 (267) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +172 -2
  3. package/cordis.patch.yml +7 -0
  4. package/lib/client.js +16766 -0
  5. package/lib/contract-envelope.d.ts +91 -0
  6. package/lib/contract-envelope.js +106 -0
  7. package/lib/contract-layout.d.ts +130 -0
  8. package/lib/contract-layout.js +138 -0
  9. package/lib/contract-refs.d.ts +39 -0
  10. package/lib/contract-refs.js +9 -0
  11. package/lib/contract-version.d.ts +311 -0
  12. package/lib/contract-version.js +270 -0
  13. package/lib/contract-wire.d.ts +147 -0
  14. package/lib/contract-wire.js +99 -0
  15. package/lib/contracts.d.ts +12 -0
  16. package/lib/contracts.js +12 -0
  17. package/lib/types/audit.d.ts +42 -0
  18. package/lib/types/audit.js +39 -0
  19. package/lib/types/client/ProjectImportMenu.d.ts +30 -0
  20. package/lib/types/client/ProjectImportMenu.js +70 -0
  21. package/lib/types/client/SheetPanel.d.ts +33 -0
  22. package/lib/types/client/SheetPanel.js +1766 -0
  23. package/lib/types/client/SheetToggle.d.ts +18 -0
  24. package/lib/types/client/SheetToggle.js +26 -0
  25. package/lib/types/client/index.d.ts +15 -0
  26. package/lib/types/client/index.js +110 -0
  27. package/lib/types/client/persistence/changes.d.ts +15 -0
  28. package/lib/types/client/persistence/changes.js +51 -0
  29. package/lib/types/client/persistence/ids.d.ts +34 -0
  30. package/lib/types/client/persistence/ids.js +48 -0
  31. package/lib/types/client/persistence/merge.d.ts +35 -0
  32. package/lib/types/client/persistence/merge.js +362 -0
  33. package/lib/types/client/store.d.ts +61 -0
  34. package/lib/types/client/store.js +152 -0
  35. package/lib/types/client/surface-context.d.ts +27 -0
  36. package/lib/types/client/surface-context.js +104 -0
  37. package/lib/types/client/surface-control.d.ts +2 -0
  38. package/lib/types/client/surface-control.js +12 -0
  39. package/lib/types/client/transport/workbookApi.d.ts +159 -0
  40. package/lib/types/client/transport/workbookApi.js +246 -0
  41. package/lib/types/client/univer/StandaloneWorkbookPage.d.ts +5 -0
  42. package/lib/types/client/univer/StandaloneWorkbookPage.js +7 -0
  43. package/lib/types/client/univer/WorkbookCanvas.d.ts +40 -0
  44. package/lib/types/client/univer/WorkbookCanvas.js +87 -0
  45. package/lib/types/client/univer/WorkbookView.d.ts +3 -0
  46. package/lib/types/client/univer/WorkbookView.js +2 -0
  47. package/lib/types/client/univer/loader.d.ts +18 -0
  48. package/lib/types/client/univer/loader.js +81 -0
  49. package/lib/types/client/univer/standalone-entry.d.ts +1 -0
  50. package/lib/types/client/univer/standalone-entry.js +19 -0
  51. package/lib/types/client/versions/VersionChrome.d.ts +33 -0
  52. package/lib/types/client/versions/VersionChrome.js +21 -0
  53. package/lib/types/client/versions/inspect.d.ts +70 -0
  54. package/lib/types/client/versions/inspect.js +88 -0
  55. package/lib/types/client/versions/preview-decoration.d.ts +11 -0
  56. package/lib/types/client/versions/preview-decoration.js +54 -0
  57. package/lib/types/client/versions/records.d.ts +19 -0
  58. package/lib/types/client/versions/records.js +70 -0
  59. package/lib/types/client/workspace-host.d.ts +61 -0
  60. package/lib/types/client/workspace-host.js +124 -0
  61. package/lib/types/collaboration-hub.d.ts +31 -0
  62. package/lib/types/collaboration-hub.js +69 -0
  63. package/lib/types/contract/ids.d.ts +24 -0
  64. package/lib/types/contract/ids.js +46 -0
  65. package/lib/types/contract/mutations.d.ts +25 -0
  66. package/lib/types/contract/mutations.js +782 -0
  67. package/lib/types/contract/operations.d.ts +54 -0
  68. package/lib/types/contract/operations.js +203 -0
  69. package/lib/types/contract/snapshots.d.ts +176 -0
  70. package/lib/types/contract/snapshots.js +351 -0
  71. package/lib/types/contract/univer-api-catalog.d.ts +29 -0
  72. package/lib/types/contract/univer-api-catalog.js +264 -0
  73. package/lib/types/errors.d.ts +8 -0
  74. package/lib/types/errors.js +12 -0
  75. package/lib/types/http/assets-routes.d.ts +3 -0
  76. package/lib/types/http/assets-routes.js +169 -0
  77. package/lib/types/http/collaboration.d.ts +10 -0
  78. package/lib/types/http/collaboration.js +154 -0
  79. package/lib/types/http/history.d.ts +15 -0
  80. package/lib/types/http/history.js +134 -0
  81. package/lib/types/http/project-files.d.ts +79 -0
  82. package/lib/types/http/project-files.js +206 -0
  83. package/lib/types/http/project-scope.d.ts +50 -0
  84. package/lib/types/http/project-scope.js +52 -0
  85. package/lib/types/http/routes.d.ts +98 -0
  86. package/lib/types/http/routes.js +323 -0
  87. package/lib/types/http/standalone.d.ts +9 -0
  88. package/lib/types/http/standalone.js +31 -0
  89. package/lib/types/http/trunk.d.ts +10 -0
  90. package/lib/types/http/trunk.js +322 -0
  91. package/lib/types/http/worktree.d.ts +9 -0
  92. package/lib/types/http/worktree.js +145 -0
  93. package/lib/types/index.d.ts +18 -0
  94. package/lib/types/index.js +156 -0
  95. package/lib/types/invariant.d.ts +15 -0
  96. package/lib/types/invariant.js +15 -0
  97. package/lib/types/request-params.d.ts +21 -0
  98. package/lib/types/request-params.js +76 -0
  99. package/lib/types/store/paths.d.ts +68 -0
  100. package/lib/types/store/paths.js +148 -0
  101. package/lib/types/store/project.d.ts +88 -0
  102. package/lib/types/store/project.js +120 -0
  103. package/lib/types/store/read.d.ts +110 -0
  104. package/lib/types/store/read.js +404 -0
  105. package/lib/types/store/retention.d.ts +27 -0
  106. package/lib/types/store/retention.js +111 -0
  107. package/lib/types/store/write.d.ts +22 -0
  108. package/lib/types/store/write.js +210 -0
  109. package/lib/types/tools/arguments.d.ts +40 -0
  110. package/lib/types/tools/arguments.js +130 -0
  111. package/lib/types/tools/cells.d.ts +50 -0
  112. package/lib/types/tools/cells.js +298 -0
  113. package/lib/types/tools/index.d.ts +2 -0
  114. package/lib/types/tools/index.js +250 -0
  115. package/lib/types/tools/render.d.ts +47 -0
  116. package/lib/types/tools/render.js +290 -0
  117. package/lib/types/tools/univer-api.d.ts +18 -0
  118. package/lib/types/tools/univer-api.js +198 -0
  119. package/lib/types/tools/workbook-catalog.d.ts +3 -0
  120. package/lib/types/tools/workbook-catalog.js +83 -0
  121. package/lib/types/tools/workbook-edit.d.ts +192 -0
  122. package/lib/types/tools/workbook-edit.js +912 -0
  123. package/lib/types/tools/workbook-find.d.ts +11 -0
  124. package/lib/types/tools/workbook-find.js +89 -0
  125. package/lib/types/tools/workbook-history.d.ts +2 -0
  126. package/lib/types/tools/workbook-history.js +59 -0
  127. package/lib/types/tools/workbook-read.d.ts +21 -0
  128. package/lib/types/tools/workbook-read.js +204 -0
  129. package/lib/types/types.d.ts +377 -0
  130. package/lib/types/types.js +34 -0
  131. package/lib/types/univer/apply-operation.d.ts +14 -0
  132. package/lib/types/univer/apply-operation.js +398 -0
  133. package/lib/types/univer/chunk.d.ts +68 -0
  134. package/lib/types/univer/chunk.js +16 -0
  135. package/lib/types/univer/decoration.d.ts +34 -0
  136. package/lib/types/univer/decoration.js +88 -0
  137. package/lib/types/univer/diagnostics.d.ts +31 -0
  138. package/lib/types/univer/diagnostics.js +141 -0
  139. package/lib/types/univer/engine.d.ts +33 -0
  140. package/lib/types/univer/engine.js +338 -0
  141. package/lib/types/univer/entry.d.ts +8 -0
  142. package/lib/types/univer/entry.js +11 -0
  143. package/lib/types/univer/facade.d.ts +107 -0
  144. package/lib/types/univer/facade.js +1 -0
  145. package/lib/types/univer/fonts.d.ts +202 -0
  146. package/lib/types/univer/fonts.js +140 -0
  147. package/lib/types/univer/plugins/collaboration.d.ts +23 -0
  148. package/lib/types/univer/plugins/collaboration.js +47 -0
  149. package/lib/types/univer/plugins/export.d.ts +39 -0
  150. package/lib/types/univer/plugins/export.js +246 -0
  151. package/lib/types/univer/plugins/history.d.ts +24 -0
  152. package/lib/types/univer/plugins/history.js +50 -0
  153. package/lib/types/univer/plugins/version.d.ts +13 -0
  154. package/lib/types/univer/plugins/version.js +13 -0
  155. package/lib/types/version/diff.d.ts +36 -0
  156. package/lib/types/version/diff.js +156 -0
  157. package/lib/types/version/grouping.d.ts +7 -0
  158. package/lib/types/version/grouping.js +94 -0
  159. package/lib/types/version/records.d.ts +17 -0
  160. package/lib/types/version/records.js +102 -0
  161. package/lib/types/version/session.d.ts +36 -0
  162. package/lib/types/version/session.js +89 -0
  163. package/lib/types/version/summary.d.ts +24 -0
  164. package/lib/types/version/summary.js +111 -0
  165. package/lib/types/workbook-manager.d.ts +191 -0
  166. package/lib/types/workbook-manager.js +935 -0
  167. package/lib/types/xlsx-export-worker.d.ts +5 -0
  168. package/lib/types/xlsx-export-worker.js +24 -0
  169. package/lib/types/xlsx-export.d.ts +21 -0
  170. package/lib/types/xlsx-export.js +371 -0
  171. package/lib/types/xlsx-import-worker.d.ts +1 -0
  172. package/lib/types/xlsx-import-worker.js +19 -0
  173. package/lib/univer-client.js +690 -0
  174. package/lib/workbook-page.js +23826 -0
  175. package/lib/xlsx-export-worker.js +104 -0
  176. package/lib/xlsx-import-worker.js +46 -0
  177. package/package.json +106 -3
  178. package/src/audit.ts +58 -0
  179. package/src/client/ProjectImportMenu.tsx +100 -0
  180. package/src/client/SheetPanel.module.css +1578 -0
  181. package/src/client/SheetPanel.tsx +1934 -0
  182. package/src/client/SheetToggle.module.css +73 -0
  183. package/src/client/SheetToggle.tsx +65 -0
  184. package/src/client/contract.d.ts +19 -0
  185. package/src/client/index.ts +131 -0
  186. package/src/client/persistence/changes.ts +58 -0
  187. package/src/client/persistence/ids.ts +60 -0
  188. package/src/client/persistence/merge.ts +392 -0
  189. package/src/client/store.ts +188 -0
  190. package/src/client/surface-context.ts +123 -0
  191. package/src/client/surface-control.ts +13 -0
  192. package/src/client/transport/workbookApi.ts +355 -0
  193. package/src/client/univer/SheetView.module.css +110 -0
  194. package/src/client/univer/StandaloneWorkbookPage.module.css +8 -0
  195. package/src/client/univer/StandaloneWorkbookPage.tsx +15 -0
  196. package/src/client/univer/WorkbookCanvas.tsx +128 -0
  197. package/src/client/univer/WorkbookView.module.css +30 -0
  198. package/src/client/univer/WorkbookView.tsx +3 -0
  199. package/src/client/univer/loader.ts +90 -0
  200. package/src/client/univer/react-dom-client.d.ts +10 -0
  201. package/src/client/univer/standalone-entry.tsx +19 -0
  202. package/src/client/univer/standalone.css +12 -0
  203. package/src/client/univer/univer-locales.d.ts +89 -0
  204. package/src/client/univer/univer-modules.d.ts +26 -0
  205. package/src/client/versions/VersionChrome.tsx +114 -0
  206. package/src/client/versions/inspect.ts +138 -0
  207. package/src/client/versions/preview-decoration.ts +54 -0
  208. package/src/client/versions/records.ts +78 -0
  209. package/src/client/workspace-host.ts +147 -0
  210. package/src/collaboration-hub.ts +83 -0
  211. package/src/contract/ids.ts +50 -0
  212. package/src/contract/mutations.ts +791 -0
  213. package/src/contract/operations.ts +221 -0
  214. package/src/contract/snapshots.ts +383 -0
  215. package/src/contract/univer-api-catalog.ts +289 -0
  216. package/src/css-modules.d.ts +6 -0
  217. package/src/errors.ts +25 -0
  218. package/src/http/assets-routes.ts +177 -0
  219. package/src/http/collaboration.ts +144 -0
  220. package/src/http/history.ts +151 -0
  221. package/src/http/project-files.ts +227 -0
  222. package/src/http/project-scope.ts +77 -0
  223. package/src/http/routes.ts +364 -0
  224. package/src/http/standalone.ts +32 -0
  225. package/src/http/trunk.ts +322 -0
  226. package/src/http/worktree.ts +119 -0
  227. package/src/index.ts +165 -0
  228. package/src/invariant.ts +17 -0
  229. package/src/request-params.ts +92 -0
  230. package/src/store/paths.ts +165 -0
  231. package/src/store/project.ts +137 -0
  232. package/src/store/read.ts +454 -0
  233. package/src/store/retention.ts +106 -0
  234. package/src/store/write.ts +230 -0
  235. package/src/tools/arguments.ts +128 -0
  236. package/src/tools/cells.ts +298 -0
  237. package/src/tools/index.ts +274 -0
  238. package/src/tools/render.ts +301 -0
  239. package/src/tools/univer-api.ts +243 -0
  240. package/src/tools/workbook-catalog.ts +94 -0
  241. package/src/tools/workbook-edit.ts +987 -0
  242. package/src/tools/workbook-find.ts +80 -0
  243. package/src/tools/workbook-history.ts +63 -0
  244. package/src/tools/workbook-read.ts +210 -0
  245. package/src/types.ts +432 -0
  246. package/src/univer/apply-operation.ts +369 -0
  247. package/src/univer/chunk.ts +77 -0
  248. package/src/univer/decoration.ts +111 -0
  249. package/src/univer/diagnostics.ts +136 -0
  250. package/src/univer/engine.ts +370 -0
  251. package/src/univer/entry.ts +14 -0
  252. package/src/univer/facade.ts +91 -0
  253. package/src/univer/fonts.ts +148 -0
  254. package/src/univer/overrides.css +33 -0
  255. package/src/univer/plugins/collaboration.ts +47 -0
  256. package/src/univer/plugins/export.ts +236 -0
  257. package/src/univer/plugins/history.ts +49 -0
  258. package/src/univer/plugins/version.ts +13 -0
  259. package/src/version/diff.ts +169 -0
  260. package/src/version/grouping.ts +96 -0
  261. package/src/version/records.ts +113 -0
  262. package/src/version/session.ts +90 -0
  263. package/src/version/summary.ts +117 -0
  264. package/src/workbook-manager.ts +1111 -0
  265. package/src/xlsx-export-worker.ts +34 -0
  266. package/src/xlsx-export.ts +373 -0
  267. package/src/xlsx-import-worker.ts +30 -0
package/src/types.ts ADDED
@@ -0,0 +1,432 @@
1
+ /**
2
+ * Shared contracts for dsh-data-table: sheet data (agent ↔ renderer)
3
+ * and the workbook model (agent tools ↔ node half ↔ browser canvas).
4
+ * @module dsh-data-table/types
5
+ */
6
+
7
+ import type { LineageContext } from '#contracts'
8
+ import type { VersionKind } from '#contracts'
9
+
10
+ export type SheetColumnType = 'string' | 'number' | 'boolean' | 'date' | 'currency'
11
+
12
+ export interface SheetColumn {
13
+ /** Unique key (English identifier, mirrors the row field). */
14
+ key: string
15
+ /** Header label (Chinese copy is fine). */
16
+ label: string
17
+ type: SheetColumnType
18
+ }
19
+
20
+ export interface SheetMeta {
21
+ /** Data source description (e.g. SQL / file path). */
22
+ source?: string
23
+ /** Generating SQL — data lineage. */
24
+ query?: string
25
+ /** ISO timestamp. */
26
+ generatedAt?: string
27
+ /** User-facing notes. */
28
+ notes?: string
29
+ lineage?: LineageContext
30
+ }
31
+
32
+ /** Persisted schema for an Agent-managed sheet. */
33
+ export interface SheetSchema {
34
+ version: number
35
+ columns: SheetColumn[]
36
+ /** Number of data rows, excluding the header row. */
37
+ rowCount: number
38
+ updatedAt: string
39
+ }
40
+
41
+ export interface SheetData {
42
+ /** Sheet name (panel title). */
43
+ name: string
44
+ columns: SheetColumn[]
45
+ rows: Array<Record<string, unknown>>
46
+ meta?: SheetMeta
47
+ }
48
+
49
+ /** Row/column caps enforced by the host tool (documented in the tool schema). */
50
+ /** Univer is a UI projection, not an unlimited database. Keep local imports
51
+ * bounded at 100k rows; larger tables should use a columnar backend. */
52
+ export const SHEET_MAX_ROWS = 100000
53
+ /** Keep one large Agent append from monopolizing one Univer mutation frame. */
54
+ export const SHEET_MAX_APPEND_ROWS = 1000
55
+ /** Physical row indexes include the header row at index 0. */
56
+ export const SHEET_MAX_PHYSICAL_ROWS = SHEET_MAX_ROWS + 1
57
+ export const SHEET_MAX_COLUMNS = 50
58
+ export const SHEET_MAX_NAME = 64
59
+
60
+ /** Whether a parsed tool-argument value is a well-formed sheet. */
61
+ export function isSheetData(value: unknown): value is SheetData {
62
+ if (typeof value !== 'object' || value === null) return false
63
+ const sheet = value as Record<string, unknown>
64
+ if (typeof sheet.name !== 'string' || sheet.name.length === 0) return false
65
+ if (!Array.isArray(sheet.columns) || !Array.isArray(sheet.rows)) return false
66
+ return sheet.columns.every(column => {
67
+ if (typeof column !== 'object' || column === null) return false
68
+ const c = column as Record<string, unknown>
69
+ return typeof c.key === 'string' && typeof c.label === 'string'
70
+ && (c.type === 'string' || c.type === 'number' || c.type === 'boolean' || c.type === 'date' || c.type === 'currency')
71
+ })
72
+ }
73
+
74
+ /** Default workbook id (backward compatible with pre-workbook writes). */
75
+ export const DEFAULT_WORKBOOK = 'main'
76
+
77
+ /**
78
+ * One named workbook: an Univer-compatible snapshot on disk (the whole state,
79
+ * sheets included). The agent addresses workbooks across sessions by id; the
80
+ * browser mounts a residency instance from the current snapshot.
81
+ */
82
+ export interface WorkbookMeta {
83
+ id: string
84
+ name: string
85
+ /** Sheet ids in display order (Univer snapshot convention). */
86
+ sheetOrder: string[]
87
+ /** ISO timestamp of the last save. */
88
+ updatedAt: string
89
+ /** Monotonically increasing revision of the workbook. */
90
+ revision?: number
91
+ /** Revision represented by the persisted snapshot sidecar. */
92
+ snapshotRevision?: number
93
+ /** Append-only operations used by replay, browser projection and audit UI. */
94
+ operations?: WorkbookOperation[]
95
+ /** Durable agent proposals awaiting user confirmation. */
96
+ proposals?: WorkbookProposal[]
97
+ /** Last known checkpoints used by rollback. */
98
+ checkpoints?: WorkbookCheckpoint[]
99
+ /** Univer workbook snapshot (sheets → cellData etc.). */
100
+ snapshot: unknown
101
+ }
102
+
103
+ export type WorkbookActor = 'agent' | 'user'
104
+ /**
105
+ * Lifecycle of a user-visible Version. `temporary` is retained only so old
106
+ * persisted operation logs can still be read; new writes use `open`.
107
+ */
108
+ export type WorkbookVersionStatus = 'open' | 'final' | 'restored' | 'superseded' | 'temporary'
109
+
110
+ /** Ephemeral collaboration state. Presence is broadcast live but never bumps
111
+ * the workbook revision or enters the durable operation log. */
112
+ export type WorkbookPresenceKind = 'selection' | 'editing' | 'active-sheet'
113
+
114
+ export interface WorkbookPresencePayload {
115
+ kind: WorkbookPresenceKind
116
+ payload: Record<string, unknown>
117
+ }
118
+
119
+ /** Current Univer range plus a bounded value preview for composer context. */
120
+ export interface WorkbookSelectionRange {
121
+ sheetId: string
122
+ sheetName: string
123
+ startRow: number
124
+ startColumn: number
125
+ endRow: number
126
+ endColumn: number
127
+ values: readonly (readonly unknown[])[]
128
+ }
129
+
130
+ /** Coordinates the resident canvas can focus from a bridge reference. */
131
+ export interface WorkbookFocusRange {
132
+ sheetId: string
133
+ startRow: number
134
+ startColumn: number
135
+ endRow: number
136
+ endColumn: number
137
+ }
138
+
139
+ export interface WorkbookPresence {
140
+ workbookId: string
141
+ sessionId: string
142
+ actor: WorkbookActor
143
+ kind: WorkbookPresenceKind
144
+ payload: Record<string, unknown>
145
+ timestamp: string
146
+ }
147
+
148
+ /** Isolated review workspace lifecycle. The trunk workbook is never mutated
149
+ * until a worktree is explicitly merged. */
150
+ export type WorkbookWorktreeStatus = 'draft' | 'ready' | 'merged' | 'discarded'
151
+
152
+ export type WorkbookOperationType =
153
+ | 'update_cells'
154
+ | 'clear_range'
155
+ | 'delete_cells'
156
+ | 'insert_rows'
157
+ | 'delete_rows'
158
+ | 'insert_columns'
159
+ | 'delete_columns'
160
+ | 'create_sheet'
161
+ | 'delete_sheet'
162
+ | 'rename_sheet'
163
+ | 'append_rows'
164
+ | 'format_cells'
165
+ | 'merge_cells'
166
+ | 'unmerge_cells'
167
+ | 'freeze_panes'
168
+ | 'set_column_width'
169
+ | 'set_row_height'
170
+ | 'sort_range'
171
+ | 'set_hyperlink'
172
+ | 'remove_hyperlink'
173
+ /** Legacy-only operation retained so existing persisted histories can replay. */
174
+ | 'remove_duplicates'
175
+ | 'batch'
176
+ | 'snapshot_replace'
177
+
178
+ /** How a deleted cell range affects neighboring cells. */
179
+ export type WorkbookCellDeleteShift = 'clear' | 'left' | 'up'
180
+
181
+ export type WorkbookCellValue = string | number | boolean | null
182
+
183
+ export interface WorkbookCellUpdate {
184
+ row: number
185
+ column: number
186
+ value: WorkbookCellValue
187
+ /** Optional Univer formula, without the leading display-only metadata. */
188
+ formula?: string
189
+ }
190
+
191
+ /** A browser-side edit that can be persisted without serializing the workbook. */
192
+ export interface WorkbookLocalChange {
193
+ type: 'update_cells'
194
+ payload: {
195
+ sheetId: string
196
+ cells: WorkbookCellUpdate[]
197
+ }
198
+ }
199
+
200
+ export interface WorkbookRange {
201
+ startRow: number
202
+ startColumn: number
203
+ endRow: number
204
+ endColumn: number
205
+ }
206
+
207
+ export interface WorkbookOperationPayload {
208
+ sheetId?: string
209
+ sheetName?: string
210
+ cells?: WorkbookCellUpdate[]
211
+ range?: WorkbookRange
212
+ count?: number
213
+ shift?: WorkbookCellDeleteShift
214
+ name?: string
215
+ columns?: SheetColumn[]
216
+ rows?: Array<Record<string, unknown>>
217
+ /** Source-backed import is normalized to append_rows before persistence. */
218
+ sourcePath?: string
219
+ sourceFormat?: string
220
+ meta?: SheetMeta
221
+ schema?: SheetSchema
222
+ style?: WorkbookCellStyle
223
+ merge?: WorkbookRange
224
+ freeze?: { rows?: number; columns?: number }
225
+ size?: number
226
+ sort?: { column: number; direction?: 'asc' | 'desc' }
227
+ /** Hyperlink applied to the top-left cell of the range. */
228
+ url?: string
229
+ label?: string
230
+ /**
231
+ * Row that holds the column headers for `append_rows`; data starts on the row
232
+ * below it. Defaults to 0, which is the only behaviour the tool had before the
233
+ * field existed, so an omitted value keeps every existing caller intact.
234
+ * Report sheets keep their title block above the real header row, and this is
235
+ * what lets them be appended to instead of forcing a rewrite through
236
+ * `update_cells`.
237
+ */
238
+ headerRowIndex?: number
239
+ /**
240
+ * When false, `append_rows` skips comparing existing header labels against the
241
+ * incoming column labels. Structure still has to be one column per column —
242
+ * this only relaxes the text match. Defaults to true.
243
+ */
244
+ verifyHeader?: boolean
245
+ /** Legacy-only remove-duplicates payload fields; no longer exposed as tools/UI. */
246
+ dedupeColumns?: number[]
247
+ hasHeader?: boolean
248
+ keep?: 'first' | 'last'
249
+ /** Server-computed original row indexes removed by remove_duplicates. */
250
+ removedRows?: number[]
251
+ operations?: Array<{ type: WorkbookOperationType; payload: WorkbookOperationPayload }>
252
+ snapshot?: unknown
253
+ }
254
+
255
+ /** A small, JSON-safe subset of Univer cell styles used by Agent tools. */
256
+ export interface WorkbookCellStyle {
257
+ ff?: string
258
+ fs?: number
259
+ bl?: boolean
260
+ it?: boolean
261
+ ul?: boolean
262
+ st?: boolean
263
+ bg?: string
264
+ cl?: string
265
+ ht?: number
266
+ vt?: number
267
+ tr?: number
268
+ n?: string
269
+ }
270
+
271
+ /** A durable, replayable mutation shared by Agent and user edits. */
272
+ export interface WorkbookOperation {
273
+ opId: string
274
+ workbookId: string
275
+ revision: number
276
+ /** Logical parent version. Normally revision - 1; rollback versions point
277
+ * back to the selected target while retaining their global revision number. */
278
+ parentRevision?: number
279
+ /** Revision observed by the author before this operation was submitted. */
280
+ baseRevision?: number
281
+ /** Stable logical Version id. Multiple physical revisions may fill one
282
+ * open user Version until it reaches the ten-step target. */
283
+ versionId?: string
284
+ /** Open Versions accept additional user steps; final Versions do not. */
285
+ versionStatus?: WorkbookVersionStatus
286
+ /** User-facing semantic description of this Version, supplied by the Host. */
287
+ versionSummary?: string
288
+ /**
289
+ * v3 Version tier (PRD §4). Absent on operations written before v3; the
290
+ * projection then derives it from summary/actor, so old logs still classify.
291
+ */
292
+ versionKind?: VersionKind
293
+ /** Optional Agent intent retained for audit without changing Step payloads. */
294
+ versionIntent?: string
295
+ /** Correlates multiple semantic Versions emitted by one Agent run. */
296
+ agentRunId?: string
297
+ /** Cross-plugin task/subtask/run lineage for this durable mutation. */
298
+ lineage?: LineageContext
299
+ /** Source revision selected by a restore Version. */
300
+ restoredFromRevision?: number
301
+ actor: WorkbookActor
302
+ type: WorkbookOperationType
303
+ timestamp: string
304
+ payload: WorkbookOperationPayload
305
+ /**
306
+ * Derived, human summary of this Step (v3.1). Set by the server when the
307
+ * caller's operation is generic — a whole-snapshot save describes itself as
308
+ * `替换 workbook 快照`, which said nothing about *what* changed.
309
+ */
310
+ stepSummary?: string
311
+ /** Stable request digest used to detect accidental opId reuse with new data. */
312
+ requestHash?: string
313
+ }
314
+
315
+ /** One replayable atomic step inside a version. */
316
+ export interface WorkbookHistoryStep {
317
+ index: number
318
+ opId: string
319
+ type: WorkbookOperationType
320
+ summary: string
321
+ /**
322
+ * The revision this Step left behind — the state *after* it.
323
+ *
324
+ * Optional because a Step built from a history entry that predates the field
325
+ * has no revision of its own; a comparison then falls back to the Version's.
326
+ * Carrying it is what lets a Step be a comparison baseline and not only a
327
+ * thing to look at.
328
+ */
329
+ revision?: number
330
+ }
331
+
332
+ /** Version-first history entry. Steps are available to the client but can be
333
+ * collapsed in the default history view. */
334
+ export interface WorkbookHistoryVersion {
335
+ versionId: string
336
+ /** Display number (`V1`, `V2`) assigned in creation order; never reused. */
337
+ number: number
338
+ startRevision: number
339
+ revision: number
340
+ parentRevision: number
341
+ actor: WorkbookActor
342
+ timestamp: string
343
+ summary: string
344
+ /** v3 tier: `named` for a manual save / Agent call / restore, else `auto`. */
345
+ kind: VersionKind
346
+ intent?: string
347
+ agentRunId?: string
348
+ lineage?: LineageContext
349
+ restoredFromRevision?: number
350
+ /** Display number of the Version a restore reinstated (v3 origin label). */
351
+ restoredFromNumber?: number
352
+ stepCount: number
353
+ steps: WorkbookHistoryStep[]
354
+ canPreview: boolean
355
+ status: WorkbookVersionStatus
356
+ branch: 'main' | 'superseded'
357
+ }
358
+
359
+ /** Durable isolated workbook workspace used for reviewable changes. */
360
+ export interface WorkbookWorktree {
361
+ id: string
362
+ workbookId: string
363
+ /** Opaque browser/agent session that owns this worktree. */
364
+ ownerSessionId: string
365
+ name: string
366
+ baseRevision: number
367
+ revision: number
368
+ status: WorkbookWorktreeStatus
369
+ createdAt: string
370
+ updatedAt: string
371
+ snapshot: unknown
372
+ operations: WorkbookOperation[]
373
+ }
374
+
375
+ /** Payload-light worktree entry for catalog and UI lists. */
376
+ export interface WorkbookWorktreeSummary {
377
+ id: string
378
+ workbookId: string
379
+ ownerSessionId: string
380
+ name: string
381
+ baseRevision: number
382
+ revision: number
383
+ status: WorkbookWorktreeStatus
384
+ createdAt: string
385
+ updatedAt: string
386
+ }
387
+
388
+ export type WorkbookProposalStatus = 'pending' | 'committed' | 'rejected' | 'expired'
389
+
390
+ export interface WorkbookProposal {
391
+ id: string
392
+ workbookId: string
393
+ actor: WorkbookActor
394
+ baseRevision: number
395
+ createdAt: string
396
+ updatedAt: string
397
+ status: WorkbookProposalStatus
398
+ summary: string
399
+ changes: WorkbookChange[]
400
+ snapshot: unknown
401
+ committedRevision?: number
402
+ }
403
+
404
+ export interface WorkbookChange {
405
+ kind: 'cell' | 'sheet' | 'structure'
406
+ sheetId?: string
407
+ sheetName?: string
408
+ row?: number
409
+ column?: number
410
+ before?: unknown
411
+ after?: unknown
412
+ /** The value is unchanged on both sides; only the cell's formatting moved. */
413
+ styleOnly?: boolean
414
+ description?: string
415
+ }
416
+
417
+ export interface WorkbookCheckpoint {
418
+ revision: number
419
+ actor: WorkbookActor
420
+ timestamp: string
421
+ snapshot: unknown
422
+ }
423
+
424
+ /** Tool result for workbook listing/open. */
425
+ export interface WorkbookSummary {
426
+ id: string
427
+ name: string
428
+ sheets: Array<{ id: string; name: string; schema?: SheetSchema }>
429
+ updatedAt: string
430
+ /** Current trunk revision; lets `workbook_catalog(action=list)` feed `baseRevision` without a second read. */
431
+ revision?: number
432
+ }