@xenosystem/agent-sdk 0.10.16 → 0.10.17
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/artifacts/index.cjs +1 -1
- package/dist/artifacts/index.js +1 -1
- package/dist/automation/index.cjs +1 -1
- package/dist/automation/index.d.cts +11 -1
- package/dist/automation/index.d.ts +11 -1
- package/dist/automation/index.js +1 -1
- package/dist/control-plane/index.cjs +1 -1
- package/dist/control-plane/index.js +1 -1
- package/dist/electron/index.cjs +174 -174
- package/dist/electron/index.d.cts +24 -3
- package/dist/electron/index.d.ts +24 -3
- package/dist/electron/index.js +174 -174
- package/dist/electron/metafile-cjs.json +1 -1
- package/dist/electron/metafile-esm.json +1 -1
- package/dist/governance/index.d.cts +10 -1
- package/dist/governance/index.d.ts +10 -1
- package/dist/hosted/index.cjs +1 -1
- package/dist/hosted/index.js +1 -1
- package/dist/hosted/metafile-cjs.json +1 -1
- package/dist/hosted/metafile-esm.json +1 -1
- package/dist/index.cjs +347 -347
- package/dist/index.d.cts +78 -5
- package/dist/index.d.ts +78 -5
- package/dist/index.js +347 -347
- package/dist/mcp/index.d.cts +11 -1
- package/dist/mcp/index.d.ts +11 -1
- package/dist/metafile-cjs.json +1 -1
- package/dist/metafile-esm.json +1 -1
- package/dist/providers/index.d.cts +1 -0
- package/dist/providers/index.d.ts +1 -0
- package/dist/session/index.cjs +16 -16
- package/dist/session/index.d.cts +10 -1
- package/dist/session/index.d.ts +10 -1
- package/dist/session/index.js +14 -14
- package/dist/session/metafile-cjs.json +1 -1
- package/dist/session/metafile-esm.json +1 -1
- package/dist/skills/index.d.cts +11 -1
- package/dist/skills/index.d.ts +11 -1
- package/dist/ui/index.cjs +3 -3
- package/dist/ui/index.d.cts +10 -1
- package/dist/ui/index.d.ts +10 -1
- package/dist/ui/index.js +3 -3
- package/dist/ui/metafile-cjs.json +1 -1
- package/dist/ui/metafile-esm.json +1 -1
- package/dist/utils/index.d.cts +10 -1
- package/dist/utils/index.d.ts +10 -1
- package/package.json +1 -1
package/dist/ui/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var G=Object.defineProperty;var Z=Object.getOwnPropertyDescriptor;var ee=Object.getOwnPropertyNames;var te=Object.prototype.hasOwnProperty;var ne=(n,t)=>{for(var i in t)G(n,i,{get:t[i],enumerable:!0})},oe=(n,t,i,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of ee(t))!te.call(n,r)&&r!==i&&G(n,r,{get:()=>t[r],enumerable:!(e=Z(t,r))||e.enumerable});return n};var ie=n=>oe(G({},"__esModule",{value:!0}),n);var ve={};ne(ve,{XENO_UI_RENDERER_API_VERSION:()=>L,createAgentUiController:()=>B,createAgentUiView:()=>z,dispatchAgentUiAction:()=>S,isSafeMarkdownHref:()=>q,mountAgentUi:()=>Y,parseMarkdown:()=>V,xenoUiCss:()=>H,xenoUiTokens:()=>K});module.exports=ie(ve);var re={View:"Read",Replace:"Write",GlobTool:"Glob",GrepTool:"Grep",SQLiteAnalyze:"SqliteAnalyze",ReadNotebook:"NotebookRead",NotebookEditCell:"NotebookEdit",CoordinationSend:"Send",CoordinationQuery:"Receive"};function se(n){return re[n]??n}var ae=new Set(["Read","Glob","Grep","LS","MemoryRead","Think","dispatch_agent","ElfAnalyze","Receive","ListAgents","ListSessions","CoordinationQuery"]),le=new Set(["Write","Edit","Patch","MemoryWrite","Send","CoordinationSend"]),ce=new Set(["Bash"]);function F(n){let t=se(n);return ce.has(t)?"high":ae.has(t)?"low":(le.has(t),"medium")}var L=1;function de(n){let t=n.config;return t&&typeof t=="object"?t:null}function X(n){let t=n.tokenUsage;return{input:Number(t.input)||0,output:Number(t.output)||0,total:Number(t.total)||0}}function ue(n){let t=n.toLowerCase();return["rate limit","429","network","timeout","econnrefused","api error","unreachable"].some(i=>t.includes(i))}function B(n){let t=n.agent,i=n.now??Date.now,e=0,r=n.createId??(()=>`xeno-ui-${i()}-${++e}`),m=new Set,g=[],A="idle",R=X(t),_=null,u=null,k=null,h=null,d="",w=null,N=0,E=!1,b=!1,O=0,p=de(t),U=p?.permissionEngine,$=U?.promptFn;function C(){return Object.freeze({apiVersion:1,revision:O,items:Object.freeze([...g]),isProcessing:E,status:A,tokenUsage:Object.freeze({...R}),permissionRequest:_?Object.freeze({..._}):null,lastUserMessage:k})}function y(){O+=1;let s=C();for(let l of[...m])l(s)}function P(s){g=[...g,s],y()}function D(s){let l=[...g];for(let x=l.length-1;x>=0;x-=1){let a=l[x];if(a?.type==="message"&&a.data.role==="assistant"){l[x]={type:"message",data:s(a.data)},g=l,y();return}}}function j(s,l){let x=[...g];for(let a=x.length-1;a>=0;a-=1){let c=x[a];if(c?.type==="tool_call"&&c.data.id===s){x[a]={type:"tool_call",data:l(c.data)},g=x,y();return}}}function o(){h&&(D(s=>({...s,isStreaming:!1})),h=null,d="")}function T(s){let l={id:r(),message:s,retryable:ue(s),timestamp:i()};P({type:"error",data:l})}function f(s){p&&(p.onText=s.onText,p.onToolStart=s.onToolStart,p.onToolEnd=s.onToolEnd,p.onError=s.onError)}async function I(s){let l=s.trim();if(b||E||!l)return!1;E=!0,k=l,A="thinking",h=null,d="";let x={id:r(),role:"user",content:l,timestamp:i()};g=[...g,{type:"message",data:x}],y();let a={onText:p?.onText,onToolStart:p?.onToolStart,onToolEnd:p?.onToolEnd,onError:p?.onError};p&&(p.onText=c=>{a.onText?.(c),!b&&(d+=c,h?D(v=>({...v,content:d,isStreaming:!0})):(h=r(),P({type:"message",data:{id:h,role:"assistant",content:d,timestamp:i(),isStreaming:!0}})))},p.onToolStart=(c,v)=>{a.onToolStart?.(c,v),!b&&(o(),A="executing",w=r(),N=i(),P({type:"tool_call",data:{id:w,toolName:c,input:v,status:"running",timestamp:i()}}))},p.onToolEnd=(c,v)=>{a.onToolEnd?.(c,v),!b&&(w&&(j(w,J=>({...J,status:v.success?"success":"error",result:v,durationMs:Math.max(0,i()-N)})),w=null),A="thinking",y())},p.onError=(c,v)=>a.onError?.(c,v));try{await t.run(l),b||(o(),A="idle",R=X(t),y())}catch(c){if(!b){o();let v=c instanceof Error?c:new Error(String(c));A=v.name==="AgentInterruptedError"?"idle":"error",v.name!=="AgentInterruptedError"&&T(v.message),R=X(t),y()}}finally{E=!1,f(a),b||y()}return!0}return n.enablePermissionRequests&&U&&(U.promptFn=s=>(u&&u("deny"),new Promise(l=>{u=l,_={id:r(),toolName:s.toolName,detail:s.detail,description:s.description,operation:s.operation,preview:s.preview,riskLevel:F(s.toolName),timestamp:i(),...s.oneTime?{oneTime:!0}:{},...s.elevation?{elevation:{network:s.elevation.network,directories:[...s.elevation.directories],justification:s.elevation.justification}}:{}},y()}))),{apiVersion:1,getSnapshot:C,subscribe(s){if(b)throw new Error("Agent UI controller is disposed");return m.add(s),s(C()),()=>m.delete(s)},sendMessage:I,cancelExecution(){!b&&E&&t.cancelCurrentTurn()},clearMessages(){b||(g=[],h=null,d="",y())},retryLastMessage(){return b||E||!k?Promise.resolve(!1):(g=g.filter((s,l,x)=>s.type!=="error"?!0:x.slice(l+1).some(a=>a.type!=="error")),A="idle",y(),I(k))},resolvePermission(s,l){if(b||!_||_.id!==s||!u)return!1;_.oneTime&&l==="always"&&(l="allow");let x=u;return u=null,_=null,y(),x(l),!0},dispose(){b||(b=!0,u&&u("deny"),u=null,_=null,U&&(U.promptFn=$),m.clear())}}}function me(n){let t=[],i=[[/```([\w-]*)\n([\s\S]*?)```/,e=>({kind:"code-block",language:e[1]??"",code:e[2]??""})],[/`([^`\n]+)`/,e=>({kind:"inline-code",code:e[1]??""})],[/\*\*(.+?)\*\*/,e=>({kind:"strong",text:e[1]??""})],[/\*([^*\n]+)\*/,e=>({kind:"emphasis",text:e[1]??""})],[/\[([^\]]+)\]\(([^)\s]+)\)/,e=>({kind:"link",text:e[1]??"",href:e[2]??""})]];for(let[e,r]of i){let m=n.match(e);m?.index!==void 0&&t.push({index:m.index,value:r(m),length:m[0].length})}return t.sort((e,r)=>e.index-r.index),t[0]??null}function V(n){let t=[],i=n;for(;i;){let e=me(i);if(!e){t.push({kind:"text",text:i});break}e.index>0&&t.push({kind:"text",text:i.slice(0,e.index)}),t.push(e.value),i=i.slice(e.index+e.length)}return t}function q(n){try{let t=new URL(n,"https://xeno.invalid/");return t.protocol==="https:"||t.protocol==="http:"||t.protocol==="mailto:"}catch{return!1}}var K=Object.freeze({background:"#101214",surface:"#181b1f",surfaceRaised:"#20242a",border:"#343a42",text:"#f2f4f7",textMuted:"#aab2bd",accent:"#5da9e9",success:"#56b881",warning:"#e7b65a",danger:"#e57373",focus:"#8bc5f4"}),H=`
|
|
2
2
|
.xeno-ui{box-sizing:border-box;display:grid;grid-template-rows:auto minmax(12rem,1fr) auto;width:min(32rem,100%);height:min(44rem,100%);min-height:24rem;border:1px solid var(--xeno-border,#343a42);background:var(--xeno-bg,#101214);color:var(--xeno-text,#f2f4f7);font:14px/1.45 ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;letter-spacing:0}
|
|
3
3
|
.xeno-ui *{box-sizing:border-box;letter-spacing:0}
|
|
4
4
|
.xeno-ui__header{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid var(--xeno-border,#343a42);background:var(--xeno-surface,#181b1f)}
|
|
@@ -31,5 +31,5 @@
|
|
|
31
31
|
.xeno-ui :focus-visible{outline:2px solid var(--xeno-focus,#8bc5f4);outline-offset:2px}
|
|
32
32
|
@media (max-width:36rem){.xeno-ui{width:100%;height:100%;border-left:0;border-right:0}.xeno-ui__entry--user,.xeno-ui__entry--assistant{margin-left:0;margin-right:0}.xeno-ui__composer{grid-template-columns:1fr}.xeno-ui__controls{justify-content:flex-end}}
|
|
33
33
|
@media (prefers-reduced-motion:reduce){.xeno-ui *{scroll-behavior:auto!important;transition:none!important}}
|
|
34
|
-
`;var
|
|
35
|
-
[truncated]`}function ge(n){if(n.type==="message"){let t=n.data.role==="assistant";return{key:n.data.id,kind:t?"assistant-message":"user-message",role:"article",accessibleName:t?"Assistant message":"Your message",text:n.data.content,streaming:n.data.isStreaming}}if(n.type==="tool_call"){let t=n.data.durationMs===void 0?"":` in ${n.data.durationMs} ms`;return{key:n.data.id,kind:"tool-call",role:"status",accessibleName:`${n.data.toolName} tool ${n.data.status}`,text:`${n.data.toolName}: ${n.data.status}${t}`,detail:pe({input:n.data.input,result:n.data.result}),state:n.data.status}}return{key:n.data.id,kind:"error",role:"alert",accessibleName:"Agent error",text:n.data.message,retryable:n.data.retryable}}function fe(n){return[...n.network?["Extra access: network"]:[],...n.directories.map(t=>`Extra access: directory ${t}`),`Justification: ${n.justification.replace(/\s+/g," ").trim()}`]}function z(n,t={}){let i=t.agentName?.trim()||"Xeno Agent",e=n.permissionRequest;return{apiVersion:1,revision:n.revision,region:{role:"region",accessibleName:t.regionLabel?.trim()||`${i} chat`},header:{title:i,statusRole:"status",statusText:n.status,tokenText:`${n.tokenUsage.total.toLocaleString()} tokens`},timeline:{role:"log",live:"polite",busy:n.isProcessing,entries:n.items.map(ge)},permission:e?{role:"alertdialog",accessibleName:`Permission required for ${e.toolName}`,description:e.description||e.detail,riskLevel:e.riskLevel,requestId:e.id,...e.elevation?{elevationLines:fe(e.elevation)}:{},controls:e.oneTime?[{label:"Allow for this call only",decision:"allow"},{label:"Deny",decision:"deny"}]:[{label:"Allow once",decision:"allow"},{label:"Always allow",decision:"always"},{label:"Deny",decision:"deny"}]}:null,composer:{role:"form",inputLabel:t.inputLabel?.trim()||"Message Xeno Agent",placeholder:t.inputPlaceholder?.trim()||"Message or command...",disabled:n.isProcessing,sendLabel:"Send",cancelLabel:"Cancel"}}}async function S(n,t){switch(t.type){case"send":return n.sendMessage(t.text);case"cancel":return n.cancelExecution(),!0;case"clear":return n.clearMessages(),!0;case"retry":return n.retryLastMessage();case"permission":return n.resolvePermission(t.requestId,t.decision)}}var
|
|
34
|
+
`;var W=64*1024;function pe(n){let t;try{t=JSON.stringify(n,null,2)??String(n)}catch{t="[Unserializable value]"}return t.length<=W?t:`${t.slice(0,W)}
|
|
35
|
+
[truncated]`}function ge(n){if(n.type==="message"){let t=n.data.role==="assistant";return{key:n.data.id,kind:t?"assistant-message":"user-message",role:"article",accessibleName:t?"Assistant message":"Your message",text:n.data.content,streaming:n.data.isStreaming}}if(n.type==="tool_call"){let t=n.data.durationMs===void 0?"":` in ${n.data.durationMs} ms`;return{key:n.data.id,kind:"tool-call",role:"status",accessibleName:`${n.data.toolName} tool ${n.data.status}`,text:`${n.data.toolName}: ${n.data.status}${t}`,detail:pe({input:n.data.input,result:n.data.result}),state:n.data.status}}return{key:n.data.id,kind:"error",role:"alert",accessibleName:"Agent error",text:n.data.message,retryable:n.data.retryable}}function fe(n){return[...n.network?["Extra access: network"]:[],...n.directories.map(t=>`Extra access: directory ${t}`),`Justification: ${n.justification.replace(/\s+/g," ").trim()}`]}function z(n,t={}){let i=t.agentName?.trim()||"Xeno Agent",e=n.permissionRequest;return{apiVersion:1,revision:n.revision,region:{role:"region",accessibleName:t.regionLabel?.trim()||`${i} chat`},header:{title:i,statusRole:"status",statusText:n.status,tokenText:`${n.tokenUsage.total.toLocaleString()} tokens`},timeline:{role:"log",live:"polite",busy:n.isProcessing,entries:n.items.map(ge)},permission:e?{role:"alertdialog",accessibleName:`Permission required for ${e.toolName}`,description:e.description||e.detail,riskLevel:e.riskLevel,requestId:e.id,...e.elevation?{elevationLines:fe(e.elevation)}:{},controls:e.oneTime?[{label:"Allow for this call only",decision:"allow"},{label:"Deny",decision:"deny"}]:[{label:"Allow once",decision:"allow"},{label:"Always allow",decision:"always"},{label:"Deny",decision:"deny"}]}:null,composer:{role:"form",inputLabel:t.inputLabel?.trim()||"Message Xeno Agent",placeholder:t.inputPlaceholder?.trim()||"Message or command...",disabled:n.isProcessing,sendLabel:"Send",cancelLabel:"Cancel"}}}async function S(n,t){switch(t.type){case"send":return n.sendMessage(t.text);case"cancel":return n.cancelExecution(),!0;case"clear":return n.clearMessages(),!0;case"retry":return n.retryLastMessage();case"permission":return n.resolvePermission(t.requestId,t.decision)}}var Q="xeno-owned-agent-ui-v1";function xe(n,t,i){for(let e of V(i)){if(e.kind==="text"){t.append(n.createTextNode(e.text));continue}if(e.kind==="code-block"){let r=n.createElement("pre"),m=n.createElement("code");e.language&&(m.dataset.language=e.language),m.textContent=e.code,r.append(m),t.append(r);continue}if(e.kind==="inline-code"){let r=n.createElement("code");r.textContent=e.code,t.append(r);continue}if(e.kind==="strong"||e.kind==="emphasis"){let r=n.createElement(e.kind==="strong"?"strong":"em");r.textContent=e.text,t.append(r);continue}if(e.kind==="link"){if(!q(e.href)){t.append(n.createTextNode(e.text));continue}let r=n.createElement("a");r.textContent=e.text,r.href=e.href,r.rel="noopener noreferrer",(r.protocol==="http:"||r.protocol==="https:")&&(r.target="_blank"),t.append(r)}}}function M(n,t,i=""){let e=n.createElement("button");return e.type="button",e.className=`xeno-ui__button${i?` ${i}`:""}`,e.textContent=t,e}function be(n,t,i){let e=n.createElement(t.role==="article"?"article":"div");if(e.className=`xeno-ui__entry xeno-ui__entry--${t.kind==="user-message"?"user":t.kind==="assistant-message"?"assistant":t.kind==="tool-call"?"tool":"error"}`,e.setAttribute("role",t.role),e.setAttribute("aria-label",t.accessibleName),e.dataset.xenoKey=t.key,t.streaming&&e.setAttribute("aria-busy","true"),xe(n,e,t.text),t.detail){let r=n.createElement("details");r.className="xeno-ui__details";let m=n.createElement("summary");m.textContent="Details";let g=n.createElement("pre");g.textContent=t.detail,r.append(m,g),e.append(r)}if(t.retryable){let r=M(n,"Retry");r.addEventListener("click",()=>{S(i,{type:"retry"})}),e.append(n.createTextNode(" "),r)}return e}function ye(n,t){if(n.getElementById(Q))return;let i=n.createElement("style");i.id=Q,t&&(i.nonce=t),i.textContent=H,n.head.append(i)}function Y(n,t,i={}){let e=n.ownerDocument;i.injectStyles!==!1&&ye(e,i.styleNonce);let r=e.createElement("section");r.className=`xeno-ui${i.className?` ${i.className}`:""}`;let m=e.createElement("header");m.className="xeno-ui__header";let g=e.createElement("h2");g.className="xeno-ui__title";let A=e.createElement("span");A.className="xeno-ui__status",A.setAttribute("role","status"),A.setAttribute("aria-live","polite");let R=e.createElement("span");R.className="xeno-ui__tokens";let _=M(e,"Clear");if(_.setAttribute("aria-label","Clear conversation"),_.addEventListener("click",()=>{S(t,{type:"clear"})}),m.append(g,A,R,_),i.onClose){let o=M(e,"X");o.setAttribute("aria-label","Close agent chat"),o.addEventListener("click",i.onClose),m.append(o)}let u=e.createElement("div");u.className="xeno-ui__timeline",u.setAttribute("role","log"),u.setAttribute("aria-live","polite"),u.setAttribute("aria-relevant","additions text");let k=e.createElement("div"),h=e.createElement("form");h.className="xeno-ui__composer",h.setAttribute("role","form");let d=e.createElement("textarea");d.className="xeno-ui__input",d.rows=1;let w=e.createElement("div");w.className="xeno-ui__controls";let N=M(e,"Cancel","xeno-ui__button--danger");N.addEventListener("click",()=>{S(t,{type:"cancel"})});let E=M(e,"Send","xeno-ui__button--primary");E.type="submit",w.append(N,E),h.append(d,w),r.append(m,u,k,h),n.replaceChildren(r);function b(){d.style.height="auto";let o=44,T=144,f=Math.max(d.scrollHeight,o);d.style.height=`${Math.min(f,T)}px`,d.style.overflowY=f>T?"auto":"hidden"}async function O(){let o=d.value;await S(t,{type:"send",text:o})&&(d.value="",b())}h.addEventListener("submit",o=>{o.preventDefault(),O()}),d.addEventListener("keydown",o=>{o.key==="Enter"&&(o.ctrlKey||o.metaKey)&&(o.preventDefault(),O())}),d.addEventListener("input",b);let p=null,U=null;function $(o){if(o.permission&&p===o.permission.requestId&&k.children.length>0)return;if(k.replaceChildren(),!o.permission){if(p){let a=U??d;queueMicrotask(()=>a.focus())}p=null,U=null;return}let T=p!==o.permission.requestId;if(T){let a=e.activeElement;U=a&&"focus"in a?a:d,p=o.permission.requestId}let f=e.createElement("section");f.className="xeno-ui__permission",f.setAttribute("role",o.permission.role),f.setAttribute("aria-modal","true"),f.setAttribute("aria-label",o.permission.accessibleName),f.dataset.risk=o.permission.riskLevel;let I=e.createElement("h3");I.className="xeno-ui__permission-title",I.textContent=o.permission.accessibleName;let s=e.createElement("div");s.id=`xeno-ui-permission-${o.permission.requestId}`,s.textContent=o.permission.description,f.setAttribute("aria-describedby",s.id);for(let a of o.permission.elevationLines??[]){let c=e.createElement("div");c.className="xeno-ui__permission-elevation",c.textContent=a,s.append(e.createElement("br"),c)}let l=e.createElement("div");l.className="xeno-ui__permission-actions";let x=null;for(let a of o.permission.controls){let c=M(e,a.label,a.decision==="deny"?"xeno-ui__button--danger":"");c.dataset.decision=a.decision,x??=c,c.addEventListener("click",()=>{S(t,{type:"permission",requestId:o.permission.requestId,decision:a.decision})}),l.append(c)}f.append(I,s,l),k.append(f),T&&x&&queueMicrotask(()=>x?.focus())}function C(){let o=z(t.getSnapshot(),i);r.setAttribute("role",o.region.role),r.setAttribute("aria-label",o.region.accessibleName),g.textContent=o.header.title,A.textContent=o.header.statusText,R.textContent=o.header.tokenText,u.setAttribute("aria-busy",String(o.timeline.busy));let T=u.scrollHeight-u.scrollTop-u.clientHeight;if(o.timeline.entries.length===0){let f=e.createElement("div");f.className="xeno-ui__empty",f.textContent="No messages yet",u.replaceChildren(f)}else u.replaceChildren(...o.timeline.entries.map(f=>be(e,f,t)));T<48&&(u.scrollTop=u.scrollHeight),$(o),d.disabled=o.composer.disabled,d.setAttribute("aria-label",o.composer.inputLabel),d.placeholder=o.composer.placeholder,E.textContent=o.composer.sendLabel,E.disabled=o.composer.disabled,N.textContent=o.composer.cancelLabel,N.hidden=!o.timeline.busy}let y=null,P=!1;function D(){let o=e.defaultView?.requestAnimationFrame;if(o){if(y!==null)return;y=o.call(e.defaultView,()=>{y=null,C()});return}P||(P=!0,queueMicrotask(()=>{P=!1,C()}))}let j=t.subscribe(D);return C(),b(),{element:r,render:C,focusInput(){d.focus()},dispose(){j(),y!==null&&e.defaultView?.cancelAnimationFrame&&e.defaultView.cancelAnimationFrame(y),r.remove()}}}0&&(module.exports={XENO_UI_RENDERER_API_VERSION,createAgentUiController,createAgentUiView,dispatchAgentUiAction,isSafeMarkdownHref,mountAgentUi,parseMarkdown,xenoUiCss,xenoUiTokens});
|
package/dist/ui/index.d.cts
CHANGED
|
@@ -42,7 +42,16 @@ interface ResourceContentBlock {
|
|
|
42
42
|
data?: string;
|
|
43
43
|
}
|
|
44
44
|
type ToolAssistantContentBlock = TextBlock | ImageUrlBlock | ResourceContentBlock;
|
|
45
|
-
|
|
45
|
+
declare const TOOL_OPERATION_TERMINAL_STATES: readonly [
|
|
46
|
+
"completed",
|
|
47
|
+
"failed",
|
|
48
|
+
"timed_out",
|
|
49
|
+
"cancelled",
|
|
50
|
+
"outcome_unknown",
|
|
51
|
+
"orphaned"
|
|
52
|
+
];
|
|
53
|
+
type ToolOperationTerminalState = (typeof TOOL_OPERATION_TERMINAL_STATES)[number];
|
|
54
|
+
type ToolOperationState = "registered" | "starting" | "running_foreground" | "running_background" | "waiting_for_input" | "stalled" | "verifying" | ToolOperationTerminalState;
|
|
46
55
|
type ToolCompletionPolicy = "await" | "observe" | "detach";
|
|
47
56
|
interface ExpectedOutputContract {
|
|
48
57
|
path: string;
|
package/dist/ui/index.d.ts
CHANGED
|
@@ -42,7 +42,16 @@ interface ResourceContentBlock {
|
|
|
42
42
|
data?: string;
|
|
43
43
|
}
|
|
44
44
|
type ToolAssistantContentBlock = TextBlock | ImageUrlBlock | ResourceContentBlock;
|
|
45
|
-
|
|
45
|
+
declare const TOOL_OPERATION_TERMINAL_STATES: readonly [
|
|
46
|
+
"completed",
|
|
47
|
+
"failed",
|
|
48
|
+
"timed_out",
|
|
49
|
+
"cancelled",
|
|
50
|
+
"outcome_unknown",
|
|
51
|
+
"orphaned"
|
|
52
|
+
];
|
|
53
|
+
type ToolOperationTerminalState = (typeof TOOL_OPERATION_TERMINAL_STATES)[number];
|
|
54
|
+
type ToolOperationState = "registered" | "starting" | "running_foreground" | "running_background" | "waiting_for_input" | "stalled" | "verifying" | ToolOperationTerminalState;
|
|
46
55
|
type ToolCompletionPolicy = "await" | "observe" | "detach";
|
|
47
56
|
interface ExpectedOutputContract {
|
|
48
57
|
path: string;
|
package/dist/ui/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var
|
|
1
|
+
var W={View:"Read",Replace:"Write",GlobTool:"Glob",GrepTool:"Grep",SQLiteAnalyze:"SqliteAnalyze",ReadNotebook:"NotebookRead",NotebookEditCell:"NotebookEdit",CoordinationSend:"Send",CoordinationQuery:"Receive"};function Q(n){return W[n]??n}var Y=new Set(["Read","Glob","Grep","LS","MemoryRead","Think","dispatch_agent","ElfAnalyze","Receive","ListAgents","ListSessions","CoordinationQuery"]),J=new Set(["Write","Edit","Patch","MemoryWrite","Send","CoordinationSend"]),Z=new Set(["Bash"]);function X(n){let t=Q(n);return Z.has(t)?"high":Y.has(t)?"low":(J.has(t),"medium")}var I=1;function ee(n){let t=n.config;return t&&typeof t=="object"?t:null}function H(n){let t=n.tokenUsage;return{input:Number(t.input)||0,output:Number(t.output)||0,total:Number(t.total)||0}}function te(n){let t=n.toLowerCase();return["rate limit","429","network","timeout","econnrefused","api error","unreachable"].some(r=>t.includes(r))}function ne(n){let t=n.agent,r=n.now??Date.now,e=0,s=n.createId??(()=>`xeno-ui-${r()}-${++e}`),m=new Set,g=[],A="idle",S=H(t),_=null,u=null,k=null,h=null,d="",w=null,R=0,E=!1,b=!1,O=0,p=ee(t),U=p?.permissionEngine,V=U?.promptFn;function C(){return Object.freeze({apiVersion:1,revision:O,items:Object.freeze([...g]),isProcessing:E,status:A,tokenUsage:Object.freeze({...S}),permissionRequest:_?Object.freeze({..._}):null,lastUserMessage:k})}function y(){O+=1;let i=C();for(let l of[...m])l(i)}function N(i){g=[...g,i],y()}function D(i){let l=[...g];for(let x=l.length-1;x>=0;x-=1){let a=l[x];if(a?.type==="message"&&a.data.role==="assistant"){l[x]={type:"message",data:i(a.data)},g=l,y();return}}}function q(i,l){let x=[...g];for(let a=x.length-1;a>=0;a-=1){let c=x[a];if(c?.type==="tool_call"&&c.data.id===i){x[a]={type:"tool_call",data:l(c.data)},g=x,y();return}}}function o(){h&&(D(i=>({...i,isStreaming:!1})),h=null,d="")}function T(i){let l={id:s(),message:i,retryable:te(i),timestamp:r()};N({type:"error",data:l})}function f(i){p&&(p.onText=i.onText,p.onToolStart=i.onToolStart,p.onToolEnd=i.onToolEnd,p.onError=i.onError)}async function L(i){let l=i.trim();if(b||E||!l)return!1;E=!0,k=l,A="thinking",h=null,d="";let x={id:s(),role:"user",content:l,timestamp:r()};g=[...g,{type:"message",data:x}],y();let a={onText:p?.onText,onToolStart:p?.onToolStart,onToolEnd:p?.onToolEnd,onError:p?.onError};p&&(p.onText=c=>{a.onText?.(c),!b&&(d+=c,h?D(v=>({...v,content:d,isStreaming:!0})):(h=s(),N({type:"message",data:{id:h,role:"assistant",content:d,timestamp:r(),isStreaming:!0}})))},p.onToolStart=(c,v)=>{a.onToolStart?.(c,v),!b&&(o(),A="executing",w=s(),R=r(),N({type:"tool_call",data:{id:w,toolName:c,input:v,status:"running",timestamp:r()}}))},p.onToolEnd=(c,v)=>{a.onToolEnd?.(c,v),!b&&(w&&(q(w,K=>({...K,status:v.success?"success":"error",result:v,durationMs:Math.max(0,r()-R)})),w=null),A="thinking",y())},p.onError=(c,v)=>a.onError?.(c,v));try{await t.run(l),b||(o(),A="idle",S=H(t),y())}catch(c){if(!b){o();let v=c instanceof Error?c:new Error(String(c));A=v.name==="AgentInterruptedError"?"idle":"error",v.name!=="AgentInterruptedError"&&T(v.message),S=H(t),y()}}finally{E=!1,f(a),b||y()}return!0}return n.enablePermissionRequests&&U&&(U.promptFn=i=>(u&&u("deny"),new Promise(l=>{u=l,_={id:s(),toolName:i.toolName,detail:i.detail,description:i.description,operation:i.operation,preview:i.preview,riskLevel:X(i.toolName),timestamp:r(),...i.oneTime?{oneTime:!0}:{},...i.elevation?{elevation:{network:i.elevation.network,directories:[...i.elevation.directories],justification:i.elevation.justification}}:{}},y()}))),{apiVersion:1,getSnapshot:C,subscribe(i){if(b)throw new Error("Agent UI controller is disposed");return m.add(i),i(C()),()=>m.delete(i)},sendMessage:L,cancelExecution(){!b&&E&&t.cancelCurrentTurn()},clearMessages(){b||(g=[],h=null,d="",y())},retryLastMessage(){return b||E||!k?Promise.resolve(!1):(g=g.filter((i,l,x)=>i.type!=="error"?!0:x.slice(l+1).some(a=>a.type!=="error")),A="idle",y(),L(k))},resolvePermission(i,l){if(b||!_||_.id!==i||!u)return!1;_.oneTime&&l==="always"&&(l="allow");let x=u;return u=null,_=null,y(),x(l),!0},dispose(){b||(b=!0,u&&u("deny"),u=null,_=null,U&&(U.promptFn=V),m.clear())}}}function oe(n){let t=[],r=[[/```([\w-]*)\n([\s\S]*?)```/,e=>({kind:"code-block",language:e[1]??"",code:e[2]??""})],[/`([^`\n]+)`/,e=>({kind:"inline-code",code:e[1]??""})],[/\*\*(.+?)\*\*/,e=>({kind:"strong",text:e[1]??""})],[/\*([^*\n]+)\*/,e=>({kind:"emphasis",text:e[1]??""})],[/\[([^\]]+)\]\(([^)\s]+)\)/,e=>({kind:"link",text:e[1]??"",href:e[2]??""})]];for(let[e,s]of r){let m=n.match(e);m?.index!==void 0&&t.push({index:m.index,value:s(m),length:m[0].length})}return t.sort((e,s)=>e.index-s.index),t[0]??null}function z(n){let t=[],r=n;for(;r;){let e=oe(r);if(!e){t.push({kind:"text",text:r});break}e.index>0&&t.push({kind:"text",text:r.slice(0,e.index)}),t.push(e.value),r=r.slice(e.index+e.length)}return t}function $(n){try{let t=new URL(n,"https://xeno.invalid/");return t.protocol==="https:"||t.protocol==="http:"||t.protocol==="mailto:"}catch{return!1}}var ie=Object.freeze({background:"#101214",surface:"#181b1f",surfaceRaised:"#20242a",border:"#343a42",text:"#f2f4f7",textMuted:"#aab2bd",accent:"#5da9e9",success:"#56b881",warning:"#e7b65a",danger:"#e57373",focus:"#8bc5f4"}),j=`
|
|
2
2
|
.xeno-ui{box-sizing:border-box;display:grid;grid-template-rows:auto minmax(12rem,1fr) auto;width:min(32rem,100%);height:min(44rem,100%);min-height:24rem;border:1px solid var(--xeno-border,#343a42);background:var(--xeno-bg,#101214);color:var(--xeno-text,#f2f4f7);font:14px/1.45 ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;letter-spacing:0}
|
|
3
3
|
.xeno-ui *{box-sizing:border-box;letter-spacing:0}
|
|
4
4
|
.xeno-ui__header{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid var(--xeno-border,#343a42);background:var(--xeno-surface,#181b1f)}
|
|
@@ -31,5 +31,5 @@ var Q={View:"Read",Replace:"Write",GlobTool:"Glob",GrepTool:"Grep",SQLiteAnalyze
|
|
|
31
31
|
.xeno-ui :focus-visible{outline:2px solid var(--xeno-focus,#8bc5f4);outline-offset:2px}
|
|
32
32
|
@media (max-width:36rem){.xeno-ui{width:100%;height:100%;border-left:0;border-right:0}.xeno-ui__entry--user,.xeno-ui__entry--assistant{margin-left:0;margin-right:0}.xeno-ui__composer{grid-template-columns:1fr}.xeno-ui__controls{justify-content:flex-end}}
|
|
33
33
|
@media (prefers-reduced-motion:reduce){.xeno-ui *{scroll-behavior:auto!important;transition:none!important}}
|
|
34
|
-
`;var
|
|
35
|
-
[truncated]`}function se(n){if(n.type==="message"){let t=n.data.role==="assistant";return{key:n.data.id,kind:t?"assistant-message":"user-message",role:"article",accessibleName:t?"Assistant message":"Your message",text:n.data.content,streaming:n.data.isStreaming}}if(n.type==="tool_call"){let t=n.data.durationMs===void 0?"":` in ${n.data.durationMs} ms`;return{key:n.data.id,kind:"tool-call",role:"status",accessibleName:`${n.data.toolName} tool ${n.data.status}`,text:`${n.data.toolName}: ${n.data.status}${t}`,detail:re({input:n.data.input,result:n.data.result}),state:n.data.status}}return{key:n.data.id,kind:"error",role:"alert",accessibleName:"Agent error",text:n.data.message,retryable:n.data.retryable}}function ae(n){return[...n.network?["Extra access: network"]:[],...n.directories.map(t=>`Extra access: directory ${t}`),`Justification: ${n.justification.replace(/\s+/g," ").trim()}`]}function
|
|
34
|
+
`;var F=64*1024;function re(n){let t;try{t=JSON.stringify(n,null,2)??String(n)}catch{t="[Unserializable value]"}return t.length<=F?t:`${t.slice(0,F)}
|
|
35
|
+
[truncated]`}function se(n){if(n.type==="message"){let t=n.data.role==="assistant";return{key:n.data.id,kind:t?"assistant-message":"user-message",role:"article",accessibleName:t?"Assistant message":"Your message",text:n.data.content,streaming:n.data.isStreaming}}if(n.type==="tool_call"){let t=n.data.durationMs===void 0?"":` in ${n.data.durationMs} ms`;return{key:n.data.id,kind:"tool-call",role:"status",accessibleName:`${n.data.toolName} tool ${n.data.status}`,text:`${n.data.toolName}: ${n.data.status}${t}`,detail:re({input:n.data.input,result:n.data.result}),state:n.data.status}}return{key:n.data.id,kind:"error",role:"alert",accessibleName:"Agent error",text:n.data.message,retryable:n.data.retryable}}function ae(n){return[...n.network?["Extra access: network"]:[],...n.directories.map(t=>`Extra access: directory ${t}`),`Justification: ${n.justification.replace(/\s+/g," ").trim()}`]}function G(n,t={}){let r=t.agentName?.trim()||"Xeno Agent",e=n.permissionRequest;return{apiVersion:1,revision:n.revision,region:{role:"region",accessibleName:t.regionLabel?.trim()||`${r} chat`},header:{title:r,statusRole:"status",statusText:n.status,tokenText:`${n.tokenUsage.total.toLocaleString()} tokens`},timeline:{role:"log",live:"polite",busy:n.isProcessing,entries:n.items.map(se)},permission:e?{role:"alertdialog",accessibleName:`Permission required for ${e.toolName}`,description:e.description||e.detail,riskLevel:e.riskLevel,requestId:e.id,...e.elevation?{elevationLines:ae(e.elevation)}:{},controls:e.oneTime?[{label:"Allow for this call only",decision:"allow"},{label:"Deny",decision:"deny"}]:[{label:"Allow once",decision:"allow"},{label:"Always allow",decision:"always"},{label:"Deny",decision:"deny"}]}:null,composer:{role:"form",inputLabel:t.inputLabel?.trim()||"Message Xeno Agent",placeholder:t.inputPlaceholder?.trim()||"Message or command...",disabled:n.isProcessing,sendLabel:"Send",cancelLabel:"Cancel"}}}async function P(n,t){switch(t.type){case"send":return n.sendMessage(t.text);case"cancel":return n.cancelExecution(),!0;case"clear":return n.clearMessages(),!0;case"retry":return n.retryLastMessage();case"permission":return n.resolvePermission(t.requestId,t.decision)}}var B="xeno-owned-agent-ui-v1";function le(n,t,r){for(let e of z(r)){if(e.kind==="text"){t.append(n.createTextNode(e.text));continue}if(e.kind==="code-block"){let s=n.createElement("pre"),m=n.createElement("code");e.language&&(m.dataset.language=e.language),m.textContent=e.code,s.append(m),t.append(s);continue}if(e.kind==="inline-code"){let s=n.createElement("code");s.textContent=e.code,t.append(s);continue}if(e.kind==="strong"||e.kind==="emphasis"){let s=n.createElement(e.kind==="strong"?"strong":"em");s.textContent=e.text,t.append(s);continue}if(e.kind==="link"){if(!$(e.href)){t.append(n.createTextNode(e.text));continue}let s=n.createElement("a");s.textContent=e.text,s.href=e.href,s.rel="noopener noreferrer",(s.protocol==="http:"||s.protocol==="https:")&&(s.target="_blank"),t.append(s)}}}function M(n,t,r=""){let e=n.createElement("button");return e.type="button",e.className=`xeno-ui__button${r?` ${r}`:""}`,e.textContent=t,e}function ce(n,t,r){let e=n.createElement(t.role==="article"?"article":"div");if(e.className=`xeno-ui__entry xeno-ui__entry--${t.kind==="user-message"?"user":t.kind==="assistant-message"?"assistant":t.kind==="tool-call"?"tool":"error"}`,e.setAttribute("role",t.role),e.setAttribute("aria-label",t.accessibleName),e.dataset.xenoKey=t.key,t.streaming&&e.setAttribute("aria-busy","true"),le(n,e,t.text),t.detail){let s=n.createElement("details");s.className="xeno-ui__details";let m=n.createElement("summary");m.textContent="Details";let g=n.createElement("pre");g.textContent=t.detail,s.append(m,g),e.append(s)}if(t.retryable){let s=M(n,"Retry");s.addEventListener("click",()=>{P(r,{type:"retry"})}),e.append(n.createTextNode(" "),s)}return e}function de(n,t){if(n.getElementById(B))return;let r=n.createElement("style");r.id=B,t&&(r.nonce=t),r.textContent=j,n.head.append(r)}function ue(n,t,r={}){let e=n.ownerDocument;r.injectStyles!==!1&&de(e,r.styleNonce);let s=e.createElement("section");s.className=`xeno-ui${r.className?` ${r.className}`:""}`;let m=e.createElement("header");m.className="xeno-ui__header";let g=e.createElement("h2");g.className="xeno-ui__title";let A=e.createElement("span");A.className="xeno-ui__status",A.setAttribute("role","status"),A.setAttribute("aria-live","polite");let S=e.createElement("span");S.className="xeno-ui__tokens";let _=M(e,"Clear");if(_.setAttribute("aria-label","Clear conversation"),_.addEventListener("click",()=>{P(t,{type:"clear"})}),m.append(g,A,S,_),r.onClose){let o=M(e,"X");o.setAttribute("aria-label","Close agent chat"),o.addEventListener("click",r.onClose),m.append(o)}let u=e.createElement("div");u.className="xeno-ui__timeline",u.setAttribute("role","log"),u.setAttribute("aria-live","polite"),u.setAttribute("aria-relevant","additions text");let k=e.createElement("div"),h=e.createElement("form");h.className="xeno-ui__composer",h.setAttribute("role","form");let d=e.createElement("textarea");d.className="xeno-ui__input",d.rows=1;let w=e.createElement("div");w.className="xeno-ui__controls";let R=M(e,"Cancel","xeno-ui__button--danger");R.addEventListener("click",()=>{P(t,{type:"cancel"})});let E=M(e,"Send","xeno-ui__button--primary");E.type="submit",w.append(R,E),h.append(d,w),s.append(m,u,k,h),n.replaceChildren(s);function b(){d.style.height="auto";let o=44,T=144,f=Math.max(d.scrollHeight,o);d.style.height=`${Math.min(f,T)}px`,d.style.overflowY=f>T?"auto":"hidden"}async function O(){let o=d.value;await P(t,{type:"send",text:o})&&(d.value="",b())}h.addEventListener("submit",o=>{o.preventDefault(),O()}),d.addEventListener("keydown",o=>{o.key==="Enter"&&(o.ctrlKey||o.metaKey)&&(o.preventDefault(),O())}),d.addEventListener("input",b);let p=null,U=null;function V(o){if(o.permission&&p===o.permission.requestId&&k.children.length>0)return;if(k.replaceChildren(),!o.permission){if(p){let a=U??d;queueMicrotask(()=>a.focus())}p=null,U=null;return}let T=p!==o.permission.requestId;if(T){let a=e.activeElement;U=a&&"focus"in a?a:d,p=o.permission.requestId}let f=e.createElement("section");f.className="xeno-ui__permission",f.setAttribute("role",o.permission.role),f.setAttribute("aria-modal","true"),f.setAttribute("aria-label",o.permission.accessibleName),f.dataset.risk=o.permission.riskLevel;let L=e.createElement("h3");L.className="xeno-ui__permission-title",L.textContent=o.permission.accessibleName;let i=e.createElement("div");i.id=`xeno-ui-permission-${o.permission.requestId}`,i.textContent=o.permission.description,f.setAttribute("aria-describedby",i.id);for(let a of o.permission.elevationLines??[]){let c=e.createElement("div");c.className="xeno-ui__permission-elevation",c.textContent=a,i.append(e.createElement("br"),c)}let l=e.createElement("div");l.className="xeno-ui__permission-actions";let x=null;for(let a of o.permission.controls){let c=M(e,a.label,a.decision==="deny"?"xeno-ui__button--danger":"");c.dataset.decision=a.decision,x??=c,c.addEventListener("click",()=>{P(t,{type:"permission",requestId:o.permission.requestId,decision:a.decision})}),l.append(c)}f.append(L,i,l),k.append(f),T&&x&&queueMicrotask(()=>x?.focus())}function C(){let o=G(t.getSnapshot(),r);s.setAttribute("role",o.region.role),s.setAttribute("aria-label",o.region.accessibleName),g.textContent=o.header.title,A.textContent=o.header.statusText,S.textContent=o.header.tokenText,u.setAttribute("aria-busy",String(o.timeline.busy));let T=u.scrollHeight-u.scrollTop-u.clientHeight;if(o.timeline.entries.length===0){let f=e.createElement("div");f.className="xeno-ui__empty",f.textContent="No messages yet",u.replaceChildren(f)}else u.replaceChildren(...o.timeline.entries.map(f=>ce(e,f,t)));T<48&&(u.scrollTop=u.scrollHeight),V(o),d.disabled=o.composer.disabled,d.setAttribute("aria-label",o.composer.inputLabel),d.placeholder=o.composer.placeholder,E.textContent=o.composer.sendLabel,E.disabled=o.composer.disabled,R.textContent=o.composer.cancelLabel,R.hidden=!o.timeline.busy}let y=null,N=!1;function D(){let o=e.defaultView?.requestAnimationFrame;if(o){if(y!==null)return;y=o.call(e.defaultView,()=>{y=null,C()});return}N||(N=!0,queueMicrotask(()=>{N=!1,C()}))}let q=t.subscribe(D);return C(),b(),{element:s,render:C,focusInput(){d.focus()},dispose(){q(),y!==null&&e.defaultView?.cancelAnimationFrame&&e.defaultView.cancelAnimationFrame(y),s.remove()}}}export{I as XENO_UI_RENDERER_API_VERSION,ne as createAgentUiController,G as createAgentUiView,P as dispatchAgentUiAction,$ as isSafeMarkdownHref,ue as mountAgentUi,z as parseMarkdown,j as xenoUiCss,ie as xenoUiTokens};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"src/tools/tool-names.ts":{"bytes":
|
|
1
|
+
{"inputs":{"src/tools/tool-names.ts":{"bytes":3747,"imports":[],"format":"esm"},"src/ui/types.ts":{"bytes":4678,"imports":[],"format":"esm"},"src/ui/controller.ts":{"bytes":10914,"imports":[{"path":"src/tools/tool-names.ts","kind":"import-statement","original":"../tools/tool-names.js"},{"path":"src/ui/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"},"src/ui/markdown.ts":{"bytes":2181,"imports":[],"format":"esm"},"src/ui/styles.ts":{"bytes":4255,"imports":[],"format":"esm"},"src/ui/view-model.ts":{"bytes":4490,"imports":[{"path":"src/ui/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"},"src/ui/dom-renderer.ts":{"bytes":12031,"imports":[{"path":"src/ui/markdown.ts","kind":"import-statement","original":"./markdown.js"},{"path":"src/ui/styles.ts","kind":"import-statement","original":"./styles.js"},{"path":"src/ui/view-model.ts","kind":"import-statement","original":"./view-model.js"}],"format":"esm"},"src/ui/index.ts":{"bytes":1059,"imports":[{"path":"src/ui/controller.ts","kind":"import-statement","original":"./controller.js"},{"path":"src/ui/dom-renderer.ts","kind":"import-statement","original":"./dom-renderer.js"},{"path":"src/ui/markdown.ts","kind":"import-statement","original":"./markdown.js"},{"path":"src/ui/styles.ts","kind":"import-statement","original":"./styles.js"},{"path":"src/ui/view-model.ts","kind":"import-statement","original":"./view-model.js"},{"path":"src/ui/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"}},"outputs":{"dist/ui/index.cjs":{"imports":[],"exports":[],"entryPoint":"src/ui/index.ts","inputs":{"src/ui/index.ts":{"bytesInOutput":257},"src/tools/tool-names.ts":{"bytesInOutput":580},"src/ui/types.ts":{"bytesInOutput":8},"src/ui/controller.ts":{"bytesInOutput":3559},"src/ui/markdown.ts":{"bytesInOutput":864},"src/ui/styles.ts":{"bytesInOutput":4161},"src/ui/view-model.ts":{"bytesInOutput":2338},"src/ui/dom-renderer.ts":{"bytesInOutput":6248}},"bytes":18633}}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"src/tools/tool-names.ts":{"bytes":
|
|
1
|
+
{"inputs":{"src/tools/tool-names.ts":{"bytes":3747,"imports":[],"format":"esm"},"src/ui/types.ts":{"bytes":4678,"imports":[],"format":"esm"},"src/ui/controller.ts":{"bytes":10914,"imports":[{"path":"src/tools/tool-names.ts","kind":"import-statement","original":"../tools/tool-names.js"},{"path":"src/ui/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"},"src/ui/markdown.ts":{"bytes":2181,"imports":[],"format":"esm"},"src/ui/styles.ts":{"bytes":4255,"imports":[],"format":"esm"},"src/ui/view-model.ts":{"bytes":4490,"imports":[{"path":"src/ui/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"},"src/ui/dom-renderer.ts":{"bytes":12031,"imports":[{"path":"src/ui/markdown.ts","kind":"import-statement","original":"./markdown.js"},{"path":"src/ui/styles.ts","kind":"import-statement","original":"./styles.js"},{"path":"src/ui/view-model.ts","kind":"import-statement","original":"./view-model.js"}],"format":"esm"},"src/ui/index.ts":{"bytes":1059,"imports":[{"path":"src/ui/controller.ts","kind":"import-statement","original":"./controller.js"},{"path":"src/ui/dom-renderer.ts","kind":"import-statement","original":"./dom-renderer.js"},{"path":"src/ui/markdown.ts","kind":"import-statement","original":"./markdown.js"},{"path":"src/ui/styles.ts","kind":"import-statement","original":"./styles.js"},{"path":"src/ui/view-model.ts","kind":"import-statement","original":"./view-model.js"},{"path":"src/ui/types.ts","kind":"import-statement","original":"./types.js"}],"format":"esm"}},"outputs":{"dist/ui/index.js":{"imports":[],"exports":["XENO_UI_RENDERER_API_VERSION","createAgentUiController","createAgentUiView","dispatchAgentUiAction","isSafeMarkdownHref","mountAgentUi","parseMarkdown","xenoUiCss","xenoUiTokens"],"entryPoint":"src/ui/index.ts","inputs":{"src/tools/tool-names.ts":{"bytesInOutput":570},"src/ui/types.ts":{"bytesInOutput":8},"src/ui/controller.ts":{"bytesInOutput":3560},"src/ui/index.ts":{"bytesInOutput":0},"src/ui/markdown.ts":{"bytesInOutput":864},"src/ui/styles.ts":{"bytesInOutput":4162},"src/ui/view-model.ts":{"bytesInOutput":2338},"src/ui/dom-renderer.ts":{"bytesInOutput":6249}},"bytes":17970}}}
|
package/dist/utils/index.d.cts
CHANGED
|
@@ -182,7 +182,16 @@ interface ResourceContentBlock {
|
|
|
182
182
|
}
|
|
183
183
|
type ToolAssistantContentBlock = TextBlock | ImageUrlBlock | ResourceContentBlock;
|
|
184
184
|
type ToolResultContent = string | ToolAssistantContentBlock[];
|
|
185
|
-
|
|
185
|
+
declare const TOOL_OPERATION_TERMINAL_STATES: readonly [
|
|
186
|
+
"completed",
|
|
187
|
+
"failed",
|
|
188
|
+
"timed_out",
|
|
189
|
+
"cancelled",
|
|
190
|
+
"outcome_unknown",
|
|
191
|
+
"orphaned"
|
|
192
|
+
];
|
|
193
|
+
type ToolOperationTerminalState = (typeof TOOL_OPERATION_TERMINAL_STATES)[number];
|
|
194
|
+
type ToolOperationState = "registered" | "starting" | "running_foreground" | "running_background" | "waiting_for_input" | "stalled" | "verifying" | ToolOperationTerminalState;
|
|
186
195
|
type ToolCompletionPolicy = "await" | "observe" | "detach";
|
|
187
196
|
interface ExpectedOutputContract {
|
|
188
197
|
path: string;
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -182,7 +182,16 @@ interface ResourceContentBlock {
|
|
|
182
182
|
}
|
|
183
183
|
type ToolAssistantContentBlock = TextBlock | ImageUrlBlock | ResourceContentBlock;
|
|
184
184
|
type ToolResultContent = string | ToolAssistantContentBlock[];
|
|
185
|
-
|
|
185
|
+
declare const TOOL_OPERATION_TERMINAL_STATES: readonly [
|
|
186
|
+
"completed",
|
|
187
|
+
"failed",
|
|
188
|
+
"timed_out",
|
|
189
|
+
"cancelled",
|
|
190
|
+
"outcome_unknown",
|
|
191
|
+
"orphaned"
|
|
192
|
+
];
|
|
193
|
+
type ToolOperationTerminalState = (typeof TOOL_OPERATION_TERMINAL_STATES)[number];
|
|
194
|
+
type ToolOperationState = "registered" | "starting" | "running_foreground" | "running_background" | "waiting_for_input" | "stalled" | "verifying" | ToolOperationTerminalState;
|
|
186
195
|
type ToolCompletionPolicy = "await" | "observe" | "detach";
|
|
187
196
|
interface ExpectedOutputContract {
|
|
188
197
|
path: string;
|