@eigenpal/docx-editor-agents 1.4.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/ai-sdk/server.js +1 -1
- package/dist/ai-sdk/server.mjs +1 -1
- package/dist/bridge.d.mts +1 -1
- package/dist/bridge.d.ts +1 -1
- package/dist/bridge.js +1 -1
- package/dist/bridge.mjs +1 -1
- package/dist/chunk-4C2IJ7OV.js +75 -0
- package/dist/{chunk-XDZHYYU6.mjs → chunk-6RMDMHUK.mjs} +1 -1
- package/dist/{chunk-RI5S75JY.js → chunk-AO5SO6ZS.js} +4 -4
- package/dist/chunk-B56JZP3K.js +2 -0
- package/dist/chunk-CGBO6ID5.mjs +1 -0
- package/dist/chunk-ICDWMZPG.mjs +75 -0
- package/dist/chunk-J773ZJGL.mjs +5 -0
- package/dist/{chunk-EPRXZTIE.js → chunk-MMJQ47Q7.js} +1 -1
- package/dist/{chunk-24MVJKCP.mjs → chunk-MSKW7E36.mjs} +4 -4
- package/dist/chunk-VAQTAQZG.js +1 -0
- package/dist/chunk-WDPSOX2B.mjs +2 -0
- package/dist/chunk-YU3OJ2DE.js +5 -0
- package/dist/executor-3N3ESB3N.mjs +1 -0
- package/dist/executor-KLVHM2GK.js +1 -0
- package/dist/headless-BS5JJGVC.js +1 -0
- package/dist/{headless-OEZEYHNL.mjs → headless-GFPWSIA3.mjs} +1 -1
- package/dist/index.d.mts +4 -14
- package/dist/index.d.ts +4 -14
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/mcp.d.mts +1 -1
- package/dist/mcp.d.ts +1 -1
- package/dist/mcp.js +3 -3
- package/dist/mcp.mjs +3 -3
- package/dist/react.d.mts +8 -8
- package/dist/react.d.ts +8 -8
- package/dist/react.js +2 -2
- package/dist/react.mjs +1 -1
- package/dist/{server-BaVhdHCd.d.mts → server-DP8QoY84.d.mts} +68 -43
- package/dist/{server-BaVhdHCd.d.ts → server-DP8QoY84.d.ts} +68 -43
- package/dist/server.d.mts +1 -1
- package/dist/server.d.ts +1 -1
- package/dist/server.js +1 -1
- package/dist/server.mjs +1 -1
- package/dist/vue.js +6 -6
- package/dist/vue.mjs +226 -179
- package/package.json +1 -1
- package/dist/chunk-2OIX7TUX.mjs +0 -75
- package/dist/chunk-4W7OEW2I.js +0 -75
- package/dist/chunk-7PTBNHAH.js +0 -2
- package/dist/chunk-LX3NJWKV.js +0 -1
- package/dist/chunk-NFAEIOLC.mjs +0 -1
- package/dist/chunk-P4DRISTP.mjs +0 -5
- package/dist/chunk-XUAUDUJU.js +0 -5
- package/dist/chunk-YQIAKHOL.mjs +0 -2
- package/dist/executor-SBR6X4JZ.mjs +0 -1
- package/dist/executor-ZTSOZMKE.js +0 -1
- package/dist/headless-ES4B5CTK.js +0 -1
package/dist/react.d.ts
CHANGED
|
@@ -18,9 +18,9 @@
|
|
|
18
18
|
* @packageDocumentation
|
|
19
19
|
* @public
|
|
20
20
|
*/
|
|
21
|
-
import { r as EditorRefLike, k as AgentToolResult, q as getToolSchemas, j as AgentToolDefinition, s as AgentContextSnapshot } from './server-
|
|
22
|
-
export { t as getToolDisplayName } from './server-
|
|
23
|
-
import * as
|
|
21
|
+
import { r as EditorRefLike, k as AgentToolResult, q as getToolSchemas, j as AgentToolDefinition, s as AgentContextSnapshot } from './server-DP8QoY84.js';
|
|
22
|
+
export { t as getToolDisplayName } from './server-DP8QoY84.js';
|
|
23
|
+
import * as react from 'react';
|
|
24
24
|
import { ReactNode, CSSProperties } from 'react';
|
|
25
25
|
import { A as AgentMessage, a as AgentToolCall } from './agent-types-C8RvQB7n.js';
|
|
26
26
|
|
|
@@ -162,7 +162,7 @@ interface AgentPanelProps {
|
|
|
162
162
|
*/
|
|
163
163
|
closed?: boolean;
|
|
164
164
|
}
|
|
165
|
-
declare function AgentPanel({ title, icon, closeLabel, resizeHandleLabel, width: controlledWidth, defaultWidth, minWidth, maxWidth, onWidthChange, onClose, children, className, closed, }: AgentPanelProps):
|
|
165
|
+
declare function AgentPanel({ title, icon, closeLabel, resizeHandleLabel, width: controlledWidth, defaultWidth, minWidth, maxWidth, onWidthChange, onClose, children, className, closed, }: AgentPanelProps): react.JSX.Element;
|
|
166
166
|
|
|
167
167
|
interface AgentChatLogProps {
|
|
168
168
|
messages: AgentMessage[];
|
|
@@ -225,8 +225,8 @@ interface AgentTimelineProps {
|
|
|
225
225
|
* assistant text bubble. Auto-collapses when the turn finishes; click the
|
|
226
226
|
* summary row to re-expand.
|
|
227
227
|
*/
|
|
228
|
-
declare function AgentTimeline({ toolCalls, streaming, maxVisibleCalls, humanizeName, workingLabel, summaryLabel, earlierLabel, }: AgentTimelineProps):
|
|
229
|
-
declare function AgentChatLog({ messages, loading, error, emptyState, autoScroll, humanizeToolName, maxVisibleCalls, className, style, thinkingLabel, workingLabel, summaryLabel, earlierLabel, }: AgentChatLogProps):
|
|
228
|
+
declare function AgentTimeline({ toolCalls, streaming, maxVisibleCalls, humanizeName, workingLabel, summaryLabel, earlierLabel, }: AgentTimelineProps): react.JSX.Element | null;
|
|
229
|
+
declare function AgentChatLog({ messages, loading, error, emptyState, autoScroll, humanizeToolName, maxVisibleCalls, className, style, thinkingLabel, workingLabel, summaryLabel, earlierLabel, }: AgentChatLogProps): react.JSX.Element;
|
|
230
230
|
interface AgentComposerProps {
|
|
231
231
|
value: string;
|
|
232
232
|
onChange: (next: string) => void;
|
|
@@ -239,12 +239,12 @@ interface AgentComposerProps {
|
|
|
239
239
|
footnote?: ReactNode;
|
|
240
240
|
className?: string;
|
|
241
241
|
}
|
|
242
|
-
declare function AgentComposer({ value, onChange, onSubmit, disabled, placeholder, sendLabel, footnote, className, }: AgentComposerProps):
|
|
242
|
+
declare function AgentComposer({ value, onChange, onSubmit, disabled, placeholder, sendLabel, footnote, className, }: AgentComposerProps): react.JSX.Element;
|
|
243
243
|
interface AgentSuggestionChipProps {
|
|
244
244
|
label: string;
|
|
245
245
|
onClick: () => void;
|
|
246
246
|
disabled?: boolean;
|
|
247
247
|
}
|
|
248
|
-
declare function AgentSuggestionChip({ label, onClick, disabled }: AgentSuggestionChipProps):
|
|
248
|
+
declare function AgentSuggestionChip({ label, onClick, disabled }: AgentSuggestionChipProps): react.JSX.Element;
|
|
249
249
|
|
|
250
250
|
export { AgentChatLog, type AgentChatLogProps, AgentComposer, type AgentComposerProps, AgentContextSnapshot, AgentMessage, AgentPanel, type AgentPanelProps, AgentSuggestionChip, type AgentSuggestionChipProps, AgentTimeline, type AgentTimelineProps, AgentToolCall, AgentToolDefinition, AgentToolResult, EditorRefLike, type UseAgentChatOptions, type UseAgentChatReturn, type UseDocxAgentToolsOptions, type UseDocxAgentToolsReturn, useAgentChat, useDocxAgentTools };
|
package/dist/react.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var chunkB56JZP3K_js=require('./chunk-B56JZP3K.js'),chunkAO5SO6ZS_js=require('./chunk-AO5SO6ZS.js'),react=require('react'),jsxRuntime=require('react/jsx-runtime');var te=chunkAO5SO6ZS_js.d();function ne(e){let{editorRef:t,author:l="AI"}=e,c=react.useMemo(()=>({get:()=>t.current?chunkB56JZP3K_js.a(t.current,l):null}),[t,l]);return {executeToolCall:react.useCallback((d,p)=>{let r=c.get();return r?chunkAO5SO6ZS_js.b(d,p,r):{success:false,error:"Editor not ready"}},[c]),toolSchemas:te}}function re(e){let{editorRef:t,author:l="AI",tools:c,include:u,exclude:d}=e,p=!!c&&Object.keys(c).length>0,r=react.useCallback(i=>!(u&&!u.includes(i)||d&&d.includes(i)),[u,d]),f=react.useMemo(()=>{let i=u||d?chunkAO5SO6ZS_js.a.filter(n=>r(n.name)):chunkAO5SO6ZS_js.a;if(!p)return i.map(n=>({type:"function",function:{name:n.name,description:n.description,parameters:n.inputSchema}}));let o=new Map(i.map(n=>[n.name,n]));for(let[n,C]of Object.entries(c))o.set(n,C);return Array.from(o.values()).map(n=>({type:"function",function:{name:n.name,description:n.description,parameters:n.inputSchema}}))},[c,p,u,d,r]),g=react.useCallback((i,o)=>{let n=t.current;if(!n)return {success:false,error:"Editor not ready."};let C=chunkB56JZP3K_js.a(n,l),k=c?.[i];if(k)try{return k.handler(o,C)}catch(T){return {success:false,error:T instanceof Error?T.message:String(T)}}return r(i)?chunkAO5SO6ZS_js.b(i,o,C):{success:false,error:`Tool '${i}' is not enabled.`}},[t,l,c,r]),x=react.useCallback(()=>{let i=t.current;if(!i)return {selection:null,currentPage:0,totalPages:0};let o=chunkB56JZP3K_js.a(i,l);return {selection:o.getSelection(),currentPage:o.getCurrentPage(),totalPages:o.getTotalPages()}},[t,l]);return {tools:f,executeToolCall:g,getContext:x}}var y={agentPanel:{defaultTitle:"Assistant",close:"Close panel",resizeHandle:"Resize agent panel",thinking:"Assistant is thinking",composerPlaceholder:"Ask the assistant\u2026",send:"Send",timeline:{working:"Working\u2026 {count, plural, one {# step} other {# steps}}",summary:"{count, plural, one {# step} other {# steps}}",earlier:"+ {count, plural, one {# earlier step} other {# earlier steps}}"}}};var _="eigenpal:docx-editor:agentPanelWidth";function ae({size:e=22}){return jsxRuntime.jsx("svg",{viewBox:"0 -960 960 960",width:e,height:e,fill:"currentColor","aria-hidden":"true",children:jsxRuntime.jsx("path",{d:"m760-600-50-110-110-50 110-50 50-110 50 110 110 50-110 50-50 110Zm0 560-50-110-110-50 110-50 50-110 50 110 110 50-110 50-50 110ZM360-160 260-380 40-480l220-100 100-220 100 220 220 100-220 100-100 220Zm0-194 40-86 86-40-86-40-40-86-40 86-86 40 86 40 40 86Zm0-126Z"})})}function le({size:e=18}){return jsxRuntime.jsx("svg",{viewBox:"0 -960 960 960",width:e,height:e,fill:"currentColor","aria-hidden":"true",children:jsxRuntime.jsx("path",{d:"m256-200-56-56 224-224-224-224 56-56 224 224 224-224 56 56-224 224 224 224-56 56-224-224-224 224Z"})})}var ce=360,ue=280,de=600;function pe({title:e=y.agentPanel.defaultTitle,icon:t,closeLabel:l=y.agentPanel.close,resizeHandleLabel:c=y.agentPanel.resizeHandle,width:u,defaultWidth:d=ce,minWidth:p=ue,maxWidth:r=de,onWidthChange:f,onClose:g,children:x,className:i,closed:o=false}){let n=u!==void 0,[C,k]=react.useState(false),T=react.useRef(o);react.useEffect(()=>{if(T.current!==o){T.current=o,k(true);let m=window.setTimeout(()=>k(false),260);return ()=>window.clearTimeout(m)}},[o]);let[L,h]=react.useState(()=>{if(n)return u;if(typeof window>"u")return d;try{let m=window.localStorage.getItem(_);if(m){let S=Number(m);if(Number.isFinite(S)&&S>=p&&S<=r)return S}}catch{}return d}),E=n?u:L,v=react.useRef(null),B=react.useRef({minWidth:p,maxWidth:r,isControlled:n,onWidthChange:f});B.current={minWidth:p,maxWidth:r,isControlled:n,onWidthChange:f};let w=react.useRef(null);if(!w.current){let m=P=>{let D=v.current;if(!D)return;let I=B.current,q=D.startX-P.clientX,N=Math.min(I.maxWidth,Math.max(I.minWidth,D.startWidth+q));D.lastWidth=N,I.isControlled||h(N),I.onWidthChange?.(N);},S=()=>{let P=v.current;if(P&&(v.current=null,document.removeEventListener("pointermove",m),document.removeEventListener("pointerup",S),!B.current.isControlled))try{window.localStorage.setItem(_,String(P.lastWidth));}catch{}};w.current={move:m,up:S};}let Y=react.useCallback(m=>{m.preventDefault();let S=n?u:L;v.current={startX:m.clientX,startWidth:S,lastWidth:S},document.addEventListener("pointermove",w.current.move),document.addEventListener("pointerup",w.current.up);},[]);return react.useEffect(()=>()=>{let m=w.current;m&&(document.removeEventListener("pointermove",m.move),document.removeEventListener("pointerup",m.up));},[]),jsxRuntime.jsxs("div",{className:`ep-agent-panel${i?` ${i}`:""}`,style:{width:o?0:E,flex:o?"0 0 0px":`0 0 ${E}px`,height:"calc(100% - 16px)",margin:o?"8px 0 8px 0":"8px 8px 8px 12px",display:"flex",flexDirection:"column",background:"#ffffff",border:o?"1px solid transparent":"1px solid #e3e3e3",borderRadius:16,boxShadow:o?"none":"0 1px 2px rgba(60,64,67,0.05), 0 4px 12px rgba(60,64,67,0.08)",opacity:o?0:1,pointerEvents:o?"none":"auto",position:"relative",boxSizing:"border-box",minWidth:o?0:p,overflow:"hidden",fontFamily:"'Google Sans', 'Google Sans Text', system-ui, -apple-system, sans-serif",transition:C?"flex-basis 220ms cubic-bezier(0.4, 0, 0.2, 1), width 220ms cubic-bezier(0.4, 0, 0.2, 1), margin 220ms cubic-bezier(0.4, 0, 0.2, 1), opacity 180ms ease, box-shadow 220ms ease, border-color 220ms ease":"opacity 180ms ease, box-shadow 220ms ease, border-color 220ms ease"},"aria-hidden":o,"data-testid":"agent-panel","data-state":o?"closed":"open",role:"complementary","aria-label":e,children:[jsxRuntime.jsx("div",{role:"separator","aria-orientation":"vertical","aria-label":c,onPointerDown:Y,style:{position:"absolute",left:-3,top:0,bottom:0,width:6,cursor:"col-resize",touchAction:"none",zIndex:1},"data-testid":"agent-panel-resize-handle"}),jsxRuntime.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"14px 16px 10px",flex:"0 0 auto",background:"#ffffff"},children:[jsxRuntime.jsx("span",{style:{display:"inline-flex",alignItems:"center",color:"#0b57d0"},children:t??jsxRuntime.jsx(ae,{size:22})}),jsxRuntime.jsx("span",{style:{flex:1,fontSize:15,fontWeight:500,color:"#1f1f1f",letterSpacing:.1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e}),g&&jsxRuntime.jsx("button",{type:"button",onClick:g,"aria-label":l,title:l,"data-testid":"agent-panel-close",style:{border:"none",background:"transparent",padding:6,cursor:"pointer",display:"inline-flex",alignItems:"center",justifyContent:"center",color:"#444746",borderRadius:999,transition:"background 0.15s"},onMouseEnter:m=>{m.currentTarget.style.background="#f1f3f4";},onMouseLeave:m=>{m.currentTarget.style.background="transparent";},children:jsxRuntime.jsx(le,{size:18})})]}),jsxRuntime.jsx("div",{style:{flex:1,minHeight:0,overflow:"hidden",display:"flex",flexDirection:"column"},children:x})]})}function ge(e){let t={},l=/(=\d+|\w+)\s*\{([^}]*)\}/g,c;for(;(c=l.exec(e))!==null;)t[c[1]]=c[2];return t}function F(e,t,l="en"){return t?e.replace(/\{(\w+),\s*plural,\s*((?:[^{}]|\{[^{}]*\})*)\}/g,(u,d,p)=>{let r=Number(t[d]);if(isNaN(r))return u;let f=ge(p),g=f[`=${r}`];if(g!==void 0)return g.replace(/#/g,String(r));let x;try{x=new Intl.PluralRules(l).select(r);}catch{x=r===1?"one":"other";}return (f[x]??f.other??"").replace(/#/g,String(r))}).replace(/\{(\w+)\}/g,(u,d)=>{let p=t[d];return p!==void 0?String(p):`{${d}}`}):e}function V(e){let t=e.replace(/_/g," ");return t.charAt(0).toUpperCase()+t.slice(1)}var xe=y.agentPanel.thinking,he=y.agentPanel.composerPlaceholder,be=y.agentPanel.send,ye=e=>F(y.agentPanel.timeline.working,{count:e}),Ae=e=>F(y.agentPanel.timeline.summary,{count:e}),Se=e=>F(y.agentPanel.timeline.earlier,{count:e}),j="ep-agent-chat-keyframes",Ce=`
|
|
2
2
|
@keyframes epAgentDot {
|
|
3
3
|
0%, 80%, 100% { transform: scale(0.6); opacity: 0.4; }
|
|
4
4
|
40% { transform: scale(1); opacity: 1; }
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
@keyframes epAgentSpin {
|
|
7
7
|
to { transform: rotate(360deg); }
|
|
8
8
|
}
|
|
9
|
-
`;function Te(){react.useEffect(()=>{if(typeof document>"u"||document.getElementById(j))return;let e=document.createElement("style");e.id=j,e.textContent=Ce,document.head.appendChild(e);},[]);}var ke=3;function K({toolCalls:e,streaming:t,maxVisibleCalls:l=ke,humanizeName:c=V,workingLabel:u=ye,summaryLabel:d=Ae,earlierLabel:p=Se}){let[r,f]=react.useState(null),g=r??!!t;if(e.length===0)return null;let x=t?u(e.length):d(e.length),i=e.slice(-l),o=Math.max(0,e.length-i.length);return jsxRuntime.jsxs("div",{style:s.timelineWrap,"data-testid":"agent-timeline",children:[jsxRuntime.jsxs("button",{type:"button",onClick:()=>f(!g),"aria-expanded":g,style:s.timelineHeader,"data-testid":"agent-timeline-toggle",children:[jsxRuntime.jsxs("span",{style:s.timelineSummary,children:[t?jsxRuntime.jsx(X,{}):jsxRuntime.jsx(ve,{}),x]}),jsxRuntime.jsx("span",{style:{...s.timelineChevron,transform:g?"rotate(180deg)":"rotate(0deg)"},"aria-hidden":"true",children:"\u25BE"})]}),g&&jsxRuntime.jsxs("ol",{style:s.timelineList,children:[o>0&&jsxRuntime.jsx("li",{style:s.timelineMore,"data-testid":"agent-timeline-earlier",children:p(o)}),i.map(n=>jsxRuntime.jsxs("li",{style:s.timelineItem,children:[n.status==="running"?jsxRuntime.jsx(X,{size:10,compact:true}):jsxRuntime.jsx("span",{style:{...s.timelineDot,background:n.status==="error"?"#d93025":"#1e8e3e"},"aria-hidden":"true"}),jsxRuntime.jsxs("span",{style:s.timelineCall,children:[jsxRuntime.jsx("span",{style:s.timelineCallName,children:c(n.name)}),n.error&&jsxRuntime.jsx("span",{style:s.timelineError,children:n.error})]})]},n.id))]})]})}function X({size:e=12,compact:t=false}={}){return jsxRuntime.jsxs("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",style:{marginRight:t?0:6,animation:"epAgentSpin 0.8s linear infinite",flexShrink:0},"aria-hidden":"true",children:[jsxRuntime.jsx("circle",{cx:"12",cy:"12",r:"9",stroke:"#dadce0",strokeWidth:"3",fill:"none"}),jsxRuntime.jsx("path",{d:"M21 12a9 9 0 0 0-9-9",stroke:"#0b57d0",strokeWidth:"3",strokeLinecap:"round"})]})}function ve(){return jsxRuntime.jsx("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",style:{marginRight:6},children:jsxRuntime.jsx("path",{d:"M5 13l4 4L19 7",stroke:"#1e8e3e",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function we({messages:e,loading:t,error:l,emptyState:c,autoScroll:u=true,humanizeToolName:d,maxVisibleCalls:p,className:r,style:f,thinkingLabel:g=xe,workingLabel:x,summaryLabel:i,earlierLabel:o}){Te();let n=react.useRef(null),C=e[e.length-1],k=C?.toolCalls?.length??0,T=C?.status==="streaming";react.useEffect(()=>{u&&n.current?.scrollIntoView({behavior:T||t?"auto":"smooth",block:"end"});},[e.length,k,t,T,u]);let L=e.length===0&&!t&&!l;return jsxRuntime.jsxs("div",{className:`ep-agent-chat-log${r?` ${r}`:""}`,style:{flex:1,overflow:"auto",padding:"16px 14px 8px",display:"flex",flexDirection:"column",gap:10,...f},children:[L&&c,e.map(h=>{let E=h.role==="assistant"&&h.toolCalls&&h.toolCalls.length>0,v=h.text.length>0;return jsxRuntime.jsxs("div",{style:s.messageGroup,"data-role":h.role,children:[E&&jsxRuntime.jsx(K,{toolCalls:h.toolCalls,streaming:h.status==="streaming",humanizeName:d,maxVisibleCalls:p,workingLabel:x,summaryLabel:i,earlierLabel:o}),v&&jsxRuntime.jsx("div",{style:h.role==="user"?s.userBubble:s.assistantBubble,children:h.text})]},h.id)}),t&&jsxRuntime.jsxs("div",{style:s.thinkingBubble,"aria-label":g,children:[jsxRuntime.jsx("span",{style:{...s.dot,animationDelay:"0s"}}),jsxRuntime.jsx("span",{style:{...s.dot,animationDelay:"0.15s"}}),jsxRuntime.jsx("span",{style:{...s.dot,animationDelay:"0.3s"}})]}),l&&jsxRuntime.jsx("div",{style:s.errorBubble,role:"alert",children:l}),jsxRuntime.jsx("div",{ref:n})]})}function Re({value:e,onChange:t,onSubmit:l,disabled:c,placeholder:u=he,sendLabel:d=be,footnote:p,className:r}){let f=u,g=e.trim().length>0&&!c;return jsxRuntime.jsxs("form",{onSubmit:i=>{i.preventDefault(),g&&l();},className:`ep-agent-composer${r?` ${r}`:""}`,style:s.composerWrap,children:[jsxRuntime.jsxs("div",{style:s.composerShell,children:[jsxRuntime.jsx("input",{style:s.composerInput,value:e,onChange:i=>t(i.target.value),placeholder:f,disabled:c}),jsxRuntime.jsx("button",{type:"submit","aria-label":d,disabled:!g,style:{...s.sendBtn,opacity:g?1:.35,cursor:g?"pointer":"not-allowed"},children:jsxRuntime.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:jsxRuntime.jsx("path",{d:"M12 19V5M5 12l7-7 7 7",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),p&&jsxRuntime.jsx("div",{style:s.footnote,children:p})]})}function Le({label:e,onClick:t,disabled:l}){return jsxRuntime.jsx("button",{type:"button",style:s.chip,onClick:t,disabled:l,children:e})}var s={messageGroup:{display:"flex",flexDirection:"column",gap:6,width:"100%"},userBubble:{background:"#0b57d0",color:"#fff",padding:"10px 14px",borderRadius:"20px 20px 4px 20px",fontSize:13.5,lineHeight:1.5,alignSelf:"flex-end",maxWidth:"88%",whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"'Google Sans', 'Google Sans Text', system-ui, -apple-system, sans-serif"},assistantBubble:{background:"#f0f4f9",color:"#1f1f1f",padding:"12px 16px",borderRadius:"20px 20px 20px 4px",fontSize:13.5,lineHeight:1.55,alignSelf:"flex-start",maxWidth:"92%",whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"'Google Sans', 'Google Sans Text', system-ui, -apple-system, sans-serif"},thinkingBubble:{background:"#f0f4f9",padding:"12px 16px",borderRadius:"20px 20px 20px 4px",alignSelf:"flex-start",display:"flex",gap:4,alignItems:"center"},dot:{width:6,height:6,borderRadius:"50%",background:"#5f6368",display:"inline-block",animation:"epAgentDot 1.4s infinite ease-in-out"},errorBubble:{background:"#fce8e6",color:"#b3261e",padding:"10px 14px",borderRadius:16,fontSize:12.5,alignSelf:"flex-start",maxWidth:"92%",whiteSpace:"pre-wrap",fontFamily:"'Google Sans Text', system-ui, sans-serif"},composerWrap:{padding:"8px 12px 14px",background:"#fff",flex:"0 0 auto"},composerShell:{display:"flex",alignItems:"center",gap:4,padding:"6px 6px 6px 18px",background:"#fff",border:"1px solid #c4c7c5",borderRadius:28,boxShadow:"0 1px 2px rgba(60,64,67,0.04)",transition:"border-color 0.15s, box-shadow 0.15s",fontFamily:"'Google Sans Text', system-ui, sans-serif"},composerInput:{flex:1,padding:"8px 0",fontSize:14,border:"none",outline:"none",background:"transparent",fontFamily:"inherit",color:"#1f1f1f"},sendBtn:{width:36,height:36,borderRadius:"50%",border:"none",background:"#0b57d0",color:"#fff",flexShrink:0,display:"inline-flex",alignItems:"center",justifyContent:"center",transition:"background 0.15s, opacity 0.15s, transform 0.15s"},footnote:{fontSize:11,color:"#5f6368",textAlign:"center",marginTop:10,fontFamily:"'Google Sans Text', system-ui, sans-serif"},chip:{textAlign:"left",background:"#fff",border:"1px solid #dadce0",borderRadius:18,padding:"10px 14px",fontSize:13,color:"#1f1f1f",cursor:"pointer",fontFamily:"'Google Sans Text', system-ui, sans-serif",lineHeight:1.4,transition:"background 0.15s, border-color 0.15s, box-shadow 0.15s",width:"100%"},timelineWrap:{alignSelf:"flex-start",maxWidth:"92%",background:"#fff",border:"1px solid #e1e3e6",borderRadius:12,overflow:"hidden",fontFamily:"'Google Sans Text', system-ui, sans-serif"},timelineHeader:{display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",padding:"8px 12px",background:"transparent",border:"none",cursor:"pointer",fontSize:12.5,color:"#1f1f1f",fontFamily:"inherit"},timelineSummary:{display:"inline-flex",alignItems:"center",fontWeight:500},timelineChevron:{fontSize:12,color:"#5f6368",transition:"transform 0.15s ease",marginLeft:8},timelineList:{listStyle:"none",margin:0,padding:"4px 12px 10px 12px",display:"flex",flexDirection:"column",gap:6,borderTop:"1px solid #ececf0"},timelineItem:{display:"flex",alignItems:"center",gap:8,fontSize:12,color:"#444746"},timelineDot:{width:6,height:6,borderRadius:"50%",flexShrink:0},timelineCall:{display:"inline-flex",flexDirection:"column",minWidth:0},timelineCallName:{color:"#1f1f1f"},timelineError:{color:"#d93025",fontSize:11},timelineMore:{fontSize:11,color:"#5f6368",fontStyle:"italic",paddingLeft:14}};Object.defineProperty(exports,"getToolDisplayName",{enumerable:true,get:function(){return
|
|
9
|
+
`;function Te(){react.useEffect(()=>{if(typeof document>"u"||document.getElementById(j))return;let e=document.createElement("style");e.id=j,e.textContent=Ce,document.head.appendChild(e);},[]);}var ke=3;function K({toolCalls:e,streaming:t,maxVisibleCalls:l=ke,humanizeName:c=V,workingLabel:u=ye,summaryLabel:d=Ae,earlierLabel:p=Se}){let[r,f]=react.useState(null),g=r??!!t;if(e.length===0)return null;let x=t?u(e.length):d(e.length),i=e.slice(-l),o=Math.max(0,e.length-i.length);return jsxRuntime.jsxs("div",{style:s.timelineWrap,"data-testid":"agent-timeline",children:[jsxRuntime.jsxs("button",{type:"button",onClick:()=>f(!g),"aria-expanded":g,style:s.timelineHeader,"data-testid":"agent-timeline-toggle",children:[jsxRuntime.jsxs("span",{style:s.timelineSummary,children:[t?jsxRuntime.jsx(X,{}):jsxRuntime.jsx(ve,{}),x]}),jsxRuntime.jsx("span",{style:{...s.timelineChevron,transform:g?"rotate(180deg)":"rotate(0deg)"},"aria-hidden":"true",children:"\u25BE"})]}),g&&jsxRuntime.jsxs("ol",{style:s.timelineList,children:[o>0&&jsxRuntime.jsx("li",{style:s.timelineMore,"data-testid":"agent-timeline-earlier",children:p(o)}),i.map(n=>jsxRuntime.jsxs("li",{style:s.timelineItem,children:[n.status==="running"?jsxRuntime.jsx(X,{size:10,compact:true}):jsxRuntime.jsx("span",{style:{...s.timelineDot,background:n.status==="error"?"#d93025":"#1e8e3e"},"aria-hidden":"true"}),jsxRuntime.jsxs("span",{style:s.timelineCall,children:[jsxRuntime.jsx("span",{style:s.timelineCallName,children:c(n.name)}),n.error&&jsxRuntime.jsx("span",{style:s.timelineError,children:n.error})]})]},n.id))]})]})}function X({size:e=12,compact:t=false}={}){return jsxRuntime.jsxs("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",style:{marginRight:t?0:6,animation:"epAgentSpin 0.8s linear infinite",flexShrink:0},"aria-hidden":"true",children:[jsxRuntime.jsx("circle",{cx:"12",cy:"12",r:"9",stroke:"#dadce0",strokeWidth:"3",fill:"none"}),jsxRuntime.jsx("path",{d:"M21 12a9 9 0 0 0-9-9",stroke:"#0b57d0",strokeWidth:"3",strokeLinecap:"round"})]})}function ve(){return jsxRuntime.jsx("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",style:{marginRight:6},children:jsxRuntime.jsx("path",{d:"M5 13l4 4L19 7",stroke:"#1e8e3e",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"})})}function we({messages:e,loading:t,error:l,emptyState:c,autoScroll:u=true,humanizeToolName:d,maxVisibleCalls:p,className:r,style:f,thinkingLabel:g=xe,workingLabel:x,summaryLabel:i,earlierLabel:o}){Te();let n=react.useRef(null),C=e[e.length-1],k=C?.toolCalls?.length??0,T=C?.status==="streaming";react.useEffect(()=>{u&&n.current?.scrollIntoView({behavior:T||t?"auto":"smooth",block:"end"});},[e.length,k,t,T,u]);let L=e.length===0&&!t&&!l;return jsxRuntime.jsxs("div",{className:`ep-agent-chat-log${r?` ${r}`:""}`,style:{flex:1,overflow:"auto",padding:"16px 14px 8px",display:"flex",flexDirection:"column",gap:10,...f},children:[L&&c,e.map(h=>{let E=h.role==="assistant"&&h.toolCalls&&h.toolCalls.length>0,v=h.text.length>0;return jsxRuntime.jsxs("div",{style:s.messageGroup,"data-role":h.role,children:[E&&jsxRuntime.jsx(K,{toolCalls:h.toolCalls,streaming:h.status==="streaming",humanizeName:d,maxVisibleCalls:p,workingLabel:x,summaryLabel:i,earlierLabel:o}),v&&jsxRuntime.jsx("div",{style:h.role==="user"?s.userBubble:s.assistantBubble,children:h.text})]},h.id)}),t&&jsxRuntime.jsxs("div",{style:s.thinkingBubble,"aria-label":g,children:[jsxRuntime.jsx("span",{style:{...s.dot,animationDelay:"0s"}}),jsxRuntime.jsx("span",{style:{...s.dot,animationDelay:"0.15s"}}),jsxRuntime.jsx("span",{style:{...s.dot,animationDelay:"0.3s"}})]}),l&&jsxRuntime.jsx("div",{style:s.errorBubble,role:"alert",children:l}),jsxRuntime.jsx("div",{ref:n})]})}function Re({value:e,onChange:t,onSubmit:l,disabled:c,placeholder:u=he,sendLabel:d=be,footnote:p,className:r}){let f=u,g=e.trim().length>0&&!c;return jsxRuntime.jsxs("form",{onSubmit:i=>{i.preventDefault(),g&&l();},className:`ep-agent-composer${r?` ${r}`:""}`,style:s.composerWrap,children:[jsxRuntime.jsxs("div",{style:s.composerShell,children:[jsxRuntime.jsx("input",{style:s.composerInput,value:e,onChange:i=>t(i.target.value),placeholder:f,disabled:c}),jsxRuntime.jsx("button",{type:"submit","aria-label":d,disabled:!g,style:{...s.sendBtn,opacity:g?1:.35,cursor:g?"pointer":"not-allowed"},children:jsxRuntime.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:jsxRuntime.jsx("path",{d:"M12 19V5M5 12l7-7 7 7",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),p&&jsxRuntime.jsx("div",{style:s.footnote,children:p})]})}function Le({label:e,onClick:t,disabled:l}){return jsxRuntime.jsx("button",{type:"button",style:s.chip,onClick:t,disabled:l,children:e})}var s={messageGroup:{display:"flex",flexDirection:"column",gap:6,width:"100%"},userBubble:{background:"#0b57d0",color:"#fff",padding:"10px 14px",borderRadius:"20px 20px 4px 20px",fontSize:13.5,lineHeight:1.5,alignSelf:"flex-end",maxWidth:"88%",whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"'Google Sans', 'Google Sans Text', system-ui, -apple-system, sans-serif"},assistantBubble:{background:"#f0f4f9",color:"#1f1f1f",padding:"12px 16px",borderRadius:"20px 20px 20px 4px",fontSize:13.5,lineHeight:1.55,alignSelf:"flex-start",maxWidth:"92%",whiteSpace:"pre-wrap",wordBreak:"break-word",fontFamily:"'Google Sans', 'Google Sans Text', system-ui, -apple-system, sans-serif"},thinkingBubble:{background:"#f0f4f9",padding:"12px 16px",borderRadius:"20px 20px 20px 4px",alignSelf:"flex-start",display:"flex",gap:4,alignItems:"center"},dot:{width:6,height:6,borderRadius:"50%",background:"#5f6368",display:"inline-block",animation:"epAgentDot 1.4s infinite ease-in-out"},errorBubble:{background:"#fce8e6",color:"#b3261e",padding:"10px 14px",borderRadius:16,fontSize:12.5,alignSelf:"flex-start",maxWidth:"92%",whiteSpace:"pre-wrap",fontFamily:"'Google Sans Text', system-ui, sans-serif"},composerWrap:{padding:"8px 12px 14px",background:"#fff",flex:"0 0 auto"},composerShell:{display:"flex",alignItems:"center",gap:4,padding:"6px 6px 6px 18px",background:"#fff",border:"1px solid #c4c7c5",borderRadius:28,boxShadow:"0 1px 2px rgba(60,64,67,0.04)",transition:"border-color 0.15s, box-shadow 0.15s",fontFamily:"'Google Sans Text', system-ui, sans-serif"},composerInput:{flex:1,padding:"8px 0",fontSize:14,border:"none",outline:"none",background:"transparent",fontFamily:"inherit",color:"#1f1f1f"},sendBtn:{width:36,height:36,borderRadius:"50%",border:"none",background:"#0b57d0",color:"#fff",flexShrink:0,display:"inline-flex",alignItems:"center",justifyContent:"center",transition:"background 0.15s, opacity 0.15s, transform 0.15s"},footnote:{fontSize:11,color:"#5f6368",textAlign:"center",marginTop:10,fontFamily:"'Google Sans Text', system-ui, sans-serif"},chip:{textAlign:"left",background:"#fff",border:"1px solid #dadce0",borderRadius:18,padding:"10px 14px",fontSize:13,color:"#1f1f1f",cursor:"pointer",fontFamily:"'Google Sans Text', system-ui, sans-serif",lineHeight:1.4,transition:"background 0.15s, border-color 0.15s, box-shadow 0.15s",width:"100%"},timelineWrap:{alignSelf:"flex-start",maxWidth:"92%",background:"#fff",border:"1px solid #e1e3e6",borderRadius:12,overflow:"hidden",fontFamily:"'Google Sans Text', system-ui, sans-serif"},timelineHeader:{display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",padding:"8px 12px",background:"transparent",border:"none",cursor:"pointer",fontSize:12.5,color:"#1f1f1f",fontFamily:"inherit"},timelineSummary:{display:"inline-flex",alignItems:"center",fontWeight:500},timelineChevron:{fontSize:12,color:"#5f6368",transition:"transform 0.15s ease",marginLeft:8},timelineList:{listStyle:"none",margin:0,padding:"4px 12px 10px 12px",display:"flex",flexDirection:"column",gap:6,borderTop:"1px solid #ececf0"},timelineItem:{display:"flex",alignItems:"center",gap:8,fontSize:12,color:"#444746"},timelineDot:{width:6,height:6,borderRadius:"50%",flexShrink:0},timelineCall:{display:"inline-flex",flexDirection:"column",minWidth:0},timelineCallName:{color:"#1f1f1f"},timelineError:{color:"#d93025",fontSize:11},timelineMore:{fontSize:11,color:"#5f6368",fontStyle:"italic",paddingLeft:14}};Object.defineProperty(exports,"getToolDisplayName",{enumerable:true,get:function(){return chunkAO5SO6ZS_js.c}});exports.AgentChatLog=we;exports.AgentComposer=Re;exports.AgentPanel=pe;exports.AgentSuggestionChip=Le;exports.AgentTimeline=K;exports.useAgentChat=ne;exports.useDocxAgentTools=re;
|
package/dist/react.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {a}from'./chunk-
|
|
1
|
+
import {a}from'./chunk-WDPSOX2B.mjs';import {d,b,a as a$1}from'./chunk-MSKW7E36.mjs';export{c as getToolDisplayName}from'./chunk-MSKW7E36.mjs';import {useMemo,useCallback,useState,useRef,useEffect}from'react';import {jsxs,jsx}from'react/jsx-runtime';var te=d();function ne(e){let{editorRef:t,author:l="AI"}=e,c=useMemo(()=>({get:()=>t.current?a(t.current,l):null}),[t,l]);return {executeToolCall:useCallback((d,p)=>{let r=c.get();return r?b(d,p,r):{success:false,error:"Editor not ready"}},[c]),toolSchemas:te}}function re(e){let{editorRef:t,author:l="AI",tools:c,include:u,exclude:d}=e,p=!!c&&Object.keys(c).length>0,r=useCallback(i=>!(u&&!u.includes(i)||d&&d.includes(i)),[u,d]),f=useMemo(()=>{let i=u||d?a$1.filter(n=>r(n.name)):a$1;if(!p)return i.map(n=>({type:"function",function:{name:n.name,description:n.description,parameters:n.inputSchema}}));let o=new Map(i.map(n=>[n.name,n]));for(let[n,C]of Object.entries(c))o.set(n,C);return Array.from(o.values()).map(n=>({type:"function",function:{name:n.name,description:n.description,parameters:n.inputSchema}}))},[c,p,u,d,r]),g=useCallback((i,o)=>{let n=t.current;if(!n)return {success:false,error:"Editor not ready."};let C=a(n,l),k=c?.[i];if(k)try{return k.handler(o,C)}catch(T){return {success:false,error:T instanceof Error?T.message:String(T)}}return r(i)?b(i,o,C):{success:false,error:`Tool '${i}' is not enabled.`}},[t,l,c,r]),x=useCallback(()=>{let i=t.current;if(!i)return {selection:null,currentPage:0,totalPages:0};let o=a(i,l);return {selection:o.getSelection(),currentPage:o.getCurrentPage(),totalPages:o.getTotalPages()}},[t,l]);return {tools:f,executeToolCall:g,getContext:x}}var y={agentPanel:{defaultTitle:"Assistant",close:"Close panel",resizeHandle:"Resize agent panel",thinking:"Assistant is thinking",composerPlaceholder:"Ask the assistant\u2026",send:"Send",timeline:{working:"Working\u2026 {count, plural, one {# step} other {# steps}}",summary:"{count, plural, one {# step} other {# steps}}",earlier:"+ {count, plural, one {# earlier step} other {# earlier steps}}"}}};var _="eigenpal:docx-editor:agentPanelWidth";function ae({size:e=22}){return jsx("svg",{viewBox:"0 -960 960 960",width:e,height:e,fill:"currentColor","aria-hidden":"true",children:jsx("path",{d:"m760-600-50-110-110-50 110-50 50-110 50 110 110 50-110 50-50 110Zm0 560-50-110-110-50 110-50 50-110 50 110 110 50-110 50-50 110ZM360-160 260-380 40-480l220-100 100-220 100 220 220 100-220 100-100 220Zm0-194 40-86 86-40-86-40-40-86-40 86-86 40 86 40 40 86Zm0-126Z"})})}function le({size:e=18}){return jsx("svg",{viewBox:"0 -960 960 960",width:e,height:e,fill:"currentColor","aria-hidden":"true",children:jsx("path",{d:"m256-200-56-56 224-224-224-224 56-56 224 224 224-224 56 56-224 224 224 224-56 56-224-224-224 224Z"})})}var ce=360,ue=280,de=600;function pe({title:e=y.agentPanel.defaultTitle,icon:t,closeLabel:l=y.agentPanel.close,resizeHandleLabel:c=y.agentPanel.resizeHandle,width:u,defaultWidth:d=ce,minWidth:p=ue,maxWidth:r=de,onWidthChange:f,onClose:g,children:x,className:i,closed:o=false}){let n=u!==void 0,[C,k]=useState(false),T=useRef(o);useEffect(()=>{if(T.current!==o){T.current=o,k(true);let m=window.setTimeout(()=>k(false),260);return ()=>window.clearTimeout(m)}},[o]);let[L,h]=useState(()=>{if(n)return u;if(typeof window>"u")return d;try{let m=window.localStorage.getItem(_);if(m){let S=Number(m);if(Number.isFinite(S)&&S>=p&&S<=r)return S}}catch{}return d}),E=n?u:L,v=useRef(null),B=useRef({minWidth:p,maxWidth:r,isControlled:n,onWidthChange:f});B.current={minWidth:p,maxWidth:r,isControlled:n,onWidthChange:f};let w=useRef(null);if(!w.current){let m=P=>{let D=v.current;if(!D)return;let I=B.current,q=D.startX-P.clientX,N=Math.min(I.maxWidth,Math.max(I.minWidth,D.startWidth+q));D.lastWidth=N,I.isControlled||h(N),I.onWidthChange?.(N);},S=()=>{let P=v.current;if(P&&(v.current=null,document.removeEventListener("pointermove",m),document.removeEventListener("pointerup",S),!B.current.isControlled))try{window.localStorage.setItem(_,String(P.lastWidth));}catch{}};w.current={move:m,up:S};}let Y=useCallback(m=>{m.preventDefault();let S=n?u:L;v.current={startX:m.clientX,startWidth:S,lastWidth:S},document.addEventListener("pointermove",w.current.move),document.addEventListener("pointerup",w.current.up);},[]);return useEffect(()=>()=>{let m=w.current;m&&(document.removeEventListener("pointermove",m.move),document.removeEventListener("pointerup",m.up));},[]),jsxs("div",{className:`ep-agent-panel${i?` ${i}`:""}`,style:{width:o?0:E,flex:o?"0 0 0px":`0 0 ${E}px`,height:"calc(100% - 16px)",margin:o?"8px 0 8px 0":"8px 8px 8px 12px",display:"flex",flexDirection:"column",background:"#ffffff",border:o?"1px solid transparent":"1px solid #e3e3e3",borderRadius:16,boxShadow:o?"none":"0 1px 2px rgba(60,64,67,0.05), 0 4px 12px rgba(60,64,67,0.08)",opacity:o?0:1,pointerEvents:o?"none":"auto",position:"relative",boxSizing:"border-box",minWidth:o?0:p,overflow:"hidden",fontFamily:"'Google Sans', 'Google Sans Text', system-ui, -apple-system, sans-serif",transition:C?"flex-basis 220ms cubic-bezier(0.4, 0, 0.2, 1), width 220ms cubic-bezier(0.4, 0, 0.2, 1), margin 220ms cubic-bezier(0.4, 0, 0.2, 1), opacity 180ms ease, box-shadow 220ms ease, border-color 220ms ease":"opacity 180ms ease, box-shadow 220ms ease, border-color 220ms ease"},"aria-hidden":o,"data-testid":"agent-panel","data-state":o?"closed":"open",role:"complementary","aria-label":e,children:[jsx("div",{role:"separator","aria-orientation":"vertical","aria-label":c,onPointerDown:Y,style:{position:"absolute",left:-3,top:0,bottom:0,width:6,cursor:"col-resize",touchAction:"none",zIndex:1},"data-testid":"agent-panel-resize-handle"}),jsxs("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"14px 16px 10px",flex:"0 0 auto",background:"#ffffff"},children:[jsx("span",{style:{display:"inline-flex",alignItems:"center",color:"#0b57d0"},children:t??jsx(ae,{size:22})}),jsx("span",{style:{flex:1,fontSize:15,fontWeight:500,color:"#1f1f1f",letterSpacing:.1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e}),g&&jsx("button",{type:"button",onClick:g,"aria-label":l,title:l,"data-testid":"agent-panel-close",style:{border:"none",background:"transparent",padding:6,cursor:"pointer",display:"inline-flex",alignItems:"center",justifyContent:"center",color:"#444746",borderRadius:999,transition:"background 0.15s"},onMouseEnter:m=>{m.currentTarget.style.background="#f1f3f4";},onMouseLeave:m=>{m.currentTarget.style.background="transparent";},children:jsx(le,{size:18})})]}),jsx("div",{style:{flex:1,minHeight:0,overflow:"hidden",display:"flex",flexDirection:"column"},children:x})]})}function ge(e){let t={},l=/(=\d+|\w+)\s*\{([^}]*)\}/g,c;for(;(c=l.exec(e))!==null;)t[c[1]]=c[2];return t}function F(e,t,l="en"){return t?e.replace(/\{(\w+),\s*plural,\s*((?:[^{}]|\{[^{}]*\})*)\}/g,(u,d,p)=>{let r=Number(t[d]);if(isNaN(r))return u;let f=ge(p),g=f[`=${r}`];if(g!==void 0)return g.replace(/#/g,String(r));let x;try{x=new Intl.PluralRules(l).select(r);}catch{x=r===1?"one":"other";}return (f[x]??f.other??"").replace(/#/g,String(r))}).replace(/\{(\w+)\}/g,(u,d)=>{let p=t[d];return p!==void 0?String(p):`{${d}}`}):e}function V(e){let t=e.replace(/_/g," ");return t.charAt(0).toUpperCase()+t.slice(1)}var xe=y.agentPanel.thinking,he=y.agentPanel.composerPlaceholder,be=y.agentPanel.send,ye=e=>F(y.agentPanel.timeline.working,{count:e}),Ae=e=>F(y.agentPanel.timeline.summary,{count:e}),Se=e=>F(y.agentPanel.timeline.earlier,{count:e}),j="ep-agent-chat-keyframes",Ce=`
|
|
2
2
|
@keyframes epAgentDot {
|
|
3
3
|
0%, 80%, 100% { transform: scale(0.6); opacity: 0.4; }
|
|
4
4
|
40% { transform: scale(1); opacity: 1; }
|
|
@@ -278,6 +278,19 @@ interface ParagraphFormatting {
|
|
|
278
278
|
/** List level (0-8) (w:ilvl) */
|
|
279
279
|
ilvl?: number;
|
|
280
280
|
};
|
|
281
|
+
/**
|
|
282
|
+
* When `numPr` was resolved from the paragraph STYLE's pPr rather than the
|
|
283
|
+
* paragraph's own `<w:numPr>`, this records the style-sourced value. The
|
|
284
|
+
* serializer omits `numPr` while it still equals this value — writing it as
|
|
285
|
+
* direct formatting would flip Word's indent precedence (a directly
|
|
286
|
+
* referenced level's indents beat the style's; a style-referenced level's
|
|
287
|
+
* do not) and break the document on save/reload. Cleared the moment the
|
|
288
|
+
* user changes the numbering (values diverge).
|
|
289
|
+
*/
|
|
290
|
+
numPrFromStyle?: {
|
|
291
|
+
numId?: number;
|
|
292
|
+
ilvl?: number;
|
|
293
|
+
};
|
|
281
294
|
/** Outline level 0-9 (w:outlineLvl) */
|
|
282
295
|
outlineLevel?: number;
|
|
283
296
|
/** Paragraph style ID (w:pStyle) */
|
|
@@ -483,7 +496,7 @@ interface TableCellFormatting {
|
|
|
483
496
|
/**
|
|
484
497
|
* Number format type
|
|
485
498
|
*/
|
|
486
|
-
type NumberFormat = 'decimal' | 'upperRoman' | 'lowerRoman' | 'upperLetter' | 'lowerLetter' | 'ordinal' | 'cardinalText' | 'ordinalText' | 'hex' | 'chicago' | 'ideographDigital' | 'japaneseCounting' | 'aiueo' | 'iroha' | 'decimalFullWidth' | 'decimalHalfWidth' | 'japaneseLegal' | 'japaneseDigitalTenThousand' | 'decimalEnclosedCircle' | 'decimalFullWidth2' | 'aiueoFullWidth' | 'irohaFullWidth' | 'decimalZero' | 'bullet' | 'ganada' | 'chosung' | 'decimalEnclosedFullstop' | 'decimalEnclosedParen' | 'decimalEnclosedCircleChinese' | 'ideographEnclosedCircle' | 'ideographTraditional' | 'ideographZodiac' | 'ideographZodiacTraditional' | 'taiwaneseCounting' | 'ideographLegalTraditional' | 'taiwaneseCountingThousand' | 'taiwaneseDigital' | 'chineseCounting' | 'chineseLegalSimplified' | 'chineseCountingThousand' | 'koreanDigital' | 'koreanCounting' | 'koreanLegal' | 'koreanDigital2' | 'vietnameseCounting' | 'russianLower' | 'russianUpper' | 'none' | 'numberInDash' | 'hebrew1' | 'hebrew2' | 'arabicAlpha' | 'arabicAbjad' | 'hindiVowels' | 'hindiConsonants' | 'hindiNumbers' | 'hindiCounting' | 'thaiLetters' | 'thaiNumbers' | 'thaiCounting';
|
|
499
|
+
type NumberFormat = 'decimal' | 'upperRoman' | 'lowerRoman' | 'upperLetter' | 'lowerLetter' | 'ordinal' | 'cardinalText' | 'ordinalText' | 'hex' | 'chicago' | 'ideographDigital' | 'japaneseCounting' | 'aiueo' | 'iroha' | 'decimalFullWidth' | 'decimalHalfWidth' | 'japaneseLegal' | 'japaneseDigitalTenThousand' | 'decimalEnclosedCircle' | 'decimalFullWidth2' | 'aiueoFullWidth' | 'irohaFullWidth' | 'decimalZero' | 'decimalZero3' | 'decimalZero4' | 'decimalZero5' | 'bullet' | 'ganada' | 'chosung' | 'decimalEnclosedFullstop' | 'decimalEnclosedParen' | 'decimalEnclosedCircleChinese' | 'ideographEnclosedCircle' | 'ideographTraditional' | 'ideographZodiac' | 'ideographZodiacTraditional' | 'taiwaneseCounting' | 'ideographLegalTraditional' | 'taiwaneseCountingThousand' | 'taiwaneseDigital' | 'chineseCounting' | 'chineseLegalSimplified' | 'chineseCountingThousand' | 'koreanDigital' | 'koreanCounting' | 'koreanLegal' | 'koreanDigital2' | 'vietnameseCounting' | 'russianLower' | 'russianUpper' | 'none' | 'numberInDash' | 'hebrew1' | 'hebrew2' | 'arabicAlpha' | 'arabicAbjad' | 'hindiVowels' | 'hindiConsonants' | 'hindiNumbers' | 'hindiCounting' | 'thaiLetters' | 'thaiNumbers' | 'thaiCounting';
|
|
487
500
|
/**
|
|
488
501
|
* Multi-level suffix (what follows the number)
|
|
489
502
|
*/
|
|
@@ -2343,12 +2356,10 @@ interface ReviewChange {
|
|
|
2343
2356
|
*/
|
|
2344
2357
|
paragraphIndex: number;
|
|
2345
2358
|
/**
|
|
2346
|
-
* Set when the change lives inside a footnote or endnote.
|
|
2347
|
-
*
|
|
2348
|
-
*
|
|
2349
|
-
*
|
|
2350
|
-
* raw `id` is not namespaced across parts, so pair it with `noteId` /
|
|
2351
|
-
* `noteType` to identify the change.
|
|
2359
|
+
* Set when the change lives inside a footnote or endnote. The raw `id` is not
|
|
2360
|
+
* namespaced across parts, so pair it with `noteId` / `noteType` to identify
|
|
2361
|
+
* the change, and pass the whole `ReviewChange` back to `acceptChange` /
|
|
2362
|
+
* `rejectChange` to resolve it inside that note.
|
|
2352
2363
|
*/
|
|
2353
2364
|
noteId?: number;
|
|
2354
2365
|
/** Which note store the change came from. Absent for body changes. */
|
|
@@ -2378,6 +2389,11 @@ interface ChangeFilter {
|
|
|
2378
2389
|
/** Also report tracked changes inside endnote bodies. Default: false. */
|
|
2379
2390
|
includeEndnotes?: boolean;
|
|
2380
2391
|
}
|
|
2392
|
+
/**
|
|
2393
|
+
* Options for `acceptAll` / `rejectAll`. Opt in to also resolve tracked changes
|
|
2394
|
+
* inside footnote/endnote bodies; mirrors the discovery flags on {@link ChangeFilter}.
|
|
2395
|
+
*/
|
|
2396
|
+
type AcceptChangesOptions = Pick<ChangeFilter, 'includeFootnotes' | 'includeEndnotes'>;
|
|
2381
2397
|
interface CommentFilter {
|
|
2382
2398
|
author?: string;
|
|
2383
2399
|
done?: boolean;
|
|
@@ -2496,6 +2512,17 @@ interface SetParagraphStyleOptions {
|
|
|
2496
2512
|
paraId: string;
|
|
2497
2513
|
styleId: string;
|
|
2498
2514
|
}
|
|
2515
|
+
/** Kind of break `insertBreak` inserts after a paragraph. */
|
|
2516
|
+
type BreakType = 'page' | 'sectionNextPage' | 'sectionContinuous';
|
|
2517
|
+
/**
|
|
2518
|
+
* Insert a page or section break after the paragraph identified by `paraId`.
|
|
2519
|
+
* `page` adds a page break; `sectionNextPage` starts a new section on a new
|
|
2520
|
+
* page; `sectionContinuous` starts a new section on the same page.
|
|
2521
|
+
*/
|
|
2522
|
+
interface InsertBreakOptions {
|
|
2523
|
+
paraId: string;
|
|
2524
|
+
type: BreakType;
|
|
2525
|
+
}
|
|
2499
2526
|
/** A single paragraph anchored on a page (returned by `getPage` / `getPages`). */
|
|
2500
2527
|
interface PageParagraph {
|
|
2501
2528
|
paraId: string;
|
|
@@ -2605,10 +2632,11 @@ declare class DocxReviewer {
|
|
|
2605
2632
|
* parts, so the same `id` can appear on a body change and a note change. Use
|
|
2606
2633
|
* `noteType` / `noteId` to disambiguate.
|
|
2607
2634
|
*
|
|
2608
|
-
*
|
|
2609
|
-
*
|
|
2610
|
-
*
|
|
2611
|
-
*
|
|
2635
|
+
* A returned change with `noteId`/`noteType` set can be accepted or rejected
|
|
2636
|
+
* by passing the whole {@link ReviewChange} back to {@link acceptChange} /
|
|
2637
|
+
* {@link rejectChange} (which resolves it inside its footnote/endnote), or in
|
|
2638
|
+
* bulk via {@link acceptAll} / {@link rejectAll} with the matching `include*`
|
|
2639
|
+
* option; the result persists on {@link toBuffer}.
|
|
2612
2640
|
*/
|
|
2613
2641
|
getChanges(filter?: ChangeFilter): ReviewChange[];
|
|
2614
2642
|
/** Get all comments with their replies. */
|
|
@@ -2658,42 +2686,28 @@ declare class DocxReviewer {
|
|
|
2658
2686
|
/** Delete text as a tracked change. */
|
|
2659
2687
|
proposeDeletion(options: ProposeDeletionOptions): void;
|
|
2660
2688
|
/**
|
|
2661
|
-
*
|
|
2689
|
+
* Accept a tracked change. Pass a revision id to accept a change in the
|
|
2690
|
+
* document body, or pass a {@link ReviewChange} from {@link getChanges} to
|
|
2691
|
+
* accept it wherever it lives — a change carrying `noteId`/`noteType` is
|
|
2692
|
+
* resolved inside that footnote/endnote and persists on {@link toBuffer}.
|
|
2662
2693
|
*
|
|
2663
|
-
* A
|
|
2664
|
-
*
|
|
2665
|
-
*
|
|
2666
|
-
*
|
|
2667
|
-
* closed with {@link NoteChangeNotEditableError} rather than mis-reporting it
|
|
2668
|
-
* as not-found — accept/reject cannot yet mutate note bodies.
|
|
2694
|
+
* A bare numeric id targets the body only: a `w:id` is unique only within its
|
|
2695
|
+
* part, so the same id can appear on a body change and a note change. To
|
|
2696
|
+
* resolve a note change pass the whole {@link ReviewChange} (its
|
|
2697
|
+
* `noteId`/`noteType` locate it); a bare id resolves to the body change, if any.
|
|
2669
2698
|
*/
|
|
2670
|
-
|
|
2699
|
+
acceptChange(target: number | ReviewChange): void;
|
|
2700
|
+
/** Reject a tracked change. See {@link acceptChange} for body-vs-note targeting. */
|
|
2701
|
+
rejectChange(target: number | ReviewChange): void;
|
|
2671
2702
|
/**
|
|
2672
|
-
* Accept
|
|
2673
|
-
*
|
|
2674
|
-
*
|
|
2675
|
-
* The public `id` is a `w:id`, which is unique only within its part, so the
|
|
2676
|
-
* same id may appear in the body and in a footnote/endnote. Resolution is
|
|
2677
|
-
* body-first: if a body change carries this id it is accepted and any
|
|
2678
|
-
* same-id note change is left untouched. If the id resolves *only* to a note
|
|
2679
|
-
* change, this throws {@link NoteChangeNotEditableError} (note bodies are not
|
|
2680
|
-
* yet mutable here). If it resolves to nothing, it throws
|
|
2681
|
-
* {@link ChangeNotFoundError}.
|
|
2682
|
-
*/
|
|
2683
|
-
acceptChange(id: number): void;
|
|
2684
|
-
/**
|
|
2685
|
-
* Reject a tracked change by its revision ID. Operates on the document body
|
|
2686
|
-
* only.
|
|
2687
|
-
*
|
|
2688
|
-
* Same resolution rules as {@link acceptChange}: body-first, throws
|
|
2689
|
-
* {@link NoteChangeNotEditableError} for a note-only id, and
|
|
2690
|
-
* {@link ChangeNotFoundError} when the id matches nothing.
|
|
2703
|
+
* Accept all tracked changes in the body. Pass `{ includeFootnotes,
|
|
2704
|
+
* includeEndnotes }` to also accept changes inside note bodies. Returns count.
|
|
2691
2705
|
*/
|
|
2692
|
-
|
|
2693
|
-
/**
|
|
2694
|
-
|
|
2695
|
-
/**
|
|
2696
|
-
|
|
2706
|
+
acceptAll(opts?: AcceptChangesOptions): number;
|
|
2707
|
+
/** Reject all tracked changes. See {@link acceptAll} for the note opt-in. */
|
|
2708
|
+
rejectAll(opts?: AcceptChangesOptions): number;
|
|
2709
|
+
/** The package's note stores, passed to change ops so note changes resolve. */
|
|
2710
|
+
private changeNotes;
|
|
2697
2711
|
/**
|
|
2698
2712
|
* Apply multiple review operations in one call.
|
|
2699
2713
|
* Uses the reviewer's default author. Individual failures are collected, not thrown.
|
|
@@ -2787,6 +2801,11 @@ interface EditorRefLike {
|
|
|
2787
2801
|
paraId: string;
|
|
2788
2802
|
styleId: string;
|
|
2789
2803
|
}): boolean;
|
|
2804
|
+
/** Insert a page or section break after the paragraph. Returns false if paraId is unknown. */
|
|
2805
|
+
insertBreak(options: {
|
|
2806
|
+
paraId: string;
|
|
2807
|
+
type: 'page' | 'sectionNextPage' | 'sectionContinuous';
|
|
2808
|
+
}): boolean;
|
|
2790
2809
|
/** Read a single page's paragraphs (1-indexed). Returns null if the page does not exist. */
|
|
2791
2810
|
getPageContent(pageNumber: number): PageContent | null;
|
|
2792
2811
|
/** Total number of pages currently rendered. */
|
|
@@ -2838,6 +2857,12 @@ interface EditorBridge {
|
|
|
2838
2857
|
* Direct edit, not a tracked change.
|
|
2839
2858
|
*/
|
|
2840
2859
|
setParagraphStyle(options: SetParagraphStyleOptions): boolean;
|
|
2860
|
+
/**
|
|
2861
|
+
* Insert a page or section break after a paragraph, by paraId. `page` adds a
|
|
2862
|
+
* page break; `sectionNextPage` / `sectionContinuous` start a new section on
|
|
2863
|
+
* a new page / the same page. Direct edit, not a tracked change.
|
|
2864
|
+
*/
|
|
2865
|
+
insertBreak(options: InsertBreakOptions): boolean;
|
|
2841
2866
|
/** Read a single page (1-indexed). Returns null if the page does not exist. */
|
|
2842
2867
|
getPage(pageNumber: number): PageContent | null;
|
|
2843
2868
|
/** Read a range of pages (1-indexed, inclusive). Out-of-range pages are skipped. */
|
|
@@ -278,6 +278,19 @@ interface ParagraphFormatting {
|
|
|
278
278
|
/** List level (0-8) (w:ilvl) */
|
|
279
279
|
ilvl?: number;
|
|
280
280
|
};
|
|
281
|
+
/**
|
|
282
|
+
* When `numPr` was resolved from the paragraph STYLE's pPr rather than the
|
|
283
|
+
* paragraph's own `<w:numPr>`, this records the style-sourced value. The
|
|
284
|
+
* serializer omits `numPr` while it still equals this value — writing it as
|
|
285
|
+
* direct formatting would flip Word's indent precedence (a directly
|
|
286
|
+
* referenced level's indents beat the style's; a style-referenced level's
|
|
287
|
+
* do not) and break the document on save/reload. Cleared the moment the
|
|
288
|
+
* user changes the numbering (values diverge).
|
|
289
|
+
*/
|
|
290
|
+
numPrFromStyle?: {
|
|
291
|
+
numId?: number;
|
|
292
|
+
ilvl?: number;
|
|
293
|
+
};
|
|
281
294
|
/** Outline level 0-9 (w:outlineLvl) */
|
|
282
295
|
outlineLevel?: number;
|
|
283
296
|
/** Paragraph style ID (w:pStyle) */
|
|
@@ -483,7 +496,7 @@ interface TableCellFormatting {
|
|
|
483
496
|
/**
|
|
484
497
|
* Number format type
|
|
485
498
|
*/
|
|
486
|
-
type NumberFormat = 'decimal' | 'upperRoman' | 'lowerRoman' | 'upperLetter' | 'lowerLetter' | 'ordinal' | 'cardinalText' | 'ordinalText' | 'hex' | 'chicago' | 'ideographDigital' | 'japaneseCounting' | 'aiueo' | 'iroha' | 'decimalFullWidth' | 'decimalHalfWidth' | 'japaneseLegal' | 'japaneseDigitalTenThousand' | 'decimalEnclosedCircle' | 'decimalFullWidth2' | 'aiueoFullWidth' | 'irohaFullWidth' | 'decimalZero' | 'bullet' | 'ganada' | 'chosung' | 'decimalEnclosedFullstop' | 'decimalEnclosedParen' | 'decimalEnclosedCircleChinese' | 'ideographEnclosedCircle' | 'ideographTraditional' | 'ideographZodiac' | 'ideographZodiacTraditional' | 'taiwaneseCounting' | 'ideographLegalTraditional' | 'taiwaneseCountingThousand' | 'taiwaneseDigital' | 'chineseCounting' | 'chineseLegalSimplified' | 'chineseCountingThousand' | 'koreanDigital' | 'koreanCounting' | 'koreanLegal' | 'koreanDigital2' | 'vietnameseCounting' | 'russianLower' | 'russianUpper' | 'none' | 'numberInDash' | 'hebrew1' | 'hebrew2' | 'arabicAlpha' | 'arabicAbjad' | 'hindiVowels' | 'hindiConsonants' | 'hindiNumbers' | 'hindiCounting' | 'thaiLetters' | 'thaiNumbers' | 'thaiCounting';
|
|
499
|
+
type NumberFormat = 'decimal' | 'upperRoman' | 'lowerRoman' | 'upperLetter' | 'lowerLetter' | 'ordinal' | 'cardinalText' | 'ordinalText' | 'hex' | 'chicago' | 'ideographDigital' | 'japaneseCounting' | 'aiueo' | 'iroha' | 'decimalFullWidth' | 'decimalHalfWidth' | 'japaneseLegal' | 'japaneseDigitalTenThousand' | 'decimalEnclosedCircle' | 'decimalFullWidth2' | 'aiueoFullWidth' | 'irohaFullWidth' | 'decimalZero' | 'decimalZero3' | 'decimalZero4' | 'decimalZero5' | 'bullet' | 'ganada' | 'chosung' | 'decimalEnclosedFullstop' | 'decimalEnclosedParen' | 'decimalEnclosedCircleChinese' | 'ideographEnclosedCircle' | 'ideographTraditional' | 'ideographZodiac' | 'ideographZodiacTraditional' | 'taiwaneseCounting' | 'ideographLegalTraditional' | 'taiwaneseCountingThousand' | 'taiwaneseDigital' | 'chineseCounting' | 'chineseLegalSimplified' | 'chineseCountingThousand' | 'koreanDigital' | 'koreanCounting' | 'koreanLegal' | 'koreanDigital2' | 'vietnameseCounting' | 'russianLower' | 'russianUpper' | 'none' | 'numberInDash' | 'hebrew1' | 'hebrew2' | 'arabicAlpha' | 'arabicAbjad' | 'hindiVowels' | 'hindiConsonants' | 'hindiNumbers' | 'hindiCounting' | 'thaiLetters' | 'thaiNumbers' | 'thaiCounting';
|
|
487
500
|
/**
|
|
488
501
|
* Multi-level suffix (what follows the number)
|
|
489
502
|
*/
|
|
@@ -2343,12 +2356,10 @@ interface ReviewChange {
|
|
|
2343
2356
|
*/
|
|
2344
2357
|
paragraphIndex: number;
|
|
2345
2358
|
/**
|
|
2346
|
-
* Set when the change lives inside a footnote or endnote.
|
|
2347
|
-
*
|
|
2348
|
-
*
|
|
2349
|
-
*
|
|
2350
|
-
* raw `id` is not namespaced across parts, so pair it with `noteId` /
|
|
2351
|
-
* `noteType` to identify the change.
|
|
2359
|
+
* Set when the change lives inside a footnote or endnote. The raw `id` is not
|
|
2360
|
+
* namespaced across parts, so pair it with `noteId` / `noteType` to identify
|
|
2361
|
+
* the change, and pass the whole `ReviewChange` back to `acceptChange` /
|
|
2362
|
+
* `rejectChange` to resolve it inside that note.
|
|
2352
2363
|
*/
|
|
2353
2364
|
noteId?: number;
|
|
2354
2365
|
/** Which note store the change came from. Absent for body changes. */
|
|
@@ -2378,6 +2389,11 @@ interface ChangeFilter {
|
|
|
2378
2389
|
/** Also report tracked changes inside endnote bodies. Default: false. */
|
|
2379
2390
|
includeEndnotes?: boolean;
|
|
2380
2391
|
}
|
|
2392
|
+
/**
|
|
2393
|
+
* Options for `acceptAll` / `rejectAll`. Opt in to also resolve tracked changes
|
|
2394
|
+
* inside footnote/endnote bodies; mirrors the discovery flags on {@link ChangeFilter}.
|
|
2395
|
+
*/
|
|
2396
|
+
type AcceptChangesOptions = Pick<ChangeFilter, 'includeFootnotes' | 'includeEndnotes'>;
|
|
2381
2397
|
interface CommentFilter {
|
|
2382
2398
|
author?: string;
|
|
2383
2399
|
done?: boolean;
|
|
@@ -2496,6 +2512,17 @@ interface SetParagraphStyleOptions {
|
|
|
2496
2512
|
paraId: string;
|
|
2497
2513
|
styleId: string;
|
|
2498
2514
|
}
|
|
2515
|
+
/** Kind of break `insertBreak` inserts after a paragraph. */
|
|
2516
|
+
type BreakType = 'page' | 'sectionNextPage' | 'sectionContinuous';
|
|
2517
|
+
/**
|
|
2518
|
+
* Insert a page or section break after the paragraph identified by `paraId`.
|
|
2519
|
+
* `page` adds a page break; `sectionNextPage` starts a new section on a new
|
|
2520
|
+
* page; `sectionContinuous` starts a new section on the same page.
|
|
2521
|
+
*/
|
|
2522
|
+
interface InsertBreakOptions {
|
|
2523
|
+
paraId: string;
|
|
2524
|
+
type: BreakType;
|
|
2525
|
+
}
|
|
2499
2526
|
/** A single paragraph anchored on a page (returned by `getPage` / `getPages`). */
|
|
2500
2527
|
interface PageParagraph {
|
|
2501
2528
|
paraId: string;
|
|
@@ -2605,10 +2632,11 @@ declare class DocxReviewer {
|
|
|
2605
2632
|
* parts, so the same `id` can appear on a body change and a note change. Use
|
|
2606
2633
|
* `noteType` / `noteId` to disambiguate.
|
|
2607
2634
|
*
|
|
2608
|
-
*
|
|
2609
|
-
*
|
|
2610
|
-
*
|
|
2611
|
-
*
|
|
2635
|
+
* A returned change with `noteId`/`noteType` set can be accepted or rejected
|
|
2636
|
+
* by passing the whole {@link ReviewChange} back to {@link acceptChange} /
|
|
2637
|
+
* {@link rejectChange} (which resolves it inside its footnote/endnote), or in
|
|
2638
|
+
* bulk via {@link acceptAll} / {@link rejectAll} with the matching `include*`
|
|
2639
|
+
* option; the result persists on {@link toBuffer}.
|
|
2612
2640
|
*/
|
|
2613
2641
|
getChanges(filter?: ChangeFilter): ReviewChange[];
|
|
2614
2642
|
/** Get all comments with their replies. */
|
|
@@ -2658,42 +2686,28 @@ declare class DocxReviewer {
|
|
|
2658
2686
|
/** Delete text as a tracked change. */
|
|
2659
2687
|
proposeDeletion(options: ProposeDeletionOptions): void;
|
|
2660
2688
|
/**
|
|
2661
|
-
*
|
|
2689
|
+
* Accept a tracked change. Pass a revision id to accept a change in the
|
|
2690
|
+
* document body, or pass a {@link ReviewChange} from {@link getChanges} to
|
|
2691
|
+
* accept it wherever it lives — a change carrying `noteId`/`noteType` is
|
|
2692
|
+
* resolved inside that footnote/endnote and persists on {@link toBuffer}.
|
|
2662
2693
|
*
|
|
2663
|
-
* A
|
|
2664
|
-
*
|
|
2665
|
-
*
|
|
2666
|
-
*
|
|
2667
|
-
* closed with {@link NoteChangeNotEditableError} rather than mis-reporting it
|
|
2668
|
-
* as not-found — accept/reject cannot yet mutate note bodies.
|
|
2694
|
+
* A bare numeric id targets the body only: a `w:id` is unique only within its
|
|
2695
|
+
* part, so the same id can appear on a body change and a note change. To
|
|
2696
|
+
* resolve a note change pass the whole {@link ReviewChange} (its
|
|
2697
|
+
* `noteId`/`noteType` locate it); a bare id resolves to the body change, if any.
|
|
2669
2698
|
*/
|
|
2670
|
-
|
|
2699
|
+
acceptChange(target: number | ReviewChange): void;
|
|
2700
|
+
/** Reject a tracked change. See {@link acceptChange} for body-vs-note targeting. */
|
|
2701
|
+
rejectChange(target: number | ReviewChange): void;
|
|
2671
2702
|
/**
|
|
2672
|
-
* Accept
|
|
2673
|
-
*
|
|
2674
|
-
*
|
|
2675
|
-
* The public `id` is a `w:id`, which is unique only within its part, so the
|
|
2676
|
-
* same id may appear in the body and in a footnote/endnote. Resolution is
|
|
2677
|
-
* body-first: if a body change carries this id it is accepted and any
|
|
2678
|
-
* same-id note change is left untouched. If the id resolves *only* to a note
|
|
2679
|
-
* change, this throws {@link NoteChangeNotEditableError} (note bodies are not
|
|
2680
|
-
* yet mutable here). If it resolves to nothing, it throws
|
|
2681
|
-
* {@link ChangeNotFoundError}.
|
|
2682
|
-
*/
|
|
2683
|
-
acceptChange(id: number): void;
|
|
2684
|
-
/**
|
|
2685
|
-
* Reject a tracked change by its revision ID. Operates on the document body
|
|
2686
|
-
* only.
|
|
2687
|
-
*
|
|
2688
|
-
* Same resolution rules as {@link acceptChange}: body-first, throws
|
|
2689
|
-
* {@link NoteChangeNotEditableError} for a note-only id, and
|
|
2690
|
-
* {@link ChangeNotFoundError} when the id matches nothing.
|
|
2703
|
+
* Accept all tracked changes in the body. Pass `{ includeFootnotes,
|
|
2704
|
+
* includeEndnotes }` to also accept changes inside note bodies. Returns count.
|
|
2691
2705
|
*/
|
|
2692
|
-
|
|
2693
|
-
/**
|
|
2694
|
-
|
|
2695
|
-
/**
|
|
2696
|
-
|
|
2706
|
+
acceptAll(opts?: AcceptChangesOptions): number;
|
|
2707
|
+
/** Reject all tracked changes. See {@link acceptAll} for the note opt-in. */
|
|
2708
|
+
rejectAll(opts?: AcceptChangesOptions): number;
|
|
2709
|
+
/** The package's note stores, passed to change ops so note changes resolve. */
|
|
2710
|
+
private changeNotes;
|
|
2697
2711
|
/**
|
|
2698
2712
|
* Apply multiple review operations in one call.
|
|
2699
2713
|
* Uses the reviewer's default author. Individual failures are collected, not thrown.
|
|
@@ -2787,6 +2801,11 @@ interface EditorRefLike {
|
|
|
2787
2801
|
paraId: string;
|
|
2788
2802
|
styleId: string;
|
|
2789
2803
|
}): boolean;
|
|
2804
|
+
/** Insert a page or section break after the paragraph. Returns false if paraId is unknown. */
|
|
2805
|
+
insertBreak(options: {
|
|
2806
|
+
paraId: string;
|
|
2807
|
+
type: 'page' | 'sectionNextPage' | 'sectionContinuous';
|
|
2808
|
+
}): boolean;
|
|
2790
2809
|
/** Read a single page's paragraphs (1-indexed). Returns null if the page does not exist. */
|
|
2791
2810
|
getPageContent(pageNumber: number): PageContent | null;
|
|
2792
2811
|
/** Total number of pages currently rendered. */
|
|
@@ -2838,6 +2857,12 @@ interface EditorBridge {
|
|
|
2838
2857
|
* Direct edit, not a tracked change.
|
|
2839
2858
|
*/
|
|
2840
2859
|
setParagraphStyle(options: SetParagraphStyleOptions): boolean;
|
|
2860
|
+
/**
|
|
2861
|
+
* Insert a page or section break after a paragraph, by paraId. `page` adds a
|
|
2862
|
+
* page break; `sectionNextPage` / `sectionContinuous` start a new section on
|
|
2863
|
+
* a new page / the same page. Direct edit, not a tracked change.
|
|
2864
|
+
*/
|
|
2865
|
+
insertBreak(options: InsertBreakOptions): boolean;
|
|
2841
2866
|
/** Read a single page (1-indexed). Returns null if the page does not exist. */
|
|
2842
2867
|
getPage(pageNumber: number): PageContent | null;
|
|
2843
2868
|
/** Read a range of pages (1-indexed, inclusive). Out-of-range pages are skipped. */
|
package/dist/server.d.mts
CHANGED
|
@@ -31,4 +31,4 @@
|
|
|
31
31
|
* @packageDocumentation
|
|
32
32
|
* @public
|
|
33
33
|
*/
|
|
34
|
-
export { s as AgentContextSnapshot, j as AgentToolDefinition, k as AgentToolResult, D as DocxReviewer, E as EditorBridge, S as SelectionInfo, o as createReviewerBridge, n as docxAgentTools, p as executeToolCall, t as getToolDisplayName, q as getToolSchemas } from './server-
|
|
34
|
+
export { s as AgentContextSnapshot, j as AgentToolDefinition, k as AgentToolResult, D as DocxReviewer, E as EditorBridge, S as SelectionInfo, o as createReviewerBridge, n as docxAgentTools, p as executeToolCall, t as getToolDisplayName, q as getToolSchemas } from './server-DP8QoY84.mjs';
|
package/dist/server.d.ts
CHANGED
|
@@ -31,4 +31,4 @@
|
|
|
31
31
|
* @packageDocumentation
|
|
32
32
|
* @public
|
|
33
33
|
*/
|
|
34
|
-
export { s as AgentContextSnapshot, j as AgentToolDefinition, k as AgentToolResult, D as DocxReviewer, E as EditorBridge, S as SelectionInfo, o as createReviewerBridge, n as docxAgentTools, p as executeToolCall, t as getToolDisplayName, q as getToolSchemas } from './server-
|
|
34
|
+
export { s as AgentContextSnapshot, j as AgentToolDefinition, k as AgentToolResult, D as DocxReviewer, E as EditorBridge, S as SelectionInfo, o as createReviewerBridge, n as docxAgentTools, p as executeToolCall, t as getToolDisplayName, q as getToolSchemas } from './server-DP8QoY84.js';
|
package/dist/server.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var chunkVAQTAQZG_js=require('./chunk-VAQTAQZG.js'),chunkYU3OJ2DE_js=require('./chunk-YU3OJ2DE.js'),chunkAO5SO6ZS_js=require('./chunk-AO5SO6ZS.js');Object.defineProperty(exports,"DocxReviewer",{enumerable:true,get:function(){return chunkVAQTAQZG_js.a}});Object.defineProperty(exports,"createReviewerBridge",{enumerable:true,get:function(){return chunkYU3OJ2DE_js.n}});Object.defineProperty(exports,"docxAgentTools",{enumerable:true,get:function(){return chunkAO5SO6ZS_js.a}});Object.defineProperty(exports,"executeToolCall",{enumerable:true,get:function(){return chunkAO5SO6ZS_js.b}});Object.defineProperty(exports,"getToolDisplayName",{enumerable:true,get:function(){return chunkAO5SO6ZS_js.c}});Object.defineProperty(exports,"getToolSchemas",{enumerable:true,get:function(){return chunkAO5SO6ZS_js.d}});
|
package/dist/server.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{a as DocxReviewer}from'./chunk-
|
|
1
|
+
export{a as DocxReviewer}from'./chunk-CGBO6ID5.mjs';export{n as createReviewerBridge}from'./chunk-J773ZJGL.mjs';export{a as docxAgentTools,b as executeToolCall,c as getToolDisplayName,d as getToolSchemas}from'./chunk-MSKW7E36.mjs';
|