@agent-native/core 0.22.43 → 0.22.44
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/client/AssistantChat.d.ts +2 -2
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js +51 -23
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
- package/dist/client/MultiTabAssistantChat.js +8 -4
- package/dist/client/MultiTabAssistantChat.js.map +1 -1
- package/dist/client/agent-chat-adapter.d.ts.map +1 -1
- package/dist/client/agent-chat-adapter.js +10 -0
- package/dist/client/agent-chat-adapter.js.map +1 -1
- package/dist/client/agent-chat.d.ts +2 -0
- package/dist/client/agent-chat.d.ts.map +1 -1
- package/dist/client/agent-chat.js.map +1 -1
- package/package.json +1 -1
|
@@ -30,9 +30,9 @@ export declare function AssistantMessageListErrorBoundary({ resetKey, children,
|
|
|
30
30
|
}): import("react/jsx-runtime").JSX.Element;
|
|
31
31
|
export interface AssistantChatHandle {
|
|
32
32
|
/** Programmatically send a message into this chat */
|
|
33
|
-
sendMessage(text: string): void;
|
|
33
|
+
sendMessage(text: string, images?: string[]): void;
|
|
34
34
|
/** Queue a message to send after the current run finishes */
|
|
35
|
-
queueMessage(text: string): void;
|
|
35
|
+
queueMessage(text: string, images?: string[]): void;
|
|
36
36
|
/** Whether the chat is currently running */
|
|
37
37
|
isRunning(): boolean;
|
|
38
38
|
/** Focus the composer input */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantChat.d.ts","sourceRoot":"","sources":["../../src/client/AssistantChat.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAC;AAaf,OAAO,KAAK,EAEV,gBAAgB,EAEhB,yBAAyB,EAI1B,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,KAAK,6BAA6B,EACnC,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAErE,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EACnB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"AssistantChat.d.ts","sourceRoot":"","sources":["../../src/client/AssistantChat.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAC;AAaf,OAAO,KAAK,EAEV,gBAAgB,EAEhB,yBAAyB,EAI1B,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,KAAK,6BAA6B,EACnC,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAErE,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EACnB,MAAM,uBAAuB,CAAC;AA+wD/B,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAKpE;AAED,KAAK,uCAAuC,GAAG;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF,KAAK,uCAAuC,GAAG;IAC7C,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,qBAAa,kCAAmC,SAAQ,KAAK,CAAC,SAAS,CACrE,uCAAuC,EACvC,uCAAuC,CACxC;IACC,KAAK,EAAE,uCAAuC,CAG5C;IAEF,OAAO,CAAC,UAAU,CAA8C;IAEhE,MAAM,CAAC,wBAAwB,CAC7B,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,uCAAuC,CAAC;IAMnD,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS;IA0BvD,kBAAkB,CAAC,SAAS,EAAE,uCAAuC;IAarE,oBAAoB;IAMpB,MAAM;CAcP;AAED,wBAAgB,iCAAiC,CAAC,EAChD,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,2CASA;AAutCD,MAAM,WAAW,mBAAmB;IAClC,qDAAqD;IACrD,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACnD,6DAA6D;IAC7D,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACpD,4CAA4C;IAC5C,SAAS,IAAI,OAAO,CAAC;IACrB,+BAA+B;IAC/B,aAAa,IAAI,IAAI,CAAC;IACtB,gFAAgF;IAChF,oBAAoB,IAAI,kBAAkB,GAAG,IAAI,CAAC;CACnD;AAED,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE;QAAE,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IAC1C,SAAS,EAAE;QAAE,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IAC3C,SAAS,EAAE;QAAE,OAAO,EAAE,eAAe,GAAG,SAAS,CAAA;KAAE,CAAC;IACpD,WAAW,EAAE;QAAE,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IACvD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE;QAAE,OAAO,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,CAAA;KAAE,CAAC;IAC1D,OAAO,EAAE,oBAAoB,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wGAAwG;IACxG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,YAAY,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACtC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACxC,uCAAuC;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,+EAA+E;IAC/E,kBAAkB,CAAC,EAAE,6BAA6B,CAAC;IACnD;;4EAEwE;IACxE,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC,oDAAoD;IACpD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,0CAA0C;IAC1C,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,8EAA8E;IAC9E,YAAY,CAAC,EAAE,CACb,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE;QACJ,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,MAAM,CAAC;KACtB,KACE,IAAI,CAAC;IACV,+DAA+D;IAC/D,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9D,8DAA8D;IAC9D,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/B,+EAA+E;IAC/E,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,qFAAqF;IACrF,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACtC,+DAA+D;IAC/D,yBAAyB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5C,sFAAsF;IACtF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,8EAA8E;IAC9E,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,+FAA+F;IAC/F,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mEAAmE;IACnE,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,wCAAwC;IACxC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC;IACpD,0DAA0D;IAC1D,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,0DAA0D;IAC1D,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,qFAAqF;IACrF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,uDAAuD;IACvD,eAAe,CAAC,EAAE,KAAK,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC,CAAC;IACH,uDAAuD;IACvD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACxD,kEAAkE;IAClE,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IACnD,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,GAAG,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC;IAC5D,oEAAoE;IACpE,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,QAAQ,CAAC;IACjD;;;OAGG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,2BAA2B,KAAK,gBAAgB,CAAC;IAC3E;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,qBAAqB,CAAC,EAAE,MAAM,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAC;IACxE,kFAAkF;IAClF,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAC3C;AAED,eAAO,MAAM,mBAAmB,gBAAgB,CAAC;AAEjD,8DAA8D;AAC9D,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,EAAE,MAAM,QAI9C;AAqCD,OAAO,EACL,iBAAiB,EAElB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAovD7B,eAAO,MAAM,aAAa,gGAuFxB,CAAC"}
|
|
@@ -148,6 +148,37 @@ async function getImageFileDataURL(file) {
|
|
|
148
148
|
URL.revokeObjectURL(objectUrl);
|
|
149
149
|
}
|
|
150
150
|
}
|
|
151
|
+
function imageContentTypeFromDataUrl(dataUrl) {
|
|
152
|
+
const match = /^data:([^;,]+)/.exec(dataUrl);
|
|
153
|
+
return match?.[1] || "image/jpeg";
|
|
154
|
+
}
|
|
155
|
+
function imageExtensionFromContentType(contentType) {
|
|
156
|
+
if (contentType === "image/png")
|
|
157
|
+
return "png";
|
|
158
|
+
if (contentType === "image/webp")
|
|
159
|
+
return "webp";
|
|
160
|
+
if (contentType === "image/gif")
|
|
161
|
+
return "gif";
|
|
162
|
+
return "jpg";
|
|
163
|
+
}
|
|
164
|
+
function createAgentImageAttachments(images) {
|
|
165
|
+
const validImages = (images ?? []).filter((image) => image.trim().length > 0);
|
|
166
|
+
if (validImages.length === 0)
|
|
167
|
+
return undefined;
|
|
168
|
+
return validImages.map((image, index) => {
|
|
169
|
+
const contentType = imageContentTypeFromDataUrl(image);
|
|
170
|
+
const extension = imageExtensionFromContentType(contentType);
|
|
171
|
+
const name = `image-${index + 1}.${extension}`;
|
|
172
|
+
return {
|
|
173
|
+
id: `agent-chat-image-${index + 1}`,
|
|
174
|
+
type: "image",
|
|
175
|
+
name,
|
|
176
|
+
contentType,
|
|
177
|
+
status: { type: "complete" },
|
|
178
|
+
content: [{ type: "image", image }],
|
|
179
|
+
};
|
|
180
|
+
});
|
|
181
|
+
}
|
|
151
182
|
function createUserMessageRunConfig(references, requestMode) {
|
|
152
183
|
const custom = {};
|
|
153
184
|
if (references && references.length > 0) {
|
|
@@ -2605,17 +2636,15 @@ const AssistantChatInner = forwardRef(function AssistantChatInner({ emptyStateTe
|
|
|
2605
2636
|
// complete. Starting the queued turn during that window can reconnect
|
|
2606
2637
|
// to the old run and replay the old answer under the new prompt.
|
|
2607
2638
|
await waitForThreadRunToClear(apiUrl, threadId);
|
|
2608
|
-
const
|
|
2609
|
-
|
|
2610
|
-
|
|
2611
|
-
|
|
2612
|
-
}
|
|
2613
|
-
}
|
|
2639
|
+
const imageAttachments = createAgentImageAttachments(next.images);
|
|
2640
|
+
const messageAttachments = next.attachments && next.attachments.length > 0
|
|
2641
|
+
? next.attachments
|
|
2642
|
+
: (imageAttachments ?? []);
|
|
2614
2643
|
threadRuntime.append({
|
|
2615
2644
|
role: "user",
|
|
2616
|
-
content,
|
|
2617
|
-
...(
|
|
2618
|
-
? { attachments:
|
|
2645
|
+
content: [{ type: "text", text: next.text }],
|
|
2646
|
+
...(messageAttachments.length > 0
|
|
2647
|
+
? { attachments: messageAttachments }
|
|
2619
2648
|
: {}),
|
|
2620
2649
|
...createUserMessageRunConfig(next.references, next.requestMode),
|
|
2621
2650
|
});
|
|
@@ -2732,6 +2761,11 @@ const AssistantChatInner = forwardRef(function AssistantChatInner({ emptyStateTe
|
|
|
2732
2761
|
// direct sends.
|
|
2733
2762
|
markNearBottom();
|
|
2734
2763
|
const queuedAttachments = await serializeQueuedAttachments(attachments);
|
|
2764
|
+
const imageAttachments = createAgentImageAttachments(images);
|
|
2765
|
+
const messageAttachments = [
|
|
2766
|
+
...(queuedAttachments ?? []),
|
|
2767
|
+
...(imageAttachments ?? []),
|
|
2768
|
+
];
|
|
2735
2769
|
// Snapshot the exec mode at enqueue time when the caller didn't
|
|
2736
2770
|
// pass an explicit override. Without this, a plan-mode message that
|
|
2737
2771
|
// sits in the queue runs as 'act' if the user flips the global toggle
|
|
@@ -2751,24 +2785,18 @@ const AssistantChatInner = forwardRef(function AssistantChatInner({ emptyStateTe
|
|
|
2751
2785
|
: `q-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`,
|
|
2752
2786
|
text,
|
|
2753
2787
|
images,
|
|
2754
|
-
attachments:
|
|
2788
|
+
attachments: messageAttachments.length > 0 ? messageAttachments : undefined,
|
|
2755
2789
|
references,
|
|
2756
2790
|
requestMode: effectiveRequestMode,
|
|
2757
2791
|
},
|
|
2758
2792
|
]);
|
|
2759
2793
|
}
|
|
2760
2794
|
else {
|
|
2761
|
-
const content = [{ type: "text", text }];
|
|
2762
|
-
if (images) {
|
|
2763
|
-
for (const img of images) {
|
|
2764
|
-
content.push({ type: "image", image: img });
|
|
2765
|
-
}
|
|
2766
|
-
}
|
|
2767
2795
|
threadRuntime.append({
|
|
2768
2796
|
role: "user",
|
|
2769
|
-
content,
|
|
2770
|
-
...(
|
|
2771
|
-
? { attachments:
|
|
2797
|
+
content: [{ type: "text", text }],
|
|
2798
|
+
...(messageAttachments.length > 0
|
|
2799
|
+
? { attachments: messageAttachments }
|
|
2772
2800
|
: {}),
|
|
2773
2801
|
...createUserMessageRunConfig(references, effectiveRequestMode),
|
|
2774
2802
|
});
|
|
@@ -2776,11 +2804,11 @@ const AssistantChatInner = forwardRef(function AssistantChatInner({ emptyStateTe
|
|
|
2776
2804
|
}, [execMode, isRunning, materializeFrozenReconnectContent, threadRuntime]);
|
|
2777
2805
|
// Expose imperative handle
|
|
2778
2806
|
useImperativeHandle(ref, () => ({
|
|
2779
|
-
sendMessage(text) {
|
|
2780
|
-
addToQueue(text);
|
|
2807
|
+
sendMessage(text, images) {
|
|
2808
|
+
addToQueue(text, images);
|
|
2781
2809
|
},
|
|
2782
|
-
queueMessage(text) {
|
|
2783
|
-
addToQueue(text);
|
|
2810
|
+
queueMessage(text, images) {
|
|
2811
|
+
addToQueue(text, images);
|
|
2784
2812
|
},
|
|
2785
2813
|
isRunning() {
|
|
2786
2814
|
return thread.isRunning;
|