github Rust analyzed fcc3f6f deep scan · partial (429/1,986 files)

KonghaYao/peri

github

Lightweight Rust Agent only use 50MB RAM, but Claude Code Plugin compatible, Dynamic Workflow, Goal, Artifacts, Free Web Search, full feature and better support!

maintainer
KonghaYao
licence
Apache-2.0
first seen
2026-06-05
last seen
2026-09-18
releases · 30d
19
short id

Drift inferred · capture-to-capture

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

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

tools

  • chat/history
  • chat/send
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit fcc3f6f · analyzer v33 · 22h ago

skills & prompt files 34

danger signals4

code evidence vagent-v3.16.5 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 1613

filesystem 55

  • fs (weak) KonghaYao-peri-fcc3f6f/.claude/skills/langfuse/scripts/context-growth.mjs :8 import { readdirSync, readFileSync } from "node:fs";
  • fs (weak) KonghaYao-peri-fcc3f6f/.claude/skills/langfuse/scripts/llm-log-query.mjs :9 import { readdirSync, readFileSync, existsSync, statSync } from "node:fs";
  • fs (weak) KonghaYao-peri-fcc3f6f/.claude/skills/ssh-cli/scripts/ssh-cli.js :43 const fs = require('fs');
  • fs (weak) KonghaYao-peri-fcc3f6f/e2e/helpers/peri.ts :8 import fs from "node:fs";
  • fs (weak) KonghaYao-peri-fcc3f6f/e2e/helpers/recorder.ts :10 import fs from "node:fs/promises";
  • fs (weak) KonghaYao-peri-fcc3f6f/e2e/helpers/workflow.ts :4 import { existsSync, readdirSync, readFileSync } from "node:fs";
  • fs (weak) KonghaYao-peri-fcc3f6f/e2e/scripts/generate-report.ts :14 import fs from "node:fs/promises";
  • fs (weak) KonghaYao-peri-fcc3f6f/e2e/scripts/run-e2e.mjs :22 import { existsSync, readFileSync } from "node:fs";
  • fs (weak) KonghaYao-peri-fcc3f6f/e2e/tests/panels/model-switch.test.ts :17 import fs from "node:fs";
  • fs (weak) KonghaYao-peri-fcc3f6f/e2e/tests/panels/plugin-uninstall-no-freeze.test.ts :12 import fs from "node:fs";
  • fs (weak) KonghaYao-peri-fcc3f6f/e2e/tests/panels/plugin.test.ts :10 import fs from "node:fs";
  • fs (weak) KonghaYao-peri-fcc3f6f/e2e/tests/scenarios/fresh-setup.test.ts :6 import { mkdir, mkdtemp, readFile, readdir, rm, writeFile } from "node:fs/promises";
show 28 more
  • fs (weak) KonghaYao-peri-fcc3f6f/e2e/tests/scenarios/legacy-history-upgrade.test.ts :3 import fs from "node:fs";
  • fs (weak) KonghaYao-peri-fcc3f6f/e2e/tests/scenarios/rewind-v2.test.ts :16 import fs from "node:fs";
  • fs (weak) KonghaYao-peri-fcc3f6f/e2e/tests/smoke/steer-queue-live.test.ts :4 import { mkdir, mkdtemp, rm, writeFile } from "node:fs/promises";
  • fs (weak) KonghaYao-peri-fcc3f6f/e2e/tests/subagent/multi-subagent-toolcards.test.ts :27 import { readFileSync } from "node:fs";
  • fs (weak) KonghaYao-peri-fcc3f6f/e2e/tests/tool-cards/edit-diff.test.ts :19 import * as fs from "node:fs";
  • fs (weak) KonghaYao-peri-fcc3f6f/e2e/tests/workflow/workflow-reporting.test.ts :14 import { readFileSync, readdirSync, existsSync } from "node:fs";
  • fs (weak) KonghaYao-peri-fcc3f6f/npm-packages/@peri-ptc/scripts/build.ts :1 import { mkdir, rm } from "node:fs/promises";
  • fs (weak) KonghaYao-peri-fcc3f6f/npm-packages/@peri-ptc/scripts/check-dist.ts :3 import { mkdtemp, readFile, rm } from "node:fs/promises";
  • fs (weak) KonghaYao-peri-fcc3f6f/npm-packages/@peri-ptc/scripts/pack-smoke.ts :2 import { mkdir, mkdtemp, readFile, rm, writeFile } from "node:fs/promises";
  • fs KonghaYao-peri-fcc3f6f/npm-packages/@peri-workflow/dist/peri-workflow.js :4 import { readFileSync as readFileSync2 } from "node:fs";
  • fs KonghaYao-peri-fcc3f6f/npm-packages/@peri-workflow/src/adlc.ts :17 } from 'node:fs'
  • fs KonghaYao-peri-fcc3f6f/npm-packages/@peri-workflow/src/boundary.ts :22 } from 'node:fs'
  • fs KonghaYao-peri-fcc3f6f/npm-packages/@peri-workflow/src/cli.ts :7 import { readFileSync } from 'node:fs'
  • fs KonghaYao-peri-fcc3f6f/npm-packages/@peri-workflow/src/reader.ts :13 import { existsSync, readdirSync, readFileSync } from 'node:fs'
  • fs (weak) KonghaYao-peri-fcc3f6f/npm-packages/@peri-workflow/test/adlc.test.ts :3 import { mkdtempSync, rmSync, symlinkSync, truncateSync, writeFileSync } from 'node:fs'
  • fs (weak) KonghaYao-peri-fcc3f6f/npm-packages/@peri-workflow/test/boundary.test.ts :4 import { existsSync, mkdirSync, mkdtempSync, readFileSync, rmSync, symlinkSync, writeFileSync } from 'node:fs'
  • fs (weak) KonghaYao-peri-fcc3f6f/npm-packages/@peri-workflow/test/cli.test.ts :8 import { mkdtempSync, mkdirSync, writeFileSync } from 'node:fs'
  • fs (weak) KonghaYao-peri-fcc3f6f/npm-packages/@peri-workflow/test/e2e.test.ts :12 import { mkdtempSync, mkdirSync, writeFileSync, existsSync } from 'node:fs'
  • fs (weak) KonghaYao-peri-fcc3f6f/npm-packages/@peri-workflow/test/reader.test.ts :16 import { mkdtempSync, mkdirSync, writeFileSync } from 'node:fs'
  • fs (weak) KonghaYao-peri-fcc3f6f/npm-packages/@peri-workflow/test/validate.test.ts :95 const r = validateScript(`import fs from 'node:fs'\nexport const meta = { name: 'x', description: 'y' }\nreturn 1`)
  • fs (weak) KonghaYao-peri-fcc3f6f/scripts/migrate-opencode-to-peri.ts :35 import { existsSync, statSync, unlinkSync } from "node:fs";
  • fs (weak) KonghaYao-peri-fcc3f6f/side-projects/agent-defect-analyzer/src/analysis/metrics.test.ts :3 import { mkdtempSync, rmSync } from "fs";
  • fs (weak) KonghaYao-peri-fcc3f6f/side-projects/agent-defect-analyzer/src/cli.test.ts :2 import { existsSync, mkdtempSync, readFileSync, writeFileSync } from "node:fs";
  • fs KonghaYao-peri-fcc3f6f/side-projects/agent-defect-analyzer/src/cli.ts :1 import { existsSync, mkdirSync, statSync, writeFileSync } from "node:fs";
  • fs (weak) KonghaYao-peri-fcc3f6f/side-projects/agent-defect-analyzer/src/data/data.test.ts :3 import { mkdtempSync, rmSync } from "fs";
  • fs (weak) KonghaYao-peri-fcc3f6f/side-projects/agent-defect-analyzer/src/reporting/compare.test.ts :2 import { mkdtempSync, readFileSync, writeFileSync } from "node:fs";
  • fs KonghaYao-peri-fcc3f6f/side-projects/agent-defect-analyzer/src/reporting/compare.ts :1 import { readFileSync, writeFileSync, mkdirSync } from "node:fs";
  • fs KonghaYao-peri-fcc3f6f/side-projects/agent-defect-analyzer/src/reporting/quality.ts :2 import { mkdirSync, writeFileSync } from "node:fs";

15 more not shown — this panel samples each group; the count above is the real total.

shell / exec 16

  • shell (weak) KonghaYao-peri-fcc3f6f/.claude/skills/ssh-cli/scripts/ssh-cli.js :42 const { spawn, spawnSync } = require('child_process');
  • shell (weak) KonghaYao-peri-fcc3f6f/e2e/helpers/peri.ts :215 const { exec } = await import("node:child_process");
  • shell (weak) KonghaYao-peri-fcc3f6f/e2e/scripts/run-e2e.mjs :20 import { spawn } from "node:child_process";
  • shell (weak) KonghaYao-peri-fcc3f6f/e2e/tests/scenarios/fresh-setup.test.ts :4 import { execFile } from "node:child_process";
  • shell (weak) KonghaYao-peri-fcc3f6f/e2e/tests/scenarios/legacy-history-upgrade.test.ts :8 import { execFileSync } from "node:child_process";
  • shell (weak) KonghaYao-peri-fcc3f6f/e2e/tests/setup.ts :7 import { exec } from "node:child_process";
  • shell (weak) KonghaYao-peri-fcc3f6f/npm-packages/@peri-ptc/scripts/build.ts :2 import { spawn } from "node:child_process";
  • shell (weak) KonghaYao-peri-fcc3f6f/npm-packages/@peri-ptc/scripts/check-dist.ts :6 import { spawnSync } from "node:child_process";
  • shell (weak) KonghaYao-peri-fcc3f6f/npm-packages/@peri-ptc/scripts/pack-smoke.ts :3 import { spawn, type SpawnOptionsWithoutStdio } from "node:child_process";
  • shell (weak) KonghaYao-peri-fcc3f6f/npm-packages/@peri-ptc/test/dist-e2e.test.ts :2 import { spawn, type ChildProcessWithoutNullStreams } from "node:child_process";
  • shell KonghaYao-peri-fcc3f6f/npm-packages/@peri-workflow/dist/peri-workflow.js :494 import { spawnSync } from "node:child_process";
  • shell (weak) KonghaYao-peri-fcc3f6f/npm-packages/@peri-workflow/scripts/check-coverage.mjs :9 import { spawnSync } from 'node:child_process'
show 4 more
  • shell KonghaYao-peri-fcc3f6f/npm-packages/@peri-workflow/src/boundary.ts :9 import { spawnSync } from 'node:child_process'
  • shell (weak) KonghaYao-peri-fcc3f6f/npm-packages/@peri-workflow/test/boundary.test.ts :2 import { execFileSync } from 'node:child_process'
  • shell (weak) KonghaYao-peri-fcc3f6f/npm-packages/@peri-workflow/test/e2e.test.ts :23 const r = Bun.spawnSync({
  • shell KonghaYao-peri-fcc3f6f/side-projects/mcp-apps/check-peri.ts :1 import { spawn, type ChildProcessWithoutNullStreams } from "node:child_process";

network 13

  • net (weak) KonghaYao-peri-fcc3f6f/.claude/skills/langfuse/scripts/lib.ts :14 const res = await fetch(`${BASE_URL}${path}`, {
  • net (weak) KonghaYao-peri-fcc3f6f/e2e/tests/scenarios/fresh-setup.test.ts :3 import { createServer, type Server } from "node:http";
  • net (weak) KonghaYao-peri-fcc3f6f/e2e/tests/smoke/steer-queue-live.test.ts :3 import { createServer, type Server, type ServerResponse } from "node:http";
  • net (weak) KonghaYao-peri-fcc3f6f/side-projects/llm-gateway/index.test.ts :489 const res = await fetch(`http://localhost:${testPort}/health`);
  • net KonghaYao-peri-fcc3f6f/side-projects/llm-gateway/index.ts :206 upstreamRes = await fetch(url, {
  • net KonghaYao-peri-fcc3f6f/side-projects/mcp-apps/chat/server.ts :281 async fetch(req: Request): Promise<Response> {
  • net KonghaYao-peri-fcc3f6f/side-projects/mcp-apps/check-peri.ts :3 import http from "node:http";
  • net KonghaYao-peri-fcc3f6f/side-projects/peri-db-viewer/src/public/js/app.js :6 const resp = await fetch(url);
  • net KonghaYao-peri-fcc3f6f/side-projects/peri-sync/server/src/cf-worker.ts :41 async fetch(request: Request, env: WorkerEnv): Promise<Response> {
  • net KonghaYao-peri-fcc3f6f/side-projects/peri-sync/server/src/channel-do.ts :140 async fetch(request: Request): Promise<Response> {
  • net KonghaYao-peri-fcc3f6f/side-projects/peri-sync/server/src/code-index-do.ts :72 async fetch(request: Request): Promise<Response> {
  • net KonghaYao-peri-fcc3f6f/side-projects/peri-sync/server/src/index.ts :116 fetch(req, server) {
show 1 more
  • net KonghaYao-peri-fcc3f6f/side-projects/peri-sync/server/src/pair-do.ts :24 async fetch(request: Request): Promise<Response> {

secrets 8

  • secrets (weak) KonghaYao-peri-fcc3f6f/.claude/skills/langfuse/scripts/lib.ts :7 const SECRET_KEY = process.env.LANGFUSE_SECRET_KEY || "";
  • secrets (weak) KonghaYao-peri-fcc3f6f/.claude/skills/ssh-cli/scripts/ssh-cli.js :90 if (process.env.SSH_CLI_STRICT_HOST_KEY) cfg.strict = process.env.SSH_CLI_STRICT_HOST_KEY;
  • secrets (weak) KonghaYao-peri-fcc3f6f/e2e/helpers/judge.test.ts :20 process.env.OPENAI_API_KEY = "test-key";
  • secrets (weak) KonghaYao-peri-fcc3f6f/e2e/helpers/judge.ts :37 const apiKey = process.env.OPENAI_API_KEY;
  • secrets (weak) KonghaYao-peri-fcc3f6f/npm-packages/@peri-ptc/test/dist-e2e.test.ts :39 source: "const { tmpdir } = await import('node:os'); console.log('e2e'); return { value: input.value, secret: process.env.PTC_TEST_SECRET ?? null, tmpdir: tmpdir() };",
  • secrets KonghaYao-peri-fcc3f6f/side-projects/daytona/src/commands/init.ts :31 apiKey = params.apiKey ?? process.env.DAYTONA_API_KEY ?? "";
  • secrets KonghaYao-peri-fcc3f6f/side-projects/daytona/src/daytona-helpers.ts :109 apiKey: process.env.DAYTONA_API_KEY ?? "",
  • secrets KonghaYao-peri-fcc3f6f/side-projects/daytona/src/webhook.ts :8 const WEBHOOK_SECRET = process.env.GITHUB_WEBHOOK_SECRET;

tool registrations 2

  • chat/send KonghaYao-peri-fcc3f6f/side-projects/mcp-apps/chat/server.ts :83
  • chat/history KonghaYao-peri-fcc3f6f/side-projects/mcp-apps/chat/server.ts :96

install hooks 2

  • prepublishOnly KonghaYao-peri-fcc3f6f/npm-packages/@peri-ptc/package.json :33 bun run build && bun run typecheck && bun test ./test && bun run check:dist && bun run pack:check && bun run pack:smoke
  • prepublishOnly KonghaYao-peri-fcc3f6f/npm-packages/@peri-workflow/package.json :24 npm run build && npm run test:coverage

declared dependencies 38

  • dotenv@^17.4.2
  • openai@^6.48.0
  • tui-tester@file:./tui-tester
  • @types/node@^26.1.1
  • tsx@^4.23.1
  • typescript@^7.0.2
  • vitest@^4.1.10
  • tokio@1
  • tokio-util@0.7
  • futures@0.3
  • async-trait@0.1
  • serde@1.0
show 26 more
  • serde_json@1.0
  • serde_yaml@0.9
  • chrono@0.4
  • anyhow@1.0
  • thiserror@2.0
  • tracing@0.1
  • tracing-appender@0.2
  • uuid@1
  • parking_lot@0.12
  • dirs-next@2
  • url@2
  • sqlx@0.9.0
  • sysinfo@0.39
  • lsp-types@0.97
  • lru@0.18
  • tempfile@3
  • tikv-jemallocator@0.6
  • tikv-jemalloc-ctl@0.6
  • tikv-jemalloc-sys@0.6
  • clap@4
  • semver@1
  • sha2@0.10
  • axum@0.8.9
  • portable-pty@0.9
  • tokio-tungstenite@0.30
  • serial_test@4.0.1