@alwith/module-chat 0.1.9 → 0.1.11
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/approval/choice-elicitation-form.d.ts +1 -1
- package/dist/approval/permission-view.d.ts +1 -1
- package/dist/approval/schema-elicitation-form.d.ts +1 -1
- package/dist/codex/activity-group.d.ts +2 -1
- package/dist/codex/activity-group.js +6 -6
- package/dist/codex/assistant-message.js +2 -2
- package/dist/codex/edited-files-card.js +2 -2
- package/dist/codex/markdown.css +27 -4
- package/dist/codex/navigation-rail.js +1 -1
- package/dist/codex/styles.css +143 -0
- package/dist/codex/user-message.d.ts +5 -1
- package/dist/codex/user-message.js +1 -1
- package/dist/composer/completion-menu.d.ts +5 -1
- package/dist/composer/completion-menu.js +2 -2
- package/dist/composer/completion-trigger.js +2 -2
- package/dist/composer/effort-slider.d.ts +1 -1
- package/dist/composer/menu-radio.d.ts +1 -1
- package/dist/composer/permission-mode-select.d.ts +1 -1
- package/dist/composer/prompt-input-textarea.js +3 -3
- package/dist/composer/prompt-input.js +1 -1
- package/dist/image-preview-dialog.js +1 -1
- package/dist/lib/group-blocks.js +1 -1
- package/dist/lib/limits.js +1 -1
- package/dist/lib/markdown-rules.js +1 -1
- package/dist/lib/model-name.d.ts +1 -0
- package/dist/lib/model-name.js +1 -0
- package/dist/lib/stream-entry.d.ts +1 -1
- package/dist/lib/streaming-markdown.js +1 -1
- package/dist/locales.d.ts +210 -1
- package/dist/locales.js +1 -1
- package/dist/search/chat-search.d.ts +1 -1
- package/dist/search/chat-search.js +1 -1
- package/dist/search/find-bar.d.ts +1 -1
- package/dist/types.d.ts +22 -0
- package/dist/ui/card.d.ts +1 -1
- package/dist/ui/card.js +1 -1
- package/dist/ui/checkbox.js +1 -1
- package/dist/ui/dialog.d.ts +1 -1
- package/dist/ui/dialog.js +1 -1
- package/dist/ui/dropdown-menu.d.ts +1 -1
- package/dist/ui/dropdown-menu.js +1 -1
- package/dist/ui/field.d.ts +1 -1
- package/dist/ui/field.js +1 -1
- package/dist/ui/hover-card.js +1 -1
- package/dist/ui/input-group.d.ts +1 -1
- package/dist/ui/input-group.js +1 -1
- package/dist/ui/input.js +1 -1
- package/dist/ui/radio-group.js +1 -1
- package/dist/ui/separator.js +1 -1
- package/dist/ui/switch.js +1 -1
- package/dist/ui/textarea.js +1 -1
- package/dist/ui/tooltip.js +1 -1
- package/package.json +4 -2
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
function
|
|
1
|
+
function u(r,e){if(e===0)return null;let n=e-1;while(n>=0){let t=r[n];if(t===" "||t==="\t"||t===`
|
|
2
2
|
`)return null;if(t==="@"||t==="/"){let i=n===0?"":r[n-1],l=n===0||i===`
|
|
3
|
-
`;if(t==="/"?l:l||i===" "||i==="\t")return{kind:t==="/"?"slash":"at",start:n,end:e,query:r.slice(n+1,e)}}n-=1}return null}export{
|
|
3
|
+
`;if(t==="/"?l&&!/[\/\\]/.test(r.slice(n+1,e)):l||i===" "||i==="\t")return{kind:t==="/"?"slash":"at",start:n,end:e,query:r.slice(n+1,e)}}n-=1}return null}export{u as detectTrigger};
|
|
@@ -7,7 +7,7 @@ export interface MenuRadioOption {
|
|
|
7
7
|
title?: string;
|
|
8
8
|
disabled?: boolean;
|
|
9
9
|
}
|
|
10
|
-
export declare function MenuRadioSelect({ value, onValueChange, options, itemClassName
|
|
10
|
+
export declare function MenuRadioSelect({ value, onValueChange, options, itemClassName }: {
|
|
11
11
|
value: string;
|
|
12
12
|
onValueChange: (value: string) => void;
|
|
13
13
|
options: MenuRadioOption[];
|
|
@@ -10,4 +10,4 @@ export interface PermissionModeSelectProps {
|
|
|
10
10
|
showLabel?: boolean;
|
|
11
11
|
disabled?: boolean;
|
|
12
12
|
}
|
|
13
|
-
export declare function PermissionModeSelect({ value, currentName, icon, options, label, onValueChange, showLabel, disabled
|
|
13
|
+
export declare function PermissionModeSelect({ value, currentName, icon, options, label, onValueChange, showLabel, disabled }: PermissionModeSelectProps): import("react").JSX.Element;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{jsx as
|
|
2
|
-
`&&t.key!=="\r"&&t.key!=="\t"){t.preventDefault();return}if(
|
|
3
|
-
${c.substring(
|
|
1
|
+
import{jsx as D}from"react/jsx-runtime";import{forwardRef as E,useCallback as P,useEffect as R,useImperativeHandle as F,useRef as m}from"react";import{InputGroupTextarea as A}from"../ui/input-group-textarea.js";import{cn as H}from"cn";import{clipboardHasStringItem as j,sanitizeTextareaTargetValue as g,scanClipboardForImageFiles as q}from"./prompt-input-clipboard.js";import{useOptionalPromptInputController as z,usePromptInputAttachments as N}from"./prompt-input-context.js";var B=(o)=>!o.shiftKey,K=()=>!1,V=E(({onChange:o,className:v,placeholder:x,bashMode:y=!1,isSendShortcut:I=B,isNewlineShortcut:b=K,...k},T)=>{let n=z(),i=N(),l=m(!1),u=m(!1),a=m(null),s=P(()=>{let t=a.current;if(!t)return;t.style.height="auto",t.style.height=`${t.scrollHeight}px`},[]);R(()=>{let t=a.current;if(!t)return;let e=new ResizeObserver(()=>{requestAnimationFrame(s)});return e.observe(t),()=>e.disconnect()},[s]);let p=y&&(n?.textInput.value??"").startsWith("!"),C=(t)=>{if(l.current||t.nativeEvent.isComposing||t.nativeEvent.keyCode===229||u.current)return;if(t.key.length===1&&t.key.charCodeAt(0)<32&&t.key!==`
|
|
2
|
+
`&&t.key!=="\r"&&t.key!=="\t"){t.preventDefault();return}if(p&&n){let e=t.currentTarget.selectionStart===0&&t.currentTarget.selectionEnd===0;if(t.key==="Escape"||(t.key==="Backspace"||t.key==="Delete")&&e){t.preventDefault(),n.textInput.setInput(n.textInput.value.slice(1));return}}if(t.key==="Enter"){if(b(t.nativeEvent)){t.preventDefault();let e=t.currentTarget,{selectionStart:r,selectionEnd:f,value:c}=e,h=`${c.substring(0,r)}
|
|
3
|
+
${c.substring(f)}`;if(n)n.textInput.setInput(h);else e.value=h;let d=r+1;e.setSelectionRange(d,d),s();return}if(I(t.nativeEvent)){t.preventDefault();let e=t.currentTarget.form;if(!e)return;let r=e.querySelector('button[type="submit"]');if(!r||r.disabled)return;e.requestSubmit(r)}}if(t.key==="Backspace"&&t.currentTarget.value===""&&i.files.length>0){t.preventDefault();let e=i.files.at(-1);if(e)i.remove(e.id)}},S=(t)=>{let e=t.clipboardData?.items;if(!e)return;let{imageFiles:r,sawNonImageFile:f}=q(e),c=j(e);if(r.length>0)t.preventDefault(),i.add(r);else if(f&&!c)t.preventDefault()},w=n?{value:p?n.textInput.value.slice(1):n.textInput.value,onChange:(t)=>{let e=g(t.currentTarget);n.textInput.setInput(p?`!${e}`:e),s(),o?.(t)}}:{onChange:(t)=>{g(t.currentTarget),s(),o?.(t)}};return F(T,()=>({resetHeight:()=>{if(a.current)a.current.style.height="auto"},focus:()=>{a.current?.focus()},getTextarea:()=>a.current}),[]),D(A,{"data-chat-input":!0,ref:a,rows:3,className:H("field-sizing-content max-h-(--chat-input-max-height) min-h-[calc(var(--chat-input-line-height)*3)] min-w-0 flex-1 overflow-x-hidden","leading-(--chat-input-line-height)","placeholder:text-chat-input-placeholder p-0 pe-2.5","bg-chat-input-bg",v),name:"message",onCompositionEnd:()=>{l.current=!1,u.current=!0,requestAnimationFrame(()=>{u.current=!1})},onCompositionStart:()=>{u.current=!1,l.current=!0},onKeyDown:C,onPaste:S,placeholder:x,...k,...w})});V.displayName="PromptInputTextarea";export{V as PromptInputTextarea};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as o,jsxs as ce}from"react/jsx-runtime";import{ArrowUpIcon as ue,Loader2Icon as le,SquareIcon as fe,XIcon as de}from"lucide-react";import{Children as X,useCallback as g,useEffect as w,useMemo as me,useRef as N,useState as pe}from"react";import{flushSync as ge}from"react-dom";import{cn as h}from"cn";import{InputGroup as he,InputGroupAddon as H,InputGroupButton as J}from"../ui/input-group.js";import{exceedsImageLimit as ve,MAX_TOTAL_IMAGE_MB as be}from"../lib/limits.js";import{preparePromptFiles as xe}from"../lib/prepare-prompt-files.js";import{LocalAttachmentsContext as ye,PromptInputSubmitContext as Ie,ProviderAttachmentsContext as Le,useOptionalPromptInputController as Te}from"./prompt-input-context.js";import{MAX_TOTAL_IMAGE_MB as Ge}from"../lib/limits.js";var Re=({className:a,bashMode:c=!1,attachmentPolicy:v,onCommand:m,onSubmitError:b,accept:l,multiple:I,globalDrop:z,syncHiddenInput:U,maxFiles:P,maxFileSize:j,onError:p,onSubmit:K,children:Q,...V})=>{let i=Te(),s=!!i,Y=c&&s&&i.textInput.value.startsWith("!"),x=N(null),C=N(null),M=N(!1),[Z,R]=pe([]),f=s?i.attachments.files:Z,W=N(f);W.current=f;let ee=g(()=>{x.current?.click()},[]),k=g((e)=>{if(!l||l.trim()==="")return!0;return l.split(",").map((r)=>r.trim()).filter(Boolean).some((r)=>{if(r.endsWith("/*")){let n=r.slice(0,-1);return e.type.startsWith(n)}return e.type===r})},[l]),D=g((e)=>{if(e.type)return e.type;let t=(e.name||"").toLowerCase();if(t.endsWith(".png"))return"image/png";if(t.endsWith(".jpg")||t.endsWith(".jpeg"))return"image/jpeg";if(t.endsWith(".webp"))return"image/webp";if(t.endsWith(".gif"))return"image/gif";if(t.endsWith(".bmp"))return"image/bmp";if(t.endsWith(".svg"))return"image/svg+xml";return""},[]),te=g((e)=>{let t=Array.from(e),r=t.filter((u)=>k(u));if(t.length&&r.length===0){p?.({code:"accept",message:"No files match the accepted types."});return}let n=(u)=>j?u.size<=j:!0,d=r.filter(n);if(r.length>0&&d.length===0){p?.({code:"max_file_size",message:"All files exceed the maximum size."});return}R((u)=>{let T=v?v.uniqueFiles(d,u):d,A=typeof P==="number"?Math.max(0,P-u.length):void 0,ae=typeof A==="number"?T.slice(0,A):T;if(typeof A==="number"&&T.length>A)p?.({code:"max_files",message:"Too many files. Some were not added."});let q=[];for(let L of ae){let E=v?.sourcePath(L);q.push({id:crypto.randomUUID(),type:"file",url:URL.createObjectURL(L),mediaType:D(L),filename:L.name,size:L.size,lastModified:L.lastModified,...E===void 0?{}:{sourcePath:E}})}return u.concat(q)})},[v,D,k,P,j,p]),re=g((e)=>R((t)=>{let r=t.find((n)=>n.id===e);if(r?.url)URL.revokeObjectURL(r.url);return t.filter((n)=>n.id!==e)}),[]),ne=g(()=>R((e)=>{for(let t of e)if(t.url)URL.revokeObjectURL(t.url);return[]}),[]),O=s?i.attachments.add:te,y=g((e)=>{let t=Array.from(e),r=t.filter((d)=>!(d.type??"").toLowerCase().startsWith("image/"));if(r.length>0){p?.({code:"unsupported_type",message:`Only image attachments are supported. ${r.length} non-image file(s) were ignored.`});return}let n=t.reduce((d,u)=>d+u.size,0);if(n>0){let d=f.filter((u)=>(u.mediaType??"").toLowerCase().startsWith("image/")).reduce((u,T)=>u+(T.size??0),0);if(ve(d,n)){p?.({code:"max_total_size",message:`Total image size must not exceed ${be}MB.`});return}}O(t)},[f,O,p]),S=s?i.attachments.remove:re,_=s?i.attachments.clear:ne,B=s?i.attachments.openFileDialog:ee;w(()=>{if(!s)return;i.__registerFileInput(x,()=>x.current?.click())},[s,i]),w(()=>{if(U&&x.current&&f.length===0)x.current.value=""},[f,U]),w(()=>{let e=C.current;if(!e)return;if(z)return;let t=(n)=>{if(n.dataTransfer?.types?.includes("Files"))n.preventDefault()},r=(n)=>{if(n.dataTransfer?.types?.includes("Files"))n.preventDefault();if(n.dataTransfer?.files&&n.dataTransfer.files.length>0)y(n.dataTransfer.files)};return e.addEventListener("dragover",t),e.addEventListener("drop",r),()=>{e.removeEventListener("dragover",t),e.removeEventListener("drop",r)}},[y,z]),w(()=>{if(!z)return;let e=(r)=>{if(r.dataTransfer?.types?.includes("Files"))r.preventDefault()},t=(r)=>{if(r.dataTransfer?.types?.includes("Files"))r.preventDefault();if(r.dataTransfer?.files&&r.dataTransfer.files.length>0)y(r.dataTransfer.files)};return document.addEventListener("dragover",e),document.addEventListener("drop",t),()=>{document.removeEventListener("dragover",e),document.removeEventListener("drop",t)}},[y,z]),w(()=>()=>{if(!s){for(let e of W.current)if(e.url)URL.revokeObjectURL(e.url)}},[s]);let se=(e)=>{if(e.currentTarget.files)y(e.currentTarget.files);e.currentTarget.value=""},F=me(()=>({files:f.map((e)=>({...e,id:e.id})),add:y,remove:S,clear:_,openFileDialog:B,fileInputRef:x}),[f,y,S,_,B]),ie=async(e)=>{if(e.preventDefault(),M.current)return;M.current=!0;try{let t=e.currentTarget,r=s?i.textInput.value:new FormData(t).get("message")||"";if(m?.(r.trim())){if(t.reset(),_(),s)i.textInput.clear();return}if(!s)t.reset();let n=await xe(f);if(n.rejectedCount>0)p?.({code:"accept",message:"One or more images are corrupted and were removed before sending."});if(await K({text:r,files:n.files},e),_(),s)i.textInput.clear()}catch(t){b(t)}finally{M.current=!1}},oe=g((e)=>{if(!e.trim())return;if(s&&i)ge(()=>{i.textInput.setInput(e)});C.current?.requestSubmit()},[i,s]),G=ce(Ie.Provider,{value:oe,children:[o("input",{accept:l,"aria-label":"Upload files",className:"hidden",multiple:I,onChange:se,ref:x,title:"Upload files",type:"file"}),o("form",{className:h("w-full",a),onSubmit:ie,ref:C,"data-tour":"chat-input",...V,children:o(he,{className:h("codex-composer-surface overflow-y-auto has-[[data-slot=input-group-control]:focus-visible]:ring-0",Y&&"border! border-[rgb(255,0,135)] has-[[data-slot=input-group-control]:focus-visible]:border-[rgb(255,0,135)] dark:border-[rgb(253,93,177)] dark:has-[[data-slot=input-group-control]:focus-visible]:border-[rgb(253,93,177)]"),children:Q})})]});return s?o(Le.Provider,{value:F,children:G}):o(ye.Provider,{value:F,children:G})};function Ue({className:a,...c}){return o("div",{className:h("flex w-full min-w-0 flex-row items-end gap-2",a),...c})}function We({className:a,...c}){return o(H,{align:"block-end",className:h("order-first flex-wrap gap-1 p-2 pb-1.5",a),...c})}function ke({className:a,...c}){return o(H,{align:"block-end",className:h("mt-3.5 justify-between gap-1 p-0",a),...c})}function De({className:a,...c}){return o("div",{className:h("flex items-center gap-1",a),...c})}var Oe=({variant:a="ghost",className:c,size:v,collapsed:m=!1,...b})=>{let l=m||X.count(b.children)<=1?"icon-xs":"xs";return o(J,{className:h("h-7 rounded-full text-xs font-medium hover:bg-transparent dark:hover:bg-transparent",(m||X.count(b.children)<=1)&&"size-7",c),size:l,type:"button",variant:a,...b})},Se=({className:a,variant:c="ghost",size:v="icon-xs",status:m,children:b,...l})=>{let I=o(ue,{className:"size-4"});if(m==="submitted")I=o(le,{className:"size-4 animate-spin"});else if(m==="streaming")I=o(fe,{className:"size-3 fill-current"});else if(m==="error")I=o(de,{className:"size-4"});return o(J,{"aria-label":"Submit",className:h("bg-foreground text-background hover:bg-foreground/70 size-7 rounded-full p-0 transition-opacity disabled:opacity-50",a),size:v,type:"submit",variant:c,...l,children:b??I})};export{Ge as MAX_TOTAL_IMAGE_MB,Re as PromptInput,Ue as PromptInputBody,Oe as PromptInputButton,ke as PromptInputFooter,We as PromptInputHeader,Se as PromptInputSubmit,De as PromptInputTools};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as n,jsxs as _}from"react/jsx-runtime";import{XIcon as j}from"lucide-react";import{useCallback as p,useEffect as N,useMemo as X,useRef as y,useState as v}from"react";import{Dialog as E,DialogClose as A,DialogContent as F,DialogTitle as Y}from"./ui/dialog.js";import{getPointerCenteredScrollPosition as K}from"./lib/pointer-centered-zoom.js";import{cn as b}from"cn";function te({open:s,onOpenChange:C,url:h,filename:x,scale:g,onScaleChange:f,containerRef:W,containerClassName:H,dialogContentClassName:Z,imageClassName:k}){let d=p((e)=>Math.min(4,Math.max(0.25,e)),[]),[D,M]=v(1),r=d(g??D),I=y(null),c=W??I,O=y(null),[u,S]=v({width:0,height:0}),[z,P]=v({width:0,height:0}),w=p((e)=>{let i=d(e);if(typeof f==="function"){f(i);return}M(i)},[f,d]);N(()=>{if(!s)return;if(!h)return;if(typeof g==="number")return;M(1)},[s,h,g]),N(()=>{if(!s)return;let e=c.current;if(!e)return;let i=()=>{S({width:e.clientWidth,height:e.clientHeight})};i();let t=new ResizeObserver(i);return t.observe(e),()=>{t.disconnect()}},[c,s]);let R=p(()=>{w(1)},[w]),a=X(()=>{let{width:e,height:i}=z,{width:t,height:o}=u;if(e===0||i===0)return{width:0,height:0};if(t===0||o===0)return{width:0,height:0};let l=Math.min(t/e,o/i,1),m=e*l,T=i*l;return{width:m*r,height:T*r}},[r,z,u]);if(!h)return null;return n(E,{open:s,onOpenChange:C,children:_(F,{className:b("top-1/2 left-1/2 h-[90vh] max-h-[90vh] w-[90vw]! max-w-[90vw]! -translate-x-1/2 -translate-y-1/2 gap-0 rounded-none bg-transparent p-0 ring-0 sm:w-[90vw]! sm:max-w-[90vw]!",Z),showCloseButton:!1,children:[n(Y,{className:"sr-only",children:x||"Image preview"}),n(A,{"aria-label":"Close",className:"absolute top-3 right-3 z-10 flex size-10 items-center justify-center rounded-full bg-black/55 text-white backdrop-blur-sm transition-colors hover:bg-black/75",children:n(j,{className:"size-5"})}),n("div",{ref:c,onWheel:(e)=>{if(!e.ctrlKey&&!e.metaKey)return;e.preventDefault();let i=e.deltaY>0?r-0.2:r+0.2,t=d(Number.parseFloat(i.toFixed(2)));if(t===r)return;let o=c.current,l=O.current,m=o&&l?K({container:o,target:l,clientX:e.clientX,clientY:e.clientY,currentScale:r,nextScale:t}):null;if(w(t),o&&m)requestAnimationFrame(()=>{o.scrollTo(m)})},className:b("h-full w-full
|
|
1
|
+
import{jsx as n,jsxs as _}from"react/jsx-runtime";import{XIcon as j}from"lucide-react";import{useCallback as p,useEffect as N,useMemo as X,useRef as y,useState as v}from"react";import{Dialog as E,DialogClose as A,DialogContent as F,DialogTitle as Y}from"./ui/dialog.js";import{getPointerCenteredScrollPosition as K}from"./lib/pointer-centered-zoom.js";import{cn as b}from"cn";function te({open:s,onOpenChange:C,url:h,filename:x,scale:g,onScaleChange:f,containerRef:W,containerClassName:H,dialogContentClassName:Z,imageClassName:k}){let d=p((e)=>Math.min(4,Math.max(0.25,e)),[]),[D,M]=v(1),r=d(g??D),I=y(null),c=W??I,O=y(null),[u,S]=v({width:0,height:0}),[z,P]=v({width:0,height:0}),w=p((e)=>{let i=d(e);if(typeof f==="function"){f(i);return}M(i)},[f,d]);N(()=>{if(!s)return;if(!h)return;if(typeof g==="number")return;M(1)},[s,h,g]),N(()=>{if(!s)return;let e=c.current;if(!e)return;let i=()=>{S({width:e.clientWidth,height:e.clientHeight})};i();let t=new ResizeObserver(i);return t.observe(e),()=>{t.disconnect()}},[c,s]);let R=p(()=>{w(1)},[w]),a=X(()=>{let{width:e,height:i}=z,{width:t,height:o}=u;if(e===0||i===0)return{width:0,height:0};if(t===0||o===0)return{width:0,height:0};let l=Math.min(t/e,o/i,1),m=e*l,T=i*l;return{width:m*r,height:T*r}},[r,z,u]);if(!h)return null;return n(E,{open:s,onOpenChange:C,children:_(F,{className:b("top-1/2 left-1/2 h-[90vh] max-h-[90vh] w-[90vw]! max-w-[90vw]! -translate-x-1/2 -translate-y-1/2 gap-0 rounded-none bg-transparent p-0 ring-0 sm:w-[90vw]! sm:max-w-[90vw]!",Z),showCloseButton:!1,children:[n(Y,{className:"sr-only",children:x||"Image preview"}),n(A,{"aria-label":"Close",className:"absolute top-3 right-3 z-10 flex size-10 items-center justify-center rounded-full bg-black/55 text-white backdrop-blur-sm transition-colors hover:bg-black/75",children:n(j,{className:"size-5"})}),n("div",{ref:c,onWheel:(e)=>{if(!e.ctrlKey&&!e.metaKey)return;e.preventDefault();let i=e.deltaY>0?r-0.2:r+0.2,t=d(Number.parseFloat(i.toFixed(2)));if(t===r)return;let o=c.current,l=O.current,m=o&&l?K({container:o,target:l,clientX:e.clientX,clientY:e.clientY,currentScale:r,nextScale:t}):null;if(w(t),o&&m)requestAnimationFrame(()=>{o.scrollTo(m)})},className:b("scrollbar-thin h-full w-full overflow-auto",H),children:n("div",{className:"grid min-h-full min-w-full place-items-center",style:{width:Math.max(u.width,a.width),height:Math.max(u.height,a.height)},children:n("div",{className:"shrink-0",children:n("img",{alt:x||"image preview",className:b("block object-contain select-none",k),decoding:"async",draggable:!1,ref:O,onDoubleClick:R,onLoad:(e)=>{let i=e.currentTarget;P({width:i.naturalWidth,height:i.naturalHeight});let t=c.current;if(t&&(t.clientWidth||t.clientHeight))S({width:t.clientWidth,height:t.clientHeight})},style:{imageRendering:"auto",width:a.width||void 0,height:a.height||void 0,maxWidth:a.width?"none":"90vw",maxHeight:a.height?"none":"90vh"},src:h})})})})]})})}export{te as ImagePreviewDialog};
|
package/dist/lib/group-blocks.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{isCodexLook as r}from"./stream-style.js";function f(t,o){if(r(o))return
|
|
1
|
+
import{isCodexLook as r}from"./stream-style.js";function f(t,o){if(r(o))return p(t);return t.map((i)=>({kind:"block",block:i}))}function u(t){return t.type==="thinking"||t.type==="tool_use"||t.type==="subagent"||t.type==="collab"}function c(t){return t.type==="tool_use"&&t.kind!=="think"}function p(t){let o=[],i=[],e=()=>{if(i.length===0)return;o.push({kind:"codexActivityGroup",blocks:i}),i=[]};for(let n of t){if(u(n)&&c(n)){i.push(n);continue}if(e(),u(n)){o.push({kind:"codexActivityGroup",blocks:[n]});continue}o.push({kind:"block",block:n})}return e(),o}export{f as groupBlocksForStyle};
|
package/dist/lib/limits.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var E=1e6,T=5000000;function e(_,t){return _+t
|
|
1
|
+
var E=1e6,T=5000000;function e(_,t){return _+t>5000000}function M(_){return(_/1e6).toFixed(1)}var o=5;export{E as BYTES_PER_MB,T as MAX_TOTAL_IMAGE_BYTES,o as MAX_TOTAL_IMAGE_MB,e as exceedsImageLimit,M as formatImageSizeMb};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Marked as
|
|
1
|
+
import{Marked as d}from"marked";import m from"marked-linkify-it";var h=/<(task-notification|system-reminder|antml:[\w-]+)\b[^>]*>/,x=/^<(task-notification|system-reminder|antml:[\w-]+)\b[^>]*>[\s\S]*?(?:<\/\1\s*>|$)/,f=/^(?:\$\$([\s\S]+?)\$\$|\\\[([\s\S]+?)\\\])/,k={extensions:[{name:"math",level:"block",tokenizer(n){let e=f.exec(n);if(e===null)return;return{type:"math",raw:e[0],text:(e[1]??e[2]).trim(),display:!0}}},{name:"math",level:"inline",start(n){return n.search(/\$|\\[([]/)},tokenizer(n){let e=f.exec(n);if(e!==null)return{type:"math",raw:e[0],text:(e[1]??e[2]).trim(),display:!0};let r=/^\\\(([^\n]+?)\\\)/.exec(n);if(r!==null)return{type:"math",raw:r[0],text:r[1].trim(),display:!1};let a=/^\$(?!\$)((?:\\[^\n]|[^\\$\n])+?)\$(?![\d$])/.exec(n);if(a===null||/^\s|\s$/.test(a[1]))return;return{type:"math",raw:a[0],text:a[1],display:!1}}}]};function g(){let n=new d({gfm:!0}),e=m(),r=e.extensions[0],a=r.tokenizer;r.tokenizer=function(o,i){let t=a.call(this,o,i);if(t===void 0)return;if(t.raw.startsWith("<"))return t;let l=/^(?:[a-z][a-z\d+.-]*:\/\/|www\.)[^/?#]+[/?#]/i.exec(t.raw);if(l===null)return t;let c=l[0].length-1,u=t.raw.slice(c).search(/[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}]/u);if(u===-1)return t;let s=t.raw.slice(0,c+u),p=t.href.slice(0,t.href.length-(t.raw.length-s.length));return{...t,raw:s,href:p,text:s,tokens:[{type:"text",raw:s,text:s}]}},n.use(k,e);for(let o of["block","inline"])n.use({extensions:[{name:"internalMessage",level:o,...o==="inline"?{start(i){return h.exec(i)?.index}}:{},tokenizer(i){let t=x.exec(i);if(t===null)return;return{type:"internalMessage",raw:t[0]}},renderer(){return""}}]});return n}function z(n){let e=n.replace(/[\p{Cc}\s]/gu,"");return!/^(?:data|javascript|vbscript):/i.test(e)}export{g as createChatMarkdown,z as isSafeMarkdownUrl};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function formatModelName(model: string): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function e(r){if(!r.trimStart().toLowerCase().startsWith("gpt"))return r;let a=/^gpt-\d/iu.test(r.trimStart())?" ":"-";return r.split(/(\s+)/).map((i)=>i.trim().length===0?i:i.split("-").map((t,o)=>{if(t.toLowerCase()==="gpt")return"GPT";if(t.toLowerCase()==="oai")return"OAI";return o>0&&t.length>0?`${t[0]?.toUpperCase()}${t.slice(1)}`:t}).join(a).replace(/^GPT (?=\d)/u,"GPT-")).join("")}export{e as formatModelName};
|
|
@@ -11,7 +11,7 @@ export interface ToolGroupEntry {
|
|
|
11
11
|
blocks: ToolUseBlock[];
|
|
12
12
|
}
|
|
13
13
|
export type CodexActivityBlock = Extract<ContentBlock, {
|
|
14
|
-
type: "thinking" | "tool_use" | "subagent";
|
|
14
|
+
type: "thinking" | "tool_use" | "subagent" | "collab";
|
|
15
15
|
}>;
|
|
16
16
|
export interface CodexActivityGroupEntry {
|
|
17
17
|
kind: "codexActivityGroup";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createChatMarkdown as w}from"./markdown-rules.js";function g(e,s){let l=Object.keys(e);return l.length===Object.keys(s).length&&l.every((r)=>{let i=s[r];return i!==void 0&&e[r].href===i.href&&e[r].title===i.title})}function b(e,s){let l=2,r=0;for(let n=e.length-1;n>=0;n-=1){if(e[n].type==="space")continue;if(l-=1,l===0){r=n;break}}let i=0;for(let n=0;n<r;n+=1){let a=e[n];if(a.type==="def"||/^ {0,3}(?:\[
|
|
1
|
+
import{createChatMarkdown as w}from"./markdown-rules.js";function g(e,s){let l=Object.keys(e);return l.length===Object.keys(s).length&&l.every((r)=>{let i=s[r];return i!==void 0&&e[r].href===i.href&&e[r].title===i.title})}function b(e,s){let l=2,r=0;for(let n=e.length-1;n>=0;n-=1){if(e[n].type==="space")continue;if(l-=1,l===0){r=n;break}}let i=0;for(let n=0;n<r;n+=1){let a=e[n];if(a.type==="def"||/^ {0,3}(?:\[|<|\$\$|\\\[)/.test(a.raw))return i;let o=!1;if(s.walkTokens([e[n]],(c)=>{if(c.type==="html"&&(("inLink"in c)&&c.inLink||("inRawBlock"in c)&&c.inRawBlock))o=!0}),o)return i;if(/\n[\t ]*\n$/.test(e[n].raw))i=n+1}return i}function x(e=w()){let s="",l=[],r={},i={};return{parse(n){let a=n.replace(/\r\n|\r/g,`
|
|
2
2
|
`);if(!a.startsWith(s))s="",l=[],r={},i={};let o=new e.Lexer(e.defaults);o.tokens.links={...r};let c=o.lex(a.slice(s.length)),f=[...l,...c],u=c.links;if(l.length>0&&!g(i,u)){let t=e.lexer(a);f=Array.from(t),u=t.links}i=u;let k=0,h=[];for(let t of f){if(!a.startsWith(t.raw,k))break;h.push(t),k+=t.raw.length}return l=h.slice(0,b(h,e)),s=a.slice(0,l.reduce((t,d)=>t+d.raw.length,0)),r=Object.create(null),e.walkTokens(l,(t)=>{if(t.type==="def"&&!Object.hasOwn(r,t.tag))r[t.tag]={href:t.href,title:t.title}}),structuredClone(f)}}}export{x as createStreamingMarkdownLexer};
|
package/dist/locales.d.ts
CHANGED
|
@@ -4,10 +4,13 @@ export declare const chatLocales: {
|
|
|
4
4
|
readonly codex: {
|
|
5
5
|
readonly worked: "تمت المعالجة";
|
|
6
6
|
readonly workedFor: "تمت المعالجة لمدة {{duration}}";
|
|
7
|
+
readonly totalDuration: "المدة الإجمالية {{duration}}";
|
|
7
8
|
readonly editedFilesCount_one: "تم تعديل {{count}} ملف";
|
|
8
9
|
readonly editedFilesCount_other: "تم تعديل {{count}} ملفات";
|
|
9
10
|
readonly viewChanges: "عرض التغييرات";
|
|
10
11
|
readonly hideChanges: "إخفاء التغييرات";
|
|
12
|
+
readonly showMoreFiles: "عرض {{count}} ملفات أخرى";
|
|
13
|
+
readonly showFewerFiles: "عرض ملفات أقل";
|
|
11
14
|
readonly changedLines: "الأسطر المتغيرة";
|
|
12
15
|
readonly showMore: "عرض المزيد";
|
|
13
16
|
readonly showLess: "عرض أقل";
|
|
@@ -126,10 +129,13 @@ export declare const chatLocales: {
|
|
|
126
129
|
readonly codex: {
|
|
127
130
|
readonly worked: "Worked";
|
|
128
131
|
readonly workedFor: "Worked for {{duration}}";
|
|
132
|
+
readonly totalDuration: "Total time {{duration}}";
|
|
129
133
|
readonly editedFilesCount_one: "Edited {{count}} file";
|
|
130
134
|
readonly editedFilesCount_other: "Edited {{count}} files";
|
|
131
135
|
readonly viewChanges: "View changes";
|
|
132
136
|
readonly hideChanges: "Hide changes";
|
|
137
|
+
readonly showMoreFiles: "Show {{count}} more files";
|
|
138
|
+
readonly showFewerFiles: "Show fewer files";
|
|
133
139
|
readonly changedLines: "Changed lines";
|
|
134
140
|
readonly showMore: "Show more";
|
|
135
141
|
readonly showLess: "Show less";
|
|
@@ -162,6 +168,106 @@ export declare const chatLocales: {
|
|
|
162
168
|
readonly movedFiles: "Moved files";
|
|
163
169
|
readonly subagentWorking: "{{name}} started working";
|
|
164
170
|
readonly subagentFinished: "{{name}} finished";
|
|
171
|
+
readonly reasoningEffort: {
|
|
172
|
+
readonly none: "None";
|
|
173
|
+
readonly minimal: "Minimal";
|
|
174
|
+
readonly low: "Light";
|
|
175
|
+
readonly medium: "Medium";
|
|
176
|
+
readonly high: "High";
|
|
177
|
+
readonly xhigh: "Extra high";
|
|
178
|
+
readonly max: "Max";
|
|
179
|
+
readonly ultra: "Ultra";
|
|
180
|
+
readonly persistent: "Persistent";
|
|
181
|
+
};
|
|
182
|
+
readonly collab: {
|
|
183
|
+
readonly interrupted: "Interrupted";
|
|
184
|
+
readonly agentCount_one: " an agent";
|
|
185
|
+
readonly agentCount_other: " {{count}} agents";
|
|
186
|
+
readonly header: {
|
|
187
|
+
readonly spawn: {
|
|
188
|
+
readonly inProgress: "Creating";
|
|
189
|
+
readonly completed: "Created";
|
|
190
|
+
readonly failed: "Failed to create";
|
|
191
|
+
};
|
|
192
|
+
readonly message: {
|
|
193
|
+
readonly inProgress: "Messaging";
|
|
194
|
+
readonly completed: "Messaged";
|
|
195
|
+
readonly failed: "Failed to message";
|
|
196
|
+
};
|
|
197
|
+
readonly interrupt: {
|
|
198
|
+
readonly inProgress: "Interrupting";
|
|
199
|
+
readonly completed: "Interrupted";
|
|
200
|
+
readonly failed: "Failed to interrupt";
|
|
201
|
+
};
|
|
202
|
+
readonly list: {
|
|
203
|
+
readonly inProgress: "Listing";
|
|
204
|
+
readonly completed: "Listed";
|
|
205
|
+
readonly failed: "Failed to list";
|
|
206
|
+
};
|
|
207
|
+
readonly resume: {
|
|
208
|
+
readonly inProgress: "Resuming";
|
|
209
|
+
readonly completed: "Resumed";
|
|
210
|
+
readonly failed: "Failed to resume";
|
|
211
|
+
};
|
|
212
|
+
readonly close: {
|
|
213
|
+
readonly inProgress: "Closing";
|
|
214
|
+
readonly completed: "Closed";
|
|
215
|
+
readonly failed: "Failed to close";
|
|
216
|
+
};
|
|
217
|
+
};
|
|
218
|
+
readonly row: {
|
|
219
|
+
readonly spawn: {
|
|
220
|
+
readonly inProgress: "Creating";
|
|
221
|
+
readonly completed: "Created";
|
|
222
|
+
readonly failed: "Failed creating";
|
|
223
|
+
};
|
|
224
|
+
readonly message: {
|
|
225
|
+
readonly inProgress: "Messaging";
|
|
226
|
+
readonly completed: "Messaged";
|
|
227
|
+
readonly failed: "Failed messaging";
|
|
228
|
+
};
|
|
229
|
+
readonly interrupt: {
|
|
230
|
+
readonly inProgress: "Interrupting";
|
|
231
|
+
readonly completed: "Interrupted";
|
|
232
|
+
readonly failed: "Failed to interrupt";
|
|
233
|
+
};
|
|
234
|
+
readonly list: {
|
|
235
|
+
readonly inProgress: "Listing";
|
|
236
|
+
readonly completed: "Listed";
|
|
237
|
+
readonly failed: "Failed to list";
|
|
238
|
+
};
|
|
239
|
+
readonly resume: {
|
|
240
|
+
readonly inProgress: "Resuming";
|
|
241
|
+
readonly completed: "Resumed";
|
|
242
|
+
readonly failed: "Failed resuming";
|
|
243
|
+
};
|
|
244
|
+
readonly close: {
|
|
245
|
+
readonly inProgress: "Closing";
|
|
246
|
+
readonly completed: "Closed";
|
|
247
|
+
readonly failed: "Failed closing";
|
|
248
|
+
};
|
|
249
|
+
};
|
|
250
|
+
readonly messaged: {
|
|
251
|
+
readonly inProgress: "Messaging";
|
|
252
|
+
readonly completed: "Messaged";
|
|
253
|
+
readonly failed: "Failed to message";
|
|
254
|
+
};
|
|
255
|
+
readonly createdWithInstructions: "Created {{agent}} with the instructions: {{instructions}}";
|
|
256
|
+
readonly messagedWithPrompt: "{{action}} {{agent}}: {{prompt}}";
|
|
257
|
+
readonly agentRow: "{{action}} {{agent}}{{state}}";
|
|
258
|
+
readonly input: "Input: {{prompt}}";
|
|
259
|
+
readonly stateOnly: " ({{state}})";
|
|
260
|
+
readonly stateWithMessage: " ({{state}}: {{message}})";
|
|
261
|
+
readonly state: {
|
|
262
|
+
readonly pendingInit: "pending init";
|
|
263
|
+
readonly running: "running";
|
|
264
|
+
readonly interrupted: "interrupted";
|
|
265
|
+
readonly shutdown: "shutdown";
|
|
266
|
+
readonly completed: "completed";
|
|
267
|
+
readonly errored: "errored";
|
|
268
|
+
readonly notFound: "not found";
|
|
269
|
+
};
|
|
270
|
+
};
|
|
165
271
|
readonly contextCompacted: "Context compacted";
|
|
166
272
|
readonly audioOutput: "Audio output";
|
|
167
273
|
readonly exitCode: "Exit code {{code}}";
|
|
@@ -384,10 +490,13 @@ export declare const chatLocales: {
|
|
|
384
490
|
readonly codex: {
|
|
385
491
|
readonly worked: "已处理";
|
|
386
492
|
readonly workedFor: "已处理 {{duration}}";
|
|
493
|
+
readonly totalDuration: "用时 {{duration}}";
|
|
387
494
|
readonly editedFilesCount_one: "已编辑 {{count}} 个文件";
|
|
388
495
|
readonly editedFilesCount_other: "已编辑 {{count}} 个文件";
|
|
389
496
|
readonly viewChanges: "查看更改";
|
|
390
497
|
readonly hideChanges: "收起更改";
|
|
498
|
+
readonly showMoreFiles: "显示其余 {{count}} 个文件";
|
|
499
|
+
readonly showFewerFiles: "收起文件";
|
|
391
500
|
readonly changedLines: "更改行数";
|
|
392
501
|
readonly showMore: "展开显示";
|
|
393
502
|
readonly showLess: "收起显示";
|
|
@@ -420,6 +529,106 @@ export declare const chatLocales: {
|
|
|
420
529
|
readonly movedFiles: "已移动文件";
|
|
421
530
|
readonly subagentWorking: "{{name}} 已开始工作";
|
|
422
531
|
readonly subagentFinished: "{{name}} 已完成";
|
|
532
|
+
readonly reasoningEffort: {
|
|
533
|
+
readonly none: "无";
|
|
534
|
+
readonly minimal: "最低";
|
|
535
|
+
readonly low: "轻度";
|
|
536
|
+
readonly medium: "中";
|
|
537
|
+
readonly high: "高";
|
|
538
|
+
readonly xhigh: "超高";
|
|
539
|
+
readonly max: "最大";
|
|
540
|
+
readonly ultra: "Ultra";
|
|
541
|
+
readonly persistent: "持续";
|
|
542
|
+
};
|
|
543
|
+
readonly collab: {
|
|
544
|
+
readonly interrupted: "已中断";
|
|
545
|
+
readonly agentCount_one: " {{count}} 个代理";
|
|
546
|
+
readonly agentCount_other: " {{count}} 个代理";
|
|
547
|
+
readonly header: {
|
|
548
|
+
readonly spawn: {
|
|
549
|
+
readonly inProgress: "正在创建";
|
|
550
|
+
readonly completed: "已创建";
|
|
551
|
+
readonly failed: "创建失败";
|
|
552
|
+
};
|
|
553
|
+
readonly message: {
|
|
554
|
+
readonly inProgress: "正在发送消息";
|
|
555
|
+
readonly completed: "已发送消息";
|
|
556
|
+
readonly failed: "发送消息失败";
|
|
557
|
+
};
|
|
558
|
+
readonly interrupt: {
|
|
559
|
+
readonly inProgress: "正在中断";
|
|
560
|
+
readonly completed: "已中断";
|
|
561
|
+
readonly failed: "中断失败";
|
|
562
|
+
};
|
|
563
|
+
readonly list: {
|
|
564
|
+
readonly inProgress: "正在列出";
|
|
565
|
+
readonly completed: "已列出";
|
|
566
|
+
readonly failed: "列出失败";
|
|
567
|
+
};
|
|
568
|
+
readonly resume: {
|
|
569
|
+
readonly inProgress: "正在恢复";
|
|
570
|
+
readonly completed: "已恢复";
|
|
571
|
+
readonly failed: "恢复失败";
|
|
572
|
+
};
|
|
573
|
+
readonly close: {
|
|
574
|
+
readonly inProgress: "正在关闭";
|
|
575
|
+
readonly completed: "已关闭";
|
|
576
|
+
readonly failed: "关闭失败";
|
|
577
|
+
};
|
|
578
|
+
};
|
|
579
|
+
readonly row: {
|
|
580
|
+
readonly spawn: {
|
|
581
|
+
readonly inProgress: "正在创建";
|
|
582
|
+
readonly completed: "已创建";
|
|
583
|
+
readonly failed: "创建失败";
|
|
584
|
+
};
|
|
585
|
+
readonly message: {
|
|
586
|
+
readonly inProgress: "正在发送消息";
|
|
587
|
+
readonly completed: "已发送消息";
|
|
588
|
+
readonly failed: "发送消息失败";
|
|
589
|
+
};
|
|
590
|
+
readonly interrupt: {
|
|
591
|
+
readonly inProgress: "正在中断";
|
|
592
|
+
readonly completed: "已中断";
|
|
593
|
+
readonly failed: "中断失败";
|
|
594
|
+
};
|
|
595
|
+
readonly list: {
|
|
596
|
+
readonly inProgress: "正在列出";
|
|
597
|
+
readonly completed: "已列出";
|
|
598
|
+
readonly failed: "列出失败";
|
|
599
|
+
};
|
|
600
|
+
readonly resume: {
|
|
601
|
+
readonly inProgress: "正在恢复";
|
|
602
|
+
readonly completed: "已恢复";
|
|
603
|
+
readonly failed: "恢复失败";
|
|
604
|
+
};
|
|
605
|
+
readonly close: {
|
|
606
|
+
readonly inProgress: "正在关闭";
|
|
607
|
+
readonly completed: "已关闭";
|
|
608
|
+
readonly failed: "关闭失败";
|
|
609
|
+
};
|
|
610
|
+
};
|
|
611
|
+
readonly messaged: {
|
|
612
|
+
readonly inProgress: "正在发送消息";
|
|
613
|
+
readonly completed: "已发送消息";
|
|
614
|
+
readonly failed: "发送消息失败";
|
|
615
|
+
};
|
|
616
|
+
readonly createdWithInstructions: "已创建 {{agent}},指令:{{instructions}}";
|
|
617
|
+
readonly messagedWithPrompt: "{{action}} {{agent}}:{{prompt}}";
|
|
618
|
+
readonly agentRow: "{{action}} {{agent}}{{state}}";
|
|
619
|
+
readonly input: "输入:{{prompt}}";
|
|
620
|
+
readonly stateOnly: "({{state}})";
|
|
621
|
+
readonly stateWithMessage: "({{state}}:{{message}})";
|
|
622
|
+
readonly state: {
|
|
623
|
+
readonly pendingInit: "初始化中";
|
|
624
|
+
readonly running: "运行中";
|
|
625
|
+
readonly interrupted: "已中断";
|
|
626
|
+
readonly shutdown: "已关闭";
|
|
627
|
+
readonly completed: "已完成";
|
|
628
|
+
readonly errored: "出错";
|
|
629
|
+
readonly notFound: "未找到";
|
|
630
|
+
};
|
|
631
|
+
};
|
|
423
632
|
readonly contextCompacted: "上下文已压缩";
|
|
424
633
|
readonly audioOutput: "音频输出";
|
|
425
634
|
readonly exitCode: "退出码 {{code}}";
|
|
@@ -470,7 +679,7 @@ export declare const chatLocales: {
|
|
|
470
679
|
};
|
|
471
680
|
};
|
|
472
681
|
readonly message: {
|
|
473
|
-
readonly thinking: "
|
|
682
|
+
readonly thinking: "正在思考";
|
|
474
683
|
};
|
|
475
684
|
readonly actions: {
|
|
476
685
|
readonly copy: "复制";
|
package/dist/locales.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var d={ar:{stream:{codex:{worked:"تمت المعالجة",workedFor:"تمت المعالجة لمدة {{duration}}",editedFilesCount_one:"تم تعديل {{count}} ملف",editedFilesCount_other:"تم تعديل {{count}} ملفات",viewChanges:"عرض التغييرات",hideChanges:"إخفاء التغييرات",changedLines:"الأسطر المتغيرة",showMore:"عرض المزيد",showLess:"عرض أقل",thought:"تم التفكير",thoughtFor:"تم التفكير لمدة {{duration}}",running:"جارٍ التشغيل",ran:"تم التشغيل",runningCommand:"جارٍ تشغيل الأمر",ranCommandGeneric:"تم تشغيل الأمر",searching:"جارٍ البحث",searched:"تم البحث",forDetail:"عن {{detail}}",searchingFiles:"جارٍ البحث في الملفات",searchedFiles:"تم البحث في الملفات",searchingWeb:"جارٍ البحث في الويب",searchedWeb:"تم البحث في الويب",readLabel:"تمت قراءة",readFiles:"تمت قراءة الملفات",editingLabel:"جارٍ تعديل",editedLabel:"تم تعديل",editingFiles:"جارٍ تعديل الملفات",editedFiles:"تم تعديل الملفات",deletingLabel:"جارٍ حذف",deletedLabel:"تم حذف",deletingFiles:"جارٍ حذف الملفات",deletedFiles:"تم حذف الملفات",movingLabel:"جارٍ نقل",movedLabel:"تم نقل",movingFiles:"جارٍ نقل الملفات",movedFiles:"تم نقل الملفات",subagentWorking:"بدأ {{name}} العمل",subagentFinished:"أنهى {{name}} العمل",contextCompacted:"تم ضغط السياق",audioOutput:"مخرج صوتي",exitCode:"رمز الخروج {{code}}",summary:{read:{leading:"تمت قراءة الملفات",following:"وقراءة الملفات"},edit:{leading:"تم تعديل الملفات",following:"وتعديل الملفات"},delete:{leading:"تم حذف الملفات",following:"وحذف الملفات"},move:{leading:"تم نقل الملفات",following:"ونقل الملفات"},search:{leading:"تم البحث في الملفات",following:"والبحث في الملفات"},execute:{leading_one:"تم تشغيل أمر",leading_other:"تم تشغيل أوامر",following_one:"وتشغيل أمر",following_other:"وتشغيل أوامر"},fetch:{leading:"تم البحث في الويب",following:"والبحث في الويب"},mcp:{leading_one:"تم استدعاء أداة",leading_other:"تم استدعاء أدوات",following_one:"واستدعاء أداة",following_other:"واستدعاء أدوات"},other:{leading_one:"تم استدعاء أداة",leading_other:"تم استدعاء أدوات",following_one:"واستدعاء أداة",following_other:"واستدعاء أدوات"}}}},message:{thinking:"التفكير"},actions:{copy:"ينسخ"},model:{loadingModels:"جارٍ تحميل النماذج...",switchProvider:"مزود التبديل",moreModels:"المزيد من النماذج",selectModel:"حدد النموذج",switchModel:"نموذج التبديل",noModelsAvailable:"لا توجد نماذج متاحة"}},de:{stream:{},message:{thinking:"Denkt nach"},actions:{copy:"Kopieren"},model:{loadingModels:"Lädt Modelle...",switchProvider:"Provider wechseln",moreModels:"Mehr Modelle",selectModel:"Modell auswählen",switchModel:"Modell wechseln",noModelsAvailable:"Keine Modelle verfügbar"}},en:{stream:{codex:{worked:"Worked",workedFor:"Worked for {{duration}}",editedFilesCount_one:"Edited {{count}} file",editedFilesCount_other:"Edited {{count}} files",viewChanges:"View changes",hideChanges:"Hide changes",changedLines:"Changed lines",showMore:"Show more",showLess:"Show less",thought:"Thought",thoughtFor:"Thought for {{duration}}",running:"Running",ran:"Ran",runningCommand:"Running command",ranCommandGeneric:"Ran command",searching:"Searching",searched:"Searched",forDetail:"for {{detail}}",searchingFiles:"Searching for files",searchedFiles:"Searched for files",searchingWeb:"Searching the web",searchedWeb:"Searched the web",readLabel:"Read",readFiles:"Read files",editingLabel:"Editing",editedLabel:"Edited",editingFiles:"Editing files",editedFiles:"Edited files",deletingLabel:"Deleting",deletedLabel:"Deleted",deletingFiles:"Deleting files",deletedFiles:"Deleted files",movingLabel:"Moving",movedLabel:"Moved",movingFiles:"Moving files",movedFiles:"Moved files",subagentWorking:"{{name}} started working",subagentFinished:"{{name}} finished",contextCompacted:"Context compacted",audioOutput:"Audio output",exitCode:"Exit code {{code}}",summary:{read:{leading:"Read files",following:"read files"},edit:{leading:"Edited files",following:"edited files"},delete:{leading:"Deleted files",following:"deleted files"},move:{leading:"Moved files",following:"moved files"},search:{leading:"Searched files",following:"searched files"},execute:{leading_one:"Ran a command",leading_other:"Ran commands",following_one:"ran a command",following_other:"ran commands"},fetch:{leading:"Searched the web",following:"searched the web"},mcp:{leading_one:"Called a tool",leading_other:"Called tools",following_one:"called a tool",following_other:"called tools"},other:{leading_one:"Called a tool",leading_other:"Called tools",following_one:"called a tool",following_other:"called tools"}}}},message:{thinking:"Thinking"},actions:{copy:"Copy"},model:{loadingModels:"Loading models...",switchProvider:"Switch provider",moreModels:"More models",selectModel:"Select model",switchModel:"Switch model",noModelsAvailable:"No models available"}},es:{stream:{},message:{thinking:"Pensando"},actions:{copy:"Copiar"},model:{loadingModels:"Cargando modelos...",switchProvider:"Cambiar provider",moreModels:"Más modelos",selectModel:"Seleccionar modelo",switchModel:"Cambiar modelo",noModelsAvailable:"No hay modelos disponibles"}},fr:{stream:{},message:{thinking:"Réflexion"},actions:{copy:"Copier"},model:{loadingModels:"Chargement des modèles...",switchProvider:"Changer de provider",moreModels:"Plus de modèles",selectModel:"Sélectionner un modèle",switchModel:"Changer de modèle",noModelsAvailable:"Aucun modèle disponible"}},hi:{stream:{},message:{thinking:"सोच रहा है"},actions:{copy:"कॉपी करें"},model:{loadingModels:"मॉडल लोड हो रहे हैं...",switchProvider:"Provider बदलें",moreModels:"और मॉडल",selectModel:"मॉडल चुनें",switchModel:"मॉडल बदलें",noModelsAvailable:"कोई मॉडल उपलब्ध नहीं"}},id:{stream:{},message:{thinking:"Berpikir"},actions:{copy:"Salin"},model:{loadingModels:"Memuat model...",switchProvider:"Ganti provider",moreModels:"Model lainnya",selectModel:"Pilih model",switchModel:"Ganti model",noModelsAvailable:"Tidak ada model tersedia"}},it:{stream:{},message:{thinking:"Sto pensando"},actions:{copy:"Copia"},model:{loadingModels:"Caricamento modelli...",switchProvider:"Cambia provider",moreModels:"Altri modelli",selectModel:"Seleziona modello",switchModel:"Cambia modello",noModelsAvailable:"Nessun modello disponibile"}},ja:{stream:{},message:{thinking:"考え中"},actions:{copy:"コピー"},model:{loadingModels:"モデルを読み込み中...",switchProvider:"プロバイダーを切り替え",moreModels:"その他のモデル",selectModel:"モデルを選択",switchModel:"モデルを切り替え",noModelsAvailable:"利用可能なモデルがありません"}},ko:{stream:{},message:{thinking:"생각 중"},actions:{copy:"복사"},model:{loadingModels:"모델 로드 중...",switchProvider:"프로바이더 전환",moreModels:"더 많은 모델",selectModel:"모델 선택",switchModel:"모델 전환",noModelsAvailable:"사용 가능한 모델이 없습니다"}},"pt-BR":{stream:{},message:{thinking:"Pensando"},actions:{copy:"Copiar"},model:{loadingModels:"Carregando modelos...",switchProvider:"Mudar provider",moreModels:"Mais modelos",selectModel:"Selecionar modelo",switchModel:"Mudar modelo",noModelsAvailable:"Nenhum modelo disponível"}},ru:{stream:{},message:{thinking:"Думаю"},actions:{copy:"Копировать"},model:{loadingModels:"Загрузка моделей...",switchProvider:"Переключить provider",moreModels:"Больше моделей",selectModel:"Выбрать модель",switchModel:"Переключить модель",noModelsAvailable:"Нет доступных моделей"}},"zh-CN":{stream:{codex:{worked:"已处理",workedFor:"已处理 {{duration}}",editedFilesCount_one:"已编辑 {{count}} 个文件",editedFilesCount_other:"已编辑 {{count}} 个文件",viewChanges:"查看更改",hideChanges:"收起更改",changedLines:"更改行数",showMore:"展开显示",showLess:"收起显示",thought:"已思考",thoughtFor:"思考了 {{duration}}",running:"正在运行",ran:"已运行",runningCommand:"正在运行命令",ranCommandGeneric:"已运行命令",searching:"正在搜索",searched:"已搜索",forDetail:"{{detail}}",searchingFiles:"正在搜索文件",searchedFiles:"已搜索文件",searchingWeb:"正在搜索网页",searchedWeb:"已搜索网页",readLabel:"已读取",readFiles:"已读取文件",editingLabel:"正在编辑",editedLabel:"已编辑",editingFiles:"正在编辑文件",editedFiles:"已编辑文件",deletingLabel:"正在删除",deletedLabel:"已删除",deletingFiles:"正在删除文件",deletedFiles:"已删除文件",movingLabel:"正在移动",movedLabel:"已移动",movingFiles:"正在移动文件",movedFiles:"已移动文件",subagentWorking:"{{name}} 已开始工作",subagentFinished:"{{name}} 已完成",contextCompacted:"上下文已压缩",audioOutput:"音频输出",exitCode:"退出码 {{code}}",summary:{read:{leading:"已读取文件",following:"读取了文件"},edit:{leading:"已编辑文件",following:"编辑了文件"},delete:{leading:"已删除文件",following:"删除了文件"},move:{leading:"已移动文件",following:"移动了文件"},search:{leading:"已搜索文件",following:"搜索了文件"},execute:{leading_one:"已运行命令",leading_other:"已运行命令",following_one:"运行了命令",following_other:"运行了命令"},fetch:{leading:"已搜索网页",following:"搜索了网页"},mcp:{leading_one:"已调用工具",leading_other:"已调用工具",following_one:"调用了工具",following_other:"调用了工具"},other:{leading_one:"已调用工具",leading_other:"已调用工具",following_one:"调用了工具",following_other:"调用了工具"}}}},message:{thinking:"思考中"},actions:{copy:"复制"},model:{loadingModels:"加载模型中...",switchProvider:"切换服务商",moreModels:"更多模型",selectModel:"选择模型",switchModel:"切换模型",noModelsAvailable:"暂无可用模型"}}};function n(e){let o={...e};for(let[l,i]of Object.entries(d))o[l]={...e[l],alwithChat:i};return o}export{d as chatLocales,n as withChatResources};
|
|
1
|
+
var n={ar:{stream:{codex:{worked:"تمت المعالجة",workedFor:"تمت المعالجة لمدة {{duration}}",totalDuration:"المدة الإجمالية {{duration}}",editedFilesCount_one:"تم تعديل {{count}} ملف",editedFilesCount_other:"تم تعديل {{count}} ملفات",viewChanges:"عرض التغييرات",hideChanges:"إخفاء التغييرات",showMoreFiles:"عرض {{count}} ملفات أخرى",showFewerFiles:"عرض ملفات أقل",changedLines:"الأسطر المتغيرة",showMore:"عرض المزيد",showLess:"عرض أقل",thought:"تم التفكير",thoughtFor:"تم التفكير لمدة {{duration}}",running:"جارٍ التشغيل",ran:"تم التشغيل",runningCommand:"جارٍ تشغيل الأمر",ranCommandGeneric:"تم تشغيل الأمر",searching:"جارٍ البحث",searched:"تم البحث",forDetail:"عن {{detail}}",searchingFiles:"جارٍ البحث في الملفات",searchedFiles:"تم البحث في الملفات",searchingWeb:"جارٍ البحث في الويب",searchedWeb:"تم البحث في الويب",readLabel:"تمت قراءة",readFiles:"تمت قراءة الملفات",editingLabel:"جارٍ تعديل",editedLabel:"تم تعديل",editingFiles:"جارٍ تعديل الملفات",editedFiles:"تم تعديل الملفات",deletingLabel:"جارٍ حذف",deletedLabel:"تم حذف",deletingFiles:"جارٍ حذف الملفات",deletedFiles:"تم حذف الملفات",movingLabel:"جارٍ نقل",movedLabel:"تم نقل",movingFiles:"جارٍ نقل الملفات",movedFiles:"تم نقل الملفات",subagentWorking:"بدأ {{name}} العمل",subagentFinished:"أنهى {{name}} العمل",contextCompacted:"تم ضغط السياق",audioOutput:"مخرج صوتي",exitCode:"رمز الخروج {{code}}",summary:{read:{leading:"تمت قراءة الملفات",following:"وقراءة الملفات"},edit:{leading:"تم تعديل الملفات",following:"وتعديل الملفات"},delete:{leading:"تم حذف الملفات",following:"وحذف الملفات"},move:{leading:"تم نقل الملفات",following:"ونقل الملفات"},search:{leading:"تم البحث في الملفات",following:"والبحث في الملفات"},execute:{leading_one:"تم تشغيل أمر",leading_other:"تم تشغيل أوامر",following_one:"وتشغيل أمر",following_other:"وتشغيل أوامر"},fetch:{leading:"تم البحث في الويب",following:"والبحث في الويب"},mcp:{leading_one:"تم استدعاء أداة",leading_other:"تم استدعاء أدوات",following_one:"واستدعاء أداة",following_other:"واستدعاء أدوات"},other:{leading_one:"تم استدعاء أداة",leading_other:"تم استدعاء أدوات",following_one:"واستدعاء أداة",following_other:"واستدعاء أدوات"}}}},message:{thinking:"التفكير"},actions:{copy:"ينسخ"},model:{loadingModels:"جارٍ تحميل النماذج...",switchProvider:"مزود التبديل",moreModels:"المزيد من النماذج",selectModel:"حدد النموذج",switchModel:"نموذج التبديل",noModelsAvailable:"لا توجد نماذج متاحة"}},de:{stream:{},message:{thinking:"Denkt nach"},actions:{copy:"Kopieren"},model:{loadingModels:"Lädt Modelle...",switchProvider:"Provider wechseln",moreModels:"Mehr Modelle",selectModel:"Modell auswählen",switchModel:"Modell wechseln",noModelsAvailable:"Keine Modelle verfügbar"}},en:{stream:{codex:{worked:"Worked",workedFor:"Worked for {{duration}}",totalDuration:"Total time {{duration}}",editedFilesCount_one:"Edited {{count}} file",editedFilesCount_other:"Edited {{count}} files",viewChanges:"View changes",hideChanges:"Hide changes",showMoreFiles:"Show {{count}} more files",showFewerFiles:"Show fewer files",changedLines:"Changed lines",showMore:"Show more",showLess:"Show less",thought:"Thought",thoughtFor:"Thought for {{duration}}",running:"Running",ran:"Ran",runningCommand:"Running command",ranCommandGeneric:"Ran command",searching:"Searching",searched:"Searched",forDetail:"for {{detail}}",searchingFiles:"Searching for files",searchedFiles:"Searched for files",searchingWeb:"Searching the web",searchedWeb:"Searched the web",readLabel:"Read",readFiles:"Read files",editingLabel:"Editing",editedLabel:"Edited",editingFiles:"Editing files",editedFiles:"Edited files",deletingLabel:"Deleting",deletedLabel:"Deleted",deletingFiles:"Deleting files",deletedFiles:"Deleted files",movingLabel:"Moving",movedLabel:"Moved",movingFiles:"Moving files",movedFiles:"Moved files",subagentWorking:"{{name}} started working",subagentFinished:"{{name}} finished",reasoningEffort:{none:"None",minimal:"Minimal",low:"Light",medium:"Medium",high:"High",xhigh:"Extra high",max:"Max",ultra:"Ultra",persistent:"Persistent"},collab:{interrupted:"Interrupted",agentCount_one:" an agent",agentCount_other:" {{count}} agents",header:{spawn:{inProgress:"Creating",completed:"Created",failed:"Failed to create"},message:{inProgress:"Messaging",completed:"Messaged",failed:"Failed to message"},interrupt:{inProgress:"Interrupting",completed:"Interrupted",failed:"Failed to interrupt"},list:{inProgress:"Listing",completed:"Listed",failed:"Failed to list"},resume:{inProgress:"Resuming",completed:"Resumed",failed:"Failed to resume"},close:{inProgress:"Closing",completed:"Closed",failed:"Failed to close"}},row:{spawn:{inProgress:"Creating",completed:"Created",failed:"Failed creating"},message:{inProgress:"Messaging",completed:"Messaged",failed:"Failed messaging"},interrupt:{inProgress:"Interrupting",completed:"Interrupted",failed:"Failed to interrupt"},list:{inProgress:"Listing",completed:"Listed",failed:"Failed to list"},resume:{inProgress:"Resuming",completed:"Resumed",failed:"Failed resuming"},close:{inProgress:"Closing",completed:"Closed",failed:"Failed closing"}},messaged:{inProgress:"Messaging",completed:"Messaged",failed:"Failed to message"},createdWithInstructions:"Created {{agent}} with the instructions: {{instructions}}",messagedWithPrompt:"{{action}} {{agent}}: {{prompt}}",agentRow:"{{action}} {{agent}}{{state}}",input:"Input: {{prompt}}",stateOnly:" ({{state}})",stateWithMessage:" ({{state}}: {{message}})",state:{pendingInit:"pending init",running:"running",interrupted:"interrupted",shutdown:"shutdown",completed:"completed",errored:"errored",notFound:"not found"}},contextCompacted:"Context compacted",audioOutput:"Audio output",exitCode:"Exit code {{code}}",summary:{read:{leading:"Read files",following:"read files"},edit:{leading:"Edited files",following:"edited files"},delete:{leading:"Deleted files",following:"deleted files"},move:{leading:"Moved files",following:"moved files"},search:{leading:"Searched files",following:"searched files"},execute:{leading_one:"Ran a command",leading_other:"Ran commands",following_one:"ran a command",following_other:"ran commands"},fetch:{leading:"Searched the web",following:"searched the web"},mcp:{leading_one:"Called a tool",leading_other:"Called tools",following_one:"called a tool",following_other:"called tools"},other:{leading_one:"Called a tool",leading_other:"Called tools",following_one:"called a tool",following_other:"called tools"}}}},message:{thinking:"Thinking"},actions:{copy:"Copy"},model:{loadingModels:"Loading models...",switchProvider:"Switch provider",moreModels:"More models",selectModel:"Select model",switchModel:"Switch model",noModelsAvailable:"No models available"}},es:{stream:{},message:{thinking:"Pensando"},actions:{copy:"Copiar"},model:{loadingModels:"Cargando modelos...",switchProvider:"Cambiar provider",moreModels:"Más modelos",selectModel:"Seleccionar modelo",switchModel:"Cambiar modelo",noModelsAvailable:"No hay modelos disponibles"}},fr:{stream:{},message:{thinking:"Réflexion"},actions:{copy:"Copier"},model:{loadingModels:"Chargement des modèles...",switchProvider:"Changer de provider",moreModels:"Plus de modèles",selectModel:"Sélectionner un modèle",switchModel:"Changer de modèle",noModelsAvailable:"Aucun modèle disponible"}},hi:{stream:{},message:{thinking:"सोच रहा है"},actions:{copy:"कॉपी करें"},model:{loadingModels:"मॉडल लोड हो रहे हैं...",switchProvider:"Provider बदलें",moreModels:"और मॉडल",selectModel:"मॉडल चुनें",switchModel:"मॉडल बदलें",noModelsAvailable:"कोई मॉडल उपलब्ध नहीं"}},id:{stream:{},message:{thinking:"Berpikir"},actions:{copy:"Salin"},model:{loadingModels:"Memuat model...",switchProvider:"Ganti provider",moreModels:"Model lainnya",selectModel:"Pilih model",switchModel:"Ganti model",noModelsAvailable:"Tidak ada model tersedia"}},it:{stream:{},message:{thinking:"Sto pensando"},actions:{copy:"Copia"},model:{loadingModels:"Caricamento modelli...",switchProvider:"Cambia provider",moreModels:"Altri modelli",selectModel:"Seleziona modello",switchModel:"Cambia modello",noModelsAvailable:"Nessun modello disponibile"}},ja:{stream:{},message:{thinking:"考え中"},actions:{copy:"コピー"},model:{loadingModels:"モデルを読み込み中...",switchProvider:"プロバイダーを切り替え",moreModels:"その他のモデル",selectModel:"モデルを選択",switchModel:"モデルを切り替え",noModelsAvailable:"利用可能なモデルがありません"}},ko:{stream:{},message:{thinking:"생각 중"},actions:{copy:"복사"},model:{loadingModels:"모델 로드 중...",switchProvider:"프로바이더 전환",moreModels:"더 많은 모델",selectModel:"모델 선택",switchModel:"모델 전환",noModelsAvailable:"사용 가능한 모델이 없습니다"}},"pt-BR":{stream:{},message:{thinking:"Pensando"},actions:{copy:"Copiar"},model:{loadingModels:"Carregando modelos...",switchProvider:"Mudar provider",moreModels:"Mais modelos",selectModel:"Selecionar modelo",switchModel:"Mudar modelo",noModelsAvailable:"Nenhum modelo disponível"}},ru:{stream:{},message:{thinking:"Думаю"},actions:{copy:"Копировать"},model:{loadingModels:"Загрузка моделей...",switchProvider:"Переключить provider",moreModels:"Больше моделей",selectModel:"Выбрать модель",switchModel:"Переключить модель",noModelsAvailable:"Нет доступных моделей"}},"zh-CN":{stream:{codex:{worked:"已处理",workedFor:"已处理 {{duration}}",totalDuration:"用时 {{duration}}",editedFilesCount_one:"已编辑 {{count}} 个文件",editedFilesCount_other:"已编辑 {{count}} 个文件",viewChanges:"查看更改",hideChanges:"收起更改",showMoreFiles:"显示其余 {{count}} 个文件",showFewerFiles:"收起文件",changedLines:"更改行数",showMore:"展开显示",showLess:"收起显示",thought:"已思考",thoughtFor:"思考了 {{duration}}",running:"正在运行",ran:"已运行",runningCommand:"正在运行命令",ranCommandGeneric:"已运行命令",searching:"正在搜索",searched:"已搜索",forDetail:"{{detail}}",searchingFiles:"正在搜索文件",searchedFiles:"已搜索文件",searchingWeb:"正在搜索网页",searchedWeb:"已搜索网页",readLabel:"已读取",readFiles:"已读取文件",editingLabel:"正在编辑",editedLabel:"已编辑",editingFiles:"正在编辑文件",editedFiles:"已编辑文件",deletingLabel:"正在删除",deletedLabel:"已删除",deletingFiles:"正在删除文件",deletedFiles:"已删除文件",movingLabel:"正在移动",movedLabel:"已移动",movingFiles:"正在移动文件",movedFiles:"已移动文件",subagentWorking:"{{name}} 已开始工作",subagentFinished:"{{name}} 已完成",reasoningEffort:{none:"无",minimal:"最低",low:"轻度",medium:"中",high:"高",xhigh:"超高",max:"最大",ultra:"Ultra",persistent:"持续"},collab:{interrupted:"已中断",agentCount_one:" {{count}} 个代理",agentCount_other:" {{count}} 个代理",header:{spawn:{inProgress:"正在创建",completed:"已创建",failed:"创建失败"},message:{inProgress:"正在发送消息",completed:"已发送消息",failed:"发送消息失败"},interrupt:{inProgress:"正在中断",completed:"已中断",failed:"中断失败"},list:{inProgress:"正在列出",completed:"已列出",failed:"列出失败"},resume:{inProgress:"正在恢复",completed:"已恢复",failed:"恢复失败"},close:{inProgress:"正在关闭",completed:"已关闭",failed:"关闭失败"}},row:{spawn:{inProgress:"正在创建",completed:"已创建",failed:"创建失败"},message:{inProgress:"正在发送消息",completed:"已发送消息",failed:"发送消息失败"},interrupt:{inProgress:"正在中断",completed:"已中断",failed:"中断失败"},list:{inProgress:"正在列出",completed:"已列出",failed:"列出失败"},resume:{inProgress:"正在恢复",completed:"已恢复",failed:"恢复失败"},close:{inProgress:"正在关闭",completed:"已关闭",failed:"关闭失败"}},messaged:{inProgress:"正在发送消息",completed:"已发送消息",failed:"发送消息失败"},createdWithInstructions:"已创建 {{agent}},指令:{{instructions}}",messagedWithPrompt:"{{action}} {{agent}}:{{prompt}}",agentRow:"{{action}} {{agent}}{{state}}",input:"输入:{{prompt}}",stateOnly:"({{state}})",stateWithMessage:"({{state}}:{{message}})",state:{pendingInit:"初始化中",running:"运行中",interrupted:"已中断",shutdown:"已关闭",completed:"已完成",errored:"出错",notFound:"未找到"}},contextCompacted:"上下文已压缩",audioOutput:"音频输出",exitCode:"退出码 {{code}}",summary:{read:{leading:"已读取文件",following:"读取了文件"},edit:{leading:"已编辑文件",following:"编辑了文件"},delete:{leading:"已删除文件",following:"删除了文件"},move:{leading:"已移动文件",following:"移动了文件"},search:{leading:"已搜索文件",following:"搜索了文件"},execute:{leading_one:"已运行命令",leading_other:"已运行命令",following_one:"运行了命令",following_other:"运行了命令"},fetch:{leading:"已搜索网页",following:"搜索了网页"},mcp:{leading_one:"已调用工具",leading_other:"已调用工具",following_one:"调用了工具",following_other:"调用了工具"},other:{leading_one:"已调用工具",leading_other:"已调用工具",following_one:"调用了工具",following_other:"调用了工具"}}}},message:{thinking:"正在思考"},actions:{copy:"复制"},model:{loadingModels:"加载模型中...",switchProvider:"切换服务商",moreModels:"更多模型",selectModel:"选择模型",switchModel:"切换模型",noModelsAvailable:"暂无可用模型"}}};function d(e){let o={...e};for(let[i,l]of Object.entries(n))o[i]={...e[i],alwithChat:l};return o}export{n as chatLocales,d as withChatResources};
|
|
@@ -16,4 +16,4 @@ export interface ChatSearchProps {
|
|
|
16
16
|
};
|
|
17
17
|
placement?: "header" | "body";
|
|
18
18
|
}
|
|
19
|
-
export declare function ChatSearch({ getViewport, findSourceMatches, revealTurn, subscribeOpen, labels, placement
|
|
19
|
+
export declare function ChatSearch({ getViewport, findSourceMatches, revealTurn, subscribeOpen, labels, placement }: ChatSearchProps): import("react").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as b,jsxs as G,Fragment as Y}from"react/jsx-runtime";import{SearchIcon as Z}from"lucide-react";import{useCallback as N,useEffect as f,useMemo as O,useRef as S,useState as E}from"react";import{Button as V}from"../ui/button.js";import{FindBar as tt}from"./find-bar.js";import{cn as et}from"cn";import{collectMatches as P}from"./dom-matches.js";import{collectMatches as mt}from"./dom-matches.js";var z="chat-search",K="chat-search-current",D=150;function at(e){let r=e===null?"":e;return[...document.querySelectorAll("[data-chat-scroll]")].find((c)=>c.dataset.chatScroll===r)??null}var rt=12;function Q(e,r="center"){let c=e.closest("[data-chat-scroll]");if(!c)return;let d=e.getBoundingClientRect(),g=c.getBoundingClientRect(),y=r==="start"?rt:(c.clientHeight-d.height)/2;c.scrollTo({top:c.scrollTop+(d.top-g.top)-y,behavior:"smooth"})}function B(e){let r=e.startContainer.parentElement;if(!r)return;Q(r)}var R=new Map;function U(){if(typeof CSS>"u"||!("highlights"in CSS)||typeof Highlight>"u")return;if(R.size===0){CSS.highlights.delete(z),CSS.highlights.delete(K);return}let e=[...R.values()];CSS.highlights.set(z,new Highlight(...e.flatMap((r)=>r.all))),CSS.highlights.set(K,new Highlight(...e.flatMap((r)=>r.current?[r.current]:[])))}function nt(){let e=Symbol();return{clearHighlights(){R.delete(e),U()},applyHighlights(r,c){R.set(e,{all:r,current:c}),U()}}}function ft({getViewport:e,findSourceMatches:r,revealTurn:c,subscribeOpen:d,labels:g,placement:y="header"}){let{clearHighlights:h,applyHighlights:T}=O(nt,[]),m=r!==void 0,[
|
|
1
|
+
import{jsx as b,jsxs as G,Fragment as Y}from"react/jsx-runtime";import{SearchIcon as Z}from"lucide-react";import{useCallback as N,useEffect as f,useMemo as O,useRef as S,useState as E}from"react";import{Button as V}from"../ui/button.js";import{FindBar as tt}from"./find-bar.js";import{cn as et}from"cn";import{collectMatches as P}from"./dom-matches.js";import{collectMatches as mt}from"./dom-matches.js";var z="chat-search",K="chat-search-current",D=150;function at(e){let r=e===null?"":e;return[...document.querySelectorAll("[data-chat-scroll]")].find((c)=>c.dataset.chatScroll===r)??null}var rt=12;function Q(e,r="center"){let c=e.closest("[data-chat-scroll]");if(!c)return;let d=e.getBoundingClientRect(),g=c.getBoundingClientRect(),y=r==="start"?rt:(c.clientHeight-d.height)/2;c.scrollTo({top:c.scrollTop+(d.top-g.top)-y,behavior:"smooth"})}function B(e){let r=e.startContainer.parentElement;if(!r)return;Q(r)}var R=new Map;function U(){if(typeof CSS>"u"||!("highlights"in CSS)||typeof Highlight>"u")return;if(R.size===0){CSS.highlights.delete(z),CSS.highlights.delete(K);return}let e=[...R.values()];CSS.highlights.set(z,new Highlight(...e.flatMap((r)=>r.all))),CSS.highlights.set(K,new Highlight(...e.flatMap((r)=>r.current?[r.current]:[])))}function nt(){let e=Symbol();return{clearHighlights(){R.delete(e),U()},applyHighlights(r,c){R.set(e,{all:r,current:c}),U()}}}function ft({getViewport:e,findSourceMatches:r,revealTurn:c,subscribeOpen:d,labels:g,placement:y="header"}){let{clearHighlights:h,applyHighlights:T}=O(nt,[]),m=r!==void 0,[i,I]=E(!1),[l,L]=E(""),u=O(()=>i&&l.trim()&&r?r(l.trim()):[],[r,i,l]),[F,M]=E(0),[J,x]=E(0),p=S([]),w=S(0),s=S(null),j=S(null),q=S(null);f(()=>{if(!d)return;return d(()=>{I(!0);let t=q.current;if(t!==null)t.focus(),t.select()})},[d]);let _=N(async(o,t)=>{let n=u[o];if(n===void 0)return;let a=e();if(a===null)throw Error("Chat scroll container is missing");if(c)await c(n.turnKey,t);if(t.aborted)return;let C=a.querySelector(`[data-turn-key="${CSS.escape(n.turnKey)}"]`);if(C===null)throw Error(`Codex turn is missing: ${n.turnKey}`);if(!c)Q(C,"start");if(await new Promise((X)=>requestAnimationFrame(()=>X())),t.aborted)return;let k=P(C,l.trim());p.current=k;let H=k[n.occurrenceInTurn];if(T(k,H===void 0?null:H),H!==void 0)B(H)},[u,e,l,c]),A=S(_);f(()=>{A.current=_},[_]);let v=N(()=>{I(!1),L(""),w.current=0,s.current?.abort(),s.current=null,h(),p.current=[]},[]);f(()=>{if(!i)return;let o=(t)=>{if(t.key==="Escape"&&j.current?.contains(document.activeElement))t.preventDefault(),v()};return window.addEventListener("keydown",o),()=>window.removeEventListener("keydown",o)},[i,v]),f(()=>{if(!i||!l.trim()){h(),p.current=[],M(0),x(0),w.current=0;return}let o=setTimeout(()=>{if(m)return;let t=e();if(!t)return;let n=P(t,l);if(p.current=n,M(n.length),x(0),T(n,n[0]??null),n[0])B(n[0])},D);return()=>{clearTimeout(o),h()}},[m,i,l,e]),f(()=>{if(!i||!m||!l.trim())return;let o=new AbortController;s.current?.abort(),s.current=o;let t=setTimeout(()=>{p.current=[],w.current=0,M(u.length),x(0),h(),A.current(0,o.signal)},D);return()=>{if(o.abort(),s.current===o)s.current=null;clearTimeout(t),h()}},[u.length,m,i,l]),f(()=>()=>{s.current?.abort(),h()},[]),f(()=>{if(!i)h()},[i]);let W=N((o)=>{if(m){if(u.length===0)return;let n=(w.current+(o?-1:1)+u.length)%u.length;w.current=n,x(n),s.current?.abort();let a=new AbortController;s.current=a,A.current(n,a.signal);return}let t=p.current;if(!t.length)return;x((n)=>{let a=(n+(o?-1:1)+t.length)%t.length,C=t[a];return T(t,C),B(C),a})},[u.length,m]);return G(Y,{children:[y==="header"&&b(V,{variant:"ghost",size:"icon-sm",title:g.search,onClick:()=>i?v():I(!0),children:b(Z,{})}),i&&G("div",{"data-chat-search":!0,ref:j,className:et("bg-background border-b",y==="body"?"relative shrink-0":"absolute inset-x-0 top-full z-30"),children:[b(tt,{ref:q,value:l,onChange:L,onFind:W,onClose:v,placeholder:g.placeholder,prevTitle:g.previous,nextTitle:g.next}),l.trim()&&b("div",{className:"text-muted-foreground border-border border-t px-3 py-1 text-[11px]",children:F===0?"0 / 0":`${J+1} / ${F}`})]})]})}export{ft as ChatSearch,mt as collectMatches,at as findChatScrollContainer,Q as scrollChatElementIntoView};
|
|
@@ -11,4 +11,4 @@ export interface FindBarProps {
|
|
|
11
11
|
nextTitle?: string;
|
|
12
12
|
className?: string;
|
|
13
13
|
}
|
|
14
|
-
export declare function FindBar({ ref, value, onChange, onFind, onClose, placeholder, autoFocusOpen, prevTitle, nextTitle, className
|
|
14
|
+
export declare function FindBar({ ref, value, onChange, onFind, onClose, placeholder, autoFocusOpen, prevTitle, nextTitle, className }: FindBarProps): import("react").JSX.Element;
|
package/dist/types.d.ts
CHANGED
|
@@ -23,6 +23,19 @@ export interface TerminalDisplayMeta {
|
|
|
23
23
|
readFilePath?: string;
|
|
24
24
|
};
|
|
25
25
|
}
|
|
26
|
+
export type CollabTool = "spawnAgent" | "sendInput" | "resumeAgent" | "wait" | "closeAgent" | "sendMessage" | "followupTask" | "interruptAgent" | "listAgents";
|
|
27
|
+
export type CollabAgentStatus = "pendingInit" | "running" | "interrupted" | "completed" | "errored" | "shutdown" | "notFound";
|
|
28
|
+
export interface CollabAgent {
|
|
29
|
+
threadId: string;
|
|
30
|
+
nickname: string | null;
|
|
31
|
+
role: string | null;
|
|
32
|
+
model: string | null;
|
|
33
|
+
reasoningEffort: string | null;
|
|
34
|
+
state: {
|
|
35
|
+
status: CollabAgentStatus;
|
|
36
|
+
message: string | null;
|
|
37
|
+
} | null;
|
|
38
|
+
}
|
|
26
39
|
export type ContentBlock = {
|
|
27
40
|
type: "text";
|
|
28
41
|
text: string;
|
|
@@ -54,11 +67,20 @@ export type ContentBlock = {
|
|
|
54
67
|
type: "subagent";
|
|
55
68
|
id: string;
|
|
56
69
|
name: string;
|
|
70
|
+
model: string | null;
|
|
71
|
+
reasoningEffort: string | null;
|
|
57
72
|
blocks: ContentBlock[];
|
|
58
73
|
status: ToolCallStatus;
|
|
59
74
|
isBackground?: boolean;
|
|
60
75
|
startedAt?: number;
|
|
61
76
|
durationMs?: number;
|
|
77
|
+
} | {
|
|
78
|
+
type: "collab";
|
|
79
|
+
id: string;
|
|
80
|
+
tool: CollabTool;
|
|
81
|
+
status: ToolCallStatus;
|
|
82
|
+
prompt: string | null;
|
|
83
|
+
agents: CollabAgent[];
|
|
62
84
|
} | {
|
|
63
85
|
type: "plan";
|
|
64
86
|
entries: PlanEntry[];
|