@agent-native/toolkit 0.228.0-nightly-20261111212500 → 0.228.0
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 +2 -0
- package/dist/app/agentkit/react/approval-card.d.ts.map +1 -1
- package/dist/app/agentkit/react/approval-card.js +5 -3
- package/dist/app/agentkit/react/approval-card.js.map +1 -1
- package/dist/app/agentkit/react/code-block.d.ts +32 -0
- package/dist/app/agentkit/react/code-block.d.ts.map +1 -0
- package/dist/app/agentkit/react/code-block.js +125 -0
- package/dist/app/agentkit/react/code-block.js.map +1 -0
- package/dist/app/agentkit/react/components.d.ts +33 -14
- package/dist/app/agentkit/react/components.d.ts.map +1 -1
- package/dist/app/agentkit/react/components.js +843 -168
- package/dist/app/agentkit/react/components.js.map +1 -1
- package/dist/app/agentkit/react/context-usage.d.ts +45 -0
- package/dist/app/agentkit/react/context-usage.d.ts.map +1 -0
- package/dist/app/agentkit/react/context-usage.js +93 -0
- package/dist/app/agentkit/react/context-usage.js.map +1 -0
- package/dist/app/agentkit/react/context.d.ts +42 -3
- package/dist/app/agentkit/react/context.d.ts.map +1 -1
- package/dist/app/agentkit/react/context.js +46 -1
- package/dist/app/agentkit/react/context.js.map +1 -1
- package/dist/app/agentkit/react/disclosure-content.d.ts +12 -0
- package/dist/app/agentkit/react/disclosure-content.d.ts.map +1 -0
- package/dist/app/agentkit/react/disclosure-content.js +33 -0
- package/dist/app/agentkit/react/disclosure-content.js.map +1 -0
- package/dist/app/agentkit/react/duration.d.ts +6 -0
- package/dist/app/agentkit/react/duration.d.ts.map +1 -0
- package/dist/app/agentkit/react/duration.js +21 -0
- package/dist/app/agentkit/react/duration.js.map +1 -0
- package/dist/app/agentkit/react/file-change.d.ts +33 -0
- package/dist/app/agentkit/react/file-change.d.ts.map +1 -0
- package/dist/app/agentkit/react/file-change.js +83 -0
- package/dist/app/agentkit/react/file-change.js.map +1 -0
- package/dist/app/agentkit/react/file-diff.d.ts +17 -0
- package/dist/app/agentkit/react/file-diff.d.ts.map +1 -0
- package/dist/app/agentkit/react/file-diff.js +94 -0
- package/dist/app/agentkit/react/file-diff.js.map +1 -0
- package/dist/app/agentkit/react/index.d.ts +7 -0
- package/dist/app/agentkit/react/index.d.ts.map +1 -1
- package/dist/app/agentkit/react/index.js +7 -0
- package/dist/app/agentkit/react/index.js.map +1 -1
- package/dist/app/agentkit/react/question-card.d.ts +67 -0
- package/dist/app/agentkit/react/question-card.d.ts.map +1 -0
- package/dist/app/agentkit/react/question-card.js +198 -0
- package/dist/app/agentkit/react/question-card.js.map +1 -0
- package/dist/app/agentkit/react/root.d.ts +3 -2
- package/dist/app/agentkit/react/root.d.ts.map +1 -1
- package/dist/app/agentkit/react/root.js +2 -2
- package/dist/app/agentkit/react/root.js.map +1 -1
- package/dist/app/agentkit/react/roving-focus.d.ts +4 -0
- package/dist/app/agentkit/react/roving-focus.d.ts.map +1 -0
- package/dist/app/agentkit/react/roving-focus.js +75 -0
- package/dist/app/agentkit/react/roving-focus.js.map +1 -0
- package/dist/app/agentkit/react/stack-trace.d.ts +34 -0
- package/dist/app/agentkit/react/stack-trace.d.ts.map +1 -0
- package/dist/app/agentkit/react/stack-trace.js +121 -0
- package/dist/app/agentkit/react/stack-trace.js.map +1 -0
- package/dist/app/agentkit/react/stop-button.d.ts.map +1 -1
- package/dist/app/agentkit/react/stop-button.js +22 -6
- package/dist/app/agentkit/react/stop-button.js.map +1 -1
- package/dist/app/agentkit/react/styles.css +1306 -395
- package/dist/app/agentkit/react/terminal.d.ts +28 -0
- package/dist/app/agentkit/react/terminal.d.ts.map +1 -0
- package/dist/app/agentkit/react/terminal.js +84 -0
- package/dist/app/agentkit/react/terminal.js.map +1 -0
- package/dist/app/agentkit/react/trace.d.ts +31 -0
- package/dist/app/agentkit/react/trace.d.ts.map +1 -0
- package/dist/app/agentkit/react/trace.js +73 -0
- package/dist/app/agentkit/react/trace.js.map +1 -0
- package/dist/app/blocks/library/HighlightedCode.d.ts +2 -1
- package/dist/app/blocks/library/HighlightedCode.d.ts.map +1 -1
- package/dist/app/blocks/library/HighlightedCode.js +8 -111
- package/dist/app/blocks/library/HighlightedCode.js.map +1 -1
- package/dist/app/chat/AgentKitAssistantChat.d.ts.map +1 -1
- package/dist/app/chat/AgentKitAssistantChat.js +23 -245
- package/dist/app/chat/AgentKitAssistantChat.js.map +1 -1
- package/dist/app/chat/agentkit-chat/guided-questions.d.ts +15 -1
- package/dist/app/chat/agentkit-chat/guided-questions.d.ts.map +1 -1
- package/dist/app/chat/agentkit-chat/guided-questions.js +142 -2
- package/dist/app/chat/agentkit-chat/guided-questions.js.map +1 -1
- package/dist/app/chat/agentkit-chat/history.js +1 -1
- package/dist/app/chat/agentkit-chat/history.js.map +1 -1
- package/dist/app/chat/agentkit-chat/index.d.ts +1 -1
- package/dist/app/chat/agentkit-chat/index.d.ts.map +1 -1
- package/dist/app/chat/agentkit-chat/index.js +1 -1
- package/dist/app/chat/agentkit-chat/index.js.map +1 -1
- package/dist/app/chat/agentkit-chat/labels.d.ts +5 -0
- package/dist/app/chat/agentkit-chat/labels.d.ts.map +1 -0
- package/dist/app/chat/agentkit-chat/labels.js +245 -0
- package/dist/app/chat/agentkit-chat/labels.js.map +1 -0
- package/dist/app/chat/agentkit-chat/questions.d.ts +1 -1
- package/dist/app/chat/agentkit-chat/questions.d.ts.map +1 -1
- package/dist/app/chat/agentkit-chat/questions.js +1 -1
- package/dist/app/chat/agentkit-chat/questions.js.map +1 -1
- package/dist/app/chat/agentkit-chat/root.d.ts.map +1 -1
- package/dist/app/chat/agentkit-chat/root.js +5 -64
- package/dist/app/chat/agentkit-chat/root.js.map +1 -1
- package/dist/app/chat/agentkit-chat/work-step-labels.d.ts +2 -0
- package/dist/app/chat/agentkit-chat/work-step-labels.d.ts.map +1 -1
- package/dist/app/chat/agentkit-chat/work-step-labels.js +31 -0
- package/dist/app/chat/agentkit-chat/work-step-labels.js.map +1 -1
- package/dist/app/chat/chat/markdown-renderer.d.ts +2 -12
- package/dist/app/chat/chat/markdown-renderer.d.ts.map +1 -1
- package/dist/app/chat/chat/markdown-renderer.js +2 -41
- package/dist/app/chat/chat/markdown-renderer.js.map +1 -1
- package/dist/app/chat/chat/tool-call-display.d.ts.map +1 -1
- package/dist/app/chat/chat/tool-call-display.js +2 -2
- package/dist/app/chat/chat/tool-call-display.js.map +1 -1
- package/dist/app/chat/conversation/AgentConversation.d.ts.map +1 -1
- package/dist/app/chat/conversation/AgentConversation.js +2 -37
- package/dist/app/chat/conversation/AgentConversation.js.map +1 -1
- package/dist/app/chat/tool-cells/BashCell.d.ts +3 -1
- package/dist/app/chat/tool-cells/BashCell.d.ts.map +1 -1
- package/dist/app/chat/tool-cells/BashCell.js +4 -40
- package/dist/app/chat/tool-cells/BashCell.js.map +1 -1
- package/dist/app/chat/tool-cells/EditCell.d.ts.map +1 -1
- package/dist/app/chat/tool-cells/EditCell.js +5 -108
- package/dist/app/chat/tool-cells/EditCell.js.map +1 -1
- package/dist/app/chat/tool-cells/FilesChangedSummary.d.ts.map +1 -1
- package/dist/app/chat/tool-cells/FilesChangedSummary.js +23 -81
- package/dist/app/chat/tool-cells/FilesChangedSummary.js.map +1 -1
- package/dist/app/chat/tool-cells/WriteCell.d.ts.map +1 -1
- package/dist/app/chat/tool-cells/WriteCell.js +5 -24
- package/dist/app/chat/tool-cells/WriteCell.js.map +1 -1
- package/dist/app/code-highlighter.d.ts +11 -0
- package/dist/app/code-highlighter.d.ts.map +1 -0
- package/dist/app/code-highlighter.js +122 -0
- package/dist/app/code-highlighter.js.map +1 -0
- package/dist/app/context-xray/ThreadContextRing.js +3 -3
- package/dist/app/context-xray/ThreadContextRing.js.map +1 -1
- package/dist/app/i18n/catalogs/ar-SA.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/ar-SA.js +22 -0
- 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 +22 -0
- package/dist/app/i18n/catalogs/de-DE.js.map +1 -1
- package/dist/app/i18n/catalogs/en-US.d.ts +22 -0
- package/dist/app/i18n/catalogs/en-US.d.ts.map +1 -1
- package/dist/app/i18n/catalogs/en-US.js +22 -0
- 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 +22 -0
- 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 +22 -0
- 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 +22 -0
- 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 +22 -0
- 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 +22 -0
- 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 +22 -0
- 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 +22 -0
- 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 +22 -0
- package/dist/app/i18n/catalogs/zh-TW.js.map +1 -1
- package/dist/app/onboarding/first-run-first-paint.d.ts +10 -0
- package/dist/app/onboarding/first-run-first-paint.d.ts.map +1 -0
- package/dist/app/onboarding/first-run-first-paint.js +22 -0
- package/dist/app/onboarding/first-run-first-paint.js.map +1 -0
- package/dist/app/onboarding/first-run-startup-gate.d.ts +3 -1
- package/dist/app/onboarding/first-run-startup-gate.d.ts.map +1 -1
- package/dist/app/onboarding/first-run-startup-gate.js +30 -6
- package/dist/app/onboarding/first-run-startup-gate.js.map +1 -1
- package/dist/app/providers/AppProviders.d.ts.map +1 -1
- package/dist/app/providers/AppProviders.js +9 -2
- package/dist/app/providers/AppProviders.js.map +1 -1
- package/dist/app/providers/BuilderSignupActivation.d.ts +2 -1
- package/dist/app/providers/BuilderSignupActivation.d.ts.map +1 -1
- package/dist/app/providers/BuilderSignupActivation.js +6 -3
- package/dist/app/providers/BuilderSignupActivation.js.map +1 -1
- package/dist/app/shared/AppShellSkeleton.d.ts.map +1 -1
- package/dist/app/shared/AppShellSkeleton.js +11 -1
- package/dist/app/shared/AppShellSkeleton.js.map +1 -1
- package/dist/app/styles/agent-native.css +2 -2
- package/dist/app/styles/tokens/agent-kit.css +20 -3
- package/dist/composer/AgentSuggestionBar.d.ts.map +1 -1
- package/dist/composer/AgentSuggestionBar.js +2 -2
- package/dist/composer/AgentSuggestionBar.js.map +1 -1
- package/dist/composer/ComposerContextMenu.js +4 -4
- package/dist/composer/ComposerContextMenu.js.map +1 -1
- package/dist/composer/ComposerContextPicker.d.ts.map +1 -1
- package/dist/composer/ComposerContextPicker.js +2 -2
- package/dist/composer/ComposerContextPicker.js.map +1 -1
- package/dist/composer/ComposerContextPickerDialog.d.ts.map +1 -1
- package/dist/composer/ComposerContextPickerDialog.js +2 -2
- package/dist/composer/ComposerContextPickerDialog.js.map +1 -1
- package/dist/composer/ComposerModePicker.d.ts.map +1 -1
- package/dist/composer/ComposerModePicker.js +2 -1
- package/dist/composer/ComposerModePicker.js.map +1 -1
- package/dist/composer/ComposerPlusMenu.js +1 -1
- package/dist/composer/ComposerPlusMenu.js.map +1 -1
- package/dist/composer/MentionChip.js +1 -1
- package/dist/composer/MentionChip.js.map +1 -1
- package/dist/composer/MentionPopover.d.ts +3 -0
- package/dist/composer/MentionPopover.d.ts.map +1 -1
- package/dist/composer/MentionPopover.js +34 -15
- package/dist/composer/MentionPopover.js.map +1 -1
- package/dist/composer/MessageQueueDrawer.d.ts.map +1 -1
- package/dist/composer/MessageQueueDrawer.js +14 -9
- package/dist/composer/MessageQueueDrawer.js.map +1 -1
- package/dist/composer/PastedTextChip.d.ts.map +1 -1
- package/dist/composer/PastedTextChip.js +14 -18
- package/dist/composer/PastedTextChip.js.map +1 -1
- package/dist/composer/PromptBar.js +1 -1
- package/dist/composer/PromptBar.js.map +1 -1
- package/dist/composer/PromptComposer.d.ts.map +1 -1
- package/dist/composer/PromptComposer.js +11 -9
- package/dist/composer/PromptComposer.js.map +1 -1
- package/dist/composer/RealtimeVoiceMode.js +2 -2
- package/dist/composer/RealtimeVoiceMode.js.map +1 -1
- package/dist/composer/TiptapComposer.d.ts.map +1 -1
- package/dist/composer/TiptapComposer.js +52 -89
- package/dist/composer/TiptapComposer.js.map +1 -1
- package/dist/composer/VoiceButton.d.ts +3 -1
- package/dist/composer/VoiceButton.d.ts.map +1 -1
- package/dist/composer/VoiceButton.js +10 -8
- package/dist/composer/VoiceButton.js.map +1 -1
- package/dist/composer/composer-notice.js +3 -3
- package/dist/composer/composer-notice.js.map +1 -1
- package/dist/composer/extensions/FileReference.js +1 -1
- package/dist/composer/extensions/FileReference.js.map +1 -1
- package/dist/composer/extensions/SkillReference.js +1 -1
- package/dist/composer/extensions/SkillReference.js.map +1 -1
- package/dist/composer/popover-surface.d.ts +1 -1
- package/dist/composer/popover-surface.d.ts.map +1 -1
- package/dist/composer/popover-surface.js +1 -1
- package/dist/composer/popover-surface.js.map +1 -1
- package/dist/context-ui/ContextUsageRing.d.ts +1 -45
- package/dist/context-ui/ContextUsageRing.d.ts.map +1 -1
- package/dist/context-ui/ContextUsageRing.js +2 -87
- package/dist/context-ui/ContextUsageRing.js.map +1 -1
- package/dist/context-ui/index.d.ts +2 -2
- package/dist/context-ui/index.d.ts.map +1 -1
- package/dist/context-ui/index.js +2 -2
- package/dist/context-ui/index.js.map +1 -1
- package/package.json +4 -4
- package/src/app/agentkit/react/approval-card.tsx +14 -2
- package/src/app/agentkit/react/code-block.spec.tsx +154 -0
- package/src/app/agentkit/react/code-block.tsx +317 -0
- package/src/app/agentkit/react/components.interaction.spec.tsx +7 -0
- package/src/app/agentkit/react/components.papercuts.spec.tsx +143 -2
- package/src/app/agentkit/react/components.spec.tsx +40 -47
- package/src/app/agentkit/react/components.tsx +1533 -413
- package/src/app/agentkit/react/composer-context.spec.tsx +35 -0
- package/src/app/agentkit/react/context-usage.tsx +353 -0
- package/src/app/agentkit/react/context.tsx +93 -1
- package/src/app/agentkit/react/disclosure-content.ts +42 -0
- package/src/app/agentkit/react/disclosures.spec.tsx +62 -4
- package/src/app/agentkit/react/duration.ts +22 -0
- package/src/app/agentkit/react/file-change.spec.tsx +124 -0
- package/src/app/agentkit/react/file-change.tsx +228 -0
- package/src/app/agentkit/react/file-diff.ts +110 -0
- package/src/app/agentkit/react/index.ts +7 -0
- package/src/app/agentkit/react/lifecycle.spec.tsx +565 -20
- package/src/app/agentkit/react/markdown.spec.tsx +18 -8
- package/src/app/agentkit/react/message-actions.spec.tsx +55 -1
- package/src/app/agentkit/react/notices.spec.tsx +4 -4
- package/src/app/agentkit/react/optimistic-send.spec.tsx +43 -0
- package/src/app/agentkit/react/question-card.spec.tsx +276 -0
- package/src/app/agentkit/react/question-card.tsx +533 -0
- package/src/app/agentkit/react/root.tsx +4 -0
- package/src/app/agentkit/react/roving-focus.spec.tsx +114 -0
- package/src/app/agentkit/react/roving-focus.ts +82 -0
- package/src/app/agentkit/react/stack-trace.spec.tsx +177 -0
- package/src/app/agentkit/react/stack-trace.tsx +281 -0
- package/src/app/agentkit/react/stop-button.spec.tsx +40 -0
- package/src/app/agentkit/react/stop-button.tsx +22 -5
- package/src/app/agentkit/react/styles.css +1306 -395
- package/src/app/agentkit/react/subagent-step.spec.tsx +554 -0
- package/src/app/agentkit/react/terminal.spec.tsx +228 -0
- package/src/app/agentkit/react/terminal.tsx +228 -0
- package/src/app/agentkit/react/trace.spec.tsx +120 -0
- package/src/app/agentkit/react/trace.tsx +239 -0
- package/src/app/blocks/library/HighlightedCode.tsx +14 -126
- package/src/app/chat/AgentKitAssistantChat.spec.tsx +28 -12
- package/src/app/chat/AgentKitAssistantChat.tsx +27 -253
- package/src/app/chat/agentkit-chat/approval-card.spec.tsx +1 -0
- package/src/app/chat/agentkit-chat/guided-questions.flow.spec.tsx +381 -0
- package/src/app/chat/agentkit-chat/guided-questions.tsx +236 -3
- package/src/app/chat/agentkit-chat/history.tsx +1 -1
- package/src/app/chat/agentkit-chat/index.ts +2 -0
- package/src/app/chat/agentkit-chat/labels.ts +259 -0
- package/src/app/chat/agentkit-chat/questions.ts +2 -0
- package/src/app/chat/agentkit-chat/root.spec.tsx +18 -0
- package/src/app/chat/agentkit-chat/root.tsx +5 -64
- package/src/app/chat/agentkit-chat/work-step-labels.ts +42 -0
- package/src/app/chat/chat/markdown-renderer.tsx +2 -59
- package/src/app/chat/chat/tool-call-display.spec.tsx +26 -14
- package/src/app/chat/chat/tool-call-display.tsx +2 -1
- package/src/app/chat/conversation/AgentConversation.tsx +2 -50
- package/src/app/chat/tool-cells/BashCell.tsx +14 -136
- package/src/app/chat/tool-cells/EditCell.tsx +11 -248
- package/src/app/chat/tool-cells/FilesChangedSummary.spec.tsx +62 -5
- package/src/app/chat/tool-cells/FilesChangedSummary.tsx +31 -162
- package/src/app/chat/tool-cells/WriteCell.tsx +11 -121
- package/src/app/code-highlighter.ts +131 -0
- package/src/app/context-xray/ThreadContextRing.tsx +7 -7
- package/src/app/i18n/catalogs/ar-SA.ts +22 -0
- package/src/app/i18n/catalogs/de-DE.ts +22 -0
- package/src/app/i18n/catalogs/en-US.ts +22 -0
- package/src/app/i18n/catalogs/es-ES.ts +22 -0
- package/src/app/i18n/catalogs/fr-FR.ts +22 -0
- package/src/app/i18n/catalogs/hi-IN.ts +22 -0
- package/src/app/i18n/catalogs/ja-JP.ts +22 -0
- package/src/app/i18n/catalogs/ko-KR.ts +22 -0
- package/src/app/i18n/catalogs/pt-BR.ts +22 -0
- package/src/app/i18n/catalogs/zh-CN.ts +22 -0
- package/src/app/i18n/catalogs/zh-TW.ts +22 -0
- package/src/app/onboarding/first-run-first-paint.spec.ts +39 -0
- package/src/app/onboarding/first-run-first-paint.ts +24 -0
- package/src/app/onboarding/first-run-startup-gate.spec.tsx +125 -13
- package/src/app/onboarding/first-run-startup-gate.tsx +48 -5
- package/src/app/providers/AppProviders.tsx +18 -0
- package/src/app/providers/BuilderSignupActivation.tsx +8 -2
- package/src/app/shared/AppShellSkeleton.spec.tsx +60 -1
- package/src/app/shared/AppShellSkeleton.tsx +31 -1
- package/src/app/styles/agent-native.css +2 -2
- package/src/app/styles/agent-native.spec.ts +2 -2
- package/src/app/styles/tokens/agent-kit.css +20 -3
- package/src/composer/AgentSuggestionBar.spec.tsx +3 -1
- package/src/composer/AgentSuggestionBar.tsx +5 -2
- package/src/composer/ComposerContextMenu.tsx +4 -4
- package/src/composer/ComposerContextPicker.tsx +8 -2
- package/src/composer/ComposerContextPickerDialog.tsx +5 -2
- package/src/composer/ComposerModePicker.tsx +2 -1
- package/src/composer/ComposerPlusMenu.tsx +1 -1
- package/src/composer/MentionChip.tsx +1 -1
- package/src/composer/MentionPopover.spec.tsx +108 -2
- package/src/composer/MentionPopover.tsx +93 -17
- package/src/composer/MessageQueueDrawer.spec.tsx +5 -5
- package/src/composer/MessageQueueDrawer.tsx +19 -12
- package/src/composer/PastedTextChip.spec.tsx +36 -0
- package/src/composer/PastedTextChip.tsx +52 -58
- package/src/composer/PromptBar.tsx +1 -1
- package/src/composer/PromptComposer.context.spec.tsx +2 -2
- package/src/composer/PromptComposer.submission.spec.tsx +27 -0
- package/src/composer/PromptComposer.tsx +17 -9
- package/src/composer/RealtimeVoiceMode.tsx +2 -2
- package/src/composer/TiptapComposer.model-picker.spec.tsx +23 -82
- package/src/composer/TiptapComposer.tsx +68 -145
- package/src/composer/VoiceButton.tsx +12 -7
- package/src/composer/composer-notice.tsx +3 -3
- package/src/composer/extensions/FileReference.tsx +1 -1
- package/src/composer/extensions/SkillReference.tsx +1 -1
- package/src/composer/popover-surface.ts +1 -1
- package/src/context-ui/ContextUsageRing.spec.tsx +33 -8
- package/src/context-ui/ContextUsageRing.tsx +13 -348
- package/src/context-ui/index.ts +7 -1
- package/dist/composer/ModelPickerParts.d.ts +0 -20
- package/dist/composer/ModelPickerParts.d.ts.map +0 -1
- package/dist/composer/ModelPickerParts.js +0 -77
- package/dist/composer/ModelPickerParts.js.map +0 -1
- package/src/composer/ModelPickerParts.tsx +0 -188
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { createContext, useContext, useEffect, useRef, useState, } from "react";
|
|
2
|
+
import { scheduleIdleMount } from "./idle-mount.js";
|
|
3
|
+
/** True while a long thread opens, so closed rows can mount later. */
|
|
4
|
+
export const AgentKitDeferClosedContentContext = createContext(false);
|
|
5
|
+
/**
|
|
6
|
+
* Keeps closed content mounted for find-in-page; in a long thread it mounts
|
|
7
|
+
* at idle, so the history paints first.
|
|
8
|
+
*/
|
|
9
|
+
export function useUntilFoundContent(open, onReveal) {
|
|
10
|
+
const ref = useRef(null);
|
|
11
|
+
const revealRef = useRef(onReveal);
|
|
12
|
+
revealRef.current = onReveal;
|
|
13
|
+
const deferClosed = useContext(AgentKitDeferClosedContentContext);
|
|
14
|
+
const [contentMounted, setContentMounted] = useState(open || !deferClosed);
|
|
15
|
+
if (open && !contentMounted)
|
|
16
|
+
setContentMounted(true);
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
if (contentMounted)
|
|
19
|
+
return;
|
|
20
|
+
return scheduleIdleMount(() => setContentMounted(true));
|
|
21
|
+
}, [contentMounted]);
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
const element = ref.current;
|
|
24
|
+
if (!element || open)
|
|
25
|
+
return;
|
|
26
|
+
element.setAttribute("hidden", "until-found");
|
|
27
|
+
const reveal = () => revealRef.current?.();
|
|
28
|
+
element.addEventListener("beforematch", reveal);
|
|
29
|
+
return () => element.removeEventListener("beforematch", reveal);
|
|
30
|
+
}, [open]);
|
|
31
|
+
return { ref, mounted: contentMounted || open };
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=disclosure-content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disclosure-content.js","sourceRoot":"","sources":["../../../../src/app/agentkit/react/disclosure-content.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,UAAU,EACV,SAAS,EACT,MAAM,EACN,QAAQ,GAET,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,sEAAsE;AACtE,MAAM,CAAC,MAAM,iCAAiC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;AAEtE;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAa,EACb,QAAkC;IAElC,MAAM,GAAG,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnC,SAAS,CAAC,OAAO,GAAG,QAAQ,CAAC;IAC7B,MAAM,WAAW,GAAG,UAAU,CAAC,iCAAiC,CAAC,CAAC;IAClE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;IAC3E,IAAI,IAAI,IAAI,CAAC,cAAc;QAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACrD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,cAAc;YAAE,OAAO;QAC3B,OAAO,iBAAiB,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IACrB,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,OAAO,IAAI,IAAI;YAAE,OAAO;QAC7B,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;QAC3C,OAAO,CAAC,gBAAgB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAChD,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAClE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACX,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,cAAc,IAAI,IAAI,EAAE,CAAC;AAClD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"duration.d.ts","sourceRoot":"","sources":["../../../../src/app/agentkit/react/duration.ts"],"names":[],"mappings":"AAAA,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,MAAM,EACV,KAAK,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAC9D,MAAM,CAkBR"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export function formatAgentKitDuration(ms, units = {}) {
|
|
2
|
+
const hour = units.hour ?? "h";
|
|
3
|
+
const minute = units.minute ?? "m";
|
|
4
|
+
const second = units.second ?? "s";
|
|
5
|
+
const totalSeconds = Math.max(0, Math.round(ms / 1_000));
|
|
6
|
+
if (totalSeconds < 60)
|
|
7
|
+
return `${Math.max(1, totalSeconds)}${second}`;
|
|
8
|
+
const minutes = Math.floor(totalSeconds / 60);
|
|
9
|
+
const seconds = totalSeconds % 60;
|
|
10
|
+
if (minutes < 60) {
|
|
11
|
+
return seconds === 0
|
|
12
|
+
? `${minutes}${minute}`
|
|
13
|
+
: `${minutes}${minute} ${seconds}${second}`;
|
|
14
|
+
}
|
|
15
|
+
const hours = Math.floor(minutes / 60);
|
|
16
|
+
const remainingMinutes = minutes % 60;
|
|
17
|
+
return remainingMinutes === 0
|
|
18
|
+
? `${hours}${hour}`
|
|
19
|
+
: `${hours}${hour} ${remainingMinutes}${minute}`;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=duration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"duration.js","sourceRoot":"","sources":["../../../../src/app/agentkit/react/duration.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,sBAAsB,CACpC,EAAU,EACV,KAAK,GAAwD,EAAE;IAE/D,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC;IAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC;IACnC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC;IACnC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;IACzD,IAAI,YAAY,GAAG,EAAE;QAAE,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,GAAG,MAAM,EAAE,CAAC;IACtE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,YAAY,GAAG,EAAE,CAAC;IAClC,IAAI,OAAO,GAAG,EAAE,EAAE,CAAC;QACjB,OAAO,OAAO,KAAK,CAAC;YAClB,CAAC,CAAC,GAAG,OAAO,GAAG,MAAM,EAAE;YACvB,CAAC,CAAC,GAAG,OAAO,GAAG,MAAM,IAAI,OAAO,GAAG,MAAM,EAAE,CAAC;IAChD,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACvC,MAAM,gBAAgB,GAAG,OAAO,GAAG,EAAE,CAAC;IACtC,OAAO,gBAAgB,KAAK,CAAC;QAC3B,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,EAAE;QACnB,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,IAAI,gBAAgB,GAAG,MAAM,EAAE,CAAC;AACrD,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type TraceCollapsibleOpenProps } from "./trace.js";
|
|
2
|
+
export interface FileChangeData {
|
|
3
|
+
filePath: string;
|
|
4
|
+
/** `edit` uses `oldText` and `newText`; `write` uses `content`. */
|
|
5
|
+
kind: "edit" | "write";
|
|
6
|
+
oldText?: string | undefined;
|
|
7
|
+
newText?: string | undefined;
|
|
8
|
+
content?: string | undefined;
|
|
9
|
+
/** A write's line count when its content was not kept. */
|
|
10
|
+
lineCount?: number | undefined;
|
|
11
|
+
truncated?: boolean | undefined;
|
|
12
|
+
}
|
|
13
|
+
export declare function fileChangeStats(change: FileChangeData): {
|
|
14
|
+
added: number;
|
|
15
|
+
removed: number;
|
|
16
|
+
};
|
|
17
|
+
/** A long directory truncates before the file name does. */
|
|
18
|
+
export declare function FilePath({ filePath }: {
|
|
19
|
+
filePath: string;
|
|
20
|
+
}): import("react").JSX.Element;
|
|
21
|
+
export declare function FileChangeStats({ change }: {
|
|
22
|
+
change: FileChangeData;
|
|
23
|
+
}): import("react").JSX.Element;
|
|
24
|
+
export declare function FileChangeBody({ change }: {
|
|
25
|
+
change: FileChangeData;
|
|
26
|
+
}): import("react").JSX.Element | null;
|
|
27
|
+
export declare function FileChange({ change, running, defaultOpen, className, ...openProps }: TraceCollapsibleOpenProps & {
|
|
28
|
+
change: FileChangeData;
|
|
29
|
+
running?: boolean;
|
|
30
|
+
defaultOpen?: boolean;
|
|
31
|
+
className?: string;
|
|
32
|
+
}): import("react").JSX.Element;
|
|
33
|
+
//# sourceMappingURL=file-change.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-change.d.ts","sourceRoot":"","sources":["../../../../src/app/agentkit/react/file-change.tsx"],"names":[],"mappings":"AAWA,OAAO,EAQL,KAAK,yBAAyB,EAC/B,MAAM,YAAY,CAAC;AAapB,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACjC;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,CAWA;AAUD,4DAA4D;AAC5D,wBAAgB,QAAQ,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,+BAgB1D;AAED,wBAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,cAAc,CAAA;CAAE,+BAerE;AAED,wBAAgB,cAAc,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,cAAc,CAAA;CAAE,sCAyDpE;AAED,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,OAAe,EACf,WAAmB,EACnB,SAAS,EACT,GAAG,SAAS,EACb,EAAE,yBAAyB,GAAG;IAC7B,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+BAoDA"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { IconFileDiff, IconFilePlus } from "@tabler/icons-react";
|
|
3
|
+
import { useMemo, useState } from "react";
|
|
4
|
+
import { CodeBlock, CodeBlockContent, CodeBlockFooter, CodeBlockLine, } from "./code-block.js";
|
|
5
|
+
import { useAgentKitLabels } from "./context.js";
|
|
6
|
+
import { cachedLineDiff, diffStats } from "./file-diff.js";
|
|
7
|
+
import { TraceCollapsible, TraceCollapsibleContent, TraceCollapsibleTrigger, TraceDescription, TraceIcon, TraceLine, TraceTitle, } from "./trace.js";
|
|
8
|
+
const MAX_COLLAPSED_LINES = 40;
|
|
9
|
+
const EXTENSION_LANGUAGES = {
|
|
10
|
+
mjs: "javascript",
|
|
11
|
+
cjs: "javascript",
|
|
12
|
+
mts: "typescript",
|
|
13
|
+
cts: "typescript",
|
|
14
|
+
htm: "html",
|
|
15
|
+
zsh: "bash",
|
|
16
|
+
};
|
|
17
|
+
export function fileChangeStats(change) {
|
|
18
|
+
if (change.kind === "write") {
|
|
19
|
+
return {
|
|
20
|
+
added: change.lineCount ??
|
|
21
|
+
(change.content ? change.content.split("\n").length : 0),
|
|
22
|
+
removed: 0,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
if (!change.oldText && !change.newText)
|
|
26
|
+
return { added: 0, removed: 0 };
|
|
27
|
+
return diffStats(cachedLineDiff(change.oldText ?? "", change.newText ?? ""));
|
|
28
|
+
}
|
|
29
|
+
function fileLanguage(filePath) {
|
|
30
|
+
const name = filePath.split(/[/\\]/).at(-1) ?? "";
|
|
31
|
+
const dot = name.lastIndexOf(".");
|
|
32
|
+
if (dot <= 0)
|
|
33
|
+
return undefined;
|
|
34
|
+
const extension = name.slice(dot + 1).toLowerCase();
|
|
35
|
+
return EXTENSION_LANGUAGES[extension] ?? extension;
|
|
36
|
+
}
|
|
37
|
+
/** A long directory truncates before the file name does. */
|
|
38
|
+
export function FilePath({ filePath }) {
|
|
39
|
+
const separator = filePath.lastIndexOf("/");
|
|
40
|
+
const directory = separator < 0 ? "" : filePath.slice(0, separator + 1);
|
|
41
|
+
const fileName = separator < 0 ? filePath : filePath.slice(separator + 1);
|
|
42
|
+
return (_jsxs(TraceTitle, { className: "agentkit-file-path", title: filePath, "data-agent-file-change-path": "", children: [directory ? (_jsx("span", { className: "agentkit-file-path-directory", children: directory })) : null, _jsx("span", { className: "agentkit-file-path-name", children: fileName })] }));
|
|
43
|
+
}
|
|
44
|
+
export function FileChangeStats({ change }) {
|
|
45
|
+
const labels = useAgentKitLabels();
|
|
46
|
+
const { added, removed } = fileChangeStats(change);
|
|
47
|
+
return (_jsxs(TraceDescription, { className: "agentkit-file-change-stats", "data-agent-file-change-stats": "", children: [_jsxs("span", { "data-sign": "added", children: ["+", added] }), change.kind === "edit" ? (_jsxs("span", { "data-sign": "removed", children: ["\u2212", removed] })) : null, change.truncated ? _jsx("span", { children: labels.workStepFilePartial }) : null] }));
|
|
48
|
+
}
|
|
49
|
+
export function FileChangeBody({ change }) {
|
|
50
|
+
const labels = useAgentKitLabels();
|
|
51
|
+
const [showAll, setShowAll] = useState(false);
|
|
52
|
+
const diff = useMemo(() => change.kind === "edit" && (change.oldText || change.newText)
|
|
53
|
+
? cachedLineDiff(change.oldText ?? "", change.newText ?? "")
|
|
54
|
+
: undefined, [change.kind, change.oldText, change.newText]);
|
|
55
|
+
const lines = diff ?? (change.content ? change.content.split("\n") : []);
|
|
56
|
+
if (!lines.length)
|
|
57
|
+
return null;
|
|
58
|
+
const hidden = showAll ? 0 : Math.max(0, lines.length - MAX_COLLAPSED_LINES);
|
|
59
|
+
const footer = hidden ? (_jsx(CodeBlockFooter, { children: _jsx("button", { type: "button", className: "agentkit-terminal-earlier", onClick: () => setShowAll(true), children: labels.workStepFileMoreLines.replace("{{count}}", () => `${hidden}`) }) })) : null;
|
|
60
|
+
if (diff) {
|
|
61
|
+
const visible = hidden ? diff.slice(0, MAX_COLLAPSED_LINES) : diff;
|
|
62
|
+
return (_jsxs(CodeBlock, { size: "sm", className: "agentkit-file-change-body", children: [_jsx(CodeBlockContent, { wrap: true, children: visible.map((line, index) => (_jsx(CodeBlockLine, { variant: line.kind === "context" ? "default" : line.kind, children: line.text }, index))) }), footer] }));
|
|
63
|
+
}
|
|
64
|
+
const content = change.content ?? "";
|
|
65
|
+
return (_jsxs(CodeBlock, { size: "sm", className: "agentkit-file-change-body", children: [_jsx(CodeBlockContent, { wrap: true, lineNumbers: true, language: fileLanguage(change.filePath), children: hidden
|
|
66
|
+
? content.split("\n").slice(0, MAX_COLLAPSED_LINES).join("\n")
|
|
67
|
+
: content }), footer] }));
|
|
68
|
+
}
|
|
69
|
+
export function FileChange({ change, running = false, defaultOpen = false, className, ...openProps }) {
|
|
70
|
+
const labels = useAgentKitLabels();
|
|
71
|
+
const hasBody = change.kind === "edit"
|
|
72
|
+
? Boolean(change.oldText || change.newText)
|
|
73
|
+
: Boolean(change.content);
|
|
74
|
+
const line = (_jsxs(TraceLine, { status: running ? "running" : undefined, children: [_jsx(TraceIcon, { children: change.kind === "edit" ? (_jsx(IconFileDiff, { "aria-hidden": "true", className: "agentkit-icon" })) : (_jsx(IconFilePlus, { "aria-hidden": "true", className: "agentkit-icon" })) }), _jsx(FilePath, { filePath: change.filePath }), running ? (_jsx("span", { className: "agentkit-visually-hidden", children: labels.taskStatusRunning })) : (_jsx(FileChangeStats, { change: change }))] }));
|
|
75
|
+
const classes = className
|
|
76
|
+
? `agentkit-file-change ${className}`
|
|
77
|
+
: "agentkit-file-change";
|
|
78
|
+
if (!hasBody) {
|
|
79
|
+
return (_jsx("div", { className: classes, "data-kind": change.kind, children: _jsx("span", { className: "agentkit-disclosure-summary", "data-expandable": "false", children: line }) }));
|
|
80
|
+
}
|
|
81
|
+
return (_jsxs(TraceCollapsible, { ...openProps, defaultOpen: defaultOpen, className: classes, "data-kind": change.kind, children: [_jsx(TraceCollapsibleTrigger, { "data-agent-file-change-row": "", children: line }), _jsx(TraceCollapsibleContent, { className: "agentkit-file-change-content", children: _jsx(FileChangeBody, { change: change }) })] }));
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=file-change.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-change.js","sourceRoot":"","sources":["../../../../src/app/agentkit/react/file-change.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface DiffLine {
|
|
2
|
+
kind: "context" | "added" | "removed";
|
|
3
|
+
text: string;
|
|
4
|
+
oldLineNo?: number;
|
|
5
|
+
newLineNo?: number;
|
|
6
|
+
}
|
|
7
|
+
export declare function computeLineDiff(oldText: string, newText: string): DiffLine[];
|
|
8
|
+
export declare function diffStats(lines: DiffLine[]): {
|
|
9
|
+
added: number;
|
|
10
|
+
removed: number;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* `computeLineDiff`, cached by text: a row's stats and its body share one
|
|
14
|
+
* quadratic pass, and a re-render reuses it.
|
|
15
|
+
*/
|
|
16
|
+
export declare function cachedLineDiff(oldText: string, newText: string): DiffLine[];
|
|
17
|
+
//# sourceMappingURL=file-diff.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-diff.d.ts","sourceRoot":"","sources":["../../../../src/app/agentkit/react/file-diff.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ,EAAE,CAiE5E;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,CAQA;AAKD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ,EAAE,CAe3E"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
export function computeLineDiff(oldText, newText) {
|
|
2
|
+
const oldLines = oldText.split("\n");
|
|
3
|
+
const newLines = newText.split("\n");
|
|
4
|
+
const MAX_LINES = 2000;
|
|
5
|
+
const a = oldLines.slice(0, MAX_LINES);
|
|
6
|
+
const b = newLines.slice(0, MAX_LINES);
|
|
7
|
+
const m = a.length;
|
|
8
|
+
const n = b.length;
|
|
9
|
+
// LCS of suffixes: cell(i, j) covers a[i..] against b[j..].
|
|
10
|
+
const width = n + 1;
|
|
11
|
+
const lengths = new Uint32Array((m + 1) * width);
|
|
12
|
+
const cell = (row, column) => lengths.at(row * width + column) ?? 0;
|
|
13
|
+
for (let i = m - 1; i >= 0; i--) {
|
|
14
|
+
for (let j = n - 1; j >= 0; j--) {
|
|
15
|
+
lengths[i * width + j] =
|
|
16
|
+
a.at(i) === b.at(j)
|
|
17
|
+
? cell(i + 1, j + 1) + 1
|
|
18
|
+
: Math.max(cell(i + 1, j), cell(i, j + 1));
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
const result = [];
|
|
22
|
+
let i = 0;
|
|
23
|
+
let j = 0;
|
|
24
|
+
let oldLineNo = 1;
|
|
25
|
+
let newLineNo = 1;
|
|
26
|
+
for (;;) {
|
|
27
|
+
const left = a.at(i);
|
|
28
|
+
const right = b.at(j);
|
|
29
|
+
if (left === undefined && right === undefined)
|
|
30
|
+
break;
|
|
31
|
+
if (left !== undefined && left === right) {
|
|
32
|
+
result.push({
|
|
33
|
+
kind: "context",
|
|
34
|
+
text: left,
|
|
35
|
+
oldLineNo: oldLineNo++,
|
|
36
|
+
newLineNo: newLineNo++,
|
|
37
|
+
});
|
|
38
|
+
i++;
|
|
39
|
+
j++;
|
|
40
|
+
}
|
|
41
|
+
else if (left !== undefined &&
|
|
42
|
+
(right === undefined || cell(i + 1, j) >= cell(i, j + 1))) {
|
|
43
|
+
// Ties remove first, so removals precede the additions replacing them.
|
|
44
|
+
result.push({ kind: "removed", text: left, oldLineNo: oldLineNo++ });
|
|
45
|
+
i++;
|
|
46
|
+
}
|
|
47
|
+
else if (right !== undefined) {
|
|
48
|
+
result.push({ kind: "added", text: right, newLineNo: newLineNo++ });
|
|
49
|
+
j++;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
for (const text of oldLines.slice(MAX_LINES)) {
|
|
53
|
+
result.push({ kind: "removed", text, oldLineNo: oldLineNo++ });
|
|
54
|
+
}
|
|
55
|
+
for (const text of newLines.slice(MAX_LINES)) {
|
|
56
|
+
result.push({ kind: "added", text, newLineNo: newLineNo++ });
|
|
57
|
+
}
|
|
58
|
+
return result;
|
|
59
|
+
}
|
|
60
|
+
export function diffStats(lines) {
|
|
61
|
+
let added = 0;
|
|
62
|
+
let removed = 0;
|
|
63
|
+
for (const line of lines) {
|
|
64
|
+
if (line.kind === "added")
|
|
65
|
+
added++;
|
|
66
|
+
else if (line.kind === "removed")
|
|
67
|
+
removed++;
|
|
68
|
+
}
|
|
69
|
+
return { added, removed };
|
|
70
|
+
}
|
|
71
|
+
const CACHED_DIFFS = 32;
|
|
72
|
+
const cachedDiffs = new Map();
|
|
73
|
+
/**
|
|
74
|
+
* `computeLineDiff`, cached by text: a row's stats and its body share one
|
|
75
|
+
* quadratic pass, and a re-render reuses it.
|
|
76
|
+
*/
|
|
77
|
+
export function cachedLineDiff(oldText, newText) {
|
|
78
|
+
const key = `${oldText.length}:${oldText}\u0000${newText}`;
|
|
79
|
+
const cached = cachedDiffs.get(key);
|
|
80
|
+
if (cached) {
|
|
81
|
+
cachedDiffs.delete(key);
|
|
82
|
+
cachedDiffs.set(key, cached);
|
|
83
|
+
return cached;
|
|
84
|
+
}
|
|
85
|
+
const diff = computeLineDiff(oldText, newText);
|
|
86
|
+
cachedDiffs.set(key, diff);
|
|
87
|
+
if (cachedDiffs.size > CACHED_DIFFS) {
|
|
88
|
+
const oldest = cachedDiffs.keys().next();
|
|
89
|
+
if (!oldest.done)
|
|
90
|
+
cachedDiffs.delete(oldest.value);
|
|
91
|
+
}
|
|
92
|
+
return diff;
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=file-diff.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-diff.js","sourceRoot":"","sources":["../../../../src/app/agentkit/react/file-diff.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
export * from "./approval-card.js";
|
|
2
|
+
export * from "./question-card.js";
|
|
2
3
|
export * from "./chat.js";
|
|
4
|
+
export * from "./code-block.js";
|
|
3
5
|
export * from "./components.js";
|
|
6
|
+
export * from "./context-usage.js";
|
|
4
7
|
export * from "./context.js";
|
|
5
8
|
export * from "./data-chart-layout.js";
|
|
9
|
+
export * from "./file-change.js";
|
|
6
10
|
export * from "./message-content-order.js";
|
|
7
11
|
export { AGENTKIT_CLIENT_REQUEST_ID_METADATA_KEY, agentKitClientRequestId, type AgentKitPendingSubmission, type AgentKitPendingSubmissionDraft, type AgentKitPendingSubmissionFile, } from "./pending-submissions.js";
|
|
8
12
|
export * from "./root.js";
|
|
13
|
+
export * from "./stack-trace.js";
|
|
9
14
|
export * from "./streaming-text.js";
|
|
15
|
+
export * from "./terminal.js";
|
|
16
|
+
export * from "./trace.js";
|
|
10
17
|
export * from "./transcript-layout.js";
|
|
11
18
|
export * from "./work-steps.js";
|
|
12
19
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/app/agentkit/react/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EACL,uCAAuC,EACvC,uBAAuB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,8BAA8B,EACnC,KAAK,6BAA6B,GACnC,MAAM,0BAA0B,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/app/agentkit/react/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EACL,uCAAuC,EACvC,uBAAuB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,8BAA8B,EACnC,KAAK,6BAA6B,GACnC,MAAM,0BAA0B,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC"}
|
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
export * from "./approval-card.js";
|
|
2
|
+
export * from "./question-card.js";
|
|
2
3
|
export * from "./chat.js";
|
|
4
|
+
export * from "./code-block.js";
|
|
3
5
|
export * from "./components.js";
|
|
6
|
+
export * from "./context-usage.js";
|
|
4
7
|
export * from "./context.js";
|
|
5
8
|
export * from "./data-chart-layout.js";
|
|
9
|
+
export * from "./file-change.js";
|
|
6
10
|
export * from "./message-content-order.js";
|
|
7
11
|
export { AGENTKIT_CLIENT_REQUEST_ID_METADATA_KEY, agentKitClientRequestId, } from "./pending-submissions.js";
|
|
8
12
|
export * from "./root.js";
|
|
13
|
+
export * from "./stack-trace.js";
|
|
9
14
|
export * from "./streaming-text.js";
|
|
15
|
+
export * from "./terminal.js";
|
|
16
|
+
export * from "./trace.js";
|
|
10
17
|
export * from "./transcript-layout.js";
|
|
11
18
|
export * from "./work-steps.js";
|
|
12
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/app/agentkit/react/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EACL,uCAAuC,EACvC,uBAAuB,GAIxB,MAAM,0BAA0B,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/app/agentkit/react/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EACL,uCAAuC,EACvC,uBAAuB,GAIxB,MAAM,0BAA0B,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
export interface AgentKitQuestionOption {
|
|
3
|
+
value: string;
|
|
4
|
+
label: string;
|
|
5
|
+
recommended?: boolean;
|
|
6
|
+
/** A CSS color for a swatch before the label. */
|
|
7
|
+
color?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface AgentKitQuestion {
|
|
10
|
+
id: string;
|
|
11
|
+
question: string;
|
|
12
|
+
description?: string;
|
|
13
|
+
/** None, with no `range` or `files`, makes it a written-answer question. */
|
|
14
|
+
options: readonly AgentKitQuestionOption[];
|
|
15
|
+
/** Answered on a slider. */
|
|
16
|
+
range?: {
|
|
17
|
+
min: number;
|
|
18
|
+
max: number;
|
|
19
|
+
step: number;
|
|
20
|
+
initial: number;
|
|
21
|
+
};
|
|
22
|
+
/** Files the user chooses or drops on the card. */
|
|
23
|
+
files?: boolean;
|
|
24
|
+
multiSelect?: boolean;
|
|
25
|
+
/** Offers the written response beside the options. On by default. */
|
|
26
|
+
allowOther?: boolean;
|
|
27
|
+
required?: boolean;
|
|
28
|
+
/** Picking an option answers this question without pressing Next. */
|
|
29
|
+
submitOnSelect?: boolean;
|
|
30
|
+
placeholder?: string;
|
|
31
|
+
}
|
|
32
|
+
export interface AgentKitQuestionAnswer {
|
|
33
|
+
values: string[];
|
|
34
|
+
other?: string;
|
|
35
|
+
files?: File[];
|
|
36
|
+
}
|
|
37
|
+
/** By question id; a skipped question has no entry. */
|
|
38
|
+
export type AgentKitQuestionAnswers = Record<string, AgentKitQuestionAnswer>;
|
|
39
|
+
export interface QuestionCardProps {
|
|
40
|
+
questions: readonly AgentKitQuestion[];
|
|
41
|
+
/** All answers at once, after the last question. */
|
|
42
|
+
onSubmit: (answers: AgentKitQuestionAnswers) => void;
|
|
43
|
+
/** Closing the card, or skipping every question. */
|
|
44
|
+
onDismiss: () => void;
|
|
45
|
+
title?: string;
|
|
46
|
+
/** Shown under the title, for every question. */
|
|
47
|
+
description?: string;
|
|
48
|
+
/** The last step's send label, such as "Generate". */
|
|
49
|
+
submitLabel?: string;
|
|
50
|
+
skipLabel?: string;
|
|
51
|
+
busy?: boolean;
|
|
52
|
+
/** Locks the answers too. */
|
|
53
|
+
disabled?: boolean;
|
|
54
|
+
/** Answers can be picked, but nothing is sent or skipped. */
|
|
55
|
+
submitBlocked?: boolean;
|
|
56
|
+
/** Shown under the actions, such as a setup notice. */
|
|
57
|
+
footer?: ReactNode;
|
|
58
|
+
/** A control beside the written response, such as dictation. */
|
|
59
|
+
renderResponseControl?: (control: {
|
|
60
|
+
append: (text: string) => void;
|
|
61
|
+
disabled: boolean;
|
|
62
|
+
}) => ReactNode;
|
|
63
|
+
className?: string;
|
|
64
|
+
}
|
|
65
|
+
/** Asks one question at a time and sends every answer in one message. */
|
|
66
|
+
export declare function QuestionCard({ questions, onSubmit, onDismiss, title, description, submitLabel, skipLabel, busy, disabled, submitBlocked, footer, renderResponseControl, className, }: QuestionCardProps): import("react").JSX.Element | null;
|
|
67
|
+
//# sourceMappingURL=question-card.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"question-card.d.ts","sourceRoot":"","sources":["../../../../src/app/agentkit/react/question-card.tsx"],"names":[],"mappings":"AAMA,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAUf,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,OAAO,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAC3C,4BAA4B;IAC5B,KAAK,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACpE,mDAAmD;IACnD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,qEAAqE;IACrE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qEAAqE;IACrE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;CAChB;AAED,uDAAuD;AACvD,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;AAE7E,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACvC,oDAAoD;IACpD,QAAQ,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,IAAI,CAAC;IACrD,oDAAoD;IACpD,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,uDAAuD;IACvD,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,gEAAgE;IAChE,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE;QAChC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;QAC/B,QAAQ,EAAE,OAAO,CAAC;KACnB,KAAK,SAAS,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAoBD,yEAAyE;AACzE,wBAAgB,YAAY,CAAC,EAC3B,SAAS,EACT,QAAQ,EACR,SAAS,EACT,KAAK,EACL,WAAW,EACX,WAAW,EACX,SAAS,EACT,IAAY,EACZ,QAAgB,EAChB,aAAqB,EACrB,MAAM,EACN,qBAAqB,EACrB,SAAS,GACV,EAAE,iBAAiB,sCA4ZnB"}
|