@icanbwell/baileyai-chat-ui 1.0.5 → 1.0.6

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/dist/index.d.ts CHANGED
@@ -168,6 +168,15 @@ export declare interface BaileyChatTransport {
168
168
  }>;
169
169
  }
170
170
 
171
+ export declare type BaileyContentPart = {
172
+ type: 'text';
173
+ text: string;
174
+ } | {
175
+ type: 'image';
176
+ src: string;
177
+ alt?: string;
178
+ };
179
+
171
180
  export declare interface BaileyLastRequest {
172
181
  model: string;
173
182
  systemPrompt: string;
@@ -204,6 +213,13 @@ export declare interface BaileyMessage {
204
213
  id: string;
205
214
  role: 'user' | 'assistant';
206
215
  content: string;
216
+ /** Additional structured content beyond `content` — currently only used to attach one or
217
+ * more images to an assistant message, rendered inline in BaileyChatPanel's transcript via
218
+ * ToolResultImage. Optional and purely additive: a message without `parts` renders exactly
219
+ * as it did before this field existed. Nothing in this package infers a `parts` entry from
220
+ * tool output automatically — a host/transport sets this directly once it knows a turn
221
+ * produced image content (see docs/superpowers/specs/2026-09-19-tool-result-image-rendering-design.md). */
222
+ parts?: BaileyContentPart[];
207
223
  streaming?: boolean;
208
224
  /** When this message was created, stamped by useBaileyChat. Optional so hosts constructing
209
225
  * BaileyMessage objects by hand (e.g. tests, seed data) aren't forced to supply it. */
@@ -2,6 +2,9 @@
2
2
  var e = /^(https?|mailto):/i, t = (e) => e.replace(/[\t\n\r]/g, "").trim(), n = (n) => {
3
3
  let r = t(n);
4
4
  return !/^[a-z][a-z0-9+.-]*:/i.test(r) || e.test(r);
5
+ }, r = /^https:\/\//i, i = /^data:image\/(png|jpe?g|gif|webp);base64,[a-z0-9+/]+=*$/i, a = 2097152, o = (e) => {
6
+ let n = t(e);
7
+ return r.test(n) ? !0 : n.length <= a && i.test(n);
5
8
  };
6
9
  //#endregion
7
- export { n as t };
10
+ export { n, o as t };
@@ -0,0 +1 @@
1
+ var e=/^(https?|mailto):/i,t=e=>e.replace(/[\t\n\r]/g,``).trim(),n=n=>{let r=t(n);return!/^[a-z][a-z0-9+.-]*:/i.test(r)||e.test(r)},r=/^https:\/\//i,i=/^data:image\/(png|jpe?g|gif|webp);base64,[a-z0-9+/]+=*$/i,a=2097152,o=e=>{let n=t(e);return r.test(n)?!0:n.length<=a&&i.test(n)};Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return o}});
package/dist/table.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./safeMarkdownUrl-DsMPGzpD.cjs");let t=require("react"),n=require("react/jsx-runtime"),r=require("@mui/material"),i=require("ag-grid-react"),a=require("ag-grid-community");a.ModuleRegistry.registerModules([a.ColumnAutoSizeModule,a.ColumnHoverModule,a.RowAutoHeightModule,a.RowStyleModule,a.TooltipModule,a.TextFilterModule,a.NumberFilterModule,a.ClientSideRowModelModule]);var o={resizable:!0,sortable:!0,filter:!0},s=t=>{let i=t.colDef?.field?t.data?.[`${t.colDef.field}Href`]:void 0;return typeof i!=`string`||!e.t(i)?(0,n.jsx)(n.Fragment,{children:t.value}):(0,n.jsx)(r.Link,{href:i,target:`_blank`,rel:`noopener noreferrer`,children:t.value})},c=e=>e.trim()!==``&&Number.isFinite(Number(e)),l=({headers:e,rows:l,theme:u=a.themeBalham})=>{let{columnDefs:d,rowData:f}=(0,t.useMemo)(()=>{let t=e.map((e,t)=>l.some(e=>e[t]?.href)),n=e.map((e,n)=>{if(t[n])return!1;let r=l.map(e=>e[n]).filter(e=>!!e?.text.trim());return r.length>0&&r.every(e=>c(e.text))});return{columnDefs:e.map((e,r)=>({headerName:e,field:`col${r}`,...n[r]?{cellDataType:`number`}:{},...t[r]?{cellRenderer:s}:{}})),rowData:l.map(e=>e.reduce((e,t,r)=>{let i=`col${r}`,a=t.text.trim()===``;return e[i]=n[r]?a?null:Number(t.text):t.text,t.href&&(e[`${i}Href`]=t.href),e},{}))}},[e,l]);return(0,n.jsx)(r.Box,{sx:{width:`100%`,my:1},children:(0,n.jsx)(i.AgGridReact,{theme:u,columnDefs:d,rowData:f,defaultColDef:o,domLayout:`autoHeight`})})};exports.BaileyTable=l;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./safeMarkdownUrl-CnpKNwAf.cjs");let t=require("react"),n=require("react/jsx-runtime"),r=require("@mui/material"),i=require("ag-grid-react"),a=require("ag-grid-community");a.ModuleRegistry.registerModules([a.ColumnAutoSizeModule,a.ColumnHoverModule,a.RowAutoHeightModule,a.RowStyleModule,a.TooltipModule,a.TextFilterModule,a.NumberFilterModule,a.ClientSideRowModelModule]);var o={resizable:!0,sortable:!0,filter:!0},s=t=>{let i=t.colDef?.field?t.data?.[`${t.colDef.field}Href`]:void 0;return typeof i!=`string`||!e.n(i)?(0,n.jsx)(n.Fragment,{children:t.value}):(0,n.jsx)(r.Link,{href:i,target:`_blank`,rel:`noopener noreferrer`,children:t.value})},c=e=>e.trim()!==``&&Number.isFinite(Number(e)),l=({headers:e,rows:l,theme:u=a.themeBalham})=>{let{columnDefs:d,rowData:f}=(0,t.useMemo)(()=>{let t=e.map((e,t)=>l.some(e=>e[t]?.href)),n=e.map((e,n)=>{if(t[n])return!1;let r=l.map(e=>e[n]).filter(e=>!!e?.text.trim());return r.length>0&&r.every(e=>c(e.text))});return{columnDefs:e.map((e,r)=>({headerName:e,field:`col${r}`,...n[r]?{cellDataType:`number`}:{},...t[r]?{cellRenderer:s}:{}})),rowData:l.map(e=>e.reduce((e,t,r)=>{let i=`col${r}`,a=t.text.trim()===``;return e[i]=n[r]?a?null:Number(t.text):t.text,t.href&&(e[`${i}Href`]=t.href),e},{}))}},[e,l]);return(0,n.jsx)(r.Box,{sx:{width:`100%`,my:1},children:(0,n.jsx)(i.AgGridReact,{theme:u,columnDefs:d,rowData:f,defaultColDef:o,domLayout:`autoHeight`})})};exports.BaileyTable=l;
package/dist/table.js CHANGED
@@ -1,4 +1,4 @@
1
- import { t as e } from "./safeMarkdownUrl-xI42YYzd.js";
1
+ import { n as e } from "./safeMarkdownUrl-Bqv6Q4u1.js";
2
2
  import { useMemo as t } from "react";
3
3
  import { Fragment as n, jsx as r } from "react/jsx-runtime";
4
4
  import { Box as i, Link as a } from "@mui/material";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@icanbwell/baileyai-chat-ui",
3
- "version": "1.0.5",
3
+ "version": "1.0.6",
4
4
  "description": "Shared React chat UI and streaming logic for Bailey, the icanbwell AI assistant",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -1 +0,0 @@
1
- var e=/^(https?|mailto):/i,t=e=>e.replace(/[\t\n\r]/g,``).trim(),n=n=>{let r=t(n);return!/^[a-z][a-z0-9+.-]*:/i.test(r)||e.test(r)};Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return n}});