Your AI confers, with anyone's — an open A2A protocol platform where AI Agents talk to each other on behalf of their owners. Self-hosted, DID:web identity, RFC 9421 signatures, Claude Code plugin.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio counts 15 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
ask_agent
-
ask_multiple
-
ask_person_agent
-
check_reply
-
discover_peer
-
find_agents
-
follow_up
-
get_agent_capabilities
-
get_conversation
-
list_agents
-
read_project_memory
-
request_code_review
-
request_design_review
-
whoami
-
write_project_memory
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 92592eb · analyzer v33 · 3d ago
skills & prompt files 10
- agent-rules hyhmrright-Confer-92592eb/.claude/agents/a2a-contract-reviewer.md
- agent-rules hyhmrright-Confer-92592eb/.claude/agents/migration-reviewer.md
- agent-rules hyhmrright-Confer-92592eb/.claude/agents/rag-pipeline-reviewer.md
- skill hyhmrright-Confer-92592eb/.claude/skills/create-migration/SKILL.md
- skill hyhmrright-Confer-92592eb/.claude/skills/deploy/SKILL.md
- skill hyhmrright-Confer-92592eb/.claude/skills/rag-debug/SKILL.md
- skill hyhmrright-Confer-92592eb/.claude/skills/reset-user-password/SKILL.md
- skill hyhmrright-Confer-92592eb/.claude/skills/sync-env/SKILL.md
- agent-rules hyhmrright-Confer-92592eb/AGENTS.md
- agent-rules hyhmrright-Confer-92592eb/CLAUDE.md
danger signals11
- dynamic code execution eval() hyhmrright-Confer-92592eb/.github/scripts/check-docs-i18n.mjs :91
return eval(`(${html.slice(start + `const ${name} = `.length, end + 4)})`); - dynamic code execution new Function() hyhmrright-Confer-92592eb/plugins/confer-a2a/dist/server.mjs :2882
const makeValidate = new Function(`${names_1.default.self}`, `${names_1.default.scope}`, sourceCode); - suspicious endpoint 169.254.169.254 (cloud metadata) hyhmrright-Confer-92592eb/packages/gateway/src/a2a/outbound.test.ts :107
'https://169.254.169.254/latest', - suspicious endpoint 169.254.169.254 (cloud metadata) hyhmrright-Confer-92592eb/packages/gateway/src/lib/embedding.test.ts :94
'http://169.254.169.254', - suspicious endpoint 100.100.100.200 (cloud metadata) hyhmrright-Confer-92592eb/packages/gateway/src/lib/embedding.test.ts :95
'http://100.100.100.200', - suspicious endpoint 169.254.169.254 (cloud metadata) hyhmrright-Confer-92592eb/packages/gateway/src/lib/runtime-url.test.ts :44
'http://169.254.169.254', - suspicious endpoint 100.100.100.200 (cloud metadata) hyhmrright-Confer-92592eb/packages/gateway/src/lib/runtime-url.test.ts :46
'http://100.100.100.200', - suspicious endpoint 169.254.169.254 (cloud metadata) hyhmrright-Confer-92592eb/packages/gateway/src/routes/contacts.integration.test.ts :347
headers: { location: 'http://169.254.169.254/latest/meta-data/' }, - suspicious endpoint 169.254.169.254 (cloud metadata) hyhmrright-Confer-92592eb/packages/gateway/src/routes/users.integration.test.ts :200
'http://169.254.169.254', - suspicious endpoint 100.100.100.200 (cloud metadata) hyhmrright-Confer-92592eb/packages/gateway/src/routes/users.integration.test.ts :203
'http://100.100.100.200', - suspicious endpoint 169.254.169.254 (cloud metadata) hyhmrright-Confer-92592eb/packages/identity/src/did/resolver.test.ts :220
headers: { location: 'http://169.254.169.254/latest/' },
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 348
filesystem 4
- fs (weak) hyhmrright-Confer-92592eb/.github/scripts/check-docs-i18n.mjs :23
import { existsSync, readFileSync } from 'node:fs'; - fs (weak) hyhmrright-Confer-92592eb/packages/cli/src/index.test.ts :3
import { mkdtempSync, readFileSync, rmSync, symlinkSync, writeFileSync } from 'node:fs'; - fs hyhmrright-Confer-92592eb/packages/cli/src/index.ts :16
} from 'node:fs'; - fs (weak) hyhmrright-Confer-92592eb/packages/gateway/scripts/setup-test-db.ts :5
import { readdir, readFile } from 'node:fs/promises';
shell / exec 6
- shell (weak) hyhmrright-Confer-92592eb/.github/scripts/check-docs-i18n.mjs :29
const out = Bun.spawnSync([ - shell (weak) hyhmrright-Confer-92592eb/packages/cli/src/index.test.ts :2
import { spawnSync } from 'node:child_process'; - shell hyhmrright-Confer-92592eb/packages/cli/src/index.ts :7
import { spawnSync } from 'node:child_process'; - shell (weak) hyhmrright-Confer-92592eb/packages/gateway/src/lib/text-lang.test.ts :55
// and this is the assertion that would catch a regression to exec(). - shell hyhmrright-Confer-92592eb/packages/gateway/src/lib/text-lang.ts :45
// module-level, so counting via match() rather than exec() avoids carrying - shell (weak) hyhmrright-Confer-92592eb/packages/mcp-a2a/scripts/smoke.ts :4
import { spawn } from 'node:child_process';
network 16
- net hyhmrright-Confer-92592eb/packages/cli/src/index.ts :271
const response = await fetch(url); - net hyhmrright-Confer-92592eb/packages/client/src/lib/api.ts :65
const res = await fetch(`${apiBase()}/auth/refresh`, { - net hyhmrright-Confer-92592eb/packages/client/src/stores/chat.ts :246
const res = await fetch(`${gatewayOrigin()}${data.stream_url}`, { - net hyhmrright-Confer-92592eb/packages/gateway/src/a2a/outbound.ts :65
const response = await fetch(signedRequest, { - net hyhmrright-Confer-92592eb/packages/gateway/src/index.ts :27
fetch(req: Request, server: import('bun').Server<unknown>) { - net (weak) hyhmrright-Confer-92592eb/packages/gateway/src/lib/embedding.test.ts :44
async fetch(req) { - net hyhmrright-Confer-92592eb/packages/gateway/src/lib/qdrant-client.ts :23
const res = await fetch(qdrantUrl(path), { - net (weak) hyhmrright-Confer-92592eb/packages/gateway/src/lib/runtime-url.test.ts :2
import net from 'node:net'; - net hyhmrright-Confer-92592eb/packages/gateway/src/lib/runtime-url.ts :1
import http from 'node:http'; - net hyhmrright-Confer-92592eb/packages/gateway/src/routes/contacts.ts :313
const res = await fetch(`https://${hostname}/.well-known/agents.json`, { - net (weak) hyhmrright-Confer-92592eb/packages/gateway/src/routes/users.integration.test.ts :335
fetch(req) { - net hyhmrright-Confer-92592eb/packages/gateway/src/tools/tavily.ts :16
const response = await fetch('https://api.tavily.com/search', {
show 4 more
- net hyhmrright-Confer-92592eb/packages/identity/src/did/resolver.ts :115
const response = await fetch(url, { - net (weak) hyhmrright-Confer-92592eb/packages/identity/src/net/ssrf-guard.test.ts :105
// policy, while a caller's fetch() connects to it directly (no DNS needed - net hyhmrright-Confer-92592eb/packages/identity/src/net/ssrf-guard.ts :3
import { isIP } from 'node:net'; - net (weak) hyhmrright-Confer-92592eb/packages/mcp-a2a/scripts/live-smoke.ts :15
const reg = await fetch(`${base}/api/v1/auth/register`, {
secrets 2
- secrets hyhmrright-Confer-92592eb/packages/gateway/src/eval/run-rag-eval.ts :118
const key = process.env.EVAL_EMBEDDING_KEY ?? process.env.OPENAI_API_KEY ?? ''; - secrets (weak) hyhmrright-Confer-92592eb/packages/gateway/src/test/helpers.ts :43
const secret = new TextEncoder().encode(process.env.JWT_SECRET);
tool registrations 30
- list_agents hyhmrright-Confer-92592eb/packages/mcp-a2a/src/server.ts :41
- get_agent_capabilities hyhmrright-Confer-92592eb/packages/mcp-a2a/src/server.ts :49
- find_agents hyhmrright-Confer-92592eb/packages/mcp-a2a/src/server.ts :57
- ask_agent hyhmrright-Confer-92592eb/packages/mcp-a2a/src/server.ts :67
- follow_up hyhmrright-Confer-92592eb/packages/mcp-a2a/src/server.ts :75
- get_conversation hyhmrright-Confer-92592eb/packages/mcp-a2a/src/server.ts :83
- ask_multiple hyhmrright-Confer-92592eb/packages/mcp-a2a/src/server.ts :93
- check_reply hyhmrright-Confer-92592eb/packages/mcp-a2a/src/server.ts :105
- whoami hyhmrright-Confer-92592eb/packages/mcp-a2a/src/server.ts :115
- ask_person_agent hyhmrright-Confer-92592eb/packages/mcp-a2a/src/server.ts :122
- read_project_memory hyhmrright-Confer-92592eb/packages/mcp-a2a/src/server.ts :134
- write_project_memory hyhmrright-Confer-92592eb/packages/mcp-a2a/src/server.ts :155
show 18 more
- discover_peer hyhmrright-Confer-92592eb/packages/mcp-a2a/src/server.ts :181
- request_design_review hyhmrright-Confer-92592eb/packages/mcp-a2a/src/server.ts :196
- request_code_review hyhmrright-Confer-92592eb/packages/mcp-a2a/src/server.ts :212
- list_agents hyhmrright-Confer-92592eb/plugins/confer-a2a/dist/server.mjs :21692
- get_agent_capabilities hyhmrright-Confer-92592eb/plugins/confer-a2a/dist/server.mjs :21696
- find_agents hyhmrright-Confer-92592eb/plugins/confer-a2a/dist/server.mjs :21700
- ask_agent hyhmrright-Confer-92592eb/plugins/confer-a2a/dist/server.mjs :21704
- follow_up hyhmrright-Confer-92592eb/plugins/confer-a2a/dist/server.mjs :21708
- get_conversation hyhmrright-Confer-92592eb/plugins/confer-a2a/dist/server.mjs :21712
- ask_multiple hyhmrright-Confer-92592eb/plugins/confer-a2a/dist/server.mjs :21716
- check_reply hyhmrright-Confer-92592eb/plugins/confer-a2a/dist/server.mjs :21724
- whoami hyhmrright-Confer-92592eb/plugins/confer-a2a/dist/server.mjs :21728
- ask_person_agent hyhmrright-Confer-92592eb/plugins/confer-a2a/dist/server.mjs :21729
- read_project_memory hyhmrright-Confer-92592eb/plugins/confer-a2a/dist/server.mjs :21733
- write_project_memory hyhmrright-Confer-92592eb/plugins/confer-a2a/dist/server.mjs :21745
- discover_peer hyhmrright-Confer-92592eb/plugins/confer-a2a/dist/server.mjs :21759
- request_design_review hyhmrright-Confer-92592eb/plugins/confer-a2a/dist/server.mjs :21766
- request_code_review hyhmrright-Confer-92592eb/plugins/confer-a2a/dist/server.mjs :21776
install hooks 1
- prepack hyhmrright-Confer-92592eb/packages/cli/package.json :31
bun run build
declared dependencies 7
- @biomejs/biome@^2.5.12
- @types/bun@^1.4.2
- typescript@^7.0.2
- tauri-build@2
- tauri@2
- serde@1
- serde_json@1
obfuscation 2
- dynamic require()/import() hyhmrright-Confer-92592eb/packages/client/src/lib/api.test.ts :33
const realApiModule = (await import(/* @vite-ignore */ `${'./api.js'}?real`)) as ApiModule; - dynamic require()/import() hyhmrright-Confer-92592eb/packages/client/src/lib/ws.test.ts :85
const importWs = () => import(`./ws.js?t=${Math.random()}`) as Promise<typeof import('./ws.js')>;