alchemylab-opencode 2.0.4 → 2.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{anthropic-FVULF7C3.js → anthropic-YQ2VCNTB.js} +1 -1
- package/dist/{app-runtime-LDQWNGWP.js → app-runtime-GFPPHAHM.js} +1 -1
- package/dist/{chunk-OT2YNR56.js → chunk-55SXVZ3J.js} +1 -1
- package/dist/{chunk-R2GWBJEP.js → chunk-5AXNRW7L.js} +1 -1
- package/dist/{chunk-UPEPL4I2.js → chunk-6AKI3RBD.js} +1 -1
- package/dist/{chunk-G7PFO5HG.js → chunk-B7LCUFWA.js} +8 -8
- package/dist/{chunk-DWEYXIQI.js → chunk-BAULQCM7.js} +3 -3
- package/dist/{chunk-5BLZCAU6.js → chunk-EXCQNXCF.js} +1 -1
- package/dist/chunk-FLHFX43G.js +55 -0
- package/dist/chunk-HEEAGIBZ.js +1490 -0
- package/dist/{chunk-NGT6LCW6.js → chunk-LUMNYJ5D.js} +1 -1
- package/dist/{chunk-B74WSFN4.js → chunk-ROZTUM2T.js} +3 -3
- package/dist/{chunk-OUVSKG2H.js → chunk-VG5EGQPG.js} +1 -1
- package/dist/{chunk-2JE3QYG6.js → chunk-XMCVYTKN.js} +1 -1
- package/dist/{chunk-7XX6TY62.js → chunk-YDNJZVRR.js} +1 -1
- package/dist/{chunk-4GJE6OMN.js → chunk-YWZH5MZN.js} +1 -1
- package/dist/{chunk-TK5R7QUN.js → chunk-ZR6CXXUN.js} +1 -1
- package/dist/{code-mode-YYOGD36U.js → code-mode-LEVRRN6O.js} +1 -1
- package/dist/{dist-KM5HCPZX.js → dist-37YOR7EF.js} +1 -1
- package/dist/{dist-YUH4RKR5.js → dist-Y7XJ2TDX.js} +1 -1
- package/dist/{dist-es-W5GYOX6F.js → dist-es-2V53AUOV.js} +1 -1
- package/dist/{dist-es-G5UIJOU7.js → dist-es-HYEV5NJY.js} +2 -2
- package/dist/{dist-es-6PLFRCS4.js → dist-es-IQZPYE6S.js} +1 -1
- package/dist/{dist-es-HYIIGUNX.js → dist-es-NJU2JDGG.js} +1 -1
- package/dist/{dist-es-LSR2QCFZ.js → dist-es-PEWVLOVZ.js} +1 -1
- package/dist/{photon-W56QZY4L.js → photon-5AJPGVCX.js} +1 -1
- package/dist/run.js +1 -1
- package/dist/serve.js +1 -1
- package/dist/{server-LVIHYOCY.js → server-4GCT6Z5B.js} +2 -2
- package/dist/{session-6OPJNJMK.js → session-Y3Y6G2WT.js} +1 -1
- package/dist/{src-3NCXEROI.js → src-X7ZXQLNN.js} +1 -1
- package/dist/{worktree-32M5MTFE.js → worktree-YPE74GDD.js} +1 -1
- package/package.json +1 -1
- package/dist/chunk-DADVNQTM.js +0 -1490
- package/dist/chunk-FOHYZ7MJ.js +0 -55
- /package/dist/{dist-CYBRID2F.js → dist-RDYS4XXO.js} +0 -0
- /package/dist/{lib-ZP7Q6A3E.js → lib-JC7MYWBJ.js} +0 -0
- /package/dist/{mime-types-46EO4HOZ.js → mime-types-2T5FPOIB.js} +0 -0
- /package/dist/{signin-OCIW23YM.js → signin-U2KKV7OZ.js} +0 -0
- /package/dist/{src-YAAFIGTW.js → src-ABUDV3W3.js} +0 -0
- /package/dist/{src-LXWGIUZH.js → src-NICVS6EV.js} +0 -0
- /package/dist/{sso-oidc-OMMKINFE.js → sso-oidc-KFJXXBLA.js} +0 -0
- /package/dist/{sts-MWK22JIX.js → sts-XIN552ID.js} +0 -0
- /package/dist/{token-QPO3OAGS.js → token-D3TCB33O.js} +0 -0
- /package/dist/{token-util-YGPCEEPO.js → token-util-IOCO6RZC.js} +0 -0
|
@@ -248,7 +248,7 @@ globstar while`,e,d,t,p,h),this.matchOne(e.slice(d),t.slice(p),r))return this.de
|
|
|
248
248
|
`)return`
|
|
249
249
|
`}return e&&e.eol||`
|
|
250
250
|
`}i(Xke,"getEOL");function XE(e,t){return`\r
|
|
251
|
-
`.indexOf(e.charAt(t))!==-1}i(XE,"isEOL");var ZE;(function(e){e.DEFAULT={allowTrailingComma:!1}})(ZE||(ZE={}));function x6(e,t=[],r=ZE.DEFAULT){let n=null,o=[],s=[];function a(A){Array.isArray(o)?o.push(A):n!==null&&(o[n]=A)}return i(a,"onValue"),HM(e,{onObjectBegin:i(()=>{let A={};a(A),s.push(o),o=A,n=null},"onObjectBegin"),onObjectProperty:i(A=>{n=A},"onObjectProperty"),onObjectEnd:i(()=>{o=s.pop()},"onObjectEnd"),onArrayBegin:i(()=>{let A=[];a(A),s.push(o),o=A,n=null},"onArrayBegin"),onArrayEnd:i(()=>{o=s.pop()},"onArrayEnd"),onLiteralValue:a,onError:i((A,u,f)=>{t.push({error:A,offset:u,length:f})},"onError")},r),o[0]}i(x6,"parse");function PM(e,t=[],r=ZE.DEFAULT){let n={type:"array",offset:-1,length:-1,children:[],parent:void 0};function o(A){n.type==="property"&&(n.length=A-n.offset,n=n.parent)}i(o,"ensurePropertyComplete");function s(A){return n.children.push(A),A}i(s,"onValue"),HM(e,{onObjectBegin:i(A=>{n=s({type:"object",offset:A,length:-1,parent:n,children:[]})},"onObjectBegin"),onObjectProperty:i((A,u,f)=>{n=s({type:"property",offset:u,length:-1,parent:n,children:[]}),n.children.push({type:"string",value:A,offset:u,length:f,parent:n})},"onObjectProperty"),onObjectEnd:i((A,u)=>{o(A+u),n.length=A+u-n.offset,n=n.parent,o(A+u)},"onObjectEnd"),onArrayBegin:i((A,u)=>{n=s({type:"array",offset:A,length:-1,parent:n,children:[]})},"onArrayBegin"),onArrayEnd:i((A,u)=>{n.length=A+u-n.offset,n=n.parent,o(A+u)},"onArrayEnd"),onLiteralValue:i((A,u,f)=>{s({type:eve(A),offset:u,length:f,parent:n,value:A}),o(u+f)},"onLiteralValue"),onSeparator:i((A,u,f)=>{n.type==="property"&&(A===":"?n.colonOffset=u:A===","&&o(u))},"onSeparator"),onError:i((A,u,f)=>{t.push({error:A,offset:u,length:f})},"onError")},r);let l=n.children[0];return l&&delete l.parent,l}i(PM,"parseTree");function Tw(e,t){if(!e)return;let r=e;for(let n of t)if(typeof n=="string"){if(r.type!=="object"||!Array.isArray(r.children))return;let o=!1;for(let s of r.children)if(Array.isArray(s.children)&&s.children[0].value===n&&s.children.length===2){r=s.children[1],o=!0;break}if(!o)return}else{let o=n;if(r.type!=="array"||o<0||!Array.isArray(r.children)||o>=r.children.length)return;r=r.children[o]}return r}i(Tw,"findNodeAtLocation");function HM(e,t,r=ZE.DEFAULT){let n=KE(e,!1),o=[],s=0;function a(F){return F?()=>s===0&&F(n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter()):()=>!0}i(a,"toNoArgVisit");function l(F){return F?q=>s===0&&F(q,n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter()):()=>!0}i(l,"toOneArgVisit");function A(F){return F?q=>s===0&&F(q,n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter(),()=>o.slice()):()=>!0}i(A,"toOneArgVisitWithPath");function u(F){return F?()=>{s>0?s++:F(n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter(),()=>o.slice())===!1&&(s=1)}:()=>!0}i(u,"toBeginVisit");function f(F){return F?()=>{s>0&&s--,s===0&&F(n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter())}:()=>!0}i(f,"toEndVisit");let d=u(t.onObjectBegin),p=A(t.onObjectProperty),h=f(t.onObjectEnd),g=u(t.onArrayBegin),m=f(t.onArrayEnd),Q=A(t.onLiteralValue),C=l(t.onSeparator),B=a(t.onComment),I=l(t.onError),S=r&&r.disallowComments,T=r&&r.allowTrailingComma;function w(){for(;;){let F=n.scan();switch(n.getTokenError()){case 4:b(14);break;case 5:b(15);break;case 3:b(13);break;case 1:S||b(11);break;case 2:b(12);break;case 6:b(16);break}switch(F){case 12:case 13:S?b(10):B();break;case 16:b(1);break;case 15:case 14:break;default:return F}}}i(w,"scanNext");function b(F,q=[],z=[]){if(I(F),q.length+z.length>0){let ye=n.getToken();for(;ye!==17;){if(q.indexOf(ye)!==-1){w();break}else if(z.indexOf(ye)!==-1)break;ye=w()}}}i(b,"handleError");function D(F){let q=n.getTokenValue();return F?Q(q):(p(q),o.push(q)),w(),!0}i(D,"parseString");function N(){switch(n.getToken()){case 11:let F=n.getTokenValue(),q=Number(F);isNaN(q)&&(b(2),q=0),Q(q);break;case 7:Q(null);break;case 8:Q(!0);break;case 9:Q(!1);break;default:return!1}return w(),!0}i(N,"parseLiteral");function M(){return n.getToken()!==10?(b(3,[],[2,5]),!1):(D(!1),n.getToken()===6?(C(":"),w(),G()||b(4,[],[2,5])):b(5,[],[2,5]),o.pop(),!0)}i(M,"parseProperty");function V(){d(),w();let F=!1;for(;n.getToken()!==2&&n.getToken()!==17;){if(n.getToken()===5){if(F||b(4,[],[]),C(","),w(),n.getToken()===2&&T)break}else F&&b(6,[],[]);M()||b(4,[],[2,5]),F=!0}return h(),n.getToken()!==2?b(7,[2],[]):w(),!0}i(V,"parseObject");function j(){g(),w();let F=!0,q=!1;for(;n.getToken()!==4&&n.getToken()!==17;){if(n.getToken()===5){if(q||b(4,[],[]),C(","),w(),n.getToken()===4&&T)break}else q&&b(6,[],[]);F?(o.push(0),F=!1):o[o.length-1]++,G()||b(4,[],[4,5]),q=!0}return m(),F||o.pop(),n.getToken()!==4?b(8,[4],[]):w(),!0}i(j,"parseArray");function G(){switch(n.getToken()){case 3:return j();case 1:return V();case 10:return D(!0);default:return N()}}return i(G,"parseValue"),w(),n.getToken()===17?r.allowEmptyContent?!0:(b(4,[],[]),!1):G()?(n.getToken()!==17&&b(9,[],[]),!0):(b(4,[],[]),!1)}i(HM,"visit");function eve(e){switch(typeof e){case"boolean":return"boolean";case"number":return"number";case"string":return"string";case"object":{if(e){if(Array.isArray(e))return"array"}else return"null";return"object"}default:return"null"}}i(eve,"getNodeType");function T6(e,t,r,n){let o=t.slice(),a=PM(e,[]),l,A;for(;o.length>0&&(A=o.pop(),l=Tw(a,o),l===void 0&&r!==void 0);)typeof A=="string"?r={[A]:r}:r=[r];if(l)if(l.type==="object"&&typeof A=="string"&&Array.isArray(l.children)){let u=Tw(l,[A]);if(u!==void 0)if(r===void 0){if(!u.parent)throw new Error("Malformed AST");let f=l.children.indexOf(u.parent),d,p=u.parent.offset+u.parent.length;if(f>0){let h=l.children[f-1];d=h.offset+h.length}else d=l.offset+1,l.children.length>1&&(p=l.children[1].offset);return hu(e,{offset:d,length:p-d,content:""},n)}else return hu(e,{offset:u.offset,length:u.length,content:JSON.stringify(r)},n);else{if(r===void 0)return[];let f=`${JSON.stringify(A)}: ${JSON.stringify(r)}`,d=n.getInsertionIndex?n.getInsertionIndex(l.children.map(h=>h.children[0].value)):l.children.length,p;if(d>0){let h=l.children[d-1];p={offset:h.offset+h.length,length:0,content:","+f}}else l.children.length===0?p={offset:l.offset+1,length:0,content:f}:p={offset:l.offset+1,length:0,content:f+","};return hu(e,p,n)}}else if(l.type==="array"&&typeof A=="number"&&Array.isArray(l.children)){let u=A;if(u===-1){let f=`${JSON.stringify(r)}`,d;if(l.children.length===0)d={offset:l.offset+1,length:0,content:f};else{let p=l.children[l.children.length-1];d={offset:p.offset+p.length,length:0,content:","+f}}return hu(e,d,n)}else if(r===void 0&&l.children.length>=0){let f=A,d=l.children[f],p;if(l.children.length===1)p={offset:l.offset+1,length:l.length-2,content:""};else if(l.children.length-1===f){let h=l.children[f-1],g=h.offset+h.length,m=l.offset+l.length;p={offset:g,length:m-2-g,content:""}}else p={offset:d.offset,length:l.children[f+1].offset-d.offset,content:""};return hu(e,p,n)}else if(r!==void 0){let f,d=`${JSON.stringify(r)}`;if(!n.isArrayInsertion&&l.children.length>A){let p=l.children[A];f={offset:p.offset,length:p.length,content:d}}else if(l.children.length===0||A===0)f={offset:l.offset+1,length:0,content:l.children.length===0?d:d+","};else{let p=A>l.children.length?l.children.length:A,h=l.children[p-1];f={offset:h.offset+h.length,length:0,content:","+d}}return hu(e,f,n)}else throw new Error(`Can not ${r===void 0?"remove":n.isArrayInsertion?"insert":"modify"} Array index ${u} as length is not sufficient`)}else throw new Error(`Can not add ${typeof A!="number"?"index":"property"} to parent of type ${l.type}`);else{if(r===void 0)throw new Error("Can not delete in empty document");return hu(e,{offset:a?a.offset:0,length:a?a.length:0,content:JSON.stringify(r)},n)}}i(T6,"setProperty");function hu(e,t,r){if(!r.formattingOptions)return[t];let n=Rw(e,t),o=t.offset,s=t.offset+t.content.length;if(t.length===0||t.content.length===0){for(;o>0&&!XE(n,o-1);)o--;for(;s<n.length&&!XE(n,s);)s++}let a=OM(n,{offset:o,length:s-o},{...r.formattingOptions,keepLines:!1});for(let A=a.length-1;A>=0;A--){let u=a[A];n=Rw(n,u),o=Math.min(o,u.offset),s=Math.max(s,u.offset+u.length),s+=u.content.length-u.length}let l=e.length-(n.length-s)-o;return[{offset:o,length:l,content:n.substring(o,s)}]}i(hu,"withFormatting");function Rw(e,t){return e.substring(0,t.offset)+t.content+e.substring(t.offset+t.length)}i(Rw,"applyEdit");var R6;(function(e){e[e.None=0]="None",e[e.UnexpectedEndOfComment=1]="UnexpectedEndOfComment",e[e.UnexpectedEndOfString=2]="UnexpectedEndOfString",e[e.UnexpectedEndOfNumber=3]="UnexpectedEndOfNumber",e[e.InvalidUnicode=4]="InvalidUnicode",e[e.InvalidEscapeCharacter=5]="InvalidEscapeCharacter",e[e.InvalidCharacter=6]="InvalidCharacter"})(R6||(R6={}));var D6;(function(e){e[e.OpenBraceToken=1]="OpenBraceToken",e[e.CloseBraceToken=2]="CloseBraceToken",e[e.OpenBracketToken=3]="OpenBracketToken",e[e.CloseBracketToken=4]="CloseBracketToken",e[e.CommaToken=5]="CommaToken",e[e.ColonToken=6]="ColonToken",e[e.NullKeyword=7]="NullKeyword",e[e.TrueKeyword=8]="TrueKeyword",e[e.FalseKeyword=9]="FalseKeyword",e[e.StringLiteral=10]="StringLiteral",e[e.NumericLiteral=11]="NumericLiteral",e[e.LineCommentTrivia=12]="LineCommentTrivia",e[e.BlockCommentTrivia=13]="BlockCommentTrivia",e[e.LineBreakTrivia=14]="LineBreakTrivia",e[e.Trivia=15]="Trivia",e[e.Unknown=16]="Unknown",e[e.EOF=17]="EOF"})(D6||(D6={}));var k6=x6;var N6;(function(e){e[e.InvalidSymbol=1]="InvalidSymbol",e[e.InvalidNumberFormat=2]="InvalidNumberFormat",e[e.PropertyNameExpected=3]="PropertyNameExpected",e[e.ValueExpected=4]="ValueExpected",e[e.ColonExpected=5]="ColonExpected",e[e.CommaExpected=6]="CommaExpected",e[e.CloseBraceExpected=7]="CloseBraceExpected",e[e.CloseBracketExpected=8]="CloseBracketExpected",e[e.EndOfFileExpected=9]="EndOfFileExpected",e[e.InvalidCommentToken=10]="InvalidCommentToken",e[e.UnexpectedEndOfComment=11]="UnexpectedEndOfComment",e[e.UnexpectedEndOfString=12]="UnexpectedEndOfString",e[e.UnexpectedEndOfNumber=13]="UnexpectedEndOfNumber",e[e.InvalidUnicode=14]="InvalidUnicode",e[e.InvalidEscapeCharacter=15]="InvalidEscapeCharacter",e[e.InvalidCharacter=16]="InvalidCharacter"})(N6||(N6={}));function yit(e){switch(e){case 1:return"InvalidSymbol";case 2:return"InvalidNumberFormat";case 3:return"PropertyNameExpected";case 4:return"ValueExpected";case 5:return"ColonExpected";case 6:return"CommaExpected";case 7:return"CloseBraceExpected";case 8:return"CloseBracketExpected";case 9:return"EndOfFileExpected";case 10:return"InvalidCommentToken";case 11:return"UnexpectedEndOfComment";case 12:return"UnexpectedEndOfString";case 13:return"UnexpectedEndOfNumber";case 14:return"InvalidUnicode";case 15:return"InvalidEscapeCharacter";case 16:return"InvalidCharacter"}return"<unknown ParseErrorCode>"}i(yit,"printParseErrorCode");function Cit(e,t,r,n){return T6(e,t,r,n)}i(Cit,"modify");function Iit(e,t){let r=t.slice(0).sort((o,s)=>{let a=o.offset-s.offset;return a===0?o.length-s.length:a}),n=e.length;for(let o=r.length-1;o>=0;o--){let s=r[o];if(s.offset+s.length<=n)e=Rw(e,s);else throw new Error("Overlapping edit");n=s.offset}return e}i(Iit,"applyEdits");var fy={};J(fy,{ConfigV1:()=>fy,Info:()=>Zve,WellKnown:()=>Kve});var mu={};J(mu,{ConfigExperimental:()=>mu,Experimental:()=>WM,Policy:()=>vw,PolicyAction:()=>q6});var ry={};J(ry,{Catalog:()=>ry,Event:()=>P6,PolicyActions:()=>Rve,Service:()=>Pp,locationLayer:()=>Nve,node:()=>kve});var ey={};J(ey,{Catalog:()=>ey,Event:()=>nve});var v6=wt({type:"catalog.updated",schema:{}}),nve={Updated:v6,Definitions:so(v6)};var po={};J(po,{Effect:()=>L6,Info:()=>qM,Policy:()=>po,Service:()=>Fp,locationLayer:()=>ove,node:()=>ive});var L6=c.Literals(["allow","deny"]).annotate({identifier:"Policy.Effect"}),qM=class extends c.Class("Policy.Info")({action:c.String,effect:L6,resource:c.String}){static{i(this,"Info")}},Fp=class extends ce.Service()("@opencode/v2/Policy"){static{i(this,"Service")}},M6=se.effect(Fp,E.gen(function*(){let e=[];return yield*ki.Service,Fp.of({load:E.fn("Policy.load")(function*(t){e=t}),hasStatements:i(()=>e.length>0,"hasStatements"),evaluate:E.fn("Policy.evaluate")(function*(t,r,n){return e.findLast(o=>kp.match(t,o.action)&&kp.match(r,o.resource))?.effect??n})})})),ove=M6,ive=bi({service:Fp,layer:M6,deps:[ki.node]});var gu={};J(gu,{State:()=>gu,batch:()=>sve,create:()=>ave});var Dw=ce.Reference("@opencode/State/CurrentBatch",{defaultValue:i(()=>{},"defaultValue")});function sve(e){return E.gen(function*(){if(yield*Dw)return yield*e;let r=new Set,n=yield*e.pipe(E.provideService(Dw,r));return yield*E.forEach(r,o=>o(),{discard:!0}),n})}i(sve,"batch");function ave(e){let t=e.initial(),r=[],n=vl.makeUnsafe(1),o=E.fn("State.commit")(function*(u){let f=e.draft(u);e.finalize&&(yield*e.finalize(f)),t=u}),s=i((u,f)=>E.suspend(()=>{let d=u(f);return E.isEffect(d)?E.asVoid(d).pipe(E.orDie):E.void}),"apply"),a=E.fnUntraced(function*(){let u=e.initial(),f=e.draft(u);for(let d of r)yield*s(d.run,f).pipe(E.withSpan("State.reload.update"));yield*o(u)}),l=i(()=>n.withPermit(a()),"reload");return{get:i(()=>t,"get"),transform:E.fn("State.transform")(function*(u){let f=yield*ur.Scope;return yield*E.uninterruptible(E.gen(function*(){let d={run:u},p=!0,h=E.uninterruptible(n.withPermit(E.suspend(()=>p?(p=!1,r=r.filter(m=>m!==d),E.gen(function*(){let m=yield*Dw;if(m){m.add(l);return}yield*a()})):E.void)));yield*n.withPermit(E.sync(()=>{r=[...r,d]})),yield*ur.addFinalizer(f,h);let g=yield*Dw;return g?g.add(l):yield*l(),{dispose:h}}))}),reload:l}}i(ave,"create");var Ql={};J(Ql,{Attempt:()=>U6,AttemptID:()=>GM,AttemptStatus:()=>Sve,AuthorizationError:()=>kw,CodeRequiredError:()=>Nw,EnvMethod:()=>Ive,Event:()=>xs,ID:()=>fve,Info:()=>F6,Inputs:()=>Bve,Integration:()=>Ql,KeyMethod:()=>Cve,Method:()=>Qve,MethodID:()=>pve,OAuthMethod:()=>yve,Prompt:()=>Eve,Ref:()=>wve,SelectPrompt:()=>mve,Service:()=>Op,TextPrompt:()=>gve,When:()=>hve,locationLayer:()=>O6,node:()=>Tve});var Il={};J(Il,{Credential:()=>Il,ID:()=>_M,Info:()=>ty,Key:()=>lve,OAuth:()=>cve,Service:()=>Up,Value:()=>VM,node:()=>uve});var En=fa("credential",{id:at().$type().primaryKey(),integration_id:at().$type(),label:at().notNull(),value:at({mode:"json"}).$type().notNull(),connector_id:at(),method_id:at(),active:Fn({mode:"boolean"}),...Iw});var _M=ps.ID,cve=ps.OAuth,lve=ps.Key,VM=ps.Value,ty=class extends c.Class("Credential.Info")({id:_M,integrationID:bt.ID,label:c.String,value:VM}){static{i(this,"Info")}},Up=class extends ce.Service()("@opencode/v2/Credential"){static{i(this,"Service")}},Ave=se.effect(Up,E.gen(function*(){let{db:e}=yield*Yo.Service,t=c.decodeUnknownSync(VM),r=i(n=>{if(n.integration_id)return new ty({id:n.id,integrationID:n.integration_id,label:n.label,value:t(n.value)})},"stored");return Up.of({all:E.fn("Credential.all")(function*(){return(yield*e.select().from(En).orderBy(zr(En.time_created)).all().pipe(E.orDie)).flatMap(n=>{let o=r(n);return o?[o]:[]})}),list:E.fn("Credential.list")(function*(n){return(yield*e.select().from(En).where(Re(En.integration_id,n)).orderBy(zr(En.time_created)).all().pipe(E.orDie)).flatMap(o=>{let s=r(o);return s?[s]:[]})}),get:E.fn("Credential.get")(function*(n){let o=yield*e.select().from(En).where(Re(En.id,n)).get().pipe(E.orDie);return o?r(o):void 0}),create:E.fn("Credential.create")(function*(n){let o=new ty({id:_M.create(),integrationID:n.integrationID,label:n.label??"default",value:n.value});return yield*e.transaction(s=>E.gen(function*(){yield*s.delete(En).where(Re(En.integration_id,o.integrationID)).run(),yield*s.insert(En).values({id:o.id,integration_id:o.integrationID,label:o.label,value:o.value}).run()})).pipe(E.orDie),o}),update:E.fn("Credential.update")(function*(n,o){!o.label&&!o.value||(yield*e.update(En).set({label:o.label,value:o.value}).where(Re(En.id,n)).run().pipe(E.orDie))}),remove:E.fn("Credential.remove")(function*(n){yield*e.delete(En).where(Re(En.id,n)).run().pipe(E.orDie)})})})),uve=At({service:Up,layer:Ave,deps:[Yo.node]});var Yit=sa.CredentialInfo,Git=sa.EnvInfo,Wit=sa.Info;var fve=bt.ID,pve=bt.MethodID,GM=bt.AttemptID,hve=bt.When,gve=bt.TextPrompt,mve=bt.SelectPrompt,Eve=bt.Prompt,yve=bt.OAuthMethod,Cve=bt.KeyMethod,Ive=bt.EnvMethod,Qve=bt.Method,F6=bt.Info,Bve=bt.Inputs,U6=bt.Attempt,Sve=bt.AttemptStatus,Nw=class extends c.TaggedErrorClass()("Integration.CodeRequired",{attemptID:GM}){static{i(this,"CodeRequiredError")}},kw=class extends c.TaggedErrorClass()("Integration.Authorization",{cause:c.Defect()}){static{i(this,"AuthorizationError")}},xs=bt.Event,wve=bt.Ref,Op=class extends ce.Service()("@opencode/v2/Integration"){static{i(this,"Service")}},bve=Io.toMillis(Io.minutes(10)),YM=Io.toMillis(Io.minutes(1)),xve=Io.seconds(30),O6=se.effect(Op,E.gen(function*(){let e=yield*Il.Service,t=yield*Sa.Service,r=yield*ur.Scope,n=Wa.makeUnsafe(new Map),o=gu.create({initial:i(()=>({integrations:new Map}),"initial"),draft:i(p=>({list:i(()=>Array.from(p.integrations.values(),h=>h.ref),"list"),get:i(h=>p.integrations.get(h)?.ref,"get"),update:i((h,g)=>{let m=p.integrations.get(h)??{ref:{id:h,name:h},methods:[],implementations:new Map};p.integrations.has(h)||p.integrations.set(h,m),g(m.ref),m.ref.id=h},"update"),remove:i(h=>p.integrations.delete(h),"remove"),method:{list:i(h=>p.integrations.get(h)?.methods??[],"list"),update:i(h=>{let g=p.integrations.get(h.integrationID)??{ref:{id:h.integrationID,name:h.integrationID},methods:[],implementations:new Map};p.integrations.has(h.integrationID)||p.integrations.set(h.integrationID,g);let m=g.methods.findIndex(Q=>Q.type!==h.method.type?!1:Q.type!=="oauth"||h.method.type!=="oauth"?!0:Q.id===h.method.id);m===-1?g.methods.push(h.method):g.methods[m]=h.method,h.method.type==="oauth"&&g.implementations.set(h.method.id,h)},"update"),remove:i((h,g)=>{let m=p.integrations.get(h);if(!m)return;let Q=m.methods.findIndex(C=>C.type!==g.type?!1:C.type!=="oauth"||g.type!=="oauth"?!0:C.id===g.id);Q!==-1&&m.methods.splice(Q,1),g.type==="oauth"&&m.implementations.delete(g.id)},"remove")}}),"draft"),finalize:i(()=>t.publish(xs.Updated,{}).pipe(E.asVoid),"finalize")}),s=i((p,h)=>{let g=h.map(Q=>({type:"credential",id:Q.id,label:Q.label})).toReversed(),m=(p?.methods??[]).filter(Q=>Q.type==="env").flatMap(Q=>Q.names.filter(C=>process.env[C])).map(Q=>({type:"env",name:Q}));return[...g,...m]},"resolveConnections"),a=i((p,h)=>new F6({id:p.ref.id,name:p.ref.name,methods:p.methods,connections:h}),"project"),l=i(p=>p.pipe(E.mapError(h=>new kw({cause:h}))),"authorize"),A=i(p=>ur.close(p,qr.void).pipe(E.forkIn(r,{startImmediately:!0}),E.asVoid),"close"),u=i(p=>{let h=vt.squash(p);return h instanceof Error?h.message:String(h)},"message"),f=E.fnUntraced(function*(p,h){let g=yield*$p.currentTimeMillis,m=yield*Wa.modify(n,Q=>{let C=Q.get(p);if(!C||C.status!=="pending")return[void 0,Q];let B=qr.isSuccess(h)?{status:"complete",time:C.time,removeAt:g+YM}:{status:"failed",message:u(h.cause),time:C.time,removeAt:g+YM};return[C,new Map(Q).set(p,B)]});if(m){if(qr.isSuccess(h)){let Q=o.get().integrations.get(m.integrationID)?.implementations.get(m.methodID);yield*e.create({integrationID:m.integrationID,label:m.label??Q?.label?.(h.value),value:h.value}),yield*t.publish(xs.ConnectionUpdated,{integrationID:m.integrationID}),yield*t.publish(xs.Updated,{})}yield*A(m.scope)}});return yield*E.fnUntraced(function*(){let p=yield*$p.currentTimeMillis,h=yield*Wa.modify(n,g=>{let m=new Map(g),Q=[];for(let[C,B]of g){if(B.status==="pending"&&B.time.expires<=p){Q.push(B.scope),m.set(C,{status:"expired",time:B.time,removeAt:p+YM});continue}B.status!=="pending"&&B.removeAt<=p&&m.delete(C)}return[Q,m]});yield*E.forEach(h,A,{discard:!0})})().pipe(E.repeat(cb.spaced(xve)),E.forkIn(r)),Op.of({transform:o.transform,reload:o.reload,get:E.fn("Integration.get")(function*(p){let h=o.get().integrations.get(p);if(h)return a(h,s(h,yield*e.list(p)))}),list:E.fn("Integration.list")(function*(){let p=Map.groupBy(yield*e.all(),h=>h.integrationID);return Array.from(o.get().integrations.values(),h=>a(h,s(h,p.get(h.ref.id)??[]))).toSorted((h,g)=>h.name.localeCompare(g.name))}),connection:{active:E.fn("Integration.connection.active")(function*(p){let h=o.get().integrations.get(p);return s(h,yield*e.list(p))[0]}),resolve:E.fn("Integration.connection.resolve")(function*(p){if(p.type==="env"){let C=process.env[p.name];return C?Il.Key.make({type:"key",key:C}):void 0}let h=yield*e.get(p.id);if(!h)return;if(h.value.type==="key")return h.value;let g=o.get().integrations.get(h.integrationID)?.implementations.get(h.value.methodID);if(!g?.refresh)return h.value;let m=yield*$p.currentTimeMillis;if(h.value.expires>m+Io.toMillis(Io.minutes(5)))return h.value;let Q=yield*l(g.refresh(h.value));return yield*e.update(h.id,{value:Q}),Q}),key:E.fn("Integration.connection.key")(function*(p){if(!o.get().integrations.get(p.integrationID)?.methods.some(g=>g.type==="key"))return yield*E.die(`Key method not found: ${p.integrationID}`);yield*e.create({integrationID:p.integrationID,label:p.label,value:Il.Key.make({type:"key",key:p.key})}),yield*t.publish(xs.ConnectionUpdated,{integrationID:p.integrationID}),yield*t.publish(xs.Updated,{})}),oauth:E.fn("Integration.connection.oauth")(function*(p){let h=o.get().integrations.get(p.integrationID)?.implementations.get(p.methodID);if(!h)return yield*E.die(`OAuth method not found: ${p.integrationID}/${p.methodID}`);let g=yield*ur.fork(r),m=yield*l(h.authorize(p.inputs)).pipe(ur.provide(g),E.onExit(I=>qr.isFailure(I)?ur.close(g,I):E.void)),Q=GM.create(),C=yield*$p.currentTimeMillis,B={created:C,expires:C+bve};return yield*Wa.update(n,I=>new Map(I).set(Q,{status:"pending",completing:m.mode==="auto",authorization:m,integrationID:p.integrationID,methodID:p.methodID,label:p.label,scope:g,time:B})),m.mode==="auto"&&(yield*m.callback.pipe(E.exit,E.flatMap(I=>f(Q,I)),E.forkIn(g,{startImmediately:!0}))),new U6({attemptID:Q,url:m.url,instructions:m.instructions,mode:m.mode,time:B})}),update:E.fn("Integration.connection.update")(function*(p,h){let g=yield*e.get(p);yield*e.update(p,h),g&&(yield*t.publish(xs.ConnectionUpdated,{integrationID:g.integrationID})),yield*t.publish(xs.Updated,{})}),remove:E.fn("Integration.connection.remove")(function*(p){let h=yield*e.get(p);yield*e.remove(p),h&&(yield*t.publish(xs.ConnectionUpdated,{integrationID:h.integrationID})),yield*t.publish(xs.Updated,{})})},attempt:{status:E.fn("Integration.attempt.status")(function*(p){let h=(yield*Wa.get(n)).get(p);return h?h.status==="failed"?{status:h.status,message:h.message??"Authorization failed",time:h.time}:{status:h.status,time:h.time}:yield*E.die(`OAuth attempt not found: ${p}`)}),complete:E.fn("Integration.attempt.complete")(function*(p){let h=yield*Wa.modify(n,Q=>{let C=Q.get(p.attemptID);return!C||C.status!=="pending"||C.completing?[C,Q]:C.authorization.mode==="code"&&p.code===void 0?[C,Q]:[C,new Map(Q).set(p.attemptID,{...C,completing:!0})]});if(!h)return yield*E.die(`OAuth attempt not found: ${p.attemptID}`);if(h.status!=="pending")return;if(h.authorization.mode==="code"&&p.code===void 0)return yield*new Nw({attemptID:p.attemptID});if(h.completing)return yield*E.die(`OAuth attempt already completing: ${p.attemptID}`);let g=h.authorization.mode==="auto"?h.authorization.callback:h.authorization.callback(p.code),m=yield*l(g).pipe(E.exit);if(yield*f(p.attemptID,m),qr.isFailure(m))return yield*m}),cancel:E.fn("Integration.attempt.cancel")(function*(p){let h=yield*Wa.modify(n,g=>{let m=g.get(p);if(!m||m.status!=="pending")return[void 0,g];let Q=new Map(g);return Q.delete(p),[m,Q]});h&&(yield*ur.close(h.scope,qr.void))})}})})),Tve=bi({service:Op,layer:O6,deps:[Il.node,Sa.node]});var Rve=c.Literals(["provider.use"]),P6=ey.Event,Pp=class extends ce.Service()("@opencode/v2/Catalog"){static{i(this,"Service")}},H6=se.effect(Pp,E.gen(function*(){let e=yield*Sa.Service,t=yield*po.Service,r=yield*Ql.Service,n=i((A,u)=>A.disabled?!1:typeof A.request.body.apiKey=="string"||u?.connections.length?!0:A.integrationID===void 0&&!u,"available"),o=i((A,u)=>{let f=A.api.type==="native"&&!A.api.url&&Object.keys(A.api.settings).length===0?{...u.api,id:A.api.id}:A.api.type==="aisdk"&&u.api.type==="aisdk"&&!A.api.url?{...A.api,url:u.api.url,settings:{...u.api.settings,...A.api.settings}}:A.api.type==="aisdk"&&u.api.type==="aisdk"?{...A.api,settings:{...u.api.settings,...A.api.settings}}:A.api,d={headers:{...u.request.headers,...A.request.headers},body:{...u.request.body,...A.request.body},variant:A.request.variant};return vn.Info.make({...A,api:f,request:d})},"projectModel"),s=i(A=>{typeof A.request.body.baseURL=="string"&&(A.api.url=A.request.body.baseURL,delete A.request.body.baseURL)},"normalizeApi"),a=gu.create({initial:i(()=>({providers:new Map}),"initial"),draft:i(A=>({provider:{list:i(()=>Pt.fromIterable(A.providers.values()),"list"),get:i(f=>A.providers.get(f),"get"),update:i((f,d)=>{let p=A.providers.get(f);p||(p={provider:ln.Info.empty(f),models:new Map},A.providers.set(f,p)),d(p.provider),s(p.provider)},"update"),remove:i(f=>{A.providers.delete(f)},"remove")},model:{get:i((f,d)=>A.providers.get(f)?.models.get(d),"get"),update:i((f,d,p)=>{let h=A.providers.get(f);h||(h={provider:ln.Info.empty(f),models:new Map},A.providers.set(f,h));let g=h.models.get(d)??vn.Info.empty(f,d);h.models.has(d)||h.models.set(d,g),p(g),g.id=d,g.providerID=f,s(g)},"update"),remove:i((f,d)=>{A.providers.get(f)?.models.delete(d)},"remove"),default:{get:i(()=>A.defaultModel,"get"),set:i((f,d)=>{A.defaultModel={providerID:f,modelID:d}},"set")}}}),"draft"),finalize:E.fn("CatalogV2.finalize")(function*(A){if(t.hasStatements())for(let u of[...A.provider.list()])(yield*t.evaluate("provider.use",u.provider.id,"allow"))==="deny"&&A.provider.remove(u.provider.id);yield*e.publish(P6.Updated,{})})}),l={transform:a.transform,reload:a.reload,provider:{get:E.fn("CatalogV2.provider.get")(function*(A){return a.get().providers.get(A)?.provider}),all:E.fn("CatalogV2.provider.all")(function*(){return Pt.fromIterable(a.get().providers.values()).map(A=>A.provider)}),available:E.fn("CatalogV2.provider.available")(function*(){let A=new Map((yield*r.list()).map(u=>[u.id,u]));return(yield*l.provider.all()).filter(u=>n(u,A.get(u.integrationID??Ql.ID.make(u.id))))})},model:{get:E.fn("CatalogV2.model.get")(function*(A,u){let f=a.get().providers.get(A);if(!f)return;let d=f.models.get(u);return d&&o(d,f.provider)}),all:E.fn("CatalogV2.model.all")(function*(){return Mi(Pt.fromIterable(a.get().providers.values()),Pt.flatMap(A=>Pt.fromIterable(A.models.values()).map(u=>o(u,A.provider))),Pt.sortWith(A=>A.time.released,Bu.flip(Bu.Number)))}),available:E.fn("CatalogV2.model.available")(function*(){let A=new Set((yield*l.provider.available()).map(u=>u.id));return(yield*l.model.all()).filter(u=>A.has(u.providerID)&&u.enabled)}),default:E.fn("CatalogV2.model.default")(function*(){let A=a.get().defaultModel;if(A){let u=yield*l.provider.get(A.providerID);if(u&&(yield*l.provider.available()).some(f=>f.id===u.id)){let f=yield*l.model.get(A.providerID,A.modelID);if(f?.enabled)return f}}return Je.getOrUndefined(Mi(yield*l.model.available(),Pt.sortWith(u=>u.time.released,Bu.flip(Bu.Number)),Pt.head))}),small:E.fn("CatalogV2.model.small")(function*(A){let u=a.get().providers.get(A);if(!u)return;let f=u.provider;if(A===ln.ID.azure||A===ln.ID.make("azure-cognitive-services"))return;if(A===ln.ID.opencode){let h=u.models.get(vn.ID.make("gpt-5-nano"));if(h?.enabled&&h.status==="active")return o(h,f)}let d=Mi(Pt.fromIterable(u.models.values()),Pt.filter(h=>h.providerID===A&&h.enabled&&h.status==="active"&&h.capabilities.input.some(g=>g.startsWith("text"))&&h.capabilities.output.some(g=>g.startsWith("text"))),Pt.map(h=>({model:h,cost:h.cost[0]?h.cost[0].input+h.cost[0].output:999,age:(Date.now()-h.time.released)/(1e3*60*60*24*30),small:Dve.test(`${h.id} ${h.family??""} ${h.name}`.toLowerCase())})),Pt.filter(h=>h.cost>0&&h.age<=18)),p=i(h=>{let g=Math.max(...h.map(Q=>Q.cost),.01),m=Math.max(...h.map(Q=>Q.age),.01);return Mi(h,Pt.sortWith(Q=>Q.cost/g*.8+Q.age/m*.2,Bu.Number),Pt.map(Q=>o(Q.model,f)),Pt.head)},"pick");return Je.getOrUndefined(Mi(d,Pt.filter(h=>h.small),h=>h.length>0?p(h):p(d)))})}};return Pp.of(l)})),Dve=/\b(nano|flash|lite|mini|haiku|small|fast)\b/,Nve=H6.pipe(se.provideMerge(Ql.locationLayer),se.provideMerge(po.locationLayer)),kve=bi({service:Pp,layer:H6,deps:[Sa.node,po.node,Ql.node]});var q6=c.Union([ry.PolicyActions]),vw=class extends c.Class("ConfigV2.Experimental.Policy")({...po.Info.fields,action:q6}){static{i(this,"Policy")}},WM=class extends c.Class("ConfigV2.Experimental")({policies:vw.pipe(c.Array,c.optional)}){static{i(this,"Experimental")}};var Bl={};J(Bl,{ConfigReference:()=>Bl,Entry:()=>_6,Git:()=>Lw,Info:()=>vve,Local:()=>Mw});var Lw=class extends c.Class("ConfigV2.Reference.Git")({repository:c.String,branch:c.String.pipe(c.optional),description:c.String.pipe(c.optional),hidden:c.Boolean.pipe(c.optional)}){static{i(this,"Git")}},Mw=class extends c.Class("ConfigV2.Reference.Local")({path:c.String,description:c.String.pipe(c.optional),hidden:c.Boolean.pipe(c.optional)}){static{i(this,"Local")}},_6=c.Union([c.String,Lw,Mw]),vve=c.Record(c.String,_6);var yn={};J(yn,{ConfigAgentV1:()=>yn,Info:()=>Hve});var Eu={};J(Eu,{Action:()=>wa,ConfigPermissionV1:()=>Eu,Info:()=>Fve,Object:()=>V6,Rule:()=>Xo});var wa=c.Literals(["ask","allow","deny"]).annotate({identifier:"PermissionActionConfig"}),V6=c.Record(c.String,wa).annotate({identifier:"PermissionObjectConfig"}),Xo=c.Union([wa,V6]).annotate({identifier:"PermissionRuleConfig"}),Y6=c.StructWithRest(c.Struct({read:c.optional(Xo),edit:c.optional(Xo),glob:c.optional(Xo),grep:c.optional(Xo),list:c.optional(Xo),bash:c.optional(Xo),task:c.optional(Xo),external_directory:c.optional(Xo),todowrite:c.optional(wa),question:c.optional(wa),webfetch:c.optional(wa),websearch:c.optional(wa),lsp:c.optional(Xo),doom_loop:c.optional(wa),skill:c.optional(Xo)}),[c.Record(c.String,Xo)]),Lve=c.Union([wa,Y6]),Mve=i(e=>typeof e=="string"?{"*":e}:e,"normalizeInput"),Fve=Lve.pipe(c.decodeTo(Y6,{decode:ni.transform(Mve),encode:ni.passthrough({strict:!1})})).annotate({identifier:"PermissionConfig"});var Uve=c.Union([c.String.check(c.isPattern(/^#[0-9a-fA-F]{6}$/)),c.Literals(["primary","secondary","accent","success","warning","error","info"])]),G6=c.StructWithRest(c.Struct({model:c.optional(c.String),variant:c.optional(c.String).annotate({description:"Default model variant for this agent (applies only when using the agent's configured model)."}),temperature:c.optional(c.Finite),top_p:c.optional(c.Finite),prompt:c.optional(c.String),tools:c.optional(c.Record(c.String,c.Boolean)).annotate({description:"@deprecated Use 'permission' field instead"}),disable:c.optional(c.Boolean),description:c.optional(c.String).annotate({description:"Description of when to use the agent"}),mode:c.optional(c.Literals(["subagent","primary","all"])),hidden:c.optional(c.Boolean).annotate({description:"Hide this subagent from the @ autocomplete menu (default: false, only applies to mode: subagent)"}),options:c.optional(c.Record(c.String,c.Any)),color:c.optional(Uve).annotate({description:"Hex color code (e.g., #FF5733) or theme color (e.g., primary)"}),steps:c.optional(He).annotate({description:"Maximum number of agentic iterations before forcing text-only response"}),maxSteps:c.optional(He).annotate({description:"@deprecated Use 'steps' field instead."}),permission:c.optional(Eu.Info)}),[c.Record(c.String,c.Any)]),Ove=new Set(["name","model","variant","prompt","description","temperature","top_p","mode","hidden","color","steps","maxSteps","options","permission","disable","tools"]),Pve=i(e=>{let t={...e.options};for(let[o,s]of Object.entries(e))Ove.has(o)||(t[o]=s);let r={};for(let[o,s]of Object.entries(e.tools??{})){let a=s?"allow":"deny";if(o==="write"||o==="edit"||o==="patch"){r.edit=a;continue}r[o]=a}globalThis.Object.assign(r,e.permission);let n=e.steps??e.maxSteps;return{...e,options:t,permission:r,...n!==void 0?{steps:n}:{}}},"normalize"),Hve=G6.pipe(c.decodeTo(G6,{decode:ni.transform(Pve),encode:ni.passthrough({strict:!1})})).annotate({identifier:"AgentConfig"});var ny={};J(ny,{ConfigAttachmentV1:()=>ny,Image:()=>W6,Info:()=>qve});var W6=c.Struct({auto_resize:c.optional(c.Boolean).annotate({description:"Resize images before sending them to the model when they exceed configured limits (default: true)"}),max_width:c.optional(He).annotate({description:"Maximum image width before resizing or rejecting the attachment (default: 2000)"}),max_height:c.optional(He).annotate({description:"Maximum image height before resizing or rejecting the attachment (default: 2000)"}),max_base64_bytes:c.optional(He).annotate({description:"Maximum base64 payload bytes for an image attachment (default: 5242880)"})}).annotate({identifier:"ImageAttachmentConfig"}),qve=c.Struct({image:c.optional(W6).annotate({description:"Image attachment configuration"})}).annotate({identifier:"AttachmentConfig"});var oy={};J(oy,{ConfigCommandV1:()=>oy,Info:()=>_ve});var _ve=c.Struct({template:c.String,description:c.optional(c.String),agent:c.optional(c.String),model:c.optional(c.String),variant:c.optional(c.String),subtask:c.optional(c.Boolean)});var iy={};J(iy,{ConfigFormatterV1:()=>iy,Entry:()=>J6,Info:()=>Vve});var J6=c.Struct({disabled:c.optional(c.Boolean),command:c.optional(c.mutable(c.Array(c.String))),environment:c.optional(c.Record(c.String,c.String)),extensions:c.optional(c.mutable(c.Array(c.String)))}),Vve=c.Union([c.Boolean,c.Record(c.String,J6)]);var sy={};J(sy,{ConfigLayoutV1:()=>sy,Layout:()=>Yve});var Yve=c.Literals(["auto","stretch"]).annotate({identifier:"LayoutConfig"});var ay={};J(ay,{ConfigLSPV1:()=>ay,Disabled:()=>j6,Entry:()=>z6,Info:()=>Gve,builtinServerIds:()=>$6,requiresExtensionsForCustomServers:()=>K6});var j6=c.Struct({disabled:c.Literal(!0)}).pipe(e=>e),z6=c.Union([j6,c.Struct({command:c.mutable(c.Array(c.String)),extensions:c.optional(c.mutable(c.Array(c.String))),disabled:c.optional(c.Boolean),env:c.optional(c.Record(c.String,c.String)),initialization:c.optional(c.Record(c.String,c.Unknown))})]).pipe(e=>e),$6=["deno","typescript","vue","eslint","oxlint","biome","gopls","ruby-lsp","ty","pyright","elixir-ls","zls","csharp","razor","fsharp","sourcekit-lsp","rust","clangd","svelte","astro","jdtls","kotlin-ls","yaml-ls","lua-ls","php intelephense","prisma","dart","ocaml-lsp","bash","terraform","texlab","dockerfile","gleam","clojure-lsp","nixd","tinymist","haskell-language-server","julials"],K6=c.makeFilter(e=>{if(typeof e=="boolean")return;let t=new Set($6);return Object.entries(e).every(([n,o])=>"disabled"in o&&o.disabled||t.has(n)?!0:"extensions"in o&&!!o.extensions)?void 0:"For custom LSP servers, 'extensions' array is required."}),Gve=c.Union([c.Boolean,c.Record(c.String,z6)]).check(K6).pipe(e=>e);var cy={};J(cy,{ConfigMCPV1:()=>cy,Info:()=>Wve,Local:()=>X6,OAuth:()=>Z6,Remote:()=>e7});var X6=c.Struct({type:c.Literal("local").annotate({description:"Type of MCP server connection"}),command:c.mutable(c.Array(c.String)).annotate({description:"Command and arguments to run the MCP server"}),cwd:c.optional(c.String).annotate({description:"Working directory for the MCP server process. Relative paths resolve from the workspace directory."}),environment:c.optional(c.Record(c.String,c.String)).annotate({description:"Environment variables to set when running the MCP server"}),enabled:c.optional(c.Boolean).annotate({description:"Enable or disable the MCP server on startup"}),timeout:c.optional(He).annotate({description:"Timeout in ms for MCP server requests. Defaults to 5000 (5 seconds) if not specified."})}).annotate({identifier:"McpLocalConfig"}),Z6=c.Struct({clientId:c.optional(c.String).annotate({description:"OAuth client ID. If not provided, dynamic client registration (RFC 7591) will be attempted."}),clientSecret:c.optional(c.String).annotate({description:"OAuth client secret (if required by the authorization server)"}),scope:c.optional(c.String).annotate({description:"OAuth scopes to request during authorization"}),callbackPort:c.optional(c.Int.check(c.isBetween({minimum:1,maximum:65535}))).annotate({description:"Port for the local OAuth callback server (default: 19876). Shorthand for redirectUri when only the port needs changing. Ignored if redirectUri is set."}),redirectUri:c.optional(c.String).annotate({description:"OAuth redirect URI (default: http://127.0.0.1:19876/mcp/oauth/callback)."})}).annotate({identifier:"McpOAuthConfig"}),e7=c.Struct({type:c.Literal("remote").annotate({description:"Type of MCP server connection"}),url:c.String.annotate({description:"URL of the remote MCP server"}),enabled:c.optional(c.Boolean).annotate({description:"Enable or disable the MCP server on startup"}),headers:c.optional(c.Record(c.String,c.String)).annotate({description:"Headers to send with the request"}),oauth:c.optional(c.Union([Z6,c.Literal(!1)])).annotate({description:"OAuth authentication configuration for the MCP server. Set to false to disable OAuth auto-detection."}),timeout:c.optional(He).annotate({description:"Timeout in ms for MCP server requests. Defaults to 5000 (5 seconds) if not specified."})}).annotate({identifier:"McpRemoteConfig"}),Wve=c.Union([X6,e7]).annotate({discriminator:"type"});var ly={};J(ly,{ConfigPluginV1:()=>ly,Options:()=>t7,Spec:()=>Jve});var t7=c.Record(c.String,c.Unknown),Jve=c.Union([c.String,c.mutable(c.Tuple([c.String,t7]))]);var Ay={};J(Ay,{ConfigProviderV1:()=>Ay,Info:()=>jve,Model:()=>o7,ModelStatus:()=>n7});var n7=c.Literals(["alpha","beta","deprecated","active"]),r7=c.Union([c.Literals(["reasoning","reasoning_content","reasoning_text"]),c.String]),o7=c.Struct({id:c.optional(c.String),name:c.optional(c.String),family:c.optional(c.String),release_date:c.optional(c.String),attachment:c.optional(c.Boolean),reasoning:c.optional(c.Boolean),temperature:c.optional(c.Boolean),tool_call:c.optional(c.Boolean),interleaved:c.optional(c.Union([c.Boolean,r7,c.Struct({field:r7})])),cost:c.optional(c.Struct({input:c.Finite,output:c.Finite,cache_read:c.optional(c.Finite),cache_write:c.optional(c.Finite),context_over_200k:c.optional(c.Struct({input:c.Finite,output:c.Finite,cache_read:c.optional(c.Finite),cache_write:c.optional(c.Finite)}))})),limit:c.optional(c.Struct({context:c.Finite,input:c.optional(c.Finite),output:c.Finite})),modalities:c.optional(c.Struct({input:c.optional(c.mutable(c.Array(c.Literals(["text","audio","image","video","pdf"])))),output:c.optional(c.mutable(c.Array(c.Literals(["text","audio","image","video","pdf"]))))})),experimental:c.optional(c.Boolean),status:c.optional(n7),provider:c.optional(c.Struct({npm:c.optional(c.String),api:c.optional(c.String)})),options:c.optional(c.Record(c.String,c.Any)),headers:c.optional(c.Record(c.String,c.String)),variants:c.optional(c.Record(c.String,c.StructWithRest(c.Struct({disabled:c.optional(c.Boolean).annotate({description:"Disable this variant for the model"})}),[c.Record(c.String,c.Any)])).annotate({description:"Variant-specific configuration"}))}),jve=c.Struct({api:c.optional(c.String),name:c.optional(c.String),env:c.optional(c.mutable(c.Array(c.String))),id:c.optional(c.String),npm:c.optional(c.String),whitelist:c.optional(c.mutable(c.Array(c.String))),blacklist:c.optional(c.mutable(c.Array(c.String))),options:c.optional(c.StructWithRest(c.Struct({apiKey:c.optional(c.String),baseURL:c.optional(c.String),enterpriseUrl:c.optional(c.String).annotate({description:"GitHub Enterprise URL for copilot authentication"}),setCacheKey:c.optional(c.Boolean).annotate({description:"Enable promptCacheKey for this provider (default false)"}),timeout:c.optional(c.Union([He,c.Literal(!1)]).annotate({description:"Timeout in milliseconds for full requests to this provider. Set to false to disable timeout."})).annotate({description:"Timeout in milliseconds for full requests to this provider. Set to false to disable timeout."}),headerTimeout:c.optional(c.Union([He,c.Literal(!1)]).annotate({description:"Timeout in milliseconds to wait for response headers (default: 300000). Set to false to disable timeout."})).annotate({description:"Timeout in milliseconds to wait for response headers (default: 300000). Set to false to disable timeout."}),chunkTimeout:c.optional(c.Union([He,c.Literal(!1)]).annotate({description:"Timeout in milliseconds between streamed SSE chunks for this provider (default: 300000). If no chunk arrives within this window, the request is aborted. Set to false to disable timeout."})).annotate({description:"Timeout in milliseconds between streamed SSE chunks for this provider (default: 300000). If no chunk arrives within this window, the request is aborted. Set to false to disable timeout."})}),[c.Record(c.String,c.Any)])),models:c.optional(c.Record(c.String,o7))}).annotate({identifier:"ProviderConfig"});var uy={};J(uy,{ConfigServerV1:()=>uy,Server:()=>zve});var zve=c.Struct({port:c.optional(He).annotate({description:"Port to listen on"}),hostname:c.optional(c.String).annotate({description:"Hostname to listen on"}),mdns:c.optional(c.Boolean).annotate({description:"Enable mDNS service discovery"}),mdnsDomain:c.optional(c.String).annotate({description:"Custom domain name for mDNS service (default: opencode.local)"}),cors:c.optional(c.mutable(c.Array(c.String))).annotate({description:"Additional domains to allow for CORS"})}).annotate({identifier:"ServerConfig"});var dy={};J(dy,{ConfigSkillsV1:()=>dy,Info:()=>$ve});var $ve=c.Struct({paths:c.optional(c.Array(c.String)).annotate({description:"Additional paths to skill folders"}),urls:c.optional(c.Array(c.String)).annotate({description:"URLs to fetch skills from (e.g., https://example.com/.well-known/skills/)"})});var Kve=c.Struct({config:c.optional(c.Json),remote_config:c.optional(c.Json)}),Xve=c.Literals(["DEBUG","INFO","WARN","ERROR"]).annotate({identifier:"LogLevel",description:"Log level"}),Zve=c.Struct({$schema:c.optional(c.String).annotate({description:"JSON schema reference for configuration validation"}),shell:c.optional(c.String).annotate({description:"Default shell to use for terminal and bash tool"}),logLevel:c.optional(Xve).annotate({description:"Log level"}),server:c.optional(uy.Server).annotate({description:"Server configuration for opencode serve and web commands"}),command:c.optional(c.Record(c.String,oy.Info)).annotate({description:"Command configuration, see https://opencode.ai/docs/commands"}),skills:c.optional(dy.Info).annotate({description:"Additional skill folder paths"}),references:c.optional(Bl.Info).annotate({description:"Named git or local directory references"}),reference:c.optional(Bl.Info).annotate({description:"@deprecated Use 'references' field instead. Named git or local directory references"}),watcher:c.optional(c.Struct({ignore:c.optional(c.mutable(c.Array(c.String)))})),snapshot:c.optional(c.Boolean).annotate({description:"Enable or disable snapshot tracking. When false, filesystem snapshots are not recorded and undoing or reverting will not undo/redo file changes. Defaults to true."}),plugin:c.optional(c.mutable(c.Array(ly.Spec))),share:c.optional(c.Literals(["manual","auto","disabled"])).annotate({description:"Control sharing behavior:'manual' allows manual sharing via commands, 'auto' enables automatic sharing, 'disabled' disables all sharing"}),autoshare:c.optional(c.Boolean).annotate({description:"@deprecated Use 'share' field instead. Share newly created sessions automatically"}),autoupdate:c.optional(c.Union([c.Boolean,c.Literal("notify")])).annotate({description:"Automatically update to the latest version. Set to true to auto-update, false to disable, or 'notify' to show update notifications"}),disabled_providers:c.optional(c.mutable(c.Array(c.String))).annotate({description:"Disable providers that are loaded automatically"}),enabled_providers:c.optional(c.mutable(c.Array(c.String))).annotate({description:"When set, ONLY these providers will be enabled. All other providers will be ignored"}),model:c.optional(c.String).annotate({description:"Model to use in the format of provider/model, eg anthropic/claude-2"}),small_model:c.optional(c.String).annotate({description:"Small model to use for tasks like title generation in the format of provider/model"}),default_agent:c.optional(c.String).annotate({description:"Default agent to use when none is specified. Must be a primary agent. Falls back to 'build' if not set or if the specified agent is invalid."}),subagent_depth:c.optional(he).annotate({description:"Maximum subagent nesting depth. Defaults to 1, which prevents subagents from launching subagents."}),username:c.optional(c.String).annotate({description:"Custom username to display in conversations instead of system username"}),mode:c.optional(c.StructWithRest(c.Struct({build:c.optional(yn.Info),plan:c.optional(yn.Info)}),[c.Record(c.String,yn.Info)])).annotate({description:"@deprecated Use `agent` field instead."}),agent:c.optional(c.StructWithRest(c.Struct({plan:c.optional(yn.Info),build:c.optional(yn.Info),general:c.optional(yn.Info),explore:c.optional(yn.Info),title:c.optional(yn.Info),summary:c.optional(yn.Info),compaction:c.optional(yn.Info)}),[c.Record(c.String,yn.Info)])).annotate({description:"Agent configuration, see https://opencode.ai/docs/agents"}),provider:c.optional(c.Record(c.String,Ay.Info)).annotate({description:"Custom provider configurations and model overrides"}),mcp:c.optional(c.Record(c.String,c.Union([cy.Info,c.Struct({enabled:c.Boolean})]))).annotate({description:"MCP (Model Context Protocol) server configurations"}),formatter:c.optional(iy.Info).annotate({description:"Enable or configure formatters. Omit or set to false to disable, true to enable built-ins, or an object to enable built-ins with overrides."}),lsp:c.optional(ay.Info).annotate({description:"Enable or configure LSP servers. Omit or set to false to disable, true to enable built-ins, or an object to enable built-ins with overrides."}),instructions:c.optional(c.mutable(c.Array(c.String))).annotate({description:"Additional instruction files or patterns to include"}),layout:c.optional(sy.Layout).annotate({description:"@deprecated Always uses stretch layout."}),permission:c.optional(Eu.Info),tools:c.optional(c.Record(c.String,c.Boolean)),attachment:c.optional(ny.Info).annotate({description:"Attachment processing configuration, including image size limits and resizing behavior"}),enterprise:c.optional(c.Struct({url:c.optional(c.String).annotate({description:"Enterprise URL"})})),tool_output:c.optional(c.Struct({max_lines:c.optional(He).annotate({description:"Maximum lines of tool output before it is truncated and saved to disk (default: 2000)"}),max_bytes:c.optional(He).annotate({description:"Maximum bytes of tool output before it is truncated and saved to disk (default: 51200)"})})).annotate({description:"Thresholds for truncating tool output. When output exceeds either limit, the full text is written to the truncation directory and a preview is returned."}),compaction:c.optional(c.Struct({auto:c.optional(c.Boolean).annotate({description:"Enable automatic compaction when context is full (default: true)"}),prune:c.optional(c.Boolean).annotate({description:"Enable pruning of old tool outputs (default: false)"}),tail_turns:c.optional(he).annotate({description:"Maximum number of recent user turns, including their following assistant/tool responses, to keep verbatim during compaction. By default retention is limited only by the preserved token budget."}),preserve_recent_tokens:c.optional(he).annotate({description:"Maximum number of tokens from recent turns to preserve verbatim after compaction"}),reserved:c.optional(he).annotate({description:"Token buffer for compaction. Leaves enough window to avoid overflow during compaction."}),anthropic:c.optional(c.Boolean).annotate({description:"Claude sessions compact with Anthropic's own compaction while their cache is warm, keeping the newest turns word for word (alchemy fork, session/anthropic-compaction.ts; default: false). ALCHEMYLAB_ANTHROPIC_COMPACTION, when set, wins."})})),experimental:c.optional(c.Struct({disable_paste_summary:c.optional(c.Boolean),batch_tool:c.optional(c.Boolean).annotate({description:"Enable the batch tool"}),openTelemetry:c.optional(c.Boolean).annotate({description:"Enable OpenTelemetry spans for AI SDK calls (using the 'experimental_telemetry' flag)"}),primary_tools:c.optional(c.mutable(c.Array(c.String))).annotate({description:"Tools that should only be available to primary agents."}),continue_loop_on_deny:c.optional(c.Boolean).annotate({description:"Continue the agent loop when a tool call is denied"}),mcp_timeout:c.optional(He).annotate({description:"Timeout in milliseconds for model context protocol (MCP) requests"}),policies:c.optional(c.mutable(c.Array(mu.Policy))).annotate({description:"Policy statements applied to supported resources, such as provider access"})}))}).annotate({identifier:"Config"});var aF={};J(aF,{Config:()=>aF,Directory:()=>jw,Document:()=>Jw,Info:()=>xy,Service:()=>Gp,latest:()=>BLe,locationLayer:()=>SLe,node:()=>wLe});import by from"path";var yu={};J(yu,{Effect:()=>A7,Event:()=>tLe,ID:()=>JM,Permission:()=>yu,Reply:()=>l7,Request:()=>c7,Rule:()=>u7,Ruleset:()=>rLe,Source:()=>a7});var JM=c.String.check(c.isStartsWith("per")).pipe(c.brand("PermissionV2.ID"),ze(e=>({create:i(t=>e.make(t??"per_"+Cr()),"create")}))),a7=c.Union([c.Struct({type:c.Literal("tool"),messageID:c.String,callID:c.String})]).annotate({identifier:"PermissionV2.Source"}),eLe={sessionID:kt,action:c.String,resources:c.Array(c.String),save:c.Array(c.String).pipe(O),metadata:c.Record(c.String,c.Unknown).pipe(O),source:a7.pipe(O)},c7=c.Struct({id:JM,...eLe}).annotate({identifier:"PermissionV2.Request"}),l7=c.Literals(["once","always","reject"]).annotate({identifier:"PermissionV2.Reply"}),i7=wt({type:"permission.v2.asked",schema:c7.fields}),s7=wt({type:"permission.v2.replied",schema:{sessionID:kt,requestID:JM,reply:l7}}),tLe={Asked:i7,Replied:s7,Definitions:so(i7,s7)},A7=c.Literals(["allow","deny","ask"]).annotate({identifier:"PermissionV2.Effect"}),u7=c.Struct({action:c.String,resource:c.String,effect:A7}).annotate({identifier:"PermissionV2.Rule"}),rLe=c.Array(u7).annotate({identifier:"PermissionV2.Ruleset"});var py={};J(py,{Color:()=>d7,ConfigAgent:()=>py,Info:()=>XM});var Cu={};J(Cu,{ConfigProvider:()=>Cu,Info:()=>KM,Request:()=>Hp});var Hp=class extends c.Class("ConfigV2.Provider.Request")({headers:c.Record(c.String,c.String).pipe(c.optional),body:c.Record(c.String,c.Unknown).pipe(c.optional)}){static{i(this,"Request")}},jM=class extends c.Class("ConfigV2.Model.Cost.Cache")({read:c.Finite.pipe(c.optional),write:c.Finite.pipe(c.optional)}){static{i(this,"Cache")}},Fw=class extends c.Class("ConfigV2.Model.Cost")({tier:c.Struct({type:c.Literal("context"),size:c.Int}).pipe(c.optional),input:c.Finite,output:c.Finite,cache:jM.pipe(c.optional)}){static{i(this,"Cost")}},zM=class extends c.Class("ConfigV2.Model.Limit")({context:c.Int.pipe(c.optional),input:c.Int.pipe(c.optional),output:c.Int.pipe(c.optional)}){static{i(this,"Limit")}},nLe=c.Union([c.Struct({id:vn.ID.pipe(c.optional),...ln.AISDK.fields}),c.Struct({id:vn.ID.pipe(c.optional),...ln.Native.fields}),c.Struct({id:vn.ID})]),$M=class extends c.Class("ConfigV2.Model")({family:vn.Family.pipe(c.optional),name:c.String.pipe(c.optional),api:nLe.pipe(c.optional),capabilities:vn.Capabilities.pipe(c.optional),request:c.Struct({...Hp.fields,variant:c.String.pipe(c.optional)}).pipe(c.optional),variants:c.Struct({id:vn.VariantID,...Hp.fields}).pipe(c.Array,c.optional),cost:c.Union([Fw,Fw.pipe(c.Array)]).pipe(c.optional),disabled:c.Boolean.pipe(c.optional),limit:zM.pipe(c.optional)}){static{i(this,"Model")}},KM=class extends c.Class("ConfigV2.Provider")({name:c.String.pipe(c.optional),env:c.String.pipe(c.Array,c.optional),api:ln.Api.pipe(c.optional),request:Hp.pipe(c.optional),models:c.Record(c.String,$M).pipe(c.optional)}){static{i(this,"Info")}};var d7=c.Union([c.String.check(c.isPattern(/^#[0-9a-fA-F]{6}$/)),c.Literals(["primary","secondary","accent","success","warning","error","info"])]),XM=class extends c.Class("ConfigV2.Agent")({model:c.String.pipe(c.optional),variant:c.String.pipe(c.optional),request:Cu.Request.pipe(c.optional),system:c.String.pipe(c.optional),description:c.String.pipe(c.optional),mode:c.Literals(["subagent","primary","all"]).pipe(c.optional),hidden:c.Boolean.pipe(c.optional),color:d7.pipe(c.optional),steps:He.pipe(c.optional),disabled:c.Boolean.pipe(c.optional),permissions:yu.Ruleset.pipe(c.optional)}){static{i(this,"Info")}};var hy={};J(hy,{ConfigAttachments:()=>hy,Image:()=>Uw,Info:()=>ZM});var Uw=class extends c.Class("ConfigV2.Attachments.Image")({auto_resize:c.Boolean.pipe(c.optional),max_width:He.pipe(c.optional),max_height:He.pipe(c.optional),max_base64_bytes:He.pipe(c.optional)}){static{i(this,"Image")}},ZM=class extends c.Class("ConfigV2.Attachments")({image:Uw.pipe(c.optional)}){static{i(this,"Info")}};var gy={};J(gy,{ConfigCompaction:()=>gy,Info:()=>eF,Keep:()=>Ow});var Ow=class extends c.Class("ConfigV2.Compaction.Keep")({tokens:he.pipe(c.optional)}){static{i(this,"Keep")}},eF=class extends c.Class("ConfigV2.Compaction")({auto:c.Boolean.pipe(c.optional),prune:c.Boolean.pipe(c.optional),keep:Ow.pipe(c.optional),buffer:he.pipe(c.optional)}){static{i(this,"Info")}};var my={};J(my,{ConfigCommand:()=>my,Info:()=>tF});var tF=class extends c.Class("ConfigV2.Command")({template:c.String,description:c.String.pipe(c.optional),agent:c.String.pipe(c.optional),model:c.String.pipe(c.optional),variant:c.String.pipe(c.optional),subtask:c.Boolean.pipe(c.optional)}){static{i(this,"Info")}};var Ey={};J(Ey,{ConfigFormatter:()=>Ey,Entry:()=>Pw,Info:()=>oLe});var Pw=class extends c.Class("ConfigV2.Formatter.Entry")({disabled:c.Boolean.pipe(c.optional),command:c.String.pipe(c.Array,c.optional),environment:c.Record(c.String,c.String).pipe(c.optional),extensions:c.String.pipe(c.Array,c.optional)}){static{i(this,"Entry")}},oLe=c.Union([c.Boolean,c.Record(c.String,Pw)]);var yy={};J(yy,{ConfigLSP:()=>yy,Disabled:()=>f7,Entry:()=>p7,Info:()=>iLe,Server:()=>Hw});var f7=c.Struct({disabled:c.Literal(!0)}),Hw=class extends c.Class("ConfigV2.LSP.Server")({command:c.String.pipe(c.Array),extensions:c.String.pipe(c.Array,c.optional),disabled:c.Boolean.pipe(c.optional),env:c.Record(c.String,c.String).pipe(c.optional),initialization:c.Record(c.String,c.Unknown).pipe(c.optional)}){static{i(this,"Server")}},p7=c.Union([f7,Hw]),iLe=c.Union([c.Boolean,c.Record(c.String,p7)]);var Cy={};J(Cy,{ConfigMCP:()=>Cy,Info:()=>rF,Local:()=>qw,OAuth:()=>_w,Remote:()=>Vw,Server:()=>h7,Timeout:()=>qp});var qp=class extends c.Class("ConfigV2.MCP.Timeout")({startup:He.pipe(c.optional).annotate({description:"Maximum time in milliseconds to establish and initialize the MCP server."}),request:He.pipe(c.optional).annotate({description:"Maximum time in milliseconds to wait for each MCP request after initialization."})}){static{i(this,"Timeout")}},qw=class extends c.Class("ConfigV2.MCP.Local")({type:c.Literal("local"),command:c.String.pipe(c.Array),cwd:c.String.pipe(c.optional).annotate({description:"Working directory for the MCP server process. Relative paths resolve from the workspace directory."}),environment:c.Record(c.String,c.String).pipe(c.optional),disabled:c.Boolean.pipe(c.optional),timeout:qp.pipe(c.optional)}){static{i(this,"Local")}},_w=class extends c.Class("ConfigV2.MCP.OAuth")({client_id:c.String.pipe(c.optional),client_secret:c.String.pipe(c.optional),scope:c.String.pipe(c.optional),callback_port:c.Int.check(c.isBetween({minimum:1,maximum:65535})).pipe(c.optional),redirect_uri:c.String.pipe(c.optional)}){static{i(this,"OAuth")}},Vw=class extends c.Class("ConfigV2.MCP.Remote")({type:c.Literal("remote"),url:c.String,headers:c.Record(c.String,c.String).pipe(c.optional),oauth:c.Union([_w,c.Literal(!1)]).pipe(c.optional),disabled:c.Boolean.pipe(c.optional),timeout:qp.pipe(c.optional)}){static{i(this,"Remote")}},h7=c.Union([qw,Vw]).pipe(c.toTaggedUnion("type")),rF=class extends c.Class("ConfigV2.MCP")({timeout:qp.pipe(c.optional),servers:c.Record(c.String,h7).pipe(c.optional)}){static{i(this,"Info")}};var Iy={};J(Iy,{ConfigPlugin:()=>Iy,Entry:()=>Yw,Plugin:()=>g7,Plugins:()=>sLe});var Yw=class extends c.Class("ConfigV2.Plugin.Entry")({package:c.String,options:c.Record(c.String,c.Unknown).pipe(c.optional)}){static{i(this,"Entry")}},g7=c.Union([c.String,Yw]),sLe=g7.pipe(c.Array);var Qy={};J(Qy,{ConfigToolOutput:()=>Qy,Info:()=>nF});var nF=class extends c.Class("ConfigV2.ToolOutput")({max_lines:He.pipe(c.optional),max_bytes:He.pipe(c.optional)}){static{i(this,"Info")}};var By={};J(By,{ConfigWatcher:()=>By,Info:()=>oF});var oF=class extends c.Class("ConfigV2.Watcher")({ignore:c.String.pipe(c.Array,c.optional)}){static{i(this,"Info")}};var Yp={};J(Yp,{ConfigMigrateV1:()=>Yp,isV1:()=>pLe,migrate:()=>hLe,migrateAgent:()=>b7});var Vp={};J(Vp,{ConfigProviderOptionsV1:()=>Vp,get:()=>aLe});function aLe(e){let t=e??"";return Object.hasOwn(y7,t)?y7[t]:cLe}i(aLe,"get");var cLe={provider(e){return{body:Gw(e)}},request:Gw},C7={provider(e){return{url:Rs(e.baseURL),headers:Ww({Authorization:S7(e.apiKey),"OpenAI-Organization":Rs(e.organization),"OpenAI-Project":Rs(e.project),...wy(e.headers)}),body:Sy(e.body),settings:_p(e,["apiKey","baseURL","organization","project","headers","body"])}},request(e){let t=Q7(e);return(e.reasoningEffort!==void 0||e.reasoningSummary!==void 0)&&(t.reasoning={...Iu(t.reasoning)?t.reasoning:{},...e.reasoningEffort!==void 0?{effort:e.reasoningEffort}:{},...e.reasoningSummary!==void 0?{summary:e.reasoningSummary}:{}},delete t.reasoning_effort,delete t.reasoning_summary),e.textVerbosity!==void 0&&(t.text={...Iu(t.text)?t.text:{},verbosity:e.textVerbosity},delete t.text_verbosity),t}},m7={provider(e){return{url:Rs(e.baseURL),headers:Ww({"x-api-key":Rs(e.apiKey),Authorization:e.authToken?S7(e.authToken):void 0,...wy(e.headers)}),body:Sy(e.body),settings:_p(e,["apiKey","authToken","baseURL","headers","body"])}},request(e){let t=Q7(e);return(e.effort!==void 0||e.taskBudget!==void 0)&&(t.output_config=dLe({effort:e.effort,task_budget:e.taskBudget}),delete t.effort,delete t.task_budget),Iu(e.metadata)&&e.metadata.userId!==void 0&&(t.metadata={...Iu(t.metadata)?t.metadata:{},user_id:e.metadata.userId}),t}},E7={provider(e){return{url:Rs(e.baseURL),headers:Ww({"x-goog-api-key":Rs(e.apiKey),...wy(e.headers)}),body:Sy(e.body),settings:_p(e,["apiKey","baseURL","headers","body"])}},request(e){let t=uLe(e,["thinkingConfig","responseModalities","mediaResolution","imageConfig"]);return{..._p(e,["thinkingConfig","responseModalities","mediaResolution","imageConfig"]),...Object.keys(t).length?{generationConfig:t}:{}}}},lLe={provider(e){return{url:Rs(e.baseURL),headers:Ww({"api-key":Rs(e.apiKey),...wy(e.headers)}),body:Sy(e.body),settings:_p(e,["apiKey","baseURL","headers","body"])}},request:C7.request},ALe={provider(e){return I7(e)},request(e){return{additionalModelRequestFields:Gw(e)}}},Ts={provider(e){return{...I7(e,["baseURL"]),url:Rs(e.baseURL)}},request(e){let t=Gw(e);return e.reasoningEffort!==void 0&&(t.reasoning_effort=e.reasoningEffort,delete t.reasoningEffort),t}},y7={"@ai-sdk/openai":C7,"@ai-sdk/anthropic":m7,"@ai-sdk/google-vertex/anthropic":m7,"@ai-sdk/google":E7,"@ai-sdk/google-vertex":E7,"@ai-sdk/azure":lLe,"@ai-sdk/amazon-bedrock":ALe,"@ai-sdk/openai-compatible":Ts,"@ai-sdk/cerebras":Ts,"@ai-sdk/deepinfra":Ts,"@ai-sdk/groq":Ts,"@ai-sdk/mistral":Ts,"@ai-sdk/togetherai":Ts,"@ai-sdk/xai":Ts,"@openrouter/ai-sdk-provider":Ts,"ai-gateway-provider":Ts,"venice-ai-sdk-provider":Ts};function I7(e,t=[]){return{headers:wy(e.headers),body:Sy(e.body),settings:_p(e,["headers","body",...t])}}i(I7,"direct");function Sy(e){if(Iu(e))return{...e}}i(Sy,"body");function Q7(e){return Object.fromEntries(Object.entries(e).map(([t,r])=>[B7(t),iF(r)]))}i(Q7,"snake");function iF(e){return Array.isArray(e)?e.map(iF):Iu(e)?Object.fromEntries(Object.entries(e).map(([t,r])=>[B7(t),iF(r)])):e}i(iF,"snakeValue");function B7(e){return e.replace(/[A-Z]/g,t=>"_"+t.toLowerCase())}i(B7,"snakeKey");function Gw(e){return{...e}}i(Gw,"clone");function _p(e,t){return Object.fromEntries(Object.entries(e).filter(([r])=>!t.includes(r)))}i(_p,"omit");function uLe(e,t){return Object.fromEntries(Object.entries(e).filter(([r])=>t.includes(r)))}i(uLe,"pick");function wy(e){if(Iu(e))return Object.fromEntries(Object.entries(e).filter(t=>typeof t[1]=="string"))}i(wy,"headers");function Ww(e){let t=Object.entries(e).filter(r=>r[1]!==void 0);return t.length?Object.fromEntries(t):void 0}i(Ww,"compact");function dLe(e){return Object.fromEntries(Object.entries(e).filter(t=>t[1]!==void 0))}i(dLe,"compactUnknown");function Rs(e){return typeof e=="string"&&e?e:void 0}i(Rs,"string");function S7(e){return typeof e=="string"&&e?`Bearer ${e}`:void 0}i(S7,"bearer");function Iu(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}i(Iu,"isRecord");var fLe=new Set(["logLevel","server","command","reference","snapshot","plugin","autoshare","disabled_providers","enabled_providers","small_model","mode","agent","provider","permission","tools","attachment","layout"]);function pLe(e){return typeof e!="object"||e===null||Array.isArray(e)?!1:Object.keys(e).some(t=>fLe.has(t))}i(pLe,"isV1");function hLe(e){return{$schema:e.$schema,shell:e.shell,model:e.model,default_agent:e.default_agent,autoupdate:e.autoupdate,share:e.share??(e.autoshare?"auto":void 0),enterprise:e.enterprise,username:e.username,permissions:w7(e.permission,e.tools),agents:mLe(e),snapshots:e.snapshot,watcher:e.watcher,formatter:e.formatter,lsp:e.lsp,attachments:e.attachment,tool_output:e.tool_output,mcp:ELe(e),compaction:e.compaction&&{auto:e.compaction.auto,prune:e.compaction.prune,keep:{tokens:e.compaction.preserve_recent_tokens},buffer:e.compaction.reserved},skills:e.skills&&[...e.skills.paths??[],...e.skills.urls??[]],commands:e.command,instructions:e.instructions,references:e.references??e.reference,plugins:e.plugin?.map(t=>typeof t=="string"?t:{package:t[0],options:t[1]}),experimental:e.experimental?.policies&&{policies:e.experimental.policies},providers:CLe(e.provider)}}i(hLe,"migrate");function w7(e,t){let r=Object.entries(t??{}).map(([n,o])=>({action:gLe(n),resource:"*",effect:o?"allow":"deny"}));for(let[n,o]of Object.entries(e??{}))if(o){if(typeof o=="string"){r.push({action:n,resource:"*",effect:o});continue}r.push(...Object.entries(o).map(([s,a])=>({action:n,resource:s,effect:a})))}return r.length?r:void 0}i(w7,"permissions");function gLe(e){return e==="write"||e==="patch"?"edit":e}i(gLe,"normalizeAction");function mLe(e){let t=[...Object.entries(e.agent??{}),...Object.entries(e.mode??{}).map(([r,n])=>[r,{...n,mode:"primary"}])];if(t.length)return Object.fromEntries(t.flatMap(([r,n])=>n?[[r,b7(n)]]:[]))}i(mLe,"agents");function b7(e){let t={...e.options,...e.temperature===void 0?{}:{temperature:e.temperature},...e.top_p===void 0?{}:{top_p:e.top_p}};return{model:e.model,variant:e.variant,request:Object.keys(t).length?{body:t}:void 0,system:e.prompt,description:e.description,mode:e.mode,hidden:e.hidden,color:e.color,steps:e.steps,disabled:e.disable,permissions:w7(e.permission)}}i(b7,"migrateAgent");function ELe(e){let t=Object.fromEntries(Object.entries(e.mcp??{}).flatMap(([n,o])=>"type"in o?[[n,yLe(o)]]:[])),r=e.experimental?.mcp_timeout;if(!(!r&&!Object.keys(t).length))return{timeout:r===void 0?void 0:{request:r},servers:t}}i(ELe,"mcp");function yLe(e){let t=e.enabled===void 0?void 0:!e.enabled;return e.type==="local"?{type:e.type,command:e.command,cwd:e.cwd,environment:e.environment,disabled:t,timeout:e.timeout===void 0?void 0:{request:e.timeout}}:{type:e.type,url:e.url,headers:e.headers,oauth:e.oauth&&{client_id:e.oauth.clientId,client_secret:e.oauth.clientSecret,scope:e.oauth.scope,callback_port:e.oauth.callbackPort,redirect_uri:e.oauth.redirectUri},disabled:t,timeout:e.timeout===void 0?void 0:{request:e.timeout}}}i(yLe,"migrateMcp");function CLe(e){if(e)return Object.fromEntries(Object.entries(e).map(([t,r])=>[t,ILe(r)]))}i(CLe,"providers");function ILe(e){let r=Vp.get(e.npm).provider(e.options??{}),n=e.api??r.url;return{name:e.name,env:e.env,api:e.npm?{type:"aisdk",package:e.npm,...n===void 0?{}:{url:n},settings:r.settings??{}}:void 0,request:e.options&&{headers:r.headers,body:r.body},models:e.models&&Object.fromEntries(Object.entries(e.models).map(([o,s])=>[o,QLe(s,e.npm)]))}}i(ILe,"migrateProvider");function QLe(e,t){let r=e.provider?.npm??t,n=Vp.get(r),o=e.options&&n.request(e.options),s=e.cost&&[{input:e.cost.input,output:e.cost.output,cache:{read:e.cost.cache_read,write:e.cost.cache_write}},...e.cost.context_over_200k?[{tier:{type:"context",size:2e5},input:e.cost.context_over_200k.input,output:e.cost.context_over_200k.output,cache:{read:e.cost.context_over_200k.cache_read,write:e.cost.context_over_200k.cache_write}}]:[]],a=e.tool_call!==void 0||e.modalities?.input!==void 0||e.modalities?.output!==void 0?{tools:e.tool_call??!1,input:e.modalities?.input??[],output:e.modalities?.output??[]}:void 0;return{family:e.family,name:e.name,api:e.provider?.npm?{...e.id===void 0?{}:{id:e.id},type:"aisdk",package:e.provider.npm,...e.provider.api===void 0?{}:{url:e.provider.api},settings:{}}:e.id===void 0?void 0:{id:e.id},capabilities:a,request:(e.headers||o)&&{headers:e.headers,body:o},variants:e.variants&&Object.entries(e.variants).map(([l,A])=>({id:l,body:n.request(A)})),cost:s,disabled:e.status==="deprecated"?!0:void 0,limit:e.limit&&{context:sF(e.limit.context),input:e.limit.input===void 0?void 0:sF(e.limit.input),output:sF(e.limit.output)}}}i(QLe,"migrateModel");function sF(e){return Math.max(Number.MIN_SAFE_INTEGER,Math.min(Number.MAX_SAFE_INTEGER,Math.trunc(e)))}i(sF,"int");var xy=class extends c.Class("Config.Info")({$schema:c.optional(c.String).annotate({description:"JSON schema reference for configuration validation"}),shell:c.String.pipe(c.optional).annotate({description:"Default shell to use for terminal and shell tool execution"}),model:c.String.pipe(c.optional).annotate({description:"Default model to use when no session or agent model is selected"}),default_agent:c.String.pipe(c.optional).annotate({description:"Default primary agent to use when no session agent is selected"}),autoupdate:c.Union([c.Boolean,c.Literal("notify")]).pipe(c.optional).annotate({description:"Automatically update or notify when a new version is available"}),share:c.Literals(["manual","auto","disabled"]).pipe(c.optional).annotate({description:"Control whether sessions may be shared manually, automatically, or not at all"}),enterprise:c.Struct({url:c.String.pipe(c.optional)}).pipe(c.optional).annotate({description:"Enterprise sharing service configuration"}),username:c.String.pipe(c.optional).annotate({description:"Username displayed in conversations and used for telemetry identity"}),permissions:yu.Ruleset.pipe(c.optional).annotate({description:"Ordered tool permission rules applied to agent tool use"}),agents:c.Record(c.String,py.Info).pipe(c.optional).annotate({description:"Named built-in agent overrides and custom agent definitions"}),snapshots:c.Boolean.pipe(c.optional).annotate({description:"Enable snapshots used for undo and revert behavior"}),watcher:By.Info.pipe(c.optional).annotate({description:"Filesystem watcher configuration"}),formatter:Ey.Info.pipe(c.optional).annotate({description:"Enable built-in formatters or configure formatter overrides"}),lsp:yy.Info.pipe(c.optional).annotate({description:"Enable built-in language servers or configure server overrides"}),attachments:hy.Info.pipe(c.optional).annotate({description:"Attachment processing configuration"}),tool_output:Qy.Info.pipe(c.optional).annotate({description:"Tool output truncation thresholds"}),mcp:Cy.Info.pipe(c.optional).annotate({description:"MCP server configuration"}),compaction:gy.Info.pipe(c.optional).annotate({description:"Conversation compaction behavior"}),skills:c.String.pipe(c.Array,c.optional).annotate({description:"Additional paths or URLs to discover skills from"}),commands:c.Record(c.String,my.Info).pipe(c.optional).annotate({description:"Named slash command definitions"}),instructions:c.String.pipe(c.Array,c.optional).annotate({description:"Additional paths or URLs supplying ambient instructions"}),references:Bl.Info.pipe(c.optional).annotate({description:"Named local directories or Git repositories available as external context"}),plugins:Iy.Plugins.pipe(c.optional).annotate({description:"Ordered external plugin packages to load"}),experimental:mu.Experimental.pipe(c.optional),providers:c.Record(c.String,Cu.Info).pipe(c.optional)}){static{i(this,"Info")}},Jw=class extends c.Class("Config.Document")({type:c.Literal("document"),path:c.String.pipe(c.optional),info:xy}){static{i(this,"Document")}},jw=class extends c.Class("Config.Directory")({type:c.Literal("directory"),path:qe}){static{i(this,"Directory")}};function BLe(e,t){return e.filter(r=>r.type==="document").findLast(r=>r.info[t]!==void 0)?.info[t]}i(BLe,"latest");var Gp=class extends ce.Service()("@opencode/v2/Config"){static{i(this,"Service")}},x7=se.effect(Gp,E.gen(function*(){let e=yield*Ni.Service,t=yield*ms.Service,r=yield*ki.Service,n=yield*po.Service,o=["opencode.json","opencode.jsonc"],s={errors:"all",onExcessProperty:"ignore",propertyOrder:"original"},a=c.decodeUnknownOption(xy,s),l=c.decodeUnknownOption(fy.Info,s),A=E.fnUntraced(function*(B){let I=yield*e.readFileStringSafe(B);if(!I)return;let S=[],T=k6(I,S,{allowTrailingComma:!0});if(S.length)return;let w=Je.getOrUndefined(Yp.isV1(T)?l(T).pipe(Je.map(Yp.migrate),Je.flatMap(a)):a(T));if(w)return new Jw({type:"document",path:B,info:w})}),u=E.fnUntraced(function*(B){return[...yield*E.forEach(o,I=>A(by.join(B,I))).pipe(E.map(I=>I.filter(S=>S!==void 0))),new jw({type:"directory",path:B})]}),f=qe.make(t.config),p=by.resolve(r.directory)===by.resolve(t.config)?[]:yield*e.up({targets:[".opencode",...o.toReversed()],start:r.directory,stop:r.project.directory}).pipe(E.orDie),h=[f,...p.filter(B=>by.basename(B)===".opencode").toReversed().map(B=>qe.make(B))],g=p.filter(B=>by.basename(B)!==".opencode").toReversed(),m=yield*E.forEach(g,A).pipe(E.orDie,E.map(B=>B.filter(I=>I!==void 0))),Q=yield*E.forEach(h,u).pipe(E.orDie),C=[...Q[0]??[],...m,...Q.slice(1).flat()];return yield*n.load(C.filter(B=>B.type==="document").toReversed().flatMap(B=>B.info.experimental?.policies??[])),Gp.of({entries:E.fn("Config.entries")(function*(){return C})})})),SLe=x7.pipe(se.provideMerge(po.locationLayer)),wLe=bi({service:Gp,layer:x7,deps:[Ni.node,ms.node,ki.node,po.node]});export{Vn as a,HO as b,wo as c,ct as d,Yn as e,Ji as f,It as g,id as h,za as i,cee as j,cd as k,Th as l,ud as m,dd as n,hee as o,bo as p,ji as q,kh as r,gd as s,Wn as t,pte as u,Cte as v,vP as w,ec as x,Wr as y,Dr as z,Ote as A,lx as B,Vte as C,Yte as D,Lh as E,jte as F,Kte as G,Gs as H,xo as I,xx as J,Nx as K,oH as L,ZC as M,PMe as N,HMe as O,zMe as P,Ue as Q,fi as R,Ane as S,une as T,dne as U,Id as V,eT as W,Mne as X,AI as Y,GC as Z,tc as _,PH as $,HH as aa,zh as ba,VH as ca,tie as da,Rd as ea,Gl as fa,J1 as ga,LA as ha,At as ia,bi as ja,hv as ka,He as la,he as ma,io as na,qe as oa,O as pa,ze as qa,cn as ra,Cr as sa,Zk as ta,sBe as ua,MB as va,Dm as wa,MA as xa,wt as ya,so as za,Se as Aa,ps as Ba,bt as Ca,Ut as Da,Nt as Ea,kt as Fa,A7 as Ga,u7 as Ha,rLe as Ia,yu as Ja,gu as Ka,ln as La,vn as Ma,ey as Na,y as Oa,Re as Pa,qc as Qa,ht as Ra,hs as Sa,_c as Ta,la as Ua,Of as Va,Pf as Wa,Hf as Xa,Vc as Ya,Yc as Za,Yf as _a,zr as $a,Wc as ab,Fn as bb,Tv as cb,at as db,fa as eb,kv as fb,Lv as gb,Mv as hb,Hm as ib,pv as jb,vr as kb,jc as lb,ms as mb,HVe as nb,ZB as ob,qVe as pb,Yo as qb,Or as rb,Ar as sb,hw as tb,gw as ub,y9 as vb,Te as wb,ip as xb,Wbe as yb,h6e as zb,LS as Ab,ha as Bb,Xv as Cb,Go as Db,Wo as Eb,$be as Fb,FS as Gb,tL as Hb,rL as Ib,US as Jb,Ti as Kb,ga as Lb,dE as Mb,il as Nb,yE as Ob,Kr as Pb,T9 as Qb,JA as Rb,jA as Sb,Jo as Tb,t7e as Ub,X9 as Vb,Fxe as Wb,Uxe as Xb,Oxe as Yb,cl as Zb,Yxe as _b,XA as $b,Ap as ac,d3 as bc,d7e as cc,dp as dc,fp as ec,R3 as fc,tRe as gc,JS as hc,jS as ic,zS as jc,bE as kc,QL as lc,U3 as mc,iRe as nc,BL as oc,Ni as pc,e5 as qc,qE as rc,nM as sc,_E as tc,Ip as uc,i5 as vc,GNe as wc,Qp as xc,s5 as yc,oM as zc,a5 as Ac,c5 as Bc,l5 as Cc,A5 as Dc,u5 as Ec,d5 as Fc,f5 as Gc,p5 as Hc,h5 as Ic,g5 as Jc,m5 as Kc,E5 as Lc,y5 as Mc,C5 as Nc,I5 as Oc,Q5 as Pc,B5 as Qc,WNe as Rc,ut as Sc,ou as Tc,GE as Uc,xp as Vc,Ca as Wc,Krt as Xc,Xrt as Yc,Iw as Zc,XNe as _c,dt as $c,ml as ad,au as bd,ki as cd,dM as dd,du as ed,Qke as fd,fu as gd,JE as hd,V5 as id,Y5 as jd,G5 as kd,QM as ld,BM as md,W5 as nd,Bke as od,Ske as pd,wke as qd,bke as rd,jE as sd,Ia as td,Qa as ud,ww as vd,bw as wd,e6 as xd,t6 as yd,r6 as zd,n6 as Ad,o6 as Bd,i6 as Cd,s6 as Dd,a6 as Ed,c6 as Fd,RM as Gd,DM as Hd,l6 as Id,A6 as Jd,u6 as Kd,d6 as Ld,f6 as Md,p6 as Nd,h6 as Od,g6 as Pd,m6 as Qd,E6 as Rd,y6 as Sd,C6 as Td,Q6 as Ud,NM as Vd,Rke as Wd,Dke as Xd,Nke as Yd,kke as Zd,kM as _d,vM as $d,vke as ae,Sw as be,Pke as ce,zE as de,Wot as ee,LM as fe,Sa as ge,kp as he,po as ie,Il as je,Ql as ke,ry as le,k6 as me,yit as ne,Cit as oe,Iit as pe,py as qe,my as re,yn as se,ny as te,oy as ue,ay as ve,cy as we,fy as xe,Vp as ye,Yp as ze,aF as Ae};
|
|
251
|
+
`.indexOf(e.charAt(t))!==-1}i(XE,"isEOL");var ZE;(function(e){e.DEFAULT={allowTrailingComma:!1}})(ZE||(ZE={}));function x6(e,t=[],r=ZE.DEFAULT){let n=null,o=[],s=[];function a(A){Array.isArray(o)?o.push(A):n!==null&&(o[n]=A)}return i(a,"onValue"),HM(e,{onObjectBegin:i(()=>{let A={};a(A),s.push(o),o=A,n=null},"onObjectBegin"),onObjectProperty:i(A=>{n=A},"onObjectProperty"),onObjectEnd:i(()=>{o=s.pop()},"onObjectEnd"),onArrayBegin:i(()=>{let A=[];a(A),s.push(o),o=A,n=null},"onArrayBegin"),onArrayEnd:i(()=>{o=s.pop()},"onArrayEnd"),onLiteralValue:a,onError:i((A,u,f)=>{t.push({error:A,offset:u,length:f})},"onError")},r),o[0]}i(x6,"parse");function PM(e,t=[],r=ZE.DEFAULT){let n={type:"array",offset:-1,length:-1,children:[],parent:void 0};function o(A){n.type==="property"&&(n.length=A-n.offset,n=n.parent)}i(o,"ensurePropertyComplete");function s(A){return n.children.push(A),A}i(s,"onValue"),HM(e,{onObjectBegin:i(A=>{n=s({type:"object",offset:A,length:-1,parent:n,children:[]})},"onObjectBegin"),onObjectProperty:i((A,u,f)=>{n=s({type:"property",offset:u,length:-1,parent:n,children:[]}),n.children.push({type:"string",value:A,offset:u,length:f,parent:n})},"onObjectProperty"),onObjectEnd:i((A,u)=>{o(A+u),n.length=A+u-n.offset,n=n.parent,o(A+u)},"onObjectEnd"),onArrayBegin:i((A,u)=>{n=s({type:"array",offset:A,length:-1,parent:n,children:[]})},"onArrayBegin"),onArrayEnd:i((A,u)=>{n.length=A+u-n.offset,n=n.parent,o(A+u)},"onArrayEnd"),onLiteralValue:i((A,u,f)=>{s({type:eve(A),offset:u,length:f,parent:n,value:A}),o(u+f)},"onLiteralValue"),onSeparator:i((A,u,f)=>{n.type==="property"&&(A===":"?n.colonOffset=u:A===","&&o(u))},"onSeparator"),onError:i((A,u,f)=>{t.push({error:A,offset:u,length:f})},"onError")},r);let l=n.children[0];return l&&delete l.parent,l}i(PM,"parseTree");function Tw(e,t){if(!e)return;let r=e;for(let n of t)if(typeof n=="string"){if(r.type!=="object"||!Array.isArray(r.children))return;let o=!1;for(let s of r.children)if(Array.isArray(s.children)&&s.children[0].value===n&&s.children.length===2){r=s.children[1],o=!0;break}if(!o)return}else{let o=n;if(r.type!=="array"||o<0||!Array.isArray(r.children)||o>=r.children.length)return;r=r.children[o]}return r}i(Tw,"findNodeAtLocation");function HM(e,t,r=ZE.DEFAULT){let n=KE(e,!1),o=[],s=0;function a(F){return F?()=>s===0&&F(n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter()):()=>!0}i(a,"toNoArgVisit");function l(F){return F?q=>s===0&&F(q,n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter()):()=>!0}i(l,"toOneArgVisit");function A(F){return F?q=>s===0&&F(q,n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter(),()=>o.slice()):()=>!0}i(A,"toOneArgVisitWithPath");function u(F){return F?()=>{s>0?s++:F(n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter(),()=>o.slice())===!1&&(s=1)}:()=>!0}i(u,"toBeginVisit");function f(F){return F?()=>{s>0&&s--,s===0&&F(n.getTokenOffset(),n.getTokenLength(),n.getTokenStartLine(),n.getTokenStartCharacter())}:()=>!0}i(f,"toEndVisit");let d=u(t.onObjectBegin),p=A(t.onObjectProperty),h=f(t.onObjectEnd),g=u(t.onArrayBegin),m=f(t.onArrayEnd),Q=A(t.onLiteralValue),C=l(t.onSeparator),B=a(t.onComment),I=l(t.onError),S=r&&r.disallowComments,T=r&&r.allowTrailingComma;function w(){for(;;){let F=n.scan();switch(n.getTokenError()){case 4:b(14);break;case 5:b(15);break;case 3:b(13);break;case 1:S||b(11);break;case 2:b(12);break;case 6:b(16);break}switch(F){case 12:case 13:S?b(10):B();break;case 16:b(1);break;case 15:case 14:break;default:return F}}}i(w,"scanNext");function b(F,q=[],z=[]){if(I(F),q.length+z.length>0){let ye=n.getToken();for(;ye!==17;){if(q.indexOf(ye)!==-1){w();break}else if(z.indexOf(ye)!==-1)break;ye=w()}}}i(b,"handleError");function D(F){let q=n.getTokenValue();return F?Q(q):(p(q),o.push(q)),w(),!0}i(D,"parseString");function N(){switch(n.getToken()){case 11:let F=n.getTokenValue(),q=Number(F);isNaN(q)&&(b(2),q=0),Q(q);break;case 7:Q(null);break;case 8:Q(!0);break;case 9:Q(!1);break;default:return!1}return w(),!0}i(N,"parseLiteral");function M(){return n.getToken()!==10?(b(3,[],[2,5]),!1):(D(!1),n.getToken()===6?(C(":"),w(),G()||b(4,[],[2,5])):b(5,[],[2,5]),o.pop(),!0)}i(M,"parseProperty");function V(){d(),w();let F=!1;for(;n.getToken()!==2&&n.getToken()!==17;){if(n.getToken()===5){if(F||b(4,[],[]),C(","),w(),n.getToken()===2&&T)break}else F&&b(6,[],[]);M()||b(4,[],[2,5]),F=!0}return h(),n.getToken()!==2?b(7,[2],[]):w(),!0}i(V,"parseObject");function j(){g(),w();let F=!0,q=!1;for(;n.getToken()!==4&&n.getToken()!==17;){if(n.getToken()===5){if(q||b(4,[],[]),C(","),w(),n.getToken()===4&&T)break}else q&&b(6,[],[]);F?(o.push(0),F=!1):o[o.length-1]++,G()||b(4,[],[4,5]),q=!0}return m(),F||o.pop(),n.getToken()!==4?b(8,[4],[]):w(),!0}i(j,"parseArray");function G(){switch(n.getToken()){case 3:return j();case 1:return V();case 10:return D(!0);default:return N()}}return i(G,"parseValue"),w(),n.getToken()===17?r.allowEmptyContent?!0:(b(4,[],[]),!1):G()?(n.getToken()!==17&&b(9,[],[]),!0):(b(4,[],[]),!1)}i(HM,"visit");function eve(e){switch(typeof e){case"boolean":return"boolean";case"number":return"number";case"string":return"string";case"object":{if(e){if(Array.isArray(e))return"array"}else return"null";return"object"}default:return"null"}}i(eve,"getNodeType");function T6(e,t,r,n){let o=t.slice(),a=PM(e,[]),l,A;for(;o.length>0&&(A=o.pop(),l=Tw(a,o),l===void 0&&r!==void 0);)typeof A=="string"?r={[A]:r}:r=[r];if(l)if(l.type==="object"&&typeof A=="string"&&Array.isArray(l.children)){let u=Tw(l,[A]);if(u!==void 0)if(r===void 0){if(!u.parent)throw new Error("Malformed AST");let f=l.children.indexOf(u.parent),d,p=u.parent.offset+u.parent.length;if(f>0){let h=l.children[f-1];d=h.offset+h.length}else d=l.offset+1,l.children.length>1&&(p=l.children[1].offset);return hu(e,{offset:d,length:p-d,content:""},n)}else return hu(e,{offset:u.offset,length:u.length,content:JSON.stringify(r)},n);else{if(r===void 0)return[];let f=`${JSON.stringify(A)}: ${JSON.stringify(r)}`,d=n.getInsertionIndex?n.getInsertionIndex(l.children.map(h=>h.children[0].value)):l.children.length,p;if(d>0){let h=l.children[d-1];p={offset:h.offset+h.length,length:0,content:","+f}}else l.children.length===0?p={offset:l.offset+1,length:0,content:f}:p={offset:l.offset+1,length:0,content:f+","};return hu(e,p,n)}}else if(l.type==="array"&&typeof A=="number"&&Array.isArray(l.children)){let u=A;if(u===-1){let f=`${JSON.stringify(r)}`,d;if(l.children.length===0)d={offset:l.offset+1,length:0,content:f};else{let p=l.children[l.children.length-1];d={offset:p.offset+p.length,length:0,content:","+f}}return hu(e,d,n)}else if(r===void 0&&l.children.length>=0){let f=A,d=l.children[f],p;if(l.children.length===1)p={offset:l.offset+1,length:l.length-2,content:""};else if(l.children.length-1===f){let h=l.children[f-1],g=h.offset+h.length,m=l.offset+l.length;p={offset:g,length:m-2-g,content:""}}else p={offset:d.offset,length:l.children[f+1].offset-d.offset,content:""};return hu(e,p,n)}else if(r!==void 0){let f,d=`${JSON.stringify(r)}`;if(!n.isArrayInsertion&&l.children.length>A){let p=l.children[A];f={offset:p.offset,length:p.length,content:d}}else if(l.children.length===0||A===0)f={offset:l.offset+1,length:0,content:l.children.length===0?d:d+","};else{let p=A>l.children.length?l.children.length:A,h=l.children[p-1];f={offset:h.offset+h.length,length:0,content:","+d}}return hu(e,f,n)}else throw new Error(`Can not ${r===void 0?"remove":n.isArrayInsertion?"insert":"modify"} Array index ${u} as length is not sufficient`)}else throw new Error(`Can not add ${typeof A!="number"?"index":"property"} to parent of type ${l.type}`);else{if(r===void 0)throw new Error("Can not delete in empty document");return hu(e,{offset:a?a.offset:0,length:a?a.length:0,content:JSON.stringify(r)},n)}}i(T6,"setProperty");function hu(e,t,r){if(!r.formattingOptions)return[t];let n=Rw(e,t),o=t.offset,s=t.offset+t.content.length;if(t.length===0||t.content.length===0){for(;o>0&&!XE(n,o-1);)o--;for(;s<n.length&&!XE(n,s);)s++}let a=OM(n,{offset:o,length:s-o},{...r.formattingOptions,keepLines:!1});for(let A=a.length-1;A>=0;A--){let u=a[A];n=Rw(n,u),o=Math.min(o,u.offset),s=Math.max(s,u.offset+u.length),s+=u.content.length-u.length}let l=e.length-(n.length-s)-o;return[{offset:o,length:l,content:n.substring(o,s)}]}i(hu,"withFormatting");function Rw(e,t){return e.substring(0,t.offset)+t.content+e.substring(t.offset+t.length)}i(Rw,"applyEdit");var R6;(function(e){e[e.None=0]="None",e[e.UnexpectedEndOfComment=1]="UnexpectedEndOfComment",e[e.UnexpectedEndOfString=2]="UnexpectedEndOfString",e[e.UnexpectedEndOfNumber=3]="UnexpectedEndOfNumber",e[e.InvalidUnicode=4]="InvalidUnicode",e[e.InvalidEscapeCharacter=5]="InvalidEscapeCharacter",e[e.InvalidCharacter=6]="InvalidCharacter"})(R6||(R6={}));var D6;(function(e){e[e.OpenBraceToken=1]="OpenBraceToken",e[e.CloseBraceToken=2]="CloseBraceToken",e[e.OpenBracketToken=3]="OpenBracketToken",e[e.CloseBracketToken=4]="CloseBracketToken",e[e.CommaToken=5]="CommaToken",e[e.ColonToken=6]="ColonToken",e[e.NullKeyword=7]="NullKeyword",e[e.TrueKeyword=8]="TrueKeyword",e[e.FalseKeyword=9]="FalseKeyword",e[e.StringLiteral=10]="StringLiteral",e[e.NumericLiteral=11]="NumericLiteral",e[e.LineCommentTrivia=12]="LineCommentTrivia",e[e.BlockCommentTrivia=13]="BlockCommentTrivia",e[e.LineBreakTrivia=14]="LineBreakTrivia",e[e.Trivia=15]="Trivia",e[e.Unknown=16]="Unknown",e[e.EOF=17]="EOF"})(D6||(D6={}));var k6=x6;var N6;(function(e){e[e.InvalidSymbol=1]="InvalidSymbol",e[e.InvalidNumberFormat=2]="InvalidNumberFormat",e[e.PropertyNameExpected=3]="PropertyNameExpected",e[e.ValueExpected=4]="ValueExpected",e[e.ColonExpected=5]="ColonExpected",e[e.CommaExpected=6]="CommaExpected",e[e.CloseBraceExpected=7]="CloseBraceExpected",e[e.CloseBracketExpected=8]="CloseBracketExpected",e[e.EndOfFileExpected=9]="EndOfFileExpected",e[e.InvalidCommentToken=10]="InvalidCommentToken",e[e.UnexpectedEndOfComment=11]="UnexpectedEndOfComment",e[e.UnexpectedEndOfString=12]="UnexpectedEndOfString",e[e.UnexpectedEndOfNumber=13]="UnexpectedEndOfNumber",e[e.InvalidUnicode=14]="InvalidUnicode",e[e.InvalidEscapeCharacter=15]="InvalidEscapeCharacter",e[e.InvalidCharacter=16]="InvalidCharacter"})(N6||(N6={}));function yit(e){switch(e){case 1:return"InvalidSymbol";case 2:return"InvalidNumberFormat";case 3:return"PropertyNameExpected";case 4:return"ValueExpected";case 5:return"ColonExpected";case 6:return"CommaExpected";case 7:return"CloseBraceExpected";case 8:return"CloseBracketExpected";case 9:return"EndOfFileExpected";case 10:return"InvalidCommentToken";case 11:return"UnexpectedEndOfComment";case 12:return"UnexpectedEndOfString";case 13:return"UnexpectedEndOfNumber";case 14:return"InvalidUnicode";case 15:return"InvalidEscapeCharacter";case 16:return"InvalidCharacter"}return"<unknown ParseErrorCode>"}i(yit,"printParseErrorCode");function Cit(e,t,r,n){return T6(e,t,r,n)}i(Cit,"modify");function Iit(e,t){let r=t.slice(0).sort((o,s)=>{let a=o.offset-s.offset;return a===0?o.length-s.length:a}),n=e.length;for(let o=r.length-1;o>=0;o--){let s=r[o];if(s.offset+s.length<=n)e=Rw(e,s);else throw new Error("Overlapping edit");n=s.offset}return e}i(Iit,"applyEdits");var ey={};J(ey,{ConfigMCPV1:()=>ey,Info:()=>nve,Local:()=>v6,OAuth:()=>L6,Remote:()=>M6});var v6=c.Struct({type:c.Literal("local").annotate({description:"Type of MCP server connection"}),command:c.mutable(c.Array(c.String)).annotate({description:"Command and arguments to run the MCP server"}),cwd:c.optional(c.String).annotate({description:"Working directory for the MCP server process. Relative paths resolve from the workspace directory."}),environment:c.optional(c.Record(c.String,c.String)).annotate({description:"Environment variables to set when running the MCP server"}),enabled:c.optional(c.Boolean).annotate({description:"Enable or disable the MCP server on startup"}),timeout:c.optional(He).annotate({description:"Timeout in ms for MCP server requests. Defaults to 5000 (5 seconds) if not specified."})}).annotate({identifier:"McpLocalConfig"}),L6=c.Struct({clientId:c.optional(c.String).annotate({description:"OAuth client ID. If not provided, dynamic client registration (RFC 7591) will be attempted."}),clientSecret:c.optional(c.String).annotate({description:"OAuth client secret (if required by the authorization server)"}),scope:c.optional(c.String).annotate({description:"OAuth scopes to request during authorization"}),callbackPort:c.optional(c.Int.check(c.isBetween({minimum:1,maximum:65535}))).annotate({description:"Port for the local OAuth callback server (default: 19876). Shorthand for redirectUri when only the port needs changing. Ignored if redirectUri is set."}),redirectUri:c.optional(c.String).annotate({description:"OAuth redirect URI (default: http://127.0.0.1:19876/mcp/oauth/callback)."})}).annotate({identifier:"McpOAuthConfig"}),M6=c.Struct({type:c.Literal("remote").annotate({description:"Type of MCP server connection"}),url:c.String.annotate({description:"URL of the remote MCP server"}),enabled:c.optional(c.Boolean).annotate({description:"Enable or disable the MCP server on startup"}),headers:c.optional(c.Record(c.String,c.String)).annotate({description:"Headers to send with the request"}),oauth:c.optional(c.Union([L6,c.Literal(!1)])).annotate({description:"OAuth authentication configuration for the MCP server. Set to false to disable OAuth auto-detection."}),timeout:c.optional(He).annotate({description:"Timeout in ms for MCP server requests. Defaults to 5000 (5 seconds) if not specified."})}).annotate({identifier:"McpRemoteConfig"}),nve=c.Union([v6,M6]).annotate({discriminator:"type"});var fy={};J(fy,{ConfigV1:()=>fy,Info:()=>Zve,WellKnown:()=>Kve});var mu={};J(mu,{ConfigExperimental:()=>mu,Experimental:()=>WM,Policy:()=>vw,PolicyAction:()=>Y6});var ny={};J(ny,{Catalog:()=>ny,Event:()=>_6,PolicyActions:()=>Dve,Service:()=>Pp,locationLayer:()=>kve,node:()=>vve});var ty={};J(ty,{Catalog:()=>ty,Event:()=>ove});var F6=wt({type:"catalog.updated",schema:{}}),ove={Updated:F6,Definitions:so(F6)};var po={};J(po,{Effect:()=>U6,Info:()=>qM,Policy:()=>po,Service:()=>Fp,locationLayer:()=>ive,node:()=>sve});var U6=c.Literals(["allow","deny"]).annotate({identifier:"Policy.Effect"}),qM=class extends c.Class("Policy.Info")({action:c.String,effect:U6,resource:c.String}){static{i(this,"Info")}},Fp=class extends ce.Service()("@opencode/v2/Policy"){static{i(this,"Service")}},O6=se.effect(Fp,E.gen(function*(){let e=[];return yield*ki.Service,Fp.of({load:E.fn("Policy.load")(function*(t){e=t}),hasStatements:i(()=>e.length>0,"hasStatements"),evaluate:E.fn("Policy.evaluate")(function*(t,r,n){return e.findLast(o=>kp.match(t,o.action)&&kp.match(r,o.resource))?.effect??n})})})),ive=O6,sve=bi({service:Fp,layer:O6,deps:[ki.node]});var gu={};J(gu,{State:()=>gu,batch:()=>ave,create:()=>cve});var Dw=ce.Reference("@opencode/State/CurrentBatch",{defaultValue:i(()=>{},"defaultValue")});function ave(e){return E.gen(function*(){if(yield*Dw)return yield*e;let r=new Set,n=yield*e.pipe(E.provideService(Dw,r));return yield*E.forEach(r,o=>o(),{discard:!0}),n})}i(ave,"batch");function cve(e){let t=e.initial(),r=[],n=vl.makeUnsafe(1),o=E.fn("State.commit")(function*(u){let f=e.draft(u);e.finalize&&(yield*e.finalize(f)),t=u}),s=i((u,f)=>E.suspend(()=>{let d=u(f);return E.isEffect(d)?E.asVoid(d).pipe(E.orDie):E.void}),"apply"),a=E.fnUntraced(function*(){let u=e.initial(),f=e.draft(u);for(let d of r)yield*s(d.run,f).pipe(E.withSpan("State.reload.update"));yield*o(u)}),l=i(()=>n.withPermit(a()),"reload");return{get:i(()=>t,"get"),transform:E.fn("State.transform")(function*(u){let f=yield*ur.Scope;return yield*E.uninterruptible(E.gen(function*(){let d={run:u},p=!0,h=E.uninterruptible(n.withPermit(E.suspend(()=>p?(p=!1,r=r.filter(m=>m!==d),E.gen(function*(){let m=yield*Dw;if(m){m.add(l);return}yield*a()})):E.void)));yield*n.withPermit(E.sync(()=>{r=[...r,d]})),yield*ur.addFinalizer(f,h);let g=yield*Dw;return g?g.add(l):yield*l(),{dispose:h}}))}),reload:l}}i(cve,"create");var Ql={};J(Ql,{Attempt:()=>H6,AttemptID:()=>GM,AttemptStatus:()=>wve,AuthorizationError:()=>kw,CodeRequiredError:()=>Nw,EnvMethod:()=>Qve,Event:()=>xs,ID:()=>pve,Info:()=>P6,Inputs:()=>Sve,Integration:()=>Ql,KeyMethod:()=>Ive,Method:()=>Bve,MethodID:()=>hve,OAuthMethod:()=>Cve,Prompt:()=>yve,Ref:()=>bve,SelectPrompt:()=>Eve,Service:()=>Op,TextPrompt:()=>mve,When:()=>gve,locationLayer:()=>q6,node:()=>Rve});var Il={};J(Il,{Credential:()=>Il,ID:()=>_M,Info:()=>ry,Key:()=>Ave,OAuth:()=>lve,Service:()=>Up,Value:()=>VM,node:()=>dve});var En=fa("credential",{id:at().$type().primaryKey(),integration_id:at().$type(),label:at().notNull(),value:at({mode:"json"}).$type().notNull(),connector_id:at(),method_id:at(),active:Fn({mode:"boolean"}),...Iw});var _M=ps.ID,lve=ps.OAuth,Ave=ps.Key,VM=ps.Value,ry=class extends c.Class("Credential.Info")({id:_M,integrationID:bt.ID,label:c.String,value:VM}){static{i(this,"Info")}},Up=class extends ce.Service()("@opencode/v2/Credential"){static{i(this,"Service")}},uve=se.effect(Up,E.gen(function*(){let{db:e}=yield*Yo.Service,t=c.decodeUnknownSync(VM),r=i(n=>{if(n.integration_id)return new ry({id:n.id,integrationID:n.integration_id,label:n.label,value:t(n.value)})},"stored");return Up.of({all:E.fn("Credential.all")(function*(){return(yield*e.select().from(En).orderBy(zr(En.time_created)).all().pipe(E.orDie)).flatMap(n=>{let o=r(n);return o?[o]:[]})}),list:E.fn("Credential.list")(function*(n){return(yield*e.select().from(En).where(Re(En.integration_id,n)).orderBy(zr(En.time_created)).all().pipe(E.orDie)).flatMap(o=>{let s=r(o);return s?[s]:[]})}),get:E.fn("Credential.get")(function*(n){let o=yield*e.select().from(En).where(Re(En.id,n)).get().pipe(E.orDie);return o?r(o):void 0}),create:E.fn("Credential.create")(function*(n){let o=new ry({id:_M.create(),integrationID:n.integrationID,label:n.label??"default",value:n.value});return yield*e.transaction(s=>E.gen(function*(){yield*s.delete(En).where(Re(En.integration_id,o.integrationID)).run(),yield*s.insert(En).values({id:o.id,integration_id:o.integrationID,label:o.label,value:o.value}).run()})).pipe(E.orDie),o}),update:E.fn("Credential.update")(function*(n,o){!o.label&&!o.value||(yield*e.update(En).set({label:o.label,value:o.value}).where(Re(En.id,n)).run().pipe(E.orDie))}),remove:E.fn("Credential.remove")(function*(n){yield*e.delete(En).where(Re(En.id,n)).run().pipe(E.orDie)})})})),dve=At({service:Up,layer:uve,deps:[Yo.node]});var Wit=sa.CredentialInfo,Jit=sa.EnvInfo,jit=sa.Info;var pve=bt.ID,hve=bt.MethodID,GM=bt.AttemptID,gve=bt.When,mve=bt.TextPrompt,Eve=bt.SelectPrompt,yve=bt.Prompt,Cve=bt.OAuthMethod,Ive=bt.KeyMethod,Qve=bt.EnvMethod,Bve=bt.Method,P6=bt.Info,Sve=bt.Inputs,H6=bt.Attempt,wve=bt.AttemptStatus,Nw=class extends c.TaggedErrorClass()("Integration.CodeRequired",{attemptID:GM}){static{i(this,"CodeRequiredError")}},kw=class extends c.TaggedErrorClass()("Integration.Authorization",{cause:c.Defect()}){static{i(this,"AuthorizationError")}},xs=bt.Event,bve=bt.Ref,Op=class extends ce.Service()("@opencode/v2/Integration"){static{i(this,"Service")}},xve=Io.toMillis(Io.minutes(10)),YM=Io.toMillis(Io.minutes(1)),Tve=Io.seconds(30),q6=se.effect(Op,E.gen(function*(){let e=yield*Il.Service,t=yield*Sa.Service,r=yield*ur.Scope,n=Wa.makeUnsafe(new Map),o=gu.create({initial:i(()=>({integrations:new Map}),"initial"),draft:i(p=>({list:i(()=>Array.from(p.integrations.values(),h=>h.ref),"list"),get:i(h=>p.integrations.get(h)?.ref,"get"),update:i((h,g)=>{let m=p.integrations.get(h)??{ref:{id:h,name:h},methods:[],implementations:new Map};p.integrations.has(h)||p.integrations.set(h,m),g(m.ref),m.ref.id=h},"update"),remove:i(h=>p.integrations.delete(h),"remove"),method:{list:i(h=>p.integrations.get(h)?.methods??[],"list"),update:i(h=>{let g=p.integrations.get(h.integrationID)??{ref:{id:h.integrationID,name:h.integrationID},methods:[],implementations:new Map};p.integrations.has(h.integrationID)||p.integrations.set(h.integrationID,g);let m=g.methods.findIndex(Q=>Q.type!==h.method.type?!1:Q.type!=="oauth"||h.method.type!=="oauth"?!0:Q.id===h.method.id);m===-1?g.methods.push(h.method):g.methods[m]=h.method,h.method.type==="oauth"&&g.implementations.set(h.method.id,h)},"update"),remove:i((h,g)=>{let m=p.integrations.get(h);if(!m)return;let Q=m.methods.findIndex(C=>C.type!==g.type?!1:C.type!=="oauth"||g.type!=="oauth"?!0:C.id===g.id);Q!==-1&&m.methods.splice(Q,1),g.type==="oauth"&&m.implementations.delete(g.id)},"remove")}}),"draft"),finalize:i(()=>t.publish(xs.Updated,{}).pipe(E.asVoid),"finalize")}),s=i((p,h)=>{let g=h.map(Q=>({type:"credential",id:Q.id,label:Q.label})).toReversed(),m=(p?.methods??[]).filter(Q=>Q.type==="env").flatMap(Q=>Q.names.filter(C=>process.env[C])).map(Q=>({type:"env",name:Q}));return[...g,...m]},"resolveConnections"),a=i((p,h)=>new P6({id:p.ref.id,name:p.ref.name,methods:p.methods,connections:h}),"project"),l=i(p=>p.pipe(E.mapError(h=>new kw({cause:h}))),"authorize"),A=i(p=>ur.close(p,qr.void).pipe(E.forkIn(r,{startImmediately:!0}),E.asVoid),"close"),u=i(p=>{let h=vt.squash(p);return h instanceof Error?h.message:String(h)},"message"),f=E.fnUntraced(function*(p,h){let g=yield*$p.currentTimeMillis,m=yield*Wa.modify(n,Q=>{let C=Q.get(p);if(!C||C.status!=="pending")return[void 0,Q];let B=qr.isSuccess(h)?{status:"complete",time:C.time,removeAt:g+YM}:{status:"failed",message:u(h.cause),time:C.time,removeAt:g+YM};return[C,new Map(Q).set(p,B)]});if(m){if(qr.isSuccess(h)){let Q=o.get().integrations.get(m.integrationID)?.implementations.get(m.methodID);yield*e.create({integrationID:m.integrationID,label:m.label??Q?.label?.(h.value),value:h.value}),yield*t.publish(xs.ConnectionUpdated,{integrationID:m.integrationID}),yield*t.publish(xs.Updated,{})}yield*A(m.scope)}});return yield*E.fnUntraced(function*(){let p=yield*$p.currentTimeMillis,h=yield*Wa.modify(n,g=>{let m=new Map(g),Q=[];for(let[C,B]of g){if(B.status==="pending"&&B.time.expires<=p){Q.push(B.scope),m.set(C,{status:"expired",time:B.time,removeAt:p+YM});continue}B.status!=="pending"&&B.removeAt<=p&&m.delete(C)}return[Q,m]});yield*E.forEach(h,A,{discard:!0})})().pipe(E.repeat(cb.spaced(Tve)),E.forkIn(r)),Op.of({transform:o.transform,reload:o.reload,get:E.fn("Integration.get")(function*(p){let h=o.get().integrations.get(p);if(h)return a(h,s(h,yield*e.list(p)))}),list:E.fn("Integration.list")(function*(){let p=Map.groupBy(yield*e.all(),h=>h.integrationID);return Array.from(o.get().integrations.values(),h=>a(h,s(h,p.get(h.ref.id)??[]))).toSorted((h,g)=>h.name.localeCompare(g.name))}),connection:{active:E.fn("Integration.connection.active")(function*(p){let h=o.get().integrations.get(p);return s(h,yield*e.list(p))[0]}),resolve:E.fn("Integration.connection.resolve")(function*(p){if(p.type==="env"){let C=process.env[p.name];return C?Il.Key.make({type:"key",key:C}):void 0}let h=yield*e.get(p.id);if(!h)return;if(h.value.type==="key")return h.value;let g=o.get().integrations.get(h.integrationID)?.implementations.get(h.value.methodID);if(!g?.refresh)return h.value;let m=yield*$p.currentTimeMillis;if(h.value.expires>m+Io.toMillis(Io.minutes(5)))return h.value;let Q=yield*l(g.refresh(h.value));return yield*e.update(h.id,{value:Q}),Q}),key:E.fn("Integration.connection.key")(function*(p){if(!o.get().integrations.get(p.integrationID)?.methods.some(g=>g.type==="key"))return yield*E.die(`Key method not found: ${p.integrationID}`);yield*e.create({integrationID:p.integrationID,label:p.label,value:Il.Key.make({type:"key",key:p.key})}),yield*t.publish(xs.ConnectionUpdated,{integrationID:p.integrationID}),yield*t.publish(xs.Updated,{})}),oauth:E.fn("Integration.connection.oauth")(function*(p){let h=o.get().integrations.get(p.integrationID)?.implementations.get(p.methodID);if(!h)return yield*E.die(`OAuth method not found: ${p.integrationID}/${p.methodID}`);let g=yield*ur.fork(r),m=yield*l(h.authorize(p.inputs)).pipe(ur.provide(g),E.onExit(I=>qr.isFailure(I)?ur.close(g,I):E.void)),Q=GM.create(),C=yield*$p.currentTimeMillis,B={created:C,expires:C+xve};return yield*Wa.update(n,I=>new Map(I).set(Q,{status:"pending",completing:m.mode==="auto",authorization:m,integrationID:p.integrationID,methodID:p.methodID,label:p.label,scope:g,time:B})),m.mode==="auto"&&(yield*m.callback.pipe(E.exit,E.flatMap(I=>f(Q,I)),E.forkIn(g,{startImmediately:!0}))),new H6({attemptID:Q,url:m.url,instructions:m.instructions,mode:m.mode,time:B})}),update:E.fn("Integration.connection.update")(function*(p,h){let g=yield*e.get(p);yield*e.update(p,h),g&&(yield*t.publish(xs.ConnectionUpdated,{integrationID:g.integrationID})),yield*t.publish(xs.Updated,{})}),remove:E.fn("Integration.connection.remove")(function*(p){let h=yield*e.get(p);yield*e.remove(p),h&&(yield*t.publish(xs.ConnectionUpdated,{integrationID:h.integrationID})),yield*t.publish(xs.Updated,{})})},attempt:{status:E.fn("Integration.attempt.status")(function*(p){let h=(yield*Wa.get(n)).get(p);return h?h.status==="failed"?{status:h.status,message:h.message??"Authorization failed",time:h.time}:{status:h.status,time:h.time}:yield*E.die(`OAuth attempt not found: ${p}`)}),complete:E.fn("Integration.attempt.complete")(function*(p){let h=yield*Wa.modify(n,Q=>{let C=Q.get(p.attemptID);return!C||C.status!=="pending"||C.completing?[C,Q]:C.authorization.mode==="code"&&p.code===void 0?[C,Q]:[C,new Map(Q).set(p.attemptID,{...C,completing:!0})]});if(!h)return yield*E.die(`OAuth attempt not found: ${p.attemptID}`);if(h.status!=="pending")return;if(h.authorization.mode==="code"&&p.code===void 0)return yield*new Nw({attemptID:p.attemptID});if(h.completing)return yield*E.die(`OAuth attempt already completing: ${p.attemptID}`);let g=h.authorization.mode==="auto"?h.authorization.callback:h.authorization.callback(p.code),m=yield*l(g).pipe(E.exit);if(yield*f(p.attemptID,m),qr.isFailure(m))return yield*m}),cancel:E.fn("Integration.attempt.cancel")(function*(p){let h=yield*Wa.modify(n,g=>{let m=g.get(p);if(!m||m.status!=="pending")return[void 0,g];let Q=new Map(g);return Q.delete(p),[m,Q]});h&&(yield*ur.close(h.scope,qr.void))})}})})),Rve=bi({service:Op,layer:q6,deps:[Il.node,Sa.node]});var Dve=c.Literals(["provider.use"]),_6=ty.Event,Pp=class extends ce.Service()("@opencode/v2/Catalog"){static{i(this,"Service")}},V6=se.effect(Pp,E.gen(function*(){let e=yield*Sa.Service,t=yield*po.Service,r=yield*Ql.Service,n=i((A,u)=>A.disabled?!1:typeof A.request.body.apiKey=="string"||u?.connections.length?!0:A.integrationID===void 0&&!u,"available"),o=i((A,u)=>{let f=A.api.type==="native"&&!A.api.url&&Object.keys(A.api.settings).length===0?{...u.api,id:A.api.id}:A.api.type==="aisdk"&&u.api.type==="aisdk"&&!A.api.url?{...A.api,url:u.api.url,settings:{...u.api.settings,...A.api.settings}}:A.api.type==="aisdk"&&u.api.type==="aisdk"?{...A.api,settings:{...u.api.settings,...A.api.settings}}:A.api,d={headers:{...u.request.headers,...A.request.headers},body:{...u.request.body,...A.request.body},variant:A.request.variant};return vn.Info.make({...A,api:f,request:d})},"projectModel"),s=i(A=>{typeof A.request.body.baseURL=="string"&&(A.api.url=A.request.body.baseURL,delete A.request.body.baseURL)},"normalizeApi"),a=gu.create({initial:i(()=>({providers:new Map}),"initial"),draft:i(A=>({provider:{list:i(()=>Pt.fromIterable(A.providers.values()),"list"),get:i(f=>A.providers.get(f),"get"),update:i((f,d)=>{let p=A.providers.get(f);p||(p={provider:ln.Info.empty(f),models:new Map},A.providers.set(f,p)),d(p.provider),s(p.provider)},"update"),remove:i(f=>{A.providers.delete(f)},"remove")},model:{get:i((f,d)=>A.providers.get(f)?.models.get(d),"get"),update:i((f,d,p)=>{let h=A.providers.get(f);h||(h={provider:ln.Info.empty(f),models:new Map},A.providers.set(f,h));let g=h.models.get(d)??vn.Info.empty(f,d);h.models.has(d)||h.models.set(d,g),p(g),g.id=d,g.providerID=f,s(g)},"update"),remove:i((f,d)=>{A.providers.get(f)?.models.delete(d)},"remove"),default:{get:i(()=>A.defaultModel,"get"),set:i((f,d)=>{A.defaultModel={providerID:f,modelID:d}},"set")}}}),"draft"),finalize:E.fn("CatalogV2.finalize")(function*(A){if(t.hasStatements())for(let u of[...A.provider.list()])(yield*t.evaluate("provider.use",u.provider.id,"allow"))==="deny"&&A.provider.remove(u.provider.id);yield*e.publish(_6.Updated,{})})}),l={transform:a.transform,reload:a.reload,provider:{get:E.fn("CatalogV2.provider.get")(function*(A){return a.get().providers.get(A)?.provider}),all:E.fn("CatalogV2.provider.all")(function*(){return Pt.fromIterable(a.get().providers.values()).map(A=>A.provider)}),available:E.fn("CatalogV2.provider.available")(function*(){let A=new Map((yield*r.list()).map(u=>[u.id,u]));return(yield*l.provider.all()).filter(u=>n(u,A.get(u.integrationID??Ql.ID.make(u.id))))})},model:{get:E.fn("CatalogV2.model.get")(function*(A,u){let f=a.get().providers.get(A);if(!f)return;let d=f.models.get(u);return d&&o(d,f.provider)}),all:E.fn("CatalogV2.model.all")(function*(){return Mi(Pt.fromIterable(a.get().providers.values()),Pt.flatMap(A=>Pt.fromIterable(A.models.values()).map(u=>o(u,A.provider))),Pt.sortWith(A=>A.time.released,Bu.flip(Bu.Number)))}),available:E.fn("CatalogV2.model.available")(function*(){let A=new Set((yield*l.provider.available()).map(u=>u.id));return(yield*l.model.all()).filter(u=>A.has(u.providerID)&&u.enabled)}),default:E.fn("CatalogV2.model.default")(function*(){let A=a.get().defaultModel;if(A){let u=yield*l.provider.get(A.providerID);if(u&&(yield*l.provider.available()).some(f=>f.id===u.id)){let f=yield*l.model.get(A.providerID,A.modelID);if(f?.enabled)return f}}return Je.getOrUndefined(Mi(yield*l.model.available(),Pt.sortWith(u=>u.time.released,Bu.flip(Bu.Number)),Pt.head))}),small:E.fn("CatalogV2.model.small")(function*(A){let u=a.get().providers.get(A);if(!u)return;let f=u.provider;if(A===ln.ID.azure||A===ln.ID.make("azure-cognitive-services"))return;if(A===ln.ID.opencode){let h=u.models.get(vn.ID.make("gpt-5-nano"));if(h?.enabled&&h.status==="active")return o(h,f)}let d=Mi(Pt.fromIterable(u.models.values()),Pt.filter(h=>h.providerID===A&&h.enabled&&h.status==="active"&&h.capabilities.input.some(g=>g.startsWith("text"))&&h.capabilities.output.some(g=>g.startsWith("text"))),Pt.map(h=>({model:h,cost:h.cost[0]?h.cost[0].input+h.cost[0].output:999,age:(Date.now()-h.time.released)/(1e3*60*60*24*30),small:Nve.test(`${h.id} ${h.family??""} ${h.name}`.toLowerCase())})),Pt.filter(h=>h.cost>0&&h.age<=18)),p=i(h=>{let g=Math.max(...h.map(Q=>Q.cost),.01),m=Math.max(...h.map(Q=>Q.age),.01);return Mi(h,Pt.sortWith(Q=>Q.cost/g*.8+Q.age/m*.2,Bu.Number),Pt.map(Q=>o(Q.model,f)),Pt.head)},"pick");return Je.getOrUndefined(Mi(d,Pt.filter(h=>h.small),h=>h.length>0?p(h):p(d)))})}};return Pp.of(l)})),Nve=/\b(nano|flash|lite|mini|haiku|small|fast)\b/,kve=V6.pipe(se.provideMerge(Ql.locationLayer),se.provideMerge(po.locationLayer)),vve=bi({service:Pp,layer:V6,deps:[Sa.node,po.node,Ql.node]});var Y6=c.Union([ny.PolicyActions]),vw=class extends c.Class("ConfigV2.Experimental.Policy")({...po.Info.fields,action:Y6}){static{i(this,"Policy")}},WM=class extends c.Class("ConfigV2.Experimental")({policies:vw.pipe(c.Array,c.optional)}){static{i(this,"Experimental")}};var Bl={};J(Bl,{ConfigReference:()=>Bl,Entry:()=>G6,Git:()=>Lw,Info:()=>Lve,Local:()=>Mw});var Lw=class extends c.Class("ConfigV2.Reference.Git")({repository:c.String,branch:c.String.pipe(c.optional),description:c.String.pipe(c.optional),hidden:c.Boolean.pipe(c.optional)}){static{i(this,"Git")}},Mw=class extends c.Class("ConfigV2.Reference.Local")({path:c.String,description:c.String.pipe(c.optional),hidden:c.Boolean.pipe(c.optional)}){static{i(this,"Local")}},G6=c.Union([c.String,Lw,Mw]),Lve=c.Record(c.String,G6);var yn={};J(yn,{ConfigAgentV1:()=>yn,Info:()=>qve});var Eu={};J(Eu,{Action:()=>wa,ConfigPermissionV1:()=>Eu,Info:()=>Uve,Object:()=>W6,Rule:()=>Xo});var wa=c.Literals(["ask","allow","deny"]).annotate({identifier:"PermissionActionConfig"}),W6=c.Record(c.String,wa).annotate({identifier:"PermissionObjectConfig"}),Xo=c.Union([wa,W6]).annotate({identifier:"PermissionRuleConfig"}),J6=c.StructWithRest(c.Struct({read:c.optional(Xo),edit:c.optional(Xo),glob:c.optional(Xo),grep:c.optional(Xo),list:c.optional(Xo),bash:c.optional(Xo),task:c.optional(Xo),external_directory:c.optional(Xo),todowrite:c.optional(wa),question:c.optional(wa),webfetch:c.optional(wa),websearch:c.optional(wa),lsp:c.optional(Xo),doom_loop:c.optional(wa),skill:c.optional(Xo)}),[c.Record(c.String,Xo)]),Mve=c.Union([wa,J6]),Fve=i(e=>typeof e=="string"?{"*":e}:e,"normalizeInput"),Uve=Mve.pipe(c.decodeTo(J6,{decode:ni.transform(Fve),encode:ni.passthrough({strict:!1})})).annotate({identifier:"PermissionConfig"});var Ove=c.Union([c.String.check(c.isPattern(/^#[0-9a-fA-F]{6}$/)),c.Literals(["primary","secondary","accent","success","warning","error","info"])]),j6=c.StructWithRest(c.Struct({model:c.optional(c.String),variant:c.optional(c.String).annotate({description:"Default model variant for this agent (applies only when using the agent's configured model)."}),temperature:c.optional(c.Finite),top_p:c.optional(c.Finite),prompt:c.optional(c.String),tools:c.optional(c.Record(c.String,c.Boolean)).annotate({description:"@deprecated Use 'permission' field instead"}),disable:c.optional(c.Boolean),description:c.optional(c.String).annotate({description:"Description of when to use the agent"}),mode:c.optional(c.Literals(["subagent","primary","all"])),hidden:c.optional(c.Boolean).annotate({description:"Hide this subagent from the @ autocomplete menu (default: false, only applies to mode: subagent)"}),options:c.optional(c.Record(c.String,c.Any)),color:c.optional(Ove).annotate({description:"Hex color code (e.g., #FF5733) or theme color (e.g., primary)"}),steps:c.optional(He).annotate({description:"Maximum number of agentic iterations before forcing text-only response"}),maxSteps:c.optional(He).annotate({description:"@deprecated Use 'steps' field instead."}),permission:c.optional(Eu.Info)}),[c.Record(c.String,c.Any)]),Pve=new Set(["name","model","variant","prompt","description","temperature","top_p","mode","hidden","color","steps","maxSteps","options","permission","disable","tools"]),Hve=i(e=>{let t={...e.options};for(let[o,s]of Object.entries(e))Pve.has(o)||(t[o]=s);let r={};for(let[o,s]of Object.entries(e.tools??{})){let a=s?"allow":"deny";if(o==="write"||o==="edit"||o==="patch"){r.edit=a;continue}r[o]=a}globalThis.Object.assign(r,e.permission);let n=e.steps??e.maxSteps;return{...e,options:t,permission:r,...n!==void 0?{steps:n}:{}}},"normalize"),qve=j6.pipe(c.decodeTo(j6,{decode:ni.transform(Hve),encode:ni.passthrough({strict:!1})})).annotate({identifier:"AgentConfig"});var oy={};J(oy,{ConfigAttachmentV1:()=>oy,Image:()=>z6,Info:()=>_ve});var z6=c.Struct({auto_resize:c.optional(c.Boolean).annotate({description:"Resize images before sending them to the model when they exceed configured limits (default: true)"}),max_width:c.optional(He).annotate({description:"Maximum image width before resizing or rejecting the attachment (default: 2000)"}),max_height:c.optional(He).annotate({description:"Maximum image height before resizing or rejecting the attachment (default: 2000)"}),max_base64_bytes:c.optional(He).annotate({description:"Maximum base64 payload bytes for an image attachment (default: 5242880)"})}).annotate({identifier:"ImageAttachmentConfig"}),_ve=c.Struct({image:c.optional(z6).annotate({description:"Image attachment configuration"})}).annotate({identifier:"AttachmentConfig"});var iy={};J(iy,{ConfigCommandV1:()=>iy,Info:()=>Vve});var Vve=c.Struct({template:c.String,description:c.optional(c.String),agent:c.optional(c.String),model:c.optional(c.String),variant:c.optional(c.String),subtask:c.optional(c.Boolean)});var sy={};J(sy,{ConfigFormatterV1:()=>sy,Entry:()=>$6,Info:()=>Yve});var $6=c.Struct({disabled:c.optional(c.Boolean),command:c.optional(c.mutable(c.Array(c.String))),environment:c.optional(c.Record(c.String,c.String)),extensions:c.optional(c.mutable(c.Array(c.String)))}),Yve=c.Union([c.Boolean,c.Record(c.String,$6)]);var ay={};J(ay,{ConfigLayoutV1:()=>ay,Layout:()=>Gve});var Gve=c.Literals(["auto","stretch"]).annotate({identifier:"LayoutConfig"});var cy={};J(cy,{ConfigLSPV1:()=>cy,Disabled:()=>K6,Entry:()=>X6,Info:()=>Wve,builtinServerIds:()=>Z6,requiresExtensionsForCustomServers:()=>e7});var K6=c.Struct({disabled:c.Literal(!0)}).pipe(e=>e),X6=c.Union([K6,c.Struct({command:c.mutable(c.Array(c.String)),extensions:c.optional(c.mutable(c.Array(c.String))),disabled:c.optional(c.Boolean),env:c.optional(c.Record(c.String,c.String)),initialization:c.optional(c.Record(c.String,c.Unknown))})]).pipe(e=>e),Z6=["deno","typescript","vue","eslint","oxlint","biome","gopls","ruby-lsp","ty","pyright","elixir-ls","zls","csharp","razor","fsharp","sourcekit-lsp","rust","clangd","svelte","astro","jdtls","kotlin-ls","yaml-ls","lua-ls","php intelephense","prisma","dart","ocaml-lsp","bash","terraform","texlab","dockerfile","gleam","clojure-lsp","nixd","tinymist","haskell-language-server","julials"],e7=c.makeFilter(e=>{if(typeof e=="boolean")return;let t=new Set(Z6);return Object.entries(e).every(([n,o])=>"disabled"in o&&o.disabled||t.has(n)?!0:"extensions"in o&&!!o.extensions)?void 0:"For custom LSP servers, 'extensions' array is required."}),Wve=c.Union([c.Boolean,c.Record(c.String,X6)]).check(e7).pipe(e=>e);var ly={};J(ly,{ConfigPluginV1:()=>ly,Options:()=>t7,Spec:()=>Jve});var t7=c.Record(c.String,c.Unknown),Jve=c.Union([c.String,c.mutable(c.Tuple([c.String,t7]))]);var Ay={};J(Ay,{ConfigProviderV1:()=>Ay,Info:()=>jve,Model:()=>o7,ModelStatus:()=>n7});var n7=c.Literals(["alpha","beta","deprecated","active"]),r7=c.Union([c.Literals(["reasoning","reasoning_content","reasoning_text"]),c.String]),o7=c.Struct({id:c.optional(c.String),name:c.optional(c.String),family:c.optional(c.String),release_date:c.optional(c.String),attachment:c.optional(c.Boolean),reasoning:c.optional(c.Boolean),temperature:c.optional(c.Boolean),tool_call:c.optional(c.Boolean),interleaved:c.optional(c.Union([c.Boolean,r7,c.Struct({field:r7})])),cost:c.optional(c.Struct({input:c.Finite,output:c.Finite,cache_read:c.optional(c.Finite),cache_write:c.optional(c.Finite),context_over_200k:c.optional(c.Struct({input:c.Finite,output:c.Finite,cache_read:c.optional(c.Finite),cache_write:c.optional(c.Finite)}))})),limit:c.optional(c.Struct({context:c.Finite,input:c.optional(c.Finite),output:c.Finite})),modalities:c.optional(c.Struct({input:c.optional(c.mutable(c.Array(c.Literals(["text","audio","image","video","pdf"])))),output:c.optional(c.mutable(c.Array(c.Literals(["text","audio","image","video","pdf"]))))})),experimental:c.optional(c.Boolean),status:c.optional(n7),provider:c.optional(c.Struct({npm:c.optional(c.String),api:c.optional(c.String)})),options:c.optional(c.Record(c.String,c.Any)),headers:c.optional(c.Record(c.String,c.String)),variants:c.optional(c.Record(c.String,c.StructWithRest(c.Struct({disabled:c.optional(c.Boolean).annotate({description:"Disable this variant for the model"})}),[c.Record(c.String,c.Any)])).annotate({description:"Variant-specific configuration"}))}),jve=c.Struct({api:c.optional(c.String),name:c.optional(c.String),env:c.optional(c.mutable(c.Array(c.String))),id:c.optional(c.String),npm:c.optional(c.String),whitelist:c.optional(c.mutable(c.Array(c.String))),blacklist:c.optional(c.mutable(c.Array(c.String))),options:c.optional(c.StructWithRest(c.Struct({apiKey:c.optional(c.String),baseURL:c.optional(c.String),enterpriseUrl:c.optional(c.String).annotate({description:"GitHub Enterprise URL for copilot authentication"}),setCacheKey:c.optional(c.Boolean).annotate({description:"Enable promptCacheKey for this provider (default false)"}),timeout:c.optional(c.Union([He,c.Literal(!1)]).annotate({description:"Timeout in milliseconds for full requests to this provider. Set to false to disable timeout."})).annotate({description:"Timeout in milliseconds for full requests to this provider. Set to false to disable timeout."}),headerTimeout:c.optional(c.Union([He,c.Literal(!1)]).annotate({description:"Timeout in milliseconds to wait for response headers (default: 300000). Set to false to disable timeout."})).annotate({description:"Timeout in milliseconds to wait for response headers (default: 300000). Set to false to disable timeout."}),chunkTimeout:c.optional(c.Union([He,c.Literal(!1)]).annotate({description:"Timeout in milliseconds between streamed SSE chunks for this provider (default: 300000). If no chunk arrives within this window, the request is aborted. Set to false to disable timeout."})).annotate({description:"Timeout in milliseconds between streamed SSE chunks for this provider (default: 300000). If no chunk arrives within this window, the request is aborted. Set to false to disable timeout."})}),[c.Record(c.String,c.Any)])),models:c.optional(c.Record(c.String,o7))}).annotate({identifier:"ProviderConfig"});var uy={};J(uy,{ConfigServerV1:()=>uy,Server:()=>zve});var zve=c.Struct({port:c.optional(He).annotate({description:"Port to listen on"}),hostname:c.optional(c.String).annotate({description:"Hostname to listen on"}),mdns:c.optional(c.Boolean).annotate({description:"Enable mDNS service discovery"}),mdnsDomain:c.optional(c.String).annotate({description:"Custom domain name for mDNS service (default: opencode.local)"}),cors:c.optional(c.mutable(c.Array(c.String))).annotate({description:"Additional domains to allow for CORS"})}).annotate({identifier:"ServerConfig"});var dy={};J(dy,{ConfigSkillsV1:()=>dy,Info:()=>$ve});var $ve=c.Struct({paths:c.optional(c.Array(c.String)).annotate({description:"Additional paths to skill folders"}),urls:c.optional(c.Array(c.String)).annotate({description:"URLs to fetch skills from (e.g., https://example.com/.well-known/skills/)"})});var Kve=c.Struct({config:c.optional(c.Json),remote_config:c.optional(c.Json)}),Xve=c.Literals(["DEBUG","INFO","WARN","ERROR"]).annotate({identifier:"LogLevel",description:"Log level"}),Zve=c.Struct({$schema:c.optional(c.String).annotate({description:"JSON schema reference for configuration validation"}),shell:c.optional(c.String).annotate({description:"Default shell to use for terminal and bash tool"}),logLevel:c.optional(Xve).annotate({description:"Log level"}),server:c.optional(uy.Server).annotate({description:"Server configuration for opencode serve and web commands"}),command:c.optional(c.Record(c.String,iy.Info)).annotate({description:"Command configuration, see https://opencode.ai/docs/commands"}),skills:c.optional(dy.Info).annotate({description:"Additional skill folder paths"}),references:c.optional(Bl.Info).annotate({description:"Named git or local directory references"}),reference:c.optional(Bl.Info).annotate({description:"@deprecated Use 'references' field instead. Named git or local directory references"}),watcher:c.optional(c.Struct({ignore:c.optional(c.mutable(c.Array(c.String)))})),snapshot:c.optional(c.Boolean).annotate({description:"Enable or disable snapshot tracking. When false, filesystem snapshots are not recorded and undoing or reverting will not undo/redo file changes. Defaults to true."}),plugin:c.optional(c.mutable(c.Array(ly.Spec))),share:c.optional(c.Literals(["manual","auto","disabled"])).annotate({description:"Control sharing behavior:'manual' allows manual sharing via commands, 'auto' enables automatic sharing, 'disabled' disables all sharing"}),autoshare:c.optional(c.Boolean).annotate({description:"@deprecated Use 'share' field instead. Share newly created sessions automatically"}),autoupdate:c.optional(c.Union([c.Boolean,c.Literal("notify")])).annotate({description:"Automatically update to the latest version. Set to true to auto-update, false to disable, or 'notify' to show update notifications"}),disabled_providers:c.optional(c.mutable(c.Array(c.String))).annotate({description:"Disable providers that are loaded automatically"}),enabled_providers:c.optional(c.mutable(c.Array(c.String))).annotate({description:"When set, ONLY these providers will be enabled. All other providers will be ignored"}),model:c.optional(c.String).annotate({description:"Model to use in the format of provider/model, eg anthropic/claude-2"}),small_model:c.optional(c.String).annotate({description:"Small model to use for tasks like title generation in the format of provider/model"}),default_agent:c.optional(c.String).annotate({description:"Default agent to use when none is specified. Must be a primary agent. Falls back to 'build' if not set or if the specified agent is invalid."}),subagent_depth:c.optional(he).annotate({description:"Maximum subagent nesting depth. Defaults to 1, which prevents subagents from launching subagents."}),username:c.optional(c.String).annotate({description:"Custom username to display in conversations instead of system username"}),mode:c.optional(c.StructWithRest(c.Struct({build:c.optional(yn.Info),plan:c.optional(yn.Info)}),[c.Record(c.String,yn.Info)])).annotate({description:"@deprecated Use `agent` field instead."}),agent:c.optional(c.StructWithRest(c.Struct({plan:c.optional(yn.Info),build:c.optional(yn.Info),general:c.optional(yn.Info),explore:c.optional(yn.Info),title:c.optional(yn.Info),summary:c.optional(yn.Info),compaction:c.optional(yn.Info)}),[c.Record(c.String,yn.Info)])).annotate({description:"Agent configuration, see https://opencode.ai/docs/agents"}),provider:c.optional(c.Record(c.String,Ay.Info)).annotate({description:"Custom provider configurations and model overrides"}),mcp:c.optional(c.Record(c.String,c.Union([ey.Info,c.Struct({enabled:c.Boolean})]))).annotate({description:"MCP (Model Context Protocol) server configurations"}),formatter:c.optional(sy.Info).annotate({description:"Enable or configure formatters. Omit or set to false to disable, true to enable built-ins, or an object to enable built-ins with overrides."}),lsp:c.optional(cy.Info).annotate({description:"Enable or configure LSP servers. Omit or set to false to disable, true to enable built-ins, or an object to enable built-ins with overrides."}),instructions:c.optional(c.mutable(c.Array(c.String))).annotate({description:"Additional instruction files or patterns to include"}),layout:c.optional(ay.Layout).annotate({description:"@deprecated Always uses stretch layout."}),permission:c.optional(Eu.Info),tools:c.optional(c.Record(c.String,c.Boolean)),attachment:c.optional(oy.Info).annotate({description:"Attachment processing configuration, including image size limits and resizing behavior"}),enterprise:c.optional(c.Struct({url:c.optional(c.String).annotate({description:"Enterprise URL"})})),tool_output:c.optional(c.Struct({max_lines:c.optional(He).annotate({description:"Maximum lines of tool output before it is truncated and saved to disk (default: 2000)"}),max_bytes:c.optional(He).annotate({description:"Maximum bytes of tool output before it is truncated and saved to disk (default: 51200)"})})).annotate({description:"Thresholds for truncating tool output. When output exceeds either limit, the full text is written to the truncation directory and a preview is returned."}),compaction:c.optional(c.Struct({auto:c.optional(c.Boolean).annotate({description:"Enable automatic compaction when context is full (default: true)"}),prune:c.optional(c.Boolean).annotate({description:"Enable pruning of old tool outputs (default: false)"}),tail_turns:c.optional(he).annotate({description:"Maximum number of recent user turns, including their following assistant/tool responses, to keep verbatim during compaction. By default retention is limited only by the preserved token budget."}),preserve_recent_tokens:c.optional(he).annotate({description:"Maximum number of tokens from recent turns to preserve verbatim after compaction"}),reserved:c.optional(he).annotate({description:"Token buffer for compaction. Leaves enough window to avoid overflow during compaction."}),anthropic:c.optional(c.Boolean).annotate({description:"Claude sessions compact with Anthropic's own compaction while their cache is warm, keeping the newest turns word for word (alchemy fork, session/anthropic-compaction.ts; default: false). ALCHEMYLAB_ANTHROPIC_COMPACTION, when set, wins."})})),experimental:c.optional(c.Struct({disable_paste_summary:c.optional(c.Boolean),batch_tool:c.optional(c.Boolean).annotate({description:"Enable the batch tool"}),openTelemetry:c.optional(c.Boolean).annotate({description:"Enable OpenTelemetry spans for AI SDK calls (using the 'experimental_telemetry' flag)"}),primary_tools:c.optional(c.mutable(c.Array(c.String))).annotate({description:"Tools that should only be available to primary agents."}),continue_loop_on_deny:c.optional(c.Boolean).annotate({description:"Continue the agent loop when a tool call is denied"}),mcp_timeout:c.optional(He).annotate({description:"Timeout in milliseconds for model context protocol (MCP) requests"}),policies:c.optional(c.mutable(c.Array(mu.Policy))).annotate({description:"Policy statements applied to supported resources, such as provider access"})}))}).annotate({identifier:"Config"});var aF={};J(aF,{Config:()=>aF,Directory:()=>jw,Document:()=>Jw,Info:()=>xy,Service:()=>Gp,latest:()=>BLe,locationLayer:()=>SLe,node:()=>wLe});import by from"path";var yu={};J(yu,{Effect:()=>A7,Event:()=>tLe,ID:()=>JM,Permission:()=>yu,Reply:()=>l7,Request:()=>c7,Rule:()=>u7,Ruleset:()=>rLe,Source:()=>a7});var JM=c.String.check(c.isStartsWith("per")).pipe(c.brand("PermissionV2.ID"),ze(e=>({create:i(t=>e.make(t??"per_"+Cr()),"create")}))),a7=c.Union([c.Struct({type:c.Literal("tool"),messageID:c.String,callID:c.String})]).annotate({identifier:"PermissionV2.Source"}),eLe={sessionID:kt,action:c.String,resources:c.Array(c.String),save:c.Array(c.String).pipe(O),metadata:c.Record(c.String,c.Unknown).pipe(O),source:a7.pipe(O)},c7=c.Struct({id:JM,...eLe}).annotate({identifier:"PermissionV2.Request"}),l7=c.Literals(["once","always","reject"]).annotate({identifier:"PermissionV2.Reply"}),i7=wt({type:"permission.v2.asked",schema:c7.fields}),s7=wt({type:"permission.v2.replied",schema:{sessionID:kt,requestID:JM,reply:l7}}),tLe={Asked:i7,Replied:s7,Definitions:so(i7,s7)},A7=c.Literals(["allow","deny","ask"]).annotate({identifier:"PermissionV2.Effect"}),u7=c.Struct({action:c.String,resource:c.String,effect:A7}).annotate({identifier:"PermissionV2.Rule"}),rLe=c.Array(u7).annotate({identifier:"PermissionV2.Ruleset"});var py={};J(py,{Color:()=>d7,ConfigAgent:()=>py,Info:()=>XM});var Cu={};J(Cu,{ConfigProvider:()=>Cu,Info:()=>KM,Request:()=>Hp});var Hp=class extends c.Class("ConfigV2.Provider.Request")({headers:c.Record(c.String,c.String).pipe(c.optional),body:c.Record(c.String,c.Unknown).pipe(c.optional)}){static{i(this,"Request")}},jM=class extends c.Class("ConfigV2.Model.Cost.Cache")({read:c.Finite.pipe(c.optional),write:c.Finite.pipe(c.optional)}){static{i(this,"Cache")}},Fw=class extends c.Class("ConfigV2.Model.Cost")({tier:c.Struct({type:c.Literal("context"),size:c.Int}).pipe(c.optional),input:c.Finite,output:c.Finite,cache:jM.pipe(c.optional)}){static{i(this,"Cost")}},zM=class extends c.Class("ConfigV2.Model.Limit")({context:c.Int.pipe(c.optional),input:c.Int.pipe(c.optional),output:c.Int.pipe(c.optional)}){static{i(this,"Limit")}},nLe=c.Union([c.Struct({id:vn.ID.pipe(c.optional),...ln.AISDK.fields}),c.Struct({id:vn.ID.pipe(c.optional),...ln.Native.fields}),c.Struct({id:vn.ID})]),$M=class extends c.Class("ConfigV2.Model")({family:vn.Family.pipe(c.optional),name:c.String.pipe(c.optional),api:nLe.pipe(c.optional),capabilities:vn.Capabilities.pipe(c.optional),request:c.Struct({...Hp.fields,variant:c.String.pipe(c.optional)}).pipe(c.optional),variants:c.Struct({id:vn.VariantID,...Hp.fields}).pipe(c.Array,c.optional),cost:c.Union([Fw,Fw.pipe(c.Array)]).pipe(c.optional),disabled:c.Boolean.pipe(c.optional),limit:zM.pipe(c.optional)}){static{i(this,"Model")}},KM=class extends c.Class("ConfigV2.Provider")({name:c.String.pipe(c.optional),env:c.String.pipe(c.Array,c.optional),api:ln.Api.pipe(c.optional),request:Hp.pipe(c.optional),models:c.Record(c.String,$M).pipe(c.optional)}){static{i(this,"Info")}};var d7=c.Union([c.String.check(c.isPattern(/^#[0-9a-fA-F]{6}$/)),c.Literals(["primary","secondary","accent","success","warning","error","info"])]),XM=class extends c.Class("ConfigV2.Agent")({model:c.String.pipe(c.optional),variant:c.String.pipe(c.optional),request:Cu.Request.pipe(c.optional),system:c.String.pipe(c.optional),description:c.String.pipe(c.optional),mode:c.Literals(["subagent","primary","all"]).pipe(c.optional),hidden:c.Boolean.pipe(c.optional),color:d7.pipe(c.optional),steps:He.pipe(c.optional),disabled:c.Boolean.pipe(c.optional),permissions:yu.Ruleset.pipe(c.optional)}){static{i(this,"Info")}};var hy={};J(hy,{ConfigAttachments:()=>hy,Image:()=>Uw,Info:()=>ZM});var Uw=class extends c.Class("ConfigV2.Attachments.Image")({auto_resize:c.Boolean.pipe(c.optional),max_width:He.pipe(c.optional),max_height:He.pipe(c.optional),max_base64_bytes:He.pipe(c.optional)}){static{i(this,"Image")}},ZM=class extends c.Class("ConfigV2.Attachments")({image:Uw.pipe(c.optional)}){static{i(this,"Info")}};var gy={};J(gy,{ConfigCompaction:()=>gy,Info:()=>eF,Keep:()=>Ow});var Ow=class extends c.Class("ConfigV2.Compaction.Keep")({tokens:he.pipe(c.optional)}){static{i(this,"Keep")}},eF=class extends c.Class("ConfigV2.Compaction")({auto:c.Boolean.pipe(c.optional),prune:c.Boolean.pipe(c.optional),keep:Ow.pipe(c.optional),buffer:he.pipe(c.optional)}){static{i(this,"Info")}};var my={};J(my,{ConfigCommand:()=>my,Info:()=>tF});var tF=class extends c.Class("ConfigV2.Command")({template:c.String,description:c.String.pipe(c.optional),agent:c.String.pipe(c.optional),model:c.String.pipe(c.optional),variant:c.String.pipe(c.optional),subtask:c.Boolean.pipe(c.optional)}){static{i(this,"Info")}};var Ey={};J(Ey,{ConfigFormatter:()=>Ey,Entry:()=>Pw,Info:()=>oLe});var Pw=class extends c.Class("ConfigV2.Formatter.Entry")({disabled:c.Boolean.pipe(c.optional),command:c.String.pipe(c.Array,c.optional),environment:c.Record(c.String,c.String).pipe(c.optional),extensions:c.String.pipe(c.Array,c.optional)}){static{i(this,"Entry")}},oLe=c.Union([c.Boolean,c.Record(c.String,Pw)]);var yy={};J(yy,{ConfigLSP:()=>yy,Disabled:()=>f7,Entry:()=>p7,Info:()=>iLe,Server:()=>Hw});var f7=c.Struct({disabled:c.Literal(!0)}),Hw=class extends c.Class("ConfigV2.LSP.Server")({command:c.String.pipe(c.Array),extensions:c.String.pipe(c.Array,c.optional),disabled:c.Boolean.pipe(c.optional),env:c.Record(c.String,c.String).pipe(c.optional),initialization:c.Record(c.String,c.Unknown).pipe(c.optional)}){static{i(this,"Server")}},p7=c.Union([f7,Hw]),iLe=c.Union([c.Boolean,c.Record(c.String,p7)]);var Cy={};J(Cy,{ConfigMCP:()=>Cy,Info:()=>rF,Local:()=>qw,OAuth:()=>_w,Remote:()=>Vw,Server:()=>h7,Timeout:()=>qp});var qp=class extends c.Class("ConfigV2.MCP.Timeout")({startup:He.pipe(c.optional).annotate({description:"Maximum time in milliseconds to establish and initialize the MCP server."}),request:He.pipe(c.optional).annotate({description:"Maximum time in milliseconds to wait for each MCP request after initialization."})}){static{i(this,"Timeout")}},qw=class extends c.Class("ConfigV2.MCP.Local")({type:c.Literal("local"),command:c.String.pipe(c.Array),cwd:c.String.pipe(c.optional).annotate({description:"Working directory for the MCP server process. Relative paths resolve from the workspace directory."}),environment:c.Record(c.String,c.String).pipe(c.optional),disabled:c.Boolean.pipe(c.optional),timeout:qp.pipe(c.optional)}){static{i(this,"Local")}},_w=class extends c.Class("ConfigV2.MCP.OAuth")({client_id:c.String.pipe(c.optional),client_secret:c.String.pipe(c.optional),scope:c.String.pipe(c.optional),callback_port:c.Int.check(c.isBetween({minimum:1,maximum:65535})).pipe(c.optional),redirect_uri:c.String.pipe(c.optional)}){static{i(this,"OAuth")}},Vw=class extends c.Class("ConfigV2.MCP.Remote")({type:c.Literal("remote"),url:c.String,headers:c.Record(c.String,c.String).pipe(c.optional),oauth:c.Union([_w,c.Literal(!1)]).pipe(c.optional),disabled:c.Boolean.pipe(c.optional),timeout:qp.pipe(c.optional)}){static{i(this,"Remote")}},h7=c.Union([qw,Vw]).pipe(c.toTaggedUnion("type")),rF=class extends c.Class("ConfigV2.MCP")({timeout:qp.pipe(c.optional),servers:c.Record(c.String,h7).pipe(c.optional)}){static{i(this,"Info")}};var Iy={};J(Iy,{ConfigPlugin:()=>Iy,Entry:()=>Yw,Plugin:()=>g7,Plugins:()=>sLe});var Yw=class extends c.Class("ConfigV2.Plugin.Entry")({package:c.String,options:c.Record(c.String,c.Unknown).pipe(c.optional)}){static{i(this,"Entry")}},g7=c.Union([c.String,Yw]),sLe=g7.pipe(c.Array);var Qy={};J(Qy,{ConfigToolOutput:()=>Qy,Info:()=>nF});var nF=class extends c.Class("ConfigV2.ToolOutput")({max_lines:He.pipe(c.optional),max_bytes:He.pipe(c.optional)}){static{i(this,"Info")}};var By={};J(By,{ConfigWatcher:()=>By,Info:()=>oF});var oF=class extends c.Class("ConfigV2.Watcher")({ignore:c.String.pipe(c.Array,c.optional)}){static{i(this,"Info")}};var Yp={};J(Yp,{ConfigMigrateV1:()=>Yp,isV1:()=>pLe,migrate:()=>hLe,migrateAgent:()=>b7});var Vp={};J(Vp,{ConfigProviderOptionsV1:()=>Vp,get:()=>aLe});function aLe(e){let t=e??"";return Object.hasOwn(y7,t)?y7[t]:cLe}i(aLe,"get");var cLe={provider(e){return{body:Gw(e)}},request:Gw},C7={provider(e){return{url:Rs(e.baseURL),headers:Ww({Authorization:S7(e.apiKey),"OpenAI-Organization":Rs(e.organization),"OpenAI-Project":Rs(e.project),...wy(e.headers)}),body:Sy(e.body),settings:_p(e,["apiKey","baseURL","organization","project","headers","body"])}},request(e){let t=Q7(e);return(e.reasoningEffort!==void 0||e.reasoningSummary!==void 0)&&(t.reasoning={...Iu(t.reasoning)?t.reasoning:{},...e.reasoningEffort!==void 0?{effort:e.reasoningEffort}:{},...e.reasoningSummary!==void 0?{summary:e.reasoningSummary}:{}},delete t.reasoning_effort,delete t.reasoning_summary),e.textVerbosity!==void 0&&(t.text={...Iu(t.text)?t.text:{},verbosity:e.textVerbosity},delete t.text_verbosity),t}},m7={provider(e){return{url:Rs(e.baseURL),headers:Ww({"x-api-key":Rs(e.apiKey),Authorization:e.authToken?S7(e.authToken):void 0,...wy(e.headers)}),body:Sy(e.body),settings:_p(e,["apiKey","authToken","baseURL","headers","body"])}},request(e){let t=Q7(e);return(e.effort!==void 0||e.taskBudget!==void 0)&&(t.output_config=dLe({effort:e.effort,task_budget:e.taskBudget}),delete t.effort,delete t.task_budget),Iu(e.metadata)&&e.metadata.userId!==void 0&&(t.metadata={...Iu(t.metadata)?t.metadata:{},user_id:e.metadata.userId}),t}},E7={provider(e){return{url:Rs(e.baseURL),headers:Ww({"x-goog-api-key":Rs(e.apiKey),...wy(e.headers)}),body:Sy(e.body),settings:_p(e,["apiKey","baseURL","headers","body"])}},request(e){let t=uLe(e,["thinkingConfig","responseModalities","mediaResolution","imageConfig"]);return{..._p(e,["thinkingConfig","responseModalities","mediaResolution","imageConfig"]),...Object.keys(t).length?{generationConfig:t}:{}}}},lLe={provider(e){return{url:Rs(e.baseURL),headers:Ww({"api-key":Rs(e.apiKey),...wy(e.headers)}),body:Sy(e.body),settings:_p(e,["apiKey","baseURL","headers","body"])}},request:C7.request},ALe={provider(e){return I7(e)},request(e){return{additionalModelRequestFields:Gw(e)}}},Ts={provider(e){return{...I7(e,["baseURL"]),url:Rs(e.baseURL)}},request(e){let t=Gw(e);return e.reasoningEffort!==void 0&&(t.reasoning_effort=e.reasoningEffort,delete t.reasoningEffort),t}},y7={"@ai-sdk/openai":C7,"@ai-sdk/anthropic":m7,"@ai-sdk/google-vertex/anthropic":m7,"@ai-sdk/google":E7,"@ai-sdk/google-vertex":E7,"@ai-sdk/azure":lLe,"@ai-sdk/amazon-bedrock":ALe,"@ai-sdk/openai-compatible":Ts,"@ai-sdk/cerebras":Ts,"@ai-sdk/deepinfra":Ts,"@ai-sdk/groq":Ts,"@ai-sdk/mistral":Ts,"@ai-sdk/togetherai":Ts,"@ai-sdk/xai":Ts,"@openrouter/ai-sdk-provider":Ts,"ai-gateway-provider":Ts,"venice-ai-sdk-provider":Ts};function I7(e,t=[]){return{headers:wy(e.headers),body:Sy(e.body),settings:_p(e,["headers","body",...t])}}i(I7,"direct");function Sy(e){if(Iu(e))return{...e}}i(Sy,"body");function Q7(e){return Object.fromEntries(Object.entries(e).map(([t,r])=>[B7(t),iF(r)]))}i(Q7,"snake");function iF(e){return Array.isArray(e)?e.map(iF):Iu(e)?Object.fromEntries(Object.entries(e).map(([t,r])=>[B7(t),iF(r)])):e}i(iF,"snakeValue");function B7(e){return e.replace(/[A-Z]/g,t=>"_"+t.toLowerCase())}i(B7,"snakeKey");function Gw(e){return{...e}}i(Gw,"clone");function _p(e,t){return Object.fromEntries(Object.entries(e).filter(([r])=>!t.includes(r)))}i(_p,"omit");function uLe(e,t){return Object.fromEntries(Object.entries(e).filter(([r])=>t.includes(r)))}i(uLe,"pick");function wy(e){if(Iu(e))return Object.fromEntries(Object.entries(e).filter(t=>typeof t[1]=="string"))}i(wy,"headers");function Ww(e){let t=Object.entries(e).filter(r=>r[1]!==void 0);return t.length?Object.fromEntries(t):void 0}i(Ww,"compact");function dLe(e){return Object.fromEntries(Object.entries(e).filter(t=>t[1]!==void 0))}i(dLe,"compactUnknown");function Rs(e){return typeof e=="string"&&e?e:void 0}i(Rs,"string");function S7(e){return typeof e=="string"&&e?`Bearer ${e}`:void 0}i(S7,"bearer");function Iu(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}i(Iu,"isRecord");var fLe=new Set(["logLevel","server","command","reference","snapshot","plugin","autoshare","disabled_providers","enabled_providers","small_model","mode","agent","provider","permission","tools","attachment","layout"]);function pLe(e){return typeof e!="object"||e===null||Array.isArray(e)?!1:Object.keys(e).some(t=>fLe.has(t))}i(pLe,"isV1");function hLe(e){return{$schema:e.$schema,shell:e.shell,model:e.model,default_agent:e.default_agent,autoupdate:e.autoupdate,share:e.share??(e.autoshare?"auto":void 0),enterprise:e.enterprise,username:e.username,permissions:w7(e.permission,e.tools),agents:mLe(e),snapshots:e.snapshot,watcher:e.watcher,formatter:e.formatter,lsp:e.lsp,attachments:e.attachment,tool_output:e.tool_output,mcp:ELe(e),compaction:e.compaction&&{auto:e.compaction.auto,prune:e.compaction.prune,keep:{tokens:e.compaction.preserve_recent_tokens},buffer:e.compaction.reserved},skills:e.skills&&[...e.skills.paths??[],...e.skills.urls??[]],commands:e.command,instructions:e.instructions,references:e.references??e.reference,plugins:e.plugin?.map(t=>typeof t=="string"?t:{package:t[0],options:t[1]}),experimental:e.experimental?.policies&&{policies:e.experimental.policies},providers:CLe(e.provider)}}i(hLe,"migrate");function w7(e,t){let r=Object.entries(t??{}).map(([n,o])=>({action:gLe(n),resource:"*",effect:o?"allow":"deny"}));for(let[n,o]of Object.entries(e??{}))if(o){if(typeof o=="string"){r.push({action:n,resource:"*",effect:o});continue}r.push(...Object.entries(o).map(([s,a])=>({action:n,resource:s,effect:a})))}return r.length?r:void 0}i(w7,"permissions");function gLe(e){return e==="write"||e==="patch"?"edit":e}i(gLe,"normalizeAction");function mLe(e){let t=[...Object.entries(e.agent??{}),...Object.entries(e.mode??{}).map(([r,n])=>[r,{...n,mode:"primary"}])];if(t.length)return Object.fromEntries(t.flatMap(([r,n])=>n?[[r,b7(n)]]:[]))}i(mLe,"agents");function b7(e){let t={...e.options,...e.temperature===void 0?{}:{temperature:e.temperature},...e.top_p===void 0?{}:{top_p:e.top_p}};return{model:e.model,variant:e.variant,request:Object.keys(t).length?{body:t}:void 0,system:e.prompt,description:e.description,mode:e.mode,hidden:e.hidden,color:e.color,steps:e.steps,disabled:e.disable,permissions:w7(e.permission)}}i(b7,"migrateAgent");function ELe(e){let t=Object.fromEntries(Object.entries(e.mcp??{}).flatMap(([n,o])=>"type"in o?[[n,yLe(o)]]:[])),r=e.experimental?.mcp_timeout;if(!(!r&&!Object.keys(t).length))return{timeout:r===void 0?void 0:{request:r},servers:t}}i(ELe,"mcp");function yLe(e){let t=e.enabled===void 0?void 0:!e.enabled;return e.type==="local"?{type:e.type,command:e.command,cwd:e.cwd,environment:e.environment,disabled:t,timeout:e.timeout===void 0?void 0:{request:e.timeout}}:{type:e.type,url:e.url,headers:e.headers,oauth:e.oauth&&{client_id:e.oauth.clientId,client_secret:e.oauth.clientSecret,scope:e.oauth.scope,callback_port:e.oauth.callbackPort,redirect_uri:e.oauth.redirectUri},disabled:t,timeout:e.timeout===void 0?void 0:{request:e.timeout}}}i(yLe,"migrateMcp");function CLe(e){if(e)return Object.fromEntries(Object.entries(e).map(([t,r])=>[t,ILe(r)]))}i(CLe,"providers");function ILe(e){let r=Vp.get(e.npm).provider(e.options??{}),n=e.api??r.url;return{name:e.name,env:e.env,api:e.npm?{type:"aisdk",package:e.npm,...n===void 0?{}:{url:n},settings:r.settings??{}}:void 0,request:e.options&&{headers:r.headers,body:r.body},models:e.models&&Object.fromEntries(Object.entries(e.models).map(([o,s])=>[o,QLe(s,e.npm)]))}}i(ILe,"migrateProvider");function QLe(e,t){let r=e.provider?.npm??t,n=Vp.get(r),o=e.options&&n.request(e.options),s=e.cost&&[{input:e.cost.input,output:e.cost.output,cache:{read:e.cost.cache_read,write:e.cost.cache_write}},...e.cost.context_over_200k?[{tier:{type:"context",size:2e5},input:e.cost.context_over_200k.input,output:e.cost.context_over_200k.output,cache:{read:e.cost.context_over_200k.cache_read,write:e.cost.context_over_200k.cache_write}}]:[]],a=e.tool_call!==void 0||e.modalities?.input!==void 0||e.modalities?.output!==void 0?{tools:e.tool_call??!1,input:e.modalities?.input??[],output:e.modalities?.output??[]}:void 0;return{family:e.family,name:e.name,api:e.provider?.npm?{...e.id===void 0?{}:{id:e.id},type:"aisdk",package:e.provider.npm,...e.provider.api===void 0?{}:{url:e.provider.api},settings:{}}:e.id===void 0?void 0:{id:e.id},capabilities:a,request:(e.headers||o)&&{headers:e.headers,body:o},variants:e.variants&&Object.entries(e.variants).map(([l,A])=>({id:l,body:n.request(A)})),cost:s,disabled:e.status==="deprecated"?!0:void 0,limit:e.limit&&{context:sF(e.limit.context),input:e.limit.input===void 0?void 0:sF(e.limit.input),output:sF(e.limit.output)}}}i(QLe,"migrateModel");function sF(e){return Math.max(Number.MIN_SAFE_INTEGER,Math.min(Number.MAX_SAFE_INTEGER,Math.trunc(e)))}i(sF,"int");var xy=class extends c.Class("Config.Info")({$schema:c.optional(c.String).annotate({description:"JSON schema reference for configuration validation"}),shell:c.String.pipe(c.optional).annotate({description:"Default shell to use for terminal and shell tool execution"}),model:c.String.pipe(c.optional).annotate({description:"Default model to use when no session or agent model is selected"}),default_agent:c.String.pipe(c.optional).annotate({description:"Default primary agent to use when no session agent is selected"}),autoupdate:c.Union([c.Boolean,c.Literal("notify")]).pipe(c.optional).annotate({description:"Automatically update or notify when a new version is available"}),share:c.Literals(["manual","auto","disabled"]).pipe(c.optional).annotate({description:"Control whether sessions may be shared manually, automatically, or not at all"}),enterprise:c.Struct({url:c.String.pipe(c.optional)}).pipe(c.optional).annotate({description:"Enterprise sharing service configuration"}),username:c.String.pipe(c.optional).annotate({description:"Username displayed in conversations and used for telemetry identity"}),permissions:yu.Ruleset.pipe(c.optional).annotate({description:"Ordered tool permission rules applied to agent tool use"}),agents:c.Record(c.String,py.Info).pipe(c.optional).annotate({description:"Named built-in agent overrides and custom agent definitions"}),snapshots:c.Boolean.pipe(c.optional).annotate({description:"Enable snapshots used for undo and revert behavior"}),watcher:By.Info.pipe(c.optional).annotate({description:"Filesystem watcher configuration"}),formatter:Ey.Info.pipe(c.optional).annotate({description:"Enable built-in formatters or configure formatter overrides"}),lsp:yy.Info.pipe(c.optional).annotate({description:"Enable built-in language servers or configure server overrides"}),attachments:hy.Info.pipe(c.optional).annotate({description:"Attachment processing configuration"}),tool_output:Qy.Info.pipe(c.optional).annotate({description:"Tool output truncation thresholds"}),mcp:Cy.Info.pipe(c.optional).annotate({description:"MCP server configuration"}),compaction:gy.Info.pipe(c.optional).annotate({description:"Conversation compaction behavior"}),skills:c.String.pipe(c.Array,c.optional).annotate({description:"Additional paths or URLs to discover skills from"}),commands:c.Record(c.String,my.Info).pipe(c.optional).annotate({description:"Named slash command definitions"}),instructions:c.String.pipe(c.Array,c.optional).annotate({description:"Additional paths or URLs supplying ambient instructions"}),references:Bl.Info.pipe(c.optional).annotate({description:"Named local directories or Git repositories available as external context"}),plugins:Iy.Plugins.pipe(c.optional).annotate({description:"Ordered external plugin packages to load"}),experimental:mu.Experimental.pipe(c.optional),providers:c.Record(c.String,Cu.Info).pipe(c.optional)}){static{i(this,"Info")}},Jw=class extends c.Class("Config.Document")({type:c.Literal("document"),path:c.String.pipe(c.optional),info:xy}){static{i(this,"Document")}},jw=class extends c.Class("Config.Directory")({type:c.Literal("directory"),path:qe}){static{i(this,"Directory")}};function BLe(e,t){return e.filter(r=>r.type==="document").findLast(r=>r.info[t]!==void 0)?.info[t]}i(BLe,"latest");var Gp=class extends ce.Service()("@opencode/v2/Config"){static{i(this,"Service")}},x7=se.effect(Gp,E.gen(function*(){let e=yield*Ni.Service,t=yield*ms.Service,r=yield*ki.Service,n=yield*po.Service,o=["opencode.json","opencode.jsonc"],s={errors:"all",onExcessProperty:"ignore",propertyOrder:"original"},a=c.decodeUnknownOption(xy,s),l=c.decodeUnknownOption(fy.Info,s),A=E.fnUntraced(function*(B){let I=yield*e.readFileStringSafe(B);if(!I)return;let S=[],T=k6(I,S,{allowTrailingComma:!0});if(S.length)return;let w=Je.getOrUndefined(Yp.isV1(T)?l(T).pipe(Je.map(Yp.migrate),Je.flatMap(a)):a(T));if(w)return new Jw({type:"document",path:B,info:w})}),u=E.fnUntraced(function*(B){return[...yield*E.forEach(o,I=>A(by.join(B,I))).pipe(E.map(I=>I.filter(S=>S!==void 0))),new jw({type:"directory",path:B})]}),f=qe.make(t.config),p=by.resolve(r.directory)===by.resolve(t.config)?[]:yield*e.up({targets:[".opencode",...o.toReversed()],start:r.directory,stop:r.project.directory}).pipe(E.orDie),h=[f,...p.filter(B=>by.basename(B)===".opencode").toReversed().map(B=>qe.make(B))],g=p.filter(B=>by.basename(B)!==".opencode").toReversed(),m=yield*E.forEach(g,A).pipe(E.orDie,E.map(B=>B.filter(I=>I!==void 0))),Q=yield*E.forEach(h,u).pipe(E.orDie),C=[...Q[0]??[],...m,...Q.slice(1).flat()];return yield*n.load(C.filter(B=>B.type==="document").toReversed().flatMap(B=>B.info.experimental?.policies??[])),Gp.of({entries:E.fn("Config.entries")(function*(){return C})})})),SLe=x7.pipe(se.provideMerge(po.locationLayer)),wLe=bi({service:Gp,layer:x7,deps:[Ni.node,ms.node,ki.node,po.node]});export{Vn as a,HO as b,wo as c,ct as d,Yn as e,Ji as f,It as g,id as h,za as i,cee as j,cd as k,Th as l,ud as m,dd as n,hee as o,bo as p,ji as q,kh as r,gd as s,Wn as t,pte as u,Cte as v,vP as w,ec as x,Wr as y,Dr as z,Ote as A,lx as B,Vte as C,Yte as D,Lh as E,jte as F,Kte as G,Gs as H,xo as I,xx as J,Nx as K,oH as L,ZC as M,PMe as N,HMe as O,zMe as P,Ue as Q,fi as R,Ane as S,une as T,dne as U,Id as V,eT as W,Mne as X,AI as Y,GC as Z,tc as _,PH as $,HH as aa,zh as ba,VH as ca,tie as da,Rd as ea,Gl as fa,J1 as ga,LA as ha,At as ia,bi as ja,hv as ka,He as la,he as ma,io as na,qe as oa,O as pa,ze as qa,cn as ra,Cr as sa,Zk as ta,sBe as ua,MB as va,Dm as wa,MA as xa,wt as ya,so as za,Se as Aa,ps as Ba,bt as Ca,Ut as Da,Nt as Ea,kt as Fa,A7 as Ga,u7 as Ha,rLe as Ia,yu as Ja,gu as Ka,ln as La,vn as Ma,ty as Na,y as Oa,Re as Pa,qc as Qa,ht as Ra,hs as Sa,_c as Ta,la as Ua,Of as Va,Pf as Wa,Hf as Xa,Vc as Ya,Yc as Za,Yf as _a,zr as $a,Wc as ab,Fn as bb,Tv as cb,at as db,fa as eb,kv as fb,Lv as gb,Mv as hb,Hm as ib,pv as jb,vr as kb,jc as lb,ms as mb,HVe as nb,ZB as ob,qVe as pb,Yo as qb,Or as rb,Ar as sb,hw as tb,gw as ub,y9 as vb,Te as wb,ip as xb,Wbe as yb,h6e as zb,LS as Ab,ha as Bb,Xv as Cb,Go as Db,Wo as Eb,$be as Fb,FS as Gb,tL as Hb,rL as Ib,US as Jb,Ti as Kb,ga as Lb,dE as Mb,il as Nb,yE as Ob,Kr as Pb,T9 as Qb,JA as Rb,jA as Sb,Jo as Tb,t7e as Ub,X9 as Vb,Fxe as Wb,Uxe as Xb,Oxe as Yb,cl as Zb,Yxe as _b,XA as $b,Ap as ac,d3 as bc,d7e as cc,dp as dc,fp as ec,R3 as fc,tRe as gc,JS as hc,jS as ic,zS as jc,bE as kc,QL as lc,U3 as mc,iRe as nc,BL as oc,Ni as pc,e5 as qc,qE as rc,nM as sc,_E as tc,Ip as uc,i5 as vc,GNe as wc,Qp as xc,s5 as yc,oM as zc,a5 as Ac,c5 as Bc,l5 as Cc,A5 as Dc,u5 as Ec,d5 as Fc,f5 as Gc,p5 as Hc,h5 as Ic,g5 as Jc,m5 as Kc,E5 as Lc,y5 as Mc,C5 as Nc,I5 as Oc,Q5 as Pc,B5 as Qc,WNe as Rc,ut as Sc,ou as Tc,GE as Uc,xp as Vc,Ca as Wc,Krt as Xc,Xrt as Yc,Iw as Zc,XNe as _c,dt as $c,ml as ad,au as bd,ki as cd,dM as dd,du as ed,Qke as fd,fu as gd,JE as hd,V5 as id,Y5 as jd,G5 as kd,QM as ld,BM as md,W5 as nd,Bke as od,Ske as pd,wke as qd,bke as rd,jE as sd,Ia as td,Qa as ud,ww as vd,bw as wd,e6 as xd,t6 as yd,r6 as zd,n6 as Ad,o6 as Bd,i6 as Cd,s6 as Dd,a6 as Ed,c6 as Fd,RM as Gd,DM as Hd,l6 as Id,A6 as Jd,u6 as Kd,d6 as Ld,f6 as Md,p6 as Nd,h6 as Od,g6 as Pd,m6 as Qd,E6 as Rd,y6 as Sd,C6 as Td,Q6 as Ud,NM as Vd,Rke as Wd,Dke as Xd,Nke as Yd,kke as Zd,kM as _d,vM as $d,vke as ae,Sw as be,Pke as ce,zE as de,Wot as ee,LM as fe,Sa as ge,kp as he,po as ie,Il as je,Ql as ke,ny as le,k6 as me,yit as ne,Cit as oe,Iit as pe,py as qe,my as re,yn as se,oy as te,iy as ue,cy as ve,ey as we,fy as xe,Vp as ye,Yp as ze,aF as Ae};
|
|
252
252
|
/*! Bundled license information:
|
|
253
253
|
|
|
254
254
|
undici/lib/web/fetch/body.js:
|
|
@@ -15,7 +15,7 @@ import { dirname as __alchemyDirname } from 'node:path';
|
|
|
15
15
|
const __alchemy_filename = __alchemyFileURLToPath(import.meta.url);
|
|
16
16
|
const __alchemy_dirname = __alchemyDirname(__alchemy_filename);
|
|
17
17
|
|
|
18
|
-
import{L as wt,P as Be,X as ze}from"./chunk-
|
|
18
|
+
import{L as wt,P as Be,X as ze}from"./chunk-ROZTUM2T.js";import{Aa as ht,C as Ne,Da as T,Ma as Ve,_a as $e,jb as J,kb as Me,lb as Oe,mb as qe,s as Ae,v as se,wa as Ge,za as Le}from"./chunk-BAULQCM7.js";import{c as gt}from"./chunk-5AXNRW7L.js";import{$c as We,Aa as Se,Fa as at,Oa as dt,Pa as D,Ra as lt,Wc as X,_c as m,ad as _e,b as rt,bd as U,c as xe,de as yt,ha as Z,ia as ot,ka as nt,lb as ft,lc as ut,mb as pt,oa as H,pa as it,pc as L,qb as de,rc as mt,uc as be,vb as je,ya as st,za as ct}from"./chunk-YDNJZVRR.js";import{Bc as ae,Bf as e,Tc as Q,bb as z,bi as ve,dc as O,lc as we,nb as et,ni as tt,pj as n}from"./chunk-ELPXQ32J.js";import{a as u,e as ie}from"./chunk-2MRHL4B2.js";var Ze={};ie(Ze,{CreateFailedError:()=>Te,CreateInput:()=>$t,Event:()=>Ce,Info:()=>Vt,ListFailedError:()=>Fe,NameGenerationFailedError:()=>Re,NotGitError:()=>me,RemoveFailedError:()=>re,RemoveInput:()=>Mt,ResetFailedError:()=>W,ResetInput:()=>Ot,Service:()=>ye,StartCommandFailedError:()=>Qe,Worktree:()=>Ze,node:()=>Yt});var ue={};ie(ue,{InstanceStore:()=>ue,Service:()=>ce,bootstrapNode:()=>bt,node:()=>Gt,use:()=>At});var le={};ie(le,{InstanceBootstrap:()=>le,Service:()=>Ye});var Ye=class extends z.Service()("@opencode/InstanceBootstrap"){static{u(this,"Service")}};var te={};ie(te,{Event:()=>xt,Info:()=>Tt,NotFoundError:()=>Pe,Project:()=>te,Service:()=>K,UpdateInput:()=>Ft,UpdatePayload:()=>Ut,fromRow:()=>ee,node:()=>Ke,use:()=>_t});var pe={};ie(pe,{Command:()=>pe,Default:()=>ke,Event:()=>Dt,Info:()=>Pt,Service:()=>fe,hints:()=>De,node:()=>Rt});import jt from"path";var He=`Create or update \`AGENTS.md\` for this repository.
|
|
19
19
|
|
|
20
20
|
The goal is a compact instruction file that helps future OpenCode sessions avoid mistakes and ramp up quickly. Every line should answer: "Would an agent likely miss this without help?" If not, leave it out.
|
|
21
21
|
|
|
@@ -15,4 +15,4 @@ import { dirname as __alchemyDirname } from 'node:path';
|
|
|
15
15
|
const __alchemy_filename = __alchemyFileURLToPath(import.meta.url);
|
|
16
16
|
const __alchemy_dirname = __alchemyDirname(__alchemy_filename);
|
|
17
17
|
|
|
18
|
-
import{Ae as s,ja as f}from"./chunk-
|
|
18
|
+
import{Ae as s,ja as f}from"./chunk-YDNJZVRR.js";import{Bf as r,Tc as d,bb as x,pj as e}from"./chunk-ELPXQ32J.js";import{a as t,e as z}from"./chunk-2MRHL4B2.js";var h={};z(h,{DecodeError:()=>g,Image:()=>h,ResizerUnavailableError:()=>n,Service:()=>o,SizeError:()=>l,locationLayer:()=>E,node:()=>S});var n=class extends e.TaggedErrorClass()("Image.ResizerUnavailableError",{}){static{t(this,"ResizerUnavailableError")}},g=class extends e.TaggedErrorClass()("Image.DecodeError",{resource:e.String}){static{t(this,"DecodeError")}get message(){return`Image could not be decoded: ${this.resource}`}},l=class extends e.TaggedErrorClass()("Image.SizeError",{resource:e.String,width:e.Number,height:e.Number,bytes:e.Number,maxWidth:e.Number,maxHeight:e.Number,maxBytes:e.Number}){static{t(this,"SizeError")}get message(){return`Image ${this.resource} is ${this.width}x${this.height} with base64 size ${this.bytes}, exceeding configured limits ${this.maxWidth}x${this.maxHeight}/${this.maxBytes} bytes`}},o=class extends x.Service()("@opencode/Image"){static{t(this,"Service")}},y=d.effect(o,r.gen(function*(){let a=yield*s.Service,p=yield*r.cached(r.tryPromise({try:t(()=>import("./photon-5AJPGVCX.js"),"try"),catch:t(()=>new n,"catch")}).pipe(r.flatMap(m=>m.make))),u=r.fn("Image.normalize")(function*(m,b){let i=Object.assign({},...(yield*a.entries()).flatMap(c=>c.type==="document"&&c.info.attachments?.image?[c.info.attachments.image]:[]));return yield*(yield*p)(m,b,{autoResize:i.auto_resize??!0,maxWidth:i.max_width??2e3,maxHeight:i.max_height??2e3,maxBase64Bytes:i.max_base64_bytes??5*1024*1024})});return o.of({normalize:u})})),E=y.pipe(d.provide(s.locationLayer)),S=f({service:o,layer:y,deps:[s.node]});export{n as a,g as b,l as c,h as d};
|