Durable, project-scoped memory and semantic retrieval for AI agents and developer tools.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
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
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()