registry  /  @soloco/client  /  0.2.0

@soloco/client@0.2.0

Soloco 本地客户端 daemon — local-first 长期使命型 agent 操作系统的本地执行权威

Static Scan Results

scanned 3h ago · by rust-scanner

Static analysis flagged 17 finding(s) at 72.0% confidence. This version is warn-only unless an AI or security-team review confirms malicious behavior.

Static reason
One or more suspicious static signals were detected.

Decision evidence

public snapshot
Behavioral surface
Source
ChildProcessCryptoEnvironmentVarsFilesystemNativeBindingsNetworkShell
Supply chain
HighEntropyStringsMinifiedObfuscatedUrlStrings
Manifest
NoLicense
scanned 6 file(s), 1.88 MB of source, external domains: 127.0.0.1, api.github.com, code.claude.com, github.com, json-schema.org, react.dev, soloco.cloud, www.w3.org

Source & flagged code

8 flagged · loading source
package.jsonView file
scripts.postinstall = node postinstall.mjs
High
Install Time Lifecycle Scripts

Package defines install-time lifecycle scripts.

package.jsonView on unpkg
scripts.postinstall = node postinstall.mjs
Medium
Ambiguous Install Lifecycle Script

Install-time lifecycle script is not statically allowlisted and needs review.

package.jsonView on unpkg
dist/cli.jsView file
1#!/usr/bin/env -S node --disable-warning=ExperimentalWarning L2: import {existsSync,statSync,accessSync,constants,readFileSync,openSync,readSync,closeSync,writeFileSync,mkdirSync,renameSync,rmSync,realpathSync,readdirSync}from'node:fs';import {j... L3: `)}var Kr=e=>(t,n,o,r)=>{let i=o?Object.assign(o,{async:false}):{async:false},a=t._zod.run({value:n,issues:[]},i);if(a instanceof Promise)throw new xt;if(a.issues.length){let s=new...
High
Child Process

Package source references child process execution.

dist/cli.jsView on unpkg · L1
24Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let d of this.seen.entries()){let p=d[1];if(t===d[0]){a(d);continue}if(o.external){let g=o.ex... L25: `))}var l0=new Set(["needs_user_decision","needs_execution_permission"]);function ew(e,t){switch(e.status){case "completed":return t?"assisted_success":"autonomous_success";case "f... L26: ${M}`:M;},w=()=>{k||(k=setTimeout(()=>{m||d("SIGKILL");},az));},x=e.timeoutMs&&e.timeoutMs>0?setTimeout(()=>{m||y||(v=true,d("SIGTERM"),I(`Local runtime timed out after ${e.timeout...
High
Shell

Package source references shell execution.

dist/cli.jsView on unpkg · L24
23L24: Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let d of this.seen.entries()){let p=d[1];if(t===d[0]){a(d);continue}if(o.external){let g=o.ex... L25: `))}var l0=new Set(["needs_user_decision","needs_execution_permission"]);function ew(e,t){switch(e.status){case "completed":return t?"assisted_success":"autonomous_success";case "f... L26: ${M}`:M;},w=()=>{k||(k=setTimeout(()=>{m||d("SIGKILL");},az));},x=e.timeoutMs&&e.timeoutMs>0?setTimeout(()=>{m||y||(v=true,d("SIGTERM"),I(`Local runtime timed out after ${e.timeout...
High
Same File Env Network Execution

A single source file combines environment access, network access, and code or shell execution; review context before blocking.

dist/cli.jsView on unpkg · L23
21L22: `);}g.write("payload.value = newResult;"),g.write("return payload;");let _=g.compile();return (I,w)=>_(f,I,w)},i,a=cr,s=!ni.jitless,l=s&&bl.value,d=t.catchall,p;e._zod.parse=(f,g)=... L23: L24: Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let d of this.seen.entries()){let p=d[1];if(t===d[0]){a(d);continue}if(o.external){let g=o.ex... L25: `))}var l0=new Set(["needs_user_decision","needs_execution_permission"]);function ew(e,t){switch(e.status){case "completed":return t?"assisted_success":"autonomous_success";case "f... L26: ${M}`:M;},w=()=>{k||(k=setTimeout(()=>{m||d("SIGKILL");},az));},x=e.timeoutMs&&e.timeoutMs>0?setTimeout(()=>{m||y||(v=true,d("SIGTERM"),I(`Local runtime timed out after ${e.timeout...
High
Command Output Exfiltration

Source combines command execution, command-output handling, and outbound requests; review data flow before blocking.

dist/cli.jsView on unpkg · L21
1#!/usr/bin/env -S node --disable-warning=ExperimentalWarning L2: import {existsSync,statSync,accessSync,constants,readFileSync,openSync,readSync,closeSync,writeFileSync,mkdirSync,renameSync,rmSync,realpathSync,readdirSync}from'node:fs';import {j... L3: `)}var Kr=e=>(t,n,o,r)=>{let i=o?Object.assign(o,{async:false}):{async:false},a=t._zod.run({value:n,issues:[]},i);if(a instanceof Promise)throw new xt;if(a.issues.length){let s=new... L4: `).filter(a=>a),r=Math.min(...o.map(a=>a.length-a.trimStart().length)),i=o.map(a=>a.slice(r)).map(a=>" ".repeat(this.indent*2)+a);for(let a of i)this.content.push(a);}compile(){let... L5: `))}};var Sd={major:4,minor:1,patch:12};var N=h("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=Sd;let o=[...e._zod.def.checks??[]];e._zod.... L6: if (${w}.issues.length) { ... L23: L24: Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let d of this.seen.entries()){let p=d[1];if(t===d[0]){a(d);continue}if(o.external){let g=o.ex... L25: `))}var l0=new Set(["needs_user_decision","needs_execution_permission"]);function ew(e,t){switch(e.status){case "completed":return t?"assisted_succes
Low
Weak Crypto

Package source references weak cryptographic algorithms.

dist/cli.jsView on unpkg · L1
postinstall.mjsView file
17Cross-file remote execution chain: postinstall.mjs spawns dist/cli.js; helper contains network access plus dynamic code execution. L17: L18: import { spawn } from 'node:child_process'; L19: import { readFileSync } from 'node:fs'; ... L31: // Read our own version for the banner. Best-effort: a missing/garbled L32: // package.json just drops the version line, never throws. L33: function readVersion() { ... L38: ); L39: return JSON.parse(readFileSync(pkgPath, 'utf8')).version || ''; L40: } catch { ... L47: // dev `pnpm install` (local workspace), `npx` (temp install), and being pulled L48: // in as a dependency — none set npm[redacted]=true. L49: if (process.env.npm[redacted] === 'true') {
High
Cross File Remote Execution Context

Source spawns a local helper that also contains network and dynamic execution context; review data flow before blocking.

postinstall.mjsView on unpkg · L17

Findings

6 High4 Medium7 Low
HighInstall Time Lifecycle Scriptspackage.json
HighChild Processdist/cli.js
HighShelldist/cli.js
HighSame File Env Network Executiondist/cli.js
HighCommand Output Exfiltrationdist/cli.js
HighCross File Remote Execution Contextpostinstall.mjs
MediumAmbiguous Install Lifecycle Scriptpackage.json
MediumNetwork
MediumEnvironment Vars
MediumStructural Risk Force Deep Review
LowScripts Present
LowWeak Cryptodist/cli.js
LowFilesystem
LowObfuscated
LowHigh Entropy Strings
LowUrl Strings
LowNo License