@opencode/console 0.1.3 → 0.1.4

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 (61) hide show
  1. package/README.md +14 -0
  2. package/{chunk-11wqcgnn.js → chunk-172desm7.js} +2 -2
  3. package/{chunk-5a8bvcgq.js → chunk-17ek638g.js} +4 -4
  4. package/{chunk-1z17cm3w.js → chunk-1900gmc1.js} +2 -2
  5. package/chunk-1ekysq54.js +1 -0
  6. package/chunk-38wxxryg.js +1 -0
  7. package/chunk-4hra11sy.js +2 -0
  8. package/{chunk-z5mqjw9r.js → chunk-6dmhresx.js} +2 -2
  9. package/{chunk-m3m5harb.js → chunk-81pw2xsw.js} +2 -2
  10. package/chunk-87hkw75t.js +11 -0
  11. package/chunk-8stwzw95.js +2 -0
  12. package/{chunk-b4fde357.js → chunk-93je9v9b.js} +2 -2
  13. package/chunk-bfd21777.js +2 -0
  14. package/chunk-c8zgzn9g.js +2 -0
  15. package/chunk-c94982xf.js +1 -0
  16. package/{chunk-gcqbk8bn.js → chunk-e219b1sg.js} +67 -67
  17. package/chunk-eja0bnj7.js +1 -0
  18. package/chunk-fsg05nff.js +2 -0
  19. package/chunk-gj3j0mk6.js +1 -0
  20. package/chunk-hkjjea67.js +3 -0
  21. package/chunk-httrtddj.js +1 -0
  22. package/chunk-j6qa0p88.js +1 -0
  23. package/chunk-ka5nrr3r.js +1 -0
  24. package/chunk-m711drrn.js +1 -0
  25. package/chunk-n6fr9p3j.js +254 -0
  26. package/chunk-qsqer89q.js +1 -0
  27. package/{chunk-7qa618ad.js → chunk-tzhpc3tb.js} +49 -49
  28. package/chunk-v67dra35.js +1 -0
  29. package/chunk-vf7nj8yg.js +32 -0
  30. package/chunk-vrvsj5aj.js +1 -0
  31. package/chunk-w7jwta9c.js +1 -0
  32. package/chunk-wvtbwbxs.js +2 -0
  33. package/{chunk-6xs4y82y.js → chunk-xsr5jd61.js} +2 -2
  34. package/chunk-yqbzfq0h.js +1 -0
  35. package/dsh-plugin.js +1 -1
  36. package/index.js +60 -51
  37. package/package.json +1 -1
  38. package/pi-extension.js +2 -2
  39. package/chunk-0752rr1w.js +0 -1
  40. package/chunk-38zs2jre.js +0 -1
  41. package/chunk-3p7x3f0s.js +0 -1
  42. package/chunk-6fqhbptf.js +0 -1
  43. package/chunk-6hmr86q5.js +0 -3
  44. package/chunk-82p6vmpy.js +0 -1
  45. package/chunk-9dgq3xc0.js +0 -32
  46. package/chunk-9zpe1ry1.js +0 -2
  47. package/chunk-b6azftzw.js +0 -254
  48. package/chunk-bcmj4f7y.js +0 -2
  49. package/chunk-cd4h496v.js +0 -2
  50. package/chunk-g9f1r3v3.js +0 -1
  51. package/chunk-ghvsrvdw.js +0 -1
  52. package/chunk-jpqmm6pm.js +0 -2
  53. package/chunk-jxh84gfh.js +0 -1
  54. package/chunk-kd1hjfpe.js +0 -1
  55. package/chunk-mnjk01tj.js +0 -1
  56. package/chunk-nqk8n93s.js +0 -1
  57. package/chunk-qp7a49b3.js +0 -1
  58. package/chunk-r1adn0ka.js +0 -11
  59. package/chunk-tamzaefd.js +0 -1
  60. package/chunk-x65p26st.js +0 -2
  61. package/chunk-yb3fn5r1.js +0 -2
package/README.md CHANGED
@@ -31,6 +31,20 @@ npx @opencode/console setup codex
31
31
  Setup writes Codex's `~/.codex/config.toml` and `hooks.json` (or those in `CODEX_HOME`) and approves its policy hooks,
32
32
  so Codex runs them without asking in `/hooks`.
33
33
 
34
+ ## Keep your own Claude or ChatGPT sign-in
35
+
36
+ ```sh
37
+ npx @opencode/console setup claude-code --keep-provider
38
+ npx @opencode/console setup codex --keep-provider
39
+ ```
40
+
41
+ Claude Code or Codex keeps your own sign-in and models, and still gets the workspace's MCP servers, skills,
42
+ instructions and policies. If the workspace counts usage from members' own subscriptions, they then send it token
43
+ counts and model names, and never prompts or code. Codex reports them from a hook after each model response; it needs
44
+ Codex 0.164.0 or later. An OpenTelemetry endpoint you already set for Claude Code stays yours, and Claude Code sends
45
+ nothing then. `npx @opencode/console status` shows which applies. Run setup without `--keep-provider` to use the
46
+ workspace's models again.
47
+
34
48
  ## Set up DeepSeek Harness
35
49
 
36
50
  ```sh
@@ -1,2 +1,2 @@
1
- import{A,U,Vt,Wn,r,Cn,_n,er,ye,S,at,Wr,qt,me,Jr,W,Ve,b,_e,d,ia,ln,B,e,V,v,n,x,Rn,l,Gr,w,D,Ze,rr,aa,re,ca,g,fi,Ye,Qe,Pe,or,gt,la,Vr,Ht,Q,di,ua,Mn,Ho,q,Nn}from"./chunk-9dgq3xc0.js";var wo=Object.defineProperty,Ro=(o)=>o;function Lo(o,i){this[o]=Ro.bind(null,i)}var De=(o,i)=>{for(var p in i)wo(o,p,{get:i[p],enumerable:!0,configurable:!0,set:Lo.bind(i,p)})};var f=Q.check(la(0)),h=Q.check(Vr(0)),bn=e.pipe(re("RelativePath"),me({identifier:"RelativePath"})),P=e.pipe(re("AbsolutePath"),me({identifier:"AbsolutePath"})),t=(o)=>Ve(o).pipe(g(b(_e(o)),{decode:ye({strict:!1}),encode:at(Vt((i)=>i!==void 0))})),Uo=(o,i)=>Object.defineProperties(o,Object.getOwnPropertyDescriptors(i)),s=(o)=>(i)=>Uo(i,o(i)),vn=gt.pipe(g(Mn,{decode:S((o)=>_n(o)),encode:S((o)=>er(o))}));var To=26,Fo="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",qe=0,pe=0;function y(){return $e(!1)}function je(){return $e(!0)}function $e(o,i=Date.now()){if(i!==qe)qe=i,pe=0;pe++;let p=BigInt(i)*0x1000n+BigInt(pe),u=o?~p:p,k=Array.from({length:6},(I,Po)=>Number(u>>BigInt(40-8*Po)&0xffn).toString(16).padStart(2,"0")).join(""),M=crypto.getRandomValues(new Uint8Array(To-12));return k+Array.from(M,(I)=>Fo[I%62]).join("")}var Ke=e.pipe(re("Project.ID"),me({identifier:"Project.ID"}),s((o)=>({global:o.make("global")})));var ce=e.check(or("wrk")).pipe(re("Workspace.ID"),me({identifier:"Workspace.ID"}),s((o)=>{let i=()=>o.make("wrk_"+y());return{ascending:(p)=>{if(!p)return i();return o.make(p)},create:i}}));var Ge=n({directory:P,workspaceID:t(ce)}).annotate({identifier:"Location.Ref"}),zn=n(qt(Ge.fields,["workspaceID"])).annotate({identifier:"Location.PublicRef"});class Je extends q("Location.Info")({directory:P,workspaceID:t(ce),project:n({id:Ke,directory:P,canonical:P})}){}var jn=n(qt(Je.fields,["workspaceID"])).annotate({identifier:"Location.PublicInfo"});var _o=e.check(or("evt_")).pipe(re("Event.ID"),me({identifier:"Event.ID"}),s((o)=>({create:()=>o.make("evt_"+y())}))),Bo=Q.check(Vr(0)).pipe(re("Event.Seq"),me({identifier:"Event.Seq"})),Oo=Q.check(Vr(1)).pipe(re("Event.Version"),me({identifier:"Event.Version"})),Hn=n({aggregateID:e,seq:Bo,version:Oo});function c(o){let i=n(o.schema);return n({id:_o,created:gt,metadata:t(x(e,B)),type:d(o.type),location:t(Ge),data:i}).annotate({identifier:o.identifier??o.type}).pipe(s(()=>({type:o.type,durability:"ephemeral",durable:void 0,data:i})))}function m(...o){return Object.freeze(o)}var de=e.check(or("ses")).pipe(re("SessionID"),me({identifier:"Session.ID"}),s((o)=>({create:()=>o.make("ses_"+je())})));var tt=e.check(or("per")).pipe(re("Permission.ID"),me({identifier:"Permission.ID"}),s((o)=>({create:(i)=>o.make(i??"per_"+y())}))),No=w([n({type:d("tool"),messageID:e,id:e})]).annotate({identifier:"Permission.Source"}),qo={sessionID:de,action:e,resources:l(e),save:l(e).pipe(t),metadata:x(e,B).pipe(t),source:No.pipe(t),message:e.pipe(t)},zo=n({id:tt,...qo}).annotate({identifier:"Permission.Request"}),jo=D(["once","always","reject"]).annotate({identifier:"Permission.Reply"}),Xe=c({type:"permission.asked",schema:zo.fields}),et=c({type:"permission.replied",schema:{sessionID:de,requestID:tt,reply:jo}}),lr={Asked:Xe,Replied:et,Definitions:m(Xe,et)},Vo=D(["allow","deny","ask"]).annotate({identifier:"Permission.Effect"}),$o=n({action:e,resource:e,effect:Vo}).annotate({identifier:"Permission.Rule"}),ot=l($o).annotate({identifier:"Permission.Ruleset"});var ze=e.pipe(re("Integration.ID"),me({identifier:"Integration.ID"})),_=e.pipe(re("Integration.MethodID"),me({identifier:"Integration.MethodID"}));var j=e.pipe(re("Credential.ID"),me({identifier:"Credential.ID"}),s((o)=>({create:()=>o.make("cred_"+y())}))),it=c({type:"credential.updated",schema:{}}),nt=c({type:"credential.switched",schema:{integrationID:ze,credentialID:Ze(j)}}),yr={Updated:it,Switched:nt,Definitions:m(it,nt)},Ko=n({type:d("oauth"),methodID:_,refresh:e,access:e,expires:h,metadata:t(x(e,B))}).annotate({identifier:"Credential.OAuth"}),Go=n({type:d("key"),key:e,metadata:t(x(e,B))}).annotate({identifier:"Credential.Key"}),Yo=n({type:d("external"),methodID:_,metadata:t(x(e,B))}).annotate({identifier:"Credential.External"}),rt=w([Ko,Go,Yo]).pipe(Qe("type")).annotate({identifier:"Credential.Value"}),Ir=n({id:j,integrationID:ze,label:e,active:v,value:rt}).annotate({identifier:"Credential.Entry"}),br=n({id:t(j),integrationID:ze,label:t(e),value:rt,activate:t(v)}).annotate({identifier:"Credential.CreateInput"});var pt=n({status:D(["needs_auth"]),message:e,url:t(e)}).annotate({identifier:"Connection.Status"}),Jo=n({type:d("credential"),id:j,label:e,method:D(["key","oauth","external"]),status:t(pt)}).annotate({identifier:"Connection.CredentialInfo"}),Qo=n({type:d("env"),name:e,status:t(pt)}).annotate({identifier:"Connection.EnvInfo"}),ct=w([Jo,Qo]).pipe(Qe("type")).annotate({identifier:"Connection.Info"});var Xo=e.check(or("frm_")).pipe(re("Form.ID"),me({identifier:"Form.ID"})),ge=Xo.pipe(s((o)=>({create:(i)=>o.make(i??"frm_"+y())}))),Zo=x(e,B).annotate({identifier:"Form.Metadata"}),ft=n({value:e,label:e,description:e.pipe(t)}).annotate({identifier:"Form.Option"}),ei=n({key:e,op:D(["eq","neq"]),value:w([e,V,v])}).annotate({identifier:"Form.When"}),O={key:e,title:e.pipe(t),description:e.pipe(t),required:v.pipe(t),hidden:v.pipe(t).annotate({description:"Skip the interactive authentication prompt and use the default unless an answer is supplied"}),when:l(ei).pipe(t)},ti=n({...O,type:d("string"),format:D(["email","uri","date","date-time"]).pipe(t),minLength:h.pipe(t),maxLength:h.pipe(t),pattern:e.pipe(t),placeholder:e.pipe(t),default:e.pipe(t),options:l(ft).pipe(t),custom:v.pipe(t)}).annotate({identifier:"Form.StringField"}),oi=n({...O,type:d("number"),minimum:V.pipe(t),maximum:V.pipe(t),default:V.pipe(t)}).annotate({identifier:"Form.NumberField"}),ii=n({...O,type:d("integer"),minimum:V.pipe(t),maximum:V.pipe(t),default:V.pipe(t)}).annotate({identifier:"Form.IntegerField"}),ni=n({...O,type:d("boolean"),default:v.pipe(t)}).annotate({identifier:"Form.BooleanField"}),ri=n({...O,type:d("multiselect"),options:l(ft),minItems:h.pipe(t),maxItems:h.pipe(t),custom:v.pipe(t),default:l(e).pipe(t)}).annotate({identifier:"Form.MultiselectField"}),ai=n({key:e,type:d("external"),url:e,title:e.pipe(t),description:e.pipe(t)}).annotate({identifier:"Form.ExternalField"}),si=w([ti,oi,ii,ni,ri,ai]).pipe(Qe("type"),me({identifier:"Form.Field"})),K=Gr(si).annotate({identifier:"Form.Fields"}),pi={id:ge,sessionID:e,title:e,metadata:Zo.pipe(t)},ut=n({...pi,fields:K}).annotate({identifier:"Form.Info"}),ci=w([e,V,v,l(e)]).annotate({identifier:"Form.Value"}),Se=x(e,ci).annotate({identifier:"Form.Answer"}),li=w([n({status:d("pending")}),n({status:d("answered"),answer:Se}),n({status:d("cancelled"),message:e.pipe(t)})]).pipe(Qe("status")).annotate({identifier:"Form.State"}),Rr=n({...ut.fields,state:li}).annotate({identifier:"Form.Detail"}),Lr=n({answer:Se}).annotate({identifier:"Form.Reply"}),lt=c({type:"form.created",schema:{form:ut}}),dt=c({type:"form.replied",schema:{id:ge,sessionID:e,answer:Se}}),mt=c({type:"form.cancelled",schema:{id:ge,sessionID:e}}),Ar={Created:lt,Replied:dt,Cancelled:mt,Definitions:m(lt,dt,mt)};var he=ze,xe=_,mi=n({id:xe,type:d("oauth"),label:e,form:t(K)}).annotate({identifier:"Integration.OAuthMethod"}),ui=n({id:xe,type:d("command"),label:e,command:l(e)}).annotate({identifier:"Integration.CommandMethod"}),gi=n({type:d("key"),label:t(e),form:t(K)}).annotate({identifier:"Integration.KeyMethod"}),Si=n({id:xe,type:d("external"),label:e,form:t(K)}).annotate({identifier:"Integration.ExternalMethod"}),hi=n({type:d("env"),names:l(e)}).annotate({identifier:"Integration.EnvMethod"}),xi=w([mi,ui,gi,Si,hi]).pipe(Qe("type")).annotate({identifier:"Integration.Method"}),ht=c({type:"integration.updated",schema:{}}),qr={Updated:ht,Definitions:m(ht)},zr=n({id:he,name:e,metadata:t(x(e,ln))}).annotate({identifier:"Integration.Ref"}),jr=n({id:he,name:e,metadata:t(x(e,ln)),methods:l(xi),connections:l(ct)}).annotate({identifier:"Integration.Info"}),xt=e.pipe(re("Integration.AttemptID"),me({identifier:"Integration.AttemptID"}),s((o)=>({create:()=>o.make("con_"+y())}))),C=n({created:V,expires:V});class yi extends q("Integration.Attempt")({attemptID:xt,url:e,instructions:e,mode:D(["auto","code"]),paste:Ve(d(!0)),time:C}){}var $r=w([n({status:d("pending"),time:C}),n({status:d("complete"),time:C}),n({status:d("failed"),message:e,time:C}),n({status:d("expired"),time:C})]).pipe(Qe("status")).annotate({identifier:"Integration.AttemptStatus"}),Kr=n({attemptID:xt,time:C}).annotate({identifier:"Integration.CommandAttempt"}),Yr=w([n({status:d("pending"),message:t(e),time:C}),n({status:d("complete"),time:C}),n({status:d("failed"),message:e,time:C}),n({status:d("expired"),time:C})]).pipe(Qe("status")).annotate({identifier:"Integration.CommandAttemptStatus"});var It=w([D(["reasoning","reasoning_content","reasoning_text"]),e]).annotate({identifier:"Model.ReasoningField"}),bt=D(["max_completion_tokens","max_tokens"]).annotate({identifier:"Model.MaxTokensField"}),vt=D(["assets","state","root"]).annotate({identifier:"Model.MediaInput"}),Ii=D(["anthropic","alibaba"]).annotate({identifier:"Model.CacheFormat"}),N=n({reasoningField:It.pipe(t),requireReasoning:v.pipe(t),maxTokensField:bt.pipe(t),requireFinishReason:v.pipe(t),requireAssistantAfterTool:v.pipe(t),supportsPromptCacheKey:v.pipe(t),streamUsage:v.pipe(t),cacheFormat:Ii.pipe(t),supportsThinkingBlockBinding:v.pipe(t),supportsEffortUpdates:v.pipe(t),mediaInput:vt.pipe(t)}).annotate({identifier:"Model.Compatibility"}),G=n(qt(N.fields,["supportsThinkingBlockBinding","supportsEffortUpdates"])).annotate({identifier:"Provider.Compatibility"});var R=e.pipe(re("Provider.ID"),me({identifier:"Provider.ID"}),s((o)=>({opencode:o.make("opencode"),anthropic:o.make("anthropic"),openai:o.make("openai"),google:o.make("google"),googleVertex:o.make("google-vertex"),githubCopilot:o.make("github-copilot"),claudeAgent:o.make("claude-agent"),amazonBedrock:o.make("amazon-bedrock"),azure:o.make("azure"),openrouter:o.make("openrouter"),mistral:o.make("mistral"),gitlab:o.make("gitlab")}))),Ct=c({type:"provider.updated",schema:{}}),ra={Updated:Ct,Definitions:m(Ct)},Dt=e,vi=D(["auto","enabled","disabled"]),Ci=w([n({type:d("summary")}),n({type:d("native")})]).pipe(Qe("type")).annotate({identifier:"Provider.Compaction"}),Di=D(["http","websocket"]).annotate({identifier:"Provider.Transport"}),ki=ia([V,D(["ms","s","m","h","d"])]).check(Pe(/^\d+(ms|s|m|h|d)$/)).annotate({identifier:"Provider.CacheTTL"}),Mi=w([v,n({interval:w([d("auto"),e]).pipe(t).annotate({description:`Duration such as "4 minutes", or "auto" for 90% of the model's cache.ttl`}),duration:e.pipe(t).annotate({description:'Duration such as "30 minutes"'})})]).annotate({identifier:"Provider.CacheWarming"}),Pi=n({ttl:ki.pipe(t),warming:Mi.pipe(t)}).annotate({identifier:"Provider.Cache"}),wi=D(["zstd","gzip","none"]).annotate({identifier:"Provider.Encoding"}),Ie=w([gt,d(!1)]).pipe(t),Y=Rn(n({timeout:Ie,headerTimeout:Ie,chunkTimeout:Ie,compaction:Ci.pipe(t),cache:Pi.pipe(t),transport:Di.pipe(t),encoding:wi.pipe(t)}),[x(e,ln)]).annotate({identifier:"Provider.Settings"}),Ri={settings:Y.pipe(t),headers:x(e,e).pipe(t),body:x(e,ln).pipe(t)},sa=n({settings:Y.pipe(fi(r({}))),headers:x(e,e),body:x(e,ln)}).annotate({identifier:"Provider.Request"}),pa=n({id:R,canonical:R.pipe(t),integrationID:he.pipe(t),name:e,activation:vi,package:Dt,compatibility:G.pipe(t),...Ri}).annotate({identifier:"Provider.Info"}).pipe(s(()=>({empty:(o)=>({id:o,name:o,activation:"auto",package:""})})));var fa=gt.pipe(re("Money.USD"),me({identifier:"Money.USD"}),s((o)=>({zero:o.make(0)}))),L=gt.pipe(re("Money.USDPerMillionTokens"),me({identifier:"Money.USDPerMillionTokens"}),s((o)=>({zero:o.make(0)})));var T=e.pipe(re("Model.ID")),kt=c({type:"model.updated",schema:{}}),ba={Updated:kt,Definitions:m(kt)},F=e.pipe(re("Model.VariantID")),Li=n({id:T,providerID:R,variant:F.pipe(t)}).annotate({identifier:"Model.Ref"}).pipe(s((o)=>({parse:(i)=>{let p=i.indexOf("/");if(p<=0)throw Error(`Invalid model reference: ${i}`);let u=i.slice(0,p),k=i.indexOf("#",p+1),M=i.slice(p+1,k===-1?void 0:k),I=k===-1?void 0:i.slice(k+1);if(!M||u.includes("#")||I!==void 0&&(!I||I.includes("#")))throw Error(`Invalid model reference: ${i}`);return o.make({providerID:R.make(u),id:T.make(M),...I?{variant:F.make(I)}:{}})}})));var ve=e.pipe(re("Model.Family")),Ce=w([D(["chat","decision","image"]),e]).annotate({identifier:"Model.Type"}),H=Rn(n(Wr(Y.schema.fields,["compaction","cache","encoding"])),[x(e,ln)]).annotate({identifier:"Model.Settings"}),Ai=Rn(n(qt(H.schema.fields,["cache"])),H.records).annotate({identifier:"Model.VariantSettings"}),Mt={settings:H.pipe(t),headers:x(e,e).pipe(t),body:x(e,ln).pipe(t)},X=n({tools:v,input:l(e),output:l(e),temperature:v.pipe(t)}).annotate({identifier:"Model.Capabilities"}).pipe(s(()=>({default:()=>({tools:!0,input:["text","image"],output:["text"]})}))),Ui=n({tier:n({type:Ye("context"),size:Q}).pipe(t),input:L,output:L,cache:n({read:L,write:L})}).annotate({identifier:"Model.Cost"}),Ti=n({id:F,...Mt,settings:Ai.pipe(t)}).annotate({identifier:"Model.Variant"}),va=n({id:T,modelID:T,providerID:R,canonical:R.pipe(t),type:Ce.pipe(t),family:ve.pipe(t),name:e,compatibility:N.pipe(t),package:Dt.pipe(t),...Mt,capabilities:X,variants:l(Ti),time:n({released:gt}),cost:l(Ui),status:D(["alpha","beta","deprecated","active"]),enabled:v,limit:n({context:Q,input:Q.pipe(t),output:Q})}).annotate({identifier:"Model.Info"}).pipe(s(()=>({default:(o,i)=>({id:i,modelID:i,providerID:o,name:i,capabilities:X.default(),variants:[],time:{released:0},cost:[],status:"active",enabled:!0,limit:{context:200000,output:32000}})})));var Fi=R.check(Pe(/^[^/#]+$/u)),Ei=T.check(Pe(/^[^#]+$/u)),_i=F.check(Pe(/^[^#]+$/u)),Pt=n({providerID:Fi,model:Ei,variant:_i.pipe(t)}),Bi=e.check(Pe(/^[^/#]+\/[^#]+(?:#[^#]+)?$/u)),Z=w([Bi,Pt]).pipe(g(Pt,{decode:S((o)=>typeof o==="string"?Oi(o):o),encode:ye({strict:!1})})).annotate({identifier:"Config.ModelSelection"});function Oi(o){let i=Li.parse(o);return{providerID:i.providerID,model:i.id,...i.variant?{variant:i.variant}:{}}}var Wi=Rn(n(Y.schema.fields),[x(e,rr(Nn))]).annotate({identifier:"Config.Provider.Settings"}),Me=Rn(n(H.schema.fields),[x(e,rr(Nn))]).annotate({identifier:"Config.Model.Settings"}),Rt=x(e,Nn),we={settings:Wi.pipe(t),headers:x(e,e).pipe(t),body:Rt.pipe(t)},wt={settings:Me.pipe(t),headers:x(e,e).pipe(t),body:Rt.pipe(t)};class Lt extends q("Config.Provider.Request")({headers:we.headers,body:we.body}){}class At extends q("Config.Model.Cost.Cache")({read:L.pipe(t),write:L.pipe(t)}){}class Re extends q("Config.Model.Cost")({tier:n({type:d("context"),size:Q}).pipe(t),input:L,output:L,cache:At.pipe(t)}){}class Ut extends q("Config.Model.Limit")({context:Q.pipe(t),input:Q.pipe(t),output:Q.pipe(t)}){}var Ni=w([n({supported:d(!1)}),n({supported:d(!0),toggle:v.pipe(t),effort:e.pipe(l,t),budget:n({min:Q.pipe(t),max:Q.pipe(t)}).pipe(t)})]).annotate({identifier:"Config.Model.Reasoning"});class Tt extends q("Config.Model")({modelID:T.pipe(t),type:Ce.pipe(t),family:ve.pipe(t),name:e.pipe(t),releaseDate:e.check(Pe(/^\d{4}-\d{2}(-\d{2})?$/u)).annotate({description:"Release date as YYYY-MM-DD or YYYY-MM"}).pipe(t),compatibility:N.pipe(t),package:e.pipe(t),...wt,capabilities:X.mapFields((o)=>({tools:t(o.tools),input:t(o.input),output:t(o.output),temperature:o.temperature,reasoning:Ni.pipe(t)})).annotate({identifier:"Config.Model.Capabilities"}).pipe(t),variants:n({id:F,...wt,settings:Rn(n(qt(Me.schema.fields,["cache"])),Me.records).annotate({identifier:"Config.Model.VariantSettings"}).pipe(t)}).pipe(l,t),cost:w([Re,Re.pipe(l)]).pipe(t),disabled:v.pipe(t),limit:Ut.pipe(t)}){}class Le extends q("Config.Provider")({canonical:R.pipe(t),name:e.pipe(t),env:e.pipe(l,t),package:e.pipe(t),compatibility:G.pipe(t),...we,models:x(e,Tt).pipe(t)}){}var qi=e.check(Pe(/^#[0-9a-fA-F]{6}$/u));class Ft extends q("Config.Agent")({model:Z.pipe(t),request:Lt.pipe(t),system:e.pipe(t),description:e.pipe(t),mode:D(["subagent","primary","all"]).pipe(t),hidden:v.pipe(t),color:qi.pipe(ca(()=>Cn),t),steps:f.pipe(t),disabled:v.pipe(t),permissions:ot.pipe(t)}){}class _t extends q("Config.Media.Image")({auto_resize:v.pipe(t),max_width:f.pipe(t),max_height:f.pipe(t),max_base64_bytes:f.pipe(t)}){}class Bt extends q("Config.Media")({image:_t.pipe(t)}){}class Wt extends q("Config.Compaction.Keep")({tokens:h.pipe(t)}){}var zi=e.check(Pe(/^([1-9]\d?(\.\d+)?)%$/u)).annotate({identifier:"Config.Compaction.Percent"});class Nt extends q("Config.Compaction")({auto:v.pipe(t),keep:Wt.pipe(t),buffer:w([zi,h]).pipe(t).annotate({description:`Room kept free below the model's context window before automatic compaction, as a share of the window from "1%" to "99%", such as "20%" to compact at 80% full. A token count is also accepted.`})}){}class $t extends q("Config.Command")({template:e,description:e.pipe(t),agent:e.pipe(t),model:Z.pipe(t),subagent:v.pipe(t),subtask:v.annotate({description:"Deprecated alias for subagent."}).pipe(t)}){}var ji={todo:"Enable the experimental todowrite tool.",background_compaction:"Enable experimental background compaction: summarize the conversation in the background as it nears the compaction threshold, so automatic compaction does not wait for the summary. Background summaries that are never used still cost tokens.",media_blob:"Store new session media once in a deduplicated blob table instead of inline in every message row.",schedules:"Enable experimental scheduled tasks that wake a session with a prompt.",artifacts:"Enable experimental artifacts backed by pluggable providers."};var Jt=D(["allow","deny"]),Cs=D(["provider.use","tool.use","integration.connect","integration.use","mcp.use","skill.use","plugin.use","websearch.use"]),Yt=n({action:Cs,resource:e,effect:Jt}),Vi=new Map([["mcp","mcp.use"],["skill","skill.use"],["plugin","plugin.use"]]),Ae=Yt.pipe(g(_e(Yt),{decode:S((o)=>{if(o.action!=="integration.use")return o;let i=o.resource.indexOf(":"),p=i===-1?void 0:Vi.get(o.resource.slice(0,i));if(!p)return o;return{...o,action:p,resource:o.resource.slice(i+1)}}),encode:ye()}));class Qt extends q("ConfigExperimental.Info")({portable_shell_scanner:v.pipe(t).annotate({description:"Deprecated: the built-in shell permission scanner is now always enabled."}),all_flags:v.pipe(t).annotate({description:"Turn every feature flag on regardless of the build channel, like OPENCODE_FLAGS=all; explicit per-flag settings still win, and false is not a kill switch."}),...Wn(ji,(o)=>v.pipe(t).annotate({description:`${o} Defaults to on in local and dev builds and off in releases.`})),part_rows:v.pipe(t).annotate({description:"Write each assistant part as its own session_part row instead of rewriting the whole message on every event. Defaults to false."}),image_generate:w([v,n({model:Z.pipe(t).annotate({description:"Default model for the experimental_image_generate tool when the agent doesn't choose one, as providerID/modelID. Falls back to automatic selection when it isn't available."})})]).pipe(t).annotate({description:"Settings for the experimental_image_generate tool, which is offered while a connected provider has an image model."}),subagent_depth:h.pipe(t).annotate({description:"Maximum subagent nesting depth. Defaults to 1."}),location_idle_timeout:w([Ho,d(!1)]).pipe(t).annotate({description:'How long a location can go without session activity before its services are unloaded. Running sessions and background jobs keep a location loaded. Set to false to never unload (default: "60 minutes")'}),policies:Ae.pipe(l,t).annotate({description:"Deprecated: use top-level policies. Ordered policies controlling access to configured resources"})}){}class Zt extends q("Config.Formatter.Entry")({disabled:v.pipe(t),command:e.pipe(l,t),environment:x(e,e).pipe(t),extensions:e.pipe(l,t)}){}var $i=w([v,x(e,Zt)]);var Ki=n({disabled:d(!0)});class to extends q("Config.LSP.Server")({command:e.pipe(l),extensions:e.pipe(l,t),disabled:v.pipe(t),env:x(e,e).pipe(t),initialization:x(e,B).pipe(t)}){}var Gi=w([Ki,to]),Yi=w([v,x(e,Gi)]);class oe extends q("Mcp.TimeoutConfig")({startup:f.pipe(t).annotate({description:"Maximum time in milliseconds to establish and initialize the MCP server."}),catalog:f.pipe(t).annotate({description:"Maximum time in milliseconds to wait for MCP discovery requests such as tools/list and prompts/list."}),execution:f.pipe(t).annotate({description:"Maximum time in milliseconds to wait for MCP tool and prompt execution."})}){}var Ue=D(["legacy","auto","2026-07-28"]).annotate({identifier:"Mcp.Protocol",description:'MCP protocol negotiation. "legacy" (default) opens with the initialize handshake and speaks protocol revisions up to 2025-11-25. "auto" probes for the 2026-07-28 revision and falls back to legacy when the server does not support it. "2026-07-28" requires that revision and fails otherwise.'});class Te extends q("Mcp.LocalConfig")({type:d("local"),command:e.pipe(l),cwd:e.pipe(t).annotate({description:"Working directory for the MCP server process. Relative paths resolve from the workspace directory."}),environment:x(e,e).pipe(t),disabled:v.pipe(t),codemode:v.pipe(t).annotate({description:"Expose this server's tools through Code Mode. Defaults to true."}),timeout:oe.pipe(t),protocol:Ue.pipe(t),pool:v.pipe(t).annotate({description:'Share one connection to this server across every directory that configures it identically, instead of one per directory. Only connections that negotiate the 2026-07-28 revision are shared; an unset "protocol" becomes "auto", and "legacy" never shares. Defaults to false.'})}){}class Fe extends q("Mcp.OAuthConfig")({client_id:e.pipe(t),client_secret:e.pipe(t),scope:e.pipe(t),callback_port:Q.check(Ht({minimum:1,maximum:65535})).pipe(t),redirect_uri:e.pipe(t),auth_server_metadata_url:e.pipe(t).annotate({description:"URL of the OAuth or OpenID Connect authorization server metadata document. Set when the MCP server does not publish protected resource metadata that names its authorization server."})}){}class Ee extends q("Mcp.RemoteConfig")({type:d("remote"),url:e,headers:x(e,e).pipe(t),oauth:w([Fe,d(!1)]).pipe(t),disabled:v.pipe(t),codemode:v.pipe(t).annotate({description:"Expose this server's tools through Code Mode. Defaults to true."}),timeout:oe.pipe(t),protocol:Ue.pipe(t),pool:v.pipe(t).annotate({description:'Share one connection to this server across every directory that configures it identically, instead of one per directory. Only connections that negotiate the 2026-07-28 revision are shared; an unset "protocol" becomes "auto", and "legacy" never shares. Defaults to false.'})}){}var Ji=w([Te,Ee]).pipe(Qe("type")),Hi=n({status:d("connected")}).annotate({identifier:"Mcp.Status.Connected"}),Qi=n({status:d("pending")}).annotate({identifier:"Mcp.Status.Pending"}),Xi=n({status:d("disabled")}).annotate({identifier:"Mcp.Status.Disabled"}),Zi=n({status:d("failed"),error:e}).annotate({identifier:"Mcp.Status.Failed"}),en=n({status:d("needs_auth"),error:e}).annotate({identifier:"Mcp.Status.NeedsAuth"}),tn=w([Hi,Qi,Xi,Zi,en]).pipe(Qe("status")),rs=n({name:e,status:tn,title:t(e),integrationID:t(ze)}).annotate({identifier:"Mcp.Server"}),on=n({server:e,name:e,uri:e,description:t(e),mimeType:t(e)}).annotate({identifier:"Mcp.Resource"}),nn=n({server:e,name:e,uriTemplate:e,description:t(e),mimeType:t(e)}).annotate({identifier:"Mcp.ResourceTemplate"}),as=n({resources:l(on),templates:l(nn)}).annotate({identifier:"Mcp.ResourceCatalog"}),rn=w([n({type:d("text"),uri:e,text:e,mimeType:t(e)}),n({type:d("blob"),uri:e,blob:e,mimeType:t(e)})]).pipe(Qe("type"),me({identifier:"Mcp.ResourceContentPart"})),ss=n({server:e,uri:e,contents:l(rn)}).annotate({identifier:"Mcp.ResourceContent"});var an=oe,ds=Te,ms=Fe,fs=Ee,sn=Ji,us=Ue;class Be extends q("Config.MCP")({timeout:an.pipe(t),servers:x(e,sn).pipe(t)}){}class no extends q("Config.Plugin.Entry")({package:e,options:x(e,B).pipe(t)}){}var pn=w([e,no]),cn=pn.pipe(l);class ao extends q("Config.Reference.Git")({repository:e,branch:e.pipe(t),description:e.pipe(t),hidden:v.pipe(t)}){}class so extends q("Config.Reference.Local")({path:e,description:e.pipe(t),hidden:v.pipe(t)}){}var dn=w([e,ao,so]),mn=x(e,dn);var ie=e.pipe(re("WebSearch.ID"),me({identifier:"WebSearch.ID"})),vs=n({id:ie,name:e}).annotate({identifier:"WebSearch.Provider"}),Ds=n({query:e,providerID:ie.pipe(t)}).annotate({identifier:"WebSearch.Input"}),fn=n({url:e,title:e.pipe(t),content:e.pipe(t),time:n({published:gt.pipe(t).annotate({description:"Publication time in milliseconds since the Unix epoch"})})}).annotate({identifier:"WebSearch.Result"});class un extends q("WebSearch.Response")({providerID:ie,results:l(fn)}){}var co=c({type:"websearch.updated",schema:{}}),ks={Updated:co,Definitions:m(co)};class mo extends q("ConfigWebSearch.Info")({provider:w([d("random").annotate({description:"Reuse a randomly selected provider until it is rate limited, then switch to another available provider."}),ie])}){}var gn=w([d(!1),mo]);class uo extends q("Config.ToolOutput")({max_lines:f.pipe(t),max_bytes:f.pipe(t)}){}class So extends q("Config.Watcher")({ignore:e.pipe(l,t)}){}class xo extends q("Config.Warming")({prompt:e.pipe(t).annotate({description:"Prompt sent for keep-alive requests"}),interval:w([d("auto"),Ho]).pipe(t).annotate({description:`Idle time between keep-alive requests (default: "4 minutes"). "auto" uses 90% of the model's cache.ttl and skips models without one.`}),duration:Ho.pipe(t).annotate({description:'Time after the last active request to keep a session warm (default: "30 minutes")'})}){}var Sn=w([v,xo]);var hn=n({directory:ua.pipe(aa(di())).annotate({description:"Parent directory for new worktrees, relative to the project's primary checkout when not absolute"})}).annotate({identifier:"Config.Worktree"});class E extends q("Config.Info")({$schema:t(e).annotate({description:"JSON schema reference for configuration validation"}),shell:e.pipe(t).annotate({description:"Default shell to use for terminal and shell tool execution"}),model:Z.pipe(t).annotate({description:"Default model to use when no session or agent model is selected"}),default_agent:e.pipe(t).annotate({description:"Default primary agent to use when no session agent is selected"}),update:D(["disable","notify","auto"]).pipe(t).annotate({description:"Disable updates, notify when one is available, or install updates automatically"}),share:D(["manual","auto","disabled"]).pipe(t).annotate({description:"Control whether sessions may be shared manually, automatically, or not at all"}),enterprise:n({url:e.pipe(t)}).pipe(t).annotate({description:"Enterprise sharing service configuration"}),username:e.pipe(t).annotate({description:"Username displayed in conversations and used for telemetry identity"}),timezone:e.pipe(t).annotate({description:"IANA time zone for schedules, e.g. America/Los_Angeles. Defaults to the server's local zone"}),permissions:ot.pipe(t).annotate({description:"Ordered tool permission rules applied to agent tool use"}),policies:Ae.pipe(l,t).annotate({description:"Ordered policies controlling access to providers, tools, and integrations"}),agents:x(e,Ft).pipe(t).annotate({description:"Named built-in agent overrides and custom agent definitions"}),snapshots:v.pipe(t).annotate({description:"Enable snapshots used for undo and revert behavior"}),watcher:So.pipe(t).annotate({description:"Filesystem watcher configuration"}),formatter:$i.pipe(t).annotate({description:"Enable built-in formatters or configure formatter overrides"}),lsp:Yi.pipe(t).annotate({description:"Enable built-in language servers or configure server overrides"}),media:Bt.pipe(t).annotate({description:"Media processing configuration"}),tool_output:uo.pipe(t).annotate({description:"Tool output truncation thresholds"}),mcp:Be.pipe(t).annotate({description:"MCP server configuration"}),compaction:Nt.pipe(t).annotate({description:"Conversation compaction behavior"}),skills:e.pipe(l,t).annotate({description:"Additional paths or URLs to discover skills from"}),commands:x(e,$t).pipe(t).annotate({description:"Named slash command definitions"}),instructions:e.pipe(l,t).annotate({description:"Additional paths or URLs supplying ambient instructions"}),references:mn.pipe(t).annotate({description:"Named local directories or Git repositories available as external context"}),websearch:gn.pipe(t).annotate({description:"Web search provider selection"}),plugins:cn.pipe(t).annotate({description:"Ordered plugin enablement directives and external package declarations"}),worktree:hn.pipe(t).annotate({description:"Directory defaults for local worktree creation"}),warming:Sn.pipe(t).annotate({description:"Keep recently active sessions warm with transient model requests (default: false)"}),providers:x(e,Le).pipe(t),experimental:Qt.pipe(t)}){}var ip=n({shell:Ze(e)}).annotate({identifier:"Config.Patch"});class ne extends q("Config.Document")({type:d("document"),path:P.pipe(t),info:E}){}class vo extends q("Config.Directory")({type:d("directory"),path:P}){}var np=w([ne,vo]).annotate({identifier:"Config.Entry"}),bo=c({type:"config.updated",schema:{}}),rp={Updated:bo,Definitions:m(bo)};var zt={};De(zt,{ConfigIntegration:()=>zt,Document:()=>qn,Policies:()=>Ne,Remote:()=>Do,WellKnownDocument:()=>ae,make:()=>Mo,suppliers:()=>ko});var Ne=l(B).pipe(g(B,{decode:S((o)=>o.filter((i)=>{let p=W(n({action:e}))(i);if(U(p)&&!Jr(Cs)(p.value.action))return!1;let u=W(n({effect:e}))(i);return A(u)||Jr(Jt)(u.value.effect)})),encode:ye({strict:!1})}),g(l(Ae))),Do=n({providers:E.fields.providers,mcp:E.fields.mcp,policies:Ne.pipe(b),websearch:E.fields.websearch});class qn extends ne.extend("Config.IntegrationDocument")({integrationID:ze,connection:ct,organization:b(e)}){}class ae extends ne.extend("Config.WellKnownDocument")({integrationID:ze}){}function ko(o){return new Map(o.filter((i)=>i instanceof ae).flatMap((i)=>Object.keys(i.info.providers??{}).map((p)=>[p,i.integrationID])))}function Mo(o){let i=o.info.mcp?.servers;return new qn({type:"document",integrationID:o.integrationID,connection:o.connection,organization:o.organization,info:new E({providers:o.info.providers&&Object.fromEntries(Object.entries(o.info.providers).map(([p,u])=>[p,new Le({...u,env:void 0,settings:We(u.settings),models:u.models&&Object.fromEntries(Object.entries(u.models).map(([k,M])=>[k,{...M,settings:We(M.settings),variants:M.variants?.map((I)=>({...I,settings:We(I.settings)}))}]))})])),mcp:i&&new Be({servers:Object.fromEntries(Object.entries(i).filter(([,p])=>p.type==="remote"))}),policies:o.info.policies,websearch:o.info.websearch})})}function We(o){return o&&Object.fromEntries(Object.entries(o).filter(([i])=>!["apiKey","authToken","accessToken"].includes(i)))}
2
- export{De,ze,Cs,zt,qn};
1
+ import{A,U,Vt,Jn,r,Cn,_n,tr,ye,S,at,Jr,qt,me,Gr,W,Ze,g,_e,d,aa,ln,B,e,H,v,n,x,Rn,l,Vr,w,M,Le,or,ca,re,la,y,di,Ye,Qe,Pe,sr,gt,ua,Zr,Ht,Q,mi,pa,Mn,Ho,q,Nn}from"./chunk-vf7nj8yg.js";var wo=Object.defineProperty,Ro=(o)=>o;function Lo(o,i){this[o]=Ro.bind(null,i)}var Ue=(o,i)=>{for(var p in i)wo(o,p,{get:i[p],enumerable:!0,configurable:!0,set:Lo.bind(i,p)})};var f=Q.check(ua(0)),h=Q.check(Zr(0)),bn=e.pipe(re("RelativePath"),me({identifier:"RelativePath"})),P=e.pipe(re("AbsolutePath"),me({identifier:"AbsolutePath"})),t=(o)=>Ze(o).pipe(y(g(_e(o)),{decode:ye({strict:!1}),encode:at(Vt((i)=>i!==void 0))})),Uo=(o,i)=>Object.defineProperties(o,Object.getOwnPropertyDescriptors(i)),s=(o)=>(i)=>Uo(i,o(i)),vn=gt.pipe(y(Mn,{decode:S((o)=>_n(o)),encode:S((o)=>tr(o))}));var To=26,Fo="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",je=0,pe=0;function I(){return $e(!1)}function Ve(){return $e(!0)}function $e(o,i=Date.now()){if(i!==je)je=i,pe=0;pe++;let p=BigInt(i)*0x1000n+BigInt(pe),u=o?~p:p,D=Array.from({length:6},(b,Po)=>Number(u>>BigInt(40-8*Po)&0xffn).toString(16).padStart(2,"0")).join(""),k=crypto.getRandomValues(new Uint8Array(To-12));return D+Array.from(k,(b)=>Fo[b%62]).join("")}var Ke=e.pipe(re("Project.ID"),me({identifier:"Project.ID"}),s((o)=>({global:o.make("global")})));var ce=e.check(sr("wrk")).pipe(re("Workspace.ID"),me({identifier:"Workspace.ID"}),s((o)=>{let i=()=>o.make("wrk_"+I());return{ascending:(p)=>{if(!p)return i();return o.make(p)},create:i}}));var Ge=n({directory:P,workspaceID:t(ce)}).annotate({identifier:"Location.Ref"}),Wn=n(qt(Ge.fields,["workspaceID"])).annotate({identifier:"Location.PublicRef"});class Je extends q("Location.Info")({directory:P,workspaceID:t(ce),project:n({id:Ke,directory:P,canonical:P})}){}var qn=n(qt(Je.fields,["workspaceID"])).annotate({identifier:"Location.PublicInfo"});var _o=e.check(sr("evt_")).pipe(re("Event.ID"),me({identifier:"Event.ID"}),s((o)=>({create:()=>o.make("evt_"+I())}))),Bo=Q.check(Zr(0)).pipe(re("Event.Seq"),me({identifier:"Event.Seq"})),Oo=Q.check(Zr(1)).pipe(re("Event.Version"),me({identifier:"Event.Version"})),Yn=n({aggregateID:e,seq:Bo,version:Oo});function c(o){let i=n(o.schema);return n({id:_o,created:gt,metadata:t(x(e,B)),type:d(o.type),location:t(Ge),data:i}).annotate({identifier:o.identifier??o.type}).pipe(s(()=>({type:o.type,durability:"ephemeral",durable:void 0,data:i})))}function m(...o){return Object.freeze(o)}var de=e.check(sr("ses")).pipe(re("SessionID"),me({identifier:"Session.ID"}),s((o)=>({create:()=>o.make("ses_"+Ve())})));var tt=e.check(sr("per")).pipe(re("Permission.ID"),me({identifier:"Permission.ID"}),s((o)=>({create:(i)=>o.make(i??"per_"+I())}))),No=w([n({type:d("tool"),messageID:e,id:e})]).annotate({identifier:"Permission.Source"}),qo={sessionID:de,action:e,resources:l(e),save:l(e).pipe(t),metadata:x(e,B).pipe(t),source:No.pipe(t),message:e.pipe(t)},zo=n({id:tt,...qo}).annotate({identifier:"Permission.Request"}),jo=M(["once","always","reject"]).annotate({identifier:"Permission.Reply"}),Xe=c({type:"permission.asked",schema:zo.fields}),et=c({type:"permission.replied",schema:{sessionID:de,requestID:tt,reply:jo}}),lr={Asked:Xe,Replied:et,Definitions:m(Xe,et)},Vo=M(["allow","deny","ask"]).annotate({identifier:"Permission.Effect"}),$o=n({action:e,resource:e,effect:Vo}).annotate({identifier:"Permission.Rule"}),ot=l($o).annotate({identifier:"Permission.Ruleset"});var We=e.pipe(re("Integration.ID"),me({identifier:"Integration.ID"})),_=e.pipe(re("Integration.MethodID"),me({identifier:"Integration.MethodID"}));var j=e.pipe(re("Credential.ID"),me({identifier:"Credential.ID"}),s((o)=>({create:()=>o.make("cred_"+I())}))),it=c({type:"credential.updated",schema:{}}),nt=c({type:"credential.switched",schema:{integrationID:We,credentialID:Le(j)}}),yr={Updated:it,Switched:nt,Definitions:m(it,nt)},Ko=n({type:d("oauth"),methodID:_,refresh:e,access:e,expires:h,metadata:t(x(e,B))}).annotate({identifier:"Credential.OAuth"}),Go=n({type:d("key"),key:e,metadata:t(x(e,B))}).annotate({identifier:"Credential.Key"}),Yo=n({type:d("external"),methodID:_,metadata:t(x(e,B))}).annotate({identifier:"Credential.External"}),rt=w([Ko,Go,Yo]).pipe(Qe("type")).annotate({identifier:"Credential.Value"}),Ir=n({id:j,integrationID:We,label:e,active:v,value:rt}).annotate({identifier:"Credential.Entry"}),br=n({id:t(j),integrationID:We,label:t(e),value:rt,activate:t(v)}).annotate({identifier:"Credential.CreateInput"});var pt=n({status:M(["needs_auth"]),message:e,url:t(e)}).annotate({identifier:"Connection.Status"}),Jo=n({type:d("credential"),id:j,label:e,method:M(["key","oauth","external"]),status:t(pt)}).annotate({identifier:"Connection.CredentialInfo"}),Qo=n({type:d("env"),name:e,status:t(pt)}).annotate({identifier:"Connection.EnvInfo"}),ct=w([Jo,Qo]).pipe(Qe("type")).annotate({identifier:"Connection.Info"});var Xo=e.check(sr("frm_")).pipe(re("Form.ID"),me({identifier:"Form.ID"})),ge=Xo.pipe(s((o)=>({create:(i)=>o.make(i??"frm_"+I())}))),Zo=x(e,B).annotate({identifier:"Form.Metadata"}),ft=n({value:e,label:e,description:e.pipe(t)}).annotate({identifier:"Form.Option"}),ei=n({key:e,op:M(["eq","neq"]),value:w([e,H,v])}).annotate({identifier:"Form.When"}),O={key:e,title:e.pipe(t),description:e.pipe(t),required:v.pipe(t),hidden:v.pipe(t).annotate({description:"Skip the interactive authentication prompt and use the default unless an answer is supplied"}),when:l(ei).pipe(t)},ti=n({...O,type:d("string"),format:M(["email","uri","date","date-time"]).pipe(t),minLength:h.pipe(t),maxLength:h.pipe(t),pattern:e.pipe(t),placeholder:e.pipe(t),default:e.pipe(t),options:l(ft).pipe(t),custom:v.pipe(t)}).annotate({identifier:"Form.StringField"}),oi=n({...O,type:d("number"),minimum:H.pipe(t),maximum:H.pipe(t),default:H.pipe(t)}).annotate({identifier:"Form.NumberField"}),ii=n({...O,type:d("integer"),minimum:H.pipe(t),maximum:H.pipe(t),default:H.pipe(t)}).annotate({identifier:"Form.IntegerField"}),ni=n({...O,type:d("boolean"),default:v.pipe(t)}).annotate({identifier:"Form.BooleanField"}),ri=n({...O,type:d("multiselect"),options:l(ft),minItems:h.pipe(t),maxItems:h.pipe(t),custom:v.pipe(t),default:l(e).pipe(t)}).annotate({identifier:"Form.MultiselectField"}),ai=n({key:e,type:d("external"),url:e,title:e.pipe(t),description:e.pipe(t)}).annotate({identifier:"Form.ExternalField"}),si=w([ti,oi,ii,ni,ri,ai]).pipe(Qe("type"),me({identifier:"Form.Field"})),V=Vr(si).annotate({identifier:"Form.Fields"}),pi={id:ge,sessionID:e,title:e,metadata:Zo.pipe(t)},ut=n({...pi,fields:V}).annotate({identifier:"Form.Info"}),ci=w([e,H,v,l(e)]).annotate({identifier:"Form.Value"}),Se=x(e,ci).annotate({identifier:"Form.Answer"}),li=w([n({status:d("pending")}),n({status:d("answered"),answer:Se}),n({status:d("cancelled"),message:e.pipe(t)})]).pipe(Qe("status")).annotate({identifier:"Form.State"}),Rr=n({...ut.fields,state:li}).annotate({identifier:"Form.Detail"}),Lr=n({answer:Se}).annotate({identifier:"Form.Reply"}),lt=c({type:"form.created",schema:{form:ut}}),dt=c({type:"form.replied",schema:{id:ge,sessionID:e,answer:Se}}),mt=c({type:"form.cancelled",schema:{id:ge,sessionID:e}}),Ar={Created:lt,Replied:dt,Cancelled:mt,Definitions:m(lt,dt,mt)};var he=We,xe=_,fi=n({id:xe,type:d("oauth"),label:e,form:t(V)}).annotate({identifier:"Integration.OAuthMethod"}),ui=n({id:xe,type:d("command"),label:e,command:l(e)}).annotate({identifier:"Integration.CommandMethod"}),gi=n({type:d("key"),label:t(e),form:t(V)}).annotate({identifier:"Integration.KeyMethod"}),Si=n({id:xe,type:d("external"),label:e,form:t(V)}).annotate({identifier:"Integration.ExternalMethod"}),hi=n({type:d("env"),names:l(e)}).annotate({identifier:"Integration.EnvMethod"}),xi=w([fi,ui,gi,Si,hi]).pipe(Qe("type")).annotate({identifier:"Integration.Method"}),ht=c({type:"integration.updated",schema:{}}),Nr={Updated:ht,Definitions:m(ht)},qr=n({id:he,name:e,metadata:t(x(e,ln))}).annotate({identifier:"Integration.Ref"}),zr=n({id:he,name:e,metadata:t(x(e,ln)),methods:l(xi),connections:l(ct)}).annotate({identifier:"Integration.Info"}),xt=e.pipe(re("Integration.AttemptID"),me({identifier:"Integration.AttemptID"}),s((o)=>({create:()=>o.make("con_"+I())}))),C=n({created:H,expires:H});class yi extends q("Integration.Attempt")({attemptID:xt,url:e,instructions:e,mode:M(["auto","code"]),paste:Ze(d(!0)),time:C}){}var jr=w([n({status:d("pending"),time:C}),n({status:d("complete"),time:C}),n({status:d("failed"),message:e,time:C}),n({status:d("expired"),time:C})]).pipe(Qe("status")).annotate({identifier:"Integration.AttemptStatus"}),$r=n({attemptID:xt,time:C}).annotate({identifier:"Integration.CommandAttempt"}),Kr=w([n({status:d("pending"),message:t(e),time:C}),n({status:d("complete"),time:C}),n({status:d("failed"),message:e,time:C}),n({status:d("expired"),time:C})]).pipe(Qe("status")).annotate({identifier:"Integration.CommandAttemptStatus"});var It=w([M(["reasoning","reasoning_content","reasoning_text"]),e]).annotate({identifier:"Model.ReasoningField"}),bt=M(["max_completion_tokens","max_tokens"]).annotate({identifier:"Model.MaxTokensField"}),vt=M(["assets","state","root"]).annotate({identifier:"Model.MediaInput"}),Ii=M(["anthropic","alibaba"]).annotate({identifier:"Model.CacheFormat"}),N=n({reasoningField:It.pipe(t),requireReasoning:v.pipe(t),maxTokensField:bt.pipe(t),requireFinishReason:v.pipe(t),requireAssistantAfterTool:v.pipe(t),supportsPromptCacheKey:v.pipe(t),streamUsage:v.pipe(t),cacheFormat:Ii.pipe(t),supportsThinkingBlockBinding:v.pipe(t),supportsEffortUpdates:v.pipe(t),mediaInput:vt.pipe(t)}).annotate({identifier:"Model.Compatibility"}),K=n(qt(N.fields,["supportsThinkingBlockBinding","supportsEffortUpdates"])).annotate({identifier:"Provider.Compatibility"});var R=e.pipe(re("Provider.ID"),me({identifier:"Provider.ID"}),s((o)=>({opencode:o.make("opencode"),anthropic:o.make("anthropic"),openai:o.make("openai"),google:o.make("google"),googleVertex:o.make("google-vertex"),githubCopilot:o.make("github-copilot"),claudeAgent:o.make("claude-agent"),amazonBedrock:o.make("amazon-bedrock"),azure:o.make("azure"),openrouter:o.make("openrouter"),mistral:o.make("mistral"),gitlab:o.make("gitlab")}))),Ct=c({type:"provider.updated",schema:{}}),na={Updated:Ct,Definitions:m(Ct)},Dt=e,vi=M(["auto","enabled","disabled"]),Ci=w([n({type:d("summary")}),n({type:d("native")})]).pipe(Qe("type")).annotate({identifier:"Provider.Compaction"}),Di=M(["http","websocket"]).annotate({identifier:"Provider.Transport"}),ki=aa([H,M(["ms","s","m","h","d"])]).check(Pe(/^\d+(ms|s|m|h|d)$/)).annotate({identifier:"Provider.CacheTTL"}),Mi=w([v,n({interval:w([d("auto"),e]).pipe(t).annotate({description:`Duration such as "4 minutes", or "auto" for 90% of the model's cache.ttl`}),duration:e.pipe(t).annotate({description:'Duration such as "30 minutes"'})})]).annotate({identifier:"Provider.CacheWarming"}),Pi=n({ttl:ki.pipe(t),warming:Mi.pipe(t)}).annotate({identifier:"Provider.Cache"}),wi=M(["zstd","gzip","none"]).annotate({identifier:"Provider.Encoding"}),Ie=w([gt,d(!1)]).pipe(t),G=Rn(n({timeout:Ie,headerTimeout:Ie,chunkTimeout:Ie,compaction:Ci.pipe(t),cache:Pi.pipe(t),transport:Di.pipe(t),encoding:wi.pipe(t)}),[x(e,ln)]).annotate({identifier:"Provider.Settings"}),Ri={settings:G.pipe(t),headers:x(e,e).pipe(t),body:x(e,ln).pipe(t)},ra=n({settings:G.pipe(di(r({}))),headers:x(e,e),body:x(e,ln)}).annotate({identifier:"Provider.Request"}),sa=n({id:R,canonical:R.pipe(t),integrationID:he.pipe(t),name:e,activation:vi,package:Dt,compatibility:K.pipe(t),...Ri}).annotate({identifier:"Provider.Info"}).pipe(s(()=>({empty:(o)=>({id:o,name:o,activation:"auto",package:""})})));var fa=gt.pipe(re("Money.USD"),me({identifier:"Money.USD"}),s((o)=>({zero:o.make(0)}))),L=gt.pipe(re("Money.USDPerMillionTokens"),me({identifier:"Money.USDPerMillionTokens"}),s((o)=>({zero:o.make(0)})));var T=e.pipe(re("Model.ID")),kt=c({type:"model.updated",schema:{}}),ba={Updated:kt,Definitions:m(kt)},F=e.pipe(re("Model.VariantID")),Li=n({id:T,providerID:R,variant:F.pipe(t)}).annotate({identifier:"Model.Ref"}).pipe(s((o)=>({parse:(i)=>{let p=i.indexOf("/");if(p<=0)throw Error(`Invalid model reference: ${i}`);let u=i.slice(0,p),D=i.indexOf("#",p+1),k=i.slice(p+1,D===-1?void 0:D),b=D===-1?void 0:i.slice(D+1);if(!k||u.includes("#")||b!==void 0&&(!b||b.includes("#")))throw Error(`Invalid model reference: ${i}`);return o.make({providerID:R.make(u),id:T.make(k),...b?{variant:F.make(b)}:{}})}})));var ve=e.pipe(re("Model.Family")),Ce=w([M(["chat","decision","image"]),e]).annotate({identifier:"Model.Type"}),J=Rn(n(Jr(G.schema.fields,["compaction","cache","encoding"])),[x(e,ln)]).annotate({identifier:"Model.Settings"}),Ai=Rn(n(qt(J.schema.fields,["cache"])),J.records).annotate({identifier:"Model.VariantSettings"}),Mt={settings:J.pipe(t),headers:x(e,e).pipe(t),body:x(e,ln).pipe(t)},X=n({tools:v,input:l(e),output:l(e),temperature:v.pipe(t)}).annotate({identifier:"Model.Capabilities"}).pipe(s(()=>({default:()=>({tools:!0,input:["text","image"],output:["text"]})}))),Ui=n({tier:n({type:Ye("context"),size:Q}).pipe(t),input:L,output:L,cache:n({read:L,write:L})}).annotate({identifier:"Model.Cost"}),Ti=n({id:F,...Mt,settings:Ai.pipe(t)}).annotate({identifier:"Model.Variant"}),va=n({id:T,modelID:T,providerID:R,canonical:R.pipe(t),type:Ce.pipe(t),family:ve.pipe(t),name:e,compatibility:N.pipe(t),package:Dt.pipe(t),...Mt,capabilities:X,variants:l(Ti),time:n({released:gt}),cost:l(Ui),status:M(["alpha","beta","deprecated","active"]),enabled:v,limit:n({context:Q,input:Q.pipe(t),output:Q})}).annotate({identifier:"Model.Info"}).pipe(s(()=>({default:(o,i)=>({id:i,modelID:i,providerID:o,name:i,capabilities:X.default(),variants:[],time:{released:0},cost:[],status:"active",enabled:!0,limit:{context:200000,output:32000}})})));var Fi=R.check(Pe(/^[^/#]+$/u)),Ei=T.check(Pe(/^[^#]+$/u)),_i=F.check(Pe(/^[^#]+$/u)),Pt=n({providerID:Fi,model:Ei,variant:_i.pipe(t)}),Bi=e.check(Pe(/^[^/#]+\/[^#]+(?:#[^#]+)?$/u)),Z=w([Bi,Pt]).pipe(y(Pt,{decode:S((o)=>typeof o==="string"?Oi(o):o),encode:ye({strict:!1})})).annotate({identifier:"Config.ModelSelection"});function Oi(o){let i=Li.parse(o);return{providerID:i.providerID,model:i.id,...i.variant?{variant:i.variant}:{}}}var Wi=Rn(n(G.schema.fields),[x(e,or(Nn))]).annotate({identifier:"Config.Provider.Settings"}),ke=Rn(n(J.schema.fields),[x(e,or(Nn))]).annotate({identifier:"Config.Model.Settings"}),Rt=x(e,Nn),Me={settings:Wi.pipe(t),headers:x(e,e).pipe(t),body:Rt.pipe(t)},wt={settings:ke.pipe(t),headers:x(e,e).pipe(t),body:Rt.pipe(t)};class Lt extends q("Config.Provider.Request")({headers:Me.headers,body:Me.body}){}class At extends q("Config.Model.Cost.Cache")({read:L.pipe(t),write:L.pipe(t)}){}class we extends q("Config.Model.Cost")({tier:n({type:d("context"),size:Q}).pipe(t),input:L,output:L,cache:At.pipe(t)}){}class Ut extends q("Config.Model.Limit")({context:Q.pipe(t),input:Q.pipe(t),output:Q.pipe(t)}){}var Ni=w([n({supported:d(!1)}),n({supported:d(!0),toggle:v.pipe(t),effort:e.pipe(l,t),budget:n({min:Q.pipe(t),max:Q.pipe(t)}).pipe(t)})]).annotate({identifier:"Config.Model.Reasoning"});class Tt extends q("Config.Model")({modelID:T.pipe(t),type:Ce.pipe(t),family:ve.pipe(t),name:e.pipe(t),releaseDate:e.check(Pe(/^\d{4}-\d{2}(-\d{2})?$/u)).annotate({description:"Release date as YYYY-MM-DD or YYYY-MM"}).pipe(t),compatibility:N.pipe(t),package:e.pipe(t),...wt,capabilities:X.mapFields((o)=>({tools:t(o.tools),input:t(o.input),output:t(o.output),temperature:o.temperature,reasoning:Ni.pipe(t)})).annotate({identifier:"Config.Model.Capabilities"}).pipe(t),variants:n({id:F,...wt,settings:Rn(n(qt(ke.schema.fields,["cache"])),ke.records).annotate({identifier:"Config.Model.VariantSettings"}).pipe(t)}).pipe(l,t),cost:w([we,we.pipe(l)]).pipe(t),disabled:v.pipe(t),limit:Ut.pipe(t)}){}class Re extends q("Config.Provider")({canonical:R.pipe(t),name:e.pipe(t),env:e.pipe(l,t),package:e.pipe(t),compatibility:K.pipe(t),...Me,models:x(e,Tt).pipe(t)}){}var qi=e.check(Pe(/^#[0-9a-fA-F]{6}$/u));class Ft extends q("Config.Agent")({model:Z.pipe(t),request:Lt.pipe(t),system:e.pipe(t),description:e.pipe(t),mode:M(["subagent","primary","all"]).pipe(t),hidden:v.pipe(t),color:qi.pipe(la(()=>Cn),t),steps:f.pipe(t),disabled:v.pipe(t),permissions:ot.pipe(t)}){}class _t extends q("Config.Media.Image")({auto_resize:v.pipe(t),max_width:f.pipe(t),max_height:f.pipe(t),max_base64_bytes:f.pipe(t)}){}class Bt extends q("Config.Media")({image:_t.pipe(t)}){}class Wt extends q("Config.Compaction.Keep")({tokens:h.pipe(t)}){}var zi=e.check(Pe(/^([1-9]\d?(\.\d+)?)%$/u)).annotate({identifier:"Config.Compaction.Percent"});class Nt extends q("Config.Compaction")({auto:v.pipe(t),keep:Wt.pipe(t),buffer:w([zi,h]).pipe(t).annotate({description:`Room kept free below the model's context window before automatic compaction, as a share of the window from "1%" to "99%", such as "20%" to compact at 80% full. A token count is also accepted.`})}){}class $t extends q("Config.Command")({template:e,description:e.pipe(t),agent:e.pipe(t),model:Z.pipe(t),subagent:v.pipe(t),subtask:v.annotate({description:"Deprecated alias for subagent."}).pipe(t)}){}var ji={todo:"Enable the experimental todowrite tool.",background_compaction:"Enable experimental background compaction: summarize the conversation in the background as it nears the compaction threshold, so automatic compaction does not wait for the summary. Background summaries that are never used still cost tokens.",media_blob:"Store new session media once in a deduplicated blob table instead of inline in every message row.",schedules:"Enable experimental scheduled tasks that wake a session with a prompt.",artifacts:"Enable experimental artifacts backed by pluggable providers."};var Jt=M(["allow","deny"]),Cs=M(["provider.use","tool.use","integration.connect","integration.use","mcp.use","skill.use","plugin.use","websearch.use"]),Yt=n({action:Cs,resource:e,effect:Jt}),Vi=new Map([["mcp","mcp.use"],["skill","skill.use"],["plugin","plugin.use"]]),Ae=Yt.pipe(y(_e(Yt),{decode:S((o)=>{if(o.action!=="integration.use")return o;let i=o.resource.indexOf(":"),p=i===-1?void 0:Vi.get(o.resource.slice(0,i));if(!p)return o;return{...o,action:p,resource:o.resource.slice(i+1)}}),encode:ye()}));class Qt extends q("ConfigExperimental.Info")({portable_shell_scanner:v.pipe(t).annotate({description:"Deprecated: the built-in shell permission scanner is now always enabled."}),all_flags:v.pipe(t).annotate({description:"Turn every feature flag on regardless of the build channel, like OPENCODE_FLAGS=all; explicit per-flag settings still win, and false is not a kill switch."}),...Jn(ji,(o)=>v.pipe(t).annotate({description:`${o} Defaults to on in local and dev builds and off in releases.`})),part_rows:v.pipe(t).annotate({description:"Write each assistant part as its own session_part row instead of rewriting the whole message on every event. Defaults to false."}),image_generate:w([v,n({model:Z.pipe(t).annotate({description:"Default model for the experimental_image_generate tool when the agent doesn't choose one, as providerID/modelID. Falls back to automatic selection when it isn't available."})})]).pipe(t).annotate({description:"Settings for the experimental_image_generate tool, which is offered while a connected provider has an image model."}),subagent_depth:h.pipe(t).annotate({description:"Maximum subagent nesting depth. Defaults to 1."}),location_idle_timeout:w([Ho,d(!1)]).pipe(t).annotate({description:'How long a location can go without session activity before its services are unloaded. Running sessions and background jobs keep a location loaded. Set to false to never unload (default: "60 minutes")'}),policies:Ae.pipe(l,t).annotate({description:"Deprecated: use top-level policies. Ordered policies controlling access to configured resources"})}){}class Zt extends q("Config.Formatter.Entry")({disabled:v.pipe(t),command:e.pipe(l,t),environment:x(e,e).pipe(t),extensions:e.pipe(l,t)}){}var $i=w([v,x(e,Zt)]);var Ki=n({disabled:d(!0)});class to extends q("Config.LSP.Server")({command:e.pipe(l),extensions:e.pipe(l,t),disabled:v.pipe(t),env:x(e,e).pipe(t),initialization:x(e,B).pipe(t)}){}var Gi=w([Ki,to]),Yi=w([v,x(e,Gi)]);class oe extends q("Mcp.TimeoutConfig")({startup:f.pipe(t).annotate({description:"Maximum time in milliseconds to establish and initialize the MCP server."}),catalog:f.pipe(t).annotate({description:"Maximum time in milliseconds to wait for MCP discovery requests such as tools/list and prompts/list."}),execution:f.pipe(t).annotate({description:"Maximum time in milliseconds to wait for MCP tool and prompt execution."})}){}var Te=M(["legacy","auto","2026-07-28"]).annotate({identifier:"Mcp.Protocol",description:'MCP protocol negotiation. "legacy" (default) opens with the initialize handshake and speaks protocol revisions up to 2025-11-25. "auto" probes for the 2026-07-28 revision and falls back to legacy when the server does not support it. "2026-07-28" requires that revision and fails otherwise.'});class Fe extends q("Mcp.LocalConfig")({type:d("local"),command:e.pipe(l),cwd:e.pipe(t).annotate({description:"Working directory for the MCP server process. Relative paths resolve from the workspace directory."}),environment:x(e,e).pipe(t),disabled:v.pipe(t),codemode:v.pipe(t).annotate({description:"Expose this server's tools through Code Mode. Defaults to true."}),timeout:oe.pipe(t),protocol:Te.pipe(t),pool:v.pipe(t).annotate({description:'Share one connection to this server across every directory that configures it identically, instead of one per directory. Only connections that negotiate the 2026-07-28 revision are shared; an unset "protocol" becomes "auto", and "legacy" never shares. Defaults to false.'})}){}class Ee extends q("Mcp.OAuthConfig")({client_id:e.pipe(t),client_secret:e.pipe(t),scope:e.pipe(t),callback_port:Q.check(Ht({minimum:1,maximum:65535})).pipe(t),redirect_uri:e.pipe(t),auth_server_metadata_url:e.pipe(t).annotate({description:"URL of the OAuth or OpenID Connect authorization server metadata document. Set when the MCP server does not publish protected resource metadata that names its authorization server."})}){}class Be extends q("Mcp.RemoteConfig")({type:d("remote"),url:e,headers:x(e,e).pipe(t),oauth:w([Ee,d(!1)]).pipe(t),disabled:v.pipe(t),codemode:v.pipe(t).annotate({description:"Expose this server's tools through Code Mode. Defaults to true."}),timeout:oe.pipe(t),protocol:Te.pipe(t),pool:v.pipe(t).annotate({description:'Share one connection to this server across every directory that configures it identically, instead of one per directory. Only connections that negotiate the 2026-07-28 revision are shared; an unset "protocol" becomes "auto", and "legacy" never shares. Defaults to false.'})}){}var Ji=w([Fe,Be]).pipe(Qe("type")),Hi=n({status:d("connected")}).annotate({identifier:"Mcp.Status.Connected"}),Qi=n({status:d("pending")}).annotate({identifier:"Mcp.Status.Pending"}),Xi=n({status:d("disabled")}).annotate({identifier:"Mcp.Status.Disabled"}),Zi=n({status:d("failed"),error:e}).annotate({identifier:"Mcp.Status.Failed"}),en=n({status:d("needs_auth"),error:e}).annotate({identifier:"Mcp.Status.NeedsAuth"}),tn=w([Hi,Qi,Xi,Zi,en]).pipe(Qe("status")),rs=n({name:e,status:tn,title:t(e),integrationID:t(We)}).annotate({identifier:"Mcp.Server"}),on=n({server:e,name:e,uri:e,description:t(e),mimeType:t(e)}).annotate({identifier:"Mcp.Resource"}),nn=n({server:e,name:e,uriTemplate:e,description:t(e),mimeType:t(e)}).annotate({identifier:"Mcp.ResourceTemplate"}),as=n({resources:l(on),templates:l(nn)}).annotate({identifier:"Mcp.ResourceCatalog"}),rn=w([n({type:d("text"),uri:e,text:e,mimeType:t(e)}),n({type:d("blob"),uri:e,blob:e,mimeType:t(e)})]).pipe(Qe("type"),me({identifier:"Mcp.ResourceContentPart"})),ss=n({server:e,uri:e,contents:l(rn)}).annotate({identifier:"Mcp.ResourceContent"});var an=oe,ds=Fe,ms=Ee,fs=Be,sn=Ji,us=Te;class Oe extends q("Config.MCP")({timeout:an.pipe(t),servers:x(e,sn).pipe(t)}){}class no extends q("Config.Plugin.Entry")({package:e,options:x(e,B).pipe(t)}){}var pn=w([e,no]),cn=pn.pipe(l);class ao extends q("Config.Reference.Git")({repository:e,branch:e.pipe(t),description:e.pipe(t),hidden:v.pipe(t)}){}class so extends q("Config.Reference.Local")({path:e,description:e.pipe(t),hidden:v.pipe(t)}){}var dn=w([e,ao,so]),mn=x(e,dn);var ie=e.pipe(re("WebSearch.ID"),me({identifier:"WebSearch.ID"})),vs=n({id:ie,name:e}).annotate({identifier:"WebSearch.Provider"}),Ds=n({query:e,providerID:ie.pipe(t)}).annotate({identifier:"WebSearch.Input"}),fn=n({url:e,title:e.pipe(t),content:e.pipe(t),time:n({published:gt.pipe(t).annotate({description:"Publication time in milliseconds since the Unix epoch"})})}).annotate({identifier:"WebSearch.Result"});class un extends q("WebSearch.Response")({providerID:ie,results:l(fn)}){}var co=c({type:"websearch.updated",schema:{}}),ks={Updated:co,Definitions:m(co)};class mo extends q("ConfigWebSearch.Info")({provider:w([d("random").annotate({description:"Reuse a randomly selected provider until it is rate limited, then switch to another available provider."}),ie])}){}var gn=w([d(!1),mo]);class uo extends q("Config.ToolOutput")({max_lines:f.pipe(t),max_bytes:f.pipe(t)}){}class So extends q("Config.Watcher")({ignore:e.pipe(l,t)}){}class xo extends q("Config.Warming")({prompt:e.pipe(t).annotate({description:"Prompt sent for keep-alive requests"}),interval:w([d("auto"),Ho]).pipe(t).annotate({description:`Idle time between keep-alive requests (default: "4 minutes"). "auto" uses 90% of the model's cache.ttl and skips models without one.`}),duration:Ho.pipe(t).annotate({description:'Time after the last active request to keep a session warm (default: "30 minutes")'})}){}var Sn=w([v,xo]);var hn=n({directory:pa.pipe(ca(mi())).annotate({description:"Parent directory for new worktrees, relative to the project's primary checkout when not absolute"})}).annotate({identifier:"Config.Worktree"});class E extends q("Config.Info")({$schema:t(e).annotate({description:"JSON schema reference for configuration validation"}),shell:e.pipe(t).annotate({description:"Default shell to use for terminal and shell tool execution"}),model:Z.pipe(t).annotate({description:"Default model to use when no session or agent model is selected"}),default_agent:e.pipe(t).annotate({description:"Default primary agent to use when no session agent is selected"}),update:M(["disable","notify","auto"]).pipe(t).annotate({description:"Disable updates, notify when one is available, or install updates automatically"}),share:M(["manual","auto","disabled"]).pipe(t).annotate({description:"Control whether sessions may be shared manually, automatically, or not at all"}),enterprise:n({url:e.pipe(t)}).pipe(t).annotate({description:"Enterprise sharing service configuration"}),username:e.pipe(t).annotate({description:"Username displayed in conversations and used for telemetry identity"}),timezone:e.pipe(t).annotate({description:"IANA time zone for schedules, e.g. America/Los_Angeles. Defaults to the server's local zone"}),permissions:ot.pipe(t).annotate({description:"Ordered tool permission rules applied to agent tool use"}),policies:Ae.pipe(l,t).annotate({description:"Ordered policies controlling access to providers, tools, and integrations"}),agents:x(e,Ft).pipe(t).annotate({description:"Named built-in agent overrides and custom agent definitions"}),snapshots:v.pipe(t).annotate({description:"Enable snapshots used for undo and revert behavior"}),watcher:So.pipe(t).annotate({description:"Filesystem watcher configuration"}),formatter:$i.pipe(t).annotate({description:"Enable built-in formatters or configure formatter overrides"}),lsp:Yi.pipe(t).annotate({description:"Enable built-in language servers or configure server overrides"}),media:Bt.pipe(t).annotate({description:"Media processing configuration"}),tool_output:uo.pipe(t).annotate({description:"Tool output truncation thresholds"}),mcp:Oe.pipe(t).annotate({description:"MCP server configuration"}),compaction:Nt.pipe(t).annotate({description:"Conversation compaction behavior"}),skills:e.pipe(l,t).annotate({description:"Additional paths or URLs to discover skills from"}),commands:x(e,$t).pipe(t).annotate({description:"Named slash command definitions"}),instructions:e.pipe(l,t).annotate({description:"Additional paths or URLs supplying ambient instructions"}),references:mn.pipe(t).annotate({description:"Named local directories or Git repositories available as external context"}),websearch:gn.pipe(t).annotate({description:"Web search provider selection"}),plugins:cn.pipe(t).annotate({description:"Ordered plugin enablement directives and external package declarations"}),worktree:hn.pipe(t).annotate({description:"Directory defaults for local worktree creation"}),warming:Sn.pipe(t).annotate({description:"Keep recently active sessions warm with transient model requests (default: false)"}),providers:x(e,Re).pipe(t),experimental:Qt.pipe(t)}){}var ip=n({shell:Le(e)}).annotate({identifier:"Config.Patch"});class ne extends q("Config.Document")({type:d("document"),path:P.pipe(t),info:E}){}class vo extends q("Config.Directory")({type:d("directory"),path:P}){}var np=w([ne,vo]).annotate({identifier:"Config.Entry"}),bo=c({type:"config.updated",schema:{}}),rp={Updated:bo,Definitions:m(bo)};var zt={};Ue(zt,{ConfigIntegration:()=>zt,Document:()=>Hn,Policies:()=>ze,Remote:()=>Do,WellKnownDocument:()=>ae,make:()=>Mo,suppliers:()=>ko});var ze=l(B).pipe(y(B,{decode:S((o)=>o.filter((i)=>{let p=W(n({action:e}))(i);if(U(p)&&!Gr(Cs)(p.value.action))return!1;let u=W(n({effect:e}))(i);return A(u)||Gr(Jt)(u.value.effect)})),encode:ye({strict:!1})}),y(l(Ae))),Do=n({providers:E.fields.providers,mcp:E.fields.mcp,policies:ze.pipe(g),websearch:E.fields.websearch});class Hn extends ne.extend("Config.IntegrationDocument")({integrationID:We,connection:ct,organization:g(e)}){}class ae extends ne.extend("Config.WellKnownDocument")({integrationID:We}){}function ko(o){return new Map(o.filter((i)=>i instanceof ae).flatMap((i)=>Object.keys(i.info.providers??{}).map((p)=>[p,i.integrationID])))}function Mo(o){let i=o.info.mcp?.servers;return new Hn({type:"document",integrationID:o.integrationID,connection:o.connection,organization:o.organization,info:new E({providers:o.info.providers&&Object.fromEntries(Object.entries(o.info.providers).map(([p,u])=>[p,new Re({...u,env:void 0,settings:qe(u.settings),models:u.models&&Object.fromEntries(Object.entries(u.models).map(([D,k])=>[D,{...k,settings:qe(k.settings),variants:k.variants?.map((b)=>({...b,settings:qe(b.settings)}))}]))})])),mcp:i&&new Oe({servers:Object.fromEntries(Object.entries(i).filter(([,p])=>p.type==="remote"))}),policies:o.info.policies,websearch:o.info.websearch})})}function qe(o){return o&&Object.fromEntries(Object.entries(o).filter(([i])=>!["apiKey","authToken","accessToken"].includes(i)))}
2
+ export{Ue,We,Cs,zt,Hn};
@@ -1,15 +1,15 @@
1
- import{K}from"./chunk-6xs4y82y.js";import{wt}from"./chunk-gcqbk8bn.js";function ms(o){if(o.length===0)return;return o.map((n)=>`## ${n.name}
1
+ import{J}from"./chunk-xsr5jd61.js";import{wt}from"./chunk-e219b1sg.js";function ms(o){if(o.length===0)return;return o.map((n)=>`## ${n.name}
2
2
 
3
3
  ${n.content.trim()}`).join(`
4
4
 
5
- `)}var t="<!-- opencode-console:start -->",c="<!-- opencode-console:end -->";function lr(o,n,r,s){if(r.length===0&&!n?.includes(t))return s;let i=(n??"").replace(new RegExp(`\\n*${t}[\\s\\S]*?${c}\\n?`),`
5
+ `)}var t="<!-- opencode-console:start -->",c="<!-- opencode-console:end -->";function ur(o,n,r,s){if(r.length===0&&!n?.includes(t))return s;let i=(n??"").replace(new RegExp(`\\n*${t}[\\s\\S]*?${c}\\n?`),`
6
6
  `).trim(),p=(e)=>e.replaceAll(t,"<!-- opencode-console start -->").replaceAll(c,"<!-- opencode-console end -->"),a=r.length===0?"":[t,"# Workspace instructions from OpenCode Console",...r.map((e)=>`## ${p(e.name)}
7
7
 
8
8
  ${p(e.content.trim())}`),c].join(`
9
9
 
10
10
  `),l=[i,a].filter((e)=>e!=="").join(`
11
11
 
12
- `),d=s||n===void 0&&a!=="";if(l===""&&d)return K(o),!1;if(`${l}
12
+ `),d=s||n===void 0&&a!=="";if(l===""&&d)return J(o),!1;if(`${l}
13
13
  `!==n)wt(o,`${l}
14
14
  `);return d}
15
- export{ms,lr};
15
+ export{ms,ur};
@@ -1,2 +1,2 @@
1
- import"./chunk-m3m5harb.js";import{k,W,b,B,e,n,Z}from"./chunk-9dgq3xc0.js";var g={};k(g,{CodexHook:()=>g,Unreadable:()=>d,checks:()=>E,decode:()=>S,mentions:()=>y,patchFiles:()=>m});import f from"node:path";var w=n({hook_event_name:e,cwd:b(e),tool_name:b(e),tool_input:b(B),prompt:b(e)}),S=W(Z(w));class d extends Error{}function E(s,l){let o=(t,u,v={})=>({action:t,resources:u,directory:l.directory,...v});if(s.hook_event_name==="UserPromptSubmit"){let t=y(s.prompt??"");return[...t.skills.length===0?[]:[o("skill",t.skills)],...t.servers.length===0?[]:[o("mcp.use",t.servers)],...t.plugins.length===0?[]:[o("plugin.use",t.plugins)]]}if(s.hook_event_name!=="PreToolUse")return[];let i=s.tool_name;if(!i)throw new d("The hook input names no tool");let r=s.cwd?f.resolve(l.directory,s.cwd):l.directory;if(i.startsWith("mcp__"))return P(i,l.servers).map((t)=>o(t.action,t.resources,t));let c=s.tool_input,p=(t)=>{let u=typeof c==="object"&&c!==null&&t in c?Reflect.get(c,t):void 0;return typeof u==="string"&&u!==""?u:void 0},a=(t)=>{let u=p(t);if(u===void 0)throw new d(`${i}'s input has no ${t}`);return u},_=l.platform==="win32"?{shell:"pwsh"}:{};switch(i){case"Bash":{let t=a("command"),u=t.includes("*** Begin Patch")?m(t,r):[];return[o("shell",[t],{..._,...r===l.directory?{}:{path:r}}),...u.length===0?[]:[o("edit",u)]]}case"apply_patch":{let t=m(a("command"),r);if(t.length===0)throw new d("The patch names no file");return[o("edit",t)]}case"view_image":return[o("read",[f.resolve(r,a("path"))])];case"request_user_input":case"request_user_input_async":return[o("question",["*"])];case"read_mcp_resource":return[o("mcp.use",[a("server")])];case"list_mcp_resources":case"list_mcp_resource_templates":{let t=p("server");return[o("mcp.use",t?[t]:[...l.servers,"*"])]}case"request_plugin_install":{let t=a(p("tool_id")===void 0?"plugin_id":"tool_id");return[o(p("tool_type")==="connector"?"mcp.use":"plugin.use",[t])]}default:if(i==="spawn_agent"||i.endsWith(".spawn_agent")){let t=p("agent_type")?.trim().toLowerCase()||void 0;return[o("subagent",[t===void 0||t==="default"?"general":t])]}return[o(i.toLowerCase(),["*"])]}}function m(s,l){let o=["*** Add File: ","*** Update File: ","*** Delete File: ","*** Move to: "];return[...new Set(s.split(`
2
- `).flatMap((i)=>{let r=i.trim(),c=o.find((a)=>r.startsWith(a)),p=c&&r.slice(c.length).trim();return p?[f.resolve(l,p)]:[]}))]}function P(s,l){let o=l.filter((a)=>s.startsWith(`mcp__${h(a)}__`)).toSorted((a,_)=>_.length-a.length)[0],i=s.match(/^mcp__(.+?)__(.+)$/),r=o??i?.[1]?.replace(/_[0-9a-f]{12}$/,"");if(!r)throw new d(`Can't tell which MCP server ${s} belongs to`);let c=o?s.slice(`mcp__${h(o)}__`.length):i?.[2],p=c===void 0||/_[0-9a-f]{12}$/.test(s);return[{action:"mcp.use",resources:[r],...o?{}:{folded:!0}},p?{action:`${r}_`,resources:["*"],truncated:!0,folded:!0}:{action:`${r}_${c}`,resources:["*"],folded:!0}]}function h(s){return s.replace(/[^A-Za-z0-9_]/g,"_")}var M=new Set(["PATH","HOME","USER","SHELL","PWD","TMPDIR","TEMP","TMP","LANG","TERM","XDG_CONFIG_HOME"]);function y(s){let l=Array.from(s.matchAll(/(?:\[\$([A-Za-z0-9_:-]+)\]\(([^)]*)\))|\$([A-Za-z0-9_:-]+)/g),(r)=>({name:r[1]??r[3],link:r[1]===void 0?void 0:r[2].trim()})).filter((r)=>!M.has(r.name.toUpperCase())),o=(r)=>l.flatMap((c)=>c.link?.startsWith(r)?[c.link.slice(r.length).split(/[/?]/)[0]].filter(Boolean):[]),i=l.flatMap((r)=>r.link===void 0?/^[A-Z0-9_]+$/.test(r.name)?[]:[r.name]:/(?:^skill:\/\/|SKILL\.md$)/i.test(r.link)?[r.name]:[]);return{skills:[...new Set(i)],servers:[...new Set(o("mcp://"))],plugins:[...new Set(o("plugin://"))]}}export{g as CodexHook,d as Unreadable,E as checks,S as decode,y as mentions,m as patchFiles};
1
+ import"./chunk-81pw2xsw.js";import{k,W,g,B,e,n,G}from"./chunk-vf7nj8yg.js";var h={};k(h,{CodexHook:()=>h,Unreadable:()=>d,checks:()=>P,decode:()=>E,mentions:()=>v,patchFiles:()=>m});import f from"node:path";var S=n({hook_event_name:e,cwd:g(e),tool_name:g(e),tool_input:g(B),prompt:g(e)}),E=W(G(S));class d extends Error{}function P(s,l){let o=(t,u,w={})=>({action:t,resources:u,directory:l.directory,...w});if(s.hook_event_name==="UserPromptSubmit"){let t=v(s.prompt??"");return[...t.skills.length===0?[]:[o("skill",t.skills)],...t.servers.length===0?[]:[o("mcp.use",t.servers)],...t.plugins.length===0?[]:[o("plugin.use",t.plugins)]]}if(s.hook_event_name!=="PreToolUse")return[];let i=s.tool_name;if(!i)throw new d("The hook input names no tool");let r=s.cwd?f.resolve(l.directory,s.cwd):l.directory;if(i.startsWith("mcp__"))return M(i,l.servers).map((t)=>o(t.action,t.resources,t));let c=s.tool_input,p=(t)=>{let u=typeof c==="object"&&c!==null&&t in c?Reflect.get(c,t):void 0;return typeof u==="string"&&u!==""?u:void 0},a=(t)=>{let u=p(t);if(u===void 0)throw new d(`${i}'s input has no ${t}`);return u},_=l.platform==="win32"?{shell:"pwsh"}:{};switch(i){case"Bash":{let t=a("command"),u=t.includes("*** Begin Patch")?m(t,r):[];return[o("shell",[t],{..._,...r===l.directory?{}:{path:r}}),...u.length===0?[]:[o("edit",u)]]}case"apply_patch":{let t=m(a("command"),r);if(t.length===0)throw new d("The patch names no file");return[o("edit",t)]}case"view_image":return[o("read",[f.resolve(r,a("path"))])];case"request_user_input":case"request_user_input_async":return[o("question",["*"])];case"read_mcp_resource":return[o("mcp.use",[a("server")])];case"list_mcp_resources":case"list_mcp_resource_templates":{let t=p("server");return[o("mcp.use",t?[t]:[...l.servers,"*"])]}case"request_plugin_install":{let t=a(p("tool_id")===void 0?"plugin_id":"tool_id");return[o(p("tool_type")==="connector"?"mcp.use":"plugin.use",[t])]}default:if(i==="spawn_agent"||i.endsWith(".spawn_agent")){let t=p("agent_type")?.trim().toLowerCase()||void 0;return[o("subagent",[t===void 0||t==="default"?"general":t])]}return[o(i.toLowerCase(),["*"])]}}function m(s,l){let o=["*** Add File: ","*** Update File: ","*** Delete File: ","*** Move to: "];return[...new Set(s.split(`
2
+ `).flatMap((i)=>{let r=i.trim(),c=o.find((a)=>r.startsWith(a)),p=c&&r.slice(c.length).trim();return p?[f.resolve(l,p)]:[]}))]}function M(s,l){let o=l.filter((a)=>s.startsWith(`mcp__${y(a)}__`)).toSorted((a,_)=>_.length-a.length)[0],i=s.match(/^mcp__(.+?)__(.+)$/),r=o??i?.[1]?.replace(/_[0-9a-f]{12}$/,"");if(!r)throw new d(`Can't tell which MCP server ${s} belongs to`);let c=o?s.slice(`mcp__${y(o)}__`.length):i?.[2],p=c===void 0||/_[0-9a-f]{12}$/.test(s);return[{action:"mcp.use",resources:[r],...o?{}:{folded:!0}},p?{action:`${r}_`,resources:["*"],truncated:!0,folded:!0}:{action:`${r}_${c}`,resources:["*"],folded:!0}]}function y(s){return s.replace(/[^A-Za-z0-9_]/g,"_")}var T=new Set(["PATH","HOME","USER","SHELL","PWD","TMPDIR","TEMP","TMP","LANG","TERM","XDG_CONFIG_HOME"]);function v(s){let l=Array.from(s.matchAll(/(?:\[\$([A-Za-z0-9_:-]+)\]\(([^)]*)\))|\$([A-Za-z0-9_:-]+)/g),(r)=>({name:r[1]??r[3],link:r[1]===void 0?void 0:r[2].trim()})).filter((r)=>!T.has(r.name.toUpperCase())),o=(r)=>l.flatMap((c)=>c.link?.startsWith(r)?[c.link.slice(r.length).split(/[/?]/)[0]].filter(Boolean):[]),i=l.flatMap((r)=>r.link===void 0?/^[A-Z0-9_]+$/.test(r.name)?[]:[r.name]:/(?:^skill:\/\/|SKILL\.md$)/i.test(r.link)?[r.name]:[]);return{skills:[...new Set(i)],servers:[...new Set(o("mcp://"))],plugins:[...new Set(o("plugin://"))]}}export{h as CodexHook,d as Unreadable,P as checks,E as decode,v as mentions,m as patchFiles};
@@ -0,0 +1 @@
1
+ import{lr,fs,io,ds}from"./chunk-tzhpc3tb.js";import"./chunk-172desm7.js";import"./chunk-w7jwta9c.js";import"./chunk-xsr5jd61.js";import"./chunk-81pw2xsw.js";export{ds as PolicyEvaluator,lr as check,io as couldMatch,fs as statements};
@@ -0,0 +1 @@
1
+ import{ba,Go,Vo,eo,Zo,Yo,Qo,to,Ln,no,Xo,Sa,va,es,ts,ns}from"./chunk-93je9v9b.js";import"./chunk-c8zgzn9g.js";import"./chunk-tzhpc3tb.js";import"./chunk-e219b1sg.js";import"./chunk-fsg05nff.js";import"./chunk-wvtbwbxs.js";import"./chunk-bfd21777.js";import"./chunk-172desm7.js";import"./chunk-4hra11sy.js";import"./chunk-w7jwta9c.js";import"./chunk-xsr5jd61.js";import"./chunk-81pw2xsw.js";export{ns as Pi,eo as Unreadable,Zo as checks,Vo as defaultModel,Ln as directory,Xo as manifest,to as manifestFile,es as models,no as modelsFile,ba as paths,Go as providers,va as remove,Sa as setup,Qo as skillCommand,ts as skills,Yo as userBash};
@@ -0,0 +1,2 @@
1
+ import{ae,Us,Ti,hn,Oi,Er,_i,tt,gn,Re,Ri,Ni,mo}from"./chunk-w7jwta9c.js";import{k,U,we,So,D,Ct,pt,r,Z,u,Co,h,De,Nr,Ut,Te,ni,de,R,g,d,B,e,H,n,x,l,w,Le}from"./chunk-vf7nj8yg.js";var Ls={};k(Ls,{ConsoleClient:()=>Ls,DeviceSignInFailed:()=>vr,OAuth:()=>br,SignedOut:()=>zn,SsoRequired:()=>Sr,authorize:()=>Is,clientID:()=>yr,codexModelsPath:()=>uo,defaultServer:()=>As,fetchCodexModels:()=>_s,fetchConfig:()=>Os,fetchInstructions:()=>Ps,fetchModels:()=>_t,fetchSkill:()=>Ns,fetchSkillBlob:()=>Fs,fetchSkills:()=>Rs,fetchTelemetry:()=>Ms,headers:()=>Ii,normalizeServer:()=>Ds,refresh:()=>Ts,revoke:()=>lo,signedOutMessage:()=>Ci,ssoMessage:()=>Ai});var As="https://opencode.ai/console",yr="opencode-console-cli",br=n({type:d("oauth"),server:e,access:e,refresh:e,expires:H,accountID:e,email:g(e),orgID:g(e),orgName:g(e)}),Ci="Signed out of OpenCode Console. Run `npx @opencode/console login` to sign in again",Ai=(t)=>`Sign in with SSO again to use ${t??"your OpenCode Console workspace"}`;class Sr extends D("ConsoleClient.SsoRequired"){get message(){return Ai(this.organization)}}class zn extends D("ConsoleClient.SignedOut"){get message(){return Ci}}class vr extends D("ConsoleClient.DeviceSignInFailed"){}function Ii(t){return{authorization:`Bearer ${t.type==="oauth"?t.access:t.key}`,...t.type==="oauth"&&t.orgID?{"x-org-id":t.orgID}:{}}}var I=n({device_code:e,user_code:e,verification_uri:e,verification_uri_complete:e,expires_in:H,interval:H}),C=n({access_token:e,refresh_token:e,expires_in:H,org_id:g(Le(e))}),_=n({error:e}),M=n({id:e,email:e}),b=n({id:e,name:e}),O=n({_tag:d("SsoRequired"),connectionId:g(e)}),E=n({_tag:d("Unauthorized")}),A=x(e,B),J={access_denied:"The sign-in was denied in the browser",expired_token:"The code expired before it was approved. Start the sign-in again"},Is=R("ConsoleClient.authorize")(function*(t){let o=yield*Re,i=yield*f(`${t}/auth/device/code`,{client_id:yr,supports_org_scope:!0}).pipe(u(gn),u(tt(I))),c=new URL(t).origin,s=URL.parse(i.verification_uri_complete,`${t}/`);if(!s||s.origin!==c||URL.parse(i.verification_uri,`${t}/`)?.origin!==c)return yield*new vr({message:`${t} sent a sign-in link to another site (${i.verification_uri_complete}), so the sign-in stopped`});return{url:s.href,code:i.user_code,callback:S(t,i.device_code,we(i.interval)).pipe(Te(Re,o))}}),Ts=R("ConsoleClient.refresh")(function*(t){let o=yield*f(`${t.server}/auth/device/token`,{grant_type:"refresh_token",refresh_token:t.refresh,client_id:yr});if(o.status===400){let a=yield*tt(_)(o).pipe(Co);if(U(a)&&a.value.error==="invalid_grant")return yield*new zn}let i=yield*gn(o).pipe(u(tt(C))),c=yield*Ct,s=i.org_id??t.orgID;return br.make({...t,access:i.access_token,refresh:i.refresh_token,expires:c+i.expires_in*1000,...s===void 0?{}:{orgID:s}})}),lo=R("ConsoleClient.revoke")(function*(t){let o=yield*f(`${t.server}/auth/oauth/revoke`,{token:t.refresh,token_type_hint:"refresh_token",client_id:yr}).pipe(Nr(we(5)));yield*gn(o)}),Os=R("ConsoleClient.fetchConfig")(function*(t){return yield*p(t,"/api/v2/config",A)}),_t=R("ConsoleClient.fetchModels")(function*(t){return yield*p(t,"/api/v1/models",L)}),uo="/api/v2/codex/models",_s=R("ConsoleClient.fetchCodexModels")(function*(t){return yield*p(t,uo,z)}),Ps=R("ConsoleClient.fetchInstructions")(function*(t){return yield*p(t,"/api/v2/instructions",N).pipe(De(y,()=>r({instructions:[]})))}),Rs=R("ConsoleClient.fetchSkills")(function*(t){return yield*p(t,"/api/v2/skills",q).pipe(De(y,()=>r({skills:[]})))}),Ms=R("ConsoleClient.fetchTelemetry")(function*(t){return yield*p(t,"/api/v2/telemetry",K).pipe(De(y,()=>r(void 0)))}),Ns=R("ConsoleClient.fetchSkill")(function*(t,o){return yield*p(t,`/api/v2/skills/${encodeURIComponent(o)}?format=v2`,F)}),Fs=R("ConsoleClient.fetchSkillBlob")(function*(t,o,i){return yield*v(t,`/api/v2/skills/${encodeURIComponent(o)}/blobs/${encodeURIComponent(i)}`,(c)=>c.arrayBuffer.pipe(h((s)=>new Uint8Array(s))))}),L=x(e,n({name:g(e),models:x(e,x(e,B))})),z=n({models:l(n({slug:e,display_name:g(e)}))}),N=n({instructions:l(n({name:e,content:e}))}),q=n({skills:l(n({slug:e,version:e}))}),K=n({otlpLogsUrl:e,headers:x(e,e)}),F=n({slug:e,version:e,files:l(w([n({kind:d("text"),path:e,content:e}),n({kind:d("blob"),path:e,sha256:e})]))});function p(t,o,i){return v(t,o,tt(i))}function y(t){return t instanceof ae&&t.response?.status===404}function v(t,o,i){return u(Re,(c)=>Ni(c).execute(Us(`${t.server}${o}`).pipe(Er,hn(Ii(t)))).pipe(u((s)=>Z(function*(){if(s.status===401){let a=yield*tt(E)(s).pipe(Co);if(U(a))return yield*new zn}if(s.status===403){let a=yield*tt(O)(s).pipe(Co);if(U(a))return yield*new Sr({organization:t.type==="oauth"?t.orgName:void 0,url:P(t.server,a.value.connectionId)})}return yield*i(yield*gn(s))})),ni,Nr(we(10))))}function Ds(t){let o=URL.parse(t);if(!o)return;let i=["localhost","127.0.0.1","[::1]"].includes(o.hostname);if(o.protocol!=="https:"&&!(o.protocol==="http:"&&i))return;return`${o.origin}${o.pathname.replace(/\/+$/,"")}`}function P(t,o){let i=encodeURIComponent(`${new URL(t).pathname.replace(/\/+$/,"")}/`);if(!o)return`${t}/login?next=${i}`;return`${t}/auth/sso/${encodeURIComponent(o)}/start?redirectTo=${i}`}function S(t,o,i){return Z(function*(){yield*Ut(i);let c=yield*f(`${t}/auth/device/token`,{grant_type:"urn:ietf:params:oauth:grant-type:device_code",device_code:o,client_id:yr}),s=yield*tt(w([C,_]))(c);if("access_token"in s)return yield*j(t,s);if(s.error==="authorization_pending")return yield*S(t,o,i);if(s.error==="slow_down")return yield*S(t,o,So(i,we(5)));return yield*new vr({message:J[s.error]??`The Console refused the sign-in (${s.error})`})})}var j=de(function*(t,o){let[i,c]=yield*pt([m(`${t}/api/user`,o.access_token,M),m(`${t}/api/orgs`,o.access_token,l(b))],{concurrency:2}),s=o.org_id==null?void 0:c.find((T)=>T.id===o.org_id);if(o.org_id!=null&&!s)return yield*new vr({message:`The workspace ${o.org_id} wasn't found after signing in`});let a=yield*Ct;return br.make({type:"oauth",server:t,access:o.access_token,refresh:o.refresh_token,expires:a+o.expires_in*1000,accountID:i.id,email:i.email,...s?{orgID:s.id,orgName:s.name}:{}})});function m(t,o,i){return u(Re,(c)=>Ri(c).execute(Us(t).pipe(Er,Oi(o)))).pipe(u(tt(i)))}function f(t,o){return u(Re,(i)=>i.execute(Ti(t).pipe(Er,_i(o)))).pipe(Te(mo,{redirect:"manual"}))}
2
+ export{As,yr,br,Ci,Ai,Sr,zn,vr,Ii,Is,Ts,lo,Os,_t,uo,_s,Ps,Rs,Ms,Ns,Fs,Ds,Ls};
@@ -1,3 +1,3 @@
1
- import"./chunk-m3m5harb.js";import{k,j,W,b,B,e,n,x,Z}from"./chunk-9dgq3xc0.js";var h={};k(h,{ClaudeCodeHook:()=>h,Unreadable:()=>d,checks:()=>P,decode:()=>v,denial:()=>T,eventName:()=>C});var y=n({hook_event_name:e,cwd:b(e),tool_name:b(e),tool_input:b(x(e,B)),mcp_server:b(n({name:b(e)})),prompt:b(e),expansion_type:b(e),command_name:b(e)}),v=W(Z(y));class d extends Error{}var E={platform:process.platform,env:process.env};function P(t,a=E){let c=t.cwd,r=(s,i,f={})=>({action:s,resources:i,...c===void 0?{}:{directory:c},...f});if(t.hook_event_name==="UserPromptSubmit")return L(t.prompt??"").map((s)=>r(...s));if(t.hook_event_name==="UserPromptExpansion"){let s=t.command_name?.replace(/^\//,"");if(!s)throw new d("The expanded command has no name");if(t.expansion_type==="mcp_prompt"){let i=s.match(/^mcp__(.+?)__/)?.[1]??s.match(/^([^:]+):/)?.[1];if(!i)throw new d(`Can't tell which MCP server the prompt ${s} comes from`);return[r("mcp.use",[i])]}return[r("skill",[s])]}if(t.hook_event_name!=="PreToolUse")return[];let p=t.tool_name;if(!p)throw new d("The hook input names no tool");let o=t.tool_input??{},l=(...s)=>s.map((i)=>o[i]).find((i)=>typeof i==="string"&&i!==""),u=(...s)=>{let i=l(...s);if(i===void 0)throw new d(`${p}'s input has no ${s[0]}`);return i},g=a.env.CLAUDE_CODE_SHELL||(a.platform==="win32"?"bash":void 0),_=g===void 0?{}:{shell:g},m=M(p,t.mcp_server?.name);if(m)return[r("mcp.use",[m.server]),r(A(m.server,m.tool),["*"])];switch(p){case"Bash":return[r("shell",[u("command")],_)];case"PowerShell":return[r("shell",[u("command")],{shell:"pwsh"})];case"Monitor":{let s=l("command"),i=typeof o.ws==="object"&&o.ws!==null&&"url"in o.ws?o.ws.url:void 0,f=typeof i==="string"&&i!==""?i:void 0;if(s===void 0&&f===void 0)throw new d("Monitor's input has no command or ws.url");return[...s===void 0?[]:[r("shell",[s],_)],...f===void 0?[]:[r("webfetch",[f])]]}case"Edit":case"Write":case"MultiEdit":return[r("edit",[u("file_path")])];case"NotebookEdit":return[r("edit",[u("notebook_path")])];case"Read":return[r("read",[u("file_path")])];case"LSP":{let s=l("filePath","file_path","path");return[s===void 0?r("lsp",["*"]):r("read",[s])]}case"Glob":case"Grep":{let s=l("path");return[r(p.toLowerCase(),[u("pattern")],s===void 0?{}:{path:s})]}case"WebFetch":return[r("webfetch",[u("url")])];case"WebSearch":return[r("websearch",[u("query")])];case"Agent":case"Task":return[r("subagent",[S(l("subagent_type")??"general-purpose")])];case"Skill":return[r("skill",[u("skill","command","name").replace(/^\//,"")])];case"AskUserQuestion":return[r("question",["*"])];case"ReadMcpResourceTool":return[r("mcp.use",[u("server")])];case"ListMcpResourcesTool":{let s=l("server");return[r("mcp.use",[s??"*"])]}default:return[r(p.toLowerCase(),["*"])]}}function T(t,a){return{stdout:`${JSON.stringify(t==="PreToolUse"?{hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"deny",permissionDecisionReason:a}}:{decision:"block",reason:a})}
1
+ import"./chunk-81pw2xsw.js";import{k,L,W,g,B,e,n,x,G}from"./chunk-vf7nj8yg.js";var h={};k(h,{ClaudeCodeHook:()=>h,Unreadable:()=>d,checks:()=>P,decode:()=>v,denial:()=>T,eventName:()=>C});var y=n({hook_event_name:e,cwd:g(e),tool_name:g(e),tool_input:g(x(e,B)),mcp_server:g(n({name:g(e)})),prompt:g(e),expansion_type:g(e),command_name:g(e)}),v=W(G(y));class d extends Error{}var E={platform:process.platform,env:process.env};function P(t,a=E){let c=t.cwd,r=(s,i,f={})=>({action:s,resources:i,...c===void 0?{}:{directory:c},...f});if(t.hook_event_name==="UserPromptSubmit")return O(t.prompt??"").map((s)=>r(...s));if(t.hook_event_name==="UserPromptExpansion"){let s=t.command_name?.replace(/^\//,"");if(!s)throw new d("The expanded command has no name");if(t.expansion_type==="mcp_prompt"){let i=s.match(/^mcp__(.+?)__/)?.[1]??s.match(/^([^:]+):/)?.[1];if(!i)throw new d(`Can't tell which MCP server the prompt ${s} comes from`);return[r("mcp.use",[i])]}return[r("skill",[s])]}if(t.hook_event_name!=="PreToolUse")return[];let p=t.tool_name;if(!p)throw new d("The hook input names no tool");let o=t.tool_input??{},l=(...s)=>s.map((i)=>o[i]).find((i)=>typeof i==="string"&&i!==""),u=(...s)=>{let i=l(...s);if(i===void 0)throw new d(`${p}'s input has no ${s[0]}`);return i},_=a.env.CLAUDE_CODE_SHELL||(a.platform==="win32"?"bash":void 0),w=_===void 0?{}:{shell:_},m=M(p,t.mcp_server?.name);if(m)return[r("mcp.use",[m.server]),r(A(m.server,m.tool),["*"])];switch(p){case"Bash":return[r("shell",[u("command")],w)];case"PowerShell":return[r("shell",[u("command")],{shell:"pwsh"})];case"Monitor":{let s=l("command"),i=typeof o.ws==="object"&&o.ws!==null&&"url"in o.ws?o.ws.url:void 0,f=typeof i==="string"&&i!==""?i:void 0;if(s===void 0&&f===void 0)throw new d("Monitor's input has no command or ws.url");return[...s===void 0?[]:[r("shell",[s],w)],...f===void 0?[]:[r("webfetch",[f])]]}case"Edit":case"Write":case"MultiEdit":return[r("edit",[u("file_path")])];case"NotebookEdit":return[r("edit",[u("notebook_path")])];case"Read":return[r("read",[u("file_path")])];case"LSP":{let s=l("filePath","file_path","path");return[s===void 0?r("lsp",["*"]):r("read",[s])]}case"Glob":case"Grep":{let s=l("path");return[r(p.toLowerCase(),[u("pattern")],s===void 0?{}:{path:s})]}case"WebFetch":return[r("webfetch",[u("url")])];case"WebSearch":return[r("websearch",[u("query")])];case"Agent":case"Task":return[r("subagent",[S(l("subagent_type")??"general-purpose")])];case"Skill":return[r("skill",[u("skill","command","name").replace(/^\//,"")])];case"AskUserQuestion":return[r("question",["*"])];case"ReadMcpResourceTool":return[r("mcp.use",[u("server")])];case"ListMcpResourcesTool":{let s=l("server");return[r("mcp.use",[s??"*"])]}default:return[r(p.toLowerCase(),["*"])]}}function T(t,a){return{stdout:`${JSON.stringify(t==="PreToolUse"?{hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"deny",permissionDecisionReason:a}}:{decision:"block",reason:a})}
2
2
  `,stderr:`${a}
3
- `,code:2}}function C(t){return j(W(Z(n({hook_event_name:e})))(t))?.hook_event_name}function M(t,a){if(a&&t.startsWith(`mcp__${a}__`))return{server:a,tool:t.slice(`mcp__${a}__`.length)};let c=t.match(/^mcp__(.+?)__(.+)$/);return c?{server:c[1],tool:c[2]}:void 0}function A(t,a){return`${t}_${a.replace(/[^a-zA-Z0-9_-]/g,"_")}`}function S(t){let a=t.toLowerCase();return a==="general-purpose"?"general":a}function L(t){let a=Array.from(t.matchAll(/(?:^|\s)@(?:"([^"]+)"|(\S+))/g),(o)=>o[1]!==void 0?{quoted:o[1]}:{bare:o[2].replace(/[),.;!?]+$/,"")}),c=a.flatMap((o)=>("quoted"in o)?[o.quoted]:w(o.bare)?[o.bare]:[]),r=a.flatMap((o)=>("bare"in o)&&o.bare.startsWith("agent-")&&o.bare.length>6?[S(o.bare.slice(6))]:[]),p=a.flatMap((o)=>("bare"in o)&&!w(o.bare)&&!o.bare.startsWith("agent-")&&o.bare.includes(":")?[o.bare.slice(0,o.bare.indexOf(":"))].filter((l)=>l!==""):[]);return[...c.length===0?[]:[["read",c]],...r.length===0?[]:[["subagent",r]],...p.length===0?[]:[["mcp.use",p]]]}function w(t){if(t===""||t.startsWith("agent-"))return!1;return/^[A-Za-z]:[\\/]/.test(t)||!t.includes(":")}export{h as ClaudeCodeHook,d as Unreadable,P as checks,v as decode,T as denial,C as eventName};
3
+ `,code:2}}function C(t){return L(W(G(n({hook_event_name:e})))(t))?.hook_event_name}function M(t,a){if(a&&t.startsWith(`mcp__${a}__`))return{server:a,tool:t.slice(`mcp__${a}__`.length)};let c=t.match(/^mcp__(.+?)__(.+)$/);return c?{server:c[1],tool:c[2]}:void 0}function A(t,a){return`${t}_${a.replace(/[^a-zA-Z0-9_-]/g,"_")}`}function S(t){let a=t.toLowerCase();return a==="general-purpose"?"general":a}function O(t){let a=Array.from(t.matchAll(/(?:^|\s)@(?:"([^"]+)"|(\S+))/g),(o)=>o[1]!==void 0?{quoted:o[1]}:{bare:o[2].replace(/[),.;!?]+$/,"")}),c=a.flatMap((o)=>("quoted"in o)?[o.quoted]:b(o.bare)?[o.bare]:[]),r=a.flatMap((o)=>("bare"in o)&&o.bare.startsWith("agent-")&&o.bare.length>6?[S(o.bare.slice(6))]:[]),p=a.flatMap((o)=>("bare"in o)&&!b(o.bare)&&!o.bare.startsWith("agent-")&&o.bare.includes(":")?[o.bare.slice(0,o.bare.indexOf(":"))].filter((l)=>l!==""):[]);return[...c.length===0?[]:[["read",c]],...r.length===0?[]:[["subagent",r]],...p.length===0?[]:[["mcp.use",p]]]}function b(t){if(t===""||t.startsWith("agent-"))return!1;return/^[A-Za-z]:[\\/]/.test(t)||!t.includes(":")}export{h as ClaudeCodeHook,d as Unreadable,P as checks,v as decode,T as denial,C as eventName};
@@ -1,2 +1,2 @@
1
- import{k,c,i,a,zs,N,p,P,Mt,We,Yt,Le,r,o,L,jo,tr,qo,xt}from"./chunk-9dgq3xc0.js";var Fi={};k(Fi,{BrandError:()=>b,all:()=>U,check:()=>R,make:()=>M,nominal:()=>qs});var Di={};k(Di,{Path:()=>Wt,TypeId:()=>C,layer:()=>Y,make:()=>Kn});class b{constructor(e){this.issue=e}_tag="BrandError";name="BrandError";issue;get message(){return jo(this.issue)}toString(){return`BrandError(${this.message})`}}function qs(){return Object.assign((e)=>e,{option:(e)=>a(e),result:(e)=>p(e),is:(e)=>!0})}function M(e){return R(tr(e))}function R(...e){let t=(s)=>Mt(qo(e,s),(f)=>new b(f));return Object.assign((s)=>We(t(s)),{option:(s)=>zs(t(s)),result:t,is:(s)=>P(t(s)),checks:e})}function U(...e){let t=e.flatMap((s)=>s.checks??[]);return Yt(t)?R(...t):qs()}var C="~effect/Path",Wt=N("effect/Path"),Kn=(e)=>Wt.of({...e,[C]:C,resolveWithin(t,s){if(e.parse(s).root!=="")return i();let f=e.resolve(t),l=e.resolve(f,s),n=e.relative(f,l);return n===".."||n.startsWith(`..${e.sep}`)||e.isAbsolute(n)?i():a(l)}});function E(e,t){let s="",f=0,l=-1,n=0,x;for(let m=0;m<=e.length;++m){if(m<e.length)x=e.charCodeAt(m);else if(x===47)break;else x=47;if(x===47){if(l===m-1||n===1);else if(l!==m-1&&n===2){if(s.length<2||f!==2||s.charCodeAt(s.length-1)!==46||s.charCodeAt(s.length-2)!==46){if(s.length>2){let d=s.lastIndexOf("/");if(d!==s.length-1){if(d===-1)s="",f=0;else s=s.slice(0,d),f=s.length-1-s.lastIndexOf("/");l=m,n=0;continue}}else if(s.length===2||s.length===1){s="",f=0,l=m,n=0;continue}}if(t){if(s.length>0)s+="/..";else s="..";f=2}}else{if(s.length>0)s+="/"+e.slice(l+1,m);else s=e.slice(l+1,m);f=m-l-1}l=m,n=0}else if(x===46&&n!==-1)++n;else n=-1}return s}function z(e){if(!e)return"";return e.startsWith(".")?e:`.${e}`}function _(e,t){let s=t.dir||t.root,f=t.base||(t.name||"")+z(t.ext);if(!s)return f;if(s===t.root)return s+f;return s+e+f}function q(e){if(e.protocol!=="file:")return o(new xt({module:"Path",method:"fromFileUrl",description:"URL must be of scheme file"}));else if(e.hostname!=="")return o(new xt({module:"Path",method:"fromFileUrl",description:"Invalid file URL host"}));let t=e.pathname;for(let s=0;s<t.length;s++)if(t[s]==="%"){let f=t.codePointAt(s+2)|32;if(t[s+1]==="2"&&f===102)return o(new xt({module:"Path",method:"fromFileUrl",description:"must not include encoded / characters"}))}return L({try:()=>decodeURIComponent(t),catch:(s)=>new xt({module:"Path",method:"fromFileUrl",cause:s})})}var T=function(){let t="",s=!1,f=void 0;for(let l=arguments.length-1;l>=-1&&!s;l--){let n;if(l>=0)n=arguments[l];else{let x=globalThis.process;if(f===void 0&&"process"in globalThis&&typeof x==="object"&&x!==null&&typeof x.cwd==="function")f=x.cwd();n=f}if(n.length===0)continue;t=n+"/"+t,s=n.charCodeAt(0)===47}if(t=E(t,!s),s)if(t.length>0)return"/"+t;else return"/";else if(t.length>0)return t;else return"."},W=47;function G(e){let t=new URL("file://"),s=T(e);if(e.charCodeAt(e.length-1)===W&&s[s.length-1]!=="/")s+="/";return t.pathname=X(s),r(t)}var J=/%/g,Q=/\\/g,V=/\n/g,K=/\r/g,j=/\t/g;function X(e){if(e.includes("%"))e=e.replace(J,"%25");if(e.includes("\\"))e=e.replace(Q,"%5C");if(e.includes(`
2
- `))e=e.replace(V,"%0A");if(e.includes("\r"))e=e.replace(K,"%0D");if(e.includes("\t"))e=e.replace(j,"%09");return e}var S=Kn({resolve:T,normalize(e){if(e.length===0)return".";let t=e.charCodeAt(0)===47,s=e.charCodeAt(e.length-1)===47;if(e=E(e,!t),e.length===0&&!t)e=".";if(e.length>0&&s)e+="/";if(t)return"/"+e;return e},isAbsolute(e){return e.length>0&&e.charCodeAt(0)===47},join(){if(arguments.length===0)return".";let e;for(let t=0;t<arguments.length;++t){let s=arguments[t];if(s.length>0)if(e===void 0)e=s;else e+="/"+s}if(e===void 0)return".";return S.normalize(e)},relative(e,t){if(e===t)return"";if(e=S.resolve(e),t=S.resolve(t),e===t)return"";let s=1;for(;s<e.length;++s)if(e.charCodeAt(s)!==47)break;let f=e.length,l=f-s,n=1;for(;n<t.length;++n)if(t.charCodeAt(n)!==47)break;let m=t.length-n,d=l<m?l:m,h=-1,u=0;for(;u<=d;++u){if(u===d){if(m>d){if(t.charCodeAt(n+u)===47)return t.slice(n+u+1);else if(u===0)return t.slice(n+u)}else if(l>d){if(e.charCodeAt(s+u)===47)h=u;else if(u===0)h=0}break}let A=e.charCodeAt(s+u),v=t.charCodeAt(n+u);if(A!==v)break;else if(A===47)h=u}let g="";for(u=s+h+1;u<=f;++u)if(u===f||e.charCodeAt(u)===47)if(g.length===0)g+="..";else g+="/..";if(g.length>0)return g+t.slice(n+h);else{if(n+=h,t.charCodeAt(n)===47)++n;return t.slice(n)}},dirname(e){if(e.length===0)return".";let t=e.charCodeAt(0),s=t===47,f=-1,l=!0;for(let n=e.length-1;n>=1;--n)if(t=e.charCodeAt(n),t===47){if(!l){f=n;break}}else l=!1;if(f===-1)return s?"/":".";if(s&&f===1)return"//";return e.slice(0,f)},basename(e,t){let s=0,f=-1,l=!0,n;if(t!==void 0&&t.length>0&&t.length<=e.length){if(t.length===e.length&&t===e)return"";let x=t.length-1,m=-1;for(n=e.length-1;n>=0;--n){let d=e.charCodeAt(n);if(d===47){if(!l){s=n+1;break}}else{if(m===-1)l=!1,m=n+1;if(x>=0)if(d===t.charCodeAt(x)){if(--x===-1)f=n}else x=-1,f=m}}if(s===f)f=m;else if(f===-1)f=e.length;return e.slice(s,f)}else{for(n=e.length-1;n>=0;--n)if(e.charCodeAt(n)===47){if(!l){s=n+1;break}}else if(f===-1)l=!1,f=n+1;if(f===-1)return"";return e.slice(s,f)}},extname(e){let t=-1,s=0,f=-1,l=!0,n=0;for(let x=e.length-1;x>=0;--x){let m=e.charCodeAt(x);if(m===47){if(!l){s=x+1;break}continue}if(f===-1)l=!1,f=x+1;if(m===46){if(t===-1)t=x;else if(n!==1)n=1}else if(t!==-1)n=-1}if(t===-1||f===-1||n===0||n===1&&t===f-1&&t===s+1)return"";return e.slice(t,f)},format:function(t){if(t===null||typeof t!=="object")throw TypeError('The "pathObject" argument must be of type Object. Received type '+typeof t);return _("/",t)},parse(e){let t={root:"",dir:"",base:"",ext:"",name:""};if(e.length===0)return t;let s=e.charCodeAt(0),f=s===47,l;if(f)t.root="/",l=1;else l=0;let n=-1,x=0,m=-1,d=!0,h=e.length-1,u=0;for(;h>=l;--h){if(s=e.charCodeAt(h),s===47){if(!d){x=h+1;break}continue}if(m===-1)d=!1,m=h+1;if(s===46){if(n===-1)n=h;else if(u!==1)u=1}else if(n!==-1)u=-1}if(n===-1||m===-1||u===0||u===1&&n===m-1&&n===x+1){if(m!==-1)if(x===0&&f)t.base=t.name=e.slice(1,m);else t.base=t.name=e.slice(x,m)}else{if(x===0&&f)t.name=e.slice(1,n),t.base=e.slice(1,m);else t.name=e.slice(x,n),t.base=e.slice(x,m);t.ext=e.slice(n,m)}if(x>0)t.dir=e.slice(0,x-1);else if(f)t.dir="/";return t},sep:"/",fromFileUrl:q,toFileUrl:G,toNamespacedPath:c}),Y=Le(Wt)(S);export{qs,Fi,Wt,Kn,Di};
1
+ import{k,c,i,a,Ws,F,p,P,Mt,Je,Yt,Be,r,o,j,jo,nr,qo,xt}from"./chunk-vf7nj8yg.js";var Di={};k(Di,{BrandError:()=>b,all:()=>U,check:()=>R,make:()=>M,nominal:()=>Hs});var Li={};k(Li,{Path:()=>Kt,TypeId:()=>C,layer:()=>Y,make:()=>Kn});class b{constructor(e){this.issue=e}_tag="BrandError";name="BrandError";issue;get message(){return jo(this.issue)}toString(){return`BrandError(${this.message})`}}function Hs(){return Object.assign((e)=>e,{option:(e)=>a(e),result:(e)=>p(e),is:(e)=>!0})}function M(e){return R(nr(e))}function R(...e){let t=(s)=>Mt(qo(e,s),(f)=>new b(f));return Object.assign((s)=>Je(t(s)),{option:(s)=>Ws(t(s)),result:t,is:(s)=>P(t(s)),checks:e})}function U(...e){let t=e.flatMap((s)=>s.checks??[]);return Yt(t)?R(...t):Hs()}var C="~effect/Path",Kt=F("effect/Path"),Kn=(e)=>Kt.of({...e,[C]:C,resolveWithin(t,s){if(e.parse(s).root!=="")return i();let f=e.resolve(t),l=e.resolve(f,s),n=e.relative(f,l);return n===".."||n.startsWith(`..${e.sep}`)||e.isAbsolute(n)?i():a(l)}});function E(e,t){let s="",f=0,l=-1,n=0,x;for(let m=0;m<=e.length;++m){if(m<e.length)x=e.charCodeAt(m);else if(x===47)break;else x=47;if(x===47){if(l===m-1||n===1);else if(l!==m-1&&n===2){if(s.length<2||f!==2||s.charCodeAt(s.length-1)!==46||s.charCodeAt(s.length-2)!==46){if(s.length>2){let d=s.lastIndexOf("/");if(d!==s.length-1){if(d===-1)s="",f=0;else s=s.slice(0,d),f=s.length-1-s.lastIndexOf("/");l=m,n=0;continue}}else if(s.length===2||s.length===1){s="",f=0,l=m,n=0;continue}}if(t){if(s.length>0)s+="/..";else s="..";f=2}}else{if(s.length>0)s+="/"+e.slice(l+1,m);else s=e.slice(l+1,m);f=m-l-1}l=m,n=0}else if(x===46&&n!==-1)++n;else n=-1}return s}function N(e){if(!e)return"";return e.startsWith(".")?e:`.${e}`}function z(e,t){let s=t.dir||t.root,f=t.base||(t.name||"")+N(t.ext);if(!s)return f;if(s===t.root)return s+f;return s+e+f}function _(e){if(e.protocol!=="file:")return o(new xt({module:"Path",method:"fromFileUrl",description:"URL must be of scheme file"}));else if(e.hostname!=="")return o(new xt({module:"Path",method:"fromFileUrl",description:"Invalid file URL host"}));let t=e.pathname;for(let s=0;s<t.length;s++)if(t[s]==="%"){let f=t.codePointAt(s+2)|32;if(t[s+1]==="2"&&f===102)return o(new xt({module:"Path",method:"fromFileUrl",description:"must not include encoded / characters"}))}return j({try:()=>decodeURIComponent(t),catch:(s)=>new xt({module:"Path",method:"fromFileUrl",cause:s})})}var T=function(){let t="",s=!1,f=void 0;for(let l=arguments.length-1;l>=-1&&!s;l--){let n;if(l>=0)n=arguments[l];else{let x=globalThis.process;if(f===void 0&&"process"in globalThis&&typeof x==="object"&&x!==null&&typeof x.cwd==="function")f=x.cwd();n=f}if(n.length===0)continue;t=n+"/"+t,s=n.charCodeAt(0)===47}if(t=E(t,!s),s)if(t.length>0)return"/"+t;else return"/";else if(t.length>0)return t;else return"."},q=47;function W(e){let t=new URL("file://"),s=T(e);if(e.charCodeAt(e.length-1)===q&&s[s.length-1]!=="/")s+="/";return t.pathname=X(s),r(t)}var G=/%/g,J=/\\/g,Q=/\n/g,V=/\r/g,K=/\t/g;function X(e){if(e.includes("%"))e=e.replace(G,"%25");if(e.includes("\\"))e=e.replace(J,"%5C");if(e.includes(`
2
+ `))e=e.replace(Q,"%0A");if(e.includes("\r"))e=e.replace(V,"%0D");if(e.includes("\t"))e=e.replace(K,"%09");return e}var S=Kn({resolve:T,normalize(e){if(e.length===0)return".";let t=e.charCodeAt(0)===47,s=e.charCodeAt(e.length-1)===47;if(e=E(e,!t),e.length===0&&!t)e=".";if(e.length>0&&s)e+="/";if(t)return"/"+e;return e},isAbsolute(e){return e.length>0&&e.charCodeAt(0)===47},join(){if(arguments.length===0)return".";let e;for(let t=0;t<arguments.length;++t){let s=arguments[t];if(s.length>0)if(e===void 0)e=s;else e+="/"+s}if(e===void 0)return".";return S.normalize(e)},relative(e,t){if(e===t)return"";if(e=S.resolve(e),t=S.resolve(t),e===t)return"";let s=1;for(;s<e.length;++s)if(e.charCodeAt(s)!==47)break;let f=e.length,l=f-s,n=1;for(;n<t.length;++n)if(t.charCodeAt(n)!==47)break;let m=t.length-n,d=l<m?l:m,h=-1,u=0;for(;u<=d;++u){if(u===d){if(m>d){if(t.charCodeAt(n+u)===47)return t.slice(n+u+1);else if(u===0)return t.slice(n+u)}else if(l>d){if(e.charCodeAt(s+u)===47)h=u;else if(u===0)h=0}break}let A=e.charCodeAt(s+u),L=t.charCodeAt(n+u);if(A!==L)break;else if(A===47)h=u}let g="";for(u=s+h+1;u<=f;++u)if(u===f||e.charCodeAt(u)===47)if(g.length===0)g+="..";else g+="/..";if(g.length>0)return g+t.slice(n+h);else{if(n+=h,t.charCodeAt(n)===47)++n;return t.slice(n)}},dirname(e){if(e.length===0)return".";let t=e.charCodeAt(0),s=t===47,f=-1,l=!0;for(let n=e.length-1;n>=1;--n)if(t=e.charCodeAt(n),t===47){if(!l){f=n;break}}else l=!1;if(f===-1)return s?"/":".";if(s&&f===1)return"//";return e.slice(0,f)},basename(e,t){let s=0,f=-1,l=!0,n;if(t!==void 0&&t.length>0&&t.length<=e.length){if(t.length===e.length&&t===e)return"";let x=t.length-1,m=-1;for(n=e.length-1;n>=0;--n){let d=e.charCodeAt(n);if(d===47){if(!l){s=n+1;break}}else{if(m===-1)l=!1,m=n+1;if(x>=0)if(d===t.charCodeAt(x)){if(--x===-1)f=n}else x=-1,f=m}}if(s===f)f=m;else if(f===-1)f=e.length;return e.slice(s,f)}else{for(n=e.length-1;n>=0;--n)if(e.charCodeAt(n)===47){if(!l){s=n+1;break}}else if(f===-1)l=!1,f=n+1;if(f===-1)return"";return e.slice(s,f)}},extname(e){let t=-1,s=0,f=-1,l=!0,n=0;for(let x=e.length-1;x>=0;--x){let m=e.charCodeAt(x);if(m===47){if(!l){s=x+1;break}continue}if(f===-1)l=!1,f=x+1;if(m===46){if(t===-1)t=x;else if(n!==1)n=1}else if(t!==-1)n=-1}if(t===-1||f===-1||n===0||n===1&&t===f-1&&t===s+1)return"";return e.slice(t,f)},format:function(t){if(t===null||typeof t!=="object")throw TypeError('The "pathObject" argument must be of type Object. Received type '+typeof t);return z("/",t)},parse(e){let t={root:"",dir:"",base:"",ext:"",name:""};if(e.length===0)return t;let s=e.charCodeAt(0),f=s===47,l;if(f)t.root="/",l=1;else l=0;let n=-1,x=0,m=-1,d=!0,h=e.length-1,u=0;for(;h>=l;--h){if(s=e.charCodeAt(h),s===47){if(!d){x=h+1;break}continue}if(m===-1)d=!1,m=h+1;if(s===46){if(n===-1)n=h;else if(u!==1)u=1}else if(n!==-1)u=-1}if(n===-1||m===-1||u===0||u===1&&n===m-1&&n===x+1){if(m!==-1)if(x===0&&f)t.base=t.name=e.slice(1,m);else t.base=t.name=e.slice(x,m)}else{if(x===0&&f)t.name=e.slice(1,n),t.base=e.slice(1,m);else t.name=e.slice(x,n),t.base=e.slice(x,m);t.ext=e.slice(n,m)}if(x>0)t.dir=e.slice(0,x-1);else if(f)t.dir="/";return t},sep:"/",fromFileUrl:_,toFileUrl:W,toNamespacedPath:c}),Y=Be(Kt)(S);export{Hs,Di,Kt,Kn,Li};
@@ -0,0 +1,11 @@
1
+ import{Xe,fn,wt,_,Et,gs,ao,dn,mn,Tt,mr,hr}from"./chunk-e219b1sg.js";import{_t}from"./chunk-4hra11sy.js";import{Ae,V,Se,J}from"./chunk-xsr5jd61.js";import{be,ze}from"./chunk-bfd21777.js";import{lt,Ot,et}from"./chunk-wvtbwbxs.js";import{He}from"./chunk-fsg05nff.js";import{ue}from"./chunk-8stwzw95.js";import{k,L,I,j,ke,Oe,R,W,g,e,H,v,n,x,l,M,Le,G}from"./chunk-vf7nj8yg.js";var ls={};k(ls,{DeepSeekHarness:()=>ls,MCP_SERVICE:()=>Un,REALM:()=>rs,Route:()=>xi,SERVICE:()=>oo,TOKEN:()=>ro,Unreadable:()=>$n,checks:()=>is,defaultModel:()=>yi,invokedSkills:()=>as,manifest:()=>pn,manifestFile:()=>so,mcpConfig:()=>ss,paths:()=>wa,refresh:()=>cs,remove:()=>Ea,routes:()=>os});import{createHash as z}from"node:crypto";import{existsSync as B,readdirSync as U,rmSync as Y}from"node:fs";import Z from"node:os";import w from"node:path";function wa(s=process.env,t=Z.homedir(),o=process.platform){let r=s.DSH_HOME?.trim(),i=r!==void 0&&(r.startsWith("~/")||o==="win32"&&r.startsWith("~\\")),a=w.resolve(r?r==="~"?t:i?w.join(t,r.slice(2)):r:t,r?"":".dsh");return{home:a,patch:w.join(a,"cordis.patch.yml"),skills:w.join(a,"skills")}}var ro="OPENCODE_CONSOLE_TOKEN",rs="opencode-console",oo="opencodeConsole",Un="opencodeConsoleMcp",xi=n({displayName:e,api:M(["anthropic-messages","openai-responses","openai-completions"]),baseURL:e,apiKeyEnv:e,headers:x(e,e),compat:g(n({supportsDeveloperRole:v,maxTokensField:e})),models:l(n({id:e,name:e,contextWindow:g(H),maxTokens:g(H),input:l(M(["text","image"]))}))}),D={messages:"anthropic-messages",responses:"openai-responses","chat-completions":"openai-completions"};function os(s){let t=Tt(s),o=hr(t),r=Map.groupBy(t,(i)=>i.provider);return Object.fromEntries([...r].flatMap(([i,a])=>{let p=a.map(Q),u=p[0],h=u!==void 0&&p.every((m)=>m?.api===u.api&&m.url===u.url);if(!h&&o===void 0)return[];let S=h?u.api:"anthropic-messages",f={displayName:s[i]?.name??i,api:S,baseURL:h?S==="anthropic-messages"?u.url.replace(/\/v1\/?$/,""):u.url:`${o}/anthropic`,apiKeyEnv:ro,headers:{"x-opencode-plugin":`opencode-console/${ue}`},...S==="openai-completions"?{compat:{supportsDeveloperRole:!1,maxTokensField:"max_tokens"}}:{},models:a.map((m)=>X(m,h||i==="opencode"?m.id:`${i}/${m.id}`))};return[[i,f]]}))}function yi(s){let t=Tt(s),o=mr(t,"sonnet","opus","haiku");if(!o)return;let i=os(s)[o.provider]?.models.find((a)=>a.id===o.id||a.id===`${o.provider}/${o.id}`)?.id;return i===void 0?void 0:{provider:o.provider,model:i}}function Q(s){let t=_(s.entry.api),o=Object.keys(D).find((i)=>(i in t)),r=o&&Et(_(t[o]).base_url);return o&&r?{api:D[o],url:r}:void 0}function X(s,t){let o=_(s.entry.limit),r=_(s.entry.modalities).input;return{id:t,name:Et(s.entry.name)??s.id,...C(o.context)===void 0?{}:{contextWindow:C(o.context)},...C(o.output)===void 0?{}:{maxTokens:C(o.output)},input:Array.isArray(r)&&r.some((i)=>typeof i==="string"&&i.startsWith("image"))?["text","image"]:["text"]}}function C(s){return typeof s==="number"&&Number.isFinite(s)&&s>0?s:void 0}function ss(s,t){if(!t)throw Error(`The workspace doesn't offer the MCP server ${s} anymore`);return{serverName:s,transport:"streamable-http",url:t.url,...t.headers?{headers:{...t.headers}}:{}}}class $n extends Error{}async function is(s,t){let o=_(s.input),r=s.name,i=(c,d,b={})=>({action:c,resources:d,directory:t.directory,...b}),a=(c)=>{let d=o[c];return typeof d==="string"&&d!==""?d:void 0},p=(c)=>{let d=a(c);if(d===void 0)throw new $n(`${r}'s input has no ${c}`);return d},u=(c)=>t.resolve(p(c)),h=(c)=>{let d=t.skills&&ee(t.skills,c);return d?i("skill",[d]):i("read",[c])},S=async(c)=>{let d=a(c);return d===void 0?{}:{directories:[await t.resolve(d)]}},f=(c,d={})=>i("shell",[c??""],{opaque:!0,...d}),m=async()=>i("subagent",[(a("agent_preset")??a("name")??a("runtime")??"general").toLowerCase()],await S("cwd"));if(r.startsWith("mcp__"))return ne(r,t.servers??[]).map((c)=>i(c.action,c.resources,c));switch(r){case"bash":case"pwsh":{let c=a("workdir");return[i("shell",[p("command")],{shell:r==="pwsh"?"pwsh":"bash",path:c===void 0?t.cwd:await t.resolve(c)})]}case"read":case"read_image":case"lsp":return[h(await u("file_path"))];case"write":case"edit":return[i("edit",[await u("file_path")])];case"apply_patch":{let c=te(p("input"));if(c.length===0)throw new $n("apply_patch's input names no file");return[i("edit",await Promise.all(c.map(t.resolve)))]}case"str_replace_editor":return p("command")==="view"?[h(await u("path"))]:[i("edit",[await u("path")])];case"glob":case"grep":{let c=a("path");return[i(r,[p("pattern")],{path:c===void 0?t.cwd:await t.resolve(c)})]}case"web_fetch":return[i("webfetch",[p("url")])];case"web_search":{let c=Array.isArray(o.queries)?o.queries.filter((b)=>typeof b==="string"&&b!==""):[],d=c.length>0?c:[a("query")].flatMap((b)=>b??[]);if(d.length===0)throw new $n("web_search's input has no queries");return[i("websearch",d)]}case"subagent":case"subagent_fork":case"spawn_teammate":case"ralph":return[await m()];case"subagent_oar":return[await m(),f(a("prompt"))];case"workflow":return[f(a("script")),i("subagent:",["*"],{truncated:!0})];case"run_code":return[f(a("code"))];case"terminal_send":return[f(a("text"))];case"terminal_open":{let c=a("cwd");return[f(a("type"),c===void 0?{}:{path:await t.resolve(c)})]}case"ask_user_question":return[i("question",["*"])];case"working_directory":return a("cd")===void 0?[]:[i("working_directory",["*"],await S("cd"))];case"skill":return[i("skill",[p("name")])];case"read_mcp_resource":case"list_mcp_resources":case"list_mcp_resource_templates":return[i("mcp.use",[p("server")])];default:return[i(r.toLowerCase(),["*"])]}}function ee(s,t){let o=w.relative(s,t);if(o===""||o.startsWith("..")||w.isAbsolute(o))return;return o.split(w.sep)[0]}function ne(s,t){let r=t.filter((a)=>s.startsWith(`mcp__${a}__`)).toSorted((a,p)=>p.length-a.length)[0]??s.match(/^mcp__(.+?)__./)?.[1];if(!r)throw new $n(`Can't tell which MCP server ${s} belongs to`);let i=s.slice(`mcp__${r}__`.length);return[{action:"mcp.use",resources:[r]},/_[0-9a-f]{12}$/.test(s)?{action:`${r}_`,resources:["*"],truncated:!0}:{action:`${r}_${i}`,resources:["*"]}]}function te(s){return s.split(/\r?\n/).flatMap((t)=>{let o=t.trim().match(/^\*\*\* (?:Add File|Update File|Delete File|Move to): (.+)$/)?.[1]?.trim();return o?[o]:[]})}function as(s){let t=s.flatMap((o)=>_(o.source).kind!=="user"||!Array.isArray(o.content)?[]:o.content.flatMap((r)=>{let i=_(r);return i.type==="text"&&typeof i.text==="string"?Array.from(i.text.matchAll(/(^|\s)\/([a-z0-9]+(?:-[a-z0-9]+)*)(?=\s|$)/g),(a)=>a[2]):[]}));return[...new Set(t)]}var N="# opencode-console:start",T="# opencode-console:end",re=n({provider:e,model:e}),F=n({paths:n({home:e,patch:e,skills:e}),plugin:e,harness:g(e),created:v,skills:x(e,e),providers:g(e),routes:g(x(e,xi)),model:g(Le(re))}),so=(s)=>w.join(s.data,"deepseek-harness.json");function pn(s){let t=so(s),o=V(t);if(o===void 0)return;let r=L(W(G(F))(o));if(!r)throw Error(`${t} can't be read, so DeepSeek Harness was left as it is. Delete it and run setup again.`);return r}var cs=R("DeepSeekHarness.refresh")(function*(s,t){let o=pn(s),r=t??o;if(!r)return;let i=yield*ze(s),a=i&&He(s,be(i));if(!i||!a?.config)return;let p=a.config,u=Ot(a),h=z("sha256").update(JSON.stringify(p.providers??null)).digest("hex"),f=!t&&o?.providers===h&&o.routes!==void 0?void 0:yield*_t(i),m=yield*dn(i,r.paths.skills,u,o?.skills??{});return yield*Ae(s,I(()=>oe(s,{paths:r.paths,plugin:r.plugin,harness:t?t.harness:o?.harness,routes:f?os(f):o?.routes??{},model:f?yi(f):o?.model??void 0,servers:et(a),instructions:lt(a).length,skills:u,bundles:m,providers:h})))});function Ea(s){let t=pn(s);if(!t)return!1;let o=V(t.paths.patch);if(o!==void 0){let r=K(o),i=r.after===""?r.before.replace(/\n+$/,`
2
+ `):`${r.before}${r.after}`,a=i.split(`
3
+ `).every((p)=>p.trim()===""||p.trimStart().startsWith("#"));if(a&&t.created)J(t.paths.patch);else if(r.marked)wt(t.paths.patch,a?`${i.trimEnd()}${i.trim()===""?"":`
4
+ `}[]
5
+ `:i)}return Object.keys(t.skills).forEach((r)=>Y(w.join(t.paths.skills,r),{recursive:!0,force:!0})),J(Xe(t.paths.patch)),J(so(s)),!0}function oe(s,t){let o=pn(s),r=V(t.paths.patch),i=K(r??""),a=se(t.paths.patch,i),p=o?.created??r===void 0,u=[],h=(y)=>{let O=a.rows.some((E)=>E.id===y&&E.insert===void 0&&E.config!==void 0);if(O)u.push(`the ${y} row in ${t.paths.patch}`);return!O},S=Object.entries(t.servers).filter(([y])=>/^[A-Za-z0-9_-]{1,32}$/.test(y)),f=Object.keys(t.routes).length>0&&h("llm-pi-ai"),m=f&&t.model&&h("agent-default-model")?t.model:void 0,c=[{insert:[{id:"opencode-console",name:t.plugin,isolate:{credentials:rs}},...S.map(([y])=>({id:`opencode-console-mcp-${y}`,name:"@deepseek-ai/dsh-mcp-client",inject:[Un],config:`__opencode_console_mcp__:${y}`}))]},{id:"agent-loop",inject:ie(a.rows)},...f?[{id:"llm-pi-ai",isolate:{credentials:rs},config:{providers:t.routes}}]:[],...m?[{id:"agent-default-model",config:m}]:[]],d=[`${N} (written by \`npx @opencode/console setup deepseek-harness\`, which replaces this block on every sync; --remove takes it out)`,...c.map((y)=>`- ${JSON.stringify(y).replace(/"config":"__opencode_console_mcp__:([A-Za-z0-9_-]+)"/g,(O,E)=>`"config": !!js "ctx.${Un}.server('${E}')"`)}`),T].join(`
6
+ `),b=i.marked?`${a.before}${d}
7
+ ${i.after}`:`${[a.before.trimEnd(),d].filter((y)=>y!=="").join(`
8
+
9
+ `)}
10
+ `;if(P(t.paths.patch,b).length!==a.rows.length+c.length)throw Error(`${t.paths.patch} couldn't take setup's rows, so it was left alone. Fix it and run setup again.`);if(!o)fn(t.paths.patch);if(b!==r)wt(t.paths.patch,b,384);let A=mn(t.paths.skills,t.skills,t.bundles,o?.skills??{},{named:!0});return u.push(...A.skipped),Se(so(s),JSON.stringify(F.make({paths:t.paths,plugin:t.plugin,...t.harness===void 0?{}:{harness:t.harness},created:p,skills:A.skills,providers:t.providers,routes:{...t.routes},model:t.model??null}))),{routes:f?t.routes:{},model:m,servers:S.map(([y])=>y),skills:Object.keys(A.skills),instructions:t.instructions,skipped:u,shadowed:f?ae(t.paths.home):[]}}var q={tag:"tag:yaml.org,2002:js",resolve:(s)=>s};function K(s){let t=s.match(new RegExp(`^${N}[^\\n]*\\n[\\s\\S]*?^${T}[^\\n]*(?:\\n|$)`,"m"));if(!t||t.index===void 0)return{before:s,after:"",marked:!1};return{before:s.slice(0,t.index),after:s.slice(t.index+t[0].length),marked:!0}}function P(s,t){let o=ao(t,{customTags:[q]});if(o.errors.length>0||o.warnings.length>0)throw Error(`${s} isn't YAML DeepSeek Harness reads, so it was left alone. Fix it and run setup again.`);let r=o.toJS();if(r===null||r===void 0)return[];if(!Array.isArray(r))throw Error(`${s} isn't a YAML list of patch rows, so it was left alone. Fix it and run setup again.`);return r.map((i)=>_(i))}function se(s,t){let o=`${t.before}${t.after}`,r=P(s,o),i=ao(o,{customTags:[q]}).contents;if(!gs(i)||!i.flow)return{rows:r,before:t.before};if(r.length>0)throw Error(`${s} lists its rows in flow style ([...]), so it was left alone. Write them as a block list.`);return{rows:r,before:t.before.replace(/^\s*\[\s*\][ \t]*\n?/m,"")}}function ie(s){let o=s.filter((r)=>r.id==="agent-loop"&&r.insert===void 0).map((r)=>r.inject).flatMap((r)=>Array.isArray(r)?r.filter((i)=>typeof i==="string"):Object.keys(_(r)));return[...new Set([...o,oo])]}function ae(s){let t=w.join(s,"profiles");if(!B(t))return[];return U(t,{withFileTypes:!0}).filter((o)=>o.isDirectory()&&!o.name.startsWith(".")&&o.name!=="node_modules").map((o)=>o.name).filter((o)=>{let r=w.join(t,o,"cordis.patch.yml");return Oe(j(()=>P(r,V(r)??"").some((i)=>i.id==="llm-pi-ai"&&i.insert===void 0&&i.config!==void 0)).pipe(ke(()=>!1)))})}
11
+ export{wa,ro,rs,oo,Un,xi,os,yi,ss,$n,is,as,so,pn,cs,Ea,ls};
@@ -0,0 +1,2 @@
1
+ var ue="0.1.4";
2
+ export{ue};
@@ -1,2 +1,2 @@
1
- import{_t}from"./chunk-jpqmm6pm.js";import{Ce,J,Se,K,Rt}from"./chunk-6xs4y82y.js";import{ke,be}from"./chunk-x65p26st.js";import{Ot}from"./chunk-yb3fn5r1.js";import{Be}from"./chunk-cd4h496v.js";import{ur,St,vt,pr,jn,Xe,fn,_,Et,dn,mn,Tt,dr}from"./chunk-gcqbk8bn.js";import{ue}from"./chunk-9zpe1ry1.js";import{k,rt,j,I,On,W,b,B,e,v,n,x,Z}from"./chunk-9dgq3xc0.js";var ns={};k(ns,{Pi:()=>ns,Unreadable:()=>Xr,checks:()=>Zo,defaultModel:()=>Vo,directory:()=>Un,manifest:()=>Xo,manifestFile:()=>eo,models:()=>es,modelsFile:()=>to,paths:()=>ya,providers:()=>Go,remove:()=>Sa,setup:()=>ba,skillCommand:()=>Qo,skills:()=>ts,userBash:()=>Yo});import{createHash as A}from"node:crypto";import{rmSync as R}from"node:fs";import P from"node:os";import u from"node:path";import{fileURLToPath as U}from"node:url";function ya(t=process.env,r=P.homedir()){let o=t.PI_CODING_AGENT_DIR?.trim(),s=o?u.resolve(o==="~"?r:o.startsWith("~/")?u.join(r,o.slice(2)):o):u.join(r,".pi","agent");return{agent:s,settings:u.join(s,"settings.json")}}function Go(t,r){return[...Map.groupBy(Tt(t).flatMap((s)=>E(s,r)??[]),(s)=>s.provider)].map(([s,i])=>({id:s,name:t[s]?.name??s,models:i}))}function Vo(t){let r=Tt(t).filter((s)=>M(s)!==void 0),o=dr(r,"sonnet","opus","haiku");return o&&{provider:o.provider,id:o.id}}var S={messages:"anthropic-messages",responses:"openai-responses","chat-completions":"openai-completions","generate-content":"google-generative-ai"};function M(t){let r=_(t.entry.api),o=Object.keys(S).find((i)=>(i in r)),s=o&&Et(_(r[o]).base_url);return o&&s?{api:S[o],baseURL:s}:void 0}function E(t,r){let o=M(t);if(!o)return;let s=o.api,i=r(t.provider,t.id,s),c=i?.api===s?i:void 0,d=t.entry,p=_(d.limit),a=_(_(d.cost).text),l=_(a.input),m=_(l.cache),h=_(d.modalities).input,y=_(_(d.capabilities).reasoning).supported;return{...s==="openai-completions"?{compat:D}:{},...c,id:t.id,name:Et(d.name)??c?.name??t.id,api:s,provider:t.provider,baseUrl:s==="anthropic-messages"?o.baseURL.replace(/\/v1\/?$/,""):o.baseURL,reasoning:typeof y==="boolean"?y:c?.reasoning??!1,input:Array.isArray(h)?h.some((w)=>typeof w==="string"&&w.startsWith("image"))?["text","image"]:["text"]:c?.input??["text"],cost:{input:f(l.price)??c?.cost.input??0,output:f(_(a.output).price)??c?.cost.output??0,cacheRead:f(m.read)??c?.cost.cacheRead??0,cacheWrite:f(C(m.write))??f(C(_(m.explicit).write))??c?.cost.cacheWrite??0},contextWindow:f(p.context)??c?.contextWindow??128000,maxTokens:f(p.output)??c?.maxTokens??16384,headers:{...c?.headers,"x-opencode-plugin":`opencode-console/${ue}`}}}var D={supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens"};function C(t){return typeof t==="object"&&t!==null?Object.values(t)[0]:t}function f(t){return typeof t==="number"&&Number.isFinite(t)?t:void 0}class Xr extends Error{}function Zo(t,r){let o=(a,l,m={})=>({action:a,resources:l,directory:r.cwd,...m}),s=t.toolName,i=(a)=>{let l=t.input[a];return typeof l==="string"&&l!==""?l:void 0},c=(a)=>{let l=i(a);if(l===void 0)throw new Xr(`${s}'s input has no ${a}`);return l},d=r.home??P.homedir(),p=(a)=>g(c(a),d);if(s.startsWith("mcp__"))return F(s,r.server).map((a)=>o(a.action,a.resources,a));switch(s){case"bash":return[o("shell",[c("command")],{shell:"bash"})];case"powershell":return[o("shell",[c("command")],{shell:"pwsh"})];case"read":{let a=p("path"),l=r.skills&&N(r.skills,u.resolve(r.cwd,a));return[l?o("skill",[l]):o("read",[a])]}case"write":case"edit":return[o("edit",[p("path")])];case"ls":return[o("read",[g(i("path")??".",d)])];case"grep":case"find":{let a=i("path");return[o(s==="find"?"glob":"grep",[c("pattern")],a===void 0?{}:{path:g(a,d)})]}case"read_mcp_resource":return[o("mcp.use",[c("server")])];case"list_mcp_resources":case"list_mcp_resource_templates":{let a=i("server"),l=r.servers??[];return[o("mcp.use",a?[a]:l.length>0?l:["*"])]}default:return[o(s.toLowerCase(),["*"])]}}function g(t,r){let o=t.replace(/[\u00A0\u2000-\u200A\u202F\u205F\u3000]/g," "),s=o.startsWith("@")?o.slice(1):o,i=s==="~"?r:s.startsWith("~/")?u.join(r,s.slice(2)):s;return i.startsWith("file://")?U(i):i}function N(t,r){let o=u.relative(u.resolve(t),r);if(o===""||o.startsWith("..")||u.isAbsolute(o))return;return o.split(u.sep)[0]}function F(t,r){let o=r&&`mcp__${r.replace(/[^A-Za-z0-9_]/g,"_")}__`,s=t.match(/^mcp__(.+?)__(.+)$/),i=r??s?.[1];if(!i)throw new Xr(`Can't tell which MCP server ${t} belongs to`);let c=o&&t.startsWith(o)?t.slice(o.length):r?void 0:s?.[2],d=r!==void 0,p=c===void 0||/_[0-9a-f]{8}$/.test(t);return[{action:"mcp.use",resources:[i],...d?{}:{folded:!0}},p?{action:`${i}_`,resources:["*"],truncated:!0,folded:!0}:{action:`${i}_${c}`,resources:["*"],folded:!0}]}function Yo(t){return{action:"shell",resources:[t.command],directory:t.cwd,shell:"bash"}}function Qo(t){return t.match(/^\/skill:([^\s]+)/)?.[1]}var O=n({paths:n({agent:e,settings:e}),extension:e,created:v,...ur}),eo=(t)=>u.join(t.data,"pi.json"),Un=(t)=>u.join(t.data,"pi"),to=(t)=>u.join(t.cache,"pi-models.json");function Xo(t){let r=eo(t),o=J(r);if(o===void 0)return;let s=j(W(Z(O))(o));if(!s)throw Error(`${r} can't be read, so Pi was left as it is. Delete it and run setup again.`);return s}function ba(t,r){let o=Xo(t),s=o?.created??J(r.paths.settings)===void 0,i=St(r.paths.settings)??{};if(!o)fn(r.paths.settings);let c=Array.isArray(i.extensions)?i.extensions:[];i.extensions=[...c.filter((p)=>p!==o?.extension&&p!==r.extension),r.extension];let d=pr(i,r.model?{defaultProvider:r.model.provider,defaultModel:r.model.id}:{},o,!0);vt(r.paths.settings,i,384),Se(eo(t),JSON.stringify(O.make({paths:r.paths,extension:r.extension,created:s,...d})))}function Sa(t){let r=Xo(t);if(!r)return!1;let o=St(r.paths.settings);if(o){let i=(Array.isArray(o.extensions)?o.extensions:[]).filter((c)=>c!==r.extension);if(i.length>0)o.extensions=i;else delete o.extensions;if(Object.keys(r.originals).forEach((c)=>jn(o,c,r)),Object.keys(o).length===0&&r.created)K(r.paths.settings);else vt(r.paths.settings,o)}return K(Xe(r.paths.settings)),R(Un(t),{recursive:!0,force:!0}),K(to(t)),K(eo(t)),!0}var L=n({owner:e,providers:e,document:x(e,B)}),T=x(e,n({name:b(e),models:x(e,x(e,B))}));async function es(t){let r=ke(t.store),o=await Be(t);if(!r||!o?.config)return;let s=be(r),i=A("sha256").update(JSON.stringify(o.config.providers??null)).digest("hex"),c=j(W(Z(L))(J(to(t.store))??"")),d=c?.owner===s&&c.providers===i?c.document:void 0,p=d&&j(W(T)(d));if(p)return p;let a=await t.run(_t(r));return Se(to(t.store),JSON.stringify({owner:s,providers:i,document:a})),a}var G=x(e,e);async function ts(t){let r=ke(t.store),o=await Be(t),s=u.join(Un(t.store),"skills"),i=u.join(Un(t.store),"skills.json");if(!r||!o?.config)return s;let c=Ot(o),d=rt(W(Z(G))(J(i)??""),()=>({})),p=await t.run(dn(r,s,c,d));return await On(Ce(t.store,I(()=>{Rt(s),Se(i,JSON.stringify(mn(s,c,p,d).skills))}))),s}
2
- export{ya,Go,Vo,Xr,Zo,Yo,Qo,eo,Un,to,Xo,ba,Sa,es,ts,ns};
1
+ import{_t}from"./chunk-4hra11sy.js";import{Ae,V,Se,J,Rt}from"./chunk-xsr5jd61.js";import{Ce,be}from"./chunk-bfd21777.js";import{Ot}from"./chunk-wvtbwbxs.js";import{qe}from"./chunk-c8zgzn9g.js";import{pr,St,vt,fr,jn,Xe,fn,_,Et,dn,mn,Tt,mr}from"./chunk-e219b1sg.js";import{ue}from"./chunk-8stwzw95.js";import{k,rt,L,I,On,W,g,B,e,v,n,x,G}from"./chunk-vf7nj8yg.js";var ns={};k(ns,{Pi:()=>ns,Unreadable:()=>eo,checks:()=>Zo,defaultModel:()=>Vo,directory:()=>Ln,manifest:()=>Xo,manifestFile:()=>to,models:()=>es,modelsFile:()=>no,paths:()=>ba,providers:()=>Go,remove:()=>va,setup:()=>Sa,skillCommand:()=>Qo,skills:()=>ts,userBash:()=>Yo});import{createHash as j}from"node:crypto";import{rmSync as A}from"node:fs";import P from"node:os";import u from"node:path";import{fileURLToPath as R}from"node:url";function ba(t=process.env,r=P.homedir()){let o=t.PI_CODING_AGENT_DIR?.trim(),s=o?u.resolve(o==="~"?r:o.startsWith("~/")?u.join(r,o.slice(2)):o):u.join(r,".pi","agent");return{agent:s,settings:u.join(s,"settings.json")}}function Go(t,r){return[...Map.groupBy(Tt(t).flatMap((s)=>U(s,r)??[]),(s)=>s.provider)].map(([s,i])=>({id:s,name:t[s]?.name??s,models:i}))}function Vo(t){let r=Tt(t).filter((s)=>M(s)!==void 0),o=mr(r,"sonnet","opus","haiku");return o&&{provider:o.provider,id:o.id}}var b={messages:"anthropic-messages",responses:"openai-responses","chat-completions":"openai-completions","generate-content":"google-generative-ai"};function M(t){let r=_(t.entry.api),o=Object.keys(b).find((i)=>(i in r)),s=o&&Et(_(r[o]).base_url);return o&&s?{api:b[o],baseURL:s}:void 0}function U(t,r){let o=M(t);if(!o)return;let s=o.api,i=r(t.provider,t.id,s),c=i?.api===s?i:void 0,d=t.entry,p=_(d.limit),a=_(_(d.cost).text),l=_(a.input),m=_(l.cache),y=_(d.modalities).input,w=_(_(d.capabilities).reasoning).supported;return{...s==="openai-completions"?{compat:E}:{},...c,id:t.id,name:Et(d.name)??c?.name??t.id,api:s,provider:t.provider,baseUrl:s==="anthropic-messages"?o.baseURL.replace(/\/v1\/?$/,""):o.baseURL,reasoning:typeof w==="boolean"?w:c?.reasoning??!1,input:Array.isArray(y)?y.some((S)=>typeof S==="string"&&S.startsWith("image"))?["text","image"]:["text"]:c?.input??["text"],cost:{input:f(l.price)??c?.cost.input??0,output:f(_(a.output).price)??c?.cost.output??0,cacheRead:f(m.read)??c?.cost.cacheRead??0,cacheWrite:f(C(m.write))??f(C(_(m.explicit).write))??c?.cost.cacheWrite??0},contextWindow:f(p.context)??c?.contextWindow??128000,maxTokens:f(p.output)??c?.maxTokens??16384,headers:{...c?.headers,"x-opencode-plugin":`opencode-console/${ue}`}}}var E={supportsStore:!1,supportsDeveloperRole:!1,supportsStrictMode:!0,maxTokensField:"max_tokens"};function C(t){return typeof t==="object"&&t!==null?Object.values(t)[0]:t}function f(t){return typeof t==="number"&&Number.isFinite(t)?t:void 0}class eo extends Error{}function Zo(t,r){let o=(a,l,m={})=>({action:a,resources:l,directory:r.cwd,...m}),s=t.toolName,i=(a)=>{let l=t.input[a];return typeof l==="string"&&l!==""?l:void 0},c=(a)=>{let l=i(a);if(l===void 0)throw new eo(`${s}'s input has no ${a}`);return l},d=r.home??P.homedir(),p=(a)=>h(c(a),d);if(s.startsWith("mcp__"))return N(s,r.server).map((a)=>o(a.action,a.resources,a));switch(s){case"bash":return[o("shell",[c("command")],{shell:"bash"})];case"powershell":return[o("shell",[c("command")],{shell:"pwsh"})];case"read":{let a=p("path"),l=r.skills&&D(r.skills,u.resolve(r.cwd,a));return[l?o("skill",[l]):o("read",[a])]}case"write":case"edit":return[o("edit",[p("path")])];case"ls":return[o("read",[h(i("path")??".",d)])];case"grep":case"find":{let a=i("path");return[o(s==="find"?"glob":"grep",[c("pattern")],a===void 0?{}:{path:h(a,d)})]}case"read_mcp_resource":return[o("mcp.use",[c("server")])];case"list_mcp_resources":case"list_mcp_resource_templates":{let a=i("server"),l=r.servers??[];return[o("mcp.use",a?[a]:l.length>0?l:["*"])]}default:return[o(s.toLowerCase(),["*"])]}}function h(t,r){let o=t.replace(/[\u00A0\u2000-\u200A\u202F\u205F\u3000]/g," "),s=o.startsWith("@")?o.slice(1):o,i=s==="~"?r:s.startsWith("~/")?u.join(r,s.slice(2)):s;return i.startsWith("file://")?R(i):i}function D(t,r){let o=u.relative(u.resolve(t),r);if(o===""||o.startsWith("..")||u.isAbsolute(o))return;return o.split(u.sep)[0]}function N(t,r){let o=r&&`mcp__${r.replace(/[^A-Za-z0-9_]/g,"_")}__`,s=t.match(/^mcp__(.+?)__(.+)$/),i=r??s?.[1];if(!i)throw new eo(`Can't tell which MCP server ${t} belongs to`);let c=o&&t.startsWith(o)?t.slice(o.length):r?void 0:s?.[2],d=r!==void 0,p=c===void 0||/_[0-9a-f]{8}$/.test(t);return[{action:"mcp.use",resources:[i],...d?{}:{folded:!0}},p?{action:`${i}_`,resources:["*"],truncated:!0,folded:!0}:{action:`${i}_${c}`,resources:["*"],folded:!0}]}function Yo(t){return{action:"shell",resources:[t.command],directory:t.cwd,shell:"bash"}}function Qo(t){return t.match(/^\/skill:([^\s]+)/)?.[1]}var O=n({paths:n({agent:e,settings:e}),extension:e,created:v,...pr}),to=(t)=>u.join(t.data,"pi.json"),Ln=(t)=>u.join(t.data,"pi"),no=(t)=>u.join(t.cache,"pi-models.json");function Xo(t){let r=to(t),o=V(r);if(o===void 0)return;let s=L(W(G(O))(o));if(!s)throw Error(`${r} can't be read, so Pi was left as it is. Delete it and run setup again.`);return s}function Sa(t,r){let o=Xo(t),s=o?.created??V(r.paths.settings)===void 0,i=St(r.paths.settings)??{};if(!o)fn(r.paths.settings);let c=Array.isArray(i.extensions)?i.extensions:[];i.extensions=[...c.filter((p)=>p!==o?.extension&&p!==r.extension),r.extension];let d=fr(i,r.model?{defaultProvider:r.model.provider,defaultModel:r.model.id}:{},o,!0);vt(r.paths.settings,i,384),Se(to(t),JSON.stringify(O.make({paths:r.paths,extension:r.extension,created:s,...d})))}function va(t){let r=Xo(t);if(!r)return!1;let o=St(r.paths.settings);if(o){let i=(Array.isArray(o.extensions)?o.extensions:[]).filter((c)=>c!==r.extension);if(i.length>0)o.extensions=i;else delete o.extensions;if(Object.keys(r.originals).forEach((c)=>jn(o,c,r)),Object.keys(o).length===0&&r.created)J(r.paths.settings);else vt(r.paths.settings,o)}return J(Xe(r.paths.settings)),A(Ln(t),{recursive:!0,force:!0}),J(no(t)),J(to(t)),!0}var F=n({owner:e,providers:e,document:x(e,B)}),T=x(e,n({name:g(e),models:x(e,x(e,B))}));async function es(t){let r=Ce(t.store),o=await qe(t);if(!r||!o?.config)return;let s=be(r),i=j("sha256").update(JSON.stringify(o.config.providers??null)).digest("hex"),c=L(W(G(F))(V(no(t.store))??"")),d=c?.owner===s&&c.providers===i?c.document:void 0,p=d&&L(W(T)(d));if(p)return p;let a=await t.run(_t(r));return Se(no(t.store),JSON.stringify({owner:s,providers:i,document:a})),a}var z=x(e,e);async function ts(t){let r=Ce(t.store),o=await qe(t),s=u.join(Ln(t.store),"skills"),i=u.join(Ln(t.store),"skills.json");if(!r||!o?.config)return s;let c=Ot(o),d=rt(W(G(z))(V(i)??""),()=>({})),p=await t.run(dn(r,s,c,d));return await On(Ae(t.store,I(()=>{Rt(s),Se(i,JSON.stringify(mn(s,c,p,d).skills))}))),s}
2
+ export{ba,Go,Vo,eo,Zo,Yo,Qo,to,Ln,no,Xo,Sa,va,es,ts,ns};
@@ -0,0 +1,2 @@
1
+ import{As,br,Is,Ts,lo,Ds}from"./chunk-4hra11sy.js";import{xn,Wt,Ae,V,Se,J}from"./chunk-xsr5jd61.js";import{k,L,we,Ct,I,Z,h,en,Nr,Ji,R,Ur,W,G}from"./chunk-vf7nj8yg.js";var ks={};k(ks,{ConsoleCredentials:()=>ks,fresh:()=>ze,login:()=>Ca,logout:()=>Aa,organization:()=>qn,owner:()=>be,read:()=>Ce,stored:()=>co});import{createHash as c}from"node:crypto";var d=W(G(br)),f=300000;function Ce(e){let n=e.env.OPENCODE_API_KEY;if(!n)return co(e);let o=e.env.OPENCODE_CONSOLE_SERVER?.trim();if(!o)return{type:"key",server:As,key:n};let r=Ds(o);if(!r)throw Error(`OPENCODE_CONSOLE_SERVER isn't a Console URL: ${o}. Use an https:// URL, or http:// only for localhost.`);return{type:"key",server:r,key:n}}function co(e){let n=i(e);if(n.corrupt)throw Error(`The sign-in in ${xn(e)} can't be read. Run \`npx @opencode/console login\` to replace it or \`npx @opencode/console logout\` to remove it.`);return n.credential}function be(e){return JSON.stringify([e.server,e.type==="key"?c("sha256").update(e.key).digest("hex").slice(0,16):e.accountID,e.type==="oauth"?e.orgID:void 0])}function qn(e){return e.type==="oauth"?e.orgName:void 0}var Ca=R("ConsoleCredentials.login")(function*(e,n){let o=yield*Is(n.server);yield*n.prompt(o);let r=yield*o.callback,t=yield*Ae(e,I(()=>{let l=i(e).credential;if(Se(xn(e),JSON.stringify(r)),!l||be(l)!==be(r))J(Wt(e));return l}));if(t)yield*lo(t).pipe(en);return r}),ze=R("ConsoleCredentials.fresh")(function*(e){let n=Ce(e);if(!n||n.type==="key"||!(yield*s(n)))return n;let o=yield*Ae(e,Z(function*(){let r=co(e);if(!r||!(yield*s(r)))return r;let t=yield*Ts(r).pipe(Nr(we(30)));if(i(e).credential?.refresh!==r.refresh)return co(e);return Se(xn(e),JSON.stringify(t)),t})).pipe(Ji);return yield*Ur(o)}),Aa=R("ConsoleCredentials.logout")(function*(e){let n=yield*Ae(e,I(()=>{let o=i(e).credential;return J(xn(e)),J(Wt(e)),o}));if(!n)return!1;return yield*lo(n).pipe(en),!0});function s(e){return Ct.pipe(h((n)=>e.expires-f<=n))}function i(e){let n=V(xn(e));if(n===void 0)return{};let o=L(d(n));return o?{credential:o}:{corrupt:!0}}
2
+ export{Ce,co,be,qn,Ca,ze,Aa,ks};
@@ -0,0 +1,2 @@
1
+ import{Pt,ho}from"./chunk-w7jwta9c.js";import{kr,js,Bs,Se}from"./chunk-xsr5jd61.js";import{Ce,be}from"./chunk-bfd21777.js";import{lr}from"./chunk-tzhpc3tb.js";import{gr,xr}from"./chunk-wvtbwbxs.js";import{xs,ys,He}from"./chunk-fsg05nff.js";import{ue}from"./chunk-8stwzw95.js";import{k,wn,Ie,Fr,Te,On}from"./chunk-vf7nj8yg.js";var ps={};k(ps,{InProcess:()=>ps,config:()=>qe,decide:()=>bt,decisions:()=>cr,refresh:()=>us,refreshStale:()=>bi,session:()=>ar});function ar(e={}){let r=xs({version:ue,harness:e.harness}).pipe(wn(ho)),o=e.fetch;return{store:e.store??kr(),run:(n)=>On(o?n.pipe(Fr(r),Te(Pt,o)):n.pipe(Fr(r)))}}var i=new WeakMap;function us(e){let r=i.get(e);if(r)return r;let o=e.run(ys(e.store)).finally(()=>i.delete(e));return i.set(e,o),o}async function bt(e,r){return(await cr(e,r)).find((o)=>o.effect==="deny")}async function cr(e,r){let o=Ce(e.store),n=xr(o,o&&await qe(e));return On(Ie(r,(t)=>lr(n,t)))}async function qe(e){let r=Ce(e.store);if(!r)return;let o=be(r),n=He(e.store,o);if(!n)await new Promise((t)=>{let s=setTimeout(t,3000);s.unref?.(),us(e).catch(()=>{return}).finally(()=>{clearTimeout(s),t()})});else if(gr(n,Date.now()))bi(e);return He(e.store,o)}function bi(e){let r=js(e.store),o=Bs(r);if(o!==void 0&&Date.now()-o<30000)return!1;return Se(r,""),us(e).catch(()=>{return}),!0}
2
+ export{ar,us,bt,cr,qe,bi,ps};
@@ -0,0 +1 @@
1
+ import{Di,Li}from"./chunk-81pw2xsw.js";import{Y,ce,X,bo,ut,Ft,Ge,Qt,Zs,Xt,Hi,le,li,zr,Kr,Bo,fi,Ta,Oa}from"./chunk-vf7nj8yg.js";export{Di as Brand,Ge as Cause,Hi as Clock,ce as Context,Ft as Data,zr as DateTime,ut as Duration,le as Effect,Qt as Exit,li as Fiber,Oa as FileSystem,Xt as Layer,Y as Option,Li as Path,bo as Record,X as Result,Ta as Schema,Kr as SchemaGetter,Bo as SchemaTransformation,Zs as Scope,fi as Struct};