@agent-native/toolkit 0.21.3 → 0.22.0-nightly-20260926111339
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/agent-native.eject.json +11 -20
- package/dist/agentkit.d.ts +5 -1
- package/dist/agentkit.d.ts.map +1 -1
- package/dist/agentkit.js +2 -0
- package/dist/agentkit.js.map +1 -1
- package/dist/app-shell/PromptHome.d.ts +26 -0
- package/dist/app-shell/PromptHome.d.ts.map +1 -0
- package/dist/app-shell/PromptHome.js +19 -0
- package/dist/app-shell/PromptHome.js.map +1 -0
- package/dist/app-shell/PromptHome.spec.d.ts +2 -0
- package/dist/app-shell/PromptHome.spec.d.ts.map +1 -0
- package/dist/app-shell/PromptHome.spec.js +206 -0
- package/dist/app-shell/PromptHome.spec.js.map +1 -0
- package/dist/app-shell/TemplateLibraryGrid.d.ts +48 -0
- package/dist/app-shell/TemplateLibraryGrid.d.ts.map +1 -0
- package/dist/app-shell/TemplateLibraryGrid.js +20 -0
- package/dist/app-shell/TemplateLibraryGrid.js.map +1 -0
- package/dist/app-shell/TemplatePreviewDialog.d.ts +41 -0
- package/dist/app-shell/TemplatePreviewDialog.d.ts.map +1 -0
- package/dist/app-shell/TemplatePreviewDialog.js +50 -0
- package/dist/app-shell/TemplatePreviewDialog.js.map +1 -0
- package/dist/app-shell/TemplatePreviewDialog.spec.d.ts +2 -0
- package/dist/app-shell/TemplatePreviewDialog.spec.d.ts.map +1 -0
- package/dist/app-shell/TemplatePreviewDialog.spec.js +258 -0
- package/dist/app-shell/TemplatePreviewDialog.spec.js.map +1 -0
- package/dist/app-shell/index.d.ts +3 -0
- package/dist/app-shell/index.d.ts.map +1 -1
- package/dist/app-shell/index.js +3 -0
- package/dist/app-shell/index.js.map +1 -1
- package/dist/app-shell/prompt-home.css +159 -0
- package/dist/composer/ComposerContextMenu.d.ts +48 -0
- package/dist/composer/ComposerContextMenu.d.ts.map +1 -0
- package/dist/composer/ComposerContextMenu.js +295 -0
- package/dist/composer/ComposerContextMenu.js.map +1 -0
- package/dist/composer/ComposerContextMenu.spec.d.ts +2 -0
- package/dist/composer/ComposerContextMenu.spec.d.ts.map +1 -0
- package/dist/composer/ComposerContextMenu.spec.js +270 -0
- package/dist/composer/ComposerContextMenu.spec.js.map +1 -0
- package/dist/composer/ComposerContextMenuSearch.d.ts +11 -0
- package/dist/composer/ComposerContextMenuSearch.d.ts.map +1 -0
- package/dist/composer/ComposerContextMenuSearch.js +42 -0
- package/dist/composer/ComposerContextMenuSearch.js.map +1 -0
- package/dist/composer/ComposerContextPicker.d.ts +7 -0
- package/dist/composer/ComposerContextPicker.d.ts.map +1 -0
- package/dist/composer/ComposerContextPicker.js +71 -0
- package/dist/composer/ComposerContextPicker.js.map +1 -0
- package/dist/composer/ComposerContextPicker.spec.d.ts +2 -0
- package/dist/composer/ComposerContextPicker.spec.d.ts.map +1 -0
- package/dist/composer/ComposerContextPicker.spec.js +454 -0
- package/dist/composer/ComposerContextPicker.spec.js.map +1 -0
- package/dist/composer/ComposerContextPickerDialog.d.ts +8 -0
- package/dist/composer/ComposerContextPickerDialog.d.ts.map +1 -0
- package/dist/composer/ComposerContextPickerDialog.js +101 -0
- package/dist/composer/ComposerContextPickerDialog.js.map +1 -0
- package/dist/composer/ComposerContextPickerDialog.spec.d.ts +2 -0
- package/dist/composer/ComposerContextPickerDialog.spec.d.ts.map +1 -0
- package/dist/composer/ComposerContextPickerDialog.spec.js +329 -0
- package/dist/composer/ComposerContextPickerDialog.spec.js.map +1 -0
- package/dist/composer/ComposerContextSearchInput.d.ts +7 -0
- package/dist/composer/ComposerContextSearchInput.d.ts.map +1 -0
- package/dist/composer/ComposerContextSearchInput.js +18 -0
- package/dist/composer/ComposerContextSearchInput.js.map +1 -0
- package/dist/composer/PromptComposer.context.spec.d.ts +2 -0
- package/dist/composer/PromptComposer.context.spec.d.ts.map +1 -0
- package/dist/composer/PromptComposer.context.spec.js +383 -0
- package/dist/composer/PromptComposer.context.spec.js.map +1 -0
- package/dist/composer/PromptComposer.d.ts +19 -5
- package/dist/composer/PromptComposer.d.ts.map +1 -1
- package/dist/composer/PromptComposer.js +30 -25
- package/dist/composer/PromptComposer.js.map +1 -1
- package/dist/composer/PromptComposer.spec.js +24 -1
- package/dist/composer/PromptComposer.spec.js.map +1 -1
- package/dist/composer/TiptapComposer.d.ts +13 -2
- package/dist/composer/TiptapComposer.d.ts.map +1 -1
- package/dist/composer/TiptapComposer.js +89 -32
- package/dist/composer/TiptapComposer.js.map +1 -1
- package/dist/composer/context-items.d.ts +12 -0
- package/dist/composer/context-items.d.ts.map +1 -0
- package/dist/composer/context-items.js +46 -0
- package/dist/composer/context-items.js.map +1 -0
- package/dist/composer/context-items.spec.d.ts +2 -0
- package/dist/composer/context-items.spec.d.ts.map +1 -0
- package/dist/composer/context-items.spec.js +43 -0
- package/dist/composer/context-items.spec.js.map +1 -0
- package/dist/composer/index.d.ts +4 -1
- package/dist/composer/index.d.ts.map +1 -1
- package/dist/composer/index.js +3 -1
- package/dist/composer/index.js.map +1 -1
- package/dist/composer/runtime-adapters.d.ts +6 -1
- package/dist/composer/runtime-adapters.d.ts.map +1 -1
- package/dist/composer/runtime-adapters.js.map +1 -1
- package/dist/composer/useComposerContextPicker.d.ts +111 -0
- package/dist/composer/useComposerContextPicker.d.ts.map +1 -0
- package/dist/composer/useComposerContextPicker.js +299 -0
- package/dist/composer/useComposerContextPicker.js.map +1 -0
- package/dist/design-system/default-adapter.d.ts.map +1 -1
- package/dist/design-system/default-adapter.js +13 -7
- package/dist/design-system/default-adapter.js.map +1 -1
- package/dist/design-system/default-adapter.spec.js +13 -0
- package/dist/design-system/default-adapter.spec.js.map +1 -1
- package/dist/design-system/types.d.ts +4 -1
- package/dist/design-system/types.d.ts.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -0
- package/dist/ui/command.d.ts +8 -2
- package/dist/ui/command.d.ts.map +1 -1
- package/dist/ui/command.js +9 -2
- package/dist/ui/command.js.map +1 -1
- package/dist/ui/command.spec.js +20 -1
- package/dist/ui/command.spec.js.map +1 -1
- package/package.json +2 -15
- package/src/agentkit.ts +26 -0
- package/src/app-shell/PromptHome.spec.tsx +404 -0
- package/src/app-shell/PromptHome.tsx +111 -0
- package/src/app-shell/TemplateLibraryGrid.tsx +212 -0
- package/src/app-shell/TemplatePreviewDialog.spec.tsx +473 -0
- package/src/app-shell/TemplatePreviewDialog.tsx +224 -0
- package/src/app-shell/index.ts +3 -0
- package/src/app-shell/prompt-home.css +159 -0
- package/src/composer/ComposerContextMenu.spec.tsx +343 -0
- package/src/composer/ComposerContextMenu.tsx +610 -0
- package/src/composer/ComposerContextMenuSearch.tsx +69 -0
- package/src/composer/ComposerContextPicker.spec.tsx +520 -0
- package/src/composer/ComposerContextPicker.tsx +280 -0
- package/src/composer/ComposerContextPickerDialog.spec.tsx +405 -0
- package/src/composer/ComposerContextPickerDialog.tsx +274 -0
- package/src/composer/ComposerContextSearchInput.tsx +48 -0
- package/src/composer/PromptComposer.context.spec.tsx +577 -0
- package/src/composer/PromptComposer.spec.ts +24 -1
- package/src/composer/PromptComposer.tsx +60 -26
- package/src/composer/TiptapComposer.tsx +198 -48
- package/src/composer/context-items.spec.ts +68 -0
- package/src/composer/context-items.ts +72 -0
- package/src/composer/index.ts +27 -0
- package/src/composer/runtime-adapters.tsx +6 -1
- package/src/composer/useComposerContextPicker.ts +441 -0
- package/src/design-system/default-adapter.spec.tsx +23 -0
- package/src/design-system/default-adapter.tsx +52 -23
- package/src/design-system/types.ts +4 -1
- package/src/index.ts +0 -1
- package/src/styles.css +1 -0
- package/src/ui/command.spec.tsx +33 -1
- package/src/ui/command.tsx +52 -9
- package/dist/marketing/MarketingHome.d.ts +0 -36
- package/dist/marketing/MarketingHome.d.ts.map +0 -1
- package/dist/marketing/MarketingHome.js +0 -28
- package/dist/marketing/MarketingHome.js.map +0 -1
- package/dist/marketing/MarketingHome.spec.d.ts +0 -2
- package/dist/marketing/MarketingHome.spec.d.ts.map +0 -1
- package/dist/marketing/MarketingHome.spec.js +0 -44
- package/dist/marketing/MarketingHome.spec.js.map +0 -1
- package/dist/marketing/Starfield.d.ts +0 -8
- package/dist/marketing/Starfield.d.ts.map +0 -1
- package/dist/marketing/Starfield.js +0 -349
- package/dist/marketing/Starfield.js.map +0 -1
- package/dist/marketing/index.d.ts +0 -3
- package/dist/marketing/index.d.ts.map +0 -1
- package/dist/marketing/index.js +0 -3
- package/dist/marketing/index.js.map +0 -1
- package/src/marketing/MarketingHome.spec.tsx +0 -75
- package/src/marketing/MarketingHome.tsx +0 -183
- package/src/marketing/Starfield.tsx +0 -403
- package/src/marketing/index.ts +0 -6
|
@@ -36,12 +36,15 @@ import {
|
|
|
36
36
|
PROMPT_DOCUMENT_ATTACHMENT_ACCEPT,
|
|
37
37
|
TextAttachmentAdapter,
|
|
38
38
|
} from "./attachment-accept.js";
|
|
39
|
+
import type { ComposerContextMenuItem } from "./ComposerContextMenu.js";
|
|
39
40
|
import type { ComposerTerminalModeControl } from "./ComposerPlusMenu.js";
|
|
41
|
+
import type { ComposerContextSnapshot } from "./context-items.js";
|
|
40
42
|
import { isPastedTextAttachmentName } from "./pasted-text.js";
|
|
41
43
|
import { PastedTextChip } from "./PastedTextChip.js";
|
|
42
44
|
import { escapePromptAttachmentAttribute } from "./prompt-attachments.js";
|
|
43
45
|
import {
|
|
44
46
|
type EngineModelGroup,
|
|
47
|
+
type AgentChatContextItem,
|
|
45
48
|
type ReasoningEffort,
|
|
46
49
|
useComposerRuntimeAdapters,
|
|
47
50
|
} from "./runtime-adapters.js";
|
|
@@ -75,9 +78,15 @@ export interface PromptComposerSubmitOptions {
|
|
|
75
78
|
engine?: string;
|
|
76
79
|
effort?: ReasoningEffort;
|
|
77
80
|
attachments?: ReadonlyArray<unknown>;
|
|
81
|
+
contextItems?: ComposerContextSnapshot;
|
|
78
82
|
}
|
|
79
83
|
|
|
80
84
|
export interface PromptComposerProps {
|
|
85
|
+
contextItems?: readonly AgentChatContextItem[];
|
|
86
|
+
onRemoveContextItem?: (key: string) => void;
|
|
87
|
+
onInspectContextItem?: (key: string) => void;
|
|
88
|
+
onRetryContextItem?: (key: string) => void;
|
|
89
|
+
contextMenuItems?: readonly ComposerContextMenuItem[];
|
|
81
90
|
/** Called when the user submits the composer. */
|
|
82
91
|
onSubmit: (
|
|
83
92
|
text: string,
|
|
@@ -89,6 +98,8 @@ export interface PromptComposerProps {
|
|
|
89
98
|
/** Accessible name forwarded to the rich text editor. */
|
|
90
99
|
ariaLabel?: string;
|
|
91
100
|
disabled?: boolean;
|
|
101
|
+
/** Block all submission paths while allowing draft, file, and context staging. */
|
|
102
|
+
submissionDisabled?: boolean;
|
|
92
103
|
/** Prevent submission while preserving editor focus and draft entry. */
|
|
93
104
|
submitting?: boolean;
|
|
94
105
|
/** Present the primary action as queueing instead of immediate send. */
|
|
@@ -118,6 +129,10 @@ export interface PromptComposerProps {
|
|
|
118
129
|
voiceEnabled?: boolean;
|
|
119
130
|
/** Show file upload controls and pass submitted files to onSubmit (default: true). */
|
|
120
131
|
attachmentsEnabled?: boolean;
|
|
132
|
+
/** Host-owned file acceptance and staging; the shared composer still owns picker and chips. */
|
|
133
|
+
attachmentAdapter?: AttachmentAdapter;
|
|
134
|
+
/** Let hosts extract ordinary uploaded text without also inlining it. */
|
|
135
|
+
inlineTextAttachments?: boolean;
|
|
121
136
|
/**
|
|
122
137
|
* Controls the shared "+" affordance. Defaults to upload-only for standalone
|
|
123
138
|
* prompt forms; chat surfaces can opt into the full sidebar menu.
|
|
@@ -280,10 +295,8 @@ function formatInlineTextFile(name: string, text: string): string {
|
|
|
280
295
|
}
|
|
281
296
|
|
|
282
297
|
/**
|
|
283
|
-
*
|
|
284
|
-
*
|
|
285
|
-
* terminal state, and `unknown`/`unavailable` mean the status check has not
|
|
286
|
-
* answered — not that no provider is configured.
|
|
298
|
+
* Show the attached setup treatment only for a confirmed-missing engine with
|
|
299
|
+
* a setup component. Unresolved status does not mean a provider is missing.
|
|
287
300
|
*/
|
|
288
301
|
export function shouldGateComposerForMissingEngine(input: {
|
|
289
302
|
state: string;
|
|
@@ -295,6 +308,7 @@ export function shouldGateComposerForMissingEngine(input: {
|
|
|
295
308
|
export async function buildPromptComposerSubmission(options: {
|
|
296
309
|
text: string;
|
|
297
310
|
attachments?: ReadonlyArray<unknown>;
|
|
311
|
+
inlineTextAttachments?: boolean;
|
|
298
312
|
}): Promise<{ text: string; files: File[] }> {
|
|
299
313
|
const files: File[] = [];
|
|
300
314
|
const pastedTextBlocks: string[] = [];
|
|
@@ -311,7 +325,10 @@ export async function buildPromptComposerSubmission(options: {
|
|
|
311
325
|
files.push(file);
|
|
312
326
|
}
|
|
313
327
|
} else {
|
|
314
|
-
if (
|
|
328
|
+
if (
|
|
329
|
+
options.inlineTextAttachments !== false &&
|
|
330
|
+
isInlineableTextFile(file)
|
|
331
|
+
) {
|
|
315
332
|
try {
|
|
316
333
|
pastedTextBlocks.push(
|
|
317
334
|
formatInlineTextFile(file.name, await file.text()),
|
|
@@ -519,9 +536,15 @@ function PromptAttachmentStrip() {
|
|
|
519
536
|
|
|
520
537
|
function PromptComposerInner({
|
|
521
538
|
onSubmit,
|
|
539
|
+
contextItems,
|
|
540
|
+
onRemoveContextItem,
|
|
541
|
+
onInspectContextItem,
|
|
542
|
+
onRetryContextItem,
|
|
543
|
+
contextMenuItems,
|
|
522
544
|
placeholder,
|
|
523
545
|
ariaLabel,
|
|
524
546
|
disabled,
|
|
547
|
+
submissionDisabled,
|
|
525
548
|
submitting,
|
|
526
549
|
willQueue = false,
|
|
527
550
|
onDisabledClick,
|
|
@@ -539,6 +562,7 @@ function PromptComposerInner({
|
|
|
539
562
|
showAutoModelOption = true,
|
|
540
563
|
voiceEnabled = DEFAULT_VOICE_DICTATION_ENABLED,
|
|
541
564
|
attachmentsEnabled = true,
|
|
565
|
+
inlineTextAttachments = true,
|
|
542
566
|
plusMenuMode,
|
|
543
567
|
terminalModeControl,
|
|
544
568
|
extensionTools = false,
|
|
@@ -578,7 +602,6 @@ function PromptComposerInner({
|
|
|
578
602
|
composerRef,
|
|
579
603
|
}: PromptComposerProps) {
|
|
580
604
|
const adapters = useComposerRuntimeAdapters();
|
|
581
|
-
const t = adapters.translate!;
|
|
582
605
|
const modelsAdapter = adapters.models!;
|
|
583
606
|
const BuilderSetupCard = modelsAdapter.BuilderSetupCard;
|
|
584
607
|
const BuilderSetupContent = modelsAdapter.BuilderSetupContent;
|
|
@@ -666,6 +689,10 @@ function PromptComposerInner({
|
|
|
666
689
|
),
|
|
667
690
|
});
|
|
668
691
|
const ensureEngineReadyBeforeSubmit = useCallback(async () => {
|
|
692
|
+
if (agentEngineConfigured.state === "missing") {
|
|
693
|
+
bounceMissingKeySetup();
|
|
694
|
+
return false;
|
|
695
|
+
}
|
|
669
696
|
if (agentEngineConfigured.state !== "unknown") return true;
|
|
670
697
|
const state = await modelsAdapter.fetchAgentEngineConfiguredState?.(true, {
|
|
671
698
|
timeoutMs: 5_000,
|
|
@@ -678,7 +705,7 @@ function PromptComposerInner({
|
|
|
678
705
|
}, [agentEngineConfigured.state, bounceMissingKeySetup, modelsAdapter]);
|
|
679
706
|
|
|
680
707
|
useEffect(() => {
|
|
681
|
-
if (!autoFocus ||
|
|
708
|
+
if (!autoFocus || disabled) return;
|
|
682
709
|
const id = window.setTimeout(() => {
|
|
683
710
|
const target =
|
|
684
711
|
typeof handleRef === "object" && handleRef && "current" in handleRef
|
|
@@ -687,7 +714,7 @@ function PromptComposerInner({
|
|
|
687
714
|
target?.focus();
|
|
688
715
|
}, 50);
|
|
689
716
|
return () => window.clearTimeout(id);
|
|
690
|
-
}, [autoFocus,
|
|
717
|
+
}, [autoFocus, disabled, handleRef]);
|
|
691
718
|
|
|
692
719
|
const handleSubmit = useCallback(
|
|
693
720
|
async (
|
|
@@ -705,6 +732,7 @@ function PromptComposerInner({
|
|
|
705
732
|
const { text: finalText, files } = await buildPromptComposerSubmission({
|
|
706
733
|
text,
|
|
707
734
|
attachments,
|
|
735
|
+
inlineTextAttachments,
|
|
708
736
|
});
|
|
709
737
|
await onSubmit(finalText, files, references, {
|
|
710
738
|
intent: submitOptions?.intent ?? "immediate",
|
|
@@ -712,9 +740,18 @@ function PromptComposerInner({
|
|
|
712
740
|
engine: composerEngine,
|
|
713
741
|
effort: composerEffort,
|
|
714
742
|
attachments,
|
|
743
|
+
...(submitOptions?.contextItems === undefined
|
|
744
|
+
? {}
|
|
745
|
+
: { contextItems: submitOptions.contextItems }),
|
|
715
746
|
});
|
|
716
747
|
},
|
|
717
|
-
[
|
|
748
|
+
[
|
|
749
|
+
composerEffort,
|
|
750
|
+
composerEngine,
|
|
751
|
+
composerModel,
|
|
752
|
+
onSubmit,
|
|
753
|
+
inlineTextAttachments,
|
|
754
|
+
],
|
|
718
755
|
);
|
|
719
756
|
return (
|
|
720
757
|
<>
|
|
@@ -738,7 +775,6 @@ function PromptComposerInner({
|
|
|
738
775
|
<AgentComposerFrame
|
|
739
776
|
className={cn(
|
|
740
777
|
"text-start",
|
|
741
|
-
gateComposer && "cursor-pointer",
|
|
742
778
|
(gateComposer || onDisabledClick) &&
|
|
743
779
|
"agent-composer-area--attached-above",
|
|
744
780
|
className,
|
|
@@ -747,30 +783,27 @@ function PromptComposerInner({
|
|
|
747
783
|
style={style}
|
|
748
784
|
rootStyle={rootStyle}
|
|
749
785
|
layoutVariant={layoutVariant}
|
|
750
|
-
onClick={
|
|
751
|
-
gateComposer
|
|
752
|
-
? bounceMissingKeySetup
|
|
753
|
-
: onDisabledClick
|
|
754
|
-
? () => onDisabledClick()
|
|
755
|
-
: undefined
|
|
756
|
-
}
|
|
786
|
+
onClick={disabled ? onDisabledClick : undefined}
|
|
757
787
|
>
|
|
758
788
|
<PromptAttachmentStrip />
|
|
759
789
|
<TiptapComposer
|
|
790
|
+
contextItems={contextItems}
|
|
791
|
+
contextMenuItems={contextMenuItems}
|
|
792
|
+
onRemoveContextItem={onRemoveContextItem}
|
|
793
|
+
onInspectContextItem={onInspectContextItem}
|
|
794
|
+
onRetryContextItem={onRetryContextItem}
|
|
795
|
+
attachmentsEnabled={attachmentsEnabled}
|
|
760
796
|
ariaLabel={ariaLabel}
|
|
761
797
|
focusRef={handleRef}
|
|
762
|
-
disabled={disabled
|
|
798
|
+
disabled={disabled}
|
|
799
|
+
submissionDisabled={
|
|
800
|
+
submissionDisabled || agentEngineConfigured.state === "missing"
|
|
801
|
+
}
|
|
763
802
|
submitting={submitting}
|
|
764
803
|
willQueue={willQueue}
|
|
765
804
|
maxDocumentAttachmentBytes={maxDocumentAttachmentBytes}
|
|
766
805
|
documentAttachmentLimitLabel={documentAttachmentLimitLabel}
|
|
767
|
-
placeholder={
|
|
768
|
-
gateComposer
|
|
769
|
-
? t("agentChat.composer.connectAbove", {
|
|
770
|
-
defaultValue: "Connect AI above to continue...",
|
|
771
|
-
})
|
|
772
|
-
: placeholder
|
|
773
|
-
}
|
|
806
|
+
placeholder={placeholder}
|
|
774
807
|
initialText={initialText}
|
|
775
808
|
initialTextKey={initialTextKey}
|
|
776
809
|
onSubmit={handleSubmit}
|
|
@@ -836,12 +869,13 @@ function PromptComposerRuntime(props: PromptComposerProps) {
|
|
|
836
869
|
useComposerRuntimeAdapters().agentChat!.StaleIndexBoundary!;
|
|
837
870
|
const attachmentAdapter = useMemo(
|
|
838
871
|
() =>
|
|
872
|
+
props.attachmentAdapter ??
|
|
839
873
|
new CompositeAttachmentAdapter([
|
|
840
874
|
new RasterImageAttachmentAdapter(),
|
|
841
875
|
new BinaryDocumentAttachmentAdapter(),
|
|
842
876
|
new TextAttachmentAdapter(),
|
|
843
877
|
]),
|
|
844
|
-
[],
|
|
878
|
+
[props.attachmentAdapter],
|
|
845
879
|
);
|
|
846
880
|
const runtime = useLocalRuntime(NOOP_ADAPTER, {
|
|
847
881
|
adapters: { attachments: attachmentAdapter },
|