@ai-matrx/chat 0.2.7 → 0.2.9

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/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @ai-matrx/chat
2
2
 
3
+ ## 0.2.9 — 2026-10-07
4
+
5
+ ALC-19: the download door moved to the base package.
6
+
7
+ - `agent-copy/export` no longer exports `downloadFile` / `downloadUrl`; they live in `@ai-matrx/kit/download` (kit 0.26.0).
8
+ - Consumer action: import `downloadFile` / `downloadUrl` from `@ai-matrx/kit/download`.
9
+
10
+ ## 0.2.8 — 2026-10-07
11
+
12
+ ALC-19: the one file-download door.
13
+
14
+ - `agent-copy/export`: `downloadFile` revokes its object URL after 1 s (Safari cancels a save revoked in the
15
+ click's tick); new `downloadUrl(url, filename, { newTab? })` saves a file that already has a URL (data:, blob:,
16
+ remote) — the hand-built anchor + `.download =` is gone from every host.
17
+ - Consumer action: replace hand-built `URL.createObjectURL` + anchor downloads with `downloadFile` / `downloadUrl`.
18
+
3
19
  ## 0.2.7 — 2026-10-06
4
20
  ### Re-sync before matrx-frontend consumes the published package (P27)
5
21
 
@@ -21,7 +21,6 @@ export interface ExportItem {
21
21
  */
22
22
  onSelect?: () => void | Promise<void>;
23
23
  }
24
- export declare function downloadFile(filename: string, content: BlobPart, mime: string): void;
25
24
  /** Sanitized `base-2026-07-27.ext` filename. */
26
25
  export declare function exportFilename(base: string, extension: string): string;
27
26
  export declare function jsonExportItem(data: unknown | (() => unknown), label?: string): ExportItem;
@@ -1,14 +1,3 @@
1
- function downloadFile(filename, content, mime) {
2
- const blob = new Blob([content], { type: mime });
3
- const url = URL.createObjectURL(blob);
4
- const anchor = document.createElement("a");
5
- anchor.href = url;
6
- anchor.download = filename;
7
- document.body.appendChild(anchor);
8
- anchor.click();
9
- document.body.removeChild(anchor);
10
- URL.revokeObjectURL(url);
11
- }
12
1
  function exportFilename(base, extension) {
13
2
  const slug = base.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "").slice(0, 60);
14
3
  const date = (/* @__PURE__ */ new Date()).toISOString().slice(0, 10);
@@ -80,7 +69,6 @@ function csvExportItem(rows, label = "CSV", columns) {
80
69
  }
81
70
  export {
82
71
  csvExportItem,
83
- downloadFile,
84
72
  exportFilename,
85
73
  jsonExportItem,
86
74
  rowsToCsv,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-matrx/chat",
3
- "version": "0.2.7",
3
+ "version": "0.2.9",
4
4
  "description": "THE one AI Matrx person-to-agent chat system: the full chat (running agents, conversations, tool calls, streaming, context, surfaces, voice) as per-module subpaths @ai-matrx/chat/<domain>/<module> over a host contract (/host, /host/react) whose only required value is a db; plus the kernel compatibility entries (., /external-store, /matrx, /react, /tools, styles.css, tokens.css) until P28.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -207,16 +207,16 @@
207
207
  "@ai-matrx/browser-audio": "latest",
208
208
  "@ai-matrx/canvas": "latest",
209
209
  "@ai-matrx/content-ir": "latest",
210
- "@ai-matrx/content-ir-react": "latest",
211
210
  "@ai-matrx/data": "latest",
212
- "@ai-matrx/diff": "latest",
211
+ "@ai-matrx/content-ir-react": "latest",
213
212
  "@ai-matrx/design-system": "latest",
213
+ "@ai-matrx/diff": "latest",
214
214
  "@ai-matrx/icons": "latest",
215
- "@ai-matrx/kit": "latest",
216
215
  "@ai-matrx/media": "latest",
217
- "@ai-matrx/print": "latest",
216
+ "@ai-matrx/kit": "latest",
218
217
  "@ai-matrx/realtime": "latest",
219
218
  "@ai-matrx/records": "latest",
219
+ "@ai-matrx/print": "latest",
220
220
  "@ai-matrx/records-ui": "latest",
221
221
  "@ai-matrx/tap-target": "latest"
222
222
  },