github TypeScript re-analysis due

agentprism/agentprism-workflows

github

AgentPrism Workflows — run dynamic agent()/parallel()/pipeline() workflow scripts over any ACP backend, as a stdio MCP server or TypeScript SDK.

maintainer
agentprism
licence
Apache-2.0
first seen
2026-07-28
last seen
2026-09-18
releases · 30d
230
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

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

analyzed commit 866a9f2 · analyzer v33 · 5d ago

skills & prompt files 8

danger signals5

code evidence v@automatalabs/acp-server@0.2.10 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 1619

filesystem 209

  • fs agentprism-agentprism-workflows-866a9f2/packages/acp-agents/src/acp-client.ts :24 import { readFileSync } from "node:fs";
  • fs agentprism-agentprism-workflows-866a9f2/packages/acp-agents/src/backends/opencode.ts :5 import { copyFileSync, existsSync, mkdirSync } from "node:fs";
  • fs (weak) agentprism-agentprism-workflows-866a9f2/packages/acp-agents/test/attribution-gate.test.ts :4 import { mkdtempSync, rmSync, writeFileSync } from "node:fs";
  • fs (weak) agentprism-agentprism-workflows-866a9f2/packages/acp-agents/test/auth-secrets.test.ts :6 import { mkdtempSync, existsSync, readFileSync } from "node:fs";
  • fs (weak) agentprism-agentprism-workflows-866a9f2/packages/acp-agents/test/auth.integration.test.ts :6 import { mkdtempSync, existsSync, readFileSync } from "node:fs";
  • fs (weak) agentprism-agentprism-workflows-866a9f2/packages/acp-agents/test/backend-manifest.test.ts :12 } from "node:fs";
  • fs (weak) agentprism-agentprism-workflows-866a9f2/packages/acp-agents/test/backend-registry.test.ts :3 import { readFileSync } from "node:fs";
  • fs (weak) agentprism-agentprism-workflows-866a9f2/packages/acp-agents/test/client-handlers.integration.test.ts :7 import { mkdtempSync } from "node:fs";
  • fs (weak) agentprism-agentprism-workflows-866a9f2/packages/acp-agents/test/custom-backend.integration.test.ts :10 import { mkdtempSync } from "node:fs";
  • fs (weak) agentprism-agentprism-workflows-866a9f2/packages/acp-agents/test/docs-drift.test.ts :3 import { readFileSync, readdirSync } from "node:fs";
  • fs (weak) agentprism-agentprism-workflows-866a9f2/packages/acp-agents/test/fixtures/fake-acp-agent.mjs :20 import { appendFileSync, existsSync, writeFileSync } from "node:fs";
  • fs (weak) agentprism-agentprism-workflows-866a9f2/packages/acp-agents/test/fixtures/fake-auth-agent.mjs :20 import { appendFileSync, existsSync, writeFileSync } from "node:fs";
show 28 more
  • fs (weak) agentprism-agentprism-workflows-866a9f2/packages/acp-agents/test/helpers/fake-agent.ts :1 import { existsSync, mkdtempSync, readFileSync } from "node:fs";
  • fs (weak) agentprism-agentprism-workflows-866a9f2/packages/acp-agents/test/interactive.integration.test.ts :6 import { mkdtempSync } from "node:fs";
  • fs (weak) agentprism-agentprism-workflows-866a9f2/packages/acp-agents/test/opencode-backend.test.ts :3 import { existsSync, mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs";
  • fs (weak) agentprism-agentprism-workflows-866a9f2/packages/acp-agents/test/protocol-coverage.test.ts :3 import { readFileSync } from "node:fs";
  • fs (weak) agentprism-agentprism-workflows-866a9f2/packages/acp-agents/test/request-metadata-transparency.integration.test.ts :5 import { mkdtempSync } from "node:fs";
  • fs (weak) agentprism-agentprism-workflows-866a9f2/packages/acp-agents/test/source-upstream-sync.test.ts :17 import { copyFileSync, mkdirSync, mkdtempSync, rmSync, writeFileSync } from "node:fs";
  • fs (weak) agentprism-agentprism-workflows-866a9f2/packages/acp-agents/test/spawn-config.test.ts :7 import { readFileSync } from "node:fs";
  • fs (weak) agentprism-agentprism-workflows-866a9f2/packages/acp-agents/test/steering.live.e2e.test.ts :5 import { mkdtempSync, rmSync } from "node:fs";
  • fs (weak) agentprism-agentprism-workflows-866a9f2/packages/acp-agents/test/structured-tool.integration.test.ts :3 import { mkdtempSync } from "node:fs";
  • fs (weak) agentprism-agentprism-workflows-866a9f2/packages/acp-agents/test/typed-session-failures.test.ts :13 import { readFileSync } from "node:fs";
  • fs (weak) agentprism-agentprism-workflows-866a9f2/packages/acp-agents/test/wrapped-runtime.test.ts :4 import { copyFileSync, mkdirSync, mkdtempSync, rmSync, writeFileSync } from "node:fs";
  • fs agentprism-agentprism-workflows-866a9f2/packages/acp-server/src/server.ts :1 import { readFileSync } from "node:fs";
  • fs (weak) agentprism-agentprism-workflows-866a9f2/packages/agentprism-otel/test/attach.unit.test.ts :5 import { readFileSync } from "node:fs";
  • fs (weak) agentprism-agentprism-workflows-866a9f2/packages/agentprism-otel/test/manager.integration.test.ts :5 import { mkdtempSync, rmSync } from "node:fs";
  • fs (weak) agentprism-agentprism-workflows-866a9f2/packages/codex-acp/.claude/skills/run-codex/scripts/run-codex-test.ts :12 import fs from "node:fs";
  • fs (weak) agentprism-agentprism-workflows-866a9f2/packages/codex-acp/examples/simple-client.ts :46 import { existsSync } from "node:fs";
  • fs (weak) agentprism-agentprism-workflows-866a9f2/packages/codex-acp/examples/steering.ts :35 import {mkdtemp, rm, writeFile} from "node:fs/promises";
  • fs (weak) agentprism-agentprism-workflows-866a9f2/packages/codex-acp/scripts/next-preview-version.mjs :36 import { readFileSync } from "node:fs";
  • fs agentprism-agentprism-workflows-866a9f2/packages/codex-acp/src/AgentFileChangeReport.ts :1 import fs from "node:fs";
  • fs agentprism-agentprism-workflows-866a9f2/packages/codex-acp/src/ClientFileSystem.ts :2 import {readFile} from "node:fs/promises";
  • fs agentprism-agentprism-workflows-866a9f2/packages/codex-acp/src/CodexToolCallMapper.ts :3 import { readFile } from "node:fs/promises";
  • fs agentprism-agentprism-workflows-866a9f2/packages/codex-acp/src/Logger.ts :1 import fs from "node:fs";
  • fs agentprism-agentprism-workflows-866a9f2/packages/codex-acp/src/ResponseItemHistoryFallback.ts :1 import { readFile } from "node:fs/promises";
  • fs (weak) agentprism-agentprism-workflows-866a9f2/packages/codex-acp/src/__tests__/AgentFileChangeReport.test.ts :1 import fs from "node:fs";
  • fs (weak) agentprism-agentprism-workflows-866a9f2/packages/codex-acp/src/__tests__/CodexACPAgent/e2e/acp-e2e-file-approval.test.ts :2 import fs from "node:fs";
  • fs (weak) agentprism-agentprism-workflows-866a9f2/packages/codex-acp/src/__tests__/CodexACPAgent/e2e/acp-e2e-mcp-approval.test.ts :2 import fs from "node:fs";
  • fs (weak) agentprism-agentprism-workflows-866a9f2/packages/codex-acp/src/__tests__/CodexACPAgent/e2e/acp-e2e-shell-approval.test.ts :1 import fs from "node:fs";
  • fs (weak) agentprism-agentprism-workflows-866a9f2/packages/codex-acp/src/__tests__/CodexACPAgent/e2e/fixtures/invocation-aware-mcp-server.mjs :1 import fs from "node:fs/promises";

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

shell / exec 65

  • shell agentprism-agentprism-workflows-866a9f2/packages/acp-agents/src/acp-client.ts :23 import { execFileSync, spawn, type ChildProcess } from "node:child_process";
  • shell agentprism-agentprism-workflows-866a9f2/packages/acp-agents/src/auth/auth-store.ts :54 /** SECRET; `env` resolutions only. Env values injected at agent spawn (§2.8 overlay). */
  • shell agentprism-agentprism-workflows-866a9f2/packages/acp-agents/src/pool.ts :293 private spawn(key: string, backend: Backend): PooledConnection {
  • shell agentprism-agentprism-workflows-866a9f2/packages/acp-agents/src/raw-connection.ts :1 import { spawn, type ChildProcess } from "node:child_process";
  • shell agentprism-agentprism-workflows-866a9f2/packages/acp-agents/src/registry.ts :14 /** How to spawn (and optionally pre-configure) one custom ACP backend. */
  • shell (weak) agentprism-agentprism-workflows-866a9f2/packages/acp-agents/test/attribution-gate.test.ts :3 import { execFileSync, spawnSync } from "node:child_process";
  • shell (weak) agentprism-agentprism-workflows-866a9f2/packages/acp-agents/test/backend-manifest.test.ts :3 import { spawn, spawnSync } from "node:child_process";
  • shell (weak) agentprism-agentprism-workflows-866a9f2/packages/acp-agents/test/fixtures/fake-acp-agent.mjs :21 import { spawn } from "node:child_process";
  • shell (weak) agentprism-agentprism-workflows-866a9f2/packages/acp-agents/test/fixtures/fake-auth-agent.mjs :9 // values via an `env` resolution and they are injected at spawn (codex api-key shape)
  • shell (weak) agentprism-agentprism-workflows-866a9f2/packages/acp-agents/test/source-upstream-sync.test.ts :16 import { execFileSync, spawn } from "node:child_process";
  • shell (weak) agentprism-agentprism-workflows-866a9f2/packages/acp-agents/test/wrapped-runtime.test.ts :3 import { spawn } from "node:child_process";
  • shell (weak) agentprism-agentprism-workflows-866a9f2/packages/codex-acp/examples/simple-client.ts :44 import { spawn } from "node:child_process";
show 28 more
  • shell (weak) agentprism-agentprism-workflows-866a9f2/packages/codex-acp/examples/steering.ts :33 import {type ChildProcess, spawn} from "node:child_process";
  • shell (weak) agentprism-agentprism-workflows-866a9f2/packages/codex-acp/scripts/next-preview-version.mjs :35 import { execFileSync } from "node:child_process";
  • shell agentprism-agentprism-workflows-866a9f2/packages/codex-acp/src/CodexCli.ts :1 import type {ChildProcess, SpawnOptions} from "node:child_process";
  • shell agentprism-agentprism-workflows-866a9f2/packages/codex-acp/src/CodexJsonRpcConnection.ts :3 import type {ChildProcessWithoutNullStreams} from "node:child_process";
  • shell (weak) agentprism-agentprism-workflows-866a9f2/packages/codex-acp/src/__tests__/CodexACPAgent/collab-agent-events.test.ts :691 spawn("item/started"),
  • shell (weak) agentprism-agentprism-workflows-866a9f2/packages/codex-acp/src/__tests__/CodexACPAgent/e2e/spawned-agent-fixture.ts :2 import {type ChildProcessWithoutNullStreams, spawn} from "node:child_process";
  • shell agentprism-agentprism-workflows-866a9f2/packages/mcp-server/src/daemon/daemon-info.ts :26 import { execFileSync } from "node:child_process";
  • shell agentprism-agentprism-workflows-866a9f2/packages/mcp-server/src/shim/ensure-daemon.ts :24 import { spawn } from "node:child_process";
  • shell (weak) agentprism-agentprism-workflows-866a9f2/packages/mcp-server/test/daemon/daemon-info.test.ts :5 import { spawn, spawnSync } from "node:child_process";
  • shell (weak) agentprism-agentprism-workflows-866a9f2/packages/mcp-server/test/daemon/repl-break.e2e.test.ts :19 import { spawn, spawnSync, type ChildProcess } from "node:child_process";
  • shell (weak) agentprism-agentprism-workflows-866a9f2/packages/mcp-server/test/daemon/shim.e2e.test.ts :15 import { spawn, spawnSync } from "node:child_process";
  • shell (weak) agentprism-agentprism-workflows-866a9f2/packages/mcp-server/test/entrypoint.test.ts :3 import { spawn } from "node:child_process";
  • shell (weak) agentprism-agentprism-workflows-866a9f2/packages/mcp-server/test/live-backend.e2e.test.ts :24 import { execSync } from "node:child_process";
  • shell (weak) agentprism-agentprism-workflows-866a9f2/packages/mcp-server/test/repl-inprocess-break.e2e.test.ts :23 import { spawn, type ChildProcess } from "node:child_process";
  • shell (weak) agentprism-agentprism-workflows-866a9f2/packages/mcp-server/test/ui-monitor-host.test.ts :2 import { spawn } from "node:child_process";
  • shell (weak) agentprism-agentprism-workflows-866a9f2/packages/mcp-server/test/workflow-source-gate.test.ts :3 import { spawnSync } from "node:child_process";
  • shell agentprism-agentprism-workflows-866a9f2/packages/pi-acp/src/child-process-registry.ts :3 import { spawn, type ChildProcess } from "node:child_process";
  • shell (weak) agentprism-agentprism-workflows-866a9f2/packages/pi-acp/test/child-process-registry.test.ts :2 import { spawn } from "node:child_process";
  • shell (weak) agentprism-agentprism-workflows-866a9f2/packages/pi-acp/test/fixtures/process-tree.mjs :2 import { spawn } from "node:child_process";
  • shell (weak) agentprism-agentprism-workflows-866a9f2/packages/pi-acp/test/pi-shutdown-reaps-children.test.ts :56 const { spawn } = require("node:child_process");
  • shell (weak) agentprism-agentprism-workflows-866a9f2/packages/pi-acp/test/revision.test.ts :2 import { spawn } from "node:child_process";
  • shell (weak) agentprism-agentprism-workflows-866a9f2/packages/pi-acp/test/unit.test.ts :3 import { spawnSync } from "node:child_process";
  • shell (weak) agentprism-agentprism-workflows-866a9f2/packages/repl-engine/test/public-types.test.ts :18 import { execFileSync } from 'node:child_process';
  • shell (weak) agentprism-agentprism-workflows-866a9f2/packages/shared-types/test/run-events.test.ts :3 import { spawnSync } from "node:child_process";
  • shell agentprism-agentprism-workflows-866a9f2/packages/workflow-engine/src/run-environment.ts :2 import { execFileSync } from "node:child_process";
  • shell agentprism-agentprism-workflows-866a9f2/packages/workflow-engine/src/worktree.ts :8 import { execFile } from "node:child_process";
  • shell (weak) agentprism-agentprism-workflows-866a9f2/packages/workflow-engine/test/agent-registry.test.ts :2 import { execFileSync } from "node:child_process";
  • shell (weak) agentprism-agentprism-workflows-866a9f2/packages/workflow-engine/test/continuation.test.ts :2 import { execFileSync } from "node:child_process";

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

network 31

  • net agentprism-agentprism-workflows-866a9f2/packages/acp-agents/src/structured-tool.ts :6 } from "node:http";
  • net (weak) agentprism-agentprism-workflows-866a9f2/packages/acp-agents/test/backend-manifest.test.ts :13 import { createServer } from "node:http";
  • net (weak) agentprism-agentprism-workflows-866a9f2/packages/acp-agents/test/source-upstream-sync.test.ts :18 import { createServer } from "node:http";
  • net (weak) agentprism-agentprism-workflows-866a9f2/packages/acp-agents/test/structured-tool.test.ts :151 const unknown = await fetch(unknownUrl, { method: "POST", body: "{}" });
  • net (weak) agentprism-agentprism-workflows-866a9f2/packages/acp-agents/test/wrapped-runtime.test.ts :5 import { createServer } from "node:http";
  • net agentprism-agentprism-workflows-866a9f2/packages/acp-server/src/http-server.ts :1 import { createServer, type IncomingMessage, type ServerResponse } from "node:http";
  • net (weak) agentprism-agentprism-workflows-866a9f2/packages/mcp-server/scripts/dev-app-host.mjs :22 import http from "node:http";
  • net agentprism-agentprism-workflows-866a9f2/packages/mcp-server/src/daemon/daemon-info.ts :104 const response = await fetch(`http://127.0.0.1:${port}/healthz`, {
  • net agentprism-agentprism-workflows-866a9f2/packages/mcp-server/src/daemon/http-daemon.ts :15 import http from "node:http";
  • net agentprism-agentprism-workflows-866a9f2/packages/mcp-server/src/daemon/middleware.ts :11 import type { IncomingHttpHeaders } from "node:http";
  • net agentprism-agentprism-workflows-866a9f2/packages/mcp-server/src/repl-stdio-relay-worker.ts :150 void fetch(breakUrl, {
  • net agentprism-agentprism-workflows-866a9f2/packages/mcp-server/src/shim/shim.ts :112 void fetch(replBreakUrl, {
show 19 more
  • net (weak) agentprism-agentprism-workflows-866a9f2/packages/mcp-server/test/daemon/event-drain-bounds.test.ts :26 const response = await fetch(`http://127.0.0.1:${port}/healthz`, {
  • net (weak) agentprism-agentprism-workflows-866a9f2/packages/mcp-server/test/daemon/http-daemon.test.ts :30 const health = await fetch(`http://127.0.0.1:${daemon.port}/healthz`);
  • net (weak) agentprism-agentprism-workflows-866a9f2/packages/mcp-server/test/daemon/repl-break.e2e.test.ts :138 const breakResponse = await fetch(`${info.replBreakUrl}`, {
  • net (weak) agentprism-agentprism-workflows-866a9f2/packages/mcp-server/test/daemon/run-control.test.ts :59 return fetch(url, {
  • net (weak) agentprism-agentprism-workflows-866a9f2/packages/mcp-server/test/daemon/shim.e2e.test.ts :165 const health = (await (await fetch(`http://127.0.0.1:${info.port}/healthz`)).json()) as {
  • net (weak) agentprism-agentprism-workflows-866a9f2/packages/mcp-server/test/daemon/succession.test.ts :21 import http from "node:http";
  • net (weak) agentprism-agentprism-workflows-866a9f2/packages/mcp-server/test/dual-era.e2e.test.ts :47 const response = await fetch(url, {
  • net (weak) agentprism-agentprism-workflows-866a9f2/packages/mcp-server/test/ui-monitor-host.test.ts :110 await fetch(
  • net agentprism-agentprism-workflows-866a9f2/packages/pi-acp/src/mcp-bridge.ts :438 const response = await fetch(url, init);
  • net (weak) agentprism-agentprism-workflows-866a9f2/packages/pi-acp/test/live.e2e.test.ts :4 import { createServer, type Server as HttpServer } from "node:http";
  • net (weak) agentprism-agentprism-workflows-866a9f2/packages/pi-acp/test/mcp-transports.e2e.test.ts :3 import { createServer, type IncomingMessage, type Server as HttpServer, type ServerResponse } from "node:http";
  • net agentprism-agentprism-workflows-866a9f2/packages/repl-engine/src/eval-break-worker.ts :27 import { createServer } from "node:http";
  • net (weak) agentprism-agentprism-workflows-866a9f2/packages/repl-engine/test/eval-break-channel.test.ts :31 const response = await fetch(`${await channel.breakUrl()}`, {
  • net (weak) agentprism-agentprism-workflows-866a9f2/scripts/check-acp-deps.mjs :376 const res = await fetch(url, { ...init, signal: AbortSignal.timeout(FETCH_TIMEOUT_MS) });
  • net (weak) agentprism-agentprism-workflows-866a9f2/scripts/generate-acp-registry.mjs :253 const response = await fetch(url, {
  • net (weak) agentprism-agentprism-workflows-866a9f2/scripts/generate-npm-download-badge.mjs :315 const response = await fetch(url, {
  • net (weak) agentprism-agentprism-workflows-866a9f2/scripts/smoke-pi-mcp-release.mjs :6 import { createServer } from "node:http";
  • net (weak) agentprism-agentprism-workflows-866a9f2/scripts/test/generate-acp-registry.test.mjs :4 import { createServer } from "node:http";
  • net (weak) agentprism-agentprism-workflows-866a9f2/scripts/test/generate-npm-download-badge.test.mjs :4 import { createServer } from "node:http";

secrets 5

  • secrets (weak) agentprism-agentprism-workflows-866a9f2/packages/acp-agents/test/auth.live.e2e.test.ts :47 { skip: gate("set CODEX_API_KEY (or OPENAI_API_KEY) to run the codex auth e2e", Boolean(process.env.CODEX_API_KEY || process.env.OPENAI_API_KEY)) },
  • secrets (weak) agentprism-agentprism-workflows-866a9f2/packages/codex-acp/examples/steering.ts :363 const apiKey = process.env["CODEX_API_KEY"] ?? process.env["OPENAI_API_KEY"];
  • secrets (weak) agentprism-agentprism-workflows-866a9f2/packages/pi-acp/test/live.e2e.test.ts :19 process.env.ANTHROPIC_API_KEY ||
  • secrets (weak) agentprism-agentprism-workflows-866a9f2/packages/workflows/examples/image-gate/run.mjs :36 const apiKey = process.env.GEMINI_API_KEY ?? process.env.NANOBANANA_API_KEY ?? process.env.GOOGLE_API_KEY;
  • secrets (weak) agentprism-agentprism-workflows-866a9f2/packages/workflows/test/continuation.live.e2e.test.ts :27 process.env.ANTHROPIC_API_KEY ||

tool registrations 2

  • repl agentprism-agentprism-workflows-866a9f2/packages/mcp-server/src/repl-tool.ts :397
  • workflow agentprism-agentprism-workflows-866a9f2/packages/mcp-server/src/server.ts :1743

install hooks 12

  • postinstall agentprism-agentprism-workflows-866a9f2/package.json :7 node scripts/ensure-run-monitor-html.mjs --soft
  • prepare agentprism-agentprism-workflows-866a9f2/package.json :19 git config core.hooksPath .githooks || true
  • prepublishOnly agentprism-agentprism-workflows-866a9f2/packages/acp-agents/package.json :42 tsc -b
  • prepublishOnly agentprism-agentprism-workflows-866a9f2/packages/acp-server/package.json :48 tsc -b
  • prepublishOnly agentprism-agentprism-workflows-866a9f2/packages/agentprism-otel/package.json :42 tsc -b
  • prepublishOnly agentprism-agentprism-workflows-866a9f2/packages/codex-acp/package.json :20 npm run build
  • prepublishOnly agentprism-agentprism-workflows-866a9f2/packages/mcp-server/package.json :49 pnpm run build
  • prepublishOnly agentprism-agentprism-workflows-866a9f2/packages/pi-acp/package.json :48 tsc -b
  • prepublishOnly agentprism-agentprism-workflows-866a9f2/packages/repl-engine/package.json :42 tsc -b
  • prepublishOnly agentprism-agentprism-workflows-866a9f2/packages/shared-types/package.json :42 tsc -b
  • prepublishOnly agentprism-agentprism-workflows-866a9f2/packages/workflow-engine/package.json :42 tsc -b
  • prepublishOnly agentprism-agentprism-workflows-866a9f2/packages/workflows/package.json :45 pnpm run build

declared dependencies 5

  • @changesets/cli@^2.31.0
  • @types/node@^22.10.0
  • tsx@^4.22.4
  • typescript@^5.7.0
  • yaml@^2.9.0

perm:untrusted 2

  • untrusted (weak) agentprism-agentprism-workflows-866a9f2/packages/mcp-server/test/daemon/shim.e2e.test.ts :165 const health = (await (await fetch(`http://127.0.0.1:${info.port}/healthz`)).json()) as {
  • untrusted (weak) agentprism-agentprism-workflows-866a9f2/packages/mcp-server/test/daemon/succession.test.ts :253 const health = (await (await fetch(`http://127.0.0.1:${daemon.port}/healthz`)).json()) as {