github JavaScript analyzed de2b6dc

Forgemind-git/ForgeGrowth-OSS

github

Self-hosted, WhatsApp-native growth stack: Meta ad → click-to-WhatsApp conversation → lead → funnel stage → payment, joined by one key. Express + React + Postgres. MIT licensed.

maintainer
Forgemind-git
license
MIT
first seen
2026-08-11
last seen
2026-08-21
releases · 30d
2
short id

Drift inferred · capture-to-capture

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

capabilities 45 tools
transport stdio · streamable-http · http counts 45 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • add_google_sheets_tool
  • add_http_tool
  • add_tool
  • create_agent
  • create_automation
  • create_lead_form
  • create_template
  • create_wa_link
  • delete_agent
  • delete_tool
  • forgechat_request
  • get_agent
  • get_campaign_performance
  • get_product_revenue
  • get_template
  • list_agents
  • list_conversations
  • list_endpoints
  • list_form_submissions
  • list_lead_forms
  • list_leads
  • list_media
  • list_models
  • list_payments
  • list_products
  • list_projects
  • list_sheet_tabs
  • list_templates
  • list_wa_accounts
  • list_webinars
  • move_lead_stage
  • move_to_project
  • read_messages
  • read_sheet_values
  • search_spreadsheets
  • send_bulk_message
  • send_interactive
  • send_media
  • send_message
  • send_template
  • submit_template
  • sync_template
  • update_agent
  • update_tool
  • upload_media
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit de2b6dc · analyzer v33 · 2w ago

skills & prompt files 11

danger signals2

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

code files: 252

filesystem 18

  • fs (weak) Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/scripts/cleanupMedia.js :9 const fs = require('fs');
  • fs (weak) Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/scripts/run-migrations.js :34 const fs = require('fs');
  • fs Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/engine/agentEngine.js :679 const fs = require('fs');
  • fs Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/routes/agents.js :259 const fs = require('fs');
  • fs Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/routes/mcp.js :16 const fs = require('fs');
  • fs Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/routes/media.js :2 const fs = require('fs');
  • fs Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/routes/messages.js :3 const fs = require('fs');
  • fs Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/routes/uploads.js :4 const fs = require('fs');
  • fs Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/services/mediaDownloader.js :5 const fs = require('fs');
  • fs Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/services/mediaDuration.js :21 const fs = require('fs');
  • fs Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/services/traefikDynamic.js :32 const fs = require('fs/promises');
  • fs Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/services/transcription.js :8 const fs = require('fs');
  • fs (weak) Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/test/formAnswers.unit.test.js :17 const fs = require('node:fs');
  • fs (weak) Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/test/mcpCatalog.unit.test.js :14 const fs = require('node:fs');
  • fs (weak) Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/test/productSales.unit.test.js :13 const fs = require('node:fs');
  • fs (weak) Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/test/projects.unit.test.js :20 const fs = require('node:fs');
  • fs (weak) Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/test/publicUrl.unit.test.js :13 const fs = require('node:fs');
  • fs (weak) Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/test/traefikDynamic.unit.test.js :13 const fs = require('fs');

shell / exec 4

  • shell Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/engine/agentEngine.js :927 return await exec(args);
  • shell Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/routes/messages.js :5 const { execFile } = require('child_process');
  • shell Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/services/mediaDownloader.js :7 const { execFile } = require('child_process');
  • shell Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/services/mediaDuration.js :20 const { execFile } = require('child_process');

network 21

  • net Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/engine/agentEngine.js :332 res = await fetch(url, { ...init, signal: ctrl.signal });
  • net Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/engine/automationEngine.js :495 const res = await fetch(endpoint, {
  • net Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/integrations/aiProviders.js :14 const res = await fetch(url, { ...opts, signal: controller.signal });
  • net Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/integrations/googleClient.js :98 const res = await fetch('https://oauth2.googleapis.com/token', {
  • net Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/integrations/metaAdsClient.js :23 const res = await fetch(url.toString(), { signal: AbortSignal.timeout(30000) });
  • net Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/integrations/metaMedia.js :25 const res = await fetch(`https://graph.facebook.com/${META_API_VERSION}/${encodeURIComponent(mediaId)}`, {
  • net Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/integrations/metaResumableUpload.js :14 const res = await fetch(url, { method: 'POST' });
  • net Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/integrations/metaSend.js :12 const res = await fetch(endpoint, {
  • net Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/integrations/metaTemplates.js :16 const res = await fetch(url, {
  • net Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/integrations/razorpayClient.js :91 res = await fetch(`${API_BASE}${path}`, {
  • net Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/llm/chatCompletion.js :53 const res = await fetch(`${baseUrl}/chat/completions`, {
  • net Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/routes/webhookHistory.js :135 const r = await fetch(`http://localhost:${port}/api/webhook/whatsapp`, {
  • net Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/routes/whatsappAccounts.js :70 const res = await fetch(url, { headers: { Authorization: `Bearer ${acc.accessToken}` } });
  • net Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/services/domainService.js :325 const res = await fetch(`${scheme}://${host}${path}`, {
  • net Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/services/mcpService.js :732 const res = await fetch(url, init);
  • net Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/services/messageCosts.js :289 const res = await fetch(url, { signal: AbortSignal.timeout(45000) });
  • net (weak) Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/test/helpers/app.js :13 const http = require('http');
  • net Forgemind-git-ForgeGrowth-OSS-de2b6dc/frontend/src/api.js :4 res = await fetch(`/api${path}`, {
  • net Forgemind-git-ForgeGrowth-OSS-de2b6dc/frontend/src/pages/AdminSettingsPage.jsx :5932 const res = await fetch('/api/webhook/whatsapp', {
  • net Forgemind-git-ForgeGrowth-OSS-de2b6dc/frontend/src/pages/BulkMessagePage.jsx :1107 fetch(`/api/whatsapp-accounts/by-phone/${encodeURIComponent(newBroadcastFrom)}`, { credentials: 'include' })
  • net Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :28 const res = await fetch(`${API_URL}${path}`, {

secrets 9

  • secrets Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/auth.js :66 const supplied = process.env.BOOTSTRAP_ADMIN_PASSWORD;
  • secrets Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/engine/agentEngine.js :559 if (agent.ai_provider === 'anthropic') return process.env.ANTHROPIC_API_KEY || '';
  • secrets Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/integrations/metaMedia.js :11 const t = token || process.env.META_ACCESS_TOKEN || '';
  • secrets Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/routes/webhook.js :778 if (!accepted && process.env.META_WEBHOOK_VERIFY_TOKEN && safeEqual(process.env.META_WEBHOOK_VERIFY_TOKEN, token)) {
  • secrets Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/util/crypto.js :20 const RAW = process.env.FORGECRM_ENCRYPTION_KEY || process.env.JWT_SECRET || '';
  • secrets Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/util/minioClient.js :9 const MINIO_ACCESS_KEY = process.env.MINIO_ACCESS_KEY || process.env.MINIO_ROOT_USER || 'minioadmin';
  • secrets Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/util/session.js :25 process.env.FORGECRM_JWT_SECRET || process.env.JWT_SECRET || DEV_SECRET;
  • secrets (weak) Forgemind-git-ForgeGrowth-OSS-de2b6dc/frontend/e2e/automation-builder.spec.js :7 const LOGIN_PASSWORD = process.env.E2E_PASSWORD;
  • secrets Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :18 const API_KEY = process.env.FORGECHAT_API_KEY || '';

database 5

  • db (weak) Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/scripts/run-migrations.js :36 const { Client } = require('pg');
  • db Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/db.js :1 const { Pool } = require('pg');
  • db Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/queue/agentQueue.js :7 const IORedis = require('ioredis');
  • db Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/queue/mediaQueue.js :7 const IORedis = require('ioredis');
  • db Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/queue/sendQueue.js :6 const IORedis = require('ioredis');

tool registrations 90

  • list_wa_accounts Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :92
  • list_models Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :98
  • search_spreadsheets Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :104
  • list_sheet_tabs Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :110
  • read_sheet_values Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :116
  • list_media Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :127
  • list_templates Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :136
  • get_template Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :142
  • list_agents Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :148
  • get_agent Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :154
  • list_conversations Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :161
  • read_messages Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :175
  • send_message Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :188
  • send_template Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :202
  • send_media Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :216
  • send_interactive Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :238
  • upload_media Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :252
  • create_template Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :271
  • submit_template Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :294
  • sync_template Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :300
  • create_automation Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :306
  • create_wa_link Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :324
  • create_lead_form Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :334
  • list_lead_forms Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :356
  • list_form_submissions Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :362
  • list_projects Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :376
  • move_to_project Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :386
  • list_leads Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :402
  • move_lead_stage Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :413
  • get_campaign_performance Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :422
  • list_webinars Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :428
  • list_products Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :435
  • get_product_revenue Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :441
  • list_payments Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :447
  • list_endpoints Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :459
  • forgechat_request Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :465
  • send_bulk_message Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :482
  • create_agent Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :508
  • update_agent Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :533
  • add_google_sheets_tool Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :558
  • add_http_tool Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :574
  • add_tool Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :603
  • update_tool Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :615
  • delete_tool Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :627
  • delete_agent Forgemind-git-ForgeGrowth-OSS-de2b6dc/backend/src/mcpHttp.js :633
  • list_wa_accounts Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :61
  • list_models Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :67
  • search_spreadsheets Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :73
  • list_sheet_tabs Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :79
  • read_sheet_values Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :85
  • list_media Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :101
  • list_templates Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :116
  • get_template Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :122
  • list_agents Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :128
  • get_agent Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :134
  • list_conversations Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :142
  • read_messages Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :163
  • send_message Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :181
  • send_template Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :195
  • send_media Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :209
  • send_interactive Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :231
  • upload_media Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :246
  • create_template Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :262
  • submit_template Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :282
  • sync_template Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :288
  • create_automation Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :294
  • create_wa_link Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :311
  • create_lead_form Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :321
  • list_lead_forms Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :342
  • list_form_submissions Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :348
  • list_projects Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :368
  • move_to_project Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :383
  • list_leads Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :400
  • move_lead_stage Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :419
  • get_campaign_performance Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :428
  • list_webinars Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :434
  • list_products Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :444
  • get_product_revenue Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :450
  • list_payments Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :456
  • list_endpoints Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :479
  • forgechat_request Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :485
  • send_bulk_message Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :499
  • create_agent Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :534
  • update_agent Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :562
  • add_google_sheets_tool Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :587
  • add_http_tool Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :605
  • add_tool Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :634
  • update_tool Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :646
  • delete_tool Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :658
  • delete_agent Forgemind-git-ForgeGrowth-OSS-de2b6dc/mcp-server/src/index.js :668

declared dependencies 22

  • @modelcontextprotocol/sdk@^1.29.0
  • @anthropic-ai/sdk@^0.99.0
  • bcryptjs@^2.4.3
  • bullmq@^5.21.0
  • cookie-parser@^1.4.6
  • cors@^2.8.5
  • dotenv@^16.4.5
  • express@^4.19.2
  • express-rate-limit@^7.3.1
  • helmet@^7.1.0
  • ioredis@^5.4.1
  • jsonwebtoken@^9.0.2
  • minio@^8.0.7
  • multer@^2.1.1
  • openai@^6.0.0
  • pg@^8.12.0
  • xlsx@https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz
  • zod@^3.25.76
  • @eslint/js@^9.39.5
  • eslint@^9.39.5
  • globals@^17.9.0
  • nodemon@^3.1.4