@sepveneto/dnde-agent 0.2.0-beta.5 → 0.2.0-beta.7

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.md CHANGED
@@ -109,6 +109,25 @@ const confirmInitialization = defineInitializationTool({
109
109
  可用组件查询、业务数据工具和 `editor_operator`,不会跳过业务工具直接生成业务
110
110
  数据。
111
111
 
112
+ ### 图片参考
113
+
114
+ 输入框支持多选和分批追加附件,包括 `.docx` 文档以及 JPG、PNG、WebP、BMP、
115
+ TIFF、HEIC 图片;一次最多 6 个附件、总计不超过 20 MB。例如可以同时上传一份
116
+ 装修文档和一张参考图。文档会逐个转换为文本上下文,所有图片会作为多模态内容
117
+ 一起发送。图片上传后显示缩略图,Agent 会读取图片的布局、层级、间距、比例、
118
+ 配色和组件关系,再结合当前编辑器和可用组件执行初始化或增量修改。图片中的
119
+ 业务数据不会被当作真实接口数据,商品等内容仍须通过宿主业务工具准备。
120
+
121
+ 本地图片遵循千问 OpenAI 兼容接口的多模态格式:BFF 将图片转换为
122
+ `data:image/<type>;base64,...`,与文本一起放入同一条用户消息。会话历史保存
123
+ 图片引用而不是 Base64,避免撑满浏览器 `localStorage`。例如把 `qwen3.6-plus`
124
+ 作为模型时,可以直接使用“参考这张图的布局设计首页”这类指令。包含图片的
125
+ Qwen 对话会使用官方文档中的 Chat Completions 兼容格式;纯文本对话继续遵循
126
+ 宿主配置的 API 模式。
127
+
128
+ 图片输入格式参考千问官方文档:
129
+ <https://help.aliyun.com/zh/model-studio/vision>。
130
+
112
131
  ### 添加组件时的业务数据
113
132
 
114
133
  `items` 通常是由业务 ID 查询并组装的复杂数据,不能交给模型生成。业务工具
@@ -158,5 +177,5 @@ const queryOrder = defineAgentTool({
158
177
  ## UI
159
178
 
160
179
  UI 保留原装修助手的悬浮按钮交互。展开后使用 `llm-agent` 的聊天视图:
161
- 空状态示例、Markdown、reasoning、工具调用、数据事件、流式文本、停止生成和历史记录,
180
+ 空状态示例、图片/文档附件、Markdown、reasoning、工具调用、数据事件、流式文本、停止生成和历史记录,
162
181
  全部位于 `dnd-agent` 的 Shadow DOM 内。
@@ -1,7 +1,7 @@
1
1
  var V = Object.defineProperty;
2
2
  var Q = (t, s, e) => s in t ? V(t, s, { enumerable: !0, configurable: !0, writable: !0, value: e }) : t[s] = e;
3
3
  var a = (t, s, e) => Q(t, typeof s != "symbol" ? s + "" : s, e);
4
- import { C as E, U as x, r as X, t as I, o as v, s as y, a as Z, w as A, i as q, e as ee, A as te, n as k, b as R, p as C, c as se, S as ie, d as ne, M as re, f as ae } from "./index-d_JuxVCt.js";
4
+ import { C as E, U as x, r as X, t as I, o as v, s as y, a as Z, w as A, i as q, e as ee, A as te, n as k, b as R, p as C, c as se, S as ie, d as ne, M as re, f as ae } from "./index-DFfwYP9V.js";
5
5
  function oe(t) {
6
6
  return t ? !(typeof t == "object" && t && "constructor" in t && typeof t.constructor == "function" ? t.constructor.name : "").includes("ChatCompletions") : !0;
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAA;AACjD,OAAO,KAAK,EAAwB,YAAY,EAAsB,MAAM,SAAS,CAAA;AACrF,OAAO,EAAE,KAAK,EAAiB,MAAM,gBAAgB,CAAA;AAgBrD,eAAO,MAAM,mBAAmB,kBAAkB,CAAA;AAClD,eAAO,MAAM,qBAAqB,6BAA6B,CAAA;AAE/D,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,YAAY,CAAA;IACjB,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAA;IAC7B,UAAU,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC3C;AAuLD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB;;;;EAiFxD"}
1
+ {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAA;AACjD,OAAO,KAAK,EAAwB,YAAY,EAAsB,MAAM,SAAS,CAAA;AACrF,OAAO,EAAE,KAAK,EAAiB,MAAM,gBAAgB,CAAA;AAgBrD,eAAO,MAAM,mBAAmB,kBAAkB,CAAA;AAClD,eAAO,MAAM,qBAAqB,6BAA6B,CAAA;AAE/D,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,YAAY,CAAA;IACjB,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAA;IAC7B,UAAU,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC3C;AAuLD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB;;;;EAmFxD"}
@@ -7,5 +7,6 @@ export declare function useFile(fileInput: Readonly<Ref<HTMLInputElement | null>
7
7
  selectFile: () => void;
8
8
  handleFileChange: (event: Event) => Promise<void>;
9
9
  reset: () => void;
10
+ remove: (name: string) => void;
10
11
  };
11
12
  //# sourceMappingURL=useFile.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFile.d.ts","sourceRoot":"","sources":["../../src/composables/useFile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAC9B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAOpD,wBAAgB,OAAO,CACrB,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC,EACjD,UAAU,EAAE,MAAM,MAAM;;;;;8BAkBe,KAAK;;EA0C7C"}
1
+ {"version":3,"file":"useFile.d.ts","sourceRoot":"","sources":["../../src/composables/useFile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAC9B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAWpD,wBAAgB,OAAO,CACrB,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC,EACjD,UAAU,EAAE,MAAM,MAAM;;;;;8BAuBe,KAAK;;mBAVtB,MAAM;EA6E7B"}