github TypeScript analyzed 18a6026

ashlrai/ashlr-hub

github

Local-first command center for agentic engineers — the CLI + Raycast hub and front door to the Ashlr dev-tool ecosystem.

maintainer
ashlrai
license
MIT
first seen
2026-06-17
last seen
2026-08-02
releases · 30d
0
short id

Drift inferred · capture-to-capture

  1. HIGH code analysis flagged dynamic code execution in ashlrai/ashlr-hub
capabilities 0 tools
transport stdio · http counts 0 tools · 0 res · 0 prompts permission surface via code analysis

No tools enumerated yet for this server.

skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 18a6026 · analyzer v28 · 1d ago

danger signals7

code evidence vv3.0.0 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 991

filesystem 128

  • fs ashlrai-ashlr-hub-18a6026/src/cli/automerge-canary.ts :10 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/cli/comms.ts :30 import { existsSync, readFileSync, mkdirSync, writeFileSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/cli/dashboard.ts :33 import * as fs from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/cli/demo-sandbox.ts :43 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/cli/eval-swe-bench.ts :40 import * as fs from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/cli/fleet.ts :28 import { readFileSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/cli/goal.ts :21 import { realpathSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/cli/index.ts :43 import { existsSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/cli/invent.ts :11 import { existsSync, readFileSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/cli/mcp.ts :14 import { readFileSync, writeFileSync, existsSync, copyFileSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/cli/new.ts :25 import { existsSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/cli/update.ts :34 import { existsSync, readlinkSync, lstatSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/cli/verify-safety.ts :42 import { readFileSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/autonomy/evidence-pack.ts :26 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/build-identity.ts :1 import { readFileSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/classify.ts :10 import fs from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/comms/director-context.ts :16 import { readFileSync, existsSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/comms/dispatch.ts :19 import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/comms/pause.ts :14 import { existsSync, mkdirSync, readFileSync, writeFileSync, rmSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/comms/requests.ts :23 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/config.ts :24 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/daemon/activity.ts :26 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/daemon/cutoff-checkpoint-scheduler.ts :19 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/daemon/guard-health.ts :8 import { accessSync, constants, existsSync, statSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/daemon/launchd-plist-transaction.ts :2 import * as fs from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/daemon/loop.ts :37 import { existsSync, lstatSync, readdirSync, unlinkSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/daemon/service.ts :17 import * as fs from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/daemon/state.ts :23 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/digest/store.ts :24 import { existsSync, mkdirSync, readFileSync, readdirSync, renameSync, writeFileSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/doctor-fix.ts :21 import { existsSync, mkdirSync, symlinkSync, lstatSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/doctor.ts :8 import { existsSync, readFileSync, statSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/ecosystem/doctor.ts :9 import { existsSync, readdirSync, readFileSync, statSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/ecosystem/focus.ts :9 import { existsSync, readFileSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/ecosystem/map.ts :21 import { existsSync, readFileSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/effective-config.ts :8 import { existsSync, readFileSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/eval/attention-store.ts :1 import { existsSync, mkdirSync, readdirSync, readFileSync, renameSync, unlinkSync, writeFileSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/eval/swe-bench.ts :24 import * as fs from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fabric/cache/store.ts :31 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fabric/claude-rate-limit-event.ts :18 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fabric/claude-usage.ts :44 import * as fs from 'fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fabric/gateway-shadow.ts :20 import { existsSync, mkdirSync, appendFileSync, readdirSync, readFileSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fabric/resource-monitor.ts :37 import * as fs from 'fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fleet/agent-action-ledger.ts :23 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fleet/automerge-canary-observer.ts :3 import { realpathSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fleet/automerge-canary-store.ts :19 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fleet/best-of-n-ledger.ts :23 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fleet/counterfactual.ts :41 import { existsSync, mkdirSync, writeFileSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fleet/cutoff-observation-checkpoints.ts :26 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fleet/decisions-ledger.ts :26 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fleet/dispatch-manifest.ts :24 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fleet/dispatch-production-ledger.ts :28 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fleet/engine-readiness.ts :17 import { existsSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fleet/enrollment-cutoff-snapshot.ts :13 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fleet/generated-repair-lifecycle.ts :18 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fleet/judge-trace.ts :31 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fleet/local-store-lock.ts :20 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fleet/manager.ts :19 import { existsSync, mkdirSync, writeFileSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fleet/model-racing.ts :24 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fleet/monitoring-cursor.ts :18 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fleet/outcome-watcher.ts :24 import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fleet/oversight-export.ts :5 import { existsSync, readdirSync, readFileSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fleet/post-merge-observations.ts :24 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fleet/post-merge-stability-observer.ts :1 import { existsSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fleet/post-merge-stability.ts :23 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fleet/prompt-optimizer.ts :30 import { existsSync, mkdirSync, writeFileSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fleet/proposal-repair-work.ts :4 import { existsSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fleet/quota.ts :27 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fleet/regression-sentinel.ts :43 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fleet/repair-handoff-journal.ts :19 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fleet/resolution-observer.ts :25 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fleet/resolution-witness-ledger.ts :23 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fleet/self-heal-queue-prune.ts :2 import { existsSync, readFileSync, renameSync, writeFileSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fleet/self-heal.ts :26 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fleet/self.ts :24 import { readFileSync, existsSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fleet/shared-store.ts :37 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fleet/skill-records.ts :23 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fleet/status.ts :18 import { existsSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/fleet/worked-ledger.ts :36 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/foundry/provenance.ts :53 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/generative/invent-cycle.ts :30 import { existsSync, mkdirSync, readFileSync, renameSync, writeFileSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/generative/invent.ts :13 import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/genome/consolidate.ts :22 import fs from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/genome/export.ts :15 import fs from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/genome/store.ts :17 import fs from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/git.ts :12 import { existsSync, statSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/goal-loop/parse.ts :17 import { readFileSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/goal-loop/runner.ts :28 import { readFileSync, writeFileSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/goal-loop/state.ts :14 import { mkdirSync, readFileSync, renameSync, writeFileSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/goals/advance.ts :42 import { realpathSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/goals/store.ts :28 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/inbox/apply.ts :25 import { existsSync, mkdirSync, writeFileSync, unlinkSync, realpathSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/inbox/merge.ts :100 import { existsSync, mkdirSync, writeFileSync, unlinkSync, symlinkSync, readFileSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/inbox/operational-projection-replay-ledger.ts :2 import { lstatSync, mkdirSync, readdirSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/inbox/operational-projection-transaction.ts :2 import { lstatSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/inbox/operational-projection.ts :7 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/inbox/proposal-mutation-lock.ts :2 import { chmodSync, existsSync, lstatSync, mkdirSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/inbox/realized-merge.ts :3 import { realpathSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/inbox/remote-handoff-attestation.ts :5 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/inbox/remote-handoff.ts :8 import { existsSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/inbox/store.ts :36 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/index-engine.ts :22 import fs from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/integrations/dep-parser.ts :45 import { existsSync, readFileSync, statSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/integrations/editors.ts :24 import { readFileSync, writeFileSync, existsSync, copyFileSync, mkdirSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/integrations/imessage.ts :30 import { existsSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/integrations/markdown.ts :26 import { mkdirSync, writeFileSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/integrations/pulse-exporter.ts :45 import { lstatSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/integrations/pulse-sync.ts :45 import { lstatSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/integrations/stack.ts :15 import { existsSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/integrations/telegram.ts :25 import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/integrations/vercel.ts :16 import { existsSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/knowledge/graph.ts :20 import fs from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/knowledge/index.ts :19 import fs from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/learn/store.ts :30 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/lifecycle/scaffold.ts :20 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/lifecycle/ship.ts :11 import { existsSync, readFileSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/mcp-native-engineer.ts :51 } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/mcp-registry.ts :11 import { readFileSync, existsSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/observability/codex-source.ts :20 import * as fs from 'fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/observability/rollup.ts :10 import { existsSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/observability/telemetry-sink.ts :26 import { mkdirSync, appendFileSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/observability/usage-source.ts :12 import * as fs from "fs";
  • fs ashlrai-ashlr-hub-18a6026/src/core/onboard.ts :14 import { existsSync, mkdirSync, symlinkSync, readlinkSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/plugins/host-api.ts :17 import { mkdirSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/plugins/integrity.ts :13 import { readFileSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/plugins/manifest.ts :17 import { readFileSync, statSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/plugins/registry.ts :22 import { existsSync, readFileSync, readdirSync, statSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/portfolio/backlog.ts :12 import { existsSync, mkdirSync, readFileSync, renameSync, unlinkSync, writeFileSync } from 'node:fs';
  • fs ashlrai-ashlr-hub-18a6026/src/core/portfolio/queued-autonomy.ts :19 } from 'node:fs';

shell / exec 50

  • shell ashlrai-ashlr-hub-18a6026/src/cli/dashboard.ts :34 import { spawnSync } from 'node:child_process';
  • shell ashlrai-ashlr-hub-18a6026/src/cli/demo-sandbox.ts :36 import { execFileSync } from 'node:child_process';
  • shell ashlrai-ashlr-hub-18a6026/src/cli/doctor-init.ts :312 const { spawnSync } = await import('node:child_process');
  • shell ashlrai-ashlr-hub-18a6026/src/cli/invent.ts :68 const { execSync } = await import('node:child_process');
  • shell ashlrai-ashlr-hub-18a6026/src/cli/new.ts :24 import { execSync, execFileSync } from 'node:child_process';
  • shell ashlrai-ashlr-hub-18a6026/src/cli/open.ts :4 * All launchers use spawn (detached, unref'd) so the CLI process exits
  • shell ashlrai-ashlr-hub-18a6026/src/cli/picker.ts :12 import { execFileSync, spawnSync } from 'node:child_process';
  • shell ashlrai-ashlr-hub-18a6026/src/cli/pulse.ts :782 import { spawnSync } from 'node:child_process';
  • shell ashlrai-ashlr-hub-18a6026/src/cli/serve.ts :104 const { spawn } = await import('child_process');
  • shell ashlrai-ashlr-hub-18a6026/src/cli/update.ts :33 import { spawnSync, execFileSync } from 'node:child_process';
  • shell ashlrai-ashlr-hub-18a6026/src/core/daemon/activity.ts :8 import { spawnSync } from 'node:child_process';
  • shell ashlrai-ashlr-hub-18a6026/src/core/daemon/cutoff-checkpoint-child.ts :1 import { spawn, type SpawnOptions } from 'node:child_process';
  • shell ashlrai-ashlr-hub-18a6026/src/core/daemon/cutoff-checkpoint-scheduler.ts :1 import { spawn, type SpawnOptions } from 'node:child_process';
  • shell ashlrai-ashlr-hub-18a6026/src/core/daemon/resolution-observer-scheduler.ts :1 import { spawn, type SpawnOptions } from 'node:child_process';
  • shell ashlrai-ashlr-hub-18a6026/src/core/daemon/service.ts :18 import { execFileSync, spawnSync } from 'node:child_process';
  • shell ashlrai-ashlr-hub-18a6026/src/core/dashboard.ts :19 * runs execFileSync('curl', ...) with a ~2.5s timeout — a synchronous child
  • shell ashlrai-ashlr-hub-18a6026/src/core/doctor.ts :11 import { spawnSync } from 'node:child_process';
  • shell ashlrai-ashlr-hub-18a6026/src/core/ecosystem/doctor.ts :10 import { spawnSync } from 'node:child_process';
  • shell ashlrai-ashlr-hub-18a6026/src/core/eval/swe-bench.ts :27 import { execFileSync } from 'node:child_process';
  • shell ashlrai-ashlr-hub-18a6026/src/core/fabric/cache/key.ts :12 * SAFETY: pure functions, zero runtime deps (node:crypto + node:child_process).
  • shell ashlrai-ashlr-hub-18a6026/src/core/fleet/automerge-canary-observer.ts :2 import { spawn } from 'node:child_process';
  • shell ashlrai-ashlr-hub-18a6026/src/core/fleet/automerge-canary.ts :1 import { execFileSync } from 'node:child_process';
  • shell ashlrai-ashlr-hub-18a6026/src/core/fleet/engine-readiness.ts :16 import { spawnSync } from 'node:child_process';
  • shell ashlrai-ashlr-hub-18a6026/src/core/fleet/enrollment-cutoff-snapshot.ts :1 import { execFileSync } from 'node:child_process';
  • shell ashlrai-ashlr-hub-18a6026/src/core/fleet/local-store-lock.ts :2 import { spawnSync } from 'node:child_process';
  • shell ashlrai-ashlr-hub-18a6026/src/core/fleet/post-merge-window.ts :1 import { spawnSync } from 'node:child_process';
  • shell ashlrai-ashlr-hub-18a6026/src/core/fleet/regression-sentinel.ts :35 import { spawnSync } from 'node:child_process';
  • shell ashlrai-ashlr-hub-18a6026/src/core/generative/invent-cycle.ts :189 const { execSync } = await import('node:child_process');
  • shell ashlrai-ashlr-hub-18a6026/src/core/genome/store.ts :21 import { execFileSync } from 'node:child_process';
  • shell ashlrai-ashlr-hub-18a6026/src/core/git.ts :11 import { execFileSync } from 'node:child_process';
  • shell ashlrai-ashlr-hub-18a6026/src/core/inbox/apply.ts :24 import { execFileSync } from 'node:child_process';
  • shell ashlrai-ashlr-hub-18a6026/src/core/inbox/merge.ts :99 import { execFileSync } from 'node:child_process';
  • shell ashlrai-ashlr-hub-18a6026/src/core/inbox/realized-merge.ts :1 import { execFileSync } from 'node:child_process';
  • shell ashlrai-ashlr-hub-18a6026/src/core/inbox/remote-handoff.ts :9 import { execFileSync } from 'node:child_process';
  • shell ashlrai-ashlr-hub-18a6026/src/core/integrations/desktop-notify.ts :6 * nothing fires. Uses execFile (never a shell) on all platforms, with
  • shell ashlrai-ashlr-hub-18a6026/src/core/integrations/github.ts :11 * - All spawns use spawnSync (no shell) with a tight timeout.
  • shell ashlrai-ashlr-hub-18a6026/src/core/integrations/identity.ts :14 import { spawnSync } from 'node:child_process';
  • shell ashlrai-ashlr-hub-18a6026/src/core/integrations/imessage.ts :5 * sendIMessage(text, cfg) — osascript send via execFile (never a shell)
  • shell ashlrai-ashlr-hub-18a6026/src/core/integrations/markdown.ts :25 import { execFileSync, spawn } from 'node:child_process';
  • shell ashlrai-ashlr-hub-18a6026/src/core/integrations/phantom.ts :41 import { execFileSync } from 'node:child_process';
  • shell ashlrai-ashlr-hub-18a6026/src/core/integrations/secrets.ts :23 import { spawnSync } from 'node:child_process';
  • shell ashlrai-ashlr-hub-18a6026/src/core/integrations/stack.ts :14 import { spawnSync } from 'node:child_process';
  • shell ashlrai-ashlr-hub-18a6026/src/core/integrations/vercel.ts :15 import { spawnSync } from 'node:child_process';
  • shell ashlrai-ashlr-hub-18a6026/src/core/lifecycle/scaffold.ts :14 import { execSync } from 'node:child_process';
  • shell ashlrai-ashlr-hub-18a6026/src/core/lifecycle/ship.ts :13 import { spawnSync } from 'node:child_process';
  • shell ashlrai-ashlr-hub-18a6026/src/core/mcp-native-engineer.ts :657 return new RegExp(`^${re}$`);
  • shell ashlrai-ashlr-hub-18a6026/src/core/observability/rollup.ts :9 import { execFileSync } from 'node:child_process';
  • shell ashlrai-ashlr-hub-18a6026/src/core/observability/telemetry-sink.ts :27 import { spawnSync, spawn } from 'node:child_process';
  • shell ashlrai-ashlr-hub-18a6026/src/core/onboard.ts :425 const { execFileSync } = await import('node:child_process');
  • shell ashlrai-ashlr-hub-18a6026/src/core/phantom.ts :9 import { spawnSync } from 'node:child_process';

network 16

  • net ashlrai-ashlr-hub-18a6026/src/core/comms/director.ts :143 const response = await fetch(url, {
  • net ashlrai-ashlr-hub-18a6026/src/core/comms/elon-dialogue.ts :100 const response = await fetch(url, {
  • net ashlrai-ashlr-hub-18a6026/src/core/fabric/resource-monitor.ts :40 import * as http from 'http';
  • net ashlrai-ashlr-hub-18a6026/src/core/fabric/usage-api.ts :117 resp = await fetch(USAGE_ENDPOINT, {
  • net ashlrai-ashlr-hub-18a6026/src/core/fleet/counterfactual.ts :425 // Over-fetch (cap * 3) so we still hit `cap` replays after diff-less skips.
  • net ashlrai-ashlr-hub-18a6026/src/core/fleet/manager.ts :825 const response = await fetch(url, {
  • net ashlrai-ashlr-hub-18a6026/src/core/fleet/oversight-export.ts :224 const res = await fetch(url, {
  • net ashlrai-ashlr-hub-18a6026/src/core/fleet/pulse-export.ts :455 const res = await fetch(url, {
  • net ashlrai-ashlr-hub-18a6026/src/core/genome/playbook.ts :131 const tagsRes = await fetch(`${ollamaBase}/api/tags`, {
  • net ashlrai-ashlr-hub-18a6026/src/core/genome/recall.ts :116 const res = await fetch(`${ollamaBase.replace(/\/+$/, '')}/api/tags`, {
  • net ashlrai-ashlr-hub-18a6026/src/core/integrations/notify.ts :59 const res = await fetch(url, {
  • net ashlrai-ashlr-hub-18a6026/src/core/integrations/pulse-exporter.ts :272 return await fetch(url, {
  • net ashlrai-ashlr-hub-18a6026/src/core/knowledge/ask.ts :105 const res = await fetch(`${ollamaBase.replace(/\/+$/, '')}/api/tags`, {
  • net ashlrai-ashlr-hub-18a6026/src/core/knowledge/index.ts :312 const res = await fetch(`${ollamaBase.replace(/\/+$/, '')}/api/tags`, {
  • net ashlrai-ashlr-hub-18a6026/src/core/observability/limits.ts :127 return await fetch(url, { ...init, signal: ac.signal });
  • net ashlrai-ashlr-hub-18a6026/src/core/observability/telemetry-sink.ts :233 res = await fetch(endpoint, {

secrets 6

  • secrets ashlrai-ashlr-hub-18a6026/src/cli/comms.ts :238 console.log(` bot_token: ${cfg.comms?.telegram?.botToken ? '(set)' : process.env['TELEGRAM_BOT_TOKEN'] ? '(set via env)' : '(unset)'}`);
  • secrets ashlrai-ashlr-hub-18a6026/src/core/fabric/usage-api.ts :71 const t = process.env['CLAUDE_CODE_OAUTH_TOKEN'] ?? process.env['CLAUDE_BRIDGE_OAUTH_TOKEN'];
  • secrets ashlrai-ashlr-hub-18a6026/src/core/fleet/engine-readiness.ts :119 if (process.env['CLAUDE_CODE_OAUTH_TOKEN']?.trim()) return 'env-token';
  • secrets ashlrai-ashlr-hub-18a6026/src/core/integrations/telegram.ts :101 return cfg.comms?.telegram?.botToken ?? process.env['TELEGRAM_BOT_TOKEN'];
  • secrets ashlrai-ashlr-hub-18a6026/src/core/observability/limits.ts :280 const anthropicKey = process.env['ANTHROPIC_API_KEY'] ?? '';
  • secrets ashlrai-ashlr-hub-18a6026/src/core/observability/telemetry-sink.ts :86 if (process.env['ASHLR_PULSE_TOKEN'] !== undefined && process.env['ASHLR_PULSE_TOKEN'] !== '') {

install hooks 2

  • prepublishOnly ashlrai-ashlr-hub-18a6026/package.json :62 npm run typecheck && npm run lint && npm run test:ci
  • prepack ashlrai-ashlr-hub-18a6026/package.json :63 npm run build

declared dependencies 12

  • @modelcontextprotocol/sdk@^1.29.0
  • @types/node@^22.0.0
  • eslint@^9.0.0
  • tsx@^4.0.0
  • typescript@^5.5.0
  • typescript-eslint@^8.61.0
  • vitest@4.1.10
  • tauri-build@2
  • tauri-plugin-shell@2
  • tauri-plugin-updater@2
  • serde@1
  • serde_json@1

obfuscation 9

  • dynamic require()/import() ashlrai-ashlr-hub-18a6026/test/m117.api-model-dispatch.test.ts :125 const { engineInstalled } = await import('../src/core/run/engines.js?bust1=' + randomUUID());
  • dynamic require()/import() ashlrai-ashlr-hub-18a6026/test/m142.best-of-n.test.ts :119 const mod = await import('../src/core/run/best-of-n.js?export=' + randomUUID());
  • dynamic require()/import() ashlrai-ashlr-hub-18a6026/test/m144.llama-server.test.ts :93 const { engineInstalled } = await import('../src/core/run/engines.js?bust-ls-' + randomUUID());
  • dynamic require()/import() ashlrai-ashlr-hub-18a6026/test/m166.model-racing.test.ts :143 const mod = await import('../src/core/fleet/model-racing.js?export=' + randomUUID());
  • dynamic require()/import() ashlrai-ashlr-hub-18a6026/test/m183.taste-critic.test.ts :202 const { scoreTaste } = await import('../src/core/fleet/taste-critic.js?' + randomUUID());
  • dynamic require()/import() ashlrai-ashlr-hub-18a6026/test/m191.red-team.test.ts :159 const { redTeamProposal } = await import('../src/core/fleet/red-team.js?' + randomUUID());
  • dynamic require()/import() ashlrai-ashlr-hub-18a6026/test/m333.best-of-n-multimodel.test.ts :254 const mod = await import('../src/core/run/best-of-n.js?m333=' + randomUUID());
  • dynamic require()/import() ashlrai-ashlr-hub-18a6026/test/m391.execution-lifecycle-authority.test.ts :383 const isolated = await import('../src/core/swarm/runner.js?m391=' + randomUUID());
  • dynamic require()/import() ashlrai-ashlr-hub-18a6026/test/m425.policy-startup-recovery.test.ts :116 const { recoverEnrollmentRegistry } = await import(${JSON.stringify(policyModuleUrl)});