github JavaScript analyzed 3176449

streamient/streamient

github

Open source memory infrastructure for AI and humans. Turn scattered knowledge into AI-ready context across Claude, Cursor, ChatGPT, and any MCP client.

maintainer
streamient
licence
AGPL-3.0
first seen
2026-07-06
last seen
2026-09-17
releases · 30d
20
short id

Drift inferred · capture-to-capture

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

capabilities 0 tools
transport stdio · streamable-http · http · sse 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 3176449 · analyzer v33 · 8h ago

skills & prompt files 6

danger signals4

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

code files: 395

filesystem 67

  • fs streamient-streamient-3176449/app.js :7 import fs from 'node:fs';
  • fs streamient-streamient-3176449/apps/cli/bin/streamient-cli.js :3 import { readFileSync } from 'node:fs';
  • fs streamient-streamient-3176449/apps/cli/lib/arguments.js :1 import { readFile } from 'node:fs/promises';
  • fs (weak) streamient-streamient-3176449/apps/cli/scripts/generate-command-reference.mjs :1 import { readFile, writeFile } from 'node:fs/promises';
  • fs (weak) streamient-streamient-3176449/apps/cli/scripts/pack-smoke.mjs :3 import { mkdtemp, mkdir, rm } from 'node:fs/promises';
  • fs (weak) streamient-streamient-3176449/apps/cli/test/catalog.test.js :2 import { readFile } from 'node:fs/promises';
  • fs (weak) streamient-streamient-3176449/apps/mobile/scripts/generate-assets.mjs :1 import { mkdir, readFile } from "node:fs/promises";
  • fs (weak) streamient-streamient-3176449/apps/mobile/scripts/generate-play-store-assets.mjs :1 import { mkdir, readFile } from "node:fs/promises";
  • fs streamient-streamient-3176449/build.js :2 import { readdirSync, readFileSync, unlinkSync, writeFileSync } from 'node:fs';
  • fs (weak) streamient-streamient-3176449/docs/scripts/check-seo-metadata.js :1 import fs from 'node:fs';
  • fs (weak) streamient-streamient-3176449/docs/scripts/export-openapi.js :1 import { copyFileSync, writeFileSync, mkdirSync } from 'node:fs';
  • fs streamient-streamient-3176449/modules/file_detect.js :1 import { open } from 'node:fs/promises';
show 28 more
  • fs streamient-streamient-3176449/modules/screenshot.js :2 import fs from 'node:fs';
  • fs streamient-streamient-3176449/routes/api.js :4 import fs from 'node:fs';
  • fs streamient-streamient-3176449/services/account_cleanup_service.js :17 import fs from 'node:fs';
  • fs streamient-streamient-3176449/services/auth_asset_service.js :2 import fs from 'node:fs/promises';
  • fs streamient-streamient-3176449/services/email_ingest_service.js :1 import fs from 'node:fs/promises';
  • fs streamient-streamient-3176449/services/export_service.js :2 import fs from 'node:fs';
  • fs streamient-streamient-3176449/services/git_sync_service.js :2 import fs from 'node:fs';
  • fs streamient-streamient-3176449/services/import_service.js :2 import { createReadStream } from 'node:fs';
  • fs streamient-streamient-3176449/services/note_import_service.js :4 import { createReadStream, createWriteStream } from 'node:fs';
  • fs streamient-streamient-3176449/services/obsidian_blob_service.js :3 import { createReadStream, createWriteStream } from 'node:fs';
  • fs streamient-streamient-3176449/services/white_label_service.js :2 import fs from 'node:fs/promises';
  • fs (weak) streamient-streamient-3176449/test/account-deletion-inventory.test.js :3 import { readdir } from 'node:fs/promises';
  • fs (weak) streamient-streamient-3176449/test/account-deletion-ui.test.js :3 import fs from 'node:fs/promises';
  • fs (weak) streamient-streamient-3176449/test/admin-settings-ui.test.js :3 import fs from 'node:fs';
  • fs (weak) streamient-streamient-3176449/test/admin-user-export.test.js :3 import fs from 'node:fs';
  • fs (weak) streamient-streamient-3176449/test/chat-assistant-avatar.test.js :3 import fs from 'node:fs';
  • fs (weak) streamient-streamient-3176449/test/chat-results-navigation.test.js :3 import { readFileSync } from 'node:fs';
  • fs (weak) streamient-streamient-3176449/test/dark-mode-ui.test.js :3 import { readFileSync } from 'node:fs';
  • fs (weak) streamient-streamient-3176449/test/docker-pnpm-runtime.test.js :2 import fs from 'node:fs';
  • fs (weak) streamient-streamient-3176449/test/git-sync-service.test.js :8 import fs from 'node:fs';
  • fs (weak) streamient-streamient-3176449/test/helpmonks-signup-sequence.test.js :3 import fs from 'node:fs';
  • fs (weak) streamient-streamient-3176449/test/infinite-scroll-source.test.js :3 import fs from 'node:fs';
  • fs (weak) streamient-streamient-3176449/test/integration/account-deletion.test.js :7 import fs from 'node:fs/promises';
  • fs (weak) streamient-streamient-3176449/test/link-search-results.test.js :3 import fs from 'node:fs';
  • fs (weak) streamient-streamient-3176449/test/mobile-android-release.test.js :3 import { chmodSync, mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
  • fs (weak) streamient-streamient-3176449/test/mobile-app-source.test.js :3 import fs from 'node:fs';
  • fs (weak) streamient-streamient-3176449/test/mobile-apps.test.js :3 import { readFileSync } from 'node:fs';
  • fs (weak) streamient-streamient-3176449/test/mobile-large-import.test.js :4 import { mkdtemp, rm, truncate, writeFile } from 'node:fs/promises';

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

shell / exec 7

  • shell (weak) streamient-streamient-3176449/apps/cli/scripts/pack-smoke.mjs :2 import { execFile } from 'node:child_process';
  • shell (weak) streamient-streamient-3176449/scripts/generate-release-notes.mjs :1 import { execFileSync } from 'node:child_process';
  • shell streamient-streamient-3176449/services/import_service.js :3 import { spawn } from 'node:child_process';
  • shell (weak) streamient-streamient-3176449/test/git-sync-service.test.js :7 import { execFile } from 'node:child_process';
  • shell (weak) streamient-streamient-3176449/test/mobile-android-release.test.js :2 import { spawnSync } from 'node:child_process';
  • shell (weak) streamient-streamient-3176449/test/mobile-large-import.test.js :3 import { spawn } from 'node:child_process';
  • shell (weak) streamient-streamient-3176449/test/otel-runtime-metrics.test.js :2 import { spawn } from 'node:child_process';

network 45

  • net streamient-streamient-3176449/apps/mcp/lib/api-client.js :30 const response = await fetch(url, options);
  • net streamient-streamient-3176449/apps/mobile/src/lib/api.ts :55 const response = await fetch(`${this.server.baseUrl}${path}`, { ...init, headers });
  • net streamient-streamient-3176449/apps/mobile/src/lib/auth.ts :67 const response = await fetch(`${server.baseUrl}/oauth/token`, { method: "POST", headers: { "Content-Type": "application/x-www-form-urlencoded" }, body });
  • net streamient-streamient-3176449/apps/mobile/src/lib/nativeFile.ts :18 if (uri.startsWith("data:")) return (await fetch(uri)).blob().then((blob) => blob.size);
  • net streamient-streamient-3176449/modules/llm_client.js :149 const response = await fetch(`${provider.baseUrl}/chat/completions`, {
  • net streamient-streamient-3176449/modules/screenshot.js :5 import axios from 'axios';
  • net streamient-streamient-3176449/modules/typesense.js :1989 const createResp = await fetch(baseUrl, { method: 'POST', headers, body: JSON.stringify(modelBody) });
  • net streamient-streamient-3176449/modules/url_content_extractor.js :1 import axios from 'axios';
  • net streamient-streamient-3176449/public/js/account_deletion.js :14 preview = await read(await fetch(button.dataset.previewUrl, { headers: { Accept: 'application/json' }, cache: 'no-store' }));
  • net streamient-streamient-3176449/public/js/admin.js :33 const res = await fetch(`/admin/api/accounts?status=${currentStatus}&page=${currentPage}`);
  • net streamient-streamient-3176449/public/js/admin_accounts.js :47 const response = await fetch('/admin/api/accounts', {
  • net streamient-streamient-3176449/public/js/admin_settings.js :75 const response = await fetch('/admin/api/settings/managani');
show 28 more
  • net streamient-streamient-3176449/public/js/app.js :40 const res = await fetch(`${API}${path}`, options);
  • net streamient-streamient-3176449/public/js/auth.js :21 const res = await fetch('/signup', {
  • net streamient-streamient-3176449/public/js/batch.js :78 var res = await fetch('/ajax/batch-project-picker?' + params);
  • net streamient-streamient-3176449/public/js/chat.js :180 const res = await fetch('/api/v1/chat/stream', {
  • net streamient-streamient-3176449/public/js/product_updates.js :16 return typeof window.accountFetch === 'function' ? window.accountFetch(path, options) : fetch(path, options);
  • net streamient-streamient-3176449/public/js/search_results.js :196 const response = await fetch('/ajax/batch-project-picker?action=move');
  • net streamient-streamient-3176449/public/js/security.js :12 const res = await fetch('/2fa/setup', {
  • net streamient-streamient-3176449/public/js/sysadmin_login.js :27 const res = await fetch(`/api/v1/admin/users/search?q=${encodeURIComponent(q)}`);
  • net (weak) streamient-streamient-3176449/scripts/generate-release-notes.mjs :25 const response = await fetch(`${apiBase}${path}`, {
  • net streamient-streamient-3176449/services/byo_ai_service.js :180 const res = await fetch('https://api.openai.com/v1/chat/completions', {
  • net streamient-streamient-3176449/services/git_sync_service.js :498 await localGit.fetch(repoAuthUrl(gitRepoDoc, token), branch);
  • net streamient-streamient-3176449/services/helpmonks_signup_sequence_service.js :1 import axios from 'axios';
  • net streamient-streamient-3176449/services/oauth_service.js :4 import { isIP } from 'node:net';
  • net (weak) streamient-streamient-3176449/test/admin-settings-api.test.js :22 return fetch(`http://127.0.0.1:${port}/admin${path}`, {
  • net (weak) streamient-streamient-3176449/test/admin-user-export.test.js :38 return fetch(`http://127.0.0.1:${port}/admin/api/users.csv`, {
  • net (weak) streamient-streamient-3176449/test/ai-daily-limit.test.js :21 return fetch(`http://127.0.0.1:${port}/chat`, {
  • net (weak) streamient-streamient-3176449/test/byo-ai-api.test.js :59 return fetch(`http://127.0.0.1:${port}/api/v1${path}`, {
  • net (weak) streamient-streamient-3176449/test/crawler.test.js :9 import { createServer } from 'node:http';
  • net (weak) streamient-streamient-3176449/test/import-email-route.test.js :22 return fetch(`http://127.0.0.1:${port}/import/email`, {
  • net (weak) streamient-streamient-3176449/test/integration/account-deletion.test.js :87 assert.equal((await fetch(route)).status, 403);
  • net (weak) streamient-streamient-3176449/test/obsidian-sync-integration.test.js :58 fetch(`${endpoint}/api/v1/obsidian/account`, { headers: { Authorization: `Bearer ${token}` } }),
  • net (weak) streamient-streamient-3176449/test/otel-runtime-metrics.test.js :3 import http from 'node:http';
  • net (weak) streamient-streamient-3176449/test/product-updates-ui.test.js :64 const status = await fetch(`${base}/ajax/product-updates/status`);
  • net (weak) streamient-streamient-3176449/test/profile-api.test.js :32 return fetch(`http://127.0.0.1:${port}/api/v1${path}`, {
  • net (weak) streamient-streamient-3176449/test/project-limit-api.test.js :35 return fetch(`http://127.0.0.1:${port}/api/v1/projects`, {
  • net (weak) streamient-streamient-3176449/test/project-settings-api.test.js :88 return fetch(`http://127.0.0.1:${port}/api/v1${path}`, {
  • net (weak) streamient-streamient-3176449/test/project-ui-source.test.js :100 assert.ok(source.includes("fetch('/ajax/batch-project-picker?' + params)"));
  • net (weak) streamient-streamient-3176449/test/rate-limit.test.js :243 assert.equal((await fetch(`${base}/obsidian/files/file-1/content`, { headers: obsidianHeaders })).status, 200);

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

secrets 2

  • secrets streamient-streamient-3176449/config.js :52 apiKey: process.env.TYPESENSE_API_KEY || 'streamient-dev-key',
  • secrets (weak) streamient-streamient-3176449/scripts/ts-node-diag.mjs :15 return { nodes: parsed.nodes, apiKey: parsed.apiKey || process.env.TYPESENSE_API_KEY };

database 3

  • db streamient-streamient-3176449/modules/socket.js :5 import { MongoClient } from 'mongodb';
  • db (weak) streamient-streamient-3176449/test/session-queue-mongo-integration.test.js :4 import { MongoClient } from 'mongodb';
  • db (weak) streamient-streamient-3176449/test/socket-mongodb-adapter.test.js :8 import { MongoClient } from 'mongodb';

declared dependencies 96

  • @modelcontextprotocol/sdk@^1.30.0
  • @fontsource-variable/material-symbols-outlined@^5.3.6
  • @fontsource-variable/noto-sans@^5.3.0
  • @fontsource-variable/noto-sans-mono@^5.3.0
  • @hyperdx/node-opentelemetry@^0.11.0
  • @iframe-resizer/child@^5.5.9
  • @iframe-resizer/parent@^5.5.9
  • @managani/cache@0.1.5
  • @managani/express@^0.1.2
  • @managani/node@^0.1.2
  • @opentelemetry/api@1.9.1
  • @opentelemetry/api-logs@0.222.0
show 28 more
  • @opentelemetry/auto-instrumentations-node@0.80.0
  • @opentelemetry/exporter-logs-otlp-http@0.222.0
  • @opentelemetry/exporter-trace-otlp-grpc@0.222.0
  • @opentelemetry/exporter-trace-otlp-http@0.222.0
  • @opentelemetry/instrumentation@0.222.0
  • @opentelemetry/instrumentation-runtime-node@0.35.0
  • @opentelemetry/resources@2.11.0
  • @opentelemetry/sdk-logs@0.222.0
  • @opentelemetry/sdk-node@0.222.0
  • @opentelemetry/sdk-trace-base@2.11.0
  • @opentelemetry/semantic-conventions@1.43.0
  • @simplewebauthn/server@^14.0.2
  • @socket.io/mongo-adapter@^0.4.0
  • @socket.io/mongo-emitter@^0.2.0
  • @tabler/core@^1.5.1
  • @tabler/icons-webfont@^3.46.0
  • @tiptap/core@^3.31.3
  • @tiptap/extension-blockquote@^3.31.3
  • @tiptap/extension-bullet-list@^3.31.3
  • @tiptap/extension-code-block@^3.31.3
  • @tiptap/extension-heading@^3.31.3
  • @tiptap/extension-horizontal-rule@^3.31.3
  • @tiptap/extension-image@^3.31.3
  • @tiptap/extension-ordered-list@^3.31.3
  • @tiptap/extension-placeholder@^3.31.3
  • @tiptap/extension-task-item@^3.31.3
  • @tiptap/extension-task-list@^3.31.3
  • @tiptap/pm@^3.31.3

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

cursor-plugin 1

  • opaque (low) streamient-streamient-3176449/.cursor/rules/streamient-mcp-agent-workflow.mdc bundled .cursor/ plugin descriptor (streamient-streamient-3176449/.cursor/rules/streamient-mcp-agent-workflow.mdc) — presence-detected; review the descriptor

obfuscation 10

  • dynamic require()/import() streamient-streamient-3176449/test/admin-settings-api.test.js :9 const { default: adminRoutes } = await import(`../routes/admin.js?admin_settings_test=${Date.now()}_${Math.random()}`);
  • dynamic require()/import() streamient-streamient-3176449/test/admin-user-export.test.js :26 const { default: adminRoutes } = await import(`../routes/admin.js?admin_user_export_test=${Date.now()}_${Math.random()}`);
  • dynamic require()/import() streamient-streamient-3176449/test/byo-ai-api.test.js :41 const { default: apiRoutes } = await import(`../routes/api.js?byo_ai_test=${Date.now()}_${Math.random()}`);
  • dynamic require()/import() streamient-streamient-3176449/test/profile-api.test.js :15 const { default: apiRoutes } = await import(`../routes/api.js?profile_test=${Date.now()}_${Math.random()}`);
  • dynamic require()/import() streamient-streamient-3176449/test/project-limit-api.test.js :17 const { default: apiRoutes } = await import(`../routes/api.js?project_limit_test=${Date.now()}_${Math.random()}`);
  • dynamic require()/import() streamient-streamient-3176449/test/project-settings-api.test.js :70 const { default: apiRoutes } = await import(`../routes/api.js?project_settings_test=${Date.now()}_${Math.random()}`);
  • dynamic require()/import() streamient-streamient-3176449/test/team-limit-api.test.js :18 const { default: apiRoutes } = await import(`../routes/api.js?team_limit_test=${Date.now()}_${Math.random()}`);
  • dynamic require()/import() streamient-streamient-3176449/test/typesense-import.test.js :43 const { runStreamientIndexer } = await import(`../modules/typesense.js?move-during-import=${Date.now()}`);
  • dynamic require()/import() streamient-streamient-3176449/test/typesense-trash-filter.test.js :32 const typesense = await import(`../modules/typesense.js?trash-filter-test=${Date.now()}`);
  • dynamic require()/import() streamient-streamient-3176449/test/white-label-api.test.js :28 const { default: apiRoutes } = await import(`../routes/api.js?white_label_api_test=${Date.now()}_${Math.random()}`);