Open source memory infrastructure for AI and humans. Turn scattered knowledge into AI-ready context across Claude, Cursor, ChatGPT, and any MCP client.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
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.
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
- agent-rules streamient-streamient-3176449/.cursor/rules/streamient-mcp-agent-workflow.mdc
- agent-rules streamient-streamient-3176449/AGENTS.md
- skill streamient-streamient-3176449/SKILL.md
- agent-rules streamient-streamient-3176449/docs/AGENTS.md
- agent-rules streamient-streamient-3176449/docs/mcp/agents.md
- skill streamient-streamient-3176449/streamient-memory.zip!/SKILL.md
danger signals4
- dynamic code execution new Function() streamient-streamient-3176449/public/js/vendor.js :12672
result[paramName] = new Function(`return ${value}`)(); - dynamic code execution vm exec streamient-streamient-3176449/test/account-deletion-ui.test.js :37
await vm.runInNewContext(source, context); - dynamic code execution vm exec streamient-streamient-3176449/test/profile-settings-ui.test.js :99
vm.runInNewContext(dateFormatSource, context); - dynamic code execution new Function() streamient-streamient-3176449/test/session-writes.test.js :38
const middleware = new Function('session', 'MongoStore', 'config', 'process', `${configuration}; return sessionMiddleware;`)((settings) => { options = settings; return session(settings); }, { create:
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()}`);