github TypeScript analyzed 007a03c

ProjForge/Forge

github

Durable, project-scoped memory and semantic retrieval for AI agents and developer tools.

maintainer
ProjForge
license
Apache-2.0
first seen
2026-08-11
last seen
2026-08-30
releases · 30d
5
short id

Drift inferred · capture-to-capture

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

capabilities 28 tools
transport stdio · http counts 28 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • forge_assign_agent
  • forge_compile_context
  • forge_create_task
  • forge_finish_execution
  • forge_get_agent
  • forge_get_audit_trail
  • forge_get_execution
  • forge_get_project
  • forge_get_semantic_candidate_texts
  • forge_get_task
  • forge_list_decisions
  • forge_list_embedding_candidates
  • forge_list_executions
  • forge_list_memories
  • forge_list_projects
  • forge_list_tasks
  • forge_load_context
  • forge_put_embedding
  • forge_register_agent
  • forge_register_embedding_profile
  • forge_register_project
  • forge_remember
  • forge_save_decision
  • forge_search_text
  • forge_semantic_search
  • forge_start_execution
  • forge_status
  • forge_update_task_status
code evidence vv0.2.0-rc.5 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 171

filesystem 34

  • fs (weak) ProjForge-Forge-007a03c/packages/embedding-worker/scripts/run-evaluation-v2.mjs :1 import { readFile, writeFile } from 'node:fs/promises'
  • fs (weak) ProjForge-Forge-007a03c/packages/embedding-worker/scripts/run-reranker-evaluation-v2.mjs :1 import { readFile, writeFile } from 'node:fs/promises'
  • fs ProjForge-Forge-007a03c/packages/embedding-worker/src/cli.ts :3 import { mkdirSync, renameSync, writeFileSync } from 'node:fs'
  • fs ProjForge-Forge-007a03c/packages/mcp-server/src/windows-config.ts :1 import { readFileSync } from 'node:fs'
  • fs (weak) ProjForge-Forge-007a03c/packages/mcp-server/tests/unit/windows-config.test.ts :3 import { mkdtempSync, rmSync, writeFileSync } from 'node:fs'
  • fs ProjForge-Forge-007a03c/packages/resilience/src/backup.ts :2 import { existsSync } from 'node:fs'
  • fs ProjForge-Forge-007a03c/packages/resilience/src/cli.ts :2 import { readFile } from 'node:fs/promises'
  • fs ProjForge-Forge-007a03c/packages/resilience/src/config.ts :1 import { existsSync } from 'node:fs'
  • fs ProjForge-Forge-007a03c/packages/resilience/src/crypto.ts :2 import { createReadStream, createWriteStream } from 'node:fs'
  • fs ProjForge-Forge-007a03c/packages/resilience/src/physical-s3.ts :1 import { existsSync } from 'node:fs'
  • fs ProjForge-Forge-007a03c/packages/resilience/src/physical.ts :2 import { createReadStream, createWriteStream, existsSync } from 'node:fs'
  • fs ProjForge-Forge-007a03c/packages/resilience/src/policy.ts :1 import { constants as fsConstants } from 'node:fs'
  • fs ProjForge-Forge-007a03c/packages/resilience/src/restore.ts :1 import { readFile } from 'node:fs/promises'
  • fs ProjForge-Forge-007a03c/packages/resilience/src/s3.ts :1 import { createReadStream, createWriteStream, existsSync } from 'node:fs'
  • fs (weak) ProjForge-Forge-007a03c/packages/resilience/tests/integration/native-recovery.test.ts :3 import { mkdtemp, readFile, readdir, rm } from 'node:fs/promises'
  • fs (weak) ProjForge-Forge-007a03c/packages/resilience/tests/integration/s3-sdk.test.ts :3 import { mkdtemp, readFile, rm } from 'node:fs/promises'
  • fs (weak) ProjForge-Forge-007a03c/packages/resilience/tests/support/recovery-package.ts :1 import { writeFile } from 'node:fs/promises'
  • fs (weak) ProjForge-Forge-007a03c/packages/resilience/tests/unit/crypto.test.ts :2 import { mkdtemp, readFile, rm, writeFile } from 'node:fs/promises'
  • fs (weak) ProjForge-Forge-007a03c/packages/resilience/tests/unit/physical.test.ts :2 import { mkdtemp, readFile, rm, writeFile } from 'node:fs/promises'
  • fs (weak) ProjForge-Forge-007a03c/packages/resilience/tests/unit/policy.test.ts :2 import { mkdtemp, readFile, rm, writeFile } from 'node:fs/promises'
  • fs (weak) ProjForge-Forge-007a03c/packages/resilience/tests/unit/s3.test.ts :2 import { mkdtemp, readFile, rm, writeFile } from 'node:fs/promises'
  • fs ProjForge-Forge-007a03c/packages/schema/src/migrations.mjs :2 import { readdir, readFile } from 'node:fs/promises'
  • fs (weak) ProjForge-Forge-007a03c/packages/schema/tests/admin-scripts.test.mjs :2 import { readFileSync } from 'node:fs'
  • fs (weak) ProjForge-Forge-007a03c/packages/schema/tests/schema.test.mjs :3 import { mkdtemp, rm } from 'node:fs/promises'
  • fs ProjForge-Forge-007a03c/packages/workbench/packaging/windows/prepare-pkg-base.mjs :1 import { writeFile } from 'node:fs/promises'
  • fs ProjForge-Forge-007a03c/packages/workbench/src/recovery-health.ts :1 import { lstat, readFile } from 'node:fs/promises'
  • fs ProjForge-Forge-007a03c/packages/workbench/src/server.ts :1 import { createReadStream } from 'node:fs'
  • fs ProjForge-Forge-007a03c/packages/workbench/src/windows-config.ts :1 import { readFileSync } from 'node:fs'
  • fs (weak) ProjForge-Forge-007a03c/packages/workbench/tests/recovery-health.test.ts :3 import { mkdtemp, rm, writeFile } from 'node:fs/promises'
  • fs (weak) ProjForge-Forge-007a03c/packages/workbench/tests/windows-config.test.ts :4 import { mkdtempSync, rmSync, writeFileSync } from 'node:fs'
  • fs (weak) ProjForge-Forge-007a03c/scripts/acceptance/write-pi5-result.mjs :2 import { mkdir, writeFile } from 'node:fs/promises'
  • fs (weak) ProjForge-Forge-007a03c/scripts/compatibility/tencentdb-gate.test.mjs :2 import { readFileSync } from 'node:fs'
  • fs (weak) ProjForge-Forge-007a03c/scripts/generate-third-party-notices.mjs :1 import { readFile, readdir, writeFile } from 'node:fs/promises'
  • fs (weak) ProjForge-Forge-007a03c/scripts/validate-aws-object-lock-template.mjs :2 import { readFile } from 'node:fs/promises'

shell / exec 6

  • shell (weak) ProjForge-Forge-007a03c/packages/embedding-worker/tests/integration/native-worker.test.ts :2 import { spawn } from 'node:child_process'
  • shell ProjForge-Forge-007a03c/packages/mcp-server/src/codex.ts :3 import { spawnSync } from 'node:child_process'
  • shell ProjForge-Forge-007a03c/packages/resilience/src/process.ts :1 import { execFile, spawn, type ChildProcessWithoutNullStreams } from 'node:child_process'
  • shell ProjForge-Forge-007a03c/packages/semantic-bridge/src/codex.ts :2 import { spawnSync } from 'node:child_process'
  • shell ProjForge-Forge-007a03c/packages/workbench/src/windows-launcher.ts :2 import { spawnSync } from 'node:child_process'
  • shell (weak) ProjForge-Forge-007a03c/scripts/compatibility/test-tencentdb.mjs :2 import { spawnSync } from 'node:child_process'

network 8

  • net (weak) ProjForge-Forge-007a03c/packages/embedding-worker/scripts/run-reranker-evaluation-v2.mjs :26 const response = await fetch(new URL('chat/completions', baseUrl.endsWith('/') ? baseUrl : `${baseUrl}/`), {
  • net (weak) ProjForge-Forge-007a03c/packages/embedding-worker/tests/integration/native-worker.test.ts :4 import { createServer } from 'node:http'
  • net (weak) ProjForge-Forge-007a03c/packages/embedding-worker/tests/unit/provider.test.ts :2 import { createServer } from 'node:http'
  • net (weak) ProjForge-Forge-007a03c/packages/resilience/tests/integration/s3-sdk.test.ts :2 import { createServer } from 'node:http'
  • net ProjForge-Forge-007a03c/packages/workbench/public/app.js :31 const response = await fetch(path, {
  • net ProjForge-Forge-007a03c/packages/workbench/src/server.ts :3 import { createServer, type IncomingMessage, type Server, type ServerResponse } from 'node:http'
  • net (weak) ProjForge-Forge-007a03c/packages/workbench/tests/server.test.ts :4 import type { AddressInfo } from 'node:net'
  • net (weak) ProjForge-Forge-007a03c/scripts/acceptance/test-project-portability-http.mjs :24 const onboardedResponse = await fetch(`${base}/api/imports/repository`, {

secrets 3

  • secrets (weak) ProjForge-Forge-007a03c/packages/embedding-worker/scripts/live-query-smoke.mjs :19 const apiKey = process.env.FORGE_EMBEDDING_API_KEY?.trim()
  • secrets (weak) ProjForge-Forge-007a03c/packages/embedding-worker/scripts/run-evaluation-v2.mjs :10 const profileKey = process.env.FORGE_EMBEDDING_PROFILE_KEY?.trim() || 'qwen3-embedding-0.6b-q8-1024-forge-retrieval-v1'
  • secrets (weak) ProjForge-Forge-007a03c/packages/resilience/tests/integration/s3-sdk.test.ts :62 secret: process.env.AWS_SECRET_ACCESS_KEY,

database 9

  • db ProjForge-Forge-007a03c/packages/persistence-gateway/src/postgres/forge-persistence-gateway.ts :1 import pg, { type PoolClient } from 'pg'
  • db ProjForge-Forge-007a03c/packages/persistence-gateway/src/postgres/idempotency.ts :1 import type { PoolClient } from 'pg'
  • db ProjForge-Forge-007a03c/packages/resilience/src/postgres.ts :1 import pg, { type Client } from 'pg'
  • db (weak) ProjForge-Forge-007a03c/packages/resilience/tests/integration/native-recovery.test.ts :6 import pg from 'pg'
  • db (weak) ProjForge-Forge-007a03c/packages/schema/scripts/configure-runtime-role.mjs :2 import pg from 'pg'
  • db (weak) ProjForge-Forge-007a03c/packages/schema/scripts/ensure-database.mjs :2 import pg from 'pg'
  • db ProjForge-Forge-007a03c/packages/schema/src/database.mjs :3 import pg from 'pg'
  • db (weak) ProjForge-Forge-007a03c/packages/schema/tests/runtime-role.test.mjs :3 import pg from 'pg'
  • db (weak) ProjForge-Forge-007a03c/scripts/compatibility/test-tencentdb.mjs :3 import pg from 'pg'

tool registrations 28

  • forge_status ProjForge-Forge-007a03c/packages/mcp-server/src/server.ts :188
  • forge_register_project ProjForge-Forge-007a03c/packages/mcp-server/src/server.ts :198
  • forge_register_agent ProjForge-Forge-007a03c/packages/mcp-server/src/server.ts :212
  • forge_assign_agent ProjForge-Forge-007a03c/packages/mcp-server/src/server.ts :226
  • forge_create_task ProjForge-Forge-007a03c/packages/mcp-server/src/server.ts :240
  • forge_update_task_status ProjForge-Forge-007a03c/packages/mcp-server/src/server.ts :254
  • forge_start_execution ProjForge-Forge-007a03c/packages/mcp-server/src/server.ts :270
  • forge_remember ProjForge-Forge-007a03c/packages/mcp-server/src/server.ts :284
  • forge_save_decision ProjForge-Forge-007a03c/packages/mcp-server/src/server.ts :298
  • forge_compile_context ProjForge-Forge-007a03c/packages/mcp-server/src/server.ts :312
  • forge_load_context ProjForge-Forge-007a03c/packages/mcp-server/src/server.ts :326
  • forge_finish_execution ProjForge-Forge-007a03c/packages/mcp-server/src/server.ts :340
  • forge_get_audit_trail ProjForge-Forge-007a03c/packages/mcp-server/src/server.ts :366
  • forge_get_project ProjForge-Forge-007a03c/packages/mcp-server/src/server.ts :380
  • forge_get_agent ProjForge-Forge-007a03c/packages/mcp-server/src/server.ts :394
  • forge_get_task ProjForge-Forge-007a03c/packages/mcp-server/src/server.ts :408
  • forge_get_execution ProjForge-Forge-007a03c/packages/mcp-server/src/server.ts :422
  • forge_list_projects ProjForge-Forge-007a03c/packages/mcp-server/src/server.ts :436
  • forge_list_tasks ProjForge-Forge-007a03c/packages/mcp-server/src/server.ts :450
  • forge_list_executions ProjForge-Forge-007a03c/packages/mcp-server/src/server.ts :464
  • forge_list_memories ProjForge-Forge-007a03c/packages/mcp-server/src/server.ts :478
  • forge_list_decisions ProjForge-Forge-007a03c/packages/mcp-server/src/server.ts :492
  • forge_register_embedding_profile ProjForge-Forge-007a03c/packages/mcp-server/src/server.ts :506
  • forge_list_embedding_candidates ProjForge-Forge-007a03c/packages/mcp-server/src/server.ts :520
  • forge_put_embedding ProjForge-Forge-007a03c/packages/mcp-server/src/server.ts :534
  • forge_semantic_search ProjForge-Forge-007a03c/packages/mcp-server/src/server.ts :548
  • forge_get_semantic_candidate_texts ProjForge-Forge-007a03c/packages/mcp-server/src/server.ts :562
  • forge_search_text ProjForge-Forge-007a03c/packages/semantic-bridge/src/server.ts :37

perm:untrusted 1

  • untrusted (weak) ProjForge-Forge-007a03c/packages/workbench/tests/server.test.ts :45 const index = await (await fetch(base)).text()