Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
AgentsWorkStudio runtime bridge service for machine-level agent runtime integration
AI Security Review
scanned 26d ago · by lpm-firewall-ai
The package is a privileged runtime bridge that can launch and control AI-agent/terminal sessions after runtime startup. Its install hook also provisions Playwright Chromium and may request OS dependencies when npm runs as root.
Static reason
One or more suspicious static signals were detected.; previous stored version diff introduced dangerous source
Trigger
npm postinstall; later authenticated bridge/API or explicit awsb CLI actions
Impact
Installation can download browser artifacts; a configured authenticated scheduler can receive agent command output and invoke runtime management.
Mechanism
browser provisioning plus authenticated agent, terminal, and service control
Rationale
The static hints reflect real powerful functionality, especially install-time browser provisioning and authenticated remote agent control, but do not establish malicious intent or a covert attack chain. Flag as a warning for dangerous capability and install-time side effects.
1#!/usr/bin/env node
L2: import{existsSync as D,readFileSync as B}from"node:fs";import E from"node:os";import x from"node:path";import M from"cors";import I from"express";import{adapterRegistry as O}from"....
L3:
High
Child Process
Package source references child process execution.
1#!/usr/bin/env node
L2: import{existsSync as D,readFileSync as B}from"node:fs";import E from"node:os";import x from"node:path";import M from"cors";import I from"express";import{adapterRegistry as O}from"....
L3:
1import{Router as F}from"express";import I from"axios";import{spawn as N}from"node:child_process";import{createHash as $,timingSafeEqual as M}from"node:crypto";import{getBridgeVersi...
L2: [output truncated]`:r}function oe(r,t){return new Promise((e,s)=>{const n=N(r,t,{shell:!1,windowsHide:!0});let a="",i="";n.stdout.on("data",o=>{a+=o.toString("utf8")}),n.stderr.on(...
L3:
High
Command Output Exfiltration
Source combines command execution, command-output handling, and outbound requests; review data flow before blocking.
1Trigger-reachable command-output exfiltration chain: scripts.start -> dist/index.js -> dist/routes/instance.js
L1: import{Router as F}from"express";import I from"axios";import{spawn as N}from"node:child_process";import{createHash as $,timingSafeEqual as M}from"node:crypto";import{getBridgeVersi...
L2: [output truncated]`:r}function oe(r,t){return new Promise((e,s)=>{const n=N(r,t,{shell:!1,windowsHide:!0});let a="",i="";n.stdout.on("data",o=>{a+=o.toString("utf8")}),n.stderr.on(...
L3:
High
Trigger Reachable Command Output Exfiltration
A manifest entrypoint or package-local install chain reaches command-output exfiltration behavior.
1import{Router as F}from"express";import I from"axios";import{spawn as N}from"node:child_process";import{createHash as $,timingSafeEqual as M}from"node:crypto";import{getBridgeVersi...
L2: [output truncated]`:r}function oe(r,t){return new Promise((e,s)=>{const n=N(r,t,{shell:!1,windowsHide:!0});let a="",i="";n.stdout.on("data",o=>{a+=o.toString("utf8")}),n.stderr.on(...
L3:
1import{spawn as E}from"node:child_process";import{EventEmitter as x}from"node:events";import*as w from"node:fs";import*as T from"node:net";import*as O from"node:os";import*as h fro...
L2: `)):t}return this.sdkModule}async waitForServer(t,e,o,r){const i=Date.now()+o;for(;Date.now()<i;){try{if((await t.session.list({query:{directory:e}})).data!==void 0)return}catch{}a...
High
Same File Env Network Execution
A single source file combines environment access, network access, and code or shell execution; review context before blocking.
1import{Router as F}from"express";import I from"axios";import{spawn as N}from"node:child_process";import{createHash as $,timingSafeEqual as M}from"node:crypto";
1import{spawnSync as f}from"node:child_process";import{createInterface as X}from"node:readline/promises";import{existsSync as g,mkdirSync as T,readFileSync as Z,rmSync as ee,unlinkSync as F,writeFileSync as
1Trigger-reachable command-output exfiltration chain: scripts.start -> dist/index.js -> dist/routes/instance.js
L1: import{Router as F}from"express";import I from"axios";import{spawn as N}from"node:child_process";import{createHash as $,timingSafeEqual as M}from"node:crypto";import{getBridgeVersi...
L2: [output truncated]`:r}function oe(r,t){return new Promise((e,s)=>{const n=N(r,t,{shell:!1,windowsHide:!0});let a="",i="";n.stdout.on("data",o=>{a+=o.toString("utf8")}),n.stderr.on(...
L3:
High
Trigger Reachable Command Output Exfiltration
A manifest entrypoint or package-local install chain reaches command-output exfiltration behavior.
2`)):t}return this.sdkModule}async waitForServer(t,e,o,r){const i=Date.now()+o;for(;Date.now()<i;){try{if((await t.session.list({query:{directory:e}})).data!==void 0)return}catch{}await new Promise(s=>setTimeout(s,300))}throw new Error(`OpenCode server (port ${r}) did not start within ${o}ms`)}recordStartupOutput(t,e){const o=e.trim();o&&(t.startupOutput=[...t.startupOutput??[],o].slice(-8))}formatStartupExitMessage(t,e){const o=t.signal?`signal ${t.signal}`:`code ${t.code??"unknown"}`,r=(e??[]).join(`
High
Same File Env Network Execution
A single source file combines environment access, network access, and code or shell execution; review context before blocking.
3`).trim();return r?`OpenCode server exited during startup (${o}): ${r}`:`OpenCode server exited during startup (${o}). Please check whether opencode serve can run in this workspace.`}dispatchInitialPrompt(t,e){this.sendMessage(t,e).catch(o=>{const r=o instanceof Error?o.message:String(o);this.emitEvent({type:"error",sessionId:t,timestamp:new Date().toISOString(),data:{text:`OpenCode initial prompt failed: ${r}`}})})}startSseLoop(t,e){e.sseActive=!0;const o=new AbortController;e.sseAbortController=o,this.runSseLoop(t,e,o).catch(r=>{o.signal.aborted||console.error("[OpencodeSdkAdapter] SSE loop ...