@wszhoho/dsh-file-attachment 0.5.2 → 0.5.3

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 (2) hide show
  1. package/lib/client.js +8 -7
  2. package/package.json +1 -1
package/lib/client.js CHANGED
@@ -40,7 +40,7 @@ window.__ModuleLoader__.load({
40
40
  let noticeTimer = null
41
41
  const NOTICE_MS = 4000
42
42
  const MAX_BYTES = 50 * 1024 * 1024
43
- const MAX_DIM = 640 // 图片缩放:最长边上限(GIF 例外,原样保动画)
43
+ const MAX_DIM = 640 // 图片缩放:宽或高任一边 >640 时等比缩小(GIF 例外,原样保动画)
44
44
  // 可上传类型(三类:文档/代码/配置文件);图片恒允许(image/*)。
45
45
  // 首启为默认值,apply/设置页 fetch 持久化配置(~/.dsh/file-attachment.json)后覆盖。
46
46
  const DEFAULT_TYPES = {
@@ -268,7 +268,7 @@ window.__ModuleLoader__.load({
268
268
  throw new Error(errMsg)
269
269
  }
270
270
 
271
- // ---- 图片处理:扩展名 / GIF 判定 / 加载 / 缩放(≤MAX_DIMGIF 原样保动画,PNG 保透明) ----
271
+ // ---- 图片处理:扩展名 / GIF 判定 / 加载 / 缩放(宽或高任一边 >MAX_DIM 时处理,GIF 原样保动画,PNG 保透明) ----
272
272
  function fileExt(name) {
273
273
  const s = String(name == null ? '' : name)
274
274
  const dot = s.lastIndexOf('.')
@@ -286,7 +286,7 @@ window.__ModuleLoader__.load({
286
286
  img.src = url
287
287
  })
288
288
  }
289
- // 缩放:最长边 > maxDim 时等比缩小;返回 { data, name }(data 为 Blob/File)。
289
+ // 缩放:宽或高任一边 > maxDim 时等比缩小(两边都不超过 maxDim 时原样);返回 { data, name }(data 为 Blob/File)。
290
290
  // GIF 原样(canvas 取首帧丢动画 + 不支持 gif 输出);PNG 输出 PNG 保透明;其余 JPEG 0.85。
291
291
  // 缩放失败/无需缩放时回退原文件。
292
292
  async function downscaleImage(file, maxDim) {
@@ -565,10 +565,11 @@ window.__ModuleLoader__.load({
565
565
  const it = pending[i]
566
566
  try {
567
567
  if (it.isImage) {
568
- // 图片:落盘 @路径 纯文本 + 附件条登记(方案 B:走文件引用链路,
569
- // 不触发 dsh 的 image 能力检查,文本模型可正常发送到历史)
570
- const data = it.file
571
- const name = it.name
568
+ // 图片:落盘前等比缩小(宽或高任一边 >MAX_DIM 才处理;GIF 原样保动画),
569
+ // 再走 @路径 纯文本 + 附件条登记(方案 B:不触发 dsh 的 image 能力检查)
570
+ const sized = await downscaleImage(it.file, MAX_DIM)
571
+ const data = sized.data
572
+ const name = sized.name
572
573
  if (data === null || typeof data.size !== 'number' || data.size === 0) throw new Error('size')
573
574
  if (data.size > MAX_BYTES) throw new Error('size')
574
575
  const buf = await data.arrayBuffer()
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wszhoho/dsh-file-attachment",
3
- "version": "0.5.2",
3
+ "version": "0.5.3",
4
4
  "description": "文件附件:拖拽/粘贴/上传文件(支持多文件);图片与文档统一落盘到 .dsh-file-attachment 并以 @绝对路径 引用发送(文本模型可正常使用);输入框内联显示图片缩略图预览与文件条目,聊天区图片同样渲染为可点击放大的缩略图、文件保持芯片样式;非多模态模型下图片自动调用可配置 VLM 识别生成中文描述回填草稿;文档/代码/配置文件可上传类型可在设置页配置;支持 PC 与移动端浏览器",
5
5
  "keywords": [
6
6
  "dsh",