@agent-native/toolkit 0.198.3 → 0.198.5
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/app/agentkit/react/components.d.ts +8 -3
- package/dist/app/agentkit/react/components.d.ts.map +1 -1
- package/dist/app/agentkit/react/components.js +24 -10
- package/dist/app/agentkit/react/components.js.map +1 -1
- package/dist/app/chat/AgentKitAssistantChat.d.ts.map +1 -1
- package/dist/app/chat/AgentKitAssistantChat.js +65 -33
- package/dist/app/chat/AgentKitAssistantChat.js.map +1 -1
- package/dist/app/chat/AgentSidebar.d.ts.map +1 -1
- package/dist/app/chat/AgentSidebar.js +2 -0
- package/dist/app/chat/AgentSidebar.js.map +1 -1
- package/dist/app/chat/FileStorageSetupPopover.js +2 -2
- package/dist/app/chat/FileStorageSetupPopover.js.map +1 -1
- package/dist/app/chat/MultiTabAssistantChat.js +1 -1
- package/dist/app/chat/agentkit-chat/connections.d.ts +1 -4
- package/dist/app/chat/agentkit-chat/connections.d.ts.map +1 -1
- package/dist/app/chat/agentkit-chat/connections.js +1 -26
- package/dist/app/chat/agentkit-chat/connections.js.map +1 -1
- package/dist/app/chat/agentkit-chat/history.d.ts +4 -1
- package/dist/app/chat/agentkit-chat/history.d.ts.map +1 -1
- package/dist/app/chat/agentkit-chat/history.js +17 -5
- package/dist/app/chat/agentkit-chat/history.js.map +1 -1
- package/dist/app/chat/chat/history-types.d.ts +1 -1
- package/dist/app/chat/chat/history-types.d.ts.map +1 -1
- package/dist/app/chat/chat-first/copy.d.ts +1 -2
- package/dist/app/chat/chat-first/copy.d.ts.map +1 -1
- package/dist/app/chat/chat-first/copy.js +1 -121
- package/dist/app/chat/chat-first/copy.js.map +1 -1
- package/dist/app/chat/chat-first-copy.d.ts +3 -0
- package/dist/app/chat/chat-first-copy.d.ts.map +1 -0
- package/dist/app/chat/chat-first-copy.js +122 -0
- package/dist/app/chat/chat-first-copy.js.map +1 -0
- package/dist/app/feature-flags/FeatureFlagsPanel.d.ts.map +1 -1
- package/dist/app/feature-flags/FeatureFlagsPanel.js +1 -0
- package/dist/app/feature-flags/FeatureFlagsPanel.js.map +1 -1
- package/dist/app/i18n/catalogs/ar-SA.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/ar-SA.js +2 -1
- package/dist/app/i18n/catalogs/ar-SA.js.map +1 -1
- package/dist/app/i18n/catalogs/de-DE.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/de-DE.js +2 -1
- package/dist/app/i18n/catalogs/de-DE.js.map +1 -1
- package/dist/app/i18n/catalogs/en-US.d.ts +2 -1
- package/dist/app/i18n/catalogs/en-US.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/en-US.js +2 -1
- package/dist/app/i18n/catalogs/en-US.js.map +1 -1
- package/dist/app/i18n/catalogs/es-ES.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/es-ES.js +2 -1
- package/dist/app/i18n/catalogs/es-ES.js.map +1 -1
- package/dist/app/i18n/catalogs/fr-FR.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/fr-FR.js +2 -1
- package/dist/app/i18n/catalogs/fr-FR.js.map +1 -1
- package/dist/app/i18n/catalogs/hi-IN.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/hi-IN.js +2 -1
- package/dist/app/i18n/catalogs/hi-IN.js.map +1 -1
- package/dist/app/i18n/catalogs/ja-JP.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/ja-JP.js +2 -1
- package/dist/app/i18n/catalogs/ja-JP.js.map +1 -1
- package/dist/app/i18n/catalogs/ko-KR.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/ko-KR.js +2 -1
- package/dist/app/i18n/catalogs/ko-KR.js.map +1 -1
- package/dist/app/i18n/catalogs/pt-BR.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/pt-BR.js +2 -1
- package/dist/app/i18n/catalogs/pt-BR.js.map +1 -1
- package/dist/app/i18n/catalogs/zh-CN.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/zh-CN.js +2 -1
- package/dist/app/i18n/catalogs/zh-CN.js.map +1 -1
- package/dist/app/i18n/catalogs/zh-TW.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/zh-TW.js +2 -1
- package/dist/app/i18n/catalogs/zh-TW.js.map +1 -1
- package/dist/app/labs/LabsSettings.d.ts.map +1 -1
- package/dist/app/labs/LabsSettings.js +7 -3
- package/dist/app/labs/LabsSettings.js.map +1 -1
- package/dist/app/org/OrgGeneralSection.d.ts.map +1 -1
- package/dist/app/org/OrgGeneralSection.js +21 -18
- package/dist/app/org/OrgGeneralSection.js.map +1 -1
- package/dist/app/org/OrgSwitcher.d.ts.map +1 -1
- package/dist/app/org/OrgSwitcher.js +3 -2
- package/dist/app/org/OrgSwitcher.js.map +1 -1
- package/dist/app/org/workspace-app-links.d.ts +1 -0
- package/dist/app/org/workspace-app-links.d.ts.map +1 -1
- package/dist/app/org/workspace-app-links.js +3 -0
- package/dist/app/org/workspace-app-links.js.map +1 -1
- package/dist/app/resources/McpAgentKitConnectionRequest.d.ts +7 -2
- package/dist/app/resources/McpAgentKitConnectionRequest.d.ts.map +1 -1
- package/dist/app/resources/McpAgentKitConnectionRequest.js +132 -13
- package/dist/app/resources/McpAgentKitConnectionRequest.js.map +1 -1
- package/dist/composer/PromptComposer.d.ts +3 -0
- package/dist/composer/PromptComposer.d.ts.map +1 -1
- package/dist/composer/PromptComposer.js +2 -2
- package/dist/composer/PromptComposer.js.map +1 -1
- package/dist/composer/TiptapComposer.d.ts +4 -1
- package/dist/composer/TiptapComposer.d.ts.map +1 -1
- package/dist/composer/TiptapComposer.js +8 -4
- package/dist/composer/TiptapComposer.js.map +1 -1
- package/dist/icons/ResourceIconPicker.d.ts +6 -1
- package/dist/icons/ResourceIconPicker.d.ts.map +1 -1
- package/dist/icons/ResourceIconPicker.js +45 -6
- package/dist/icons/ResourceIconPicker.js.map +1 -1
- package/package.json +6 -4
- package/src/app/agentkit/react/components.interaction.spec.tsx +93 -0
- package/src/app/agentkit/react/components.spec.tsx +4 -5
- package/src/app/agentkit/react/components.tsx +51 -8
- package/src/app/agentkit/react/composer-context.spec.tsx +7 -0
- package/src/app/agentkit/react/lifecycle.spec.tsx +42 -0
- package/src/app/chat/AgentKitAssistantChat.spec.tsx +151 -11
- package/src/app/chat/AgentKitAssistantChat.tsx +110 -28
- package/src/app/chat/AgentPanel.header.spec.ts +59 -22
- package/src/app/chat/AgentSidebar.tsx +2 -0
- package/src/app/chat/FileStorageSetupPopover.tsx +2 -2
- package/src/app/chat/MultiTabAssistantChat.messageCount.spec.tsx +3 -1
- package/src/app/chat/MultiTabAssistantChat.spec.tsx +8 -4
- package/src/app/chat/MultiTabAssistantChat.tsx +1 -1
- package/src/app/chat/agentkit-chat/action-widget.spec.tsx +5 -17
- package/src/app/chat/agentkit-chat/connections.spec.tsx +137 -0
- package/src/app/chat/agentkit-chat/connections.ts +2 -37
- package/src/app/chat/agentkit-chat/history.tsx +23 -8
- package/src/app/chat/chat/history-types.ts +1 -1
- package/src/app/chat/chat/tool-call-display.spec.tsx +2 -2
- package/src/app/chat/chat/widgets/record-change-widget.spec.tsx +20 -29
- package/src/app/chat/chat-first/copy.ts +1 -133
- package/src/app/chat/chat-first-copy.ts +133 -0
- package/src/app/chat/composer/use-agentkit-capabilities.hardening.spec.tsx +3 -2
- package/src/app/feature-flags/FeatureFlagsPanel.tsx +1 -0
- package/src/app/i18n/catalogs/ar-SA.ts +2 -1
- package/src/app/i18n/catalogs/de-DE.ts +3 -1
- package/src/app/i18n/catalogs/en-US.ts +2 -1
- package/src/app/i18n/catalogs/es-ES.ts +2 -1
- package/src/app/i18n/catalogs/fr-FR.ts +3 -1
- package/src/app/i18n/catalogs/hi-IN.ts +2 -1
- package/src/app/i18n/catalogs/ja-JP.ts +2 -1
- package/src/app/i18n/catalogs/ko-KR.ts +2 -1
- package/src/app/i18n/catalogs/pt-BR.ts +3 -1
- package/src/app/i18n/catalogs/zh-CN.ts +2 -1
- package/src/app/i18n/catalogs/zh-TW.ts +2 -1
- package/src/app/integrations/IntegrationDetailPage.spec.tsx +1 -1
- package/src/app/labs/LabsSettings.tsx +46 -10
- package/src/app/observability/ThumbsFeedback.spec.tsx +15 -0
- package/src/app/onboarding/FirstRunOnboarding.spec.tsx +4 -0
- package/src/app/org/OrgGeneralSection.tsx +32 -22
- package/src/app/org/OrgSwitcher.tsx +3 -2
- package/src/app/org/workspace-app-links.spec.ts +4 -0
- package/src/app/org/workspace-app-links.ts +8 -1
- package/src/app/resources/McpAgentKitConnectionRequest.spec.tsx +371 -2
- package/src/app/resources/McpAgentKitConnectionRequest.tsx +171 -11
- package/src/app/settings/SettingsTabsPage.spec.tsx +4 -2
- package/src/app/settings/shell/SettingsShell.spec.tsx +14 -8
- package/src/app/settings/shell/pages/app-group-pages.spec.tsx +35 -5
- package/src/app/settings/shell/pages/resource-pages.spec.tsx +3 -0
- package/src/app/settings/usage/UsagePage.spec.tsx +3 -3
- package/src/app/shared/lazy-chunk-error-boundary.spec.tsx +2 -0
- package/src/app-shell/sidebar-overflow.spec.tsx +4 -1
- package/src/composer/PromptComposer.tsx +7 -0
- package/src/composer/TiptapComposer.spec.ts +26 -4
- package/src/composer/TiptapComposer.tsx +12 -3
- package/src/design-tweaks/visual-style-controls.spec.tsx +38 -0
- package/src/editor/useCollabReconcile.concurrent.spec.ts +2 -1
- package/src/icons/ResourceIconPicker.spec.tsx +270 -0
- package/src/icons/ResourceIconPicker.tsx +72 -4
|
@@ -51,6 +51,32 @@ const colors: Array<ResourceIconColor | undefined> = [
|
|
|
51
51
|
const columns = 7;
|
|
52
52
|
const rowHeight = 36;
|
|
53
53
|
const MAX_ICON_UPLOAD_BYTES = 5 * 1024 * 1024;
|
|
54
|
+
const ICON_UPLOAD_MIME_TYPES = new Set([
|
|
55
|
+
"image/png",
|
|
56
|
+
"image/jpeg",
|
|
57
|
+
"image/webp",
|
|
58
|
+
"image/svg+xml",
|
|
59
|
+
]);
|
|
60
|
+
const ICON_UPLOAD_EXTENSION_TYPES: Record<string, string> = {
|
|
61
|
+
png: "image/png",
|
|
62
|
+
jpg: "image/jpeg",
|
|
63
|
+
jpeg: "image/jpeg",
|
|
64
|
+
webp: "image/webp",
|
|
65
|
+
svg: "image/svg+xml",
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
function supportedIconUpload(file: File): File | null {
|
|
69
|
+
const mimeType = file.type.split(";")[0]?.trim().toLowerCase() ?? "";
|
|
70
|
+
if (ICON_UPLOAD_MIME_TYPES.has(mimeType)) return file;
|
|
71
|
+
if (mimeType && mimeType !== "application/octet-stream") return null;
|
|
72
|
+
const extension = file.name.split(".").pop()?.toLowerCase() ?? "";
|
|
73
|
+
const inferredType = ICON_UPLOAD_EXTENSION_TYPES[extension];
|
|
74
|
+
if (!inferredType) return null;
|
|
75
|
+
return new File([file], file.name, {
|
|
76
|
+
type: inferredType,
|
|
77
|
+
lastModified: file.lastModified,
|
|
78
|
+
});
|
|
79
|
+
}
|
|
54
80
|
|
|
55
81
|
export interface ResourceIconPickerLabels {
|
|
56
82
|
trigger: string;
|
|
@@ -69,7 +95,9 @@ export interface ResourceIconPickerLabels {
|
|
|
69
95
|
saveError?: string;
|
|
70
96
|
retry?: string;
|
|
71
97
|
uploadHint?: string;
|
|
98
|
+
uploadFailed?: string;
|
|
72
99
|
uploadTooLarge?: string;
|
|
100
|
+
uploadUnsupportedType?: string;
|
|
73
101
|
allCategories?: string;
|
|
74
102
|
colorNames?: Partial<Record<ResourceIconColor, string>>;
|
|
75
103
|
categoryNames?: Record<string, string>;
|
|
@@ -83,8 +111,11 @@ export interface ResourceIconPickerProps {
|
|
|
83
111
|
recentValues?: readonly ResourceIconValue[];
|
|
84
112
|
onRecentsChange?: (recents: ResourceIconValue[]) => void;
|
|
85
113
|
uploadedImages?: readonly ResourceIconImage[];
|
|
114
|
+
uploadedImagesError?: boolean;
|
|
115
|
+
onUploadedImagesRetry?: () => void;
|
|
86
116
|
onUpload?: (file: File) => Promise<ResourceIconImage>;
|
|
87
117
|
onUploadError?: (error: unknown) => void;
|
|
118
|
+
formatUploadError?: (error: unknown) => string;
|
|
88
119
|
resolveImageUrl?: (
|
|
89
120
|
image: Extract<ResourceIconValue, { kind: "image" }>,
|
|
90
121
|
) => string | undefined;
|
|
@@ -323,8 +354,11 @@ export function ResourceIconPicker({
|
|
|
323
354
|
recentValues,
|
|
324
355
|
onRecentsChange,
|
|
325
356
|
uploadedImages = [],
|
|
357
|
+
uploadedImagesError = false,
|
|
358
|
+
onUploadedImagesRetry,
|
|
326
359
|
onUpload,
|
|
327
360
|
onUploadError,
|
|
361
|
+
formatUploadError,
|
|
328
362
|
resolveImageUrl,
|
|
329
363
|
disabled,
|
|
330
364
|
className,
|
|
@@ -475,13 +509,22 @@ export function ResourceIconPicker({
|
|
|
475
509
|
if (fileInput.current) fileInput.current.value = "";
|
|
476
510
|
return;
|
|
477
511
|
}
|
|
512
|
+
const supportedFile = supportedIconUpload(file);
|
|
513
|
+
if (!supportedFile) {
|
|
514
|
+
setSaveFailed(false);
|
|
515
|
+
setUploadError(labels.uploadUnsupportedType ?? labels.saveError);
|
|
516
|
+
if (fileInput.current) fileInput.current.value = "";
|
|
517
|
+
return;
|
|
518
|
+
}
|
|
478
519
|
setUploading(true);
|
|
479
520
|
setSaveFailed(false);
|
|
480
521
|
setUploadError(undefined);
|
|
481
522
|
try {
|
|
482
|
-
await select(await onUpload(
|
|
523
|
+
await select(await onUpload(supportedFile));
|
|
483
524
|
} catch (error) {
|
|
484
|
-
|
|
525
|
+
setUploadError(
|
|
526
|
+
formatUploadError?.(error) || labels.uploadFailed || labels.saveError,
|
|
527
|
+
);
|
|
485
528
|
onUploadError?.(error);
|
|
486
529
|
} finally {
|
|
487
530
|
setUploading(false);
|
|
@@ -524,7 +567,14 @@ export function ResourceIconPicker({
|
|
|
524
567
|
const uploadChoices = [
|
|
525
568
|
...uploadedImages,
|
|
526
569
|
...effectiveRecents.filter(
|
|
527
|
-
(entry): entry is ResourceIconImage =>
|
|
570
|
+
(entry): entry is ResourceIconImage =>
|
|
571
|
+
entry.kind === "image" &&
|
|
572
|
+
(entry.authority !== "private-icon" ||
|
|
573
|
+
uploadedImages.some(
|
|
574
|
+
(uploaded) =>
|
|
575
|
+
uploaded.authority === entry.authority &&
|
|
576
|
+
uploaded.assetId === entry.assetId,
|
|
577
|
+
)),
|
|
528
578
|
),
|
|
529
579
|
].filter(
|
|
530
580
|
(entry, index, all) =>
|
|
@@ -720,7 +770,7 @@ export function ResourceIconPicker({
|
|
|
720
770
|
<input
|
|
721
771
|
ref={fileInput}
|
|
722
772
|
type="file"
|
|
723
|
-
accept="image/png,image/jpeg,image/webp,image/svg+xml"
|
|
773
|
+
accept="image/png,image/jpeg,image/webp,image/svg+xml,.png,.jpg,.jpeg,.webp,.svg"
|
|
724
774
|
className="hidden"
|
|
725
775
|
disabled={uploading}
|
|
726
776
|
onChange={(event) => {
|
|
@@ -728,6 +778,24 @@ export function ResourceIconPicker({
|
|
|
728
778
|
if (file) void upload(file);
|
|
729
779
|
}}
|
|
730
780
|
/>
|
|
781
|
+
{uploadedImagesError && (
|
|
782
|
+
<div
|
|
783
|
+
role="alert"
|
|
784
|
+
className="flex items-center justify-between gap-2 text-sm text-destructive"
|
|
785
|
+
>
|
|
786
|
+
<span>{labels.loadError}</span>
|
|
787
|
+
{onUploadedImagesRetry && (
|
|
788
|
+
<Button
|
|
789
|
+
type="button"
|
|
790
|
+
variant="outline"
|
|
791
|
+
size="sm"
|
|
792
|
+
onClick={onUploadedImagesRetry}
|
|
793
|
+
>
|
|
794
|
+
{labels.retry}
|
|
795
|
+
</Button>
|
|
796
|
+
)}
|
|
797
|
+
</div>
|
|
798
|
+
)}
|
|
731
799
|
{uploadChoices.length > 0 && (
|
|
732
800
|
<div className="grid grid-cols-7 gap-1">
|
|
733
801
|
{uploadChoices.map((entry) => (
|