npm JavaScript analyzed 1.6.0

smallcode

v1.6.0
npm

AI coding agent optimized for small LLMs (8B-35B parameters)

maintainer
dantheman181
license
MIT
first seen
2026-06-02
last seen
2026-06-16
releases · 30d
0
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 31 tools
transport stdio · http counts 31 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • adaptive
  • chain
  • context
  • contract
  • critique
  • error
  • escalation
  • git
  • image
  • lsp
  • mcp-client
  • plan
  • policy
  • quality
  • read_guard
  • reasoning
  • repair
  • retry
  • reviewer
  • router
  • smallcode_agent
  • smallcode_bash
  • smallcode_memory_load
  • smallcode_memory_remember
  • smallcode_patch
  • smallcode_read_file
  • smallcode_search
  • thinking
  • timeout
  • tool_call
  • warning
code evidence v1.6.0 · npm-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 121

filesystem 38

  • fs package/bin/commands.js :4 const fs = require('fs');
  • fs package/bin/config.js :5 const fs = require('fs');
  • fs package/bin/escalation.js :8 const fs = require('fs');
  • fs package/bin/eval_runner.js :5 const fs = require('fs');
  • fs package/bin/executor.js :11 const fs = require('fs');
  • fs package/bin/governor.js :5 const fs = require('fs');
  • fs package/bin/init.js :6 const fs = require('fs');
  • fs package/bin/mcp_bridge.js :6 const fs = require('fs');
  • fs package/bin/memory.js :13 const fs = require('fs');
  • fs package/bin/model_client.js :9 const fs = require('fs');
  • fs package/bin/provider-wizard/status.js :4 const fs = require('fs');
  • fs package/bin/provider-wizard/wizard.js :5 const fs = require('fs');
  • fs package/bin/rag-index.js :4 const fs = require('fs');
  • fs package/bin/smallcode.js :10 const fs = require('fs');
  • fs package/bin/trace_recorder.js :5 const fs = require('fs');
  • fs package/src/api/index.js :236 const fs = require('fs');
  • fs package/src/compiled/features/verify_and_fix.js :11 const fs = require('fs');
  • fs package/src/knowledge/loader.js :37 const fs = require('fs');
  • fs package/src/lsp/client.js :10 const fs = require('fs');
  • fs package/src/plugins/loader.js :30 const fs = require('fs');
  • fs package/src/plugins/skills.js :21 const fs = require('fs');
  • fs package/src/rag/index_store.js :3 const fs = require('fs');
  • fs package/src/session/bootstrap.js :25 const fs = require('fs');
  • fs package/src/session/contract.js :33 const fs = require('fs');
  • fs package/src/session/contract_store.js :23 const fs = require('fs');
  • fs package/src/session/dependency_graph.js :16 const fs = require('fs');
  • fs package/src/session/images.js :8 const fs = require('fs');
  • fs package/src/session/persistence.js :8 const fs = require('fs');
  • fs package/src/session/references.js :17 const fs = require('fs');
  • fs package/src/session/share.js :4 const fs = require('fs');
  • fs package/src/session/snapshot.js :28 const fs = require('fs');
  • fs package/src/session/tdd_state.js :47 const fs = require('fs');
  • fs package/src/session/undo.js :5 const fs = require('fs');
  • fs package/src/tools/file_tree.js :25 const fs = require('fs');
  • fs package/src/tools/hybrid_search.js :26 const fs = require('fs');
  • fs package/src/tools/mcp_client.js :20 const fs = require('fs');
  • fs package/src/tools/read_tracker.js :28 const fs = require('fs');
  • fs package/src/tools/test_runner.js :28 const fs = require('fs');

shell / exec 19

  • shell package/bin/commands.js :221 const { execSync } = require('child_process');
  • shell package/bin/executor.js :34 const { execSync } = require('child_process');
  • shell package/bin/governor.js :4 const { execSync, execFileSync } = require('child_process');
  • shell package/bin/mcp_bridge.js :4 const { spawn } = require('child_process');
  • shell package/bin/model_client.js :184 const { execFileSync, execSync } = require('child_process');
  • shell package/bin/rag-index.js :7 const cp = require('child_process');
  • shell package/bin/smallcode.js :8 const { spawn } = require('child_process');
  • shell package/bin/trace_recorder.js :182 `const { execSync } = require('child_process');`,
  • shell package/build.js :4 const { execSync } = require('child_process');
  • shell package/src/api/index.js :279 const { execSync } = require('child_process');
  • shell package/src/compiled/cognition/validate.js :365 "interface RegExp { test(s: string): boolean; exec(s: string): string[] | null; source: string; flags: string }",
  • shell package/src/lsp/client.js :8 const { spawn } = require('child_process');
  • shell package/src/session/git_context.js :5 const { execFileSync } = require('child_process');
  • shell package/src/session/multi.js :11 const { fork } = require('child_process');
  • shell package/src/session/share.js :7 const { execFileSync } = require('child_process');
  • shell package/src/tools/mcp_client.js :18 const { spawn } = require('child_process');
  • shell (weak) package/src/tools/run_tests.js :40 const { execSync } = require('child_process');
  • shell package/src/tools/shell_session.js :27 const { spawn } = require('child_process');
  • shell package/src/tui/fullscreen.js :918 const { execSync } = require('child_process');

network 13

  • net package/bin/commands.js :41 const resp = await fetch(`${config.model.baseUrl}/models`, { headers: modelListHeaders });
  • net package/bin/config.js :290 const response = await fetch(`${baseUrl}/models`, { headers });
  • net package/bin/escalation.js :150 const response = await fetch(`${this.baseUrl}/chat/completions`, {
  • net package/bin/model_client.js :56 const response = await fetch(`${baseUrl}/chat/completions`, {
  • net package/bin/provider-wizard/wizard.js :56 const res = await fetch(`${url}/models`, {
  • net package/bin/smallcode.js :2403 response = await fetch(`${baseUrl}/chat/completions`, {
  • net package/src/api/index.js :219 const response = await fetch(`${this.config.baseUrl}/chat/completions`, {
  • net package/src/compiled/features/prompts.js :4 // Self-contained: uses process.env config + direct fetch (same pattern as bin/model_client.js).
  • net package/src/compiled/flows.js :53 const response = await fetch(`${process.env.SERVICE_BASE_URL || "http://localhost:3000"}/validate-file`, {
  • net package/src/compiled/providers/openai_compat.js :59 const res = await fetch(`${this.endpoint}/chat/completions`, {
  • net package/src/model/chain.js :96 // Use native fetch (Node 18+) or fall back to node-fetch v2 (CommonJS).
  • net package/src/model/reviewer.js :85 const fetcher = globalThis.fetch || (() => { try { return require('node-fetch'); } catch { return null; } })();
  • net package/src/tools/builtin/web_browse.js :111 const response = await fetch(url, {

secrets 7

  • secrets package/bin/commands.js :37 const apiKey = process.env.SMALLCODE_API_KEY || process.env.OPENAI_API_KEY ||
  • secrets package/bin/config.js :389 apiKey = process.env.DEEPSEEK_API_KEY || process.env.OPENAI_API_KEY || modelConfig.apiKey;
  • secrets package/src/api/index.js :31 apiKey: config.apiKey || process.env.OPENAI_API_KEY || null,
  • secrets package/src/compiled/features/prompts.js :23 const apiKey = process.env.OPENAI_API_KEY || process.env.ANTHROPIC_API_KEY ||
  • secrets package/src/compiled/providers/openai_compat.js :18 this.apiKey = apiKey || process.env.OPENAI_COMPAT_API_KEY || "";
  • secrets package/src/model/chain.js :75 const apiKey = process.env.OPENAI_API_KEY || process.env.ANTHROPIC_API_KEY || config?.model?.apiKey;
  • secrets package/src/model/reviewer.js :59 const apiKey = process.env.OPENAI_API_KEY || process.env.ANTHROPIC_API_KEY || mainConfig?.model?.apiKey;

tool registrations 45

  • policy package/bin/smallcode.js :537
  • image package/bin/smallcode.js :626
  • router package/bin/smallcode.js :741
  • router package/bin/smallcode.js :748
  • router package/bin/smallcode.js :752
  • context package/bin/smallcode.js :772
  • router package/bin/smallcode.js :810
  • chain package/bin/smallcode.js :894
  • tool_call package/bin/smallcode.js :998
  • reasoning package/bin/smallcode.js :1014
  • thinking package/bin/smallcode.js :1038
  • thinking package/bin/smallcode.js :1046
  • thinking package/bin/smallcode.js :1057
  • quality package/bin/smallcode.js :1077
  • plan package/bin/smallcode.js :1119
  • warning package/bin/smallcode.js :1142
  • plan package/bin/smallcode.js :1150
  • repair package/bin/smallcode.js :1175
  • repair package/bin/smallcode.js :1200
  • read_guard package/bin/smallcode.js :1298
  • critique package/bin/smallcode.js :1320
  • warning package/bin/smallcode.js :1617
  • warning package/bin/smallcode.js :1649
  • escalation package/bin/smallcode.js :1687
  • contract package/bin/smallcode.js :1707
  • reviewer package/bin/smallcode.js :1727
  • plan package/bin/smallcode.js :1741
  • warning package/bin/smallcode.js :1760
  • plan package/bin/smallcode.js :1766
  • git package/bin/smallcode.js :1832
  • lsp package/bin/smallcode.js :1899
  • adaptive package/bin/smallcode.js :2237
  • error package/bin/smallcode.js :2396
  • timeout package/bin/smallcode.js :2416
  • error package/bin/smallcode.js :2426
  • error package/bin/smallcode.js :2459
  • retry package/bin/smallcode.js :2488
  • smallcode_read_file package/bin/smallcode.js :2869
  • smallcode_search package/bin/smallcode.js :2870
  • smallcode_patch package/bin/smallcode.js :2871
  • smallcode_bash package/bin/smallcode.js :2872
  • smallcode_memory_load package/bin/smallcode.js :2873
  • smallcode_memory_remember package/bin/smallcode.js :2874
  • smallcode_agent package/bin/smallcode.js :2875
  • mcp-client package/bin/smallcode.js :3054

declared dependencies 13

  • bonescript-compiler@0.14.0
  • chalk@4.1.2
  • cli-highlight@2.1.11
  • express@^5.2.1
  • marked@15.0.12
  • marked-terminal@7.3.0
  • @types/node@^25.9.0
  • jest@^30.4.2
  • ts-node@^10.9.2
  • typescript@^6.0.3
  • playwright-extra@^4.3.0
  • puppeteer-extra-plugin-stealth@^2.11.0
  • budget-aware-mcp@0.6.1

clipboard 1

  • clipboard shell call package/src/tui/fullscreen.js :923 clipboard = execSync('pbpaste', { encoding: 'utf-8', timeout: 3000 }).trim();