@deepseek-ai/dsh-api-workspace-files 0.1.6-alpha.1 → 0.1.6-alpha.2

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 CHANGED
@@ -2,5 +2,5 @@
2
2
  # side as of the last confirmed-consistent state. Both languages carry equal authority;
3
3
  # after editing either side, bring the other along and re-record with:
4
4
  # pnpm run verify-translation-pairing --write packages/api/workspace-files/README.md
5
- README.md: f0f9cb1532fa65954415e10a5e248b775cdff83a
6
- README.zh.md: 8a510fa5a599037364095e221e7ecf6a8c7bb94a
5
+ README.md: f7e40138d8b790f993e3cc8a15d4216ca966cabb
6
+ README.zh.md: 04548bed7ffc1698e9a05ffbc93157ea07d6f932
package/README.md CHANGED
@@ -94,6 +94,8 @@ One supervised `changes` stream serves every followed file in a Session. Followe
94
94
 
95
95
  Reads through `ctx.fs` use the backend's read authority; the sandboxing backend fences writes and edits, not reads. A Typert lookup derives `WorkspaceFileScope` from a live Session header or the persistence service's header-only `stat`, so cold subagent Sessions need neither Agent activation nor event-body reads. The service adds regular-file checks and bounded transfer, while workspace containment belongs only to directory listing and change observation. A page is cut from `streamText`, which decodes and rejects non-UTF-8 chunk by chunk: the cutter counts lines before the window without keeping them, admits each in-window segment against the byte cap before buffering it, and returns at the first character past the window. One `stat` before the stream names the version and size the page reports.
96
96
 
97
+ Complete-file reads delegate size enforcement to `fs.readBytes` and encode the returned bytes as base64 for Remote responses.
98
+
97
99
  ### Source map
98
100
 
99
101
  | File | Role |
package/README.zh.md CHANGED
@@ -94,6 +94,8 @@ kind: "package-reference"
94
94
 
95
95
  经 `ctx.fs` 的读取使用后端的读取权限;沙箱后端限制写与编辑,而不限制读取。Typert lookup 从 live Session header 或持久层的 header-only `stat` 导出 `WorkspaceFileScope`,所以 cold subagent Session 不需要激活 Agent 或读取事件正文。本服务增加普通文件检查与有界传输,工作区包含要求只属于目录列举与变更观察。页从 `streamText` 切出,后者逐块解码并拒绝非 UTF-8:切页器对窗口之前的行只计数不保留,对窗口内的每个片段先按字节上限验收再缓冲,并在窗口之后的第一个字符处返回。流之前的一次 `stat` 给出页所报告的版本与大小。
96
96
 
97
+ 完整文件读取将大小上限检查交给 `fs.readBytes`,并将返回的字节编码为 base64,供 Remote 响应使用。
98
+
97
99
  ### 源码地图
98
100
 
99
101
  | 文件 | 职责 |
package/lib/index.js CHANGED
@@ -443,17 +443,12 @@ let WorkspaceFiles = (() => {
443
443
  async readAll(workspaceFileScope, path, signal) {
444
444
  const { target, info } = await this.locateFile(workspaceFileScope, path, signal);
445
445
  const limit = this.config.maxFileBytes;
446
- if (info.size !== void 0 && info.size > limit) throw new RemoteError("workspace-file/too-large", `"${path}" exceeds the ${limit} byte full-file cap`, {
447
- path,
448
- limit
449
- });
450
- const data = await this.ctx.fs.readByteRange(target, {
451
- offset: 0,
452
- length: limit + 1
453
- }, signal);
454
- if (data.length > limit) throw new RemoteError("workspace-file/too-large", `"${path}" exceeds the ${limit} byte full-file cap`, {
455
- path,
456
- limit
446
+ const data = await this.ctx.fs.readBytes(target, signal, limit).catch((cause) => {
447
+ if (typeof cause === "object" && cause !== null && "code" in cause && cause.code === "FS_TOO_LARGE") throw new RemoteError("workspace-file/too-large", `"${path}" exceeds the ${limit} byte full-file cap`, {
448
+ path,
449
+ limit
450
+ }, { cause });
451
+ throw cause;
457
452
  });
458
453
  return {
459
454
  ...this.statOf(target, info),
@@ -1,8 +1,10 @@
1
1
  /* Generated by @deepseek-ai/dsh-typert-generator from FaceModel — do not edit. */
2
2
  import { z } from 'zod'
3
3
 
4
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_changes_parameter_0$schema = z.intersection(z.string(), z.unknown())
5
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_changes_result$schema = z.union([z.object({
4
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_changes_parameter_0$schema$value
5
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_changes_parameter_0$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_changes_parameter_0$schema$value ??= z.intersection(z.string(), z.unknown()))
6
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_changes_result$schema$value
7
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_changes_result$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_changes_result$schema$value ??= z.union([z.object({
6
8
  'kind': z.literal("ready").readonly(),
7
9
  }), z.object({
8
10
  'kind': z.literal("change").readonly(),
@@ -13,10 +15,13 @@ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_changes_result$schema
13
15
  'absolutePath': z.string().readonly(),
14
16
  'absent': z.literal(true).readonly(),
15
17
  })]).readonly(),
16
- })])
17
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_list_parameter_0$schema = z.intersection(z.string(), z.unknown())
18
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_list_parameter_1$schema = z.string()
19
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_list_result$schema = z.object({
18
+ })]))
19
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_list_parameter_0$schema$value
20
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_list_parameter_0$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_list_parameter_0$schema$value ??= z.intersection(z.string(), z.unknown()))
21
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_list_parameter_1$schema$value
22
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_list_parameter_1$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_list_parameter_1$schema$value ??= z.string())
23
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_list_result$schema$value
24
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_list_result$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_list_result$schema$value ??= z.object({
20
25
  'path': z.string().readonly(),
21
26
  'entries': z.array(z.object({
22
27
  'name': z.string().readonly(),
@@ -24,14 +29,18 @@ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_list_result$schema = z
24
29
  'size': z.number().readonly().optional(),
25
30
  })).readonly(),
26
31
  'truncated': z.boolean().readonly(),
27
- })
28
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_parameter_0$schema = z.intersection(z.string(), z.unknown())
29
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_parameter_1$schema = z.string()
30
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_parameter_2$schema = z.object({
32
+ }))
33
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_parameter_0$schema$value
34
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_parameter_0$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_parameter_0$schema$value ??= z.intersection(z.string(), z.unknown()))
35
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_parameter_1$schema$value
36
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_parameter_1$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_parameter_1$schema$value ??= z.string())
37
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_parameter_2$schema$value
38
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_parameter_2$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_parameter_2$schema$value ??= z.object({
31
39
  'offset': z.number().readonly().optional(),
32
40
  'limit': z.number().readonly().optional(),
33
- })
34
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_result$schema = z.object({
41
+ }))
42
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_result$schema$value
43
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_result$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_result$schema$value ??= z.object({
35
44
  'offset': z.number().readonly(),
36
45
  'text': z.string().readonly(),
37
46
  'lines': z.number().readonly(),
@@ -39,49 +48,63 @@ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_result$schema = z
39
48
  'absolutePath': z.string().readonly(),
40
49
  'version': z.string().readonly(),
41
50
  'bytes': z.number().readonly().optional(),
42
- })
43
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readAll_parameter_0$schema = z.intersection(z.string(), z.unknown())
44
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readAll_parameter_1$schema = z.string()
45
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readAll_result$schema = z.object({
51
+ }))
52
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readAll_parameter_0$schema$value
53
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readAll_parameter_0$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_readAll_parameter_0$schema$value ??= z.intersection(z.string(), z.unknown()))
54
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readAll_parameter_1$schema$value
55
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readAll_parameter_1$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_readAll_parameter_1$schema$value ??= z.string())
56
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readAll_result$schema$value
57
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readAll_result$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_readAll_result$schema$value ??= z.object({
46
58
  'offset': z.number().readonly(),
47
59
  'data': z.string().readonly(),
48
60
  'eof': z.boolean().readonly(),
49
61
  'absolutePath': z.string().readonly(),
50
62
  'version': z.string().readonly(),
51
63
  'bytes': z.number().readonly().optional(),
52
- })
53
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_parameter_0$schema = z.intersection(z.string(), z.unknown())
54
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_parameter_1$schema = z.string()
55
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_parameter_2$schema = z.object({
64
+ }))
65
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_parameter_0$schema$value
66
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_parameter_0$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_parameter_0$schema$value ??= z.intersection(z.string(), z.unknown()))
67
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_parameter_1$schema$value
68
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_parameter_1$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_parameter_1$schema$value ??= z.string())
69
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_parameter_2$schema$value
70
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_parameter_2$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_parameter_2$schema$value ??= z.object({
56
71
  'offset': z.number().readonly().optional(),
57
72
  'length': z.number().readonly().optional(),
58
- })
59
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_result$schema = z.object({
73
+ }))
74
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_result$schema$value
75
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_result$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_result$schema$value ??= z.object({
60
76
  'offset': z.number().readonly(),
61
77
  'data': z.string().readonly(),
62
78
  'eof': z.boolean().readonly(),
63
79
  'absolutePath': z.string().readonly(),
64
80
  'version': z.string().readonly(),
65
81
  'bytes': z.number().readonly().optional(),
66
- })
67
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_parameter_0$schema = z.intersection(z.string(), z.unknown())
68
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_parameter_1$schema = z.string()
69
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_parameter_2$schema = z.string()
70
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_result$schema = z.object({
82
+ }))
83
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_parameter_0$schema$value
84
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_parameter_0$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_parameter_0$schema$value ??= z.intersection(z.string(), z.unknown()))
85
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_parameter_1$schema$value
86
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_parameter_1$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_parameter_1$schema$value ??= z.string())
87
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_parameter_2$schema$value
88
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_parameter_2$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_parameter_2$schema$value ??= z.string())
89
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_result$schema$value
90
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_result$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_result$schema$value ??= z.object({
71
91
  'offset': z.number().readonly(),
72
92
  'data': z.string().readonly(),
73
93
  'eof': z.boolean().readonly(),
74
94
  'absolutePath': z.string().readonly(),
75
95
  'version': z.string().readonly(),
76
96
  'bytes': z.number().readonly().optional(),
77
- })
78
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_stat_parameter_0$schema = z.intersection(z.string(), z.unknown())
79
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_stat_parameter_1$schema = z.string()
80
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_stat_result$schema = z.object({
97
+ }))
98
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_stat_parameter_0$schema$value
99
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_stat_parameter_0$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_stat_parameter_0$schema$value ??= z.intersection(z.string(), z.unknown()))
100
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_stat_parameter_1$schema$value
101
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_stat_parameter_1$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_stat_parameter_1$schema$value ??= z.string())
102
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_stat_result$schema$value
103
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_stat_result$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_stat_result$schema$value ??= z.object({
81
104
  'absolutePath': z.string().readonly(),
82
105
  'version': z.string().readonly(),
83
106
  'bytes': z.number().readonly().optional(),
84
- })
107
+ }))
85
108
 
86
109
  export const TYPERT = {
87
110
  package: '@deepseek-ai/dsh-api-workspace-files',
@@ -105,7 +128,7 @@ export const TYPERT = {
105
128
  codec: {
106
129
  mode: 'strict',
107
130
  typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
108
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_changes_parameter_0$schema,
131
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_changes_parameter_0$schema,
109
132
  },
110
133
  },
111
134
  ],
@@ -113,9 +136,9 @@ export const TYPERT = {
113
136
  result: {
114
137
  mode: 'strict',
115
138
  typeSymbol: '@deepseek-ai/dsh-api-workspace-files/types#WorkspaceFileWatchFrame',
116
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_changes_result$schema,
139
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_changes_result$schema,
117
140
  },
118
- sourceLocation: {"file":"packages/api/workspace-files/src/index.ts","line":365,"column":3},
141
+ sourceLocation: {"file":"packages/api/workspace-files/src/index.ts","line":364,"column":3},
119
142
  },
120
143
  {
121
144
  id: '@deepseek-ai/dsh-api-workspace-files#workspaceFiles/list',
@@ -132,7 +155,7 @@ export const TYPERT = {
132
155
  codec: {
133
156
  mode: 'strict',
134
157
  typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
135
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_list_parameter_0$schema,
158
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_list_parameter_0$schema,
136
159
  },
137
160
  },
138
161
  {
@@ -142,7 +165,7 @@ export const TYPERT = {
142
165
  codec: {
143
166
  mode: 'strict',
144
167
  typeSymbol: '@deepseek-ai/dsh-api-workspace-files#workspaceFiles/list:path',
145
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_list_parameter_1$schema,
168
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_list_parameter_1$schema,
146
169
  },
147
170
  },
148
171
  ],
@@ -150,9 +173,9 @@ export const TYPERT = {
150
173
  result: {
151
174
  mode: 'strict',
152
175
  typeSymbol: '@deepseek-ai/dsh-api-workspace-files/types#WorkspaceDirectoryListing',
153
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_list_result$schema,
176
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_list_result$schema,
154
177
  },
155
- sourceLocation: {"file":"packages/api/workspace-files/src/index.ts","line":337,"column":9},
178
+ sourceLocation: {"file":"packages/api/workspace-files/src/index.ts","line":336,"column":9},
156
179
  },
157
180
  {
158
181
  id: '@deepseek-ai/dsh-api-workspace-files#workspaceFiles/read',
@@ -169,7 +192,7 @@ export const TYPERT = {
169
192
  codec: {
170
193
  mode: 'strict',
171
194
  typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
172
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_parameter_0$schema,
195
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_parameter_0$schema,
173
196
  },
174
197
  },
175
198
  {
@@ -179,7 +202,7 @@ export const TYPERT = {
179
202
  codec: {
180
203
  mode: 'strict',
181
204
  typeSymbol: '@deepseek-ai/dsh-api-workspace-files#workspaceFiles/read:path',
182
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_parameter_1$schema,
205
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_parameter_1$schema,
183
206
  },
184
207
  },
185
208
  {
@@ -189,7 +212,7 @@ export const TYPERT = {
189
212
  codec: {
190
213
  mode: 'strict',
191
214
  typeSymbol: '@deepseek-ai/dsh-api-workspace-files/types#WorkspaceFileRange',
192
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_parameter_2$schema,
215
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_parameter_2$schema,
193
216
  },
194
217
  },
195
218
  ],
@@ -197,7 +220,7 @@ export const TYPERT = {
197
220
  result: {
198
221
  mode: 'strict',
199
222
  typeSymbol: '@deepseek-ai/dsh-api-workspace-files/types#WorkspaceFileText',
200
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_result$schema,
223
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_result$schema,
201
224
  },
202
225
  sourceLocation: {"file":"packages/api/workspace-files/src/index.ts","line":232,"column":9},
203
226
  },
@@ -216,7 +239,7 @@ export const TYPERT = {
216
239
  codec: {
217
240
  mode: 'strict',
218
241
  typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
219
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readAll_parameter_0$schema,
242
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readAll_parameter_0$schema,
220
243
  },
221
244
  },
222
245
  {
@@ -226,7 +249,7 @@ export const TYPERT = {
226
249
  codec: {
227
250
  mode: 'strict',
228
251
  typeSymbol: '@deepseek-ai/dsh-api-workspace-files#workspaceFiles/readAll:path',
229
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readAll_parameter_1$schema,
252
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readAll_parameter_1$schema,
230
253
  },
231
254
  },
232
255
  ],
@@ -234,7 +257,7 @@ export const TYPERT = {
234
257
  result: {
235
258
  mode: 'strict',
236
259
  typeSymbol: '@deepseek-ai/dsh-api-workspace-files/types#WorkspaceFileBytes',
237
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readAll_result$schema,
260
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readAll_result$schema,
238
261
  },
239
262
  sourceLocation: {"file":"packages/api/workspace-files/src/index.ts","line":278,"column":9},
240
263
  },
@@ -253,7 +276,7 @@ export const TYPERT = {
253
276
  codec: {
254
277
  mode: 'strict',
255
278
  typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
256
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_parameter_0$schema,
279
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_parameter_0$schema,
257
280
  },
258
281
  },
259
282
  {
@@ -263,7 +286,7 @@ export const TYPERT = {
263
286
  codec: {
264
287
  mode: 'strict',
265
288
  typeSymbol: '@deepseek-ai/dsh-api-workspace-files#workspaceFiles/readBytes:path',
266
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_parameter_1$schema,
289
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_parameter_1$schema,
267
290
  },
268
291
  },
269
292
  {
@@ -273,7 +296,7 @@ export const TYPERT = {
273
296
  codec: {
274
297
  mode: 'strict',
275
298
  typeSymbol: '@deepseek-ai/dsh-api-workspace-files/types#WorkspaceByteRange',
276
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_parameter_2$schema,
299
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_parameter_2$schema,
277
300
  },
278
301
  },
279
302
  ],
@@ -281,7 +304,7 @@ export const TYPERT = {
281
304
  result: {
282
305
  mode: 'strict',
283
306
  typeSymbol: '@deepseek-ai/dsh-api-workspace-files/types#WorkspaceFileBytes',
284
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_result$schema,
307
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_result$schema,
285
308
  },
286
309
  sourceLocation: {"file":"packages/api/workspace-files/src/index.ts","line":257,"column":9},
287
310
  },
@@ -300,7 +323,7 @@ export const TYPERT = {
300
323
  codec: {
301
324
  mode: 'strict',
302
325
  typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
303
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_parameter_0$schema,
326
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_parameter_0$schema,
304
327
  },
305
328
  },
306
329
  {
@@ -310,7 +333,7 @@ export const TYPERT = {
310
333
  codec: {
311
334
  mode: 'strict',
312
335
  typeSymbol: '@deepseek-ai/dsh-api-workspace-files#workspaceFiles/readRelated:path',
313
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_parameter_1$schema,
336
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_parameter_1$schema,
314
337
  },
315
338
  },
316
339
  {
@@ -320,7 +343,7 @@ export const TYPERT = {
320
343
  codec: {
321
344
  mode: 'strict',
322
345
  typeSymbol: '@deepseek-ai/dsh-api-workspace-files#workspaceFiles/readRelated:relativePath',
323
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_parameter_2$schema,
346
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_parameter_2$schema,
324
347
  },
325
348
  },
326
349
  ],
@@ -328,9 +351,9 @@ export const TYPERT = {
328
351
  result: {
329
352
  mode: 'strict',
330
353
  typeSymbol: '@deepseek-ai/dsh-api-workspace-files/types#WorkspaceFileBytes',
331
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_result$schema,
354
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_result$schema,
332
355
  },
333
- sourceLocation: {"file":"packages/api/workspace-files/src/index.ts","line":300,"column":9},
356
+ sourceLocation: {"file":"packages/api/workspace-files/src/index.ts","line":299,"column":9},
334
357
  },
335
358
  {
336
359
  id: '@deepseek-ai/dsh-api-workspace-files#workspaceFiles/stat',
@@ -347,7 +370,7 @@ export const TYPERT = {
347
370
  codec: {
348
371
  mode: 'strict',
349
372
  typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
350
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_stat_parameter_0$schema,
373
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_stat_parameter_0$schema,
351
374
  },
352
375
  },
353
376
  {
@@ -357,7 +380,7 @@ export const TYPERT = {
357
380
  codec: {
358
381
  mode: 'strict',
359
382
  typeSymbol: '@deepseek-ai/dsh-api-workspace-files#workspaceFiles/stat:path',
360
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_stat_parameter_1$schema,
383
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_stat_parameter_1$schema,
361
384
  },
362
385
  },
363
386
  ],
@@ -365,9 +388,9 @@ export const TYPERT = {
365
388
  result: {
366
389
  mode: 'strict',
367
390
  typeSymbol: '@deepseek-ai/dsh-api-workspace-files/types#WorkspaceFileStat',
368
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_stat_result$schema,
391
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_stat_result$schema,
369
392
  },
370
- sourceLocation: {"file":"packages/api/workspace-files/src/index.ts","line":324,"column":9},
393
+ sourceLocation: {"file":"packages/api/workspace-files/src/index.ts","line":323,"column":9},
371
394
  },
372
395
  ],
373
396
  model: {
@@ -1,8 +1,10 @@
1
1
  /* Generated by @deepseek-ai/dsh-typert-generator from the Host FaceModel — do not edit. */
2
2
  import { z } from 'zod'
3
3
 
4
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_changes_parameter_0$schema = z.intersection(z.string(), z.unknown())
5
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_changes_result$schema = z.union([z.object({
4
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_changes_parameter_0$schema$value
5
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_changes_parameter_0$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_changes_parameter_0$schema$value ??= z.intersection(z.string(), z.unknown()))
6
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_changes_result$schema$value
7
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_changes_result$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_changes_result$schema$value ??= z.union([z.object({
6
8
  'kind': z.literal("ready").readonly(),
7
9
  }), z.object({
8
10
  'kind': z.literal("change").readonly(),
@@ -13,10 +15,13 @@ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_changes_result$schema
13
15
  'absolutePath': z.string().readonly(),
14
16
  'absent': z.literal(true).readonly(),
15
17
  })]).readonly(),
16
- })])
17
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_list_parameter_0$schema = z.intersection(z.string(), z.unknown())
18
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_list_parameter_1$schema = z.string()
19
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_list_result$schema = z.object({
18
+ })]))
19
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_list_parameter_0$schema$value
20
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_list_parameter_0$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_list_parameter_0$schema$value ??= z.intersection(z.string(), z.unknown()))
21
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_list_parameter_1$schema$value
22
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_list_parameter_1$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_list_parameter_1$schema$value ??= z.string())
23
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_list_result$schema$value
24
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_list_result$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_list_result$schema$value ??= z.object({
20
25
  'path': z.string().readonly(),
21
26
  'entries': z.array(z.object({
22
27
  'name': z.string().readonly(),
@@ -24,14 +29,18 @@ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_list_result$schema = z
24
29
  'size': z.number().readonly().optional(),
25
30
  })).readonly(),
26
31
  'truncated': z.boolean().readonly(),
27
- })
28
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_parameter_0$schema = z.intersection(z.string(), z.unknown())
29
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_parameter_1$schema = z.string()
30
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_parameter_2$schema = z.object({
32
+ }))
33
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_parameter_0$schema$value
34
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_parameter_0$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_parameter_0$schema$value ??= z.intersection(z.string(), z.unknown()))
35
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_parameter_1$schema$value
36
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_parameter_1$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_parameter_1$schema$value ??= z.string())
37
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_parameter_2$schema$value
38
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_parameter_2$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_parameter_2$schema$value ??= z.object({
31
39
  'offset': z.number().readonly().optional(),
32
40
  'limit': z.number().readonly().optional(),
33
- })
34
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_result$schema = z.object({
41
+ }))
42
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_result$schema$value
43
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_result$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_result$schema$value ??= z.object({
35
44
  'offset': z.number().readonly(),
36
45
  'text': z.string().readonly(),
37
46
  'lines': z.number().readonly(),
@@ -39,49 +48,63 @@ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_result$schema = z
39
48
  'absolutePath': z.string().readonly(),
40
49
  'version': z.string().readonly(),
41
50
  'bytes': z.number().readonly().optional(),
42
- })
43
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readAll_parameter_0$schema = z.intersection(z.string(), z.unknown())
44
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readAll_parameter_1$schema = z.string()
45
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readAll_result$schema = z.object({
51
+ }))
52
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readAll_parameter_0$schema$value
53
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readAll_parameter_0$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_readAll_parameter_0$schema$value ??= z.intersection(z.string(), z.unknown()))
54
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readAll_parameter_1$schema$value
55
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readAll_parameter_1$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_readAll_parameter_1$schema$value ??= z.string())
56
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readAll_result$schema$value
57
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readAll_result$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_readAll_result$schema$value ??= z.object({
46
58
  'offset': z.number().readonly(),
47
59
  'data': z.string().readonly(),
48
60
  'eof': z.boolean().readonly(),
49
61
  'absolutePath': z.string().readonly(),
50
62
  'version': z.string().readonly(),
51
63
  'bytes': z.number().readonly().optional(),
52
- })
53
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_parameter_0$schema = z.intersection(z.string(), z.unknown())
54
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_parameter_1$schema = z.string()
55
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_parameter_2$schema = z.object({
64
+ }))
65
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_parameter_0$schema$value
66
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_parameter_0$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_parameter_0$schema$value ??= z.intersection(z.string(), z.unknown()))
67
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_parameter_1$schema$value
68
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_parameter_1$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_parameter_1$schema$value ??= z.string())
69
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_parameter_2$schema$value
70
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_parameter_2$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_parameter_2$schema$value ??= z.object({
56
71
  'offset': z.number().readonly().optional(),
57
72
  'length': z.number().readonly().optional(),
58
- })
59
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_result$schema = z.object({
73
+ }))
74
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_result$schema$value
75
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_result$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_result$schema$value ??= z.object({
60
76
  'offset': z.number().readonly(),
61
77
  'data': z.string().readonly(),
62
78
  'eof': z.boolean().readonly(),
63
79
  'absolutePath': z.string().readonly(),
64
80
  'version': z.string().readonly(),
65
81
  'bytes': z.number().readonly().optional(),
66
- })
67
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_parameter_0$schema = z.intersection(z.string(), z.unknown())
68
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_parameter_1$schema = z.string()
69
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_parameter_2$schema = z.string()
70
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_result$schema = z.object({
82
+ }))
83
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_parameter_0$schema$value
84
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_parameter_0$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_parameter_0$schema$value ??= z.intersection(z.string(), z.unknown()))
85
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_parameter_1$schema$value
86
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_parameter_1$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_parameter_1$schema$value ??= z.string())
87
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_parameter_2$schema$value
88
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_parameter_2$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_parameter_2$schema$value ??= z.string())
89
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_result$schema$value
90
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_result$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_result$schema$value ??= z.object({
71
91
  'offset': z.number().readonly(),
72
92
  'data': z.string().readonly(),
73
93
  'eof': z.boolean().readonly(),
74
94
  'absolutePath': z.string().readonly(),
75
95
  'version': z.string().readonly(),
76
96
  'bytes': z.number().readonly().optional(),
77
- })
78
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_stat_parameter_0$schema = z.intersection(z.string(), z.unknown())
79
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_stat_parameter_1$schema = z.string()
80
- const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_stat_result$schema = z.object({
97
+ }))
98
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_stat_parameter_0$schema$value
99
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_stat_parameter_0$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_stat_parameter_0$schema$value ??= z.intersection(z.string(), z.unknown()))
100
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_stat_parameter_1$schema$value
101
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_stat_parameter_1$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_stat_parameter_1$schema$value ??= z.string())
102
+ let _deepseek_ai_dsh_api_workspace_files_workspaceFiles_stat_result$schema$value
103
+ const _deepseek_ai_dsh_api_workspace_files_workspaceFiles_stat_result$schema = () => (_deepseek_ai_dsh_api_workspace_files_workspaceFiles_stat_result$schema$value ??= z.object({
81
104
  'absolutePath': z.string().readonly(),
82
105
  'version': z.string().readonly(),
83
106
  'bytes': z.number().readonly().optional(),
84
- })
107
+ }))
85
108
 
86
109
  export const TYPERT_REMOTE = {
87
110
  package: '@deepseek-ai/dsh-api-workspace-files',
@@ -102,7 +125,7 @@ export const TYPERT_REMOTE = {
102
125
  codec: {
103
126
  mode: 'strict',
104
127
  typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
105
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_changes_parameter_0$schema,
128
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_changes_parameter_0$schema,
106
129
  },
107
130
  },
108
131
  ],
@@ -110,9 +133,9 @@ export const TYPERT_REMOTE = {
110
133
  result: {
111
134
  mode: 'strict',
112
135
  typeSymbol: '@deepseek-ai/dsh-api-workspace-files/types#WorkspaceFileWatchFrame',
113
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_changes_result$schema,
136
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_changes_result$schema,
114
137
  },
115
- sourceLocation: {"file":"packages/api/workspace-files/src/index.ts","line":365,"column":3},
138
+ sourceLocation: {"file":"packages/api/workspace-files/src/index.ts","line":364,"column":3},
116
139
  },
117
140
  {
118
141
  id: '@deepseek-ai/dsh-api-workspace-files#workspaceFiles/list',
@@ -129,7 +152,7 @@ export const TYPERT_REMOTE = {
129
152
  codec: {
130
153
  mode: 'strict',
131
154
  typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
132
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_list_parameter_0$schema,
155
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_list_parameter_0$schema,
133
156
  },
134
157
  },
135
158
  {
@@ -139,7 +162,7 @@ export const TYPERT_REMOTE = {
139
162
  codec: {
140
163
  mode: 'strict',
141
164
  typeSymbol: '@deepseek-ai/dsh-api-workspace-files#workspaceFiles/list:path',
142
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_list_parameter_1$schema,
165
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_list_parameter_1$schema,
143
166
  },
144
167
  },
145
168
  ],
@@ -147,9 +170,9 @@ export const TYPERT_REMOTE = {
147
170
  result: {
148
171
  mode: 'strict',
149
172
  typeSymbol: '@deepseek-ai/dsh-api-workspace-files/types#WorkspaceDirectoryListing',
150
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_list_result$schema,
173
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_list_result$schema,
151
174
  },
152
- sourceLocation: {"file":"packages/api/workspace-files/src/index.ts","line":337,"column":9},
175
+ sourceLocation: {"file":"packages/api/workspace-files/src/index.ts","line":336,"column":9},
153
176
  },
154
177
  {
155
178
  id: '@deepseek-ai/dsh-api-workspace-files#workspaceFiles/read',
@@ -166,7 +189,7 @@ export const TYPERT_REMOTE = {
166
189
  codec: {
167
190
  mode: 'strict',
168
191
  typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
169
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_parameter_0$schema,
192
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_parameter_0$schema,
170
193
  },
171
194
  },
172
195
  {
@@ -176,7 +199,7 @@ export const TYPERT_REMOTE = {
176
199
  codec: {
177
200
  mode: 'strict',
178
201
  typeSymbol: '@deepseek-ai/dsh-api-workspace-files#workspaceFiles/read:path',
179
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_parameter_1$schema,
202
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_parameter_1$schema,
180
203
  },
181
204
  },
182
205
  {
@@ -186,7 +209,7 @@ export const TYPERT_REMOTE = {
186
209
  codec: {
187
210
  mode: 'strict',
188
211
  typeSymbol: '@deepseek-ai/dsh-api-workspace-files/types#WorkspaceFileRange',
189
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_parameter_2$schema,
212
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_parameter_2$schema,
190
213
  },
191
214
  },
192
215
  ],
@@ -194,7 +217,7 @@ export const TYPERT_REMOTE = {
194
217
  result: {
195
218
  mode: 'strict',
196
219
  typeSymbol: '@deepseek-ai/dsh-api-workspace-files/types#WorkspaceFileText',
197
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_result$schema,
220
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_read_result$schema,
198
221
  },
199
222
  sourceLocation: {"file":"packages/api/workspace-files/src/index.ts","line":232,"column":9},
200
223
  },
@@ -213,7 +236,7 @@ export const TYPERT_REMOTE = {
213
236
  codec: {
214
237
  mode: 'strict',
215
238
  typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
216
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readAll_parameter_0$schema,
239
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readAll_parameter_0$schema,
217
240
  },
218
241
  },
219
242
  {
@@ -223,7 +246,7 @@ export const TYPERT_REMOTE = {
223
246
  codec: {
224
247
  mode: 'strict',
225
248
  typeSymbol: '@deepseek-ai/dsh-api-workspace-files#workspaceFiles/readAll:path',
226
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readAll_parameter_1$schema,
249
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readAll_parameter_1$schema,
227
250
  },
228
251
  },
229
252
  ],
@@ -231,7 +254,7 @@ export const TYPERT_REMOTE = {
231
254
  result: {
232
255
  mode: 'strict',
233
256
  typeSymbol: '@deepseek-ai/dsh-api-workspace-files/types#WorkspaceFileBytes',
234
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readAll_result$schema,
257
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readAll_result$schema,
235
258
  },
236
259
  sourceLocation: {"file":"packages/api/workspace-files/src/index.ts","line":278,"column":9},
237
260
  },
@@ -250,7 +273,7 @@ export const TYPERT_REMOTE = {
250
273
  codec: {
251
274
  mode: 'strict',
252
275
  typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
253
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_parameter_0$schema,
276
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_parameter_0$schema,
254
277
  },
255
278
  },
256
279
  {
@@ -260,7 +283,7 @@ export const TYPERT_REMOTE = {
260
283
  codec: {
261
284
  mode: 'strict',
262
285
  typeSymbol: '@deepseek-ai/dsh-api-workspace-files#workspaceFiles/readBytes:path',
263
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_parameter_1$schema,
286
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_parameter_1$schema,
264
287
  },
265
288
  },
266
289
  {
@@ -270,7 +293,7 @@ export const TYPERT_REMOTE = {
270
293
  codec: {
271
294
  mode: 'strict',
272
295
  typeSymbol: '@deepseek-ai/dsh-api-workspace-files/types#WorkspaceByteRange',
273
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_parameter_2$schema,
296
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_parameter_2$schema,
274
297
  },
275
298
  },
276
299
  ],
@@ -278,7 +301,7 @@ export const TYPERT_REMOTE = {
278
301
  result: {
279
302
  mode: 'strict',
280
303
  typeSymbol: '@deepseek-ai/dsh-api-workspace-files/types#WorkspaceFileBytes',
281
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_result$schema,
304
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readBytes_result$schema,
282
305
  },
283
306
  sourceLocation: {"file":"packages/api/workspace-files/src/index.ts","line":257,"column":9},
284
307
  },
@@ -297,7 +320,7 @@ export const TYPERT_REMOTE = {
297
320
  codec: {
298
321
  mode: 'strict',
299
322
  typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
300
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_parameter_0$schema,
323
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_parameter_0$schema,
301
324
  },
302
325
  },
303
326
  {
@@ -307,7 +330,7 @@ export const TYPERT_REMOTE = {
307
330
  codec: {
308
331
  mode: 'strict',
309
332
  typeSymbol: '@deepseek-ai/dsh-api-workspace-files#workspaceFiles/readRelated:path',
310
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_parameter_1$schema,
333
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_parameter_1$schema,
311
334
  },
312
335
  },
313
336
  {
@@ -317,7 +340,7 @@ export const TYPERT_REMOTE = {
317
340
  codec: {
318
341
  mode: 'strict',
319
342
  typeSymbol: '@deepseek-ai/dsh-api-workspace-files#workspaceFiles/readRelated:relativePath',
320
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_parameter_2$schema,
343
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_parameter_2$schema,
321
344
  },
322
345
  },
323
346
  ],
@@ -325,9 +348,9 @@ export const TYPERT_REMOTE = {
325
348
  result: {
326
349
  mode: 'strict',
327
350
  typeSymbol: '@deepseek-ai/dsh-api-workspace-files/types#WorkspaceFileBytes',
328
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_result$schema,
351
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_readRelated_result$schema,
329
352
  },
330
- sourceLocation: {"file":"packages/api/workspace-files/src/index.ts","line":300,"column":9},
353
+ sourceLocation: {"file":"packages/api/workspace-files/src/index.ts","line":299,"column":9},
331
354
  },
332
355
  {
333
356
  id: '@deepseek-ai/dsh-api-workspace-files#workspaceFiles/stat',
@@ -344,7 +367,7 @@ export const TYPERT_REMOTE = {
344
367
  codec: {
345
368
  mode: 'strict',
346
369
  typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
347
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_stat_parameter_0$schema,
370
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_stat_parameter_0$schema,
348
371
  },
349
372
  },
350
373
  {
@@ -354,7 +377,7 @@ export const TYPERT_REMOTE = {
354
377
  codec: {
355
378
  mode: 'strict',
356
379
  typeSymbol: '@deepseek-ai/dsh-api-workspace-files#workspaceFiles/stat:path',
357
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_stat_parameter_1$schema,
380
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_stat_parameter_1$schema,
358
381
  },
359
382
  },
360
383
  ],
@@ -362,9 +385,9 @@ export const TYPERT_REMOTE = {
362
385
  result: {
363
386
  mode: 'strict',
364
387
  typeSymbol: '@deepseek-ai/dsh-api-workspace-files/types#WorkspaceFileStat',
365
- schema: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_stat_result$schema,
388
+ create: _deepseek_ai_dsh_api_workspace_files_workspaceFiles_stat_result$schema,
366
389
  },
367
- sourceLocation: {"file":"packages/api/workspace-files/src/index.ts","line":324,"column":9},
390
+ sourceLocation: {"file":"packages/api/workspace-files/src/index.ts","line":323,"column":9},
368
391
  },
369
392
  ],
370
393
  }
@@ -246,13 +246,12 @@ let WorkspaceFiles = (() => {
246
246
  async readAll(workspaceFileScope, path, signal) {
247
247
  const { target, info } = await this.locateFile(workspaceFileScope, path, signal);
248
248
  const limit = this.config.maxFileBytes;
249
- if (info.size !== undefined && info.size > limit) {
250
- throw new RemoteError('workspace-file/too-large', `"${path}" exceeds the ${limit} byte full-file cap`, { path, limit });
251
- }
252
- const data = await this.ctx.fs.readByteRange(target, { offset: 0, length: limit + 1 }, signal);
253
- if (data.length > limit) {
254
- throw new RemoteError('workspace-file/too-large', `"${path}" exceeds the ${limit} byte full-file cap`, { path, limit });
255
- }
249
+ const data = await this.ctx.fs.readBytes(target, signal, limit).catch((cause) => {
250
+ if (typeof cause === 'object' && cause !== null && 'code' in cause && cause.code === 'FS_TOO_LARGE') {
251
+ throw new RemoteError('workspace-file/too-large', `"${path}" exceeds the ${limit} byte full-file cap`, { path, limit }, { cause });
252
+ }
253
+ throw cause;
254
+ });
256
255
  return { ...this.statOf(target, info), offset: 0, data: Buffer.from(data).toString('base64'), eof: true };
257
256
  }
258
257
  /**
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@deepseek-ai/dsh-api-workspace-files",
3
3
  "description": "Workspace file service and Client resource provider: bounded reads, directory listing, and live metadata over the workspaceFiles Remote namespace",
4
- "version": "0.1.6-alpha.1",
4
+ "version": "0.1.6-alpha.2",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -49,8 +49,8 @@
49
49
  "license": "MIT",
50
50
  "dependencies": {
51
51
  "zod": "^4.4.3",
52
- "@deepseek-ai/dsh-typert-protocol": "^0.1.6-alpha.1",
53
- "@deepseek-ai/dsh-deque": "^0.1.6-alpha.1",
52
+ "@deepseek-ai/dsh-deque": "^0.1.6-alpha.2",
53
+ "@deepseek-ai/dsh-typert-protocol": "^0.1.6-alpha.2",
54
54
  "@deepseek-ai/schemastery": "^3.18.2"
55
55
  },
56
56
  "peerDependencies": {
@@ -58,14 +58,14 @@
58
58
  },
59
59
  "devDependencies": {
60
60
  "@deepseek-ai/cordis": "^4.0.2",
61
- "@deepseek-ai/dsh-api-gateway": "^0.1.6-alpha.1",
62
- "@deepseek-ai/dsh-client-resources": "^0.1.6-alpha.1",
63
- "@deepseek-ai/dsh-client-ui-slots": "^0.1.6-alpha.1",
64
- "@deepseek-ai/dsh-fs": "^0.1.6-alpha.1",
65
- "@deepseek-ai/dsh-sandbox-policy": "^0.1.6-alpha.1",
66
- "@deepseek-ai/dsh-session": "^0.1.6-alpha.1",
67
- "@deepseek-ai/dsh-util-workspace-path": "^0.1.6-alpha.1",
68
- "@deepseek-ai/dsh-session-persistence": "^0.1.6-alpha.1"
61
+ "@deepseek-ai/dsh-api-gateway": "^0.1.6-alpha.2",
62
+ "@deepseek-ai/dsh-client-resources": "^0.1.6-alpha.2",
63
+ "@deepseek-ai/dsh-client-ui-slots": "^0.1.6-alpha.2",
64
+ "@deepseek-ai/dsh-fs": "^0.1.6-alpha.2",
65
+ "@deepseek-ai/dsh-session": "^0.1.6-alpha.2",
66
+ "@deepseek-ai/dsh-sandbox-policy": "^0.1.6-alpha.2",
67
+ "@deepseek-ai/dsh-session-persistence": "^0.1.6-alpha.2",
68
+ "@deepseek-ai/dsh-util-workspace-path": "^0.1.6-alpha.2"
69
69
  },
70
70
  "files": [
71
71
  "lib/index.js",