alchemylab 3.0.8 → 3.0.9
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/cli.js +1420 -1411
- package/dist/document-textconv.js +17 -17
- package/dist/http-server.js +377 -356
- package/dist/index.js +377 -356
- package/dist/mcp-direct.js +908 -887
- package/package.json +1 -1
|
@@ -95,35 +95,35 @@ if(0===r.exit)return
|
|
|
95
95
|
const n=await o(["pull",e],exports.PULL_TIMEOUT_MS)
|
|
96
96
|
return 0!==n.exit?`docker pull ${e} failed: ${(n.stderr||String(n.exit)).trim()}`:void 0}
|
|
97
97
|
const s=t(31421),i=t(16698),a=t(83129),c=t(88196),l=t(4334),u=new i.AsyncLocalStorage
|
|
98
|
-
exports.DOCKER_OP_TIMEOUT_MS=6e4,exports.PULL_TIMEOUT_MS=3e5},26166(e,exports){exports.hardenedCreateArgs=function(e){return["--network",e.network,"--user",e.user,"--cap-drop","ALL",...(e.capAdds??[]).flatMap(e=>["--cap-add",e]),...Object.entries(e.sysctls??{}).flatMap(([e,t])=>["--sysctl",`${e}=${t}`]),"--security-opt","no-new-privileges","--read-only","--tmpfs","/tmp:rw,nosuid,nodev,exec,size=256m",...(e.extraTmpfs??[]).flatMap(e=>["--tmpfs",e]),"--ipc","none","--tmpfs",`/dev/shm:rw,nosuid,nodev,size=${e.shmSizeMb??64}m`,"--memory",e.memory,"--memory-swap",e.memory,"--cpus",String(e.cpus),...e.cpuset?["--cpuset-cpus",e.cpuset]:[],"--pids-limit",String(e.pidsLimit),"-e","HOME=/tmp","-e","XDG_CACHE_HOME=/tmp/.cache","-e","MYPY_CACHE_DIR=/tmp/.mypy_cache","-e","RUFF_CACHE_DIR=/tmp/.ruff_cache","-e","PYTHONPYCACHEPREFIX=/tmp/.pycache","-e","npm_config_cache=/tmp/.npm",..."none"===e.network?["-e","UV_OFFLINE=1","-e","PIP_NO_INDEX=1","-e","npm_config_offline=true"]:[]]}},83129(e,exports,t){function r(e){const t=
|
|
98
|
+
exports.DOCKER_OP_TIMEOUT_MS=6e4,exports.PULL_TIMEOUT_MS=3e5},26166(e,exports){exports.hardenedCreateArgs=function(e){return["--network",e.network,"--user",e.user,"--cap-drop","ALL",...(e.capAdds??[]).flatMap(e=>["--cap-add",e]),...Object.entries(e.sysctls??{}).flatMap(([e,t])=>["--sysctl",`${e}=${t}`]),"--security-opt","no-new-privileges","--read-only","--tmpfs","/tmp:rw,nosuid,nodev,exec,size=256m",...(e.extraTmpfs??[]).flatMap(e=>["--tmpfs",e]),"--ipc","none","--tmpfs",`/dev/shm:rw,nosuid,nodev,size=${e.shmSizeMb??64}m`,"--memory",e.memory,"--memory-swap",e.memory,"--cpus",String(e.cpus),...e.cpuset?["--cpuset-cpus",e.cpuset]:[],"--pids-limit",String(e.pidsLimit),"-e","HOME=/tmp","-e","XDG_CACHE_HOME=/tmp/.cache","-e","MYPY_CACHE_DIR=/tmp/.mypy_cache","-e","RUFF_CACHE_DIR=/tmp/.ruff_cache","-e","PYTHONPYCACHEPREFIX=/tmp/.pycache","-e","npm_config_cache=/tmp/.npm",..."none"===e.network?["-e","UV_OFFLINE=1","-e","PIP_NO_INDEX=1","-e","npm_config_offline=true"]:[]]}},83129(e,exports,t){function r(e){return m.find(t=>t.image===e)}function n(e){const t=h.get(e.image)
|
|
99
99
|
if(t)return t.work
|
|
100
|
-
const r=(async()=>{const t=await(0,
|
|
100
|
+
const r=(async()=>{const t=await(0,d.docker)(["image","inspect","--format",`{{ index .Config.Labels "${f}" }}`,e.image],d.DOCKER_OP_TIMEOUT_MS)
|
|
101
101
|
if(t.spawnError)return t.spawnError
|
|
102
102
|
if(0===t.exit&&t.stdout.trim()===e.recipeHash)return
|
|
103
|
-
const r=
|
|
104
|
-
try{
|
|
105
|
-
const t=await(0,
|
|
103
|
+
const r=c.mkdtempSync(u.join(l.tmpdir(),"alchemylab-image-"))
|
|
104
|
+
try{c.writeFileSync(u.join(r,"Dockerfile"),e.dockerfile)
|
|
105
|
+
const t=await(0,d.docker)(["build","--label",`${f}=${e.recipeHash}`,"-t",e.image,r],exports.BUILD_TIMEOUT_MS)
|
|
106
106
|
if(0!==t.exit){const r=(t.stderr||t.stdout||"").trim().split("\n").slice(-12).join("\n")
|
|
107
|
-
return`building ${e.image} failed${t.timedOut?" (timed out)":""}: ${r}`}return}finally{
|
|
108
|
-
return
|
|
107
|
+
return`building ${e.image} failed${t.timedOut?" (timed out)":""}: ${r}`}return}finally{c.rmSync(r,{recursive:!0,force:!0})}})()
|
|
108
|
+
return h.set(e.image,{work:r,since:Date.now()}),r.then(t=>{t?w.set(e.image,{error:t,at:Date.now()}):w.delete(e.image)},t=>{w.set(e.image,{error:t instanceof Error?t.message:String(t),at:Date.now()})}).finally(()=>h.delete(e.image)),r}var o,s=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r)
|
|
109
109
|
var o=Object.getOwnPropertyDescriptor(t,r)
|
|
110
|
-
o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),
|
|
110
|
+
o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||(o=function(e){return o=Object.getOwnPropertyNames||function(e){var t=[]
|
|
111
111
|
for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r)
|
|
112
|
-
return t},
|
|
112
|
+
return t},o(e)},function(e){if(e&&e.__esModule)return e
|
|
113
113
|
var t={}
|
|
114
|
-
if(null!=e)for(var r=
|
|
115
|
-
return
|
|
116
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.BUILD_TIMEOUT_MS=void 0,exports.localRecipeFor=function(e){
|
|
114
|
+
if(null!=e)for(var r=o(e),n=0;n<r.length;n++)"default"!==r[n]&&s(t,e,r[n])
|
|
115
|
+
return i(t,e),t})
|
|
116
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.BUILD_TIMEOUT_MS=void 0,exports.localRecipeFor=r,exports.registerLocalRecipe=function(e){r(e.image)||m.push(e)},exports.ensureLocalImage=n,exports.localImageState=async function(e){const t=h.get(e.image)
|
|
117
117
|
if(t)return{state:"building",since:t.since}
|
|
118
|
-
const r=await(0,
|
|
118
|
+
const r=await(0,d.docker)(["image","inspect","--format",`{{ index .Config.Labels "${f}" }}`,e.image],d.DOCKER_OP_TIMEOUT_MS)
|
|
119
119
|
if(r.spawnError)return{state:"no-docker",error:"Docker is not installed on this machine (no docker command)"}
|
|
120
120
|
if(0===r.exit&&r.stdout.trim()===e.recipeHash)return{state:"ready"}
|
|
121
121
|
if(/cannot connect to the docker daemon|is the docker daemon running|error during connect/i.test(r.stderr))return{state:"no-docker",error:"Docker is not running on this machine"}
|
|
122
|
-
const n=
|
|
123
|
-
return n?{state:"failed",...n}:{state:"missing"}},exports.startLocalImageBuild=function(e){return
|
|
124
|
-
const a
|
|
122
|
+
const n=w.get(e.image)
|
|
123
|
+
return n?{state:"failed",...n}:{state:"missing"}},exports.startLocalImageBuild=function(e){return w.delete(e.image),n(e).catch(()=>{}),{since:h.get(e.image)?.since??Date.now()}}
|
|
124
|
+
const c=a(t(73024)),l=a(t(48161)),u=a(t(76760)),d=t(81618),p=t(44853),f="dev.alchemylab.recipe"
|
|
125
125
|
exports.BUILD_TIMEOUT_MS=15e5
|
|
126
|
-
const
|
|
126
|
+
const m=[{image:p.OFFICE_BOX_IMAGE,dockerfile:p.OFFICE_BOX_DOCKERFILE,recipeHash:p.OFFICE_BOX_RECIPE_HASH}],h=new Map,w=new Map},61260(e,exports,t){exports.H=void 0,exports.readOomKills=async function(e){const t=await(0,r.docker)(["exec",e,"cat","/sys/fs/cgroup/memory.events"],n)
|
|
127
127
|
if(0===t.exit){const e=/^oom_kill (\d+)/m.exec(t.stdout)
|
|
128
128
|
if(e)return Number(e[1])}const o=await(0,r.docker)(["exec",e,"cat","/sys/fs/cgroup/memory/memory.oom_control"],n)
|
|
129
129
|
if(0===o.exit){const e=/^oom_kill (\d+)/m.exec(o.stdout)
|