@standardagents/builder 0.25.2 → 0.25.3

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.
Files changed (32) hide show
  1. package/dist/built-in-routes.js +43 -1
  2. package/dist/built-in-routes.js.map +1 -1
  3. package/dist/client/{ApiKeysView-C_QyBNy2.js → ApiKeysView-B9XLopSb.js} +1 -1
  4. package/dist/client/{CenteredContentView-c7OLhxvd.js → CenteredContentView-Bwv4MVSC.js} +1 -1
  5. package/dist/client/CompositionView-DJOtNN7f.js +32 -0
  6. package/dist/client/{ConfirmDialog.vue_vue_type_script_setup_true_lang-DQIo2wlE.js → ConfirmDialog.vue_vue_type_script_setup_true_lang-55dXt19T.js} +1 -1
  7. package/dist/client/{CopyButton.vue_vue_type_script_setup_true_lang-q-A7DQTq.js → CopyButton.vue_vue_type_script_setup_true_lang-B6NqQmW9.js} +1 -1
  8. package/dist/client/{DataTable.vue_vue_type_script_setup_true_lang-B0UNyBiO.js → DataTable.vue_vue_type_script_setup_true_lang-0cbPVIIz.js} +1 -1
  9. package/dist/client/{JsonViewer-DrA7M9_g.js → JsonViewer-B7yHhxqP.js} +1 -1
  10. package/dist/client/{LoginView-BxbNgfzz.js → LoginView-mY9OytK6.js} +1 -1
  11. package/dist/client/{MarketplaceView-DXrtN6-0.js → MarketplaceView-B9Z9YMuB.js} +1 -1
  12. package/dist/client/{Modal.vue_vue_type_script_setup_true_lang-CLZzFYMW.js → Modal.vue_vue_type_script_setup_true_lang-DEVCRbXl.js} +1 -1
  13. package/dist/client/{ModelModal.vue_vue_type_script_setup_true_lang-BaLZApRs.js → ModelModal.vue_vue_type_script_setup_true_lang-FxEBZ3A8.js} +1 -1
  14. package/dist/client/{ModelsView-CVtPgAVZ.js → ModelsView-DTU8pk-T.js} +1 -1
  15. package/dist/client/{PromptEditView-Dhc0rBHD.js → PromptEditView-BAKoULxX.js} +1 -1
  16. package/dist/client/PromptModal-CoinSKIM.js +1 -0
  17. package/dist/client/{PromptsView-y3yvzkjM.js → PromptsView-DIkj3q-o.js} +1 -1
  18. package/dist/client/{ProvidersView-DN-SmDPF.js → ProvidersView-B8A6ezDR.js} +2 -2
  19. package/dist/client/ThreadInspectorPane.vue_vue_type_script_setup_true_lang-CvssvzLz.js +22 -0
  20. package/dist/client/{ThreadsView-B1Xo2bP0.js → ThreadsView-DGCVdDej.js} +1 -1
  21. package/dist/client/{ToolsView-DYj_Mk9L.js → ToolsView-CC-WsZet.js} +1 -1
  22. package/dist/client/{UsersView-BLNNFDUM.js → UsersView-U3Stwxui.js} +1 -1
  23. package/dist/client/{VariablesView-D4-5tNwt.js → VariablesView-0-a1F4cn.js} +1 -1
  24. package/dist/client/assets/{ThreadInspectorPane-CGrBd6US.css → ThreadInspectorPane-ouC_RyKA.css} +1 -1
  25. package/dist/client/assets/{index-B38KmIlM.css → index-Ca3he3fq.css} +1 -1
  26. package/dist/client/index-4Zwz6zXD.js +6 -0
  27. package/dist/client/index.html +2 -2
  28. package/package.json +5 -5
  29. package/dist/client/CompositionView-DqKI6dJ9.js +0 -32
  30. package/dist/client/PromptModal-DXt6M359.js +0 -1
  31. package/dist/client/ThreadInspectorPane.vue_vue_type_script_setup_true_lang-lIW3rtYB.js +0 -22
  32. package/dist/client/index-0OxNDXyK.js +0 -6
@@ -1 +1 @@
1
- import{d as D,r as u,c as V,o as N,b as M,e as f,z as _,q as w,j as C,J as a,k as P,s as R,u as A,X as $,Y as T,w as I}from"./vue-BqC6IZDY.js";import{C as E,b as x,D as S,x as q}from"./index-0OxNDXyK.js";import{_ as B}from"./DataTable.vue_vue_type_script_setup_true_lang-B0UNyBiO.js";import{u as F}from"./useActionFeedback-byARNQjQ.js";import{P as U}from"./PromptModal-DXt6M359.js";import{C as j}from"./CenteredContentView-c7OLhxvd.js";import{I as L}from"./plus-DG3ZN5wg.js";import"./formkit-YJ1Z7D5r.js";import"./vendor-TPZjEwCU.js";import"./syntax-D-ZcovVx.js";import"./monaco-DI2r3M8m.js";import"./chevron-right-BGirddPg.js";import"./ConfirmDialog.vue_vue_type_script_setup_true_lang-DQIo2wlE.js";import"./Modal.vue_vue_type_script_setup_true_lang-CLZzFYMW.js";import"./check-Dkzs1C3V.js";const z=D({__name:"PromptsDataTable",props:{title:{},description:{},primaryAction:{},readonly:{type:Boolean,default:!1}},emits:["add","edit","delete"],setup(i,{expose:b,emit:y}){const r=i,s=y,d=u([]),o=u(!1),{feedback:m,setFeedback:n,clearFeedback:l}=F(),k=[{key:"name",label:"Name",width:"w-1/4",sortable:!0},{key:"tool_description",label:"Description",width:"w-2/5"},{key:"model_name",label:"Model",width:"w-1/5",sortable:!0,filterable:!0,formatter:(e,t)=>e||t.model_id||"-",filterIcon:(e,t)=>t.model_provider?`/api/providers/${t.model_provider}/icon?model=${encodeURIComponent(t.model_id||"")}`:void 0},{key:"created_at",label:"Created",width:"w-1/6",sortable:!0,searchable:!1,formatter:e=>e?new Date(e*1e3).toLocaleDateString():"-"}],v=[{icon:"edit",label:"Edit",handler:e=>s("edit",e)},{icon:"delete",label:"Delete",handler:async e=>{await g(e)},confirm:!0,confirmMessage:"Are you sure you want to delete this prompt?",variant:"danger"}],h=V(()=>r.readonly?v.filter(e=>e.variant!=="danger"):v),c=async()=>{o.value=!0,l();try{const e=await fetch(x("/api/prompts"));if(e.ok){const t=await e.json();d.value=t.prompts||[]}}catch{n("error","Prompts could not be loaded.")}finally{o.value=!1}},g=async e=>{l();try{const t=await fetch(x(`/api/prompts/${encodeURIComponent(e.id)}`),{method:"DELETE"});if(t.ok)await c(),n("success","Prompt deleted.");else{const p=await t.json();n("error",p.error||"Failed to delete prompt")}}catch{n("error","Failed to delete prompt")}};return N(()=>{c()}),b({refresh:c}),(e,t)=>(f(),M("div",null,[a(m)?(f(),_(a(E),{key:0,variant:a(m).variant,class:"mb-4"},{default:P(()=>[R(A(a(m).message),1)]),_:1},8,["variant"])):w("",!0),C(B,{title:i.title,description:i.description,"primary-action":i.primaryAction,columns:k,data:d.value,actions:h.value,loading:o.value,sortable:"",searchable:"","search-placeholder":"Search prompts...","empty-message":"No prompts available. Create your first prompt to get started.",onRowClick:t[0]||(t[0]=p=>s("edit",p))},null,8,["title","description","primary-action","data","actions","loading"])]))}}),J={key:1,class:"mb-5 rounded-lg border border-amber-200 dark:border-amber-800 bg-amber-50 dark:bg-amber-950/30 px-4 py-3 text-sm text-amber-800 dark:text-amber-200"},ne=D({__name:"PromptsView",setup(i){const b=$(),y=T(),r=u(!1),s=u(null),d=u(null),o=S(),{saving:m,savePrompt:n}=q(),{feedback:l,setFeedback:k,clearFeedback:v}=F();I(()=>y.query.refresh,()=>{y.query.refresh&&(s.value?.refresh(),b.replace({path:"/prompts",query:{}}))});const h=()=>{r.value=!0},c=e=>{b.push(`/prompts/${e.id}`)},g=async e=>{v();const t=await n({mode:"add",data:e,formNode:d.value?.formNode});t.ok?(r.value=!1,await s.value?.refresh()):t.formErrorsApplied||k("error","Failed to create prompt")};return(e,t)=>(f(),_(j,null,{default:P(()=>[a(l)?(f(),_(a(E),{key:0,variant:a(l).variant,class:"mb-4"},{default:P(()=>[R(A(a(l).message),1)]),_:1},8,["variant"])):w("",!0),a(o)?w("",!0):(f(),M("div",J," Configuration is read-only in production. To make changes, edit your configuration files locally and deploy. ")),C(z,{ref_key:"dataTableRef",ref:s,title:"Prompts",description:"Define and manage prompt templates for your agents.","primary-action":a(o)?{label:"Create Prompt",icon:a(L),handler:h}:void 0,readonly:!a(o),onAdd:h,onEdit:c},null,8,["primary-action","readonly"]),C(U,{ref_key:"promptModalRef",ref:d,modelValue:r.value,"onUpdate:modelValue":t[0]||(t[0]=p=>r.value=p),mode:"add",saving:a(m),onSave:g},null,8,["modelValue","saving"])]),_:1}))}});export{ne as default};
1
+ import{d as D,r as u,c as V,o as N,b as M,e as f,z as _,q as w,j as C,J as a,k as P,s as R,u as A,X as $,Y as T,w as I}from"./vue-BqC6IZDY.js";import{C as E,b as x,D as S,x as q}from"./index-4Zwz6zXD.js";import{_ as B}from"./DataTable.vue_vue_type_script_setup_true_lang-0cbPVIIz.js";import{u as F}from"./useActionFeedback-byARNQjQ.js";import{P as U}from"./PromptModal-CoinSKIM.js";import{C as j}from"./CenteredContentView-Bwv4MVSC.js";import{I as L}from"./plus-DG3ZN5wg.js";import"./formkit-YJ1Z7D5r.js";import"./vendor-TPZjEwCU.js";import"./syntax-D-ZcovVx.js";import"./monaco-DI2r3M8m.js";import"./chevron-right-BGirddPg.js";import"./ConfirmDialog.vue_vue_type_script_setup_true_lang-55dXt19T.js";import"./Modal.vue_vue_type_script_setup_true_lang-DEVCRbXl.js";import"./check-Dkzs1C3V.js";const z=D({__name:"PromptsDataTable",props:{title:{},description:{},primaryAction:{},readonly:{type:Boolean,default:!1}},emits:["add","edit","delete"],setup(i,{expose:b,emit:y}){const r=i,s=y,d=u([]),o=u(!1),{feedback:m,setFeedback:n,clearFeedback:l}=F(),k=[{key:"name",label:"Name",width:"w-1/4",sortable:!0},{key:"tool_description",label:"Description",width:"w-2/5"},{key:"model_name",label:"Model",width:"w-1/5",sortable:!0,filterable:!0,formatter:(e,t)=>e||t.model_id||"-",filterIcon:(e,t)=>t.model_provider?`/api/providers/${t.model_provider}/icon?model=${encodeURIComponent(t.model_id||"")}`:void 0},{key:"created_at",label:"Created",width:"w-1/6",sortable:!0,searchable:!1,formatter:e=>e?new Date(e*1e3).toLocaleDateString():"-"}],v=[{icon:"edit",label:"Edit",handler:e=>s("edit",e)},{icon:"delete",label:"Delete",handler:async e=>{await g(e)},confirm:!0,confirmMessage:"Are you sure you want to delete this prompt?",variant:"danger"}],h=V(()=>r.readonly?v.filter(e=>e.variant!=="danger"):v),c=async()=>{o.value=!0,l();try{const e=await fetch(x("/api/prompts"));if(e.ok){const t=await e.json();d.value=t.prompts||[]}}catch{n("error","Prompts could not be loaded.")}finally{o.value=!1}},g=async e=>{l();try{const t=await fetch(x(`/api/prompts/${encodeURIComponent(e.id)}`),{method:"DELETE"});if(t.ok)await c(),n("success","Prompt deleted.");else{const p=await t.json();n("error",p.error||"Failed to delete prompt")}}catch{n("error","Failed to delete prompt")}};return N(()=>{c()}),b({refresh:c}),(e,t)=>(f(),M("div",null,[a(m)?(f(),_(a(E),{key:0,variant:a(m).variant,class:"mb-4"},{default:P(()=>[R(A(a(m).message),1)]),_:1},8,["variant"])):w("",!0),C(B,{title:i.title,description:i.description,"primary-action":i.primaryAction,columns:k,data:d.value,actions:h.value,loading:o.value,sortable:"",searchable:"","search-placeholder":"Search prompts...","empty-message":"No prompts available. Create your first prompt to get started.",onRowClick:t[0]||(t[0]=p=>s("edit",p))},null,8,["title","description","primary-action","data","actions","loading"])]))}}),J={key:1,class:"mb-5 rounded-lg border border-amber-200 dark:border-amber-800 bg-amber-50 dark:bg-amber-950/30 px-4 py-3 text-sm text-amber-800 dark:text-amber-200"},ne=D({__name:"PromptsView",setup(i){const b=$(),y=T(),r=u(!1),s=u(null),d=u(null),o=S(),{saving:m,savePrompt:n}=q(),{feedback:l,setFeedback:k,clearFeedback:v}=F();I(()=>y.query.refresh,()=>{y.query.refresh&&(s.value?.refresh(),b.replace({path:"/prompts",query:{}}))});const h=()=>{r.value=!0},c=e=>{b.push(`/prompts/${e.id}`)},g=async e=>{v();const t=await n({mode:"add",data:e,formNode:d.value?.formNode});t.ok?(r.value=!1,await s.value?.refresh()):t.formErrorsApplied||k("error","Failed to create prompt")};return(e,t)=>(f(),_(j,null,{default:P(()=>[a(l)?(f(),_(a(E),{key:0,variant:a(l).variant,class:"mb-4"},{default:P(()=>[R(A(a(l).message),1)]),_:1},8,["variant"])):w("",!0),a(o)?w("",!0):(f(),M("div",J," Configuration is read-only in production. To make changes, edit your configuration files locally and deploy. ")),C(z,{ref_key:"dataTableRef",ref:s,title:"Prompts",description:"Define and manage prompt templates for your agents.","primary-action":a(o)?{label:"Create Prompt",icon:a(L),handler:h}:void 0,readonly:!a(o),onAdd:h,onEdit:c},null,8,["primary-action","readonly"]),C(U,{ref_key:"promptModalRef",ref:d,modelValue:r.value,"onUpdate:modelValue":t[0]||(t[0]=p=>r.value=p),mode:"add",saving:a(m),onSave:g},null,8,["modelValue","saving"])]),_:1}))}});export{ne as default};
@@ -1,3 +1,3 @@
1
- import{C as A,al as I,b as k}from"./index-0OxNDXyK.js";import{_ as N}from"./DataTable.vue_vue_type_script_setup_true_lang-B0UNyBiO.js";import{C as $}from"./CenteredContentView-c7OLhxvd.js";import{I as x}from"./check-Dkzs1C3V.js";import{u as F}from"./useActionFeedback-byARNQjQ.js";import{d as j,r as y,o as q,z as _,e as s,k as n,q as B,j as i,J as r,s as l,u as w,b as f,f as v}from"./vue-BqC6IZDY.js";import"./formkit-YJ1Z7D5r.js";import"./monaco-DI2r3M8m.js";import"./vendor-TPZjEwCU.js";import"./syntax-D-ZcovVx.js";import"./chevron-right-BGirddPg.js";import"./ConfirmDialog.vue_vue_type_script_setup_true_lang-DQIo2wlE.js";const E={class:"flex items-center gap-2"},K=["src","alt"],T={class:"font-medium text-neutral-900 dark:text-neutral-100"},D={key:0,class:"inline-flex items-center gap-1.5 px-2.5 py-1 text-xs font-medium rounded-full bg-blue-100 text-blue-700 dark:bg-blue-900/30 dark:text-blue-400"},R={key:1,class:"inline-flex items-center gap-1.5 px-2.5 py-1 text-xs font-medium rounded-full bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400"},L=["title"],ee=j({__name:"ProvidersView",setup(M){const d=y([]),c=y(!1),{feedback:u,setFeedback:o,clearFeedback:h}=F(),m=a=>a.label||a.name,g=a=>{const e=a.variables?.filter(t=>t.required).map(t=>t.name);return e?.length?e:a.envKeys||[]},C=[{key:"name",label:"Name",width:"w-2/3",sortable:!0,formatter:(a,e)=>m(e)},{key:"hasApiKey",label:"API Key",width:"w-1/3"}],P=[{icon:"delete",label:"Delete",confirm:!0,confirmMessage:"Are you sure you want to delete this provider? This action cannot be undone.",variant:"danger",handler:async a=>{await V(a.name)}}],b=async()=>{c.value=!0,h();try{const a=await fetch(k("/api/providers"));if(!a.ok)throw new Error("Failed to fetch providers");const e=await a.json();d.value=e.providers||[]}catch{o("error","Providers could not be loaded."),d.value=[]}finally{c.value=!1}},V=async a=>{h();try{const e=await fetch(k(`/api/providers/${encodeURIComponent(a)}`),{method:"DELETE"});if(!e.ok){const t=await e.json();t.modelCount?o("error",`${t.error}
1
+ import{C as A,am as I,b as k}from"./index-4Zwz6zXD.js";import{_ as N}from"./DataTable.vue_vue_type_script_setup_true_lang-0cbPVIIz.js";import{C as $}from"./CenteredContentView-Bwv4MVSC.js";import{I as x}from"./check-Dkzs1C3V.js";import{u as F}from"./useActionFeedback-byARNQjQ.js";import{d as j,r as y,o as q,z as _,e as s,k as n,q as B,j as i,J as r,s as l,u as w,b as f,f as v}from"./vue-BqC6IZDY.js";import"./formkit-YJ1Z7D5r.js";import"./monaco-DI2r3M8m.js";import"./vendor-TPZjEwCU.js";import"./syntax-D-ZcovVx.js";import"./chevron-right-BGirddPg.js";import"./ConfirmDialog.vue_vue_type_script_setup_true_lang-55dXt19T.js";const E={class:"flex items-center gap-2"},K=["src","alt"],T={class:"font-medium text-neutral-900 dark:text-neutral-100"},D={key:0,class:"inline-flex items-center gap-1.5 px-2.5 py-1 text-xs font-medium rounded-full bg-blue-100 text-blue-700 dark:bg-blue-900/30 dark:text-blue-400"},R={key:1,class:"inline-flex items-center gap-1.5 px-2.5 py-1 text-xs font-medium rounded-full bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400"},L=["title"],ee=j({__name:"ProvidersView",setup(M){const d=y([]),c=y(!1),{feedback:m,setFeedback:o,clearFeedback:h}=F(),u=a=>a.label||a.name,g=a=>{const e=a.variables?.filter(t=>t.required).map(t=>t.name);return e?.length?e:a.envKeys||[]},C=[{key:"name",label:"Name",width:"w-2/3",sortable:!0,formatter:(a,e)=>u(e)},{key:"hasApiKey",label:"API Key",width:"w-1/3"}],P=[{icon:"delete",label:"Delete",confirm:!0,confirmMessage:"Are you sure you want to delete this provider? This action cannot be undone.",variant:"danger",handler:async a=>{await V(a.name)}}],b=async()=>{c.value=!0,h();try{const a=await fetch(k("/api/providers"));if(!a.ok)throw new Error("Failed to fetch providers");const e=await a.json();d.value=e.providers||[]}catch{o("error","Providers could not be loaded."),d.value=[]}finally{c.value=!1}},V=async a=>{h();try{const e=await fetch(k(`/api/providers/${encodeURIComponent(a)}`),{method:"DELETE"});if(!e.ok){const t=await e.json();t.modelCount?o("error",`${t.error}
2
2
 
3
- This provider has ${t.modelCount} associated model(s).`):o("error",t.error||"Failed to delete provider");return}await b(),o("success","Provider deleted.")}catch{o("error","Failed to delete provider")}};return q(()=>{b()}),(a,e)=>(s(),_($,null,{default:n(()=>[r(u)?(s(),_(r(A),{key:0,variant:r(u).variant,class:"mb-4 whitespace-pre-line"},{default:n(()=>[l(w(r(u).message),1)]),_:1},8,["variant"])):B("",!0),i(N,{title:"Providers",description:"Installed providers and API key status. Provider availability is defined in code and environment configuration.",columns:C,data:d.value,actions:P,loading:c.value,sortable:"",searchable:"","search-placeholder":"Search providers...","empty-message":"No providers are installed in this AgentBuilder instance."},{"cell-name":n(({row:t})=>[v("div",E,[v("img",{src:`/api/providers/${t.name}/icon`,alt:m(t),class:"w-5 h-5 shrink-0 object-contain"},null,8,K),v("span",T,w(m(t)),1)])]),"cell-hasApiKey":n(({value:t,row:p})=>[t&&p.configuredViaPlatform?(s(),f("span",D,[i(r(x),{class:"w-3.5 h-3.5"}),e[0]||(e[0]=l(" Via platform ",-1))])):t?(s(),f("span",R,[i(r(x),{class:"w-3.5 h-3.5"}),e[1]||(e[1]=l(" Configured ",-1))])):(s(),f("span",{key:2,class:"inline-flex items-center gap-1.5 px-2.5 py-1 text-xs font-medium rounded-full bg-neutral-100 text-neutral-500 dark:bg-neutral-800 dark:text-neutral-400",title:g(p).length?`Required: ${g(p).join(", ")}`:void 0},[i(r(I),{class:"w-3.5 h-3.5"}),e[2]||(e[2]=l(" Not configured ",-1))],8,L))]),_:1},8,["data","loading"])]),_:1}))}});export{ee as default};
3
+ This provider has ${t.modelCount} associated model(s).`):o("error",t.error||"Failed to delete provider");return}await b(),o("success","Provider deleted.")}catch{o("error","Failed to delete provider")}};return q(()=>{b()}),(a,e)=>(s(),_($,null,{default:n(()=>[r(m)?(s(),_(r(A),{key:0,variant:r(m).variant,class:"mb-4 whitespace-pre-line"},{default:n(()=>[l(w(r(m).message),1)]),_:1},8,["variant"])):B("",!0),i(N,{title:"Providers",description:"Installed providers and API key status. Provider availability is defined in code and environment configuration.",columns:C,data:d.value,actions:P,loading:c.value,sortable:"",searchable:"","search-placeholder":"Search providers...","empty-message":"No providers are installed in this AgentBuilder instance."},{"cell-name":n(({row:t})=>[v("div",E,[v("img",{src:`/api/providers/${t.name}/icon`,alt:u(t),class:"w-5 h-5 shrink-0 object-contain"},null,8,K),v("span",T,w(u(t)),1)])]),"cell-hasApiKey":n(({value:t,row:p})=>[t&&p.configuredViaPlatform?(s(),f("span",D,[i(r(x),{class:"w-3.5 h-3.5"}),e[0]||(e[0]=l(" Via platform ",-1))])):t?(s(),f("span",R,[i(r(x),{class:"w-3.5 h-3.5"}),e[1]||(e[1]=l(" Configured ",-1))])):(s(),f("span",{key:2,class:"inline-flex items-center gap-1.5 px-2.5 py-1 text-xs font-medium rounded-full bg-neutral-100 text-neutral-500 dark:bg-neutral-800 dark:text-neutral-400",title:g(p).length?`Required: ${g(p).join(", ")}`:void 0},[i(r(I),{class:"w-3.5 h-3.5"}),e[2]||(e[2]=l(" Not configured ",-1))],8,L))]),_:1},8,["data","loading"])]),_:1}))}});export{ee as default};