AI coding agent for VS Code with Chat, Agent, Plan, multi-provider routing, MCP tools, and safe, reviewable workspace changes.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport streamable-http · http counts 32 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
apply_patch
-
apply_workspace_patch
-
create_directory
-
delete_file
-
delete_workspace_file
-
generate_image
-
get_git_diff
-
get_workspace_diagnostics
-
git_commit
-
git_diff
-
git_push
-
git_status
-
list_directory
-
list_files
-
list_models
-
list_pending_changes
-
list_workspace_files
-
move_file
-
read_file
-
read_skill_file
-
read_webpage
-
read_workspace_file
-
run_command
-
run_tests
-
run_workspace_command
-
search_text
-
search_workspace
-
stat_path
-
sync_chat_session
-
workspace_status
-
write_file
-
write_workspace_file
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 7f4dbd3 · analyzer v33 · 1w ago
danger signals2
- dynamic code execution new Function() hungson1002-RelayCode-7f4dbd3/test/chatControllerModules.test.ts :46
expect(() => new Function(CHAT_VIEW_CONTROLLER)).not.toThrow(); - dynamic code execution new Function() hungson1002-RelayCode-7f4dbd3/test/chatViewAssets.test.ts :81
expect(() => new Function(CHAT_VIEW_CONTROLLER)).not.toThrow();
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 106
filesystem 20
- fs (weak) hungson1002-RelayCode-7f4dbd3/scripts/publish.mjs :2
import { readFileSync } from 'node:fs'; - fs (weak) hungson1002-RelayCode-7f4dbd3/scripts/split-chat-controller.mjs :1
import { readFile, readdir, unlink, writeFile } from 'node:fs/promises'; - fs hungson1002-RelayCode-7f4dbd3/src/agentRuntime.ts :701
const raw = await vscode.workspace.fs.readFile(vscode.Uri.file(resolve(this.workspaceRoot, directory, 'package.json'))); - fs hungson1002-RelayCode-7f4dbd3/src/chatGptBridge.ts :5
import { existsSync, realpathSync } from 'node:fs'; - fs hungson1002-RelayCode-7f4dbd3/src/chatGptTunnelSetup.ts :4
import { access, mkdir, readdir, writeFile } from 'node:fs/promises'; - fs hungson1002-RelayCode-7f4dbd3/src/chatViewProvider.ts :1388
await vscode.workspace.fs.writeFile(uri, Buffer.from(JSON.stringify(payload, null, 2))); - fs hungson1002-RelayCode-7f4dbd3/src/gitCheckpoint.ts :41
const bytes = await vscode.workspace.fs.readFile(vscode.Uri.file(resolve(root, path))); - fs hungson1002-RelayCode-7f4dbd3/src/gitReviewManager.ts :134
const bytes = await vscode.workspace.fs.readFile(vscode.Uri.file(absolute)); - fs hungson1002-RelayCode-7f4dbd3/src/hookManager.ts :31
bytes = await vscode.workspace.fs.readFile(uri); - fs hungson1002-RelayCode-7f4dbd3/src/projectInstructions.ts :1
import { readFile } from 'node:fs/promises'; - fs hungson1002-RelayCode-7f4dbd3/src/routerProcessManager.ts :3
import { closeSync, existsSync, mkdirSync, openSync } from 'node:fs'; - fs hungson1002-RelayCode-7f4dbd3/src/skillRegistry.ts :1
import { readdir, readFile, stat } from 'node:fs/promises'; - fs hungson1002-RelayCode-7f4dbd3/src/workspaceSandbox.ts :1
import { existsSync, realpathSync } from 'node:fs'; - fs (weak) hungson1002-RelayCode-7f4dbd3/test/agentRuntime.test.ts :444
expect(vi.mocked((await import('vscode')).workspace.fs.writeFile)).toHaveBeenCalledWith( - fs (weak) hungson1002-RelayCode-7f4dbd3/test/chatControllerModules.test.ts :2
import { readFileSync } from 'node:fs'; - fs (weak) hungson1002-RelayCode-7f4dbd3/test/chatGptTunnelSetup.test.ts :1
import { readFileSync } from 'node:fs'; - fs (weak) hungson1002-RelayCode-7f4dbd3/test/chatViewAssets.test.ts :2
import { readFileSync } from 'node:fs'; - fs (weak) hungson1002-RelayCode-7f4dbd3/test/mcpSchema.test.ts :1
import { readFileSync } from 'node:fs'; - fs (weak) hungson1002-RelayCode-7f4dbd3/test/routerLifecycle.test.ts :1
import { readFileSync } from 'node:fs'; - fs (weak) hungson1002-RelayCode-7f4dbd3/test/slashCommands.test.ts :1
import { readFileSync } from 'node:fs';
shell / exec 10
- shell (weak) hungson1002-RelayCode-7f4dbd3/scripts/publish.mjs :1
import { spawnSync } from 'node:child_process'; - shell hungson1002-RelayCode-7f4dbd3/src/agentRuntime.ts :1
import { execFile } from 'node:child_process'; - shell hungson1002-RelayCode-7f4dbd3/src/chatGptTunnelSetup.ts :2
import { execFile, spawn, type ChildProcessWithoutNullStreams } from 'node:child_process'; - shell hungson1002-RelayCode-7f4dbd3/src/chatViewProvider.ts :3764
const { execFile } = await import('node:child_process'); - shell hungson1002-RelayCode-7f4dbd3/src/commandRuntime.ts :1
import { spawn, type ChildProcess } from 'node:child_process'; - shell hungson1002-RelayCode-7f4dbd3/src/gitCheckpoint.ts :1
import { execFile } from 'node:child_process'; - shell hungson1002-RelayCode-7f4dbd3/src/gitReviewManager.ts :1
import { execFile } from 'node:child_process'; - shell hungson1002-RelayCode-7f4dbd3/src/localRuntimeManager.ts :1
import { execFile, spawn } from 'node:child_process'; - shell hungson1002-RelayCode-7f4dbd3/src/routerProcessManager.ts :1
import { execFile, spawn, type ChildProcess } from 'node:child_process'; - shell (weak) hungson1002-RelayCode-7f4dbd3/test/chatGptTunnelSetup.test.ts :23
expect(source).toContain("spawn(binary, ['run', '--profile', PROFILE]");
network 12
- net hungson1002-RelayCode-7f4dbd3/src/agentRuntime.ts :223
const response = await fetch(url, { redirect: 'follow', signal: controller.signal, headers: { accept: 'text/html,text/plain,application/json,application/xml;q=0.9,*/*;q=0.1', 'user-agent': 'RelayCode/ - net hungson1002-RelayCode-7f4dbd3/src/anthropicClient.ts :27
const response = await fetch(`${normalizeEndpoint(this.config.endpoint)}/models?limit=1000`, { - net hungson1002-RelayCode-7f4dbd3/src/chatGptBridge.ts :2
import * as http from 'node:http'; - net hungson1002-RelayCode-7f4dbd3/src/chatGptTunnelSetup.ts :178
const releaseResponse = await fetch(RELEASE_API, { headers: { accept: 'application/vnd.github+json', 'user-agent': 'RelayCode' } }); - net hungson1002-RelayCode-7f4dbd3/src/localRuntimeManager.ts :26
const response = await fetch(`${normalizeEndpoint(endpoint)}/models`, { signal: AbortSignal.timeout(3_000) }); - net hungson1002-RelayCode-7f4dbd3/src/mcpManager.ts :2
import * as http from 'node:http'; - net hungson1002-RelayCode-7f4dbd3/src/nineRouterQuota.ts :162
const response = await fetch(`${origin}/api/auth/login`, { - net hungson1002-RelayCode-7f4dbd3/src/routerClient.ts :107
const response = await fetch(`${normalizeEndpoint(this.config.endpoint)}/models`, { - net hungson1002-RelayCode-7f4dbd3/src/routerProcessManager.ts :6
import { connect } from 'node:net'; - net hungson1002-RelayCode-7f4dbd3/src/webSearch.ts :192
const response = await fetch(url, { - net (weak) hungson1002-RelayCode-7f4dbd3/test/providerCompatibility.e2e.test.ts :1
import { createServer, type Server } from 'node:http'; - net (weak) hungson1002-RelayCode-7f4dbd3/test/routerExternal.e2e.test.ts :1
import { createServer, type Server } from 'node:http';
tool registrations 32
- read_file hungson1002-RelayCode-7f4dbd3/src/agentRuntime.ts :19
- stat_path hungson1002-RelayCode-7f4dbd3/src/agentRuntime.ts :20
- list_directory hungson1002-RelayCode-7f4dbd3/src/agentRuntime.ts :21
- read_skill_file hungson1002-RelayCode-7f4dbd3/src/agentRuntime.ts :22
- list_files hungson1002-RelayCode-7f4dbd3/src/agentRuntime.ts :26
- search_text hungson1002-RelayCode-7f4dbd3/src/agentRuntime.ts :27
- read_webpage hungson1002-RelayCode-7f4dbd3/src/agentRuntime.ts :28
- list_models hungson1002-RelayCode-7f4dbd3/src/agentRuntime.ts :32
- generate_image hungson1002-RelayCode-7f4dbd3/src/agentRuntime.ts :33
- write_file hungson1002-RelayCode-7f4dbd3/src/agentRuntime.ts :39
- apply_patch hungson1002-RelayCode-7f4dbd3/src/agentRuntime.ts :40
- create_directory hungson1002-RelayCode-7f4dbd3/src/agentRuntime.ts :41
- delete_file hungson1002-RelayCode-7f4dbd3/src/agentRuntime.ts :42
- move_file hungson1002-RelayCode-7f4dbd3/src/agentRuntime.ts :43
- git_status hungson1002-RelayCode-7f4dbd3/src/agentRuntime.ts :44
- git_diff hungson1002-RelayCode-7f4dbd3/src/agentRuntime.ts :45
- git_commit hungson1002-RelayCode-7f4dbd3/src/agentRuntime.ts :46
- git_push hungson1002-RelayCode-7f4dbd3/src/agentRuntime.ts :50
- run_command hungson1002-RelayCode-7f4dbd3/src/agentRuntime.ts :54
- run_tests hungson1002-RelayCode-7f4dbd3/src/agentRuntime.ts :59
- sync_chat_session hungson1002-RelayCode-7f4dbd3/src/chatGptBridge.ts :245
- workspace_status hungson1002-RelayCode-7f4dbd3/src/chatGptBridge.ts :266
- list_workspace_files hungson1002-RelayCode-7f4dbd3/src/chatGptBridge.ts :279
- read_workspace_file hungson1002-RelayCode-7f4dbd3/src/chatGptBridge.ts :292
- search_workspace hungson1002-RelayCode-7f4dbd3/src/chatGptBridge.ts :309
- get_workspace_diagnostics hungson1002-RelayCode-7f4dbd3/src/chatGptBridge.ts :334
- get_git_diff hungson1002-RelayCode-7f4dbd3/src/chatGptBridge.ts :344
- list_pending_changes hungson1002-RelayCode-7f4dbd3/src/chatGptBridge.ts :356
- write_workspace_file hungson1002-RelayCode-7f4dbd3/src/chatGptBridge.ts :366
- apply_workspace_patch hungson1002-RelayCode-7f4dbd3/src/chatGptBridge.ts :385
- delete_workspace_file hungson1002-RelayCode-7f4dbd3/src/chatGptBridge.ts :405
- run_workspace_command hungson1002-RelayCode-7f4dbd3/src/chatGptBridge.ts :423
declared dependencies 14
- @modelcontextprotocol/sdk@^1.29.0
- @lobehub/icons-static-svg@^1.94.0
- @phosphor-icons/core@^2.1.1
- ajv@^8.20.0
- simple-icons@^16.27.1
- zod@^4.4.3
- @types/node@^24.0.0
- @types/vscode@^1.100.0
- @vscode/vsce@^3.6.0
- esbuild@^0.25.0
- ovsx@^1.0.2
- sharp@^0.35.3
- typescript@^5.8.0
- vitest@^3.2.0