AI Security Review
scanned 2h ago · by lpm-firewall-aiReview flagged AI-agent configuration or capability changes. This remains warn-only unless evidence shows foreign-agent hijack through preinstall/install/postinstall, hidden persistence, exfiltration, remote code execution, or other concrete malicious behavior.
Decision evidence
public snapshot- `dist/cli/recap.js` `recap setup` writes `.github/workflows/pr-visual-recap.yml`.
- The same explicit setup command can invoke `gh secret set` for GitHub Actions secrets.
- Bundled workflow runs an AI CLI on PR content and makes authenticated requests to `https://plan.jami.studio`.
- `dist/coding-tools/index.js` supports shell-backed coding commands and detached background processes.
- `package.json` has no `preinstall`, `install`, `postinstall`, or `prepare` hook.
- Workflow/config mutation is reached through explicit `agent-native recap setup`, not package installation or import.
- Workflow uses `pull_request`, not `pull_request_target`, and comments that fork code must not receive secrets.
- `dist/terminal/pty-server.js` binds only to `127.0.0.1`, supports optional auth, and allowlists AI CLI names.
- The `eval()` finding is prompt text prohibiting eval, not runtime evaluation.
Source & flagged code
31 flagged · loading sourcePackage contains a possible secret pattern.
dist/server/onboarding-html.jsView on unpkg · L70Hardcoded password in dist/server/onboarding-html.js
dist/server/onboarding-html.jsView on unpkg · L330Hardcoded password in dist/server/onboarding-html.js
dist/server/onboarding-html.jsView on unpkg · L416Hardcoded password in dist/server/onboarding-html.js
dist/server/onboarding-html.jsView on unpkg · L502Hardcoded password in dist/server/onboarding-html.js
dist/server/onboarding-html.jsView on unpkg · L932Package source references child process execution.
bin/agent-native.jsView on unpkg · L2Package source references dynamic require/import behavior.
bin/agent-native.jsView on unpkg · L34Package source references dynamic code evaluation.
dist/server/prompts/framework-core.jsView on unpkg · L35Package source references weak cryptographic algorithms.
corpus/core/src/cli/migrate.tsView on unpkg · L16A single source file combines environment access, network access, and code or shell execution; review context before blocking.
dist/terminal/pty-server.jsView on unpkg · L84Source appears to send environment or credential material to an external endpoint.
dist/cli/pr-visual-recap-workflow.jsView on unpkg · L7A package entrypoint or install-time lifecycle script reaches a source file with blocking dangerous behavior.
dist/cli/pr-visual-recap-workflow.jsView on unpkg · L7Source reaches cloud instance metadata or link-local credential endpoints.
dist/server/design-token-utils.jsView on unpkg · L3Source spawns a local helper that also contains network and dynamic execution context; review data flow before blocking.
dist/cli/index.jsView on unpkg · L1Hardcoded password in corpus/core/src/server/onboarding-html.ts
corpus/core/src/server/onboarding-html.tsView on unpkg · L93Hardcoded password in corpus/core/src/server/onboarding-html.ts
corpus/core/src/server/onboarding-html.tsView on unpkg · L367Hardcoded password in corpus/core/src/server/onboarding-html.ts
corpus/core/src/server/onboarding-html.tsView on unpkg · L464Hardcoded password in corpus/core/src/server/onboarding-html.ts
corpus/core/src/server/onboarding-html.tsView on unpkg · L562Hardcoded password in corpus/core/src/server/onboarding-html.ts
corpus/core/src/server/onboarding-html.tsView on unpkg · L1037Hardcoded password in corpus/templates/clips/app/i18n/fr-FR.ts
corpus/templates/clips/app/i18n/fr-FR.tsView on unpkg · L1400Hardcoded password in corpus/templates/clips/app/i18n/ar-SA.ts
corpus/templates/clips/app/i18n/ar-SA.tsView on unpkg · L1376Hardcoded password in corpus/templates/clips/app/i18n/de-DE.ts
corpus/templates/clips/app/i18n/de-DE.tsView on unpkg · L1405Hardcoded password in corpus/templates/clips/app/i18n/en-US.ts
corpus/templates/clips/app/i18n/en-US.tsView on unpkg · L1366Hardcoded password in corpus/templates/clips/app/i18n/es-ES.ts
corpus/templates/clips/app/i18n/es-ES.tsView on unpkg · L1398Hardcoded password in corpus/templates/plan/app/i18n/fr-FR.ts
corpus/templates/plan/app/i18n/fr-FR.tsView on unpkg · L472Hardcoded password in corpus/templates/plan/app/i18n/ar-SA.ts
corpus/templates/plan/app/i18n/ar-SA.tsView on unpkg · L639Hardcoded password in corpus/templates/plan/app/i18n/de-DE.ts
corpus/templates/plan/app/i18n/de-DE.tsView on unpkg · L651Hardcoded password in corpus/templates/plan/app/i18n/en-US.ts
corpus/templates/plan/app/i18n/en-US.tsView on unpkg · L629Hardcoded password in corpus/templates/plan/app/i18n/es-ES.ts
corpus/templates/plan/app/i18n/es-ES.tsView on unpkg · L470Hardcoded password in corpus/templates/analytics/server/lib/demo-source.ts
corpus/templates/analytics/server/lib/demo-source.tsView on unpkg · L28