PageSourceSearch

https://botresources.ai/assets/StackReferentialHome-BPW7kExn.js

js botresources.ai collected 2026-10-05 12:35:30 UTC 17,025 bytes, 1 lines download raw bytes

1import{j as e,r as f}from"./vendor-react-CjsYKJLv.js";import{S as j}from"./skeleton-Bw_70Khv.js";import{u as y,cB as g,eK as V,eL as $,eM as H,eN as K,eO as O,eP as Y,eQ as Q,eR as X,eS as Z,eT as J,f as P,eU as I,eV as ee,eW as se,eX as ae,eY as te,eZ as re,e_ as oe,e$ as ne,f0 as ce,f1 as ie}from"./index-BK_-PPx6.js";import{s as F}from"./shellHost-CZOaY_cP.js";import{h as T,g as b,I as L,C as z,S as q,u as W}from"./SurfaceAffordanceButton-D-0bYX3x.js";import{C as le}from"./card-DdPrVFM7.js";import{B as de}from"./badge-DJeuy7DV.js";import{S as A}from"./switch-DrKZlBGL.js";import{I as E}from"./ImageUpload-B4hPCw6W.js";import{B as R}from"./blocked-tooltip-BNENeWey.js";import{b as C}from"./servicesAffordances-AUBgeBvU.js";import{S as ue}from"./Slot-CXeLiIxw.js";import{au as G,ar as D,k as me}from"./vendor-lucide-BjuVKisM.js";import{S as pe,a as ge,b as xe,c as ve,d as ke}from"./select-BHkAmbTR.js";import{B as S}from"./button-BAPiMfBP.js";import{I as he}from"./input-Gmf9aeuN.js";import{T as we}from"./textarea-Je4QaqvD.js";import{u as fe}from"./useStackReferential-D1Z8lJhB.js";import{r as _,C as M,u as Te}from"./useGestureFlight-B7YFFR_J.js";import"./vendor-router-CPTH5aVH.js";import"./vendor-apollo-1ySQcXno.js";import"./vendor-radix-De3SkCEr.js";import"./vendor-intl-Bgc1nd3m.js";import"./useBoundedPending-C2qu2gOC.js";import"./addressableTabResolve-nKu-WCzv.js";import"./workspace-tab-context-DX1LnElP.js";import"./useDateFormat-8-ras5M_.js";import"./dateFormat-BscUFVad.js";import"./useOrgName-P0WqbUy0.js";import"./usePrefetchTab-0stU_dlM.js";import"./useTabLabelSync-dwhqcN1I.js";import"./snapshotRetry-DkWWqgSc.js";import"./sliceLoader-DA9XJrwJ.js";import"./module-DFoav-AL.js";import"./version-NFpXCE1i.js";import"./popover-CP5V64qZ.js";import"./blockedReason-DOupr7Z0.js";import"./manifest-CPh03x9p.js";function ye({framework:s,gestures:t}){const{t:a}=y(),o=C(s.affordances);if(!T(o,g.SetFrameworkScaffoldRunnerType))return null;const p=b(o,g.SetFrameworkScaffoldRunnerType,a),k=o.can(g.ClearFrameworkScaffoldRunnerType),r=t.busyFor(s.id),d=s.scaffoldRunnerType??null;return e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"flex flex-wrap items-baseline gap-x-2",children:[e.jsx("span",{className:"text-[11px] font-medium uppercase tracking-wide text-muted-foreground",children:a("workspace.services.stack.runnerType.label")}),e.jsx(L,{label:a("workspace.services.stack.runnerType.label"),value:d,editable:p.editable,editReason:p.editReason,placeholder:a("workspace.services.stack.runnerType.placeholder"),onCommit:x=>void t.setScaffoldRunnerType(s.id,x),clearable:k,onClear:()=>void t.clearScaffoldRunnerType(s.id),busy:r,viewClassName:"font-mono text-sm text-foreground"})]}),e.jsx("p",{className:"text-[11px] text-muted-foreground",children:a(d?"workspace.services.stack.runnerType.eligible":"workspace.services.stack.runnerType.notEligible")}),p.editable?e.jsx(ue,{id:"jobs.runnerTypePicker",props:{excludeRunnerTypeKeys:d?[d]:[],onPick:x=>void t.setScaffoldRunnerType(s.id,x),disabled:r},loading:null,fallback:null}):null]})}function be({framework:s,gestures:t}){const{t:a}=y(),o=C(s.affordances),p=t.busyFor(s.id),k=b(o,g.RenameFramework,a),r=b(o,g.SetFrameworkWhenToUse,a),d=T(o,g.RequestFrameworkLogoUpload),x=o.can(g.RequestFrameworkLogoUpload);return e.jsxs("li",{className:"flex items-start gap-2 rounded-md border p-2",children:[d?e.jsx(E,{src:s.logoUrl??null,size:"sm",shape:"square",disabled:!x||p,onUpload:v=>t.setFrameworkLogo(s.id,v),onDelete:o.can(g.ClearFrameworkLogo)?()=>t.clearFrameworkLogo(s.id):void 0}):null,e.jsxs("div",{className:"min-w-0 flex-1 space-y-1",children:[e.jsx(L,{label:a("workspace.services.stack.framework.name"),value:s.name,editable:k.editable,editReason:k.editReason,onCommit:v=>void t.renameFramework(s.id,v),busy:p,viewClassName:"text-sm font-medium text-foreground"}),e.jsx(L,{label:a("workspace.services.stack.whenToUse"),value:s.whenToUse??null,editable:r.editable,editReason:r.editReason,placeholder:a("workspace.services.stack.whenToUsePlaceholder"),onCommit:v=>void t.setFrameworkWhenToUse(s.id,v),multiline:!0,busy:p,viewClassName:"text-xs text-muted-foreground"}),e.jsx(ye,{framework:s,gestures:t})]}),T(o,g.DeleteFramework)?e.jsx(z,{set:o,action:g.DeleteFramework,triggerVariant:"ghost",triggerSize:"sm",triggerClassName:"h-7 shrink-0 gap-1 px-2 text-xs",align:"end",triggerChildren:e.jsxs(e.Fragment,{children:[e.jsx(G,{className:"size-3.5","aria-hidden":!0}),a("workspace.services.stack.framework.delete")]}),title:a("workspace.services.stack.framework.deleteTitle"),body:a("workspace.services.stack.framework.deleteBody",{name:s.name}),confirmLabel:a("workspace.services.stack.framework.deleteConfirm"),onConfirm:()=>
1void t.deleteFramework(s.id),busy:p}):null]})}function Le({language:s,languages:t,gestures:a}){const{t:o}=y(),p=C(s.affordances);if(!T(p,g.SetLanguageTranspilesTo))return null;const k=p.can(g.SetLanguageTranspilesTo),r=p.can(g.ClearLanguageTranspilesTo),d=a.busyFor(s.id),x=t.filter(u=>u.id!==s.id),v=e.jsxs(pe,{value:s.isTranspiledToId??void 0,disabled:!k||d,onValueChange:u=>void a.setLanguageTranspilesTo(s.id,u),children:[e.jsx(ge,{className:"h-7 w-44 text-xs","aria-label":o("workspace.services.stack.language.transpilesTo"),children:e.jsx(xe,{placeholder:o("workspace.services.stack.language.transpilesToNone")})}),e.jsx(ve,{children:x.map(u=>e.jsx(ke,{value:u.id,className:"text-xs",children:u.name},u.id))})]});return e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"text-xs text-muted-foreground",children:o("workspace.services.stack.language.transpilesTo")}),k?v:e.jsx(R,{reason:p.reasonText(g.SetLanguageTranspilesTo,o)??o("affordances.reasons.generic_blocked"),children:v}),s.isTranspiledToId&&r?e.jsx(S,{type:"button",variant:"ghost",size:"sm",className:"h-7 px-2 text-xs",disabled:d,onClick:()=>void a.clearLanguageTranspilesTo(s.id),children:o("workspace.services.stack.language.transpilesToClear")}):null]})}function Se({language:s,languages:t,frameworks:a,gestures:o,surfaceSet:p,onAddFramework:k}){const{t:r}=y(),d=C(s.affordances),x=o.busyFor(s.id),v=b(d,g.RenameLanguage,r),u=b(d,g.SetLanguageWhenToUse,r),h=T(d,g.SetLanguageCompiled),l=d.can(g.SetLanguageCompiled),c=T(d,g.RequestLanguageLogoUpload),i=e.jsx(A,{checked:s.isCompiled,disabled:!l||x,onCheckedChange:n=>void o.setLanguageCompiled(s.id,n),"aria-label":r("workspace.services.stack.language.compiled")});return e.jsxs(le,{role:"group","aria-label":s.name,className:"space-y-2 p-3",children:[e.jsxs("div",{className:"flex items-start gap-2",children:[c?e.jsx(E,{src:s.logoUrl??null,size:"sm",shape:"square",disabled:!d.can(g.RequestLanguageLogoUpload)||x,onUpload:n=>o.setLanguageLogo(s.id,n),onDelete:d.can(g.ClearLanguageLogo)?()=>o.clearLanguageLogo(s.id):void 0}):null,e.jsxs("div",{className:"min-w-0 flex-1 space-y-1",children:[e.jsx(L,{label:r("workspace.services.stack.language.name"),value:s.name,editable:v.editable,editReason:v.editReason,onCommit:n=>void o.renameLanguage(s.id,n),busy:x,viewClassName:"text-sm font-semibold text-foreground"}),e.jsx(L,{label:r("workspace.services.stack.whenToUse"),value:s.whenToUse??null,editable:u.editable,editReason:u.editReason,placeholder:r("workspace.services.stack.whenToUsePlaceholder"),onCommit:n=>void o.setLanguageWhenToUse(s.id,n),multiline:!0,busy:x,viewClassName:"text-xs text-muted-foreground"})]}),T(d,g.DeleteLanguage)?e.jsx(z,{set:d,action:g.DeleteLanguage,triggerVariant:"ghost",triggerSize:"sm",triggerClassName:"h-7 shrink-0 gap-1 px-2 text-xs",align:"end",triggerChildren:e.jsxs(e.Fragment,{children:[e.jsx(G,{className:"size-3.5","aria-hidden":!0}),r("workspace.services.stack.language.delete")]}),title:r("workspace.services.stack.language.deleteTitle"),body:r("workspace.services.stack.language.deleteBody",{name:s.name}),confirmLabel:r("workspace.services.stack.language.deleteConfirm"),onConfirm:()=>void o.deleteLanguage(s.id),busy:x}):null]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-x-4 gap-y-2",children:[h?e.jsxs("label",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[l?i:e.jsx(R,{reason:d.reasonText(g.SetLanguageCompiled,r)??r("affordances.reasons.generic_blocked"),children:i}),r("workspace.services.stack.language.compiled")]}):null,e.jsx(Le,{language:s,languages:t,gestures:o})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("h4",{className:"text-[11px] font-medium uppercase tracking-wide text-muted-foreground",children:r("workspace.services.stack.framework.plural")}),e.jsx(de,{variant:"secondary",className:"h-5 px-1.5 text-[10px] tabular-nums",children:a.length}),e.jsxs(q,{set:p,action:g.CreateFramework,onClick:k,variant:"ghost",className:"h-6 gap-1 px-1.5 text-[11px]",busy:o.createBusy,children:[e.jsx(D,{className:"size-3","aria-hidden":!0}),r("workspace.services.stack.framework.add")]})]}),a.length===0?e.jsx("p",{className:"text-xs text-muted-foreground",children:r("workspace.services.stack.framework.empty")}):e.jsx("ul",{className:"space-y-1.5",children:a.map(n=>e.jsx(be,{framework:n,gestures:o},n.id))})]})]})}function B({kind:s,busy:t,set:a,action:o,onSubmit:p,onCancel:k}){const{t:r}=y(),[d,x]=f.useState(""),[v,u]=f.useState(""),[h,l]=f.useState(!1),c=a!==null&&a.can(o),i=a===null?null:a.reasonText(o,r)??null,n=async()=>{const m=d.trim();if(m.length===0||!c)return;await p({name:m,whenToUse:v,isCompiled:s==="language"?h:void 0})&&k()};return e.jsxs("div",{className:"space-y-1.5 rounded-md border p-2.5",children:[e.jsx(he,{value:d,onChange:m=>x(m.target.value),placeholder:r(`workspace.services.stack.${s}.namePlaceholder`),"aria-label":r(`workspace.services.stack.${s}.name`),className:"h-7 text-xs",autoFocus:!0}
1),e.jsx(we,{value:v,onChange:m=>u(m.target.value),placeholder:r("workspace.services.stack.whenToUsePlaceholder"),"aria-label":r("workspace.services.stack.whenToUse"),rows:2,className:"text-xs"}),s==="language"?e.jsxs("label",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[e.jsx(A,{checked:h,onCheckedChange:l,"aria-label":r("workspace.services.stack.language.compiled")}),r("workspace.services.stack.language.compiled")]}):null,e.jsxs("div",{className:"flex justify-end gap-2",children:[e.jsx(S,{type:"button",variant:"ghost",size:"sm",className:"h-7 px-2 text-xs",onClick:k,children:r("workspace.services.record.nav.cancel")}),c?e.jsx(S,{type:"button",size:"sm",className:"h-7 px-2 text-xs",disabled:t||d.trim().length===0,onClick:()=>void n(),children:r(`workspace.services.stack.${s}.create`)}):e.jsx(R,{reason:i??r("workspace.common.verdictPending"),children:e.jsx(S,{type:"button",size:"sm",className:"h-7 px-2 text-xs",disabled:!0,children:r(`workspace.services.stack.${s}.create`)})})]})]})}function je(s){const t=W(),{track:a}=s,[o]=V(),[p]=$(),[k]=H(),[r]=K(),[d]=O(),[x]=Y(),[v]=Q(),[u]=X(),[h]=Z(),[l]=J();return f.useMemo(()=>({createLanguage:({name:c,isCompiled:i,whenToUse:n})=>a(M,()=>t(async()=>{var w;return(w=(await o({variables:{id:P(),name:c,isCompiled:i,isTranspiledToId:null,whenToUse:n.trim()?n.trim():null}})).data)==null?void 0:w.servicesCreateLanguage})),renameLanguage:(c,i)=>a(c,()=>t(async()=>{var m;return(m=(await p({variables:{languageId:c,name:i}})).data)==null?void 0:m.servicesRenameLanguage})),setLanguageCompiled:(c,i)=>a(c,()=>t(async()=>{var m;return(m=(await k({variables:{languageId:c,isCompiled:i}})).data)==null?void 0:m.servicesSetLanguageCompiled})),setLanguageWhenToUse:(c,i)=>a(c,()=>t(async()=>{var m;return(m=(await r({variables:{languageId:c,whenToUse:i}})).data)==null?void 0:m.servicesSetLanguageWhenToUse})),setLanguageTranspilesTo:(c,i)=>a(c,()=>t(async()=>{var m;return(m=(await d({variables:{languageId:c,targetLanguageId:i}})).data)==null?void 0:m.servicesSetLanguageTranspilesTo})),clearLanguageTranspilesTo:c=>a(c,()=>t(async()=>{var n;return(n=(await x({variables:{languageId:c}})).data)==null?void 0:n.servicesClearLanguageTranspilesTo})),deleteLanguage:c=>a(c,()=>t(async()=>{var n;return(n=(await v({variables:{languageId:c}})).data)==null?void 0:n.servicesDeleteLanguage})),setLanguageLogo:async(c,i)=>{await a(c,()=>_(i,async n=>{var w;return(w=(await u({variables:{languageId:c,mime:n}})).data)==null?void 0:w.servicesRequestLanguageLogoUpload},(n,m,w)=>t(async()=>{var U;return(U=(await h({variables:{languageId:c,objectKey:n,mime:m,size:w}})).data)==null?void 0:U.servicesSetLanguageLogo}),F.putToPresignedUrl))},clearLanguageLogo:async c=>{await a(c,()=>t(async()=>{var n;return(n=(await l({variables:{languageId:c}})).data)==null?void 0:n.servicesClearLanguageLogo}))}}),[t,a,o,p,k,r,d,x,v,u,h,l])}function Ce(s){const t=W(),{track:a}=s,[o]=I(),[p]=ee(),[k]=se(),[r]=ae(),[d]=te(),[x]=re(),[v]=oe(),[u]=ne(),[h]=ce();return f.useMemo(()=>({createFramework:(l,c,i)=>a(M,()=>t(async()=>{var m;return(m=(await o({variables:{id:P(),languageId:l,name:c,whenToUse:i.trim()?i.trim():null}})).data)==null?void 0:m.servicesCreateFramework})),renameFramework:(l,c)=>a(l,()=>t(async()=>{var n;return(n=(await p({variables:{frameworkId:l,name:c}})).data)==null?void 0:n.servicesRenameFramework})),setFrameworkWhenToUse:(l,c)=>a(l,()=>t(async()=>{var n;return(n=(await k({variables:{frameworkId:l,whenToUse:c}})).data)==null?void 0:n.servicesSetFrameworkWhenToUse})),deleteFramework:l=>a(l,()=>t(async()=>{var i;return(i=(await r({variables:{frameworkId:l}})).data)==null?void 0:i.servicesDeleteFramework})),setScaffoldRunnerType:(l,c)=>a(l,()=>t(async()=>{var n;return(n=(await d({variables:{frameworkId:l,runnerType:c}})).data)==null?void 0:n.servicesSetFrameworkScaffoldRunnerType})),clearScaffoldRunnerType:l=>a(l,()=>t(async()=>{var i;return(i=(await x({variables:{frameworkId:l}})).data)==null?void 0:i.servicesClearFrameworkScaffoldRunnerType})),setFrameworkLogo:async(l,c)=>{await a(l,()=>_(c,async i=>{var m;return(m=(await v({variables:{frameworkId:l,mime:i}})).data)==null?void 0:m.servicesRequestFrameworkLogoUpload},(i,n,m)=>t(async()=>{var N;return(N=(await u({variables:{frameworkId:l,objectKey:i,mime:n,size:m}})).data)==null?void 0:N.servicesSetFrameworkLogo}),F.putToPresignedUrl))},clearFrameworkLogo:async l=>{await a(l,()=>t(async()=>{var i;return(i=(await h({variables:{frameworkId:l}})).data)==null?void 0:i.servicesClearFrameworkLogo}))}}),[t,a,o,p,k,r,d,x,v,u,h])}function Ne(){const s=Te(),t=je(s),a=Ce(s),{busyFor:o,inFlight:p}=s;return f.useMemo(()=>({...t,...a,busyFor:o,createBusy:p.has(M)}),[t,a,o,p])}function Fe(){const{t:s}=y(),{languages:t,frameworks:a,surfaceSet:o,loading:p,error:k}=fe(),r=Ne(),[d,x]=f.useState(null),v=f.useMemo(()=>{const u=new Map;for(const h of a){const l=u.get(h.languageId)??[];u.set(h.languageId,[...l,h])}return u},[a]);return e.jsxs("div",{className:"space-y-3 p-4",children:[e.jsxs("header",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("h2",{className:"text-sm font-semibold",children:s("workspace.services.stack.title")}),e.jsx("p",{className:"text-xs text-muted-foreground",children:s("workspace.services.stack.subtitle")}),e.jsxs(q,{set:o,action:g.CreateLanguage,onClick:()=>x("language"),className:"ml-auto h-7 gap-1 px-2 text-xs",busy:r.createBusy,children:[e.jsx(D,{className:"size-3","aria-hidden":!0}),s("workspace.services.stack.language.add")]})]}),k?e.jsx("p",{role:"status",className:"text-xs text-muted-foreground",children:s("workspace.services.stack.liveInterrupted")}):null,d==="language"?e.jsx(B,{kind:"language",set:o,action:g.CreateLanguage,busy:r.createBusy,onCancel:()=>x(null),onSubmit:({name:u,whenToUse:h,isCompiled:l})=>r.createLanguage({name:u,whenToUse:h,isCompiled:l??!1})}):null,p?e.jsxs("div",{className:"space-y-3",children:[e.jsx(j,{className:"h-40 w-full"}),e.jsx(j,{className:"h-40 w-full"})]}):t.length===0&&!k?e.jsx("p",{className:"text-sm text-muted-foreground",children:s("workspace.services.stack.empty")}):e.jsx("div",{className:"space-y-3",children:t.map(u=>e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(Se,{language:u,languages:t,frameworks:v.get(u.id)??[],gestures:r,surfaceSet:o,onAddFramework:()=>x({languageId:u.id})}),typeof d=="object"&&(d==null?void 0:d.languageId)===u.id?e.jsx(B,{kind:"framework",set:o,action:g.CreateFramework,busy:r.createBusy,onCancel:()=>x(null),onSubmit:({name:h,whenToUse:l})=>r.createFramework(u.id,h,l)}):null]},u.id))})]})}function gs(s){const{t}=y(),{allowed:a,reasonCode:o}=F.useShellGate("platform.admin");return o===ie.signedOut?e.jsxs("div",{className:"space-y-3 p-4",children:[e.jsx(j,{className:"h-8 w-56"}),e.jsx(j,{className:"h-40 w-full"})]}):a?e.jsx(Fe,{}):e.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-2 p-8 text-center",children:[e.jsx(me,{className:"size-6 text-muted-foreground","aria-hidden":!0}),e.jsx("p",{className:"text-sm font-medium",children:t("workspace.services.stack.refusedTitle")}),e.jsx("p",{className:"max-w-sm text-xs text-muted-foreground",children:t("workspace.services.stack.refusedBody")})]})}export{gs as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.