alchemylab-opencode 1.0.24 → 1.0.26
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/{chunk-SILEE7UA.js → chunk-5P5WLADX.js} +1 -1
- package/dist/chunk-A7EXZZPC.js +12 -0
- package/dist/chunk-G752V4OP.js +2187 -0
- package/dist/{chunk-VREN4JVV.js → chunk-GBXMNWYD.js} +3 -3
- package/dist/chunk-IR6PDN4W.js +13 -0
- package/dist/{session-FWLEEJPX.js → registry-ISXIFNPG.js} +1 -1
- package/dist/{run-VQUBMRCD.js → run-AUCA7EKA.js} +2 -2
- package/dist/{run-service-IUIOP7ZW.js → run-service-MT3LOWLS.js} +1 -1
- package/dist/run.js +1 -1
- package/dist/serve.js +1 -1
- package/dist/server-PIYRZLBG.js +12 -0
- package/dist/{mcp-3MLN7453.js → session-ACBIJ2VE.js} +1 -1
- package/dist/{registry-HM2N65IE.js → share-next-MPGA7EO4.js} +1 -1
- package/dist/{server-TLPVN3ZL.js → worktree-E4DGSBLJ.js} +1 -1
- package/package.json +5 -5
- package/dist/chunk-22MFGOA6.js +0 -75
- package/dist/chunk-GCMAFSDE.js +0 -12
- package/dist/chunk-MN5GIJ5E.js +0 -2260
- package/dist/chunk-N7PLTD3P.js +0 -13
- package/dist/share-next-PRCWHS3Z.js +0 -12
- package/dist/worktree-5G5VWN6L.js +0 -12
package/dist/chunk-N7PLTD3P.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
// Built by esbuild from opencode-server source
|
|
2
|
-
if (typeof globalThis.Bun === 'undefined') {
|
|
3
|
-
globalThis.Bun = {
|
|
4
|
-
version: '0.0.0-node-compat',
|
|
5
|
-
stdin: { async text() { const chunks = []; for await (const c of process.stdin) chunks.push(c); return Buffer.concat(chunks).toString(); } },
|
|
6
|
-
which(cmd) { try { return require('child_process').execFileSync('which', [cmd], { encoding: 'utf8' }).trim(); } catch { return null; } },
|
|
7
|
-
};
|
|
8
|
-
}
|
|
9
|
-
if (typeof globalThis.__name === 'undefined') { globalThis.__name = (t, n) => { Object.defineProperty(t, 'name', { value: n, configurable: true }); return t; }; }
|
|
10
|
-
if (typeof globalThis.__export === 'undefined') { globalThis.__export = (t, a) => { for (const k in a) Object.defineProperty(t, k, { get: a[k], enumerable: true }); }; }
|
|
11
|
-
|
|
12
|
-
import{a as Pt}from"./chunk-LTCXIXYM.js";import{a as tt,c as Te,d as Oe,e as ee}from"./chunk-M4CB72HE.js";import{a as e,c as zt,d as z}from"./chunk-MBZTOEAD.js";import{Effect as wr,Layer as vr,ManagedRuntime as Lr}from"effect";import{EventEmitter as Ht}from"events";var $e=new Ht;var rt=new Set;function Ot(t){return rt.add(t),()=>{rt.delete(t)}}e(Ot,"registerDisposer");async function ot(t){await Promise.allSettled([...rt].map(r=>r(t)))}e(ot,"disposeInstance");function be(t){return t()}e(be,"iife");import{AsyncLocalStorage as Xt}from"async_hooks";var te;(l=>{class t extends Error{constructor(g){super(`No context found for ${g}`);this.name=g}name;static{e(this,"NotFound")}}l.NotFound=t;function r(u){let _=new Xt;return{use(){let g=_.getStore();if(!g)throw new t(u);return g},provide(g,T){return _.run(g,T)}}}l.create=r,e(r,"create")})(te||={});import K from"zod";var A={};zt(A,{Database:()=>_e,NotFoundError:()=>tr});z(A,wo);import{migrate as Dt}from"drizzle-orm/node-sqlite/migrator";import*as wo from"drizzle-orm";function ze(t){let r,l=!1,u=e(()=>{if(l)return r;try{return r=t(),l=!0,r}catch(_){throw _}},"result");return u.reset=()=>{l=!1,r=void 0},u}e(ze,"lazy");import He from"zod";var Xe=class t extends Error{static{e(this,"NamedError")}static create(r,l){let u=He.object({name:He.literal(r),data:l}).meta({ref:r}),_=class extends t{constructor(T,J){super(r,J);this.data=T;this.name=r}data;static{e(this,"result")}static Schema=u;name=r;static isInstance(T){return typeof T=="object"&&"name"in T&&T.name===r}schema(){return u}toObject(){return{name:r,data:this.data}}};return Object.defineProperty(_,"name",{value:r}),_}static Unknown=t.create("UnknownError",He.object({message:He.string()}))};import gt from"zod";import Ce from"path";import{readFileSync as Zt,readdirSync as Qt,existsSync as er}from"fs";import{Config as ge}from"effect";function b(t){let r=process.env[t]?.toLowerCase();return r==="true"||r==="1"}e(b,"truthy");function Kt(t){let r=process.env[t]?.toLowerCase();return r==="false"||r==="0"}e(Kt,"falsy");var H;(f=>{f.OPENCODE_AUTO_SHARE=b("OPENCODE_AUTO_SHARE"),f.OPENCODE_AUTO_HEAP_SNAPSHOT=b("OPENCODE_AUTO_HEAP_SNAPSHOT"),f.OPENCODE_GIT_BASH_PATH=process.env.OPENCODE_GIT_BASH_PATH,f.OPENCODE_CONFIG=process.env.OPENCODE_CONFIG,f.OPENCODE_CONFIG_CONTENT=process.env.OPENCODE_CONFIG_CONTENT,f.OPENCODE_DISABLE_AUTOUPDATE=b("OPENCODE_DISABLE_AUTOUPDATE"),f.OPENCODE_ALWAYS_NOTIFY_UPDATE=b("OPENCODE_ALWAYS_NOTIFY_UPDATE"),f.OPENCODE_DISABLE_PRUNE=b("OPENCODE_DISABLE_PRUNE"),f.OPENCODE_DISABLE_TERMINAL_TITLE=b("OPENCODE_DISABLE_TERMINAL_TITLE"),f.OPENCODE_SHOW_TTFD=b("OPENCODE_SHOW_TTFD"),f.OPENCODE_PERMISSION=process.env.OPENCODE_PERMISSION,f.OPENCODE_DISABLE_DEFAULT_PLUGINS=b("OPENCODE_DISABLE_DEFAULT_PLUGINS"),f.OPENCODE_DISABLE_LSP_DOWNLOAD=b("OPENCODE_DISABLE_LSP_DOWNLOAD"),f.OPENCODE_ENABLE_EXPERIMENTAL_MODELS=b("OPENCODE_ENABLE_EXPERIMENTAL_MODELS"),f.OPENCODE_DISABLE_AUTOCOMPACT=b("OPENCODE_DISABLE_AUTOCOMPACT"),f.OPENCODE_DISABLE_MODELS_FETCH=b("OPENCODE_DISABLE_MODELS_FETCH"),f.OPENCODE_DISABLE_MOUSE=b("OPENCODE_DISABLE_MOUSE"),f.OPENCODE_DISABLE_CLAUDE_CODE=b("OPENCODE_DISABLE_CLAUDE_CODE"),f.OPENCODE_DISABLE_CLAUDE_CODE_PROMPT=f.OPENCODE_DISABLE_CLAUDE_CODE||b("OPENCODE_DISABLE_CLAUDE_CODE_PROMPT"),f.OPENCODE_DISABLE_CLAUDE_CODE_SKILLS=f.OPENCODE_DISABLE_CLAUDE_CODE||b("OPENCODE_DISABLE_CLAUDE_CODE_SKILLS"),f.OPENCODE_DISABLE_EXTERNAL_SKILLS=f.OPENCODE_DISABLE_CLAUDE_CODE_SKILLS||b("OPENCODE_DISABLE_EXTERNAL_SKILLS"),f.OPENCODE_FAKE_VCS=process.env.OPENCODE_FAKE_VCS,f.OPENCODE_SERVER_PASSWORD=process.env.OPENCODE_SERVER_PASSWORD,f.OPENCODE_SERVER_USERNAME=process.env.OPENCODE_SERVER_USERNAME,f.OPENCODE_ENABLE_QUESTION_TOOL=b("OPENCODE_ENABLE_QUESTION_TOOL"),f.OPENCODE_EXPERIMENTAL=b("OPENCODE_EXPERIMENTAL"),f.OPENCODE_EXPERIMENTAL_FILEWATCHER=ge.boolean("OPENCODE_EXPERIMENTAL_FILEWATCHER").pipe(ge.withDefault(!1)),f.OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER=ge.boolean("OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER").pipe(ge.withDefault(!1)),f.OPENCODE_EXPERIMENTAL_ICON_DISCOVERY=f.OPENCODE_EXPERIMENTAL||b("OPENCODE_EXPERIMENTAL_ICON_DISCOVERY");let De=process.env.OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT;f.OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT=De===void 0?process.platform==="win32":b("OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT"),f.OPENCODE_ENABLE_EXA=b("OPENCODE_ENABLE_EXA")||f.OPENCODE_EXPERIMENTAL||b("OPENCODE_EXPERIMENTAL_EXA"),f.OPENCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS=Ae("OPENCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS"),f.OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX=Ae("OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX"),f.OPENCODE_EXPERIMENTAL_OXFMT=f.OPENCODE_EXPERIMENTAL||b("OPENCODE_EXPERIMENTAL_OXFMT"),f.OPENCODE_EXPERIMENTAL_LSP_TY=b("OPENCODE_EXPERIMENTAL_LSP_TY"),f.OPENCODE_EXPERIMENTAL_LSP_TOOL=f.OPENCODE_EXPERIMENTAL||b("OPENCODE_EXPERIMENTAL_LSP_TOOL"),f.OPENCODE_DISABLE_FILETIME_CHECK=ge.boolean("OPENCODE_DISABLE_FILETIME_CHECK").pipe(ge.withDefault(!1)),f.OPENCODE_EXPERIMENTAL_PLAN_MODE=f.OPENCODE_EXPERIMENTAL||b("OPENCODE_EXPERIMENTAL_PLAN_MODE"),f.OPENCODE_EXPERIMENTAL_WORKSPACES=f.OPENCODE_EXPERIMENTAL||b("OPENCODE_EXPERIMENTAL_WORKSPACES"),f.OPENCODE_EXPERIMENTAL_MARKDOWN=!Kt("OPENCODE_EXPERIMENTAL_MARKDOWN"),f.OPENCODE_MODELS_URL=process.env.OPENCODE_MODELS_URL,f.OPENCODE_MODELS_PATH=process.env.OPENCODE_MODELS_PATH,f.OPENCODE_DISABLE_EMBEDDED_WEB_UI=b("OPENCODE_DISABLE_EMBEDDED_WEB_UI"),f.OPENCODE_DB=process.env.OPENCODE_DB,f.OPENCODE_DISABLE_CHANNEL_DB=b("OPENCODE_DISABLE_CHANNEL_DB"),f.OPENCODE_SKIP_MIGRATIONS=b("OPENCODE_SKIP_MIGRATIONS"),f.OPENCODE_STRICT_CONFIG_DEPS=b("OPENCODE_STRICT_CONFIG_DEPS");function Ae($t){let yt=process.env[$t];if(!yt)return;let et=Number(yt);return Number.isInteger(et)&&et>0?et:void 0}e(Ae,"number")})(H||={});Object.defineProperty(H,"OPENCODE_DISABLE_PROJECT_CONFIG",{get(){return b("OPENCODE_DISABLE_PROJECT_CONFIG")},enumerable:!0,configurable:!1});Object.defineProperty(H,"OPENCODE_TUI_CONFIG",{get(){return process.env.OPENCODE_TUI_CONFIG},enumerable:!0,configurable:!1});Object.defineProperty(H,"OPENCODE_CONFIG_DIR",{get(){return process.env.OPENCODE_CONFIG_DIR},enumerable:!0,configurable:!1});Object.defineProperty(H,"OPENCODE_PURE",{get(){return b("OPENCODE_PURE")},enumerable:!0,configurable:!1});Object.defineProperty(H,"OPENCODE_PLUGIN_META_FILE",{get(){return process.env.OPENCODE_PLUGIN_META_FILE},enumerable:!0,configurable:!1});Object.defineProperty(H,"OPENCODE_CLIENT",{get(){return process.env.OPENCODE_CLIENT??"cli"},enumerable:!0,configurable:!1});var Qr=typeof OPENCODE_VERSION=="string"?OPENCODE_VERSION:"local",nt=typeof OPENCODE_CHANNEL=="string"?OPENCODE_CHANNEL:"local";import{Effect as q,Fiber as Jt,ScopedCache as ve,ServiceMap as Vt}from"effect";import{ServiceMap as Wt}from"effect";var we=Wt.Reference("~opencode/InstanceRef",{defaultValue:e(()=>{},"defaultValue")});var _t="~opencode/InstanceState",Ke;(N=>(N.bind=e(p=>{try{return Z.bind(p)}catch(S){if(!(S instanceof te.NotFound))throw S}let s=Jt.getCurrent(),y=s?Vt.getReferenceUnsafe(s.services,we):void 0;return y?((...S)=>Z.restore(y,()=>p(...S))):p},"bind"),N.context=q.gen(function*(){return(yield*we)??Z.current}),N.directory=q.map(N.context,p=>p.directory),N.make=e(p=>q.gen(function*(){let s=yield*ve.make({capacity:Number.POSITIVE_INFINITY,lookup:e(()=>q.gen(function*(){return yield*p(yield*N.context)}),"lookup")}),y=Ot(S=>q.runPromise(ve.invalidate(s,S)));return yield*q.addFinalizer(()=>q.sync(y)),{[_t]:_t,cache:s}}),"make"),N.get=e(p=>q.gen(function*(){return yield*ve.get(p.cache,yield*N.directory)}),"get"),N.use=e((p,s)=>q.map((0,N.get)(p),s),"use"),N.useEffect=e((p,s)=>q.flatMap((0,N.get)(p),s),"useEffect"),N.has=e(p=>q.gen(function*(){return yield*ve.has(p.cache,yield*N.directory)}),"has"),N.invalidate=e(p=>q.gen(function*(){return yield*ve.invalidate(p.cache,yield*N.directory)}),"invalidate"),N.withALS=e(p=>q.map(N.context,s=>Z.restore(s,p)),"withALS")))(Ke||={});import{DatabaseSync as Yt}from"node:sqlite";import{drizzle as qt}from"drizzle-orm/node-sqlite";function St(t){let r=new Yt(t);return qt({client:r})}e(St,"init");var tr=Xe.create("NotFoundError",gt.object({message:gt.string()})),it=ee.create({service:"db"}),_e;(N=>{function t(){if(["latest","beta"].includes(nt)||H.OPENCODE_DISABLE_CHANNEL_DB)return Ce.join(Oe.Path.data,"opencode.db");let p=nt.replace(/[^a-zA-Z0-9._-]/g,"-");return Ce.join(Oe.Path.data,`opencode-${p}.db`)}N.getChannelPath=t,e(t,"getChannelPath"),N.Path=be(()=>H.OPENCODE_DB?H.OPENCODE_DB===":memory:"||Ce.isAbsolute(H.OPENCODE_DB)?H.OPENCODE_DB:Ce.join(Oe.Path.data,H.OPENCODE_DB):t());function l(p){let s=/^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/.exec(p);return s?Date.UTC(Number(s[1]),Number(s[2])-1,Number(s[3]),Number(s[4]),Number(s[5]),Number(s[6])):0}e(l,"time");function u(p){return Qt(p,{withFileTypes:!0}).filter(S=>S.isDirectory()).map(S=>S.name).map(S=>{let X=Ce.join(p,S,"migration.sql");if(er(X))return{sql:Zt(X,"utf-8"),timestamp:l(S),name:S}}).filter(Boolean).sort((S,X)=>S.timestamp-X.timestamp)}e(u,"migrations"),N.Client=ze(()=>{it.info("opening database",{path:N.Path});let p=St(N.Path);p.run("PRAGMA journal_mode = WAL"),p.run("PRAGMA synchronous = NORMAL"),p.run("PRAGMA busy_timeout = 5000"),p.run("PRAGMA cache_size = -64000"),p.run("PRAGMA foreign_keys = ON"),p.run("PRAGMA wal_checkpoint(PASSIVE)");let s=Ce.join(import.meta.dirname,"../packages/opencode/migration");if(typeof OPENCODE_MIGRATIONS<"u"){let y=OPENCODE_MIGRATIONS;if(y.length>0){if(it.info("applying migrations",{count:y.length,mode:"bundled"}),H.OPENCODE_SKIP_MIGRATIONS)for(let S of y)S.sql="select 1;";Dt(p,y)}}else{let y=u(s);it.info("applying migrations",{count:y.length,mode:"dev"}),!H.OPENCODE_SKIP_MIGRATIONS&&y.length>0&&Dt(p,{migrationsFolder:s})}return p});function g(){(0,N.Client)().$client.close(),N.Client.reset()}N.close=g,e(g,"close");let T=te.create("database");function J(p){try{return p(T.use().tx)}catch(s){if(s instanceof te.NotFound){let y=[],S=T.provide({effects:y,tx:(0,N.Client)()},()=>p((0,N.Client)()));for(let X of y)X();return S}throw s}}N.use=J,e(J,"use");function F(p){let s=Ke.bind(p);try{T.use().effects.push(s)}catch{s()}}N.effect=F,e(F,"effect");function W(p,s){try{return p(T.use().tx)}catch(y){if(y instanceof te.NotFound){let S=[],X=Ke.bind(ne=>T.provide({tx:ne,effects:S},()=>p(ne))),ye=(0,N.Client)().transaction(X,{behavior:s?.behavior});for(let ne of S)ne();return ye}throw y}}N.transaction=W,e(W,"transaction")})(_e||={});import{sqliteTable as rr,text as ue,integer as or}from"drizzle-orm/sqlite-core";import{integer as Ct}from"drizzle-orm/sqlite-core";var Ee={time_created:Ct().notNull().$default(()=>Date.now()),time_updated:Ct().notNull().$onUpdate(()=>Date.now())};var w=rr("project",{id:ue().$type().primaryKey(),worktree:ue().notNull(),vcs:ue(),name:ue(),icon_url:ue(),icon_color:ue(),...Ee,time_initialized:or(),sandboxes:ue({mode:"json"}).notNull().$type(),commands:ue({mode:"json"}).$type()});import{sqliteTable as Le,text as R,integer as Ne,index as Se,primaryKey as nr}from"drizzle-orm/sqlite-core";var he=Le("session",{id:R().$type().primaryKey(),project_id:R().$type().notNull().references(()=>w.id,{onDelete:"cascade"}),workspace_id:R().$type(),parent_id:R().$type(),slug:R().notNull(),directory:R().notNull(),title:R().notNull(),version:R().notNull(),share_url:R(),summary_additions:Ne(),summary_deletions:Ne(),summary_files:Ne(),summary_diffs:R({mode:"json"}).$type(),revert:R({mode:"json"}).$type(),permission:R({mode:"json"}).$type(),...Ee,metadata:R({mode:"json"}).$type(),time_compacting:Ne(),time_archived:Ne()},t=>[Se("session_project_idx").on(t.project_id),Se("session_workspace_idx").on(t.workspace_id),Se("session_parent_idx").on(t.parent_id)]),ir=Le("message",{id:R().$type().primaryKey(),session_id:R().$type().notNull().references(()=>he.id,{onDelete:"cascade"}),...Ee,data:R({mode:"json"}).notNull().$type()},t=>[Se("message_session_time_created_id_idx").on(t.session_id,t.time_created,t.id)]),Go=Le("part",{id:R().$type().primaryKey(),message_id:R().$type().notNull().references(()=>ir.id,{onDelete:"cascade"}),session_id:R().$type().notNull(),...Ee,data:R({mode:"json"}).notNull().$type()},t=>[Se("part_message_id_id_idx").on(t.message_id,t.id),Se("part_session_idx").on(t.session_id)]),$o=Le("todo",{session_id:R().$type().notNull().references(()=>he.id,{onDelete:"cascade"}),content:R().notNull(),status:R().notNull(),priority:R().notNull(),position:Ne().notNull(),...Ee},t=>[nr({columns:[t.session_id,t.position]}),Se("todo_session_idx").on(t.session_id)]),zo=Le("permission",{project_id:R().primaryKey().references(()=>w.id,{onDelete:"cascade"}),...Ee,data:R({mode:"json"}).notNull().$type()});import st from"zod";var ct;(u=>{let t=new Map;function r(_,g){let T={type:_,properties:g};return t.set(_,T),T}u.define=r,e(r,"define");function l(){return st.discriminatedUnion("type",t.entries().map(([_,g])=>st.object({type:st.literal(_),properties:g.properties}).meta({ref:"Event."+g.type})).toArray()).meta({ref:"Event"})}u.payloads=l,e(l,"payloads")})(ct||={});import sr from"which";import cr from"path";function at(t,r){let l=r?.PATH??r?.Path??process.env.PATH??process.env.Path??"",u=l?l+cr.delimiter+Oe.Path.bin:Oe.Path.bin,_=sr.sync(t,{nothrow:!0,path:u,pathExt:r?.PATHEXT??r?.PathExt??process.env.PATHEXT??process.env.PathExt});return typeof _=="string"?_:null}e(at,"which");import{Schema as Nt}from"effect";import ht from"zod";var ar=Nt.String.pipe(Nt.brand("ProjectID")),re=ar.pipe(Pt(t=>({global:t.makeUnsafe("global"),make:e(r=>t.makeUnsafe(r),"make"),zod:ht.string().pipe(ht.custom())})));import{Effect as I,Layer as Ye,Path as hr,Scope as Ir,ServiceMap as xr,Stream as qe}from"effect";import{ChildProcess as Ar,ChildProcessSpawner as Tr}from"effect/unstable/process";import{NodePath as br}from"@effect/platform-node";import{NodeFileSystem as dr}from"@effect/platform-node";import{dirname as We,join as dt,relative as ft,resolve as It}from"path";import{realpathSync as xt}from"fs";import*as Ve from"fs/promises";import{lookup as fr}from"mime-types";import{Effect as M,FileSystem as pr,Layer as At,Schema as Je,ServiceMap as lr}from"effect";var Ie;(p=>{class t extends Je.TaggedErrorClass()("FileSystemError",{method:Je.String,cause:Je.optional(Je.Defect)}){static{e(this,"FileSystemError")}}p.FileSystemError=t;class r extends lr.Service()("@opencode/FileSystem"){static{e(this,"Service")}}p.Service=r,p.layer=At.effect(r,M.gen(function*(){let s=yield*pr.FileSystem,y=M.fn("FileSystem.existsSafe")(function*(c){return yield*s.exists(c).pipe(M.orElseSucceed(()=>!1))}),S=M.fn("FileSystem.isDir")(function*(c){return(yield*s.stat(c).pipe(M.catch(()=>M.void)))?.type==="Directory"}),X=M.fn("FileSystem.isFile")(function*(c){return(yield*s.stat(c).pipe(M.catch(()=>M.void)))?.type==="File"}),ye=M.fn("FileSystem.readDirectoryEntries")(function*(c){return yield*M.tryPromise({try:e(async()=>(await Ve.readdir(c,{withFileTypes:!0})).map(h=>({name:h.name,type:h.isDirectory()?"directory":h.isSymbolicLink()?"symlink":h.isFile()?"file":"other"})),"try"),catch:e(d=>new t({method:"readDirectoryEntries",cause:d}),"catch")})}),ne=M.fn("FileSystem.readJson")(function*(c){let d=yield*s.readFileString(c);return JSON.parse(d)}),fe=M.fn("FileSystem.writeJson")(function*(c,d,h){let v=JSON.stringify(d,null,2),x=`${c}.tmp-${process.pid}-${Math.random().toString(36).slice(2,8)}`;yield*s.writeFileString(x,v),h&&(yield*s.chmod(x,h)),yield*M.tryPromise({try:e(()=>Ve.rename(x,c),"try"),catch:e(k=>new t({method:"writeJson.rename",cause:k}),"catch")})}),o=M.fn("FileSystem.ensureDir")(function*(c){yield*s.makeDirectory(c,{recursive:!0})}),n=M.fn("FileSystem.writeWithDirs")(function*(c,d,h){let v=typeof d=="string"?s.writeFileString(c,d):s.writeFile(c,d);yield*v.pipe(M.catchIf(x=>x.reason._tag==="NotFound",()=>M.gen(function*(){yield*s.makeDirectory(We(c),{recursive:!0}),yield*v}))),h&&(yield*s.chmod(c,h))}),i=M.fn("FileSystem.glob")(function*(c,d){return yield*M.tryPromise({try:e(()=>tt.scan(c,d),"try"),catch:e(h=>new t({method:"glob",cause:h}),"catch")})}),P=M.fn("FileSystem.findUp")(function*(c,d,h){let v=[],x=d;for(;;){let k=dt(x,c);if((yield*s.exists(k))&&v.push(k),h===x)break;let B=We(x);if(B===x)break;x=B}return v}),D=M.fn("FileSystem.up")(function*(c){let d=[],h=c.start;for(;;){for(let x of c.targets){let k=dt(h,x);(yield*s.exists(k))&&d.push(k)}if(c.stop===h)break;let v=We(h);if(v===h)break;h=v}return d}),m=M.fn("FileSystem.globUp")(function*(c,d,h){let v=[],x=d;for(;;){let k=yield*i(c,{cwd:x,absolute:!0,include:"file",dot:!0}).pipe(M.catch(()=>M.succeed([])));if(v.push(...k),h===x)break;let B=We(x);if(B===x)break;x=B}return v});return r.of({...s,existsSafe:y,isDir:S,isFile:X,readDirectoryEntries:ye,readJson:ne,writeJson:fe,ensureDir:o,writeWithDirs:n,findUp:P,up:D,globUp:m,glob:i,globMatch:tt.match})})),p.defaultLayer=p.layer.pipe(At.provide(dr.layer));function _(s){return fr(s)||"application/octet-stream"}p.mimeType=_,e(_,"mimeType");function g(s){if(process.platform!=="win32")return s;let y=It(F(s));try{return xt.native(y)}catch{return y}}p.normalizePath=g,e(g,"normalizePath");function T(s){if(process.platform!=="win32"||s==="*")return s;let y=s.match(/^(.*)[\\/]\*$/);if(!y)return g(s);let S=/^[A-Za-z]:$/.test(y[1])?y[1]+"\\":y[1];return dt(g(S),"*")}p.normalizePathPattern=T,e(T,"normalizePathPattern");function J(s){let y=It(F(s));try{return g(xt(y))}catch(S){if(S?.code==="ENOENT")return g(y);throw S}}p.resolve=J,e(J,"resolve");function F(s){return process.platform!=="win32"?s:s.replace(/^\/([a-zA-Z]):(?:[\\/]|$)/,(y,S)=>`${S.toUpperCase()}:/`).replace(/^\/([a-zA-Z])(?:\/|$)/,(y,S)=>`${S.toUpperCase()}:/`).replace(/^\/cygdrive\/([a-zA-Z])(?:\/|$)/,(y,S)=>`${S.toUpperCase()}:/`).replace(/^\/mnt\/([a-zA-Z])(?:\/|$)/,(y,S)=>`${S.toUpperCase()}:/`)}p.windowsPath=F,e(F,"windowsPath");function W(s,y){let S=ft(s,y),X=ft(y,s);return!S||!S.startsWith("..")||!X||!X.startsWith("..")}p.overlaps=W,e(W,"overlaps");function N(s,y){return!ft(s,y).startsWith("..")}p.contains=N,e(N,"contains")})(Ie||={});import{NodeFileSystem as Er,NodeSink as Tt,NodeStream as pt}from"@effect/platform-node";import*as bt from"@effect/platform-node/NodePath";import*as Y from"effect/Deferred";import*as a from"effect/Effect";import*as wt from"effect/Exit";import*as vt from"effect/FileSystem";import*as Re from"effect/Layer";import*as Lt from"effect/Path";import*as Rt from"effect/PlatformError";import*as V from"effect/Predicate";import*as ce from"effect/Sink";import*as G from"effect/Stream";import*as ae from"effect/unstable/process/ChildProcess";import{ChildProcessSpawner as kt,ExitCode as ur,make as mr,makeHandle as yr,ProcessId as Pr}from"effect/unstable/process/ChildProcessSpawner";import*as Mt from"node:child_process";import{PassThrough as Or}from"node:stream";import _r from"cross-spawn";var me=e(t=>t instanceof globalThis.Error?t:new globalThis.Error(String(t)),"toError"),Sr=e(t=>{switch(t.code){case"ENOENT":return"NotFound";case"EACCES":return"PermissionDenied";case"EEXIST":return"AlreadyExists";case"EISDIR":return"BadResource";case"ENOTDIR":return"BadResource";case"EBUSY":return"Busy";case"ELOOP":return"BadResource";default:return"Unknown"}},"toTag"),jt=e(t=>{let r=[],l=[],u=e(T=>{switch(T._tag){case"StandardCommand":r.push(T);return;case"PipedCommand":u(T.left),l.push(T.options),u(T.right);return}},"walk");if(u(t),r.length===0)throw new Error("flatten produced empty commands array");let[_,...g]=r;return{commands:[_,...g],opts:l}},"flatten"),se=e((t,r,l)=>{let u=jt(l).commands.map(_=>`${_.command} ${_.args.join(" ")}`).join(" | ");return Rt.systemError({_tag:Sr(r),module:"ChildProcess",method:t,pathOrDescriptor:u,syscall:r.syscall,cause:r})},"toPlatformError"),Dr=a.gen(function*(){let t=yield*vt.FileSystem,r=yield*Lt.Path,l=a.fnUntraced(function*(o){if(!V.isUndefined(o.cwd))return yield*t.access(o.cwd),r.resolve(o.cwd)}),u=e(o=>o.extendEnv?{...globalThis.process.env,...o.env}:o.env,"env"),_=e(o=>G.isStream(o)?"pipe":o,"input"),g=e(o=>ce.isSink(o)?"pipe":o,"output"),T=e(o=>{let n={stream:"pipe",encoding:"utf-8",endOnDone:!0};return V.isUndefined(o.stdin)?n:typeof o.stdin=="string"?{...n,stream:o.stdin}:G.isStream(o.stdin)?{...n,stream:o.stdin}:{stream:o.stdin.stream,encoding:o.stdin.encoding??n.encoding,endOnDone:o.stdin.endOnDone??n.endOnDone}},"stdin"),J=e((o,n)=>{let i=o[n];return V.isUndefined(i)?{stream:"pipe"}:typeof i=="string"?{stream:i}:ce.isSink(i)?{stream:i}:{stream:i.stream}},"stdio"),F=e(o=>V.isUndefined(o.additionalFds)?[]:Object.entries(o.additionalFds).flatMap(([n,i])=>{let P=ae.parseFdName(n);return V.isUndefined(P)?[]:[{fd:P,config:i}]}).toSorted((n,i)=>n.fd-i.fd),"fds"),W=e((o,n,i,P)=>{let D=e(d=>process.platform==="win32"&&d==="pipe"?"overlapped":d,"pipe"),m=[D(_(o.stream)),D(g(n.stream)),D(g(i.stream))];if(P.length===0)return m;let c=P.reduce((d,h)=>Math.max(d,h.fd),2);for(let d=3;d<=c;d++)m[d]="ignore";for(let d of P)m[d.fd]=D("pipe");return m},"stdios"),N=a.fnUntraced(function*(o,n,i){if(i.length===0)return{getInputFd:e(()=>ce.drain,"getInputFd"),getOutputFd:e(()=>G.empty,"getOutputFd")};let P=new Map,D=new Map;for(let m of i){let c=n.stdio[m.fd];switch(m.config.type){case"input":{let d=ce.drain;c&&"write"in c&&(d=Tt.fromWritable({evaluate:e(()=>c,"evaluate"),onError:e(h=>se(`fromWritable(fd${m.fd})`,me(h),o),"onError"),endOnDone:!0})),m.config.stream&&(yield*a.forkScoped(G.run(m.config.stream,d))),P.set(m.fd,d);break}case"output":{let d=G.empty;if(c&&"read"in c){let h=new Or;c.on("error",v=>h.destroy(me(v))),c.pipe(h),d=pt.fromReadable({evaluate:e(()=>h,"evaluate"),onError:e(v=>se(`fromReadable(fd${m.fd})`,me(v),o),"onError")})}m.config.sink&&(d=G.transduce(d,m.config.sink)),D.set(m.fd,d);break}}}return{getInputFd:e(m=>P.get(m)??ce.drain,"getInputFd"),getOutputFd:e(m=>D.get(m)??G.empty,"getOutputFd")}}),p=e((o,n,i)=>a.suspend(()=>{let P=ce.drain;return V.isNotNull(n.stdin)&&(P=Tt.fromWritable({evaluate:e(()=>n.stdin,"evaluate"),onError:e(D=>se("fromWritable(stdin)",me(D),o),"onError"),endOnDone:i.endOnDone,encoding:i.encoding})),G.isStream(i.stream)?a.as(a.forkScoped(G.run(i.stream,P)),P):a.succeed(P)}),"setupStdin"),s=e((o,n,i,P)=>{let D=n.stdout?pt.fromReadable({evaluate:e(()=>n.stdout,"evaluate"),onError:e(c=>se("fromReadable(stdout)",me(c),o),"onError")}):G.empty,m=n.stderr?pt.fromReadable({evaluate:e(()=>n.stderr,"evaluate"),onError:e(c=>se("fromReadable(stderr)",me(c),o),"onError")}):G.empty;return ce.isSink(i.stream)&&(D=G.transduce(D,i.stream)),ce.isSink(P.stream)&&(m=G.transduce(m,P.stream)),{stdout:D,stderr:m,all:G.merge(D,m)}},"setupOutput"),y=e((o,n)=>a.callback(i=>{let P=Y.makeUnsafe(),D=_r(o.command,o.args,n),m=!1,c;return D.on("error",d=>{i(a.fail(se("spawn",d,o)))}),D.on("exit",(...d)=>{c=d}),D.on("close",(...d)=>{m||(m=!0,Y.doneUnsafe(P,wt.succeed(c??d)))}),D.on("spawn",()=>{i(a.succeed([D,P]))}),a.sync(()=>{D.kill("SIGTERM")})}),"spawn"),S=e((o,n,i)=>globalThis.process.platform==="win32"?a.callback(P=>{Mt.exec(`taskkill /pid ${n.pid} /T /F`,{windowsHide:!0},D=>{if(D)return P(a.fail(se("kill",me(D),o)));P(a.void)})}):a.try({try:e(()=>{globalThis.process.kill(-n.pid,i)},"try"),catch:e(P=>se("kill",me(P),o),"catch")}),"killGroup"),X=e((o,n,i)=>a.suspend(()=>n.kill(i)?a.void:a.fail(se("kill",new Error("Failed to kill child process"),o))),"killOne"),ye=e((o,n,i)=>P=>{let D=i?.killSignal??"SIGTERM";return V.isUndefined(i?.forceKillAfter)?P(n,o,D):a.timeoutOrElse(P(n,o,D),{duration:i.forceKillAfter,orElse:e(()=>P(n,o,"SIGKILL"),"orElse")})},"timeout"),ne=e((o,n)=>{let i=n??"stdout";switch(i){case"stdout":return o.stdout;case"stderr":return o.stderr;case"all":return o.all;default:{let P=ae.parseFdName(i);return V.isNotUndefined(P)?o.getOutputFd(P):o.stdout}}},"source"),fe=a.fnUntraced(function*(o){switch(o._tag){case"StandardCommand":{let n=T(o.options),i=J(o.options,"stdout"),P=J(o.options,"stderr"),D=F(o.options),m=yield*l(o.options),[c,d]=yield*a.acquireRelease(y(o,{cwd:m,env:u(o.options),stdio:W(n,i,P,D),detached:o.options.detached??process.platform!=="win32",shell:o.options.shell,windowsHide:process.platform==="win32"}),a.fnUntraced(function*([x,k]){let B=yield*Y.isDone(k),Pe=ye(x,o,o.options);if(B){let[le]=yield*Y.await(k);return process.platform==="win32"?yield*a.void:le!==0&&V.isNotNull(le)?yield*a.ignore(Pe(S)):yield*a.void}let pe=e(le=>a.catch(S(o,x,le),()=>X(o,x,le)),"send"),xe=o.options.killSignal??"SIGTERM",De=pe(xe).pipe(a.andThen(Y.await(k)),a.asVoid),Ue=o.options.forceKillAfter?a.timeoutOrElse(De,{duration:o.options.forceKillAfter,orElse:e(()=>pe("SIGKILL").pipe(a.andThen(Y.await(k)),a.asVoid),"orElse")}):De;return yield*a.ignore(Ue)})),h=yield*N(o,c,D),v=s(o,c,i,P);return yr({pid:Pr(c.pid),stdin:yield*p(o,c,n),stdout:v.stdout,stderr:v.stderr,all:v.all,getInputFd:h.getInputFd,getOutputFd:h.getOutputFd,isRunning:a.map(Y.isDone(d),x=>!x),exitCode:a.flatMap(Y.await(d),([x,k])=>V.isNotNull(x)?a.succeed(ur(x)):a.fail(se("exitCode",new Error(`Process interrupted due to receipt of signal: '${k}'`),o))),kill:e(x=>{let k=x?.killSignal??"SIGTERM",B=e(pe=>a.catch(S(o,c,pe),()=>X(o,c,pe)),"send"),Pe=B(k).pipe(a.andThen(Y.await(d)),a.asVoid);return x?.forceKillAfter?a.timeoutOrElse(Pe,{duration:x.forceKillAfter,orElse:e(()=>B("SIGKILL").pipe(a.andThen(Y.await(d)),a.asVoid),"orElse")}):Pe},"kill")})}case"PipedCommand":{let n=jt(o),[i,...P]=n.commands,D=fe(i);for(let m=0;m<P.length;m++){let c=P[m],d=n.opts[m]??{},h=T(c.options),v=G.unwrap(a.map(D,B=>ne(B,d.from))),x=d.to??"stdin";if(x==="stdin"){D=fe(ae.make(c.command,c.args,{...c.options,stdin:{...h,stream:v}}));continue}let k=ae.parseFdName(x);if(V.isUndefined(k)){D=fe(ae.make(c.command,c.args,{...c.options,stdin:{...h,stream:v}}));continue}D=fe(ae.make(c.command,c.args,{...c.options,additionalFds:{...c.options.additionalFds,[ae.fdName(k)]:{type:"input",stream:v}}}))}return yield*D}}});return mr(fe)}),gr=Re.effect(kt,Dr),lt=gr.pipe(Re.provide(Er.layer),Re.provide(bt.layer)),Cr=ze(async()=>{let{makeRuntime:t}=await import("./run-service-IUIOP7ZW.js");return t(kt,lt)}),On=e(async(...t)=>(await Cr()).runPromiseExit(...t),"runPromiseExit");var Et;(o=>{let t=ee.create({service:"project"});o.Info=K.object({id:re.zod,worktree:K.string(),vcs:K.literal("git").optional(),name:K.string().optional(),icon:K.object({url:K.string().optional(),override:K.string().optional(),color:K.string().optional()}).optional(),commands:K.object({start:K.string().optional().describe("Startup script to run when creating a new workspace (worktree)")}).optional(),time:K.object({created:K.number(),updated:K.number(),initialized:K.number().optional()}),sandboxes:K.array(K.string())}).meta({ref:"Project"}),o.Event={Updated:ct.define("project.updated",o.Info)};function u(n){let i=n.icon_url||n.icon_color?{url:n.icon_url??void 0,color:n.icon_color??void 0}:void 0;return{id:n.id,worktree:n.worktree,vcs:n.vcs?o.Info.shape.vcs.parse(n.vcs):void 0,name:n.name??void 0,icon:i,time:{created:n.time_created,updated:n.time_updated,initialized:n.time_initialized??void 0},sandboxes:n.sandboxes,commands:n.commands??void 0}}o.fromRow=u,e(u,"fromRow"),o.UpdateInput=K.object({projectID:re.zod,name:K.string().optional(),icon:o.Info.shape.icon.optional(),commands:o.Info.shape.commands.optional()});class g extends xr.Service()("@opencode/Project"){static{e(this,"Service")}}o.Service=g,o.layer=Ye.effect(g,I.gen(function*(){let n=yield*Ie.Service,i=yield*hr.Path,P=yield*Tr.ChildProcessSpawner,D=I.fnUntraced(function*(E,O){let L=yield*P.spawn(Ar.make("git",E,{cwd:O?.cwd,extendEnv:!0,stdin:"ignore"})),[U,C]=yield*I.all([qe.mkString(qe.decodeText(L.stdout)),qe.mkString(qe.decodeText(L.stderr))],{concurrency:2});return{code:yield*L.exitCode,text:U,stderr:C}},I.scoped,I.catch(()=>I.succeed({code:1,text:"",stderr:""}))),m=e(E=>I.sync(()=>_e.use(E)),"db"),c=e(E=>I.sync(()=>$e.emit("event",{payload:{type:o.Event.Updated.type,properties:E}})),"emitUpdated"),d=o.Info.shape.vcs.parse(H.OPENCODE_FAKE_VCS),h=e((E,O)=>!O||(O=O.replace(/[\r\n]+$/,""),!O)?E:(O=Ie.windowsPath(O),i.isAbsolute(O)?i.normalize(O):i.resolve(E,O)),"resolveGitPath"),v=yield*Ir.Scope,x=I.fnUntraced(function*(E){return yield*n.readFileString(i.join(E,"opencode")).pipe(I.map(O=>O.trim()),I.map(re.make),I.catch(()=>I.succeed(void 0)))}),k=I.fn("Project.fromDirectory")(function*(E){t.info("fromDirectory",{directory:E});let O=yield*I.gen(function*(){let ie=(yield*n.up({targets:[".git"],start:E}).pipe(I.orDie))[0];if(!ie)return{id:re.global,worktree:"/",sandbox:"/",vcs:d};let $=i.dirname(ie),Be=yield*I.sync(()=>at("git")),Q=yield*x(ie);if(!Be)return{id:Q??re.global,worktree:$,sandbox:$,vcs:d};let Ze=yield*D(["rev-parse","--git-common-dir"],{cwd:$});if(Ze.code!==0)return{id:Q??re.global,worktree:$,sandbox:$,vcs:d};let Fe=(()=>{let Ge=h($,Ze.text.trim());return Ge===$?$:i.dirname(Ge)})();if(Q==null&&(Q=yield*x(i.join(Fe,".git"))),!Q){let Ae=(yield*D(["rev-list","--max-parents=0","HEAD"],{cwd:$})).text.split(`
|
|
13
|
-
`).filter(Boolean).map(f=>f.trim()).toSorted();Q=Ae[0]?re.make(Ae[0]):void 0,Q&&(yield*n.writeFileString(i.join(Fe,".git","opencode"),Q).pipe(I.ignore))}if(!Q)return{id:re.global,worktree:$,sandbox:$,vcs:"git"};let Qe=yield*D(["rev-parse","--show-toplevel"],{cwd:$});return Qe.code!==0?{id:Q,worktree:$,sandbox:$,vcs:d}:($=h($,Qe.text.trim()),{id:Q,sandbox:$,worktree:Fe,vcs:"git"})}),L=yield*m(j=>j.select().from(w).where((0,A.eq)(w.id,O.id)).get()),U=L?u(L):{id:O.id,worktree:O.worktree,vcs:O.vcs,sandboxes:[],time:{created:Date.now(),updated:Date.now()}};H.OPENCODE_EXPERIMENTAL_ICON_DISCOVERY&&(yield*B(U).pipe(I.ignore,I.forkIn(v)));let C={...U,worktree:O.worktree,vcs:O.vcs,time:{...U.time,updated:Date.now()}};return O.sandbox!==C.worktree&&!C.sandboxes.includes(O.sandbox)&&C.sandboxes.push(O.sandbox),C.sandboxes=yield*I.forEach(C.sandboxes,j=>n.exists(j).pipe(I.orDie,I.map(ie=>ie?j:void 0)),{concurrency:"unbounded"}).pipe(I.map(j=>j.filter(ie=>ie!==void 0))),yield*m(j=>j.insert(w).values({id:C.id,worktree:C.worktree,vcs:C.vcs??null,name:C.name,icon_url:C.icon?.url,icon_color:C.icon?.color,time_created:C.time.created,time_updated:C.time.updated,time_initialized:C.time.initialized,sandboxes:C.sandboxes,commands:C.commands}).onConflictDoUpdate({target:w.id,set:{worktree:C.worktree,vcs:C.vcs??null,name:C.name,icon_url:C.icon?.url,icon_color:C.icon?.color,time_updated:C.time.updated,time_initialized:C.time.initialized,sandboxes:C.sandboxes,commands:C.commands}}).run()),O.id!==re.global&&(yield*m(j=>j.update(he).set({project_id:O.id}).where((0,A.and)((0,A.eq)(he.project_id,re.global),(0,A.eq)(he.directory,O.worktree))).run())),yield*c(C),{project:C,sandbox:O.sandbox}}),B=I.fn("Project.discover")(function*(E){if(E.vcs!=="git"||E.icon?.override||E.icon?.url)return;let L=(yield*n.glob("**/favicon.{ico,png,svg,jpg,jpeg,webp}",{cwd:E.worktree,absolute:!0,include:"file"}).pipe(I.orDie)).sort(($,Be)=>$.length-Be.length)[0];if(!L)return;let U=yield*n.readFile(L).pipe(I.orDie),C=Buffer.from(U).toString("base64"),ie=`data:${Ie.mimeType(L)};base64,${C}`;yield*xe({projectID:E.id,icon:{url:ie}})}),Pe=I.fn("Project.list")(function*(){return yield*m(E=>E.select().from(w).all().map(u))}),pe=I.fn("Project.get")(function*(E){let O=yield*m(L=>L.select().from(w).where((0,A.eq)(w.id,E)).get());return O?u(O):void 0}),xe=I.fn("Project.update")(function*(E){let O=yield*m(U=>U.update(w).set({name:E.name,icon_url:E.icon?.url,icon_color:E.icon?.color,commands:E.commands,time_updated:Date.now()}).where((0,A.eq)(w.id,E.projectID)).returning().get());if(!O)throw new Error(`Project not found: ${E.projectID}`);let L=u(O);return yield*c(L),L}),De=I.fn("Project.initGit")(function*(E){if(E.project.vcs==="git")return E.project;if(!(yield*I.sync(()=>at("git"))))throw new Error("Git is not installed");let O=yield*D(["init","--quiet"],{cwd:E.directory});if(O.code!==0)throw new Error(O.stderr.trim()||O.text.trim()||"Failed to initialize git repository");let{project:L}=yield*k(E.directory);return L}),Ue=I.fn("Project.setInitialized")(function*(E){yield*m(O=>O.update(w).set({time_initialized:Date.now()}).where((0,A.eq)(w.id,E)).run())}),le=I.fn("Project.sandboxes")(function*(E){let O=yield*m(U=>U.select().from(w).where((0,A.eq)(w.id,E)).get());if(!O)return[];let L=u(O);return yield*I.forEach(L.sandboxes,U=>n.isDir(U).pipe(I.orDie,I.map(C=>C?U:void 0)),{concurrency:"unbounded"}).pipe(I.map(U=>U.filter(C=>C!==void 0)))}),ut=I.fn("Project.addSandbox")(function*(E,O){let L=yield*m(j=>j.select().from(w).where((0,A.eq)(w.id,E)).get());if(!L)throw new Error(`Project not found: ${E}`);let U=[...L.sandboxes];U.includes(O)||U.push(O);let C=yield*m(j=>j.update(w).set({sandboxes:U,time_updated:Date.now()}).where((0,A.eq)(w.id,E)).returning().get());if(!C)throw new Error(`Project not found: ${E}`);yield*c(u(C))}),mt=I.fn("Project.removeSandbox")(function*(E,O){let L=yield*m(j=>j.select().from(w).where((0,A.eq)(w.id,E)).get());if(!L)throw new Error(`Project not found: ${E}`);let U=L.sandboxes.filter(j=>j!==O),C=yield*m(j=>j.update(w).set({sandboxes:U,time_updated:Date.now()}).where((0,A.eq)(w.id,E)).returning().get());if(!C)throw new Error(`Project not found: ${E}`);yield*c(u(C))});return g.of({fromDirectory:k,discover:B,list:Pe,get:pe,update:xe,initGit:De,setInitialized:Ue,sandboxes:le,addSandbox:ut,removeSandbox:mt})})),o.defaultLayer=o.layer.pipe(Ye.provide(lt),Ye.provide(Ie.defaultLayer),Ye.provide(br.layer));let{runPromise:F}=Ut(g,o.defaultLayer);function W(n){return F(i=>i.fromDirectory(n))}o.fromDirectory=W,e(W,"fromDirectory");function N(n){return F(i=>i.discover(n))}o.discover=N,e(N,"discover");function p(){return _e.use(n=>n.select().from(w).all().map(i=>u(i)))}o.list=p,e(p,"list");function s(n){let i=_e.use(P=>P.select().from(w).where((0,A.eq)(w.id,n)).get());if(i)return u(i)}o.get=s,e(s,"get");function y(n){_e.use(i=>i.update(w).set({time_initialized:Date.now()}).where((0,A.eq)(w.id,n)).run())}o.setInitialized=y,e(y,"setInitialized");function S(n){return F(i=>i.initGit(n))}o.initGit=S,e(S,"initGit");function X(n){return F(i=>i.update(n))}o.update=X,e(X,"update");function ye(n){return F(i=>i.sandboxes(n))}o.sandboxes=ye,e(ye,"sandboxes");function ne(n,i){return F(P=>P.addSandbox(n,i))}o.addSandbox=ne,e(ne,"addSandbox");function fe(n,i){return F(P=>P.removeSandbox(n,i))}o.removeSandbox=fe,e(fe,"removeSandbox")})(Et||={});var ke;(_=>{let t=ee.create({service:"state"}),r=new Map;function l(g,T,J){return()=>{let F=g(),W=r.get(F);W||(W=new Map,r.set(F,W));let N=W.get(T);if(N)return N.state;let p=T();return W.set(T,{state:p,dispose:J}),p}}_.create=l,e(l,"create");async function u(g){let T=r.get(g);if(!T)return;t.info("waiting for state disposal to complete",{key:g});let J=!1;setTimeout(()=>{J||t.warn("state disposal is taking an unusually long time - if it does not complete in a reasonable time, please report this as a bug",{key:g})},1e4).unref();let F=[];for(let[W,N]of T){if(!N.dispose)continue;let p=typeof W=="function"?W.name:String(W),s=Promise.resolve(N.state).then(y=>N.dispose(y)).catch(y=>{t.error("Error while disposing state:",{error:y,key:g,init:p})});F.push(s)}await Promise.all(F),T.clear(),r.delete(g),J=!0,t.info("state disposal completed",{key:g})}_.dispose=u,e(u,"dispose")})(ke||={});var de=te.create("instance"),oe=new Map,Me={all:void 0};function Bt(t){$e.emit("event",{directory:t,payload:{type:"server.instance.disposed",properties:{directory:t}}})}e(Bt,"emit");function Ft(t){return be(async()=>{let r=t.project&&t.worktree?{directory:t.directory,worktree:t.worktree,project:t.project}:await Et.fromDirectory(t.directory).then(({project:l,sandbox:u})=>({directory:t.directory,worktree:u,project:l}));return await de.provide(r,async()=>{await t.init?.()}),r})}e(Ft,"boot");function Gt(t,r){let l=r.catch(u=>{throw oe.get(t)===l&&oe.delete(t),u});return oe.set(t,l),l}e(Gt,"track");var Z={async provide(t){let r=Te.resolve(t.directory),l=oe.get(r);l||(ee.Default.info("creating instance",{directory:r}),l=Gt(r,Ft({directory:r,init:t.init})));let u=await l;return de.provide(u,async()=>t.fn())},get current(){return de.use()},get directory(){return de.use().directory},get worktree(){return de.use().worktree},get project(){return de.use().project},containsPath(t){return Te.contains(Z.directory,t)?!0:Z.worktree==="/"?!1:Te.contains(Z.worktree,t)},bind(t){let r=de.use();return((...l)=>de.provide(r,()=>t(...l)))},restore(t,r){return de.provide(t,r)},state(t,r){return ke.create(()=>Z.directory,t,r)},async reload(t){let r=Te.resolve(t.directory);ee.Default.info("reloading instance",{directory:r}),await Promise.all([ke.dispose(r),ot(r)]),oe.delete(r);let l=Gt(r,Ft({...t,directory:r}));return Bt(r),await l},async dispose(){let t=Z.directory;ee.Default.info("disposing instance",{directory:t}),await Promise.all([ke.dispose(t),ot(t)]),oe.delete(t),Bt(t)},async disposeAll(){return Me.all||(Me.all=be(async()=>{ee.Default.info("disposing all instances");let t=[...oe.entries()];for(let[r,l]of t){if(oe.get(r)!==l)continue;let u=await l.catch(_=>{ee.Default.warn("instance dispose failed",{key:r,error:_})});if(!u){oe.get(r)===l&&oe.delete(r);continue}oe.get(r)===l&&await de.provide(u,async()=>{await Z.dispose()})}}).finally(()=>{Me.all=void 0})),Me.all}};var Rr=vr.makeMemoMapUnsafe();function je(t){try{let r=Z.current;return wr.provideService(t,we,r)}catch(r){if(!(r instanceof te.NotFound))throw r}return t}e(je,"attach");function Ut(t,r){let l,u=e(()=>l??=Lr.make(r,{memoMap:Rr}),"getRuntime");return{runSync:e(_=>u().runSync(je(t.use(_))),"runSync"),runPromiseExit:e((_,g)=>u().runPromiseExit(je(t.use(_)),g),"runPromiseExit"),runPromise:e((_,g)=>u().runPromise(je(t.use(_)),g),"runPromise"),runFork:e(_=>u().runFork(je(t.use(_))),"runFork"),runCallback:e(_=>u().runCallback(je(t.use(_))),"runCallback")}}e(Ut,"makeRuntime");export{$e as a,be as b,ze as c,Xe as d,H as e,Qr as f,nt as g,Ke as h,tr as i,_e as j,A as k,Ee as l,w as m,he as n,ir as o,Go as p,$o as q,zo as r,ct as s,at as t,re as u,Ie as v,lt as w,On as x,Et as y,Z as z,Rr as A,Ut as B};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
// Built by esbuild from opencode-server source
|
|
2
|
-
if (typeof globalThis.Bun === 'undefined') {
|
|
3
|
-
globalThis.Bun = {
|
|
4
|
-
version: '0.0.0-node-compat',
|
|
5
|
-
stdin: { async text() { const chunks = []; for await (const c of process.stdin) chunks.push(c); return Buffer.concat(chunks).toString(); } },
|
|
6
|
-
which(cmd) { try { return require('child_process').execFileSync('which', [cmd], { encoding: 'utf8' }).trim(); } catch { return null; } },
|
|
7
|
-
};
|
|
8
|
-
}
|
|
9
|
-
if (typeof globalThis.__name === 'undefined') { globalThis.__name = (t, n) => { Object.defineProperty(t, 'name', { value: n, configurable: true }); return t; }; }
|
|
10
|
-
if (typeof globalThis.__export === 'undefined') { globalThis.__export = (t, a) => { for (const k in a) Object.defineProperty(t, k, { get: a[k], enumerable: true }); }; }
|
|
11
|
-
|
|
12
|
-
import{a}from"./chunk-GCMAFSDE.js";import"./chunk-MN5GIJ5E.js";import"./chunk-22MFGOA6.js";import"./chunk-N7PLTD3P.js";import"./chunk-7KKA6WBY.js";import"./chunk-LTCXIXYM.js";import"./chunk-M4CB72HE.js";import"./chunk-MBZTOEAD.js";export{a as ShareNext};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
// Built by esbuild from opencode-server source
|
|
2
|
-
if (typeof globalThis.Bun === 'undefined') {
|
|
3
|
-
globalThis.Bun = {
|
|
4
|
-
version: '0.0.0-node-compat',
|
|
5
|
-
stdin: { async text() { const chunks = []; for await (const c of process.stdin) chunks.push(c); return Buffer.concat(chunks).toString(); } },
|
|
6
|
-
which(cmd) { try { return require('child_process').execFileSync('which', [cmd], { encoding: 'utf8' }).trim(); } catch { return null; } },
|
|
7
|
-
};
|
|
8
|
-
}
|
|
9
|
-
if (typeof globalThis.__name === 'undefined') { globalThis.__name = (t, n) => { Object.defineProperty(t, 'name', { value: n, configurable: true }); return t; }; }
|
|
10
|
-
if (typeof globalThis.__export === 'undefined') { globalThis.__export = (t, a) => { for (const k in a) Object.defineProperty(t, k, { get: a[k], enumerable: true }); }; }
|
|
11
|
-
|
|
12
|
-
import{c as n,d as o}from"./chunk-SILEE7UA.js";import"./chunk-GCMAFSDE.js";import"./chunk-MN5GIJ5E.js";import"./chunk-22MFGOA6.js";import"./chunk-N7PLTD3P.js";import"./chunk-7KKA6WBY.js";import"./chunk-LTCXIXYM.js";import"./chunk-M4CB72HE.js";import"./chunk-MBZTOEAD.js";var t=o.extend({name:o.shape.name.unwrap(),branch:o.shape.branch.unwrap(),directory:o.shape.directory.unwrap()}),i={async configure(e){let r=await n.makeWorktreeInfo(e.name??void 0);return{...e,name:r.name,branch:r.branch,directory:r.directory}},async create(e){let r=t.parse(e);await n.createFromInfo({name:r.name,directory:r.directory,branch:r.branch})},async remove(e){let r=t.parse(e);await n.remove({directory:r.directory})},target(e){return{type:"local",directory:t.parse(e).directory}}};export{i as WorktreeAdaptor};
|