@agimon-ai/po-web-components 0.0.0-alpha.92 → 0.0.0-alpha.94

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require("./src/icons/icons.cjs");const e=require("./src/lib/cn.cjs"),t=require("./src/components/Accordion.cjs"),n=require("./src/lib/ansiSpans.cjs"),r=require("./src/components/AnsiText.cjs"),i=require("./src/components/Avatar.cjs"),a=require("./src/components/Dot.cjs"),o=require("./src/components/AgentAvatar.cjs"),s=require("./src/components/Badge.cjs"),c=require("./src/components/Tooltip.cjs"),l=require("./src/components/Breadcrumb.cjs"),u=require("./src/components/Spinner.cjs"),d=require("./src/components/Button.cjs"),f=require("./src/components/Dialog.cjs"),p=require("./src/lib/review.cjs"),ee=require("./src/components/DiffView.cjs"),m=require("./src/components/Drawer.cjs"),h=require("./src/components/DropdownMenu.cjs"),g=require("./src/components/Checkbox.cjs"),_=require("./src/lib/editorLanguage.cjs"),v=require("./src/lib/markdownMedia.cjs"),y=require("./src/lib/syntaxHighlight.cjs"),b=require("./src/components/SyntaxText.cjs"),te=require("./src/components/CodeBlock.cjs"),ne=require("./src/components/Skeleton.cjs"),re=require("./src/components/CodeEditor.cjs"),x=require("./src/components/Collapsible.cjs"),S=require("./src/components/Input.cjs"),C=require("./src/lib/optionList.cjs"),w=require("./src/components/OptionList.cjs"),T=require("./src/components/Command.cjs"),ie=require("./src/components/EmptyState.cjs"),E=require("./src/components/FlowGraph.cjs"),D=require("./src/lib/hashlineHighlight.cjs"),ae=require("./src/components/HashlineLines.cjs"),O=require("./src/components/Kbd.cjs"),k=require("./src/components/McpToolWidget.cjs"),oe=require("./src/components/Label.cjs"),se=require("./src/components/MediaViewerDialog.cjs"),ce=require("./src/components/Markdown.cjs"),le=require("./src/components/ViewableImage.cjs"),ue=require("./src/lib/media.cjs"),A=require("./src/components/PdfPreview.cjs"),de=require("./src/components/MediaPreview.cjs"),j=require("./src/components/StatusBadge.cjs"),M=require("./src/components/MessageItem.cjs"),N=require("./src/components/MessageLines.cjs"),P=require("./src/components/Panel.cjs"),F=require("./src/components/Popover.cjs"),I=require("./src/components/Picker.cjs"),L=require("./src/lib/runDuration.cjs"),R=require("./src/components/LiveDuration.cjs"),z=require("./src/components/Progress.cjs"),B=require("./src/components/RadioGroup.cjs"),V=require("./src/components/Textarea.cjs"),H=require("./src/components/ReviewCommentDraft.cjs"),U=require("./src/components/ScrollArea.cjs"),fe=require("./src/components/SectionLabel.cjs"),W=require("./src/components/Select.cjs"),pe=require("./src/components/Separator.cjs"),G=require("./src/components/Settings.cjs"),K=require("./src/components/Sheet.cjs"),me=require("./src/components/StreamCursor.cjs"),he=require("./src/components/Switch.cjs"),q=require("./src/components/Tabs.cjs"),ge=require("./src/components/TerminalView.cjs"),J=require("./src/components/Toast.cjs"),_e=require("./src/components/PathText.cjs"),ve=require("./src/components/ToolPathLink.cjs"),ye=require("./src/lib/collapse.cjs"),Y=require("./src/lib/hashlineView.cjs"),X=require("./src/lib/pathGroups.cjs"),Z=require("./src/lib/tone.cjs"),be=require("./src/types/editor.cjs"),Q=require("./src/types/tone.cjs");let $=require("lucide-react");exports.ACCENT_TONES=Q.ACCENT_TONES,exports.Accordion=t.Accordion,exports.AccordionContent=t.AccordionContent,exports.AccordionItem=t.AccordionItem,exports.AccordionTrigger=t.AccordionTrigger,Object.defineProperty(exports,"ActivityIcon",{enumerable:!0,get:function(){return $.Activity}}),exports.AgentAvatar=o.AgentAvatar,Object.defineProperty(exports,"AlertIcon",{enumerable:!0,get:function(){return $.CircleAlert}}),exports.AnsiLine=r.AnsiLine,exports.AnsiText=r.AnsiText,Object.defineProperty(exports,"AppWindowIcon",{enumerable:!0,get:function(){return $.AppWindow}}),Object.defineProperty(exports,"ArrowLeftIcon",{enumerable:!0,get:function(){return $.ArrowLeft}}),Object.defineProperty(exports,"ArrowRightIcon",{enumerable:!0,get:function(){return $.ArrowRight}}),Object.defineProperty(exports,"AudioLinesIcon",{enumerable:!0,get:function(){return $.AudioLines}}),exports.Avatar=i.Avatar,exports.AvatarFallback=i.AvatarFallback,exports.AvatarImage=i.AvatarImage,exports.BREADCRUMB_ELLIPSIS=l.BREADCRUMB_ELLIPSIS,exports.Badge=s.Badge,Object.defineProperty(exports,"BellIcon",{enumerable:!0,get:function(){return $.Bell}}),Object.defineProperty(exports,"BookmarkPlusIcon",{enumerable:!0,get:function(){return $.BookmarkPlus}}),Object.defineProperty(exports,"BranchIcon",{enumerable:!0,get:function(){return $.GitBranch}}),exports.Breadcrumb=l.Breadcrumb,exports.Button=d.Button,exports.CHIP_TONES=Q.CHIP_TONES,exports.CHIP_TO_STATUS=Z.CHIP_TO_STATUS,Object.defineProperty(exports,"CalendarIcon",{enumerable:!0,get:function(){return $.Calendar}}),Object.defineProperty(exports,"CheckIcon",{enumerable:!0,get:function(){return $.Check}}),exports.Checkbox=g.Checkbox,Object.defineProperty(exports,"ChevronDownIcon",{enumerable:!0,get:function(){return $.ChevronDown}}),Object.defineProperty(exports,"ChevronRightIcon",{enumerable:!0,get:function(){return $.ChevronRight}}),Object.defineProperty(exports,"ChevronUpIcon",{enumerable:!0,get:function(){return $.ChevronUp}}),Object.defineProperty(exports,"CloseIcon",{enumerable:!0,get:function(){return $.X}}),exports.CodeBlock=te.CodeBlock,exports.CodeEditor=re.CodeEditor,exports.Collapsible=x.Collapsible,exports.CollapsibleContent=x.CollapsibleContent,exports.CollapsibleTrigger=x.CollapsibleTrigger,exports.CommandDialog=T.CommandDialog,exports.CommandEmpty=T.CommandEmpty,exports.CommandFooter=T.CommandFooter,exports.CommandGroup=T.CommandGroup,exports.CommandGroupLabel=T.CommandGroupLabel,exports.CommandHeader=T.CommandHeader,exports.CommandInput=T.CommandInput,exports.CommandItem=T.CommandItem,exports.CommandItemLabel=T.CommandItemLabel,exports.CommandList=T.CommandList,Object.defineProperty(exports,"CopyIcon",{enumerable:!0,get:function(){return $.Copy}}),exports.DOT_TONES=Q.DOT_TONES,exports.Dialog=f.Dialog,exports.DialogBody=f.DialogBody,exports.DialogClose=f.DialogClose,exports.DialogContent=f.DialogContent,exports.DialogDescription=f.DialogDescription,exports.DialogFooter=f.DialogFooter,exports.DialogHeader=f.DialogHeader,exports.DialogTitle=f.DialogTitle,exports.DialogTrigger=f.DialogTrigger,exports.DiffView=ee.DiffView,exports.Dot=a.Dot,Object.defineProperty(exports,"DownloadIcon",{enumerable:!0,get:function(){return $.Download}}),exports.Drawer=m.Drawer,exports.DropdownMenu=h.DropdownMenu,exports.DropdownMenuCheckboxItem=h.DropdownMenuCheckboxItem,exports.DropdownMenuContent=h.DropdownMenuContent,exports.DropdownMenuGroup=h.DropdownMenuGroup,exports.DropdownMenuItem=h.DropdownMenuItem,exports.DropdownMenuLabel=h.DropdownMenuLabel,exports.DropdownMenuRadioGroup=h.DropdownMenuRadioGroup,exports.DropdownMenuRadioItem=h.DropdownMenuRadioItem,exports.DropdownMenuSeparator=h.DropdownMenuSeparator,exports.DropdownMenuShortcut=h.DropdownMenuShortcut,exports.DropdownMenuSub=h.DropdownMenuSub,exports.DropdownMenuSubContent=h.DropdownMenuSubContent,exports.DropdownMenuSubTrigger=h.DropdownMenuSubTrigger,exports.DropdownMenuTrigger=h.DropdownMenuTrigger,Object.defineProperty(exports,"EditIcon",{enumerable:!0,get:function(){return $.Pencil}}),exports.EmptyState=ie.EmptyState,Object.defineProperty(exports,"EnterIcon",{enumerable:!0,get:function(){return $.CornerDownLeft}}),Object.defineProperty(exports,"ExternalLinkIcon",{enumerable:!0,get:function(){return $.ExternalLink}}),Object.defineProperty(exports,"FileIcon",{enumerable:!0,get:function(){return $.FileText}}),exports.FlowGraph=E.FlowGraph,Object.defineProperty(exports,"FolderIcon",{enumerable:!0,get:function(){return $.Folder}}),Object.defineProperty(exports,"ForkIcon",{enumerable:!0,get:function(){return $.GitFork}}),exports.GREP_COLLAPSED_LINES=Y.GREP_COLLAPSED_LINES,Object.defineProperty(exports,"GearIcon",{enumerable:!0,get:function(){return $.Settings}}),Object.defineProperty(exports,"GlobeIcon",{enumerable:!0,get:function(){return $.Globe}}),Object.defineProperty(exports,"GridIcon",{enumerable:!0,get:function(){return $.LayoutGrid}}),exports.HashlineLines=ae.HashlineLines,Object.defineProperty(exports,"HelpIcon",{enumerable:!0,get:function(){return $.CircleHelp}}),Object.defineProperty(exports,"HomeIcon",{enumerable:!0,get:function(){return $.House}}),Object.defineProperty(exports,"ImageIcon",{enumerable:!0,get:function(){return $.Image}}),exports.Input=S.Input,exports.Kbd=O.Kbd,Object.defineProperty(exports,"KebabIcon",{enumerable:!0,get:function(){return $.MoreVertical}}),exports.LINE_TONE_TO_STATUS=Z.LINE_TONE_TO_STATUS,exports.Label=oe.Label,Object.defineProperty(exports,"LightbulbIcon",{enumerable:!0,get:function(){return $.Lightbulb}}),Object.defineProperty(exports,"ListIcon",{enumerable:!0,get:function(){return $.List}}),exports.LiveDuration=R.LiveDuration,Object.defineProperty(exports,"LoaderIcon",{enumerable:!0,get:function(){return $.Loader2}}),Object.defineProperty(exports,"LockIcon",{enumerable:!0,get:function(){return $.Lock}}),exports.MAX_DIGIT_SHORTCUT=C.MAX_DIGIT_SHORTCUT,exports.MEDIA_KINDS=be.MEDIA_KINDS,exports.MESSAGE_LINE_TONES=Q.MESSAGE_LINE_TONES,exports.Markdown=ce.Markdown,exports.McpToolFields=k.McpToolFields,exports.McpToolFrame=k.McpToolFrame,exports.McpToolOutput=k.McpToolOutput,exports.MediaPreview=de.MediaPreview,exports.MediaViewerDialog=se.MediaViewerDialog,Object.defineProperty(exports,"MenuIcon",{enumerable:!0,get:function(){return $.Menu}}),Object.defineProperty(exports,"MessageIcon",{enumerable:!0,get:function(){return $.MessageCircle}}),exports.MessageItem=M.MessageItem,exports.MessageItemBody=M.MessageItemBody,exports.MessageItemGroup=M.MessageItemGroup,exports.MessageItemHeader=M.MessageItemHeader,exports.MessageItemHeaderAccessoryContext=M.MessageItemHeaderAccessoryContext,exports.MessageItemStatus=M.MessageItemStatus,exports.MessageLines=N.MessageLines,Object.defineProperty(exports,"MicIcon",{enumerable:!0,get:function(){return $.Mic}}),Object.defineProperty(exports,"MonitorIcon",{enumerable:!0,get:function(){return $.Monitor}}),exports.NavTab=q.NavTab,exports.NavTabBadge=q.NavTabBadge,exports.OptionLabel=w.OptionLabel,exports.OptionList=w.OptionList,exports.OptionRow=w.OptionRow,Object.defineProperty(exports,"PaletteIcon",{enumerable:!0,get:function(){return $.Palette}}),exports.Panel=P.Panel,exports.PanelBody=P.PanelBody,exports.PanelHeader=P.PanelHeader,Object.defineProperty(exports,"PaperclipIcon",{enumerable:!0,get:function(){return $.Paperclip}}),exports.PathText=_e.PathText,exports.PdfPreview=A.PdfPreview,exports.PickerContent=I.PickerContent,Object.defineProperty(exports,"PlayCircleIcon",{enumerable:!0,get:function(){return $.CirclePlay}}),Object.defineProperty(exports,"PlusIcon",{enumerable:!0,get:function(){return $.Plus}}),exports.Popover=F.Popover,exports.PopoverAnchor=F.PopoverAnchor,exports.PopoverClose=F.PopoverClose,exports.PopoverContent=F.PopoverContent,exports.PopoverFooter=F.PopoverFooter,exports.PopoverHeader=F.PopoverHeader,exports.PopoverTrigger=F.PopoverTrigger,exports.Progress=z.Progress,Object.defineProperty(exports,"PuzzleIcon",{enumerable:!0,get:function(){return $.Puzzle}}),Object.defineProperty(exports,"QuoteIcon",{enumerable:!0,get:function(){return $.Quote}}),exports.READ_COLLAPSED_LINES=Y.READ_COLLAPSED_LINES,exports.RadioGroup=B.RadioGroup,exports.RadioGroupCard=B.RadioGroupCard,exports.RadioGroupItem=B.RadioGroupItem,Object.defineProperty(exports,"RefreshIcon",{enumerable:!0,get:function(){return $.RefreshCw}}),exports.ReviewCommentDraft=H.ReviewCommentDraft,Object.defineProperty(exports,"RewindIcon",{enumerable:!0,get:function(){return $.Rewind}}),exports.STATUS_EDGE=j.STATUS_EDGE,exports.STATUS_GLYPH=M.STATUS_GLYPH,exports.STATUS_LABEL=M.STATUS_LABEL,exports.STATUS_TONES=Q.STATUS_TONES,exports.STATUS_TO_CHIP=Z.STATUS_TO_CHIP,exports.STATUS_TO_DOT=Z.STATUS_TO_DOT,exports.ScrollArea=U.ScrollArea,exports.ScrollBar=U.ScrollBar,Object.defineProperty(exports,"SearchIcon",{enumerable:!0,get:function(){return $.Search}}),exports.SectionLabel=fe.SectionLabel,exports.Select=W.Select,exports.SelectContent=W.SelectContent,exports.SelectGroup=W.SelectGroup,exports.SelectItem=W.SelectItem,exports.SelectLabel=W.SelectLabel,exports.SelectSeparator=W.SelectSeparator,exports.SelectTrigger=W.SelectTrigger,exports.SelectValue=W.SelectValue,Object.defineProperty(exports,"SendIcon",{enumerable:!0,get:function(){return $.Send}}),exports.Separator=pe.Separator,Object.defineProperty(exports,"ServerIcon",{enumerable:!0,get:function(){return $.Server}}),exports.SettingsActions=G.SettingsActions,exports.SettingsCard=G.SettingsCard,exports.SettingsDescription=G.SettingsDescription,exports.SettingsField=G.SettingsField,exports.SettingsHeader=G.SettingsHeader,exports.SettingsNote=G.SettingsNote,exports.SettingsPage=G.SettingsPage,exports.SettingsRow=G.SettingsRow,exports.SettingsRowDescription=G.SettingsRowDescription,exports.SettingsRowText=G.SettingsRowText,exports.SettingsRowTitle=G.SettingsRowTitle,exports.SettingsSection=G.SettingsSection,exports.SettingsSectionDescription=G.SettingsSectionDescription,exports.SettingsSectionHeader=G.SettingsSectionHeader,exports.SettingsSectionTitle=G.SettingsSectionTitle,exports.SettingsTitle=G.SettingsTitle,exports.Sheet=K.Sheet,exports.SheetBody=K.SheetBody,exports.SheetClose=K.SheetClose,exports.SheetContent=K.SheetContent,exports.SheetDescription=K.SheetDescription,exports.SheetFooter=K.SheetFooter,exports.SheetHeader=K.SheetHeader,exports.SheetOverlay=K.SheetOverlay,exports.SheetTitle=K.SheetTitle,exports.SheetTrigger=K.SheetTrigger,Object.defineProperty(exports,"ShieldIcon",{enumerable:!0,get:function(){return $.ShieldCheck}}),Object.defineProperty(exports,"ShrinkIcon",{enumerable:!0,get:function(){return $.Shrink}}),exports.Skeleton=ne.Skeleton,Object.defineProperty(exports,"SlidersIcon",{enumerable:!0,get:function(){return $.SlidersHorizontal}}),Object.defineProperty(exports,"SparklesIcon",{enumerable:!0,get:function(){return $.Sparkles}}),exports.Spinner=u.Spinner,exports.StatusBadge=j.StatusBadge,Object.defineProperty(exports,"StopIcon",{enumerable:!0,get:function(){return $.Square}}),exports.StreamCursor=me.StreamCursor,exports.Switch=he.Switch,exports.SyntaxLine=b.SyntaxLine,exports.SyntaxText=b.SyntaxText,exports.Tabs=q.Tabs,exports.TabsContent=q.TabsContent,exports.TabsList=q.TabsList,exports.TabsTrigger=q.TabsTrigger,Object.defineProperty(exports,"TaskIcon",{enumerable:!0,get:function(){return $.SquareCheckBig}}),exports.TerminalView=ge.TerminalView,exports.Textarea=V.Textarea,exports.Toast=J.Toast,exports.ToastAction=J.ToastAction,exports.ToastClose=J.ToastClose,exports.ToastDescription=J.ToastDescription,exports.ToastProvider=J.ToastProvider,exports.ToastTitle=J.ToastTitle,exports.ToastViewport=J.ToastViewport,exports.ToolPathLink=ve.ToolPathLink,exports.Tooltip=c.Tooltip,exports.TooltipContent=c.TooltipContent,exports.TooltipProvider=c.TooltipProvider,exports.TooltipTrigger=c.TooltipTrigger,Object.defineProperty(exports,"TrashIcon",{enumerable:!0,get:function(){return $.Trash2}}),Object.defineProperty(exports,"UnlockIcon",{enumerable:!0,get:function(){return $.LockOpen}}),Object.defineProperty(exports,"UserIcon",{enumerable:!0,get:function(){return $.UserRound}}),Object.defineProperty(exports,"UsersIcon",{enumerable:!0,get:function(){return $.Users}}),exports.ViewableImage=le.ViewableImage,Object.defineProperty(exports,"VolumeIcon",{enumerable:!0,get:function(){return $.Volume2}}),Object.defineProperty(exports,"WorkflowIcon",{enumerable:!0,get:function(){return $.Workflow}}),Object.defineProperty(exports,"WrenchIcon",{enumerable:!0,get:function(){return $.Wrench}}),exports.agentInitials=o.agentInitials,exports.ansiSpans=n.ansiSpans,exports.badgeVariants=s.badgeVariants,exports.breadcrumbSegments=l.breadcrumbSegments,exports.buildReviewPrompt=p.buildReviewPrompt,exports.buttonVariants=d.buttonVariants,exports.clockRefreshMs=L.clockRefreshMs,exports.clockText=L.clockText,exports.cn=e.cn,exports.collapseLines=ye.collapseLines,exports.compactDetails=Y.compactDetails,exports.defaultReviewHeading=p.defaultReviewHeading,exports.detectGrammar=y.detectGrammar,exports.dialogFooterVariants=f.dialogFooterVariants,exports.diffGutterWidth=p.diffGutterWidth,exports.diffRangeOf=p.diffRangeOf,exports.dotVariants=a.dotVariants,exports.drawableImageUrl=v.drawableImageUrl,exports.dropdownMenuItemVariants=h.dropdownMenuItemVariants,exports.fieldVariants=S.fieldVariants,exports.formatRunDuration=L.formatRunDuration,exports.grammarKeyOf=_.grammarKeyOf,exports.groupByDirectory=X.groupByDirectory,exports.groupRowLabel=X.groupRowLabel,exports.handleOptionListKey=C.handleOptionListKey,exports.hashlineBody=Y.hashlineBody,exports.hashlineGroups=D.hashlineGroups,exports.hashlineGroupsKey=D.hashlineGroupsKey,exports.highlightToLines=y.highlightToLines,exports.markdownMediaReview=v.markdownMediaReview,exports.markdownMediaReviewSlot=v.markdownMediaReviewSlot,exports.mediaKindOf=ue.mediaKindOf,exports.messageItemRowVariants=M.messageItemRowVariants,exports.messageItemStatusVariants=M.messageItemStatusVariants,exports.messageItemVariants=M.messageItemVariants,exports.messageLineVariants=N.messageLineVariants,exports.optionListHint=C.optionListHint,exports.optionListVariants=w.optionListVariants,exports.optionMarker=C.optionMarker,exports.optionMarkerVariants=w.optionMarkerVariants,exports.optionRowVariants=w.optionRowVariants,exports.parseFileHeader=Y.parseFileHeader,exports.parseTaggedLine=Y.parseTaggedLine,exports.presentHashlineLines=Y.presentHashlineLines,exports.resolvePdfViewportRegion=A.resolvePdfViewportRegion,exports.resultTextLines=Y.resultTextLines,exports.reviewCommentAnchor=p.reviewCommentAnchor,exports.statusBadgeVariants=j.statusBadgeVariants,exports.svgImageUrl=v.svgImageUrl,exports.syntaxStyleOf=y.syntaxStyleOf,exports.tabBadgeVariants=q.tabBadgeVariants,exports.tabVariants=q.tabVariants,exports.takeTrailingNotice=Y.takeTrailingNotice,exports.toastVariants=J.toastVariants,exports.toolTone=M.toolTone,exports.trimSnippet=p.trimSnippet,exports.useMessageItem=M.useMessageItem,exports.useSyntaxLines=b.useSyntaxLines;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require("./src/icons/icons.cjs");const ee=require("./src/lib/cn.cjs"),e=require("./src/components/Accordion.cjs"),t=require("./src/lib/ansiSpans.cjs"),n=require("./src/components/AnsiText.cjs"),r=require("./src/components/Avatar.cjs"),i=require("./src/components/Dot.cjs"),a=require("./src/components/AgentAvatar.cjs"),o=require("./src/components/Badge.cjs"),s=require("./src/components/Tooltip.cjs"),c=require("./src/components/Breadcrumb.cjs"),l=require("./src/components/Spinner.cjs"),u=require("./src/components/Button.cjs"),d=require("./src/components/Dialog.cjs"),f=require("./src/lib/review.cjs"),p=require("./src/components/DiffView.cjs"),te=require("./src/components/Drawer.cjs"),m=require("./src/components/DropdownMenu.cjs"),h=require("./src/components/Checkbox.cjs"),g=require("./src/lib/editorLanguage.cjs"),_=require("./src/lib/markdownMedia.cjs"),v=require("./src/lib/syntaxHighlight.cjs"),y=require("./src/components/SyntaxText.cjs"),ne=require("./src/components/CodeBlock.cjs"),re=require("./src/components/Skeleton.cjs"),ie=require("./src/components/CodeEditor.cjs"),b=require("./src/components/Collapsible.cjs"),x=require("./src/components/Input.cjs"),S=require("./src/lib/optionList.cjs"),C=require("./src/components/OptionList.cjs"),w=require("./src/components/Command.cjs"),T=require("./src/components/EmptyState.cjs"),E=require("./src/components/FlowGraph.cjs"),D=require("./src/lib/hashlineHighlight.cjs"),ae=require("./src/components/HashlineLines.cjs"),oe=require("./src/components/Kbd.cjs"),O=require("./src/components/McpToolWidget.cjs"),se=require("./src/components/Label.cjs"),ce=require("./src/components/MediaViewerDialog.cjs"),le=require("./src/components/Markdown.cjs"),ue=require("./src/components/ViewableImage.cjs"),de=require("./src/lib/media.cjs"),k=require("./src/components/PdfPreview.cjs"),fe=require("./src/components/MediaPreview.cjs"),A=require("./src/components/StatusBadge.cjs"),j=require("./src/components/MessageItem.cjs"),M=require("./src/components/MessageLines.cjs"),N=require("./src/components/Panel.cjs"),P=require("./src/components/Popover.cjs"),F=require("./src/components/Picker.cjs"),I=require("./src/lib/profilePicker.cjs"),L=require("./src/components/ProfilePicker.cjs"),R=require("./src/lib/runDuration.cjs"),z=require("./src/components/LiveDuration.cjs"),B=require("./src/components/Progress.cjs"),V=require("./src/components/RadioGroup.cjs"),pe=require("./src/components/Textarea.cjs"),me=require("./src/components/ReviewCommentDraft.cjs"),H=require("./src/components/ScrollArea.cjs"),he=require("./src/components/SectionLabel.cjs"),U=require("./src/components/Select.cjs"),ge=require("./src/components/Separator.cjs"),W=require("./src/components/Settings.cjs"),G=require("./src/components/Sheet.cjs"),_e=require("./src/components/StreamCursor.cjs"),ve=require("./src/components/Switch.cjs"),K=require("./src/components/Tabs.cjs"),ye=require("./src/components/TerminalView.cjs"),q=require("./src/components/Toast.cjs"),be=require("./src/components/PathText.cjs"),xe=require("./src/components/ToolPathLink.cjs"),J=require("./src/lib/collapse.cjs"),Y=require("./src/lib/hashlineView.cjs"),X=require("./src/lib/pathGroups.cjs"),Z=require("./src/lib/tone.cjs"),Se=require("./src/types/editor.cjs"),Q=require("./src/types/tone.cjs");let $=require("lucide-react");exports.ACCENT_TONES=Q.ACCENT_TONES,exports.Accordion=e.Accordion,exports.AccordionContent=e.AccordionContent,exports.AccordionItem=e.AccordionItem,exports.AccordionTrigger=e.AccordionTrigger,Object.defineProperty(exports,"ActivityIcon",{enumerable:!0,get:function(){return $.Activity}}),exports.AgentAvatar=a.AgentAvatar,Object.defineProperty(exports,"AlertIcon",{enumerable:!0,get:function(){return $.CircleAlert}}),exports.AnsiLine=n.AnsiLine,exports.AnsiText=n.AnsiText,Object.defineProperty(exports,"AppWindowIcon",{enumerable:!0,get:function(){return $.AppWindow}}),Object.defineProperty(exports,"ArrowLeftIcon",{enumerable:!0,get:function(){return $.ArrowLeft}}),Object.defineProperty(exports,"ArrowRightIcon",{enumerable:!0,get:function(){return $.ArrowRight}}),Object.defineProperty(exports,"AudioLinesIcon",{enumerable:!0,get:function(){return $.AudioLines}}),exports.Avatar=r.Avatar,exports.AvatarFallback=r.AvatarFallback,exports.AvatarImage=r.AvatarImage,exports.BREADCRUMB_ELLIPSIS=c.BREADCRUMB_ELLIPSIS,exports.Badge=o.Badge,Object.defineProperty(exports,"BellIcon",{enumerable:!0,get:function(){return $.Bell}}),Object.defineProperty(exports,"BookmarkPlusIcon",{enumerable:!0,get:function(){return $.BookmarkPlus}}),Object.defineProperty(exports,"BranchIcon",{enumerable:!0,get:function(){return $.GitBranch}}),exports.Breadcrumb=c.Breadcrumb,exports.Button=u.Button,exports.CHIP_TONES=Q.CHIP_TONES,exports.CHIP_TO_STATUS=Z.CHIP_TO_STATUS,Object.defineProperty(exports,"CalendarIcon",{enumerable:!0,get:function(){return $.Calendar}}),Object.defineProperty(exports,"CheckIcon",{enumerable:!0,get:function(){return $.Check}}),exports.Checkbox=h.Checkbox,Object.defineProperty(exports,"ChevronDownIcon",{enumerable:!0,get:function(){return $.ChevronDown}}),Object.defineProperty(exports,"ChevronRightIcon",{enumerable:!0,get:function(){return $.ChevronRight}}),Object.defineProperty(exports,"ChevronUpIcon",{enumerable:!0,get:function(){return $.ChevronUp}}),Object.defineProperty(exports,"CloseIcon",{enumerable:!0,get:function(){return $.X}}),exports.CodeBlock=ne.CodeBlock,exports.CodeEditor=ie.CodeEditor,exports.Collapsible=b.Collapsible,exports.CollapsibleContent=b.CollapsibleContent,exports.CollapsibleTrigger=b.CollapsibleTrigger,exports.CommandDialog=w.CommandDialog,exports.CommandEmpty=w.CommandEmpty,exports.CommandFooter=w.CommandFooter,exports.CommandGroup=w.CommandGroup,exports.CommandGroupLabel=w.CommandGroupLabel,exports.CommandHeader=w.CommandHeader,exports.CommandInput=w.CommandInput,exports.CommandItem=w.CommandItem,exports.CommandItemLabel=w.CommandItemLabel,exports.CommandList=w.CommandList,Object.defineProperty(exports,"CopyIcon",{enumerable:!0,get:function(){return $.Copy}}),exports.DOT_TONES=Q.DOT_TONES,exports.Dialog=d.Dialog,exports.DialogBody=d.DialogBody,exports.DialogClose=d.DialogClose,exports.DialogContent=d.DialogContent,exports.DialogDescription=d.DialogDescription,exports.DialogFooter=d.DialogFooter,exports.DialogHeader=d.DialogHeader,exports.DialogTitle=d.DialogTitle,exports.DialogTrigger=d.DialogTrigger,exports.DiffView=p.DiffView,exports.Dot=i.Dot,Object.defineProperty(exports,"DownloadIcon",{enumerable:!0,get:function(){return $.Download}}),exports.Drawer=te.Drawer,exports.DropdownMenu=m.DropdownMenu,exports.DropdownMenuCheckboxItem=m.DropdownMenuCheckboxItem,exports.DropdownMenuContent=m.DropdownMenuContent,exports.DropdownMenuGroup=m.DropdownMenuGroup,exports.DropdownMenuItem=m.DropdownMenuItem,exports.DropdownMenuLabel=m.DropdownMenuLabel,exports.DropdownMenuRadioGroup=m.DropdownMenuRadioGroup,exports.DropdownMenuRadioItem=m.DropdownMenuRadioItem,exports.DropdownMenuSeparator=m.DropdownMenuSeparator,exports.DropdownMenuShortcut=m.DropdownMenuShortcut,exports.DropdownMenuSub=m.DropdownMenuSub,exports.DropdownMenuSubContent=m.DropdownMenuSubContent,exports.DropdownMenuSubTrigger=m.DropdownMenuSubTrigger,exports.DropdownMenuTrigger=m.DropdownMenuTrigger,Object.defineProperty(exports,"EditIcon",{enumerable:!0,get:function(){return $.Pencil}}),exports.EmptyState=T.EmptyState,Object.defineProperty(exports,"EnterIcon",{enumerable:!0,get:function(){return $.CornerDownLeft}}),Object.defineProperty(exports,"ExternalLinkIcon",{enumerable:!0,get:function(){return $.ExternalLink}}),Object.defineProperty(exports,"FileIcon",{enumerable:!0,get:function(){return $.FileText}}),exports.FlowGraph=E.FlowGraph,Object.defineProperty(exports,"FolderIcon",{enumerable:!0,get:function(){return $.Folder}}),Object.defineProperty(exports,"ForkIcon",{enumerable:!0,get:function(){return $.GitFork}}),exports.GREP_COLLAPSED_LINES=Y.GREP_COLLAPSED_LINES,Object.defineProperty(exports,"GearIcon",{enumerable:!0,get:function(){return $.Settings}}),Object.defineProperty(exports,"GlobeIcon",{enumerable:!0,get:function(){return $.Globe}}),Object.defineProperty(exports,"GridIcon",{enumerable:!0,get:function(){return $.LayoutGrid}}),exports.HashlineLines=ae.HashlineLines,Object.defineProperty(exports,"HelpIcon",{enumerable:!0,get:function(){return $.CircleHelp}}),Object.defineProperty(exports,"HomeIcon",{enumerable:!0,get:function(){return $.House}}),Object.defineProperty(exports,"ImageIcon",{enumerable:!0,get:function(){return $.Image}}),exports.Input=x.Input,exports.Kbd=oe.Kbd,Object.defineProperty(exports,"KebabIcon",{enumerable:!0,get:function(){return $.MoreVertical}}),exports.LINE_TONE_TO_STATUS=Z.LINE_TONE_TO_STATUS,exports.Label=se.Label,Object.defineProperty(exports,"LightbulbIcon",{enumerable:!0,get:function(){return $.Lightbulb}}),Object.defineProperty(exports,"ListIcon",{enumerable:!0,get:function(){return $.List}}),exports.LiveDuration=z.LiveDuration,Object.defineProperty(exports,"LoaderIcon",{enumerable:!0,get:function(){return $.Loader2}}),Object.defineProperty(exports,"LockIcon",{enumerable:!0,get:function(){return $.Lock}}),exports.MAX_DIGIT_SHORTCUT=S.MAX_DIGIT_SHORTCUT,exports.MEDIA_KINDS=Se.MEDIA_KINDS,exports.MESSAGE_LINE_TONES=Q.MESSAGE_LINE_TONES,exports.Markdown=le.Markdown,exports.McpToolFields=O.McpToolFields,exports.McpToolFrame=O.McpToolFrame,exports.McpToolOutput=O.McpToolOutput,exports.MediaPreview=fe.MediaPreview,exports.MediaViewerDialog=ce.MediaViewerDialog,Object.defineProperty(exports,"MenuIcon",{enumerable:!0,get:function(){return $.Menu}}),Object.defineProperty(exports,"MessageIcon",{enumerable:!0,get:function(){return $.MessageCircle}}),exports.MessageItem=j.MessageItem,exports.MessageItemBody=j.MessageItemBody,exports.MessageItemGroup=j.MessageItemGroup,exports.MessageItemHeader=j.MessageItemHeader,exports.MessageItemHeaderAccessoryContext=j.MessageItemHeaderAccessoryContext,exports.MessageItemStatus=j.MessageItemStatus,exports.MessageLines=M.MessageLines,Object.defineProperty(exports,"MicIcon",{enumerable:!0,get:function(){return $.Mic}}),Object.defineProperty(exports,"MonitorIcon",{enumerable:!0,get:function(){return $.Monitor}}),exports.NavTab=K.NavTab,exports.NavTabBadge=K.NavTabBadge,exports.OptionLabel=C.OptionLabel,exports.OptionList=C.OptionList,exports.OptionRow=C.OptionRow,Object.defineProperty(exports,"PaletteIcon",{enumerable:!0,get:function(){return $.Palette}}),exports.Panel=N.Panel,exports.PanelBody=N.PanelBody,exports.PanelHeader=N.PanelHeader,Object.defineProperty(exports,"PaperclipIcon",{enumerable:!0,get:function(){return $.Paperclip}}),exports.PathText=be.PathText,exports.PdfPreview=k.PdfPreview,exports.PickerContent=F.PickerContent,Object.defineProperty(exports,"PlayCircleIcon",{enumerable:!0,get:function(){return $.CirclePlay}}),Object.defineProperty(exports,"PlusIcon",{enumerable:!0,get:function(){return $.Plus}}),exports.Popover=P.Popover,exports.PopoverAnchor=P.PopoverAnchor,exports.PopoverClose=P.PopoverClose,exports.PopoverContent=P.PopoverContent,exports.PopoverFooter=P.PopoverFooter,exports.PopoverHeader=P.PopoverHeader,exports.PopoverTrigger=P.PopoverTrigger,exports.ProfilePicker=L.ProfilePicker,exports.Progress=B.Progress,Object.defineProperty(exports,"PuzzleIcon",{enumerable:!0,get:function(){return $.Puzzle}}),Object.defineProperty(exports,"QuoteIcon",{enumerable:!0,get:function(){return $.Quote}}),exports.READ_COLLAPSED_LINES=Y.READ_COLLAPSED_LINES,exports.RadioGroup=V.RadioGroup,exports.RadioGroupCard=V.RadioGroupCard,exports.RadioGroupItem=V.RadioGroupItem,Object.defineProperty(exports,"RefreshIcon",{enumerable:!0,get:function(){return $.RefreshCw}}),exports.ReviewCommentDraft=me.ReviewCommentDraft,Object.defineProperty(exports,"RewindIcon",{enumerable:!0,get:function(){return $.Rewind}}),exports.STATUS_EDGE=A.STATUS_EDGE,exports.STATUS_GLYPH=j.STATUS_GLYPH,exports.STATUS_LABEL=j.STATUS_LABEL,exports.STATUS_TONES=Q.STATUS_TONES,exports.STATUS_TO_CHIP=Z.STATUS_TO_CHIP,exports.STATUS_TO_DOT=Z.STATUS_TO_DOT,exports.ScrollArea=H.ScrollArea,exports.ScrollBar=H.ScrollBar,Object.defineProperty(exports,"SearchIcon",{enumerable:!0,get:function(){return $.Search}}),exports.SectionLabel=he.SectionLabel,exports.Select=U.Select,exports.SelectContent=U.SelectContent,exports.SelectGroup=U.SelectGroup,exports.SelectItem=U.SelectItem,exports.SelectLabel=U.SelectLabel,exports.SelectSeparator=U.SelectSeparator,exports.SelectTrigger=U.SelectTrigger,exports.SelectValue=U.SelectValue,Object.defineProperty(exports,"SendIcon",{enumerable:!0,get:function(){return $.Send}}),exports.Separator=ge.Separator,Object.defineProperty(exports,"ServerIcon",{enumerable:!0,get:function(){return $.Server}}),exports.SettingsActions=W.SettingsActions,exports.SettingsCard=W.SettingsCard,exports.SettingsDescription=W.SettingsDescription,exports.SettingsField=W.SettingsField,exports.SettingsHeader=W.SettingsHeader,exports.SettingsNote=W.SettingsNote,exports.SettingsPage=W.SettingsPage,exports.SettingsRow=W.SettingsRow,exports.SettingsRowDescription=W.SettingsRowDescription,exports.SettingsRowText=W.SettingsRowText,exports.SettingsRowTitle=W.SettingsRowTitle,exports.SettingsSection=W.SettingsSection,exports.SettingsSectionDescription=W.SettingsSectionDescription,exports.SettingsSectionHeader=W.SettingsSectionHeader,exports.SettingsSectionTitle=W.SettingsSectionTitle,exports.SettingsTitle=W.SettingsTitle,exports.Sheet=G.Sheet,exports.SheetBody=G.SheetBody,exports.SheetClose=G.SheetClose,exports.SheetContent=G.SheetContent,exports.SheetDescription=G.SheetDescription,exports.SheetFooter=G.SheetFooter,exports.SheetHeader=G.SheetHeader,exports.SheetOverlay=G.SheetOverlay,exports.SheetTitle=G.SheetTitle,exports.SheetTrigger=G.SheetTrigger,Object.defineProperty(exports,"ShieldIcon",{enumerable:!0,get:function(){return $.ShieldCheck}}),Object.defineProperty(exports,"ShrinkIcon",{enumerable:!0,get:function(){return $.Shrink}}),exports.Skeleton=re.Skeleton,Object.defineProperty(exports,"SlidersIcon",{enumerable:!0,get:function(){return $.SlidersHorizontal}}),Object.defineProperty(exports,"SparklesIcon",{enumerable:!0,get:function(){return $.Sparkles}}),exports.Spinner=l.Spinner,exports.StatusBadge=A.StatusBadge,Object.defineProperty(exports,"StopIcon",{enumerable:!0,get:function(){return $.Square}}),exports.StreamCursor=_e.StreamCursor,exports.Switch=ve.Switch,exports.SyntaxLine=y.SyntaxLine,exports.SyntaxText=y.SyntaxText,exports.Tabs=K.Tabs,exports.TabsContent=K.TabsContent,exports.TabsList=K.TabsList,exports.TabsTrigger=K.TabsTrigger,Object.defineProperty(exports,"TaskIcon",{enumerable:!0,get:function(){return $.SquareCheckBig}}),exports.TerminalView=ye.TerminalView,exports.Textarea=pe.Textarea,exports.Toast=q.Toast,exports.ToastAction=q.ToastAction,exports.ToastClose=q.ToastClose,exports.ToastDescription=q.ToastDescription,exports.ToastProvider=q.ToastProvider,exports.ToastTitle=q.ToastTitle,exports.ToastViewport=q.ToastViewport,exports.ToolPathLink=xe.ToolPathLink,exports.Tooltip=s.Tooltip,exports.TooltipContent=s.TooltipContent,exports.TooltipProvider=s.TooltipProvider,exports.TooltipTrigger=s.TooltipTrigger,Object.defineProperty(exports,"TrashIcon",{enumerable:!0,get:function(){return $.Trash2}}),Object.defineProperty(exports,"UnlockIcon",{enumerable:!0,get:function(){return $.LockOpen}}),Object.defineProperty(exports,"UserIcon",{enumerable:!0,get:function(){return $.UserRound}}),Object.defineProperty(exports,"UsersIcon",{enumerable:!0,get:function(){return $.Users}}),exports.ViewableImage=ue.ViewableImage,Object.defineProperty(exports,"VolumeIcon",{enumerable:!0,get:function(){return $.Volume2}}),Object.defineProperty(exports,"WorkflowIcon",{enumerable:!0,get:function(){return $.Workflow}}),Object.defineProperty(exports,"WrenchIcon",{enumerable:!0,get:function(){return $.Wrench}}),exports.agentInitials=a.agentInitials,exports.ansiSpans=t.ansiSpans,exports.badgeVariants=o.badgeVariants,exports.breadcrumbSegments=c.breadcrumbSegments,exports.buildReviewPrompt=f.buildReviewPrompt,exports.buttonVariants=u.buttonVariants,exports.clockRefreshMs=R.clockRefreshMs,exports.clockText=R.clockText,exports.cn=ee.cn,exports.collapseLines=J.collapseLines,exports.compactDetails=Y.compactDetails,exports.defaultReviewHeading=f.defaultReviewHeading,exports.detectGrammar=v.detectGrammar,exports.dialogFooterVariants=d.dialogFooterVariants,exports.diffGutterWidth=f.diffGutterWidth,exports.diffRangeOf=f.diffRangeOf,exports.dotVariants=i.dotVariants,exports.drawableImageUrl=_.drawableImageUrl,exports.dropdownMenuItemVariants=m.dropdownMenuItemVariants,exports.fieldVariants=x.fieldVariants,exports.formatRunDuration=R.formatRunDuration,exports.grammarKeyOf=g.grammarKeyOf,exports.groupByDirectory=X.groupByDirectory,exports.groupRowLabel=X.groupRowLabel,exports.handleOptionListKey=S.handleOptionListKey,exports.hashlineBody=Y.hashlineBody,exports.hashlineGroups=D.hashlineGroups,exports.hashlineGroupsKey=D.hashlineGroupsKey,exports.highlightToLines=v.highlightToLines,exports.markdownMediaReview=_.markdownMediaReview,exports.markdownMediaReviewSlot=_.markdownMediaReviewSlot,exports.mediaKindOf=de.mediaKindOf,exports.messageItemRowVariants=j.messageItemRowVariants,exports.messageItemStatusVariants=j.messageItemStatusVariants,exports.messageItemVariants=j.messageItemVariants,exports.messageLineVariants=M.messageLineVariants,exports.optionListHint=S.optionListHint,exports.optionListVariants=C.optionListVariants,exports.optionMarker=S.optionMarker,exports.optionMarkerVariants=C.optionMarkerVariants,exports.optionRowVariants=C.optionRowVariants,exports.parseFileHeader=Y.parseFileHeader,exports.parseProfileCatalog=I.parseProfileCatalog,exports.parseTaggedLine=Y.parseTaggedLine,exports.presentHashlineLines=Y.presentHashlineLines,exports.resolvePdfViewportRegion=k.resolvePdfViewportRegion,exports.resultTextLines=Y.resultTextLines,exports.reviewCommentAnchor=f.reviewCommentAnchor,exports.statusBadgeVariants=A.statusBadgeVariants,exports.svgImageUrl=_.svgImageUrl,exports.syntaxStyleOf=v.syntaxStyleOf,exports.tabBadgeVariants=K.tabBadgeVariants,exports.tabVariants=K.tabVariants,exports.takeTrailingNotice=Y.takeTrailingNotice,exports.toastVariants=q.toastVariants,exports.toolTone=j.toolTone,exports.trimSnippet=f.trimSnippet,exports.useMessageItem=j.useMessageItem,exports.useProfileCatalog=L.useProfileCatalog,exports.useSyntaxLines=y.useSyntaxLines;
package/dist/index.d.mts CHANGED
@@ -39,6 +39,8 @@ import { MessageLine, MessageLineTone, MessageLines, MessageLinesProps, messageL
39
39
  import { Panel, PanelBody, PanelHeader, PanelProps } from "./packages/core/po-web-components/src/components/Panel.mjs";
40
40
  import { Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverFooter, PopoverHeader, PopoverTrigger } from "./packages/core/po-web-components/src/components/Popover.mjs";
41
41
  import { PickerContent, PickerContentProps, PickerItem } from "./packages/core/po-web-components/src/components/Picker.mjs";
42
+ import { ProfileChoice, ProfilePickerCatalog, ProfilePickerProfile, ProfilePickerState, ProfilePickerStatus, parseProfileCatalog } from "./packages/core/po-web-components/src/lib/profilePicker.mjs";
43
+ import { ProfilePicker, ProfilePickerProps, useProfileCatalog } from "./packages/core/po-web-components/src/components/ProfilePicker.mjs";
42
44
  import { LiveDuration, LiveDurationProps } from "./packages/core/po-web-components/src/components/LiveDuration.mjs";
43
45
  import { Progress } from "./packages/core/po-web-components/src/components/Progress.mjs";
44
46
  import { RadioGroup, RadioGroupCard, RadioGroupItem } from "./packages/core/po-web-components/src/components/RadioGroup.mjs";
@@ -74,4 +76,4 @@ import { buildReviewPrompt, defaultReviewHeading, diffGutterWidth, diffRangeOf,
74
76
  import { MAX_DIGIT_SHORTCUT, handleOptionListKey, optionListHint, optionMarker } from "./packages/core/po-web-components/src/lib/optionList.mjs";
75
77
  import { CHIP_TO_STATUS, LINE_TONE_TO_STATUS, STATUS_TO_CHIP, STATUS_TO_DOT } from "./packages/core/po-web-components/src/lib/tone.mjs";
76
78
  import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "./packages/core/po-web-components/src/components/Tooltip.mjs";
77
- export { ACCENT_TONES, type AccentTone, Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActivityIcon, AgentAvatar, type AgentState, AlertIcon, AnsiLine, type AnsiLineProps, type AnsiSpan, AnsiText, type AnsiTextProps, AppWindowIcon, ArrowLeftIcon, ArrowRightIcon, AudioLinesIcon, Avatar, AvatarFallback, AvatarImage, BREADCRUMB_ELLIPSIS, Badge, type BadgeProps, type BadgeTone, BellIcon, BookmarkPlusIcon, BranchIcon, Breadcrumb, type BreadcrumbProps, Button, type ButtonProps, type ButtonSize, type ButtonVariant, CHIP_TONES, CHIP_TO_STATUS, CalendarIcon, CheckIcon, Checkbox, ChevronDownIcon, ChevronRightIcon, ChevronUpIcon, type ChipTone, CloseIcon, CodeBlock, type CodeBlockProps, CodeEditor, type CodeEditorController, type CodeEditorProps, type CollapsedLines, Collapsible, CollapsibleContent, CollapsibleTrigger, CommandDialog, type CommandDialogProps, CommandEmpty, CommandFooter, CommandGroup, CommandGroupLabel, CommandHeader, CommandInput, CommandItem, CommandItemLabel, CommandList, CopyIcon, DOT_TONES, Dialog, DialogBody, DialogClose, DialogContent, type DialogContentProps, DialogDescription, DialogFooter, type DialogFooterProps, DialogHeader, type DialogHeaderProps, DialogTitle, DialogTrigger, type DiffHunk, type DiffMarker, type DiffRow, type DiffSelection, type DiffSide, DiffView, type DiffViewProps, Dot, type DotProps, type DotTone, DownloadIcon, Drawer, type DrawerProps, DropdownMenu, DropdownMenuCheckboxItem, type DropdownMenuCheckboxItemProps, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, type DropdownMenuItemProps, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, type DropdownMenuRadioItemProps, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EditIcon, type EditorEdit, type EditorMarkedRange, type EditorSelectionRange, type EditorTextRange, type EditorViewportRectangle, EmptyState, type EmptyStateProps, EnterIcon, ExternalLinkIcon, type FieldSize, type FieldVariant, FileIcon, FlowGraph, type FlowGraphEdge, type FlowGraphEdgeTone, type FlowGraphNode, type FlowGraphProps, FolderIcon, ForkIcon, GREP_COLLAPSED_LINES, GearIcon, GlobeIcon, type GrammarKey, type GrammarQuery, GridIcon, type HashlineBody, type HashlineGroup, HashlineLines, type HashlineLinesProps, type HashlineResult, type HashlineResultKind, HelpIcon, HomeIcon, ImageIcon, Input, type InputProps, Kbd, KebabIcon, LINE_TONE_TO_STATUS, Label, LightbulbIcon, ListIcon, LiveDuration, type LiveDurationProps, LoaderIcon, LockIcon, MAX_DIGIT_SHORTCUT, MEDIA_KINDS, MESSAGE_LINE_TONES, Markdown, type MarkdownMedia, type MarkdownMediaReview, type MarkdownMediaReviewContribution, type MarkdownMediaReviewPanelProps, McpToolFields, McpToolFrame, McpToolOutput, type MediaFrameCapture, type MediaFrameMetadata, type MediaIntrinsicSize, type MediaKind, type MediaPlaybackState, MediaPreview, type MediaPreviewController, type MediaPreviewProps, MediaViewerDialog, MenuIcon, MessageIcon, MessageItem, MessageItemBody, MessageItemGroup, type MessageItemGroupProps, MessageItemHeader, MessageItemHeaderAccessoryContext, type MessageItemHeaderProps, type MessageItemProps, type MessageItemState, MessageItemStatus, type MessageItemStatusProps, type MessageLine, type MessageLineTone, MessageLines, type MessageLinesProps, MicIcon, MonitorIcon, NavTab, NavTabBadge, type NavTabProps, OptionLabel, OptionList, type OptionListProps, OptionRow, type OptionRowProps, PaletteIcon, Panel, PanelBody, PanelHeader, type PanelProps, PaperclipIcon, type PathGroup, PathText, type PathTextProps, type PdfNormalizedRectangle, type PdfPageRegion, type PdfPageState, PdfPreview, type PdfPreviewController, type PdfPreviewProps, PickerContent, type PickerContentProps, type PickerItem, PlayCircleIcon, PlusIcon, Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverFooter, PopoverHeader, PopoverTrigger, type PresentedLine, Progress, PuzzleIcon, QuoteIcon, READ_COLLAPSED_LINES, RadioGroup, RadioGroupCard, RadioGroupItem, RefreshIcon, type ReviewComment, ReviewCommentDraft, type ReviewCommentDraftProps, RewindIcon, STATUS_EDGE, STATUS_GLYPH, STATUS_LABEL, STATUS_TONES, STATUS_TO_CHIP, STATUS_TO_DOT, ScrollArea, ScrollBar, SearchIcon, SectionLabel, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue, SendIcon, Separator, ServerIcon, SettingsActions, SettingsCard, SettingsDescription, SettingsField, SettingsHeader, SettingsNote, SettingsPage, SettingsRow, SettingsRowDescription, SettingsRowText, SettingsRowTitle, SettingsSection, SettingsSectionDescription, SettingsSectionHeader, SettingsSectionTitle, SettingsTitle, Sheet, SheetBody, SheetClose, SheetContent, type SheetContentProps, SheetDescription, SheetFooter, SheetHeader, type SheetHeaderProps, SheetOverlay, SheetTitle, SheetTrigger, ShieldIcon, ShrinkIcon, Skeleton, SlidersIcon, SparklesIcon, Spinner, type SpinnerProps, StatusBadge, type StatusBadgeProps, type StatusTone, StopIcon, StreamCursor, Switch, SyntaxLine, type SyntaxLineProps, type SyntaxLines, type SyntaxQuery, type SyntaxSpan, SyntaxText, type SyntaxTextProps, type SyntaxToken, Tabs, TabsContent, TabsList, TabsTrigger, type TaggedLine, type TaggedLineMarker, TaskIcon, type TerminalHandle, TerminalView, type TerminalViewProps, Textarea, type TextareaProps, Toast, ToastAction, ToastClose, ToastDescription, type ToastProps, ToastProvider, ToastTitle, ToastViewport, ToolPathLink, type ToolPathLinkProps, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TrashIcon, UnlockIcon, UserIcon, UsersIcon, ViewableImage, type ViewableImageProps, VolumeIcon, WorkflowIcon, WrenchIcon, agentInitials, ansiSpans, badgeVariants, breadcrumbSegments, buildReviewPrompt, buttonVariants, clockRefreshMs, clockText, cn, collapseLines, compactDetails, defaultReviewHeading, detectGrammar, dialogFooterVariants, diffGutterWidth, diffRangeOf, dotVariants, drawableImageUrl, dropdownMenuItemVariants, fieldVariants, formatRunDuration, grammarKeyOf, groupByDirectory, groupRowLabel, handleOptionListKey, hashlineBody, hashlineGroups, hashlineGroupsKey, highlightToLines, markdownMediaReview, markdownMediaReviewSlot, mediaKindOf, messageItemRowVariants, messageItemStatusVariants, messageItemVariants, messageLineVariants, optionListHint, optionListVariants, optionMarker, optionMarkerVariants, optionRowVariants, parseFileHeader, parseTaggedLine, presentHashlineLines, resolvePdfViewportRegion, resultTextLines, reviewCommentAnchor, statusBadgeVariants, svgImageUrl, syntaxStyleOf, tabBadgeVariants, tabVariants, takeTrailingNotice, toastVariants, toolTone, trimSnippet, useMessageItem, useSyntaxLines };
79
+ export { ACCENT_TONES, type AccentTone, Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActivityIcon, AgentAvatar, type AgentState, AlertIcon, AnsiLine, type AnsiLineProps, type AnsiSpan, AnsiText, type AnsiTextProps, AppWindowIcon, ArrowLeftIcon, ArrowRightIcon, AudioLinesIcon, Avatar, AvatarFallback, AvatarImage, BREADCRUMB_ELLIPSIS, Badge, type BadgeProps, type BadgeTone, BellIcon, BookmarkPlusIcon, BranchIcon, Breadcrumb, type BreadcrumbProps, Button, type ButtonProps, type ButtonSize, type ButtonVariant, CHIP_TONES, CHIP_TO_STATUS, CalendarIcon, CheckIcon, Checkbox, ChevronDownIcon, ChevronRightIcon, ChevronUpIcon, type ChipTone, CloseIcon, CodeBlock, type CodeBlockProps, CodeEditor, type CodeEditorController, type CodeEditorProps, type CollapsedLines, Collapsible, CollapsibleContent, CollapsibleTrigger, CommandDialog, type CommandDialogProps, CommandEmpty, CommandFooter, CommandGroup, CommandGroupLabel, CommandHeader, CommandInput, CommandItem, CommandItemLabel, CommandList, CopyIcon, DOT_TONES, Dialog, DialogBody, DialogClose, DialogContent, type DialogContentProps, DialogDescription, DialogFooter, type DialogFooterProps, DialogHeader, type DialogHeaderProps, DialogTitle, DialogTrigger, type DiffHunk, type DiffMarker, type DiffRow, type DiffSelection, type DiffSide, DiffView, type DiffViewProps, Dot, type DotProps, type DotTone, DownloadIcon, Drawer, type DrawerProps, DropdownMenu, DropdownMenuCheckboxItem, type DropdownMenuCheckboxItemProps, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, type DropdownMenuItemProps, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, type DropdownMenuRadioItemProps, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EditIcon, type EditorEdit, type EditorMarkedRange, type EditorSelectionRange, type EditorTextRange, type EditorViewportRectangle, EmptyState, type EmptyStateProps, EnterIcon, ExternalLinkIcon, type FieldSize, type FieldVariant, FileIcon, FlowGraph, type FlowGraphEdge, type FlowGraphEdgeTone, type FlowGraphNode, type FlowGraphProps, FolderIcon, ForkIcon, GREP_COLLAPSED_LINES, GearIcon, GlobeIcon, type GrammarKey, type GrammarQuery, GridIcon, type HashlineBody, type HashlineGroup, HashlineLines, type HashlineLinesProps, type HashlineResult, type HashlineResultKind, HelpIcon, HomeIcon, ImageIcon, Input, type InputProps, Kbd, KebabIcon, LINE_TONE_TO_STATUS, Label, LightbulbIcon, ListIcon, LiveDuration, type LiveDurationProps, LoaderIcon, LockIcon, MAX_DIGIT_SHORTCUT, MEDIA_KINDS, MESSAGE_LINE_TONES, Markdown, type MarkdownMedia, type MarkdownMediaReview, type MarkdownMediaReviewContribution, type MarkdownMediaReviewPanelProps, McpToolFields, McpToolFrame, McpToolOutput, type MediaFrameCapture, type MediaFrameMetadata, type MediaIntrinsicSize, type MediaKind, type MediaPlaybackState, MediaPreview, type MediaPreviewController, type MediaPreviewProps, MediaViewerDialog, MenuIcon, MessageIcon, MessageItem, MessageItemBody, MessageItemGroup, type MessageItemGroupProps, MessageItemHeader, MessageItemHeaderAccessoryContext, type MessageItemHeaderProps, type MessageItemProps, type MessageItemState, MessageItemStatus, type MessageItemStatusProps, type MessageLine, type MessageLineTone, MessageLines, type MessageLinesProps, MicIcon, MonitorIcon, NavTab, NavTabBadge, type NavTabProps, OptionLabel, OptionList, type OptionListProps, OptionRow, type OptionRowProps, PaletteIcon, Panel, PanelBody, PanelHeader, type PanelProps, PaperclipIcon, type PathGroup, PathText, type PathTextProps, type PdfNormalizedRectangle, type PdfPageRegion, type PdfPageState, PdfPreview, type PdfPreviewController, type PdfPreviewProps, PickerContent, type PickerContentProps, type PickerItem, PlayCircleIcon, PlusIcon, Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverFooter, PopoverHeader, PopoverTrigger, type PresentedLine, type ProfileChoice, ProfilePicker, type ProfilePickerCatalog, type ProfilePickerProfile, type ProfilePickerProps, type ProfilePickerState, type ProfilePickerStatus, Progress, PuzzleIcon, QuoteIcon, READ_COLLAPSED_LINES, RadioGroup, RadioGroupCard, RadioGroupItem, RefreshIcon, type ReviewComment, ReviewCommentDraft, type ReviewCommentDraftProps, RewindIcon, STATUS_EDGE, STATUS_GLYPH, STATUS_LABEL, STATUS_TONES, STATUS_TO_CHIP, STATUS_TO_DOT, ScrollArea, ScrollBar, SearchIcon, SectionLabel, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue, SendIcon, Separator, ServerIcon, SettingsActions, SettingsCard, SettingsDescription, SettingsField, SettingsHeader, SettingsNote, SettingsPage, SettingsRow, SettingsRowDescription, SettingsRowText, SettingsRowTitle, SettingsSection, SettingsSectionDescription, SettingsSectionHeader, SettingsSectionTitle, SettingsTitle, Sheet, SheetBody, SheetClose, SheetContent, type SheetContentProps, SheetDescription, SheetFooter, SheetHeader, type SheetHeaderProps, SheetOverlay, SheetTitle, SheetTrigger, ShieldIcon, ShrinkIcon, Skeleton, SlidersIcon, SparklesIcon, Spinner, type SpinnerProps, StatusBadge, type StatusBadgeProps, type StatusTone, StopIcon, StreamCursor, Switch, SyntaxLine, type SyntaxLineProps, type SyntaxLines, type SyntaxQuery, type SyntaxSpan, SyntaxText, type SyntaxTextProps, type SyntaxToken, Tabs, TabsContent, TabsList, TabsTrigger, type TaggedLine, type TaggedLineMarker, TaskIcon, type TerminalHandle, TerminalView, type TerminalViewProps, Textarea, type TextareaProps, Toast, ToastAction, ToastClose, ToastDescription, type ToastProps, ToastProvider, ToastTitle, ToastViewport, ToolPathLink, type ToolPathLinkProps, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TrashIcon, UnlockIcon, UserIcon, UsersIcon, ViewableImage, type ViewableImageProps, VolumeIcon, WorkflowIcon, WrenchIcon, agentInitials, ansiSpans, badgeVariants, breadcrumbSegments, buildReviewPrompt, buttonVariants, clockRefreshMs, clockText, cn, collapseLines, compactDetails, defaultReviewHeading, detectGrammar, dialogFooterVariants, diffGutterWidth, diffRangeOf, dotVariants, drawableImageUrl, dropdownMenuItemVariants, fieldVariants, formatRunDuration, grammarKeyOf, groupByDirectory, groupRowLabel, handleOptionListKey, hashlineBody, hashlineGroups, hashlineGroupsKey, highlightToLines, markdownMediaReview, markdownMediaReviewSlot, mediaKindOf, messageItemRowVariants, messageItemStatusVariants, messageItemVariants, messageLineVariants, optionListHint, optionListVariants, optionMarker, optionMarkerVariants, optionRowVariants, parseFileHeader, parseProfileCatalog, parseTaggedLine, presentHashlineLines, resolvePdfViewportRegion, resultTextLines, reviewCommentAnchor, statusBadgeVariants, svgImageUrl, syntaxStyleOf, tabBadgeVariants, tabVariants, takeTrailingNotice, toastVariants, toolTone, trimSnippet, useMessageItem, useProfileCatalog, useSyntaxLines };
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{ActivityIcon as e,AlertIcon as t,AppWindowIcon as n,ArrowLeftIcon as r,ArrowRightIcon as i,AudioLinesIcon as a,BellIcon as o,BookmarkPlusIcon as s,BranchIcon as c,CalendarIcon as l,CheckIcon as u,ChevronDownIcon as d,ChevronRightIcon as f,ChevronUpIcon as p,CloseIcon as m,CopyIcon as h,DownloadIcon as g,EditIcon as _,EnterIcon as v,ExternalLinkIcon as y,FileIcon as b,FolderIcon as x,ForkIcon as S,GearIcon as C,GlobeIcon as w,GridIcon as T,HelpIcon as E,HomeIcon as D,ImageIcon as O,KebabIcon as k,LightbulbIcon as A,ListIcon as j,LoaderIcon as M,LockIcon as N,MenuIcon as P,MessageIcon as F,MicIcon as I,MonitorIcon as L,PaletteIcon as R,PaperclipIcon as z,PlayCircleIcon as B,PlusIcon as V,PuzzleIcon as H,QuoteIcon as U,RefreshIcon as W,RewindIcon as G,SearchIcon as K,SendIcon as q,ServerIcon as J,ShieldIcon as Y,ShrinkIcon as X,SlidersIcon as Z,SparklesIcon as Q,StopIcon as $,TaskIcon as ee,TrashIcon as te,UnlockIcon as ne,UserIcon as re,UsersIcon as ie,VolumeIcon as ae,WorkflowIcon as oe,WrenchIcon as se}from"./packages/core/po-web-components/src/icons/icons.mjs";import{cn as ce}from"./packages/core/po-web-components/src/lib/cn.mjs";import{Accordion as le,AccordionContent as ue,AccordionItem as de,AccordionTrigger as fe}from"./packages/core/po-web-components/src/components/Accordion.mjs";import{ansiSpans as pe}from"./packages/core/po-web-components/src/lib/ansiSpans.mjs";import{AnsiLine as me,AnsiText as he}from"./packages/core/po-web-components/src/components/AnsiText.mjs";import{Avatar as ge,AvatarFallback as _e,AvatarImage as ve}from"./packages/core/po-web-components/src/components/Avatar.mjs";import{Dot as ye,dotVariants as be}from"./packages/core/po-web-components/src/components/Dot.mjs";import{AgentAvatar as xe,agentInitials as Se}from"./packages/core/po-web-components/src/components/AgentAvatar.mjs";import{Badge as Ce,badgeVariants as we}from"./packages/core/po-web-components/src/components/Badge.mjs";import{Tooltip as Te,TooltipContent as Ee,TooltipProvider as De,TooltipTrigger as Oe}from"./packages/core/po-web-components/src/components/Tooltip.mjs";import{BREADCRUMB_ELLIPSIS as ke,Breadcrumb as Ae,breadcrumbSegments as je}from"./packages/core/po-web-components/src/components/Breadcrumb.mjs";import{Spinner as Me}from"./packages/core/po-web-components/src/components/Spinner.mjs";import{Button as Ne,buttonVariants as Pe}from"./packages/core/po-web-components/src/components/Button.mjs";import{Dialog as Fe,DialogBody as Ie,DialogClose as Le,DialogContent as Re,DialogDescription as ze,DialogFooter as Be,DialogHeader as Ve,DialogTitle as He,DialogTrigger as Ue,dialogFooterVariants as We}from"./packages/core/po-web-components/src/components/Dialog.mjs";import{buildReviewPrompt as Ge,defaultReviewHeading as Ke,diffGutterWidth as qe,diffRangeOf as Je,reviewCommentAnchor as Ye,trimSnippet as Xe}from"./packages/core/po-web-components/src/lib/review.mjs";import{DiffView as Ze}from"./packages/core/po-web-components/src/components/DiffView.mjs";import{Drawer as Qe}from"./packages/core/po-web-components/src/components/Drawer.mjs";import{DropdownMenu as $e,DropdownMenuCheckboxItem as et,DropdownMenuContent as tt,DropdownMenuGroup as nt,DropdownMenuItem as rt,DropdownMenuLabel as it,DropdownMenuRadioGroup as at,DropdownMenuRadioItem as ot,DropdownMenuSeparator as st,DropdownMenuShortcut as ct,DropdownMenuSub as lt,DropdownMenuSubContent as ut,DropdownMenuSubTrigger as dt,DropdownMenuTrigger as ft,dropdownMenuItemVariants as pt}from"./packages/core/po-web-components/src/components/DropdownMenu.mjs";import{Checkbox as mt}from"./packages/core/po-web-components/src/components/Checkbox.mjs";import{grammarKeyOf as ht}from"./packages/core/po-web-components/src/lib/editorLanguage.mjs";import{drawableImageUrl as gt,markdownMediaReview as _t,markdownMediaReviewSlot as vt,svgImageUrl as yt}from"./packages/core/po-web-components/src/lib/markdownMedia.mjs";import{detectGrammar as bt,highlightToLines as xt,syntaxStyleOf as St}from"./packages/core/po-web-components/src/lib/syntaxHighlight.mjs";import{SyntaxLine as Ct,SyntaxText as wt,useSyntaxLines as Tt}from"./packages/core/po-web-components/src/components/SyntaxText.mjs";import{CodeBlock as Et}from"./packages/core/po-web-components/src/components/CodeBlock.mjs";import{Skeleton as Dt}from"./packages/core/po-web-components/src/components/Skeleton.mjs";import{CodeEditor as Ot}from"./packages/core/po-web-components/src/components/CodeEditor.mjs";import{Collapsible as kt,CollapsibleContent as At,CollapsibleTrigger as jt}from"./packages/core/po-web-components/src/components/Collapsible.mjs";import{Input as Mt,fieldVariants as Nt}from"./packages/core/po-web-components/src/components/Input.mjs";import{MAX_DIGIT_SHORTCUT as Pt,handleOptionListKey as Ft,optionListHint as It,optionMarker as Lt}from"./packages/core/po-web-components/src/lib/optionList.mjs";import{OptionLabel as Rt,OptionList as zt,OptionRow as Bt,optionListVariants as Vt,optionMarkerVariants as Ht,optionRowVariants as Ut}from"./packages/core/po-web-components/src/components/OptionList.mjs";import{CommandDialog as Wt,CommandEmpty as Gt,CommandFooter as Kt,CommandGroup as qt,CommandGroupLabel as Jt,CommandHeader as Yt,CommandInput as Xt,CommandItem as Zt,CommandItemLabel as Qt,CommandList as $t}from"./packages/core/po-web-components/src/components/Command.mjs";import{EmptyState as en}from"./packages/core/po-web-components/src/components/EmptyState.mjs";import{FlowGraph as tn}from"./packages/core/po-web-components/src/components/FlowGraph.mjs";import{hashlineGroups as nn,hashlineGroupsKey as rn}from"./packages/core/po-web-components/src/lib/hashlineHighlight.mjs";import{HashlineLines as an}from"./packages/core/po-web-components/src/components/HashlineLines.mjs";import{Kbd as on}from"./packages/core/po-web-components/src/components/Kbd.mjs";import{McpToolFields as sn,McpToolFrame as cn,McpToolOutput as ln}from"./packages/core/po-web-components/src/components/McpToolWidget.mjs";import{Label as un}from"./packages/core/po-web-components/src/components/Label.mjs";import{MediaViewerDialog as dn}from"./packages/core/po-web-components/src/components/MediaViewerDialog.mjs";import{Markdown as fn}from"./packages/core/po-web-components/src/components/Markdown.mjs";import{ViewableImage as pn}from"./packages/core/po-web-components/src/components/ViewableImage.mjs";import{mediaKindOf as mn}from"./packages/core/po-web-components/src/lib/media.mjs";import{PdfPreview as hn,resolvePdfViewportRegion as gn}from"./packages/core/po-web-components/src/components/PdfPreview.mjs";import{MediaPreview as _n}from"./packages/core/po-web-components/src/components/MediaPreview.mjs";import{STATUS_EDGE as vn,StatusBadge as yn,statusBadgeVariants as bn}from"./packages/core/po-web-components/src/components/StatusBadge.mjs";import{MessageItem as xn,MessageItemBody as Sn,MessageItemGroup as Cn,MessageItemHeader as wn,MessageItemHeaderAccessoryContext as Tn,MessageItemStatus as En,STATUS_GLYPH as Dn,STATUS_LABEL as On,messageItemRowVariants as kn,messageItemStatusVariants as An,messageItemVariants as jn,toolTone as Mn,useMessageItem as Nn}from"./packages/core/po-web-components/src/components/MessageItem.mjs";import{MessageLines as Pn,messageLineVariants as Fn}from"./packages/core/po-web-components/src/components/MessageLines.mjs";import{Panel as In,PanelBody as Ln,PanelHeader as Rn}from"./packages/core/po-web-components/src/components/Panel.mjs";import{Popover as zn,PopoverAnchor as Bn,PopoverClose as Vn,PopoverContent as Hn,PopoverFooter as Un,PopoverHeader as Wn,PopoverTrigger as Gn}from"./packages/core/po-web-components/src/components/Popover.mjs";import{PickerContent as Kn}from"./packages/core/po-web-components/src/components/Picker.mjs";import{clockRefreshMs as qn,clockText as Jn,formatRunDuration as Yn}from"./packages/core/po-web-components/src/lib/runDuration.mjs";import{LiveDuration as Xn}from"./packages/core/po-web-components/src/components/LiveDuration.mjs";import{Progress as Zn}from"./packages/core/po-web-components/src/components/Progress.mjs";import{RadioGroup as Qn,RadioGroupCard as $n,RadioGroupItem as er}from"./packages/core/po-web-components/src/components/RadioGroup.mjs";import{Textarea as tr}from"./packages/core/po-web-components/src/components/Textarea.mjs";import{ReviewCommentDraft as nr}from"./packages/core/po-web-components/src/components/ReviewCommentDraft.mjs";import{ScrollArea as rr,ScrollBar as ir}from"./packages/core/po-web-components/src/components/ScrollArea.mjs";import{SectionLabel as ar}from"./packages/core/po-web-components/src/components/SectionLabel.mjs";import{Select as or,SelectContent as sr,SelectGroup as cr,SelectItem as lr,SelectLabel as ur,SelectSeparator as dr,SelectTrigger as fr,SelectValue as pr}from"./packages/core/po-web-components/src/components/Select.mjs";import{Separator as mr}from"./packages/core/po-web-components/src/components/Separator.mjs";import{SettingsActions as hr,SettingsCard as gr,SettingsDescription as _r,SettingsField as vr,SettingsHeader as yr,SettingsNote as br,SettingsPage as xr,SettingsRow as Sr,SettingsRowDescription as Cr,SettingsRowText as wr,SettingsRowTitle as Tr,SettingsSection as Er,SettingsSectionDescription as Dr,SettingsSectionHeader as Or,SettingsSectionTitle as kr,SettingsTitle as Ar}from"./packages/core/po-web-components/src/components/Settings.mjs";import{Sheet as jr,SheetBody as Mr,SheetClose as Nr,SheetContent as Pr,SheetDescription as Fr,SheetFooter as Ir,SheetHeader as Lr,SheetOverlay as Rr,SheetTitle as zr,SheetTrigger as Br}from"./packages/core/po-web-components/src/components/Sheet.mjs";import{StreamCursor as Vr}from"./packages/core/po-web-components/src/components/StreamCursor.mjs";import{Switch as Hr}from"./packages/core/po-web-components/src/components/Switch.mjs";import{NavTab as Ur,NavTabBadge as Wr,Tabs as Gr,TabsContent as Kr,TabsList as qr,TabsTrigger as Jr,tabBadgeVariants as Yr,tabVariants as Xr}from"./packages/core/po-web-components/src/components/Tabs.mjs";import{TerminalView as Zr}from"./packages/core/po-web-components/src/components/TerminalView.mjs";import{Toast as Qr,ToastAction as $r,ToastClose as ei,ToastDescription as ti,ToastProvider as ni,ToastTitle as ri,ToastViewport as ii,toastVariants as ai}from"./packages/core/po-web-components/src/components/Toast.mjs";import{PathText as oi}from"./packages/core/po-web-components/src/components/PathText.mjs";import{ToolPathLink as si}from"./packages/core/po-web-components/src/components/ToolPathLink.mjs";import{collapseLines as ci}from"./packages/core/po-web-components/src/lib/collapse.mjs";import{GREP_COLLAPSED_LINES as li,READ_COLLAPSED_LINES as ui,compactDetails as di,hashlineBody as fi,parseFileHeader as pi,parseTaggedLine as mi,presentHashlineLines as hi,resultTextLines as gi,takeTrailingNotice as _i}from"./packages/core/po-web-components/src/lib/hashlineView.mjs";import{groupByDirectory as vi,groupRowLabel as yi}from"./packages/core/po-web-components/src/lib/pathGroups.mjs";import{CHIP_TO_STATUS as bi,LINE_TONE_TO_STATUS as xi,STATUS_TO_CHIP as Si,STATUS_TO_DOT as Ci}from"./packages/core/po-web-components/src/lib/tone.mjs";import{MEDIA_KINDS as wi}from"./packages/core/po-web-components/src/types/editor.mjs";import{ACCENT_TONES as Ti,CHIP_TONES as Ei,DOT_TONES as Di,MESSAGE_LINE_TONES as Oi,STATUS_TONES as ki}from"./packages/core/po-web-components/src/types/tone.mjs";export{Ti as ACCENT_TONES,le as Accordion,ue as AccordionContent,de as AccordionItem,fe as AccordionTrigger,e as ActivityIcon,xe as AgentAvatar,t as AlertIcon,me as AnsiLine,he as AnsiText,n as AppWindowIcon,r as ArrowLeftIcon,i as ArrowRightIcon,a as AudioLinesIcon,ge as Avatar,_e as AvatarFallback,ve as AvatarImage,ke as BREADCRUMB_ELLIPSIS,Ce as Badge,o as BellIcon,s as BookmarkPlusIcon,c as BranchIcon,Ae as Breadcrumb,Ne as Button,Ei as CHIP_TONES,bi as CHIP_TO_STATUS,l as CalendarIcon,u as CheckIcon,mt as Checkbox,d as ChevronDownIcon,f as ChevronRightIcon,p as ChevronUpIcon,m as CloseIcon,Et as CodeBlock,Ot as CodeEditor,kt as Collapsible,At as CollapsibleContent,jt as CollapsibleTrigger,Wt as CommandDialog,Gt as CommandEmpty,Kt as CommandFooter,qt as CommandGroup,Jt as CommandGroupLabel,Yt as CommandHeader,Xt as CommandInput,Zt as CommandItem,Qt as CommandItemLabel,$t as CommandList,h as CopyIcon,Di as DOT_TONES,Fe as Dialog,Ie as DialogBody,Le as DialogClose,Re as DialogContent,ze as DialogDescription,Be as DialogFooter,Ve as DialogHeader,He as DialogTitle,Ue as DialogTrigger,Ze as DiffView,ye as Dot,g as DownloadIcon,Qe as Drawer,$e as DropdownMenu,et as DropdownMenuCheckboxItem,tt as DropdownMenuContent,nt as DropdownMenuGroup,rt as DropdownMenuItem,it as DropdownMenuLabel,at as DropdownMenuRadioGroup,ot as DropdownMenuRadioItem,st as DropdownMenuSeparator,ct as DropdownMenuShortcut,lt as DropdownMenuSub,ut as DropdownMenuSubContent,dt as DropdownMenuSubTrigger,ft as DropdownMenuTrigger,_ as EditIcon,en as EmptyState,v as EnterIcon,y as ExternalLinkIcon,b as FileIcon,tn as FlowGraph,x as FolderIcon,S as ForkIcon,li as GREP_COLLAPSED_LINES,C as GearIcon,w as GlobeIcon,T as GridIcon,an as HashlineLines,E as HelpIcon,D as HomeIcon,O as ImageIcon,Mt as Input,on as Kbd,k as KebabIcon,xi as LINE_TONE_TO_STATUS,un as Label,A as LightbulbIcon,j as ListIcon,Xn as LiveDuration,M as LoaderIcon,N as LockIcon,Pt as MAX_DIGIT_SHORTCUT,wi as MEDIA_KINDS,Oi as MESSAGE_LINE_TONES,fn as Markdown,sn as McpToolFields,cn as McpToolFrame,ln as McpToolOutput,_n as MediaPreview,dn as MediaViewerDialog,P as MenuIcon,F as MessageIcon,xn as MessageItem,Sn as MessageItemBody,Cn as MessageItemGroup,wn as MessageItemHeader,Tn as MessageItemHeaderAccessoryContext,En as MessageItemStatus,Pn as MessageLines,I as MicIcon,L as MonitorIcon,Ur as NavTab,Wr as NavTabBadge,Rt as OptionLabel,zt as OptionList,Bt as OptionRow,R as PaletteIcon,In as Panel,Ln as PanelBody,Rn as PanelHeader,z as PaperclipIcon,oi as PathText,hn as PdfPreview,Kn as PickerContent,B as PlayCircleIcon,V as PlusIcon,zn as Popover,Bn as PopoverAnchor,Vn as PopoverClose,Hn as PopoverContent,Un as PopoverFooter,Wn as PopoverHeader,Gn as PopoverTrigger,Zn as Progress,H as PuzzleIcon,U as QuoteIcon,ui as READ_COLLAPSED_LINES,Qn as RadioGroup,$n as RadioGroupCard,er as RadioGroupItem,W as RefreshIcon,nr as ReviewCommentDraft,G as RewindIcon,vn as STATUS_EDGE,Dn as STATUS_GLYPH,On as STATUS_LABEL,ki as STATUS_TONES,Si as STATUS_TO_CHIP,Ci as STATUS_TO_DOT,rr as ScrollArea,ir as ScrollBar,K as SearchIcon,ar as SectionLabel,or as Select,sr as SelectContent,cr as SelectGroup,lr as SelectItem,ur as SelectLabel,dr as SelectSeparator,fr as SelectTrigger,pr as SelectValue,q as SendIcon,mr as Separator,J as ServerIcon,hr as SettingsActions,gr as SettingsCard,_r as SettingsDescription,vr as SettingsField,yr as SettingsHeader,br as SettingsNote,xr as SettingsPage,Sr as SettingsRow,Cr as SettingsRowDescription,wr as SettingsRowText,Tr as SettingsRowTitle,Er as SettingsSection,Dr as SettingsSectionDescription,Or as SettingsSectionHeader,kr as SettingsSectionTitle,Ar as SettingsTitle,jr as Sheet,Mr as SheetBody,Nr as SheetClose,Pr as SheetContent,Fr as SheetDescription,Ir as SheetFooter,Lr as SheetHeader,Rr as SheetOverlay,zr as SheetTitle,Br as SheetTrigger,Y as ShieldIcon,X as ShrinkIcon,Dt as Skeleton,Z as SlidersIcon,Q as SparklesIcon,Me as Spinner,yn as StatusBadge,$ as StopIcon,Vr as StreamCursor,Hr as Switch,Ct as SyntaxLine,wt as SyntaxText,Gr as Tabs,Kr as TabsContent,qr as TabsList,Jr as TabsTrigger,ee as TaskIcon,Zr as TerminalView,tr as Textarea,Qr as Toast,$r as ToastAction,ei as ToastClose,ti as ToastDescription,ni as ToastProvider,ri as ToastTitle,ii as ToastViewport,si as ToolPathLink,Te as Tooltip,Ee as TooltipContent,De as TooltipProvider,Oe as TooltipTrigger,te as TrashIcon,ne as UnlockIcon,re as UserIcon,ie as UsersIcon,pn as ViewableImage,ae as VolumeIcon,oe as WorkflowIcon,se as WrenchIcon,Se as agentInitials,pe as ansiSpans,we as badgeVariants,je as breadcrumbSegments,Ge as buildReviewPrompt,Pe as buttonVariants,qn as clockRefreshMs,Jn as clockText,ce as cn,ci as collapseLines,di as compactDetails,Ke as defaultReviewHeading,bt as detectGrammar,We as dialogFooterVariants,qe as diffGutterWidth,Je as diffRangeOf,be as dotVariants,gt as drawableImageUrl,pt as dropdownMenuItemVariants,Nt as fieldVariants,Yn as formatRunDuration,ht as grammarKeyOf,vi as groupByDirectory,yi as groupRowLabel,Ft as handleOptionListKey,fi as hashlineBody,nn as hashlineGroups,rn as hashlineGroupsKey,xt as highlightToLines,_t as markdownMediaReview,vt as markdownMediaReviewSlot,mn as mediaKindOf,kn as messageItemRowVariants,An as messageItemStatusVariants,jn as messageItemVariants,Fn as messageLineVariants,It as optionListHint,Vt as optionListVariants,Lt as optionMarker,Ht as optionMarkerVariants,Ut as optionRowVariants,pi as parseFileHeader,mi as parseTaggedLine,hi as presentHashlineLines,gn as resolvePdfViewportRegion,gi as resultTextLines,Ye as reviewCommentAnchor,bn as statusBadgeVariants,yt as svgImageUrl,St as syntaxStyleOf,Yr as tabBadgeVariants,Xr as tabVariants,_i as takeTrailingNotice,ai as toastVariants,Mn as toolTone,Xe as trimSnippet,Nn as useMessageItem,Tt as useSyntaxLines};
1
+ import{ActivityIcon as e,AlertIcon as t,AppWindowIcon as n,ArrowLeftIcon as r,ArrowRightIcon as i,AudioLinesIcon as a,BellIcon as o,BookmarkPlusIcon as s,BranchIcon as c,CalendarIcon as l,CheckIcon as u,ChevronDownIcon as d,ChevronRightIcon as f,ChevronUpIcon as p,CloseIcon as m,CopyIcon as h,DownloadIcon as g,EditIcon as _,EnterIcon as v,ExternalLinkIcon as y,FileIcon as b,FolderIcon as x,ForkIcon as S,GearIcon as C,GlobeIcon as w,GridIcon as T,HelpIcon as E,HomeIcon as D,ImageIcon as O,KebabIcon as k,LightbulbIcon as A,ListIcon as j,LoaderIcon as M,LockIcon as N,MenuIcon as P,MessageIcon as F,MicIcon as I,MonitorIcon as L,PaletteIcon as R,PaperclipIcon as z,PlayCircleIcon as B,PlusIcon as V,PuzzleIcon as H,QuoteIcon as U,RefreshIcon as W,RewindIcon as G,SearchIcon as K,SendIcon as q,ServerIcon as J,ShieldIcon as Y,ShrinkIcon as X,SlidersIcon as Z,SparklesIcon as Q,StopIcon as $,TaskIcon as ee,TrashIcon as te,UnlockIcon as ne,UserIcon as re,UsersIcon as ie,VolumeIcon as ae,WorkflowIcon as oe,WrenchIcon as se}from"./packages/core/po-web-components/src/icons/icons.mjs";import{cn as ce}from"./packages/core/po-web-components/src/lib/cn.mjs";import{Accordion as le,AccordionContent as ue,AccordionItem as de,AccordionTrigger as fe}from"./packages/core/po-web-components/src/components/Accordion.mjs";import{ansiSpans as pe}from"./packages/core/po-web-components/src/lib/ansiSpans.mjs";import{AnsiLine as me,AnsiText as he}from"./packages/core/po-web-components/src/components/AnsiText.mjs";import{Avatar as ge,AvatarFallback as _e,AvatarImage as ve}from"./packages/core/po-web-components/src/components/Avatar.mjs";import{Dot as ye,dotVariants as be}from"./packages/core/po-web-components/src/components/Dot.mjs";import{AgentAvatar as xe,agentInitials as Se}from"./packages/core/po-web-components/src/components/AgentAvatar.mjs";import{Badge as Ce,badgeVariants as we}from"./packages/core/po-web-components/src/components/Badge.mjs";import{Tooltip as Te,TooltipContent as Ee,TooltipProvider as De,TooltipTrigger as Oe}from"./packages/core/po-web-components/src/components/Tooltip.mjs";import{BREADCRUMB_ELLIPSIS as ke,Breadcrumb as Ae,breadcrumbSegments as je}from"./packages/core/po-web-components/src/components/Breadcrumb.mjs";import{Spinner as Me}from"./packages/core/po-web-components/src/components/Spinner.mjs";import{Button as Ne,buttonVariants as Pe}from"./packages/core/po-web-components/src/components/Button.mjs";import{Dialog as Fe,DialogBody as Ie,DialogClose as Le,DialogContent as Re,DialogDescription as ze,DialogFooter as Be,DialogHeader as Ve,DialogTitle as He,DialogTrigger as Ue,dialogFooterVariants as We}from"./packages/core/po-web-components/src/components/Dialog.mjs";import{buildReviewPrompt as Ge,defaultReviewHeading as Ke,diffGutterWidth as qe,diffRangeOf as Je,reviewCommentAnchor as Ye,trimSnippet as Xe}from"./packages/core/po-web-components/src/lib/review.mjs";import{DiffView as Ze}from"./packages/core/po-web-components/src/components/DiffView.mjs";import{Drawer as Qe}from"./packages/core/po-web-components/src/components/Drawer.mjs";import{DropdownMenu as $e,DropdownMenuCheckboxItem as et,DropdownMenuContent as tt,DropdownMenuGroup as nt,DropdownMenuItem as rt,DropdownMenuLabel as it,DropdownMenuRadioGroup as at,DropdownMenuRadioItem as ot,DropdownMenuSeparator as st,DropdownMenuShortcut as ct,DropdownMenuSub as lt,DropdownMenuSubContent as ut,DropdownMenuSubTrigger as dt,DropdownMenuTrigger as ft,dropdownMenuItemVariants as pt}from"./packages/core/po-web-components/src/components/DropdownMenu.mjs";import{Checkbox as mt}from"./packages/core/po-web-components/src/components/Checkbox.mjs";import{grammarKeyOf as ht}from"./packages/core/po-web-components/src/lib/editorLanguage.mjs";import{drawableImageUrl as gt,markdownMediaReview as _t,markdownMediaReviewSlot as vt,svgImageUrl as yt}from"./packages/core/po-web-components/src/lib/markdownMedia.mjs";import{detectGrammar as bt,highlightToLines as xt,syntaxStyleOf as St}from"./packages/core/po-web-components/src/lib/syntaxHighlight.mjs";import{SyntaxLine as Ct,SyntaxText as wt,useSyntaxLines as Tt}from"./packages/core/po-web-components/src/components/SyntaxText.mjs";import{CodeBlock as Et}from"./packages/core/po-web-components/src/components/CodeBlock.mjs";import{Skeleton as Dt}from"./packages/core/po-web-components/src/components/Skeleton.mjs";import{CodeEditor as Ot}from"./packages/core/po-web-components/src/components/CodeEditor.mjs";import{Collapsible as kt,CollapsibleContent as At,CollapsibleTrigger as jt}from"./packages/core/po-web-components/src/components/Collapsible.mjs";import{Input as Mt,fieldVariants as Nt}from"./packages/core/po-web-components/src/components/Input.mjs";import{MAX_DIGIT_SHORTCUT as Pt,handleOptionListKey as Ft,optionListHint as It,optionMarker as Lt}from"./packages/core/po-web-components/src/lib/optionList.mjs";import{OptionLabel as Rt,OptionList as zt,OptionRow as Bt,optionListVariants as Vt,optionMarkerVariants as Ht,optionRowVariants as Ut}from"./packages/core/po-web-components/src/components/OptionList.mjs";import{CommandDialog as Wt,CommandEmpty as Gt,CommandFooter as Kt,CommandGroup as qt,CommandGroupLabel as Jt,CommandHeader as Yt,CommandInput as Xt,CommandItem as Zt,CommandItemLabel as Qt,CommandList as $t}from"./packages/core/po-web-components/src/components/Command.mjs";import{EmptyState as en}from"./packages/core/po-web-components/src/components/EmptyState.mjs";import{FlowGraph as tn}from"./packages/core/po-web-components/src/components/FlowGraph.mjs";import{hashlineGroups as nn,hashlineGroupsKey as rn}from"./packages/core/po-web-components/src/lib/hashlineHighlight.mjs";import{HashlineLines as an}from"./packages/core/po-web-components/src/components/HashlineLines.mjs";import{Kbd as on}from"./packages/core/po-web-components/src/components/Kbd.mjs";import{McpToolFields as sn,McpToolFrame as cn,McpToolOutput as ln}from"./packages/core/po-web-components/src/components/McpToolWidget.mjs";import{Label as un}from"./packages/core/po-web-components/src/components/Label.mjs";import{MediaViewerDialog as dn}from"./packages/core/po-web-components/src/components/MediaViewerDialog.mjs";import{Markdown as fn}from"./packages/core/po-web-components/src/components/Markdown.mjs";import{ViewableImage as pn}from"./packages/core/po-web-components/src/components/ViewableImage.mjs";import{mediaKindOf as mn}from"./packages/core/po-web-components/src/lib/media.mjs";import{PdfPreview as hn,resolvePdfViewportRegion as gn}from"./packages/core/po-web-components/src/components/PdfPreview.mjs";import{MediaPreview as _n}from"./packages/core/po-web-components/src/components/MediaPreview.mjs";import{STATUS_EDGE as vn,StatusBadge as yn,statusBadgeVariants as bn}from"./packages/core/po-web-components/src/components/StatusBadge.mjs";import{MessageItem as xn,MessageItemBody as Sn,MessageItemGroup as Cn,MessageItemHeader as wn,MessageItemHeaderAccessoryContext as Tn,MessageItemStatus as En,STATUS_GLYPH as Dn,STATUS_LABEL as On,messageItemRowVariants as kn,messageItemStatusVariants as An,messageItemVariants as jn,toolTone as Mn,useMessageItem as Nn}from"./packages/core/po-web-components/src/components/MessageItem.mjs";import{MessageLines as Pn,messageLineVariants as Fn}from"./packages/core/po-web-components/src/components/MessageLines.mjs";import{Panel as In,PanelBody as Ln,PanelHeader as Rn}from"./packages/core/po-web-components/src/components/Panel.mjs";import{Popover as zn,PopoverAnchor as Bn,PopoverClose as Vn,PopoverContent as Hn,PopoverFooter as Un,PopoverHeader as Wn,PopoverTrigger as Gn}from"./packages/core/po-web-components/src/components/Popover.mjs";import{PickerContent as Kn}from"./packages/core/po-web-components/src/components/Picker.mjs";import{parseProfileCatalog as qn}from"./packages/core/po-web-components/src/lib/profilePicker.mjs";import{ProfilePicker as Jn,useProfileCatalog as Yn}from"./packages/core/po-web-components/src/components/ProfilePicker.mjs";import{clockRefreshMs as Xn,clockText as Zn,formatRunDuration as Qn}from"./packages/core/po-web-components/src/lib/runDuration.mjs";import{LiveDuration as $n}from"./packages/core/po-web-components/src/components/LiveDuration.mjs";import{Progress as er}from"./packages/core/po-web-components/src/components/Progress.mjs";import{RadioGroup as tr,RadioGroupCard as nr,RadioGroupItem as rr}from"./packages/core/po-web-components/src/components/RadioGroup.mjs";import{Textarea as ir}from"./packages/core/po-web-components/src/components/Textarea.mjs";import{ReviewCommentDraft as ar}from"./packages/core/po-web-components/src/components/ReviewCommentDraft.mjs";import{ScrollArea as or,ScrollBar as sr}from"./packages/core/po-web-components/src/components/ScrollArea.mjs";import{SectionLabel as cr}from"./packages/core/po-web-components/src/components/SectionLabel.mjs";import{Select as lr,SelectContent as ur,SelectGroup as dr,SelectItem as fr,SelectLabel as pr,SelectSeparator as mr,SelectTrigger as hr,SelectValue as gr}from"./packages/core/po-web-components/src/components/Select.mjs";import{Separator as _r}from"./packages/core/po-web-components/src/components/Separator.mjs";import{SettingsActions as vr,SettingsCard as yr,SettingsDescription as br,SettingsField as xr,SettingsHeader as Sr,SettingsNote as Cr,SettingsPage as wr,SettingsRow as Tr,SettingsRowDescription as Er,SettingsRowText as Dr,SettingsRowTitle as Or,SettingsSection as kr,SettingsSectionDescription as Ar,SettingsSectionHeader as jr,SettingsSectionTitle as Mr,SettingsTitle as Nr}from"./packages/core/po-web-components/src/components/Settings.mjs";import{Sheet as Pr,SheetBody as Fr,SheetClose as Ir,SheetContent as Lr,SheetDescription as Rr,SheetFooter as zr,SheetHeader as Br,SheetOverlay as Vr,SheetTitle as Hr,SheetTrigger as Ur}from"./packages/core/po-web-components/src/components/Sheet.mjs";import{StreamCursor as Wr}from"./packages/core/po-web-components/src/components/StreamCursor.mjs";import{Switch as Gr}from"./packages/core/po-web-components/src/components/Switch.mjs";import{NavTab as Kr,NavTabBadge as qr,Tabs as Jr,TabsContent as Yr,TabsList as Xr,TabsTrigger as Zr,tabBadgeVariants as Qr,tabVariants as $r}from"./packages/core/po-web-components/src/components/Tabs.mjs";import{TerminalView as ei}from"./packages/core/po-web-components/src/components/TerminalView.mjs";import{Toast as ti,ToastAction as ni,ToastClose as ri,ToastDescription as ii,ToastProvider as ai,ToastTitle as oi,ToastViewport as si,toastVariants as ci}from"./packages/core/po-web-components/src/components/Toast.mjs";import{PathText as li}from"./packages/core/po-web-components/src/components/PathText.mjs";import{ToolPathLink as ui}from"./packages/core/po-web-components/src/components/ToolPathLink.mjs";import{collapseLines as di}from"./packages/core/po-web-components/src/lib/collapse.mjs";import{GREP_COLLAPSED_LINES as fi,READ_COLLAPSED_LINES as pi,compactDetails as mi,hashlineBody as hi,parseFileHeader as gi,parseTaggedLine as _i,presentHashlineLines as vi,resultTextLines as yi,takeTrailingNotice as bi}from"./packages/core/po-web-components/src/lib/hashlineView.mjs";import{groupByDirectory as xi,groupRowLabel as Si}from"./packages/core/po-web-components/src/lib/pathGroups.mjs";import{CHIP_TO_STATUS as Ci,LINE_TONE_TO_STATUS as wi,STATUS_TO_CHIP as Ti,STATUS_TO_DOT as Ei}from"./packages/core/po-web-components/src/lib/tone.mjs";import{MEDIA_KINDS as Di}from"./packages/core/po-web-components/src/types/editor.mjs";import{ACCENT_TONES as Oi,CHIP_TONES as ki,DOT_TONES as Ai,MESSAGE_LINE_TONES as ji,STATUS_TONES as Mi}from"./packages/core/po-web-components/src/types/tone.mjs";export{Oi as ACCENT_TONES,le as Accordion,ue as AccordionContent,de as AccordionItem,fe as AccordionTrigger,e as ActivityIcon,xe as AgentAvatar,t as AlertIcon,me as AnsiLine,he as AnsiText,n as AppWindowIcon,r as ArrowLeftIcon,i as ArrowRightIcon,a as AudioLinesIcon,ge as Avatar,_e as AvatarFallback,ve as AvatarImage,ke as BREADCRUMB_ELLIPSIS,Ce as Badge,o as BellIcon,s as BookmarkPlusIcon,c as BranchIcon,Ae as Breadcrumb,Ne as Button,ki as CHIP_TONES,Ci as CHIP_TO_STATUS,l as CalendarIcon,u as CheckIcon,mt as Checkbox,d as ChevronDownIcon,f as ChevronRightIcon,p as ChevronUpIcon,m as CloseIcon,Et as CodeBlock,Ot as CodeEditor,kt as Collapsible,At as CollapsibleContent,jt as CollapsibleTrigger,Wt as CommandDialog,Gt as CommandEmpty,Kt as CommandFooter,qt as CommandGroup,Jt as CommandGroupLabel,Yt as CommandHeader,Xt as CommandInput,Zt as CommandItem,Qt as CommandItemLabel,$t as CommandList,h as CopyIcon,Ai as DOT_TONES,Fe as Dialog,Ie as DialogBody,Le as DialogClose,Re as DialogContent,ze as DialogDescription,Be as DialogFooter,Ve as DialogHeader,He as DialogTitle,Ue as DialogTrigger,Ze as DiffView,ye as Dot,g as DownloadIcon,Qe as Drawer,$e as DropdownMenu,et as DropdownMenuCheckboxItem,tt as DropdownMenuContent,nt as DropdownMenuGroup,rt as DropdownMenuItem,it as DropdownMenuLabel,at as DropdownMenuRadioGroup,ot as DropdownMenuRadioItem,st as DropdownMenuSeparator,ct as DropdownMenuShortcut,lt as DropdownMenuSub,ut as DropdownMenuSubContent,dt as DropdownMenuSubTrigger,ft as DropdownMenuTrigger,_ as EditIcon,en as EmptyState,v as EnterIcon,y as ExternalLinkIcon,b as FileIcon,tn as FlowGraph,x as FolderIcon,S as ForkIcon,fi as GREP_COLLAPSED_LINES,C as GearIcon,w as GlobeIcon,T as GridIcon,an as HashlineLines,E as HelpIcon,D as HomeIcon,O as ImageIcon,Mt as Input,on as Kbd,k as KebabIcon,wi as LINE_TONE_TO_STATUS,un as Label,A as LightbulbIcon,j as ListIcon,$n as LiveDuration,M as LoaderIcon,N as LockIcon,Pt as MAX_DIGIT_SHORTCUT,Di as MEDIA_KINDS,ji as MESSAGE_LINE_TONES,fn as Markdown,sn as McpToolFields,cn as McpToolFrame,ln as McpToolOutput,_n as MediaPreview,dn as MediaViewerDialog,P as MenuIcon,F as MessageIcon,xn as MessageItem,Sn as MessageItemBody,Cn as MessageItemGroup,wn as MessageItemHeader,Tn as MessageItemHeaderAccessoryContext,En as MessageItemStatus,Pn as MessageLines,I as MicIcon,L as MonitorIcon,Kr as NavTab,qr as NavTabBadge,Rt as OptionLabel,zt as OptionList,Bt as OptionRow,R as PaletteIcon,In as Panel,Ln as PanelBody,Rn as PanelHeader,z as PaperclipIcon,li as PathText,hn as PdfPreview,Kn as PickerContent,B as PlayCircleIcon,V as PlusIcon,zn as Popover,Bn as PopoverAnchor,Vn as PopoverClose,Hn as PopoverContent,Un as PopoverFooter,Wn as PopoverHeader,Gn as PopoverTrigger,Jn as ProfilePicker,er as Progress,H as PuzzleIcon,U as QuoteIcon,pi as READ_COLLAPSED_LINES,tr as RadioGroup,nr as RadioGroupCard,rr as RadioGroupItem,W as RefreshIcon,ar as ReviewCommentDraft,G as RewindIcon,vn as STATUS_EDGE,Dn as STATUS_GLYPH,On as STATUS_LABEL,Mi as STATUS_TONES,Ti as STATUS_TO_CHIP,Ei as STATUS_TO_DOT,or as ScrollArea,sr as ScrollBar,K as SearchIcon,cr as SectionLabel,lr as Select,ur as SelectContent,dr as SelectGroup,fr as SelectItem,pr as SelectLabel,mr as SelectSeparator,hr as SelectTrigger,gr as SelectValue,q as SendIcon,_r as Separator,J as ServerIcon,vr as SettingsActions,yr as SettingsCard,br as SettingsDescription,xr as SettingsField,Sr as SettingsHeader,Cr as SettingsNote,wr as SettingsPage,Tr as SettingsRow,Er as SettingsRowDescription,Dr as SettingsRowText,Or as SettingsRowTitle,kr as SettingsSection,Ar as SettingsSectionDescription,jr as SettingsSectionHeader,Mr as SettingsSectionTitle,Nr as SettingsTitle,Pr as Sheet,Fr as SheetBody,Ir as SheetClose,Lr as SheetContent,Rr as SheetDescription,zr as SheetFooter,Br as SheetHeader,Vr as SheetOverlay,Hr as SheetTitle,Ur as SheetTrigger,Y as ShieldIcon,X as ShrinkIcon,Dt as Skeleton,Z as SlidersIcon,Q as SparklesIcon,Me as Spinner,yn as StatusBadge,$ as StopIcon,Wr as StreamCursor,Gr as Switch,Ct as SyntaxLine,wt as SyntaxText,Jr as Tabs,Yr as TabsContent,Xr as TabsList,Zr as TabsTrigger,ee as TaskIcon,ei as TerminalView,ir as Textarea,ti as Toast,ni as ToastAction,ri as ToastClose,ii as ToastDescription,ai as ToastProvider,oi as ToastTitle,si as ToastViewport,ui as ToolPathLink,Te as Tooltip,Ee as TooltipContent,De as TooltipProvider,Oe as TooltipTrigger,te as TrashIcon,ne as UnlockIcon,re as UserIcon,ie as UsersIcon,pn as ViewableImage,ae as VolumeIcon,oe as WorkflowIcon,se as WrenchIcon,Se as agentInitials,pe as ansiSpans,we as badgeVariants,je as breadcrumbSegments,Ge as buildReviewPrompt,Pe as buttonVariants,Xn as clockRefreshMs,Zn as clockText,ce as cn,di as collapseLines,mi as compactDetails,Ke as defaultReviewHeading,bt as detectGrammar,We as dialogFooterVariants,qe as diffGutterWidth,Je as diffRangeOf,be as dotVariants,gt as drawableImageUrl,pt as dropdownMenuItemVariants,Nt as fieldVariants,Qn as formatRunDuration,ht as grammarKeyOf,xi as groupByDirectory,Si as groupRowLabel,Ft as handleOptionListKey,hi as hashlineBody,nn as hashlineGroups,rn as hashlineGroupsKey,xt as highlightToLines,_t as markdownMediaReview,vt as markdownMediaReviewSlot,mn as mediaKindOf,kn as messageItemRowVariants,An as messageItemStatusVariants,jn as messageItemVariants,Fn as messageLineVariants,It as optionListHint,Vt as optionListVariants,Lt as optionMarker,Ht as optionMarkerVariants,Ut as optionRowVariants,gi as parseFileHeader,qn as parseProfileCatalog,_i as parseTaggedLine,vi as presentHashlineLines,gn as resolvePdfViewportRegion,yi as resultTextLines,Ye as reviewCommentAnchor,bn as statusBadgeVariants,yt as svgImageUrl,St as syntaxStyleOf,Qr as tabBadgeVariants,$r as tabVariants,bi as takeTrailingNotice,ci as toastVariants,Mn as toolTone,Xe as trimSnippet,Nn as useMessageItem,Yn as useProfileCatalog,Tt as useSyntaxLines};
@@ -146,6 +146,28 @@ export interface WebPluginSessionContext {
146
146
  /** The spawner's label for the session. Opaque: hosts never interpret it. */
147
147
  readonly provenance?: string;
148
148
  }
149
+ /**
150
+ * The profile a launcher chooses for a new session. Leaving `profile` out lets the workspace default
151
+ * apply, a name pins that profile, and `null` starts the session with no profile at all.
152
+ */
153
+ export interface LaunchSelection {
154
+ readonly profile?: string | null;
155
+ }
156
+ /** One profile a launcher may offer. It never carries environment, persona text, bindings or secrets. */
157
+ export interface LaunchProfileItem {
158
+ readonly name: string;
159
+ readonly identity?: {
160
+ readonly name?: string;
161
+ readonly icon?: string;
162
+ };
163
+ /** `files` for a profile file, otherwise the id of the plugin that contributed it. */
164
+ readonly sourceId: string;
165
+ }
166
+ export interface LaunchProfileCatalog {
167
+ readonly profiles: readonly LaunchProfileItem[];
168
+ /** `unavailable`: a source did not become ready in time or failed. `profiles` lists what did load. */
169
+ readonly readiness: 'ready' | 'unavailable';
170
+ }
149
171
  /**
150
172
  * What a `new-session` fill needs to replace the host's new-session dialog for
151
173
  * one workspace. The host keeps creating plain sessions itself, so remote
@@ -156,8 +178,16 @@ export interface WebPluginNewSessionContext {
156
178
  readonly workspaceRoot: string;
157
179
  /** Dismisses the dialog without creating anything. */
158
180
  close: () => void;
159
- /** Creates a session in the workspace root; resolves an error message, or undefined once it is open. */
160
- createPlain: (name?: string) => Promise<string | undefined>;
181
+ /**
182
+ * Creates a session in the workspace root; resolves an error message, or undefined once it is open.
183
+ * `selection` carries the launcher's profile choice and is left out when nothing was chosen.
184
+ */
185
+ createPlain: (name?: string, selection?: LaunchSelection) => Promise<string | undefined>;
186
+ /**
187
+ * Lists the profiles a new session in this workspace can start with. Absent on hosts without a profile
188
+ * list, which then show no picker. It waits for async profile sources, so show a loading state.
189
+ */
190
+ loadProfiles?: (signal?: AbortSignal) => Promise<LaunchProfileCatalog>;
161
191
  /** Waits for a session created elsewhere, then opens it; resolves an error message, or undefined. */
162
192
  openCreated: (sessionId: string) => Promise<string | undefined>;
163
193
  /** Same-origin request through the host's transport, retrying once after a fresh passkey gesture. */
@@ -1 +1 @@
1
- {"version":3,"file":"webPlugin.d.mts","names":[],"sources":["../../../../../../../../../po-core/dist/src/web/types/webPlugin.d.mts"],"mappings":"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"}
1
+ {"version":3,"file":"webPlugin.d.mts","names":[],"sources":["../../../../../../../../../po-core/dist/src/web/types/webPlugin.d.mts"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { PoMcpWidgetProps } from "./src/web/types/mcpWidget.mjs";
2
2
  import "./src/web/types/template.mjs";
3
3
  import "./src/web/types/nativeTemplate.mjs";
4
- import { ComposerCapture, ContextAction, SessionFrameSender, SlotDataFill, SlotDeclaration, TabHeader, ThreadViewOptions, TransientTab, WebPluginContextInventoryItem, WebPluginContextItem, WebPluginNewSessionContext, WebPluginSessionContext, WebPluginSlotProps } from "./src/web/types/webPlugin.mjs";
4
+ import { ComposerCapture, ContextAction, LaunchProfileCatalog, LaunchProfileItem, LaunchSelection, SessionFrameSender, SlotDataFill, SlotDeclaration, TabHeader, ThreadViewOptions, TransientTab, WebPluginContextInventoryItem, WebPluginContextItem, WebPluginNewSessionContext, WebPluginSessionContext, WebPluginSlotProps } from "./src/web/types/webPlugin.mjs";
5
5
  import "./src/web/types/extensionFile.mjs";
6
6
  import "./src/extensions/webPlugin.mjs";
7
7
  import "./src/web/models/globalStore.mjs";
@@ -0,0 +1,32 @@
1
+ import { ProfileChoice, ProfilePickerProfile, ProfilePickerStatus } from "../lib/profilePicker.mjs";
2
+ //#region src/components/ProfilePicker.d.ts
3
+ export interface ProfilePickerProps {
4
+ profiles: readonly ProfilePickerProfile[];
5
+ status: ProfilePickerStatus;
6
+ /** `undefined`: not chosen. `null`: explicit No profile. A string: that profile. */
7
+ value: ProfileChoice;
8
+ onChange: (choice: ProfileChoice) => void;
9
+ disabled?: boolean;
10
+ id?: string;
11
+ className?: string;
12
+ }
13
+ /**
14
+ * Chooses the profile a new session starts with.
15
+ *
16
+ * It never chooses for the person: a launch with nothing picked leaves the
17
+ * workspace default eligible, and No profile is its own explicit row. The
18
+ * list can still be filling in while the person decides, and a source that
19
+ * did not load is said plainly instead of leaving the list quietly short.
20
+ */
21
+ export declare function ProfilePicker({ profiles, status, value, onChange, disabled, id, className }: ProfilePickerProps): import("react").JSX.Element;
22
+ /**
23
+ * Loads the profile list for one target, such as a workspace, and reloads when `key` changes.
24
+ * Undefined while no loader exists, so a host that offers none shows no picker.
25
+ * Never chooses a profile; an unreachable server is "unavailable" with nothing listed.
26
+ */
27
+ export declare function useProfileCatalog(key: string, load: ((signal: AbortSignal) => Promise<unknown>) | undefined): {
28
+ status: ProfilePickerStatus;
29
+ profiles: readonly ProfilePickerProfile[];
30
+ } | undefined;
31
+ //#endregion
32
+ //# sourceMappingURL=ProfilePicker.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProfilePicker.d.mts","names":[],"sources":["../../../../../../src/components/ProfilePicker.tsx"],"mappings":";;iBAoBiB;EACf,mBAAmB;EACnB,QAAQ;;EAER,OAAO;EACP,WAAW,QAAQ;EACnB;EACA;EACA;;;;;;;;;;wBAac,gBAAgB,UAAU,QAAQ,OAAO,UAAU,UAAU,IAAI,aAAa,qCAAkB,IAAA;;;;;;wBAoEhG,kBACd,aACA,QAAQ,QAAQ,gBAAgB;EAC7B,QAAQ;EAAqB,mBAAmB"}
@@ -0,0 +1,2 @@
1
+ import{ChevronDownIcon as e}from"../icons/icons.mjs";import{cn as t}from"../lib/cn.mjs";import{Spinner as n}from"./Spinner.mjs";import{Button as r}from"./Button.mjs";import{Popover as i,PopoverTrigger as a}from"./Popover.mjs";import{PickerContent as o}from"./Picker.mjs";import{loadProfileCatalog as s,profileChoiceLabel as c,profileChoiceOf as l,profilePickerItems as u,profileValueOf as d}from"../lib/profilePicker.mjs";import{jsx as f,jsxs as p}from"react/jsx-runtime";import{useEffect as m,useId as h,useRef as g,useState as _}from"react";function v({profiles:s,status:m,value:g,onChange:v,disabled:y,id:b,className:x}){let[S,C]=_(!1),w=h(),T=u(s).map(e=>({...e,props:{"data-testid":`profile-option-${e.value}`}}));return/* @__PURE__ */ p(`div`,{"data-slot":`profile-picker`,"data-testid":`profile-picker`,className:t(`flex flex-col gap-1`,x),children:[/* @__PURE__ */ f(`span`,{id:w,className:`text-base font-medium text-po-text`,children:`Profile (optional)`}),/* @__PURE__ */ p(i,{open:S,onOpenChange:C,children:[/* @__PURE__ */ f(a,{asChild:!0,children:/* @__PURE__ */ p(r,{id:b,variant:`outline`,"data-testid":`profile-picker-trigger`,"aria-haspopup":`listbox`,"aria-expanded":S,"aria-labelledby":w,disabled:y,className:`w-full justify-between px-2.5 text-po-text`,children:[/* @__PURE__ */ f(`span`,{className:`truncate`,children:c(g,s)}),m===`loading`?/* @__PURE__ */ f(n,{className:`size-3 shrink-0`}):/* @__PURE__ */ f(e,{className:`size-3.5 shrink-0 opacity-60`})]})}),/* @__PURE__ */ f(o,{side:`bottom`,align:`start`,"data-testid":`profile-picker-list`,title:`Profile`,meta:m===`loading`?`loading`:`${String(s.length)} available`,items:T,value:[d(g)],filterable:T.length>9,filterPlaceholder:`Filter profiles`,className:`w-[min(360px,calc(100vw-24px))]`,onSelect:e=>{v(l(e)),C(!1)}})]}),m===`loading`?/* @__PURE__ */ f(`p`,{role:`status`,className:`text-sm text-po-dim`,children:`Loading profiles…`}):m===`unavailable`?/* @__PURE__ */ p(`p`,{role:`status`,"data-testid":`profile-picker-note`,className:`text-sm text-po-dim`,children:[s.length===0?`Profiles could not be loaded.`:`Some profiles could not be loaded.`,` `,`You can still start a session without one.`]}):null]})}function y(e,t){let[n,r]=_(),i=g(t);m(()=>{i.current=t});let a=t!==void 0;if(m(()=>{if(!a)return;let t=new AbortController;return s(e=>i.current?.(e)??Promise.resolve(void 0),t.signal).then(t=>{t!==void 0&&r({key:e,state:t})}),()=>t.abort()},[e,a]),a)return n?.key===e?n.state:{status:`loading`,profiles:[]}}export{v as ProfilePicker,y as useProfileCatalog};
2
+ //# sourceMappingURL=ProfilePicker.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProfilePicker.mjs","names":["ProfilePicker","open","setOpen","useState","labelId","useId","items","profilePickerItems","profiles","item","cn","className","Popover","PopoverTrigger","Button","profileChoiceLabel","value","status","Spinner","ChevronDownIcon","PickerContent","profileValueOf","onChange","profileChoiceOf","next","useProfileCatalog","loaded","setLoaded","latest","useRef","load","useEffect","enabled","controller","loadProfileCatalog","signal","state","key"],"sources":["../../../../../../src/components/ProfilePicker.tsx"],"sourcesContent":["import { useEffect, useId, useRef, useState } from 'react';\n\nimport { ChevronDownIcon } from '../icons/icons';\nimport { cn } from '../lib/cn';\nimport {\n loadProfileCatalog,\n type ProfileChoice,\n profileChoiceLabel,\n profileChoiceOf,\n type ProfilePickerProfile,\n type ProfilePickerState,\n type ProfilePickerStatus,\n profilePickerItems,\n profileValueOf,\n} from '../lib/profilePicker';\nimport { Button } from './Button';\nimport { PickerContent } from './Picker';\nimport { Popover, PopoverTrigger } from './Popover';\nimport { Spinner } from './Spinner';\n\nexport interface ProfilePickerProps {\n profiles: readonly ProfilePickerProfile[];\n status: ProfilePickerStatus;\n /** `undefined`: not chosen. `null`: explicit No profile. A string: that profile. */\n value: ProfileChoice;\n onChange: (choice: ProfileChoice) => void;\n disabled?: boolean;\n id?: string;\n className?: string;\n}\n\nconst UNAVAILABLE_NOTE = 'You can still start a session without one.';\n\n/**\n * Chooses the profile a new session starts with.\n *\n * It never chooses for the person: a launch with nothing picked leaves the\n * workspace default eligible, and No profile is its own explicit row. The\n * list can still be filling in while the person decides, and a source that\n * did not load is said plainly instead of leaving the list quietly short.\n */\nexport function ProfilePicker({ profiles, status, value, onChange, disabled, id, className }: ProfilePickerProps) {\n const [open, setOpen] = useState(false);\n const labelId = useId();\n const items = profilePickerItems(profiles).map((item) => ({\n ...item,\n props: { 'data-testid': `profile-option-${item.value}` },\n }));\n return (\n <div data-slot=\"profile-picker\" data-testid=\"profile-picker\" className={cn('flex flex-col gap-1', className)}>\n <span id={labelId} className=\"text-base font-medium text-po-text\">\n Profile (optional)\n </span>\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n id={id}\n variant=\"outline\"\n data-testid=\"profile-picker-trigger\"\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n aria-labelledby={labelId}\n disabled={disabled}\n className=\"w-full justify-between px-2.5 text-po-text\"\n >\n <span className=\"truncate\">{profileChoiceLabel(value, profiles)}</span>\n {status === 'loading' ? (\n <Spinner className=\"size-3 shrink-0\" />\n ) : (\n <ChevronDownIcon className=\"size-3.5 shrink-0 opacity-60\" />\n )}\n </Button>\n </PopoverTrigger>\n <PickerContent\n side=\"bottom\"\n align=\"start\"\n data-testid=\"profile-picker-list\"\n title=\"Profile\"\n meta={status === 'loading' ? 'loading' : `${String(profiles.length)} available`}\n items={items}\n value={[profileValueOf(value)]}\n filterable={items.length > 9}\n filterPlaceholder=\"Filter profiles\"\n className=\"w-[min(360px,calc(100vw-24px))]\"\n onSelect={(next) => {\n onChange(profileChoiceOf(next));\n setOpen(false);\n }}\n />\n </Popover>\n {status === 'loading' ? (\n <p role=\"status\" className=\"text-sm text-po-dim\">\n Loading profiles…\n </p>\n ) : status === 'unavailable' ? (\n <p role=\"status\" data-testid=\"profile-picker-note\" className=\"text-sm text-po-dim\">\n {profiles.length === 0 ? 'Profiles could not be loaded.' : 'Some profiles could not be loaded.'}{' '}\n {UNAVAILABLE_NOTE}\n </p>\n ) : null}\n </div>\n );\n}\n\n/**\n * Loads the profile list for one target, such as a workspace, and reloads when `key` changes.\n * Undefined while no loader exists, so a host that offers none shows no picker.\n * Never chooses a profile; an unreachable server is \"unavailable\" with nothing listed.\n */\nexport function useProfileCatalog(\n key: string,\n load: ((signal: AbortSignal) => Promise<unknown>) | undefined,\n): { status: ProfilePickerStatus; profiles: readonly ProfilePickerProfile[] } | undefined {\n const [loaded, setLoaded] = useState<{ key: string; state: ProfilePickerState } | undefined>();\n // The newest loader without restarting the request each time a host rebuilds it; declared first so it runs first.\n const latest = useRef(load);\n useEffect(() => {\n latest.current = load;\n });\n const enabled = load !== undefined;\n useEffect(() => {\n if (!enabled) return;\n const controller = new AbortController();\n const request = (signal: AbortSignal): Promise<unknown> => latest.current?.(signal) ?? Promise.resolve(undefined);\n void loadProfileCatalog(request, controller.signal).then((state) => {\n if (state !== undefined) setLoaded({ key, state });\n });\n return () => controller.abort();\n }, [key, enabled]);\n if (!enabled) return undefined;\n return loaded?.key === key ? loaded.state : { status: 'loading', profiles: [] };\n}\n"],"mappings":"+hBAyCA,SAAgBA,EAAc,CAAE,WAAU,SAAQ,QAAO,WAAU,WAAU,KAAI,aAAiC,CAChH,GAAM,CAACC,EAAMC,GAAWC,EAAS,EAAK,EAChCC,EAAUC,EAAM,EAChBC,EAAQC,EAAmBC,CAAQ,CAAC,CAAC,IAAK,IAAU,CACxD,GAAGC,EACH,MAAO,CAAE,cAAe,kBAAkBA,EAAK,OAAQ,CACzD,EAAE,EACF,MACE,kBAAC,MAAD,CAAK,YAAU,iBAAiB,cAAY,iBAAiB,UAAWC,EAAG,sBAAuBC,CAAS,EAA3G,SAAA,CACE,kBAAC,OAAD,CAAM,GAAIP,EAAS,UAAU,qCAAqC,SAAA,oBAE5D,CAAA,EACN,kBAACQ,EAAD,CAAe,OAAM,aAAcV,EAAnC,SAAA,CACE,kBAACW,EAAD,CAAgB,QAAA,GACd,SAAA,kBAACC,EAAD,CACM,KACJ,QAAQ,UACR,cAAY,yBACZ,gBAAc,UACd,gBAAeb,EACf,kBAAiBG,EACP,WACV,UAAU,6CARZ,SAAA,CAUE,kBAAC,OAAD,CAAM,UAAU,WAAY,SAAAW,EAAmBC,EAAOR,CAAQ,CAAQ,CAAA,EACrES,IAAW,UACV,kBAACC,EAAD,CAAS,UAAU,iBAAmB,CAAA,EAEtC,kBAACC,EAAD,CAAiB,UAAU,8BAAgC,CAAA,CAEvD,GACM,CAAA,EAChB,kBAACC,EAAD,CACE,KAAK,SACL,MAAM,QACN,cAAY,sBACZ,MAAM,UACN,KAAMH,IAAW,UAAY,UAAY,GAAG,OAAOT,EAAS,MAAM,EAAE,YAC7D,QACP,MAAO,CAACa,EAAeL,CAAK,CAAC,EAC7B,WAAYV,EAAM,OAAS,EAC3B,kBAAkB,kBAClB,UAAU,kCACV,SAAW,GAAS,CAClBgB,EAASC,EAAgBC,CAAI,CAAC,EAC9BtB,EAAQ,EAAK,CACf,CACD,CAAA,CACM,IACRe,IAAW,UACV,kBAAC,IAAD,CAAG,KAAK,SAAS,UAAU,sBAAsB,SAAA,mBAE9C,CAAA,EACDA,IAAW,cACb,kBAAC,IAAD,CAAG,KAAK,SAAS,cAAY,sBAAsB,UAAU,sBAA7D,SAAA,CACGT,EAAS,SAAW,EAAI,gCAAkC,qCAAsC,IAChG,4CACA,CACD,CAAA,EAAA,IACD,GAET,CAOA,SAAgBiB,EACd,EACA,EACwF,CACxF,GAAM,CAACC,EAAQC,GAAaxB,EAAiE,EAEvFyB,EAASC,EAAOC,CAAI,EAC1BC,MAAgB,CACd,EAAO,QAAUD,CACnB,CAAC,EACD,IAAME,EAAUF,IAAS,IAAA,GAUzB,GATAC,MAAgB,CACd,GAAI,CAACC,EAAS,OACd,IAAMC,EAAa,IAAI,gBAKvB,OAHAC,EADiB,GAA0CN,EAAO,UAAUO,CAAM,GAAK,QAAQ,QAAQ,IAAA,EAAS,EAC/EF,EAAW,MAAM,CAAC,CAAC,KAAM,GAAU,CAC9DG,IAAU,IAAA,IAAWT,EAAU,CAAE,MAAK,OAAM,CAAC,CACnD,CAAC,MACYM,EAAW,MAAM,CAChC,EAAG,CAACI,EAAKL,CAAO,CAAC,EACZA,EACL,OAAON,GAAQ,MAAQW,EAAMX,EAAO,MAAQ,CAAE,OAAQ,UAAW,SAAU,CAAC,CAAE,CAChF"}
@@ -0,0 +1,35 @@
1
+ //#region src/lib/profilePicker.d.ts
2
+ /**
3
+ * The launch-time profile choice a person makes before a session exists.
4
+ *
5
+ * `undefined` is "not chosen": the workspace default may apply. `null` is an
6
+ * explicit "No profile", which no default may override. A string names a profile.
7
+ */
8
+ export type ProfileChoice = string | null | undefined;
9
+ /** What the picker may know about a profile. Never its environment, persona, bindings or secrets. */
10
+ export interface ProfilePickerProfile {
11
+ readonly name: string;
12
+ readonly identity?: {
13
+ readonly name?: string;
14
+ readonly icon?: string;
15
+ };
16
+ /** `files` for a profile file, otherwise the id of the plugin that contributed it. */
17
+ readonly sourceId: string;
18
+ }
19
+ export interface ProfilePickerCatalog {
20
+ readonly profiles: readonly ProfilePickerProfile[];
21
+ /** `unavailable`: a source did not become ready in time or failed. `profiles` lists what loaded. */
22
+ readonly readiness: 'ready' | 'unavailable';
23
+ }
24
+ export type ProfilePickerStatus = 'loading' | ProfilePickerCatalog['readiness'];
25
+ export interface ProfilePickerState {
26
+ readonly status: Exclude<ProfilePickerStatus, 'loading'>;
27
+ readonly profiles: readonly ProfilePickerProfile[];
28
+ }
29
+ /**
30
+ * A server answer reduced to the fields the picker may show, or undefined when it is not a catalog.
31
+ * Any other field is dropped here, so nothing sensitive a server mistakenly adds can reach the page.
32
+ */
33
+ export declare function parseProfileCatalog(value: unknown): ProfilePickerCatalog | undefined;
34
+ //#endregion
35
+ //# sourceMappingURL=profilePicker.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profilePicker.d.mts","names":[],"sources":["../../../../../../src/lib/profilePicker.ts"],"mappings":";;;;;;;YAQY;;iBAGK;WACN;WACA;aAAsB;aAAwB;;;WAE9C;;iBAGM;WACN,mBAAmB;;WAEnB;;YAGC,kCAAkC;iBAE7B;WACN,QAAQ,QAAQ;WAChB,mBAAmB;;;;;;wBA+Ed,oBAAoB,iBAAiB"}
@@ -0,0 +1,2 @@
1
+ const e=`default`,t=`none`,n=`profile:`,r=`Workspace default`,i=`No profile`;function a(r){return r===void 0?e:r===null?t:`${n}${r}`}function o(e){if(e===`none`)return null;if(e.startsWith(n))return e.slice(8)}function s(e){return e.identity?.name||e.name}function c(n){return[{value:e,title:r,subtitle:`Use what this workspace sets, if anything`},{value:t,title:i,subtitle:`Start without a profile`},...n.map(e=>({value:a(e.name),title:s(e),...s(e)===e.name?{}:{subtitle:e.name}}))]}function l(e,t){if(e===void 0)return r;if(e===null)return i;let n=t.find(t=>t.name===e);return n===void 0?e:s(n)}function u(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function d(e){if(!u(e)||typeof e.name!=`string`||e.name===``||typeof e.sourceId!=`string`||e.sourceId===``)return;let t=u(e.identity)?e.identity:void 0,n=typeof t?.name==`string`&&t.name!==``?t.name:void 0,r=typeof t?.icon==`string`&&t.icon!==``?t.icon:void 0;return{name:e.name,sourceId:e.sourceId,...n===void 0&&r===void 0?{}:{identity:{...n===void 0?{}:{name:n},...r===void 0?{}:{icon:r}}}}}function f(e){if(!u(e)||!Array.isArray(e.profiles)||e.readiness!==`ready`&&e.readiness!==`unavailable`)return;let t=/* @__PURE__ */ new Set,n=[];for(let r of e.profiles){let e=d(r);e===void 0||t.has(e.name)||(t.add(e.name),n.push(e))}return{profiles:n,readiness:e.readiness}}const p={status:`unavailable`,profiles:[]};async function m(e,t){let n;try{n=await e(t)}catch{n=void 0}if(t.aborted)return;let r=f(n);return r===void 0?p:{status:r.readiness,profiles:r.profiles}}export{r as DEFAULT_PROFILE_LABEL,e as DEFAULT_PROFILE_VALUE,i as NO_PROFILE_LABEL,t as NO_PROFILE_VALUE,m as loadProfileCatalog,f as parseProfileCatalog,l as profileChoiceLabel,o as profileChoiceOf,c as profilePickerItems,a as profileValueOf};
2
+ //# sourceMappingURL=profilePicker.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profilePicker.mjs","names":["DEFAULT_PROFILE_VALUE","NO_PROFILE_VALUE","PROFILE_PREFIX","DEFAULT_PROFILE_LABEL","NO_PROFILE_LABEL","profileValueOf","choice","profileChoiceOf","value","titleOf","profile","profilePickerItems","profiles","profileChoiceLabel","candidate","isRecord","profileOf","identity","identityName","identityIcon","parseProfileCatalog","seen","entry","UNAVAILABLE","loadProfileCatalog","answer","load","signal","catalog"],"sources":["../../../../../../src/lib/profilePicker.ts"],"sourcesContent":["import type { PickerChoice } from './picker';\n\n/**\n * The launch-time profile choice a person makes before a session exists.\n *\n * `undefined` is \"not chosen\": the workspace default may apply. `null` is an\n * explicit \"No profile\", which no default may override. A string names a profile.\n */\nexport type ProfileChoice = string | null | undefined;\n\n/** What the picker may know about a profile. Never its environment, persona, bindings or secrets. */\nexport interface ProfilePickerProfile {\n readonly name: string;\n readonly identity?: { readonly name?: string; readonly icon?: string };\n /** `files` for a profile file, otherwise the id of the plugin that contributed it. */\n readonly sourceId: string;\n}\n\nexport interface ProfilePickerCatalog {\n readonly profiles: readonly ProfilePickerProfile[];\n /** `unavailable`: a source did not become ready in time or failed. `profiles` lists what loaded. */\n readonly readiness: 'ready' | 'unavailable';\n}\n\nexport type ProfilePickerStatus = 'loading' | ProfilePickerCatalog['readiness'];\n\nexport interface ProfilePickerState {\n readonly status: Exclude<ProfilePickerStatus, 'loading'>;\n readonly profiles: readonly ProfilePickerProfile[];\n}\n\n/** Row values carry a prefix, so a profile named \"none\" or \"default\" cannot pass for a choice. */\nexport const DEFAULT_PROFILE_VALUE = 'default';\nexport const NO_PROFILE_VALUE = 'none';\nconst PROFILE_PREFIX = 'profile:';\n\nexport const DEFAULT_PROFILE_LABEL = 'Workspace default';\nexport const NO_PROFILE_LABEL = 'No profile';\n\nexport function profileValueOf(choice: ProfileChoice): string {\n if (choice === undefined) return DEFAULT_PROFILE_VALUE;\n if (choice === null) return NO_PROFILE_VALUE;\n return `${PROFILE_PREFIX}${choice}`;\n}\n\nexport function profileChoiceOf(value: string): ProfileChoice {\n if (value === NO_PROFILE_VALUE) return null;\n if (value.startsWith(PROFILE_PREFIX)) return value.slice(PROFILE_PREFIX.length);\n return undefined;\n}\n\nfunction titleOf(profile: ProfilePickerProfile): string {\n return profile.identity?.name || profile.name;\n}\n\n/** The workspace default and No profile first, then every profile in the order given. Nothing is preselected. */\nexport function profilePickerItems(profiles: readonly ProfilePickerProfile[]): PickerChoice[] {\n return [\n {\n value: DEFAULT_PROFILE_VALUE,\n title: DEFAULT_PROFILE_LABEL,\n subtitle: 'Use what this workspace sets, if anything',\n },\n { value: NO_PROFILE_VALUE, title: NO_PROFILE_LABEL, subtitle: 'Start without a profile' },\n ...profiles.map((profile) => ({\n value: profileValueOf(profile.name),\n title: titleOf(profile),\n ...(titleOf(profile) === profile.name ? {} : { subtitle: profile.name }),\n })),\n ];\n}\n\nexport function profileChoiceLabel(choice: ProfileChoice, profiles: readonly ProfilePickerProfile[]): string {\n if (choice === undefined) return DEFAULT_PROFILE_LABEL;\n if (choice === null) return NO_PROFILE_LABEL;\n const profile = profiles.find((candidate) => candidate.name === choice);\n return profile === undefined ? choice : titleOf(profile);\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction profileOf(value: unknown): ProfilePickerProfile | undefined {\n if (!isRecord(value) || typeof value.name !== 'string' || value.name === '') return undefined;\n if (typeof value.sourceId !== 'string' || value.sourceId === '') return undefined;\n const identity = isRecord(value.identity) ? value.identity : undefined;\n const identityName = typeof identity?.name === 'string' && identity.name !== '' ? identity.name : undefined;\n const identityIcon = typeof identity?.icon === 'string' && identity.icon !== '' ? identity.icon : undefined;\n return {\n name: value.name,\n sourceId: value.sourceId,\n ...(identityName === undefined && identityIcon === undefined\n ? {}\n : {\n identity: {\n ...(identityName === undefined ? {} : { name: identityName }),\n ...(identityIcon === undefined ? {} : { icon: identityIcon }),\n },\n }),\n };\n}\n\n/**\n * A server answer reduced to the fields the picker may show, or undefined when it is not a catalog.\n * Any other field is dropped here, so nothing sensitive a server mistakenly adds can reach the page.\n */\nexport function parseProfileCatalog(value: unknown): ProfilePickerCatalog | undefined {\n if (!isRecord(value) || !Array.isArray(value.profiles)) return undefined;\n if (value.readiness !== 'ready' && value.readiness !== 'unavailable') return undefined;\n const seen = new Set<string>();\n const profiles: ProfilePickerProfile[] = [];\n for (const entry of value.profiles) {\n const profile = profileOf(entry);\n if (profile === undefined || seen.has(profile.name)) continue;\n seen.add(profile.name);\n profiles.push(profile);\n }\n return { profiles, readiness: value.readiness };\n}\n\nconst UNAVAILABLE: ProfilePickerState = { status: 'unavailable', profiles: [] };\n\n/**\n * Runs one catalog request. A failed or malformed answer is \"unavailable\" with nothing listed, so a\n * session can still start without a profile. Undefined means the caller gave up on this request.\n */\nexport async function loadProfileCatalog(\n load: (signal: AbortSignal) => Promise<unknown>,\n signal: AbortSignal,\n): Promise<ProfilePickerState | undefined> {\n let answer: unknown;\n try {\n answer = await load(signal);\n } catch {\n answer = undefined;\n }\n if (signal.aborted) return undefined;\n const catalog = parseProfileCatalog(answer);\n return catalog === undefined ? UNAVAILABLE : { status: catalog.readiness, profiles: catalog.profiles };\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ require("../icons/icons.cjs");const e=require("../lib/cn.cjs"),t=require("./Spinner.cjs"),n=require("./Button.cjs"),r=require("./Popover.cjs"),i=require("./Picker.cjs"),a=require("../lib/profilePicker.cjs");let o=require("react/jsx-runtime"),s=require("react"),c=require("lucide-react");function l({profiles:l,status:u,value:d,onChange:f,disabled:p,id:m,className:h}){let[g,_]=(0,s.useState)(!1),v=(0,s.useId)(),y=a.profilePickerItems(l).map(e=>({...e,props:{"data-testid":`profile-option-${e.value}`}}));return/* @__PURE__ */ (0,o.jsxs)(`div`,{"data-slot":`profile-picker`,"data-testid":`profile-picker`,className:e.cn(`flex flex-col gap-1`,h),children:[/* @__PURE__ */ (0,o.jsx)(`span`,{id:v,className:`text-base font-medium text-po-text`,children:`Profile (optional)`}),/* @__PURE__ */ (0,o.jsxs)(r.Popover,{open:g,onOpenChange:_,children:[/* @__PURE__ */ (0,o.jsx)(r.PopoverTrigger,{asChild:!0,children:/* @__PURE__ */ (0,o.jsxs)(n.Button,{id:m,variant:`outline`,"data-testid":`profile-picker-trigger`,"aria-haspopup":`listbox`,"aria-expanded":g,"aria-labelledby":v,disabled:p,className:`w-full justify-between px-2.5 text-po-text`,children:[/* @__PURE__ */ (0,o.jsx)(`span`,{className:`truncate`,children:a.profileChoiceLabel(d,l)}),u===`loading`?/* @__PURE__ */ (0,o.jsx)(t.Spinner,{className:`size-3 shrink-0`}):/* @__PURE__ */ (0,o.jsx)(c.ChevronDown,{className:`size-3.5 shrink-0 opacity-60`})]})}),/* @__PURE__ */ (0,o.jsx)(i.PickerContent,{side:`bottom`,align:`start`,"data-testid":`profile-picker-list`,title:`Profile`,meta:u===`loading`?`loading`:`${String(l.length)} available`,items:y,value:[a.profileValueOf(d)],filterable:y.length>9,filterPlaceholder:`Filter profiles`,className:`w-[min(360px,calc(100vw-24px))]`,onSelect:e=>{f(a.profileChoiceOf(e)),_(!1)}})]}),u===`loading`?/* @__PURE__ */ (0,o.jsx)(`p`,{role:`status`,className:`text-sm text-po-dim`,children:`Loading profiles…`}):u===`unavailable`?/* @__PURE__ */ (0,o.jsxs)(`p`,{role:`status`,"data-testid":`profile-picker-note`,className:`text-sm text-po-dim`,children:[l.length===0?`Profiles could not be loaded.`:`Some profiles could not be loaded.`,` `,`You can still start a session without one.`]}):null]})}function u(e,t){let[n,r]=(0,s.useState)(),i=(0,s.useRef)(t);(0,s.useEffect)(()=>{i.current=t});let o=t!==void 0;if((0,s.useEffect)(()=>{if(!o)return;let t=new AbortController;return a.loadProfileCatalog(e=>i.current?.(e)??Promise.resolve(void 0),t.signal).then(t=>{t!==void 0&&r({key:e,state:t})}),()=>t.abort()},[e,o]),o)return n?.key===e?n.state:{status:`loading`,profiles:[]}}exports.ProfilePicker=l,exports.useProfileCatalog=u;
2
+ //# sourceMappingURL=ProfilePicker.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProfilePicker.cjs","names":["useState","useId","profilePickerItems","cn","Popover","PopoverTrigger","Button","profileChoiceLabel","Spinner","ChevronDownIcon","PickerContent","profileValueOf","profileChoiceOf","useRef","loadProfileCatalog","require_cn","require_Spinner","require_Button","require_Popover","require_Picker","require_profilePicker","react_jsx_runtime","react","lucide_react","ProfilePicker","open","setOpen","labelId","items","profiles","item","className","value","status","onChange","next","useProfileCatalog","loaded","setLoaded","latest","load","enabled","controller","signal","state","key"],"sources":["../../../src/components/ProfilePicker.tsx"],"sourcesContent":["import { useEffect, useId, useRef, useState } from 'react';\n\nimport { ChevronDownIcon } from '../icons/icons';\nimport { cn } from '../lib/cn';\nimport {\n loadProfileCatalog,\n type ProfileChoice,\n profileChoiceLabel,\n profileChoiceOf,\n type ProfilePickerProfile,\n type ProfilePickerState,\n type ProfilePickerStatus,\n profilePickerItems,\n profileValueOf,\n} from '../lib/profilePicker';\nimport { Button } from './Button';\nimport { PickerContent } from './Picker';\nimport { Popover, PopoverTrigger } from './Popover';\nimport { Spinner } from './Spinner';\n\nexport interface ProfilePickerProps {\n profiles: readonly ProfilePickerProfile[];\n status: ProfilePickerStatus;\n /** `undefined`: not chosen. `null`: explicit No profile. A string: that profile. */\n value: ProfileChoice;\n onChange: (choice: ProfileChoice) => void;\n disabled?: boolean;\n id?: string;\n className?: string;\n}\n\nconst UNAVAILABLE_NOTE = 'You can still start a session without one.';\n\n/**\n * Chooses the profile a new session starts with.\n *\n * It never chooses for the person: a launch with nothing picked leaves the\n * workspace default eligible, and No profile is its own explicit row. The\n * list can still be filling in while the person decides, and a source that\n * did not load is said plainly instead of leaving the list quietly short.\n */\nexport function ProfilePicker({ profiles, status, value, onChange, disabled, id, className }: ProfilePickerProps) {\n const [open, setOpen] = useState(false);\n const labelId = useId();\n const items = profilePickerItems(profiles).map((item) => ({\n ...item,\n props: { 'data-testid': `profile-option-${item.value}` },\n }));\n return (\n <div data-slot=\"profile-picker\" data-testid=\"profile-picker\" className={cn('flex flex-col gap-1', className)}>\n <span id={labelId} className=\"text-base font-medium text-po-text\">\n Profile (optional)\n </span>\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n id={id}\n variant=\"outline\"\n data-testid=\"profile-picker-trigger\"\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n aria-labelledby={labelId}\n disabled={disabled}\n className=\"w-full justify-between px-2.5 text-po-text\"\n >\n <span className=\"truncate\">{profileChoiceLabel(value, profiles)}</span>\n {status === 'loading' ? (\n <Spinner className=\"size-3 shrink-0\" />\n ) : (\n <ChevronDownIcon className=\"size-3.5 shrink-0 opacity-60\" />\n )}\n </Button>\n </PopoverTrigger>\n <PickerContent\n side=\"bottom\"\n align=\"start\"\n data-testid=\"profile-picker-list\"\n title=\"Profile\"\n meta={status === 'loading' ? 'loading' : `${String(profiles.length)} available`}\n items={items}\n value={[profileValueOf(value)]}\n filterable={items.length > 9}\n filterPlaceholder=\"Filter profiles\"\n className=\"w-[min(360px,calc(100vw-24px))]\"\n onSelect={(next) => {\n onChange(profileChoiceOf(next));\n setOpen(false);\n }}\n />\n </Popover>\n {status === 'loading' ? (\n <p role=\"status\" className=\"text-sm text-po-dim\">\n Loading profiles…\n </p>\n ) : status === 'unavailable' ? (\n <p role=\"status\" data-testid=\"profile-picker-note\" className=\"text-sm text-po-dim\">\n {profiles.length === 0 ? 'Profiles could not be loaded.' : 'Some profiles could not be loaded.'}{' '}\n {UNAVAILABLE_NOTE}\n </p>\n ) : null}\n </div>\n );\n}\n\n/**\n * Loads the profile list for one target, such as a workspace, and reloads when `key` changes.\n * Undefined while no loader exists, so a host that offers none shows no picker.\n * Never chooses a profile; an unreachable server is \"unavailable\" with nothing listed.\n */\nexport function useProfileCatalog(\n key: string,\n load: ((signal: AbortSignal) => Promise<unknown>) | undefined,\n): { status: ProfilePickerStatus; profiles: readonly ProfilePickerProfile[] } | undefined {\n const [loaded, setLoaded] = useState<{ key: string; state: ProfilePickerState } | undefined>();\n // The newest loader without restarting the request each time a host rebuilds it; declared first so it runs first.\n const latest = useRef(load);\n useEffect(() => {\n latest.current = load;\n });\n const enabled = load !== undefined;\n useEffect(() => {\n if (!enabled) return;\n const controller = new AbortController();\n const request = (signal: AbortSignal): Promise<unknown> => latest.current?.(signal) ?? Promise.resolve(undefined);\n void loadProfileCatalog(request, controller.signal).then((state) => {\n if (state !== undefined) setLoaded({ key, state });\n });\n return () => controller.abort();\n }, [key, enabled]);\n if (!enabled) return undefined;\n return loaded?.key === key ? loaded.state : { status: 'loading', profiles: [] };\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ const e=`default`,t=`none`,n=`profile:`,r=`Workspace default`,i=`No profile`;function a(r){return r===void 0?e:r===null?t:`${n}${r}`}function o(e){if(e===`none`)return null;if(e.startsWith(n))return e.slice(8)}function s(e){return e.identity?.name||e.name}function c(n){return[{value:e,title:r,subtitle:`Use what this workspace sets, if anything`},{value:t,title:i,subtitle:`Start without a profile`},...n.map(e=>({value:a(e.name),title:s(e),...s(e)===e.name?{}:{subtitle:e.name}}))]}function l(e,t){if(e===void 0)return r;if(e===null)return i;let n=t.find(t=>t.name===e);return n===void 0?e:s(n)}function u(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function d(e){if(!u(e)||typeof e.name!=`string`||e.name===``||typeof e.sourceId!=`string`||e.sourceId===``)return;let t=u(e.identity)?e.identity:void 0,n=typeof t?.name==`string`&&t.name!==``?t.name:void 0,r=typeof t?.icon==`string`&&t.icon!==``?t.icon:void 0;return{name:e.name,sourceId:e.sourceId,...n===void 0&&r===void 0?{}:{identity:{...n===void 0?{}:{name:n},...r===void 0?{}:{icon:r}}}}}function f(e){if(!u(e)||!Array.isArray(e.profiles)||e.readiness!==`ready`&&e.readiness!==`unavailable`)return;let t=/* @__PURE__ */ new Set,n=[];for(let r of e.profiles){let e=d(r);e===void 0||t.has(e.name)||(t.add(e.name),n.push(e))}return{profiles:n,readiness:e.readiness}}const p={status:`unavailable`,profiles:[]};async function m(e,t){let n;try{n=await e(t)}catch{n=void 0}if(t.aborted)return;let r=f(n);return r===void 0?p:{status:r.readiness,profiles:r.profiles}}exports.DEFAULT_PROFILE_LABEL=r,exports.DEFAULT_PROFILE_VALUE=e,exports.NO_PROFILE_LABEL=i,exports.NO_PROFILE_VALUE=t,exports.loadProfileCatalog=m,exports.parseProfileCatalog=f,exports.profileChoiceLabel=l,exports.profileChoiceOf=o,exports.profilePickerItems=c,exports.profileValueOf=a;
2
+ //# sourceMappingURL=profilePicker.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profilePicker.cjs","names":["DEFAULT_PROFILE_VALUE","NO_PROFILE_VALUE","PROFILE_PREFIX","DEFAULT_PROFILE_LABEL","NO_PROFILE_LABEL","profileValueOf","choice","profileChoiceOf","value","titleOf","profile","profilePickerItems","profiles","profileChoiceLabel","candidate","isRecord","profileOf","identity","identityName","identityIcon","parseProfileCatalog","seen","entry","UNAVAILABLE","loadProfileCatalog","answer","load","signal","catalog"],"sources":["../../../src/lib/profilePicker.ts"],"sourcesContent":["import type { PickerChoice } from './picker';\n\n/**\n * The launch-time profile choice a person makes before a session exists.\n *\n * `undefined` is \"not chosen\": the workspace default may apply. `null` is an\n * explicit \"No profile\", which no default may override. A string names a profile.\n */\nexport type ProfileChoice = string | null | undefined;\n\n/** What the picker may know about a profile. Never its environment, persona, bindings or secrets. */\nexport interface ProfilePickerProfile {\n readonly name: string;\n readonly identity?: { readonly name?: string; readonly icon?: string };\n /** `files` for a profile file, otherwise the id of the plugin that contributed it. */\n readonly sourceId: string;\n}\n\nexport interface ProfilePickerCatalog {\n readonly profiles: readonly ProfilePickerProfile[];\n /** `unavailable`: a source did not become ready in time or failed. `profiles` lists what loaded. */\n readonly readiness: 'ready' | 'unavailable';\n}\n\nexport type ProfilePickerStatus = 'loading' | ProfilePickerCatalog['readiness'];\n\nexport interface ProfilePickerState {\n readonly status: Exclude<ProfilePickerStatus, 'loading'>;\n readonly profiles: readonly ProfilePickerProfile[];\n}\n\n/** Row values carry a prefix, so a profile named \"none\" or \"default\" cannot pass for a choice. */\nexport const DEFAULT_PROFILE_VALUE = 'default';\nexport const NO_PROFILE_VALUE = 'none';\nconst PROFILE_PREFIX = 'profile:';\n\nexport const DEFAULT_PROFILE_LABEL = 'Workspace default';\nexport const NO_PROFILE_LABEL = 'No profile';\n\nexport function profileValueOf(choice: ProfileChoice): string {\n if (choice === undefined) return DEFAULT_PROFILE_VALUE;\n if (choice === null) return NO_PROFILE_VALUE;\n return `${PROFILE_PREFIX}${choice}`;\n}\n\nexport function profileChoiceOf(value: string): ProfileChoice {\n if (value === NO_PROFILE_VALUE) return null;\n if (value.startsWith(PROFILE_PREFIX)) return value.slice(PROFILE_PREFIX.length);\n return undefined;\n}\n\nfunction titleOf(profile: ProfilePickerProfile): string {\n return profile.identity?.name || profile.name;\n}\n\n/** The workspace default and No profile first, then every profile in the order given. Nothing is preselected. */\nexport function profilePickerItems(profiles: readonly ProfilePickerProfile[]): PickerChoice[] {\n return [\n {\n value: DEFAULT_PROFILE_VALUE,\n title: DEFAULT_PROFILE_LABEL,\n subtitle: 'Use what this workspace sets, if anything',\n },\n { value: NO_PROFILE_VALUE, title: NO_PROFILE_LABEL, subtitle: 'Start without a profile' },\n ...profiles.map((profile) => ({\n value: profileValueOf(profile.name),\n title: titleOf(profile),\n ...(titleOf(profile) === profile.name ? {} : { subtitle: profile.name }),\n })),\n ];\n}\n\nexport function profileChoiceLabel(choice: ProfileChoice, profiles: readonly ProfilePickerProfile[]): string {\n if (choice === undefined) return DEFAULT_PROFILE_LABEL;\n if (choice === null) return NO_PROFILE_LABEL;\n const profile = profiles.find((candidate) => candidate.name === choice);\n return profile === undefined ? choice : titleOf(profile);\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction profileOf(value: unknown): ProfilePickerProfile | undefined {\n if (!isRecord(value) || typeof value.name !== 'string' || value.name === '') return undefined;\n if (typeof value.sourceId !== 'string' || value.sourceId === '') return undefined;\n const identity = isRecord(value.identity) ? value.identity : undefined;\n const identityName = typeof identity?.name === 'string' && identity.name !== '' ? identity.name : undefined;\n const identityIcon = typeof identity?.icon === 'string' && identity.icon !== '' ? identity.icon : undefined;\n return {\n name: value.name,\n sourceId: value.sourceId,\n ...(identityName === undefined && identityIcon === undefined\n ? {}\n : {\n identity: {\n ...(identityName === undefined ? {} : { name: identityName }),\n ...(identityIcon === undefined ? {} : { icon: identityIcon }),\n },\n }),\n };\n}\n\n/**\n * A server answer reduced to the fields the picker may show, or undefined when it is not a catalog.\n * Any other field is dropped here, so nothing sensitive a server mistakenly adds can reach the page.\n */\nexport function parseProfileCatalog(value: unknown): ProfilePickerCatalog | undefined {\n if (!isRecord(value) || !Array.isArray(value.profiles)) return undefined;\n if (value.readiness !== 'ready' && value.readiness !== 'unavailable') return undefined;\n const seen = new Set<string>();\n const profiles: ProfilePickerProfile[] = [];\n for (const entry of value.profiles) {\n const profile = profileOf(entry);\n if (profile === undefined || seen.has(profile.name)) continue;\n seen.add(profile.name);\n profiles.push(profile);\n }\n return { profiles, readiness: value.readiness };\n}\n\nconst UNAVAILABLE: ProfilePickerState = { status: 'unavailable', profiles: [] };\n\n/**\n * Runs one catalog request. A failed or malformed answer is \"unavailable\" with nothing listed, so a\n * session can still start without a profile. Undefined means the caller gave up on this request.\n */\nexport async function loadProfileCatalog(\n load: (signal: AbortSignal) => Promise<unknown>,\n signal: AbortSignal,\n): Promise<ProfilePickerState | undefined> {\n let answer: unknown;\n try {\n answer = await load(signal);\n } catch {\n answer = undefined;\n }\n if (signal.aborted) return undefined;\n const catalog = parseProfileCatalog(answer);\n return catalog === undefined ? UNAVAILABLE : { status: catalog.readiness, profiles: catalog.profiles };\n}\n"],"mappings":"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"}
package/dist/text.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./src/lib/ansiSpans.cjs"),t=require("./src/lib/review.cjs"),n=require("./src/lib/syntaxHighlight.cjs"),r=require("./src/lib/hashlineHighlight.cjs"),i=require("./src/lib/runDuration.cjs"),a=require("./src/lib/collapse.cjs"),o=require("./src/lib/hashlineView.cjs");exports.ansiSpans=e.ansiSpans,exports.buildReviewPrompt=t.buildReviewPrompt,exports.clockRefreshMs=i.clockRefreshMs,exports.clockText=i.clockText,exports.collapseLines=a.collapseLines,exports.detectGrammar=n.detectGrammar,exports.formatRunDuration=i.formatRunDuration,exports.hashlineBody=o.hashlineBody,exports.hashlineGroups=r.hashlineGroups,exports.hashlineGroupsKey=r.hashlineGroupsKey,exports.highlightToLines=n.highlightToLines,exports.resultTextLines=o.resultTextLines;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./src/lib/ansiSpans.cjs"),t=require("./src/lib/review.cjs"),n=require("./src/lib/syntaxHighlight.cjs"),r=require("./src/lib/hashlineHighlight.cjs"),i=require("./src/lib/profilePicker.cjs"),a=require("./src/lib/runDuration.cjs"),o=require("./src/lib/collapse.cjs"),s=require("./src/lib/hashlineView.cjs");exports.ansiSpans=e.ansiSpans,exports.buildReviewPrompt=t.buildReviewPrompt,exports.clockRefreshMs=a.clockRefreshMs,exports.clockText=a.clockText,exports.collapseLines=o.collapseLines,exports.detectGrammar=n.detectGrammar,exports.formatRunDuration=a.formatRunDuration,exports.hashlineBody=s.hashlineBody,exports.hashlineGroups=r.hashlineGroups,exports.hashlineGroupsKey=r.hashlineGroupsKey,exports.highlightToLines=n.highlightToLines,exports.parseProfileCatalog=i.parseProfileCatalog,exports.resultTextLines=s.resultTextLines;
package/dist/text.d.mts CHANGED
@@ -1,9 +1,10 @@
1
1
  import { ReviewComment } from "./packages/core/po-web-components/src/types/diff.mjs";
2
2
  import { PresentedLine, hashlineBody, resultTextLines } from "./packages/core/po-web-components/src/lib/hashlineView.mjs";
3
+ import { parseProfileCatalog } from "./packages/core/po-web-components/src/lib/profilePicker.mjs";
3
4
  import { SyntaxSpan, SyntaxToken, detectGrammar, highlightToLines } from "./packages/core/po-web-components/src/lib/syntaxHighlight.mjs";
4
5
  import { AnsiSpan, ansiSpans } from "./packages/core/po-web-components/src/lib/ansiSpans.mjs";
5
6
  import { collapseLines } from "./packages/core/po-web-components/src/lib/collapse.mjs";
6
7
  import { clockRefreshMs, clockText, formatRunDuration } from "./packages/core/po-web-components/src/lib/runDuration.mjs";
7
8
  import { hashlineGroups, hashlineGroupsKey } from "./packages/core/po-web-components/src/lib/hashlineHighlight.mjs";
8
9
  import { buildReviewPrompt } from "./packages/core/po-web-components/src/lib/review.mjs";
9
- export { type AnsiSpan, type PresentedLine, type ReviewComment, type SyntaxSpan, type SyntaxToken, ansiSpans, buildReviewPrompt, clockRefreshMs, clockText, collapseLines, detectGrammar, formatRunDuration, hashlineBody, hashlineGroups, hashlineGroupsKey, highlightToLines, resultTextLines };
10
+ export { type AnsiSpan, type PresentedLine, type ReviewComment, type SyntaxSpan, type SyntaxToken, ansiSpans, buildReviewPrompt, clockRefreshMs, clockText, collapseLines, detectGrammar, formatRunDuration, hashlineBody, hashlineGroups, hashlineGroupsKey, highlightToLines, parseProfileCatalog, resultTextLines };
package/dist/text.mjs CHANGED
@@ -1 +1 @@
1
- import{ansiSpans as e}from"./packages/core/po-web-components/src/lib/ansiSpans.mjs";import{buildReviewPrompt as t}from"./packages/core/po-web-components/src/lib/review.mjs";import{detectGrammar as n,highlightToLines as r}from"./packages/core/po-web-components/src/lib/syntaxHighlight.mjs";import{hashlineGroups as i,hashlineGroupsKey as a}from"./packages/core/po-web-components/src/lib/hashlineHighlight.mjs";import{clockRefreshMs as o,clockText as s,formatRunDuration as c}from"./packages/core/po-web-components/src/lib/runDuration.mjs";import{collapseLines as l}from"./packages/core/po-web-components/src/lib/collapse.mjs";import{hashlineBody as u,resultTextLines as d}from"./packages/core/po-web-components/src/lib/hashlineView.mjs";export{e as ansiSpans,t as buildReviewPrompt,o as clockRefreshMs,s as clockText,l as collapseLines,n as detectGrammar,c as formatRunDuration,u as hashlineBody,i as hashlineGroups,a as hashlineGroupsKey,r as highlightToLines,d as resultTextLines};
1
+ import{ansiSpans as e}from"./packages/core/po-web-components/src/lib/ansiSpans.mjs";import{buildReviewPrompt as t}from"./packages/core/po-web-components/src/lib/review.mjs";import{detectGrammar as n,highlightToLines as r}from"./packages/core/po-web-components/src/lib/syntaxHighlight.mjs";import{hashlineGroups as i,hashlineGroupsKey as a}from"./packages/core/po-web-components/src/lib/hashlineHighlight.mjs";import{parseProfileCatalog as o}from"./packages/core/po-web-components/src/lib/profilePicker.mjs";import{clockRefreshMs as s,clockText as c,formatRunDuration as l}from"./packages/core/po-web-components/src/lib/runDuration.mjs";import{collapseLines as u}from"./packages/core/po-web-components/src/lib/collapse.mjs";import{hashlineBody as d,resultTextLines as f}from"./packages/core/po-web-components/src/lib/hashlineView.mjs";export{e as ansiSpans,t as buildReviewPrompt,s as clockRefreshMs,c as clockText,u as collapseLines,n as detectGrammar,l as formatRunDuration,d as hashlineBody,i as hashlineGroups,a as hashlineGroupsKey,r as highlightToLines,o as parseProfileCatalog,f as resultTextLines};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agimon-ai/po-web-components",
3
- "version": "0.0.0-alpha.92",
3
+ "version": "0.0.0-alpha.94",
4
4
  "description": "Shared web components and theme tokens for the Po cockpit and its web plugins: shadcn-style primitives on Radix, tuned to the Po palette, with runtime theme configs.",
5
5
  "keywords": [
6
6
  "ai",
@@ -107,8 +107,8 @@
107
107
  "tailwind-merge": "3.7.0"
108
108
  },
109
109
  "devDependencies": {
110
- "@agimon-ai/po-core": "0.0.0-alpha.92",
111
- "@agimon-ai/vibe-lint-plugin-po-web": "0.0.0-alpha.92",
110
+ "@agimon-ai/po-core": "0.0.0-alpha.94",
111
+ "@agimon-ai/vibe-lint-plugin-po-web": "0.0.0-alpha.94",
112
112
  "@types/node": "26.6.5",
113
113
  "@types/react": "19.3.0",
114
114
  "@types/react-dom": "19.3.0",