github TypeScript re-analysis due

NimbleBrainInc/nimblebrain

github

Self-hosted platform for MCP Apps and agent automations — tools, interactive UIs, scheduled runs, multi-agent delegation.

maintainer
NimbleBrainInc
licence
NOASSERTION
first seen
2026-06-04
last seen
2026-09-17
releases · 30d
4
short id

Drift inferred · capture-to-capture

tool count over time

06-07 20:44 08-11 14:48 now
11t
6t
5t
capabilities 5 tools
transport http counts 5 tools · 0 res · 0 prompts permission surface via README inference

tools

  • nb__manage_tools

    Promote/release tools in the active set

  • nb__read_resource

    Read a skill:// / ui:// resource from an installed app's MCP server

  • nb__search

    Unified search: installed tools or the connector catalog (scope param)

  • nb__set_preferences

    Set user preferences (name, timezone, theme)

  • nb__status

    Platform status: overview, connectors, skills, or config (scope param)

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

analyzed commit d54b14b · analyzer v33 · 8h ago

skills & prompt files 2

danger signals8

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

code files: 1383

filesystem 255

  • fs NimbleBrainInc-nimblebrain-d54b14b/.environments/docs-demo/capture-screenshots.ts :12 import { writeFile, mkdir } from "node:fs/promises";
  • fs (weak) NimbleBrainInc-nimblebrain-d54b14b/scripts/backfill-usage-ledger.ts :46 import { mkdirSync, readdirSync, readFileSync, statSync, writeFileSync } from "node:fs";
  • fs (weak) NimbleBrainInc-nimblebrain-d54b14b/scripts/check-automation-paths.ts :28 import { readFileSync } from "node:fs";
  • fs (weak) NimbleBrainInc-nimblebrain-d54b14b/scripts/check-code-style.ts :23 import { readFileSync } from "node:fs";
  • fs (weak) NimbleBrainInc-nimblebrain-d54b14b/scripts/check-conversation-paths.ts :37 import { readFileSync } from "node:fs";
  • fs (weak) NimbleBrainInc-nimblebrain-d54b14b/scripts/check-core-skill-tool-refs.ts :20 import { readFileSync } from "node:fs";
  • fs (weak) NimbleBrainInc-nimblebrain-d54b14b/scripts/check-credential-paths.ts :48 import { readFileSync } from "node:fs";
  • fs (weak) NimbleBrainInc-nimblebrain-d54b14b/scripts/check-cycles.ts :23 import { readdirSync, readFileSync } from "node:fs";
  • fs (weak) NimbleBrainInc-nimblebrain-d54b14b/scripts/check-file-paths.ts :30 import { readFileSync } from "node:fs";
  • fs (weak) NimbleBrainInc-nimblebrain-d54b14b/scripts/check-no-raw-console.ts :24 import { readFileSync } from "node:fs";
  • fs (weak) NimbleBrainInc-nimblebrain-d54b14b/scripts/check-no-sentry-in-kernel.ts :18 import { readFileSync } from "node:fs";
  • fs (weak) NimbleBrainInc-nimblebrain-d54b14b/scripts/check-personal-workspace-id.ts :32 import { readFileSync } from "node:fs";
show 28 more
  • fs (weak) NimbleBrainInc-nimblebrain-d54b14b/scripts/check-platform-app-transport.ts :30 import { readFileSync } from "node:fs";
  • fs (weak) NimbleBrainInc-nimblebrain-d54b14b/scripts/check-public-origin.ts :23 import { readFileSync } from "node:fs";
  • fs (weak) NimbleBrainInc-nimblebrain-d54b14b/scripts/check-resource-schemes.ts :40 import { readFileSync } from "node:fs";
  • fs (weak) NimbleBrainInc-nimblebrain-d54b14b/scripts/check-tool-namespace.ts :59 import { readFileSync } from "node:fs";
  • fs (weak) NimbleBrainInc-nimblebrain-d54b14b/scripts/check-usage-record.ts :48 import { readFileSync } from "node:fs";
  • fs (weak) NimbleBrainInc-nimblebrain-d54b14b/scripts/check-workspace-paths.ts :33 import { readFileSync } from "node:fs";
  • fs (weak) NimbleBrainInc-nimblebrain-d54b14b/scripts/check-workspace-splat-nesting.ts :34 import { readFileSync } from "node:fs";
  • fs (weak) NimbleBrainInc-nimblebrain-d54b14b/scripts/codegen-web-platform-schemas.ts :34 import { cpSync, mkdirSync, readdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
  • fs (weak) NimbleBrainInc-nimblebrain-d54b14b/scripts/dev-worktree.ts :30 import { existsSync, mkdirSync, writeFileSync } from "node:fs";
  • fs (weak) NimbleBrainInc-nimblebrain-d54b14b/scripts/dev.ts :11 import { existsSync, readFileSync } from "node:fs";
  • fs (weak) NimbleBrainInc-nimblebrain-d54b14b/scripts/lib/dev-env.ts :29 import { existsSync, readFileSync } from "node:fs";
  • fs (weak) NimbleBrainInc-nimblebrain-d54b14b/scripts/lib/dev-prepare.ts :16 import { existsSync, readdirSync } from "node:fs";
  • fs (weak) NimbleBrainInc-nimblebrain-d54b14b/scripts/lib/migration-lock.ts :19 import { existsSync, readFileSync, rmSync, writeFileSync } from "node:fs";
  • fs (weak) NimbleBrainInc-nimblebrain-d54b14b/scripts/migrate-skill-frontmatter.ts :27 import { existsSync, readFileSync, rmSync, writeFileSync } from "node:fs";
  • fs (weak) NimbleBrainInc-nimblebrain-d54b14b/scripts/migrate-workspace-connectors.ts :26 import { readFileSync } from "node:fs";
  • fs NimbleBrainInc-nimblebrain-d54b14b/src/adapters/structured-log-sink.ts :1 import { appendFileSync, mkdirSync, readdirSync, unlinkSync } from "node:fs";
  • fs NimbleBrainInc-nimblebrain-d54b14b/src/adapters/workspace-log-sink.ts :1 import { appendFileSync, mkdirSync, readdirSync, unlinkSync } from "node:fs";
  • fs NimbleBrainInc-nimblebrain-d54b14b/src/api/handlers.ts :1 import { readFileSync } from "node:fs";
  • fs NimbleBrainInc-nimblebrain-d54b14b/src/api/mcp-server.ts :72 import { readFileSync } from "node:fs";
  • fs NimbleBrainInc-nimblebrain-d54b14b/src/api/middleware/error-log.ts :1 import { appendFileSync, mkdirSync } from "node:fs";
  • fs NimbleBrainInc-nimblebrain-d54b14b/src/cli/config.ts :1 import { existsSync, readFileSync, writeFileSync } from "node:fs";
  • fs NimbleBrainInc-nimblebrain-d54b14b/src/connectors/catalog/read.ts :30 import { existsSync, readdirSync, readFileSync, statSync } from "node:fs";
  • fs NimbleBrainInc-nimblebrain-d54b14b/src/connectors/catalog/server-detail.ts :20 import { readFileSync } from "node:fs";
  • fs NimbleBrainInc-nimblebrain-d54b14b/src/connectors/providers/composio/connection.ts :38 import { existsSync } from "node:fs";
  • fs NimbleBrainInc-nimblebrain-d54b14b/src/connectors/runtime/lifecycle.ts :1 import { rmSync } from "node:fs";
  • fs NimbleBrainInc-nimblebrain-d54b14b/src/conversation/event-sourced-store.ts :9 import { appendFileSync, existsSync } from "node:fs";
  • fs NimbleBrainInc-nimblebrain-d54b14b/src/conversation/index-cache.ts :1 import { readdirSync } from "node:fs";
  • fs NimbleBrainInc-nimblebrain-d54b14b/src/conversation/jsonl-store.ts :1 import { existsSync } from "node:fs";

215 more not shown — this panel samples each group; the count above is the real total.

shell / exec 25

  • shell (weak) NimbleBrainInc-nimblebrain-d54b14b/scripts/check-codegen.ts :27 import { spawnSync } from "node:child_process";
  • shell (weak) NimbleBrainInc-nimblebrain-d54b14b/scripts/check-test-signatures.ts :121 const result = await $`bunx tsc -p ${PROJECT} --noEmit --pretty false --listFiles`
  • shell (weak) NimbleBrainInc-nimblebrain-d54b14b/scripts/codegen-web-platform-schemas.ts :33 import { execSync } from "node:child_process";
  • shell (weak) NimbleBrainInc-nimblebrain-d54b14b/scripts/dev-worktree.ts :29 import { spawn } from "node:child_process";
  • shell (weak) NimbleBrainInc-nimblebrain-d54b14b/scripts/dev.ts :162 const webProc = spawn({
  • shell (weak) NimbleBrainInc-nimblebrain-d54b14b/scripts/lib/dev-env.ts :28 import { execFileSync } from "node:child_process";
  • shell (weak) NimbleBrainInc-nimblebrain-d54b14b/scripts/lib/dev-prepare.ts :15 import { spawnSync } from "node:child_process";
  • shell (weak) NimbleBrainInc-nimblebrain-d54b14b/test/integration/cli.test.ts :33 const proc = spawn(
  • shell (weak) NimbleBrainInc-nimblebrain-d54b14b/test/unit/platform/animated-dot-contrast.test.ts :287 // EVERY hover fill, not the first: a single exec() reads one of the two
  • shell (weak) NimbleBrainInc-nimblebrain-d54b14b/test/unit/platform/conversations/get-liveness.test.ts :122 const msgs = messages(await exec("get", { id: LIVE_ID, expand: "full" }));
  • shell (weak) NimbleBrainInc-nimblebrain-d54b14b/test/unit/platform/conversations/preview-cap.test.ts :98 const data = payload(await exec("list", {})) as {
  • shell (weak) NimbleBrainInc-nimblebrain-d54b14b/test/unit/platform/conversations/workspace-scope.test.ts :160 expect(idsOf(await exec("list", {}, WS_A))).toEqual(["conv_a1", "conv_a2"]);
show 13 more
  • shell (weak) NimbleBrainInc-nimblebrain-d54b14b/test/unit/platform/files/source.test.ts :158 const created = await exec("create", {
  • shell (weak) NimbleBrainInc-nimblebrain-d54b14b/test/unit/platform/notifications/settings.test.ts :129 const res = await exec("settings");
  • shell (weak) NimbleBrainInc-nimblebrain-d54b14b/test/unit/platform/notifications/source.test.ts :130 const result = await exec("list", {}, undefined);
  • shell (weak) NimbleBrainInc-nimblebrain-d54b14b/test/unit/runtime-domain-clean.test.ts :64 const result = spawnSync(
  • shell (weak) NimbleBrainInc-nimblebrain-d54b14b/test/unit/scripts/check-automation-paths.test.ts :112 const proc = Bun.spawn({
  • shell (weak) NimbleBrainInc-nimblebrain-d54b14b/test/unit/scripts/check-conversation-paths.test.ts :148 const proc = Bun.spawn({
  • shell (weak) NimbleBrainInc-nimblebrain-d54b14b/test/unit/scripts/check-core-skill-tool-refs.test.ts :192 const proc = Bun.spawn({
  • shell (weak) NimbleBrainInc-nimblebrain-d54b14b/test/unit/scripts/check-credential-paths.test.ts :206 const proc = Bun.spawn({
  • shell (weak) NimbleBrainInc-nimblebrain-d54b14b/test/unit/scripts/check-file-paths.test.ts :140 const proc = Bun.spawn({
  • shell (weak) NimbleBrainInc-nimblebrain-d54b14b/test/unit/scripts/check-personal-workspace-id.test.ts :106 const proc = Bun.spawn({
  • shell (weak) NimbleBrainInc-nimblebrain-d54b14b/test/unit/scripts/check-tool-namespace.test.ts :164 const proc = Bun.spawn({
  • shell (weak) NimbleBrainInc-nimblebrain-d54b14b/test/unit/scripts/dev-env.test.ts :7 import { execFileSync } from "node:child_process";
  • shell (weak) NimbleBrainInc-nimblebrain-d54b14b/test/unit/workspace-oauth-provider.test.ts :24 // spawnSync(), it belongs in test/integration/."

network 84

  • net NimbleBrainInc-nimblebrain-d54b14b/.environments/docs-demo/capture-screenshots.ts :126 const response = await fetch(`http://${CDP_HOST}/json/list`);
  • net (weak) NimbleBrainInc-nimblebrain-d54b14b/scripts/check-catalog-dcr.ts :222 const res = await fetch(url, {
  • net (weak) NimbleBrainInc-nimblebrain-d54b14b/scripts/dev.ts :78 const res = await fetch(url);
  • net NimbleBrainInc-nimblebrain-d54b14b/src/api/routes/well-known.ts :55 const upstream = await fetch(metadataUrl);
  • net NimbleBrainInc-nimblebrain-d54b14b/src/connectors/providers/smithery/client.ts :126 return fetch(url, {
  • net NimbleBrainInc-nimblebrain-d54b14b/src/files/locator.ts :11 * **resolve-by-id:** `(ownerId, fileId) → wsId`, so a context-free fetch (the
  • net NimbleBrainInc-nimblebrain-d54b14b/src/model/sync-models.ts :248 const response = await fetch(API_URL);
  • net NimbleBrainInc-nimblebrain-d54b14b/src/model/sync-nebius.ts :321 const res = await fetch(API_URL, { headers: { Authorization: `Bearer ${key}` } });
  • net NimbleBrainInc-nimblebrain-d54b14b/src/platform/files/ui/src/useFileObjectUrl.ts :40 * Pass `enabled=false` to defer the fetch (e.g. off-screen thumbnails).
  • net NimbleBrainInc-nimblebrain-d54b14b/src/tools/credential-transport-credential.ts :110 return fetch(input as Parameters<typeof fetch>[0], { ...init, headers });
  • net NimbleBrainInc-nimblebrain-d54b14b/src/tools/oauth-refresh-fetch.ts :143 const doFetch: FetchLike = options.fetchImpl ?? ((url, init) => fetch(url, init));
  • net NimbleBrainInc-nimblebrain-d54b14b/src/tools/remote-transport.ts :109 * same-origin hops it follows. The inner fetch (minting, OAuth-refresh) sees
show 28 more
  • net NimbleBrainInc-nimblebrain-d54b14b/src/tools/ssrf-guarded-fetch.ts :46 const doFetch: FetchLike = baseFetch ?? ((u, i) => fetch(u, i));
  • net NimbleBrainInc-nimblebrain-d54b14b/src/tools/workspace-oauth-provider.ts :197 * AbortSignal threaded into every outbound `fetch()` the provider
  • net (weak) NimbleBrainInc-nimblebrain-d54b14b/test/helpers/remote-mcp-fixture.ts :41 async fetch(req: Request) {
  • net (weak) NimbleBrainInc-nimblebrain-d54b14b/test/integration/api-integration.test.ts :89 const healthRes = await fetch(`${baseUrl}/v1/health`);
  • net (weak) NimbleBrainInc-nimblebrain-d54b14b/test/integration/api.test.ts :39 const res = await fetch(`${baseUrl}/v1/chat`, {
  • net (weak) NimbleBrainInc-nimblebrain-d54b14b/test/integration/api/model-policy-http.test.ts :43 fetch(`${baseUrl}${path}`, {
  • net (weak) NimbleBrainInc-nimblebrain-d54b14b/test/integration/api/personal-workspace-invariants.test.ts :91 const res = await fetch(`${baseUrl}/v1/tools/call`, {
  • net (weak) NimbleBrainInc-nimblebrain-d54b14b/test/integration/api/request-rate-limit.test.ts :121 const res = await fetch(`${baseUrl}/v1/chat`, {
  • net (weak) NimbleBrainInc-nimblebrain-d54b14b/test/integration/appcontext-chat.test.ts :38 const res = await fetch(`${baseUrl}/v1/chat`, {
  • net (weak) NimbleBrainInc-nimblebrain-d54b14b/test/integration/body-limit-routes.test.ts :56 const res = await fetch(`${baseUrl}/v1/tools/call`, {
  • net (weak) NimbleBrainInc-nimblebrain-d54b14b/test/integration/bootstrap-composer-config.test.ts :118 const res = await fetch(`${baseUrl}/v1/bootstrap`, {
  • net (weak) NimbleBrainInc-nimblebrain-d54b14b/test/integration/bootstrap-workspace-header-leak.test.ts :127 const res = await fetch(`${baseUrl}/v1/bootstrap`, {
  • net (weak) NimbleBrainInc-nimblebrain-d54b14b/test/integration/chat-file-visibility.test.ts :66 const res = await fetch(`${baseUrl}/v1/chat/stream`, {
  • net (weak) NimbleBrainInc-nimblebrain-d54b14b/test/integration/chat-metadata.test.ts :71 const res = await fetch(`${baseUrl}/v1/chat`, {
  • net (weak) NimbleBrainInc-nimblebrain-d54b14b/test/integration/chat-stream-concurrent.test.ts :107 const res = await fetch(`${baseUrl}/v1/chat/stream`, {
  • net (weak) NimbleBrainInc-nimblebrain-d54b14b/test/integration/chat-stream-disconnect.test.ts :107 const res = await fetch(`${baseUrl}/v1/chat/stream`, {
  • net (weak) NimbleBrainInc-nimblebrain-d54b14b/test/integration/cli.test.ts :19 const res = await fetch(`http://localhost:${port}/v1/health`);
  • net (weak) NimbleBrainInc-nimblebrain-d54b14b/test/integration/compaction-wiring.test.ts :104 const res = await fetch(`${baseUrl}/v1/chat`, {
  • net (weak) NimbleBrainInc-nimblebrain-d54b14b/test/integration/conversation-access.test.ts :344 const res = await fetch(`${baseUrl}/v1/chat`, {
  • net (weak) NimbleBrainInc-nimblebrain-d54b14b/test/integration/conversation-integration.test.ts :242 const chatRes = await fetch(`${baseUrl}/v1/chat`, {
  • net (weak) NimbleBrainInc-nimblebrain-d54b14b/test/integration/core-registration.test.ts :89 const res = await fetch(
  • net (weak) NimbleBrainInc-nimblebrain-d54b14b/test/integration/cross-workspace-file-upload.test.ts :82 const res = await fetch(`${baseUrl}/v1/resources`, { method: "POST", body: form });
  • net (weak) NimbleBrainInc-nimblebrain-d54b14b/test/integration/detached-turn-http.test.ts :69 const res = await fetch(`${baseUrl}/v1/chat/start`, {
  • net (weak) NimbleBrainInc-nimblebrain-d54b14b/test/integration/file-serve-by-id.test.ts :63 const upload = await fetch(`${baseUrl}/v1/resources`, { method: "POST", body: form });
  • net (weak) NimbleBrainInc-nimblebrain-d54b14b/test/integration/files-mcp-resources.test.ts :77 const res = await fetch(`${baseUrl}/v1/chat/stream`, {
  • net (weak) NimbleBrainInc-nimblebrain-d54b14b/test/integration/hooks-door.test.ts :155 return app.fetch(
  • net (weak) NimbleBrainInc-nimblebrain-d54b14b/test/integration/identity-connector-lazy-start.test.ts :48 async fetch(req: Request) {
  • net (weak) NimbleBrainInc-nimblebrain-d54b14b/test/integration/identity-oauth-flow.test.ts :40 async fetch(req: Request) {

44 more not shown — this panel samples each group; the count above is the real total.

secrets 32

  • secrets NimbleBrainInc-nimblebrain-d54b14b/src/connectors/providers/composio/config.ts :75 const apiKey = declared?.apiKey?.trim() || (process.env.COMPOSIO_API_KEY?.trim() ?? "");
  • secrets NimbleBrainInc-nimblebrain-d54b14b/src/connectors/providers/smithery/config.ts :107 const apiKey = declared?.apiKey?.trim() || (process.env.SMITHERY_API_KEY?.trim() ?? "");
  • secrets NimbleBrainInc-nimblebrain-d54b14b/src/identity/providers/workos.ts :241 const apiKey = process.env.WORKOS_API_KEY ?? config.apiKey ?? "";
  • secrets NimbleBrainInc-nimblebrain-d54b14b/src/model/registry.ts :77 const nebiusApiKey = apiKey ?? process.env.NEBIUS_API_KEY;
  • secrets NimbleBrainInc-nimblebrain-d54b14b/src/model/sync-nebius.ts :315 const key = process.env.NEBIUS_API_KEY;
  • secrets NimbleBrainInc-nimblebrain-d54b14b/src/oauth/fleet-assertion.ts :42 const keyB64 = process.env.NB_MCP_AUTHORIZER_TENANT_KEY;
  • secrets NimbleBrainInc-nimblebrain-d54b14b/src/telemetry/manager.ts :9 const POSTHOG_API_KEY = process.env.POSTHOG_API_KEY ?? "";
  • secrets (weak) NimbleBrainInc-nimblebrain-d54b14b/test/eval/helpers.ts :38 const apiKey = process.env.ANTHROPIC_API_KEY;
  • secrets (weak) NimbleBrainInc-nimblebrain-d54b14b/test/eval/workspace-identity.eval.test.ts :28 const apiKey = process.env.ANTHROPIC_API_KEY;
  • secrets (weak) NimbleBrainInc-nimblebrain-d54b14b/test/integration/composio-credential-boot.test.ts :68 expect(process.env.COMPOSIO_API_KEY ?? "").toBe("");
  • secrets (weak) NimbleBrainInc-nimblebrain-d54b14b/test/integration/identity-target-install.test.ts :258 const savedKey = process.env.COMPOSIO_API_KEY;
  • secrets (weak) NimbleBrainInc-nimblebrain-d54b14b/test/integration/oauth-callback-public.test.ts :34 const savedComposioApiKey = process.env.COMPOSIO_API_KEY;
show 20 more
  • secrets (weak) NimbleBrainInc-nimblebrain-d54b14b/test/integration/smithery-e2e.test.ts :50 const HAVE_CREDS = Boolean(process.env.SMITHERY_API_KEY?.trim());
  • secrets (weak) NimbleBrainInc-nimblebrain-d54b14b/test/unit/api/mcp-auth-routes.test.ts :449 process.env.NB_OAUTH_BOUNCER_TENANT_KEY = TENANT_KEY_B64;
  • secrets (weak) NimbleBrainInc-nimblebrain-d54b14b/test/unit/composio-auth.test.ts :307 const origKey = process.env.COMPOSIO_API_KEY;
  • secrets (weak) NimbleBrainInc-nimblebrain-d54b14b/test/unit/composio-config.test.ts :102 process.env.COMPOSIO_API_KEY = "k_env";
  • secrets (weak) NimbleBrainInc-nimblebrain-d54b14b/test/unit/composio-connection-probe.test.ts :89 process.env.COMPOSIO_API_KEY = "k";
  • secrets (weak) NimbleBrainInc-nimblebrain-d54b14b/test/unit/composio-sdk.test.ts :185 process.env.COMPOSIO_API_KEY = "k_test";
  • secrets (weak) NimbleBrainInc-nimblebrain-d54b14b/test/unit/composio-transport-credential.test.ts :59 process.env.COMPOSIO_API_KEY = "k_env";
  • secrets (weak) NimbleBrainInc-nimblebrain-d54b14b/test/unit/connector-tools-composio-apikey.test.ts :236 process.env.COMPOSIO_API_KEY = "k_test";
  • secrets (weak) NimbleBrainInc-nimblebrain-d54b14b/test/unit/connector-tools-composio-install.test.ts :294 process.env.COMPOSIO_API_KEY = "k_test";
  • secrets (weak) NimbleBrainInc-nimblebrain-d54b14b/test/unit/connector-tools-smithery-install.test.ts :179 process.env.SMITHERY_API_KEY = "sk_test";
  • secrets (weak) NimbleBrainInc-nimblebrain-d54b14b/test/unit/fleet-assertion.test.ts :47 const savedKey = process.env.NB_MCP_AUTHORIZER_TENANT_KEY;
  • secrets (weak) NimbleBrainInc-nimblebrain-d54b14b/test/unit/gateway-credential.test.ts :87 process.env.MCP360_API_KEY = "sk-from-env";
  • secrets (weak) NimbleBrainInc-nimblebrain-d54b14b/test/unit/managed-connector-registry.test.ts :92 process.env.COMPOSIO_API_KEY = "k_env";
  • secrets (weak) NimbleBrainInc-nimblebrain-d54b14b/test/unit/model-registry.test.ts :95 const prev = process.env.NEBIUS_API_KEY;
  • secrets (weak) NimbleBrainInc-nimblebrain-d54b14b/test/unit/oauth-bouncer-config.test.ts :63 process.env.NB_OAUTH_BOUNCER_TENANT_KEY = VALID_KEY_B64;
  • secrets (weak) NimbleBrainInc-nimblebrain-d54b14b/test/unit/oauth/mcp-callback-url.test.ts :43 process.env.NB_OAUTH_BOUNCER_TENANT_KEY = randomBytes(32).toString("base64");
  • secrets (weak) NimbleBrainInc-nimblebrain-d54b14b/test/unit/platform/automations/executor.test.ts :73 process.env.NB_INTERNAL_TOKEN = "test-token-123";
  • secrets (weak) NimbleBrainInc-nimblebrain-d54b14b/test/unit/remote-transport-factory.test.ts :135 key: process.env.NB_MCP_AUTHORIZER_TENANT_KEY,
  • secrets (weak) NimbleBrainInc-nimblebrain-d54b14b/test/unit/smithery-provider.test.ts :55 process.env.SMITHERY_API_KEY = "sk_test";
  • secrets (weak) NimbleBrainInc-nimblebrain-d54b14b/test/unit/smithery-teardown.test.ts :68 process.env.SMITHERY_API_KEY = "sk_test";

declared dependencies 37

  • @modelcontextprotocol/ext-apps@^1.7.5
  • @modelcontextprotocol/sdk@^1.29.0
  • @ai-sdk/anthropic@^4.0.0
  • @ai-sdk/google@^4.0.0
  • @ai-sdk/openai@^4.0.0
  • @ai-sdk/openai-compatible@^3.0.0
  • @ai-sdk/xai@^4.0.0
  • @composio/core@0.18.0
  • @e965/xlsx@0.20.3
  • @nimblebrain/synapse@0.19.0
  • @opentelemetry/api@1.9.1
  • @opentelemetry/exporter-trace-otlp-http@0.219.0
show 25 more
  • @opentelemetry/resources@2.8.0
  • @opentelemetry/sdk-trace-base@2.8.0
  • @opentelemetry/sdk-trace-node@2.8.0
  • @opentelemetry/semantic-conventions@1.41.1
  • @sentry/bun@^10.58.0
  • @sinclair/typebox@^0.34.49
  • @workos-inc/node@^10.0.0
  • ai@^7.0.0
  • ajv@^8.18.0
  • ajv-formats@^3.0.1
  • croner@^10.0.1
  • gray-matter@^4.0.3
  • hono@^4.12.14
  • mammoth@^1.12.0
  • posthog-node@^5.28.5
  • prom-client@^15.1.3
  • react@^19.2.4
  • react-dom@^19.2.4
  • unpdf@^1.6.0
  • @biomejs/biome@^2.4.10
  • @types/bun@latest
  • @types/react@^19.2.14
  • @types/react-dom@^19.2.3
  • happy-dom@^20.0.0
  • typescript@^5.9.3

obfuscation 1

  • base64 decode → exec sink NimbleBrainInc-nimblebrain-d54b14b/test/unit/platform/files/source.test.ts :202 const pngBytes = Buffer.from(pngBase64, "base64");

perm:untrusted 3

  • untrusted (weak) NimbleBrainInc-nimblebrain-d54b14b/test/integration/compaction-wiring.test.ts :168 const metricsBody = await (await fetch(`${baseUrl}/metrics`)).text();
  • untrusted (weak) NimbleBrainInc-nimblebrain-d54b14b/test/integration/metrics-endpoint.test.ts :76 const body = await (await fetch(`${baseUrl}/metrics`)).text();
  • untrusted (weak) NimbleBrainInc-nimblebrain-d54b14b/test/integration/mid-turn-compaction-wiring.test.ts :164 const metricsBody = await (await fetch(`${on.baseUrl}/metrics`)).text();

transport_posture 2

  • binds all interfaces (0.0.0.0) NimbleBrainInc-nimblebrain-d54b14b/test/unit/cli.test.ts :267 http: { port: 8080, host: "0.0.0.0" },
  • network-listening, binds all interfaces, no auth detected NimbleBrainInc-nimblebrain-d54b14b/test/unit/config-types.test.ts :36 expect(isValid({ http: { port: 8080, host: "0.0.0.0" } })).toBe(true);