// npm package
@olonjs/cli
The Sovereign CLI Engine for OlonJS.
weekly
266
monthly
1,893
versions
63
maintainers
1
license
MIT
first publish
2026-03-16
publisher
jps-dev
tarball
760,241 B
AUTO-PUBLISHED·2 versions indexed·latest published 2026-05-20
// exfil path
what is read → where it shipssteals
- ● MCP config
- ● Chromium logins
- ○ home dir
- ○ clipboard
sends to
(no destination string extracted — payload may be dynamic / obfuscated)
evidence in excerpt
> "homepage": "https://github.com/olonjs/npm-jpcore#readme", > "url": "git+https://github.com/olonjs/npm-jpcore.git", > "url": "https://github.com/olonjs/npm-jpcore/issues"
// offending code· @3.0.143· 3 files flagged
llm: benign · 0.85→ No suspicious destination, no remote-exec shape — 2 known-vendor host(s).
- @3.0.143··AUTO-PUBLISHED·publisher: jps-devheuristic 64/100static flags 7llm benign (0.85) via ollamanew-publisher:0dmature-packagepublisher-multi-name-burst:6publisher-version-pump:11public-github-pushreads-mcp-configreads-homedirreads-chromium-credsreads-env-varsbase64-decodeclipboard-access
→ No suspicious destination, no remote-exec shape — 2 known-vendor host(s).
// offending code· 3 files flaggedpatterns: 7
--- package/package.json (excerpt) --- { "name": "@olonjs/cli", "version": "3.0.143", "description": "The Sovereign CLI Engine for OlonJS.", "type": "module", "bin": { "olonjs": "./src/index.js", "jsonpages": "./src/index.js" }, "files": [ "src", "assets/src_tenant_alpha.sh", "assets/templates" ], "author": "JsonPages Team", "license": "MIT", "homepage": "https://github.com/olonjs/npm-jpcore#readme", "repository": { "type": "git", "url": "git+https://github.com/olonjs/npm-jpcore.git", "directory": "packages/cli" }, "bugs": { "url": "https://github.com/olonjs/npm-jpcore/issues" }, "publishConfig": { "access": "public" }, "scripts": { "build": "tsc -p .", "check:templates": "node ../../scripts/check-cli-templates.mjs" }, "dependencies": { "@olonjs/stack": "^1.0.0", "chalk": "^5.3.0", "commander": "^12.1.0", "execa": "^9.0.2", "fs-extra": "^11.2.0", "ora": "^8.0.1" }, "devDependencies": { "@types/fs-extra": "^11.0.4", "@types/node": "^22.13.1", "typescript": "^5.7.3" } } --- package/src/index.js (excerpt) --- #!/usr/bin/env node import { Command } from 'commander'; import chalk from 'chalk'; import fs from 'fs-extra'; import path from 'path'; import { execa } from 'execa'; import ora from 'ora'; import { fileURLToPath } from 'url'; import os from 'os'; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); const CLI_ASSETS_DIR = path.resolve(__dirname, '../assets'); const TEMPLATES_DIR = path.join(CLI_ASSETS_DIR, 'templates'); const LEGACY_ALPHA_DNA_PATH = path.join(CLI_ASSETS_DIR, 'src_tenant_alpha.sh'); const PACKAGE_JSON_PATH = path.resolve(__dirname, '../package.json'); const CLI_PACKAGE = JSON.parse(await fs.readFile(PACKAGE_JSON_PATH, 'utf-8')); const program = new Command(); program .name('olonjs') .description('OlonJS CLI - Sovereign Projection Engine') .version(CLI_PACKAGE.version); const invokedAs = path.basename(process.argv[1] ?? ''); if (invokedAs === 'jsonpages' || invokedAs === 'jsonpages.cmd') { console.warn(chalk.yellow('[compat] `jsonpages` is deprecated. Use `olonjs` instead.')); } async function processScriptInNode(scriptPath, targetDir) { const content = await fs.readFile(scriptPath, 'utf-8'); const lines = content.split('\n'); let captureMode = false; let delimiter = ''; let currentFile = ''; let fileBuffer = []; for (const line of lines) { const trimmed = line.trim(); if (captureMode) { if (trimmed === delimiter) { const filePath = path.join(targetDir, currentFile); --- package/assets/src_tenant_alpha.sh (excerpt) --- #!/bin/bash set -e echo "Starting project reconstruction..." mkdir -p ".cursor" mkdir -p ".cursor/skills-cursor" mkdir -p ".cursor/skills-cursor/create-rule" echo "Creating .cursor/skills-cursor/create-rule/SKILL.md..." cat << 'END_OF_FILE_CONTENT' > ".cursor/skills-cursor/create-rule/SKILL.md" --- name: create-rule description: >- Create Cursor rules for persistent AI guidance. Use when you want to create a rule, add coding standards, set up project conventions, configure file-specific patterns, create RULE.md files, or asks about .cursor/rules/ or AGENTS.md. --- # Creating Cursor Rules Create project rules in `.cursor/rules/` to provide persistent context for the AI agent. ## Gather Requirements Before creating a rule, determine: 1. **Purpose**: What should this rule enforce or teach? 2. **Scope**: Should it always apply, or only for specific files? 3. **File patterns**: If file-specific, which glob patterns? ### Inferring from Context If you have previous conversation context, infer rules from what was discussed. You can create multiple rules if the conversation covers distinct topics or patterns. Don't ask redundant questions if the context already provides the answers. ### Required Questions If the user hasn't specified scope, ask: - "Should this rule always apply, or only when working with specific files?" If they mentioned specific files and haven't provided concrete patterns, ask: - "Which file patterns should this rule apply to?" (e.g., `**/*.ts`,
