registry  /  @vpxa/aikit  /  0.1.383

@vpxa/aikit@0.1.383

⚠ Under review

Local-first AI developer toolkit — knowledge base, code analysis, context management, and developer tools for LLM agents

Static Scan Results

scanned 3h ago · by rust-scanner

Static analysis flagged 23 finding(s) at 93.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.; previous stored version diff introduced dangerous source

Decision evidence

public snapshot
Behavioral surface
Source
ChildProcessCryptoDynamicRequireEnvironmentVarsEvalFilesystemNetworkShell
Supply chain
HighEntropyStringsMinifiedProtestwareTelemetryUrlStrings
ManifestNo manifest risk signals triggered.
scanned 118 file(s), 4.05 MB of source, external domains: 127.0.0.1, adr.github.io, api.bing.microsoft.com, api.bitbucket.org, api.github.com, api.search.brave.com, bitbucket.org, cdn.jsdelivr.net, dev.azure.com, github.com, gitlab.com, html.duckduckgo.com, json-schema.org, pro.reactflow.dev, react.dev, reactflow.dev, registry.npmjs.org, rolldown.rs, sql.js.org, unpkg.com, www.bing.com, www.googleapis.com, www.mojeek.com, www.w3.org
Oversized source lightweight scan
scaffold/dist/definitions/skills/c4-architecture.mjs3.81 MB file, sampled 256 KB
NetworkMinifiedUrlStringsreact.devrolldown.rswww.w3.org
scaffold/dist/definitions/skills/docs.mjs2.65 MB file, sampled 256 KB
HighEntropyStringsUrlStringsjson-schema.org

Source & flagged code

13 flagged · loading source
package.jsonView file
scripts.postinstall = node ./bin/postinstall-managed-launcher.mjs
High
Install Time Lifecycle Scripts

Package defines install-time lifecycle scripts.

package.jsonView on unpkg
packages/tools/dist/index.jsView file
1import{a as e,n as t,o as n,r,t as i}from"./import-resolver-nPrVzU5s.js";import{access as a,mkdir as o,readFile as s,readdir as c,rename as l,stat as u,writeFile as d}from"node:fs/... L2: `)){if(!a)continue;if(a.startsWith(`## `)){i=a.slice(3).split(`...`)[0];continue}let e=a[0],o=a[1],s=a.slice(3).trim();e===`?`&&o===`?`?r.push(s):(e!==` `&&e!==`?`&&t.push({status:...
High
Child Process

Package source references child process execution.

packages/tools/dist/index.jsView on unpkg · L1
1import{a as e,n as t,o as n,r,t as i}from"./import-resolver-nPrVzU5s.js";import{access as a,mkdir as o,readFile as s,readdir as c,rename as l,stat as u,writeFile as d}from"node:fs/... L2: `)){if(!a)continue;if(a.startsWith(`## `)){i=a.slice(3).split(`...`)[0];continue}let e=a[0],o=a[1],s=a.slice(3).trim();e===`?`&&o===`?`?r.push(s):(e!==` `&&e!==`?`&&t.push({status:... L3: `).trim()||t.message||`Command failed`}async function et(e={}){if(Qe>=2)throw Error(`Too many concurrent check runs (${Qe}/2). Retry when one finishes or use targeted check({ files... L4: `).length-1,a=t.slice(r).match(/export\s+(?:async\s+)?(\w+)/);l.push({name:n[1],path:e.record.sourcePath,line:e.record.startLine+i,kind:a?.[1]??`unknown`})}}let f=new Map;for(let e... L5: `)){let e=t.match(/^\s*-\s+['"]?([^'"#\s]+)['"]?\s*$/);e&&n.push(e[1])}}let i=[];for(let t of n)if(t.endsWith(`/*`)||t.endsWith(`/**`)){let n=g(e,t.replace(/\/\*+$/,``));if(I(n))tr... L6: `).map(e=>e.trim()).filter(e=>e.length>0)}}function wt(e){let t=[];for(let n of e){if(n.length<=xt){t.push(n);continue}let e=n.split(` L7: `),r=``;for(let n of e){let e=Tt(n);for(let n of e)r.length+n.length+1>xt&&r.length>0&&(t.push(r.trim()),r=``),r+=(r.
High
Cloud Metadata Access

Source reaches cloud instance metadata or link-local credential endpoints.

packages/tools/dist/index.jsView on unpkg · L1
1import{a as e,n as t,o as n,r,t as i}from"./import-resolver-nPrVzU5s.js";import{access as a,mkdir as o,readFile as s,readdir as c,rename as l,stat as u,writeFile as d}from"node:fs/... L2: `)){if(!a)continue;if(a.startsWith(`## `)){i=a.slice(3).split(`...`)[0];continue}let e=a[0],o=a[1],s=a.slice(3).trim();e===`?`&&o===`?`?r.push(s):(e!==` `&&e!==`?`&&t.push({status:... L3: `).trim()||t.message||`Command failed`}async function et(e={}){if(Qe>=2)throw Error(`Too many concurrent check runs (${Qe}/2). Retry when one finishes or use targeted check({ files... L4: `).length-1,a=t.slice(r).match(/export\s+(?:async\s+)?(\w+)/);l.push({name:n[1],path:e.record.sourcePath,line:e.record.startLine+i,kind:a?.[1]??`unknown`})}}let f=new Map;for(let e... L5: `)){let e=t.match(/^\s*-\s+['"]?([^'"#\s]+)['"]?\s*$/);e&&n.push(e[1])}}let i=[];for(let t of n)if(t.endsWith(`/*`)||t.endsWith(`/**`)){let n=g(e,t.replace(/\/\*+$/,``));if(I(n))tr... L6: `).map(e=>e.trim()).filter(e=>e.length>0)}}function wt(e){let t=[];for(let n of e){if(n.length<=xt){t.push(n);continue}let e=n.split(` L7: `),r=``;for(let n of e){let e=Tt(n);for(let n of e)r.length+n.length+1>xt&&r.length>0&&(t.push(r.trim()),r=``),r+=(r.
Medium
Unsafe Vm Context

Package source executes code through a VM context API.

packages/tools/dist/index.jsView on unpkg · L1
1import{a as e,n as t,o as n,r,t as i}from"./import-resolver-nPrVzU5s.js";import{access as a,mkdir as o,readFile as s,readdir as c,rename as l,stat as u,writeFile as d}from"node:fs/... L2: `)){if(!a)continue;if(a.startsWith(`## `)){i=a.slice(3).split(`...`)[0];continue}let e=a[0],o=a[1],s=a.slice(3).trim();e===`?`&&o===`?`?r.push(s):(e!==` `&&e!==`?`&&t.push({status:... L3: `).trim()||t.message||`Command failed`}async function et(e={}){if(Qe>=2)throw Error(`Too many concurrent check runs (${Qe}/2). Retry when one finishes or use targeted check({ files... L4: `).length-1,a=t.slice(r).match(/export\s+(?:async\s+)?(\w+)/);l.push({name:n[1],path:e.record.sourcePath,line:e.record.startLine+i,kind:a?.[1]??`unknown`})}}let f=new Map;for(let e... L5: `)){let e=t.match(/^\s*-\s+['"]?([^'"#\s]+)['"]?\s*$/);e&&n.push(e[1])}}let i=[];for(let t of n)if(t.endsWith(`/*`)||t.endsWith(`/**`)){let n=g(e,t.replace(/\/\*+$/,``));if(I(n))tr... L6: `).map(e=>e.trim()).filter(e=>e.length>0)}}function wt(e){let t=[];for(let n of e){if(n.length<=xt){t.push(n);continue}let e=n.split(` L7: `),r=``;for(let n of e){let e=Tt(n);for(let n of e)r.length+n.length+1>xt&&r.length>0&&(t.push(r.trim()),r=``),r+=(r.
Low
Weak Crypto

Package source references weak cryptographic algorithms.

packages/tools/dist/index.jsView on unpkg · L1
scaffold/dist/definitions/bodies.mjsView file
486- [ ] **SSRF protection**: URLs validated against allowlist, no open redirects, internal IPs blocked L487: - [ ] **eval/Function prevention**: No dynamic code execution from user input (\`eval()\`, \`new Function()\`, \`vm.runInNewContext()\`) L488: - [ ] **Path traversal**: File paths sanitized, no \`..\` sequences reaching outside allowed directories
Low
Eval

Package source references a known benign dynamic code generation pattern.

scaffold/dist/definitions/bodies.mjsView on unpkg · L486
bin/aikit.mjsView file
53L54: await import(pathToFileURL(serverPath).href); L55: } else {
Medium
Dynamic Require

Package source references dynamic require/import behavior.

bin/aikit.mjsView on unpkg · L53
packages/server/dist/proxy.jsView file
1import{n as e}from"./auth-7LFAZQBu.js";import{fileURLToPath as t}from"node:url";import{spawn as n}from"node:child_process";import{homedir as r}from"node:os";import{createInterface ... L2: `);for(let e of n.split(` L3: `))e.startsWith(`data: `)?t.push(e.slice(6)):e.startsWith(`data:`)&&t.push(e.slice(5));return t}const o={input:process.stdin,output:process.stdout,error:process.stderr,fetchImpl:gl... L4: `);let v=n.readTokenImpl();if(!v){n.error.write(`[aikit-proxy] No token found at ~/.aikit/token ... L10: L11: `))if(t.trim())for(let e of a(t))S(n.output,e)}else S(n.output,i)}catch(t){S(n.output,h(e,t))}}async function c(e,t=globalThis.fetch){try{return(await t(`${e}/health`,{method:`GET`... L12: `)?t:`${t}\n`)}function h(e,t){let n=null;try{n=JSON.parse(e).id??null}catch{n=null}return JSON.stringify({jsonrpc:`2.0`,id:n,error:{code:-32603,message:`Proxy error: ${g(t)}`}})}f...
High
Same File Env Network Execution

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

packages/server/dist/proxy.jsView on unpkg · L1
packages/browser/dist/index.jsView file
matchType = previous_version_dangerous_delta matchedPackage = @vpxa/aikit@0.1.377 matchedIdentity = npm:QHZweGEvYWlraXQ:0.1.377 similarity = 0.686 summary = stored previous version shares package body but lacks this dangerous source file
Critical
Previous Version Dangerous Delta

This package version adds a dangerous source file absent from the previous stored version; route for source-aware review.

packages/browser/dist/index.jsView on unpkg
1import{exec as e,execFile as t,execFileSync as n,execSync as r}from"node:child_process";import{existsSync as i,mkdirSync as a,readFileSync as o,unlinkSync as s,writeFileSync as c}f... L2: `)}return JSON.stringify(t,null,2)}catch{return e}}function I(e,t=0,n=[]){let r=` `.repeat(t),i=typeof e.role==`string`?e.role.toUpperCase():``,a=typeof e.ref==`string`?e.ref:``,o... L3: const text = await r.text();
High
Command Output Exfiltration

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

packages/browser/dist/index.jsView on unpkg · L1
packages/store/dist/index.jsView file
113Cross-file remote execution chain: packages/store/dist/index.js spawns packages/server/dist/index.js; helper contains network access plus dynamic code execution. L113: SELECT knowledge_id, 'default', '1', ?, 'float32', embedding, ? L114: FROM ${t.name}`,[a,r]);let s=e.queryAll(`SELECT COUNT(*) AS cnt FROM memory_embeddings`)[0]?.cnt??0;i+=s-o}i>0&&oe.info(`[migration v4] backfilled ${i} embeddings into memory_embed... L115: CREATE TABLE IF NOT EXISTS ${Pe} ( ... L662: entry_id ASC L663: LIMIT ?`);return{create(e,n){t.run(e,n??`working`)},get(e){return n.get(e)},touch(e){r.run(e)},updateScore(e,t){i.run(t,e)},updateConfidence(e,t){a.run(t,e)},updateTier(e,t){o.run(...
High
Cross File Remote Execution Context

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

packages/store/dist/index.jsView on unpkg · L113
packages/chunker/wasm/tree-sitter-go.wasmView file
path = packages/chunker/wasm/tree-sitter-go.wasm kind = wasm_module sizeBytes = 235957 magicHex = [redacted]
Medium
Ships Wasm Module

Package ships WebAssembly modules.

packages/chunker/wasm/tree-sitter-go.wasmView on unpkg
scaffold/dist/definitions/skills/docs.mjsView file
path = [redacted].mjs kind = oversized_source_file sizeBytes = 2781048 magicHex = [redacted]
High
Oversized Source File

Package contains source files above the static scanner size ceiling.

scaffold/dist/definitions/skills/docs.mjsView on unpkg

Findings

1 Critical8 High7 Medium7 Low
CriticalPrevious Version Dangerous Deltapackages/browser/dist/index.js
HighInstall Time Lifecycle Scriptspackage.json
HighChild Processpackages/tools/dist/index.js
HighShell
HighSame File Env Network Executionpackages/server/dist/proxy.js
HighCommand Output Exfiltrationpackages/browser/dist/index.js
HighCloud Metadata Accesspackages/tools/dist/index.js
HighCross File Remote Execution Contextpackages/store/dist/index.js
HighOversized Source Filescaffold/dist/definitions/skills/docs.mjs
MediumDynamic Requirebin/aikit.mjs
MediumUnsafe Vm Contextpackages/tools/dist/index.js
MediumNetwork
MediumEnvironment Vars
MediumProtestware
MediumShips Wasm Modulepackages/chunker/wasm/tree-sitter-go.wasm
MediumStructural Risk Force Deep Review
LowScripts Present
LowEvalscaffold/dist/definitions/bodies.mjs
LowWeak Cryptopackages/tools/dist/index.js
LowFilesystem
LowHigh Entropy Strings
LowTelemetry
LowUrl Strings