Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,3 +62,17 @@ updates:
- Aureliolo
labels:
- type:chore

- package-ecosystem: docker
directory: /docker/sandbox
schedule:
interval: daily
time: "06:00"
timezone: Etc/UTC
commit-message:
prefix: "chore"
open-pull-requests-limit: 5
reviewers:
- Aureliolo
labels:
- type:chore
5 changes: 4 additions & 1 deletion .github/workflows/dast.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,10 @@ jobs:
runs-on: ubuntu-latest
permissions:
contents: read
issues: write # Required by API scan action to create issues for scan findings
# The ZAP action creates/updates a single GitHub issue per repo with scan
# findings (not one per run). Removing issues:write would cause the action
# to fail. The auto-created issue is updated in-place on subsequent runs.
issues: write
Comment on lines 20 to +25
Comment on lines +22 to +25
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/pages-preview.yml
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,9 @@ jobs:
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
PR_NUMBER: ${{ needs.build.outputs.pr_number }}
run: |
npm i --no-save wrangler@3.114.17
# Scorecard: npm install cannot be hash-pinned for CI-only tools;
# --ignore-scripts mitigates post-install script supply-chain risk.
npm i --no-save --ignore-scripts wrangler@3.114.17
Comment on lines +236 to +238

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🌐 Web query:

Does npm install --no-save --ignore-scripts wrangler@3.114.17 pin transitive dependencies or verify them against a repository-controlled checksum without a lockfile?

💡 Result:

No.

  • wrangler@3.114.17 pins only the top-level package version you asked for. Its transitive dependencies are still resolved at install time from whatever semver ranges wrangler (and its dependencies) declare, unless you use a lockfile (package-lock.json / npm-shrinkwrap.json) to freeze the full tree (including resolved + integrity per package). [1][2]
  • --no-save just avoids writing wrangler into your package.json; it doesn’t by itself “pin” the transitive graph. --ignore-scripts only prevents lifecycle scripts from running. [1]
  • Without a lockfile committed to your repo, there is no repo-controlled checksum to verify against. npm will still do integrity checking for what it downloads/uses from cache/registry metadata, but that’s not the same as verifying against a checksum you control in Git. [2][3]
  • If you want verification beyond HTTPS + registry metadata, npm also supports verifying registry signatures (when available/configured), but that’s separate from (and not a substitute for) a repository lockfile for reproducibility. [4]

Sources: npm install docs [1], package-lock format (including integrity) [2], npm v5 integrity/cache notes [3], npm registry signature verification docs [4].


wrangler@3.114.17 is not reproducibly pinned—only the top-level version is fixed, while transitive dependencies are resolved at install time without a lockfile or repo-controlled checksums.

--ignore-scripts mitigates one supply-chain vector but does not achieve deterministic installation. Without a committed package-lock.json, the full dependency tree varies per run. Consider either checking in a lockfile for this isolated tool, or downloading and verifying a pre-built artifact before execution.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/pages-preview.yml around lines 236 - 238, The workflow
currently runs the command "npm i --no-save --ignore-scripts wrangler@3.114.17"
which does not produce a reproducible dependency tree; to fix this either commit
and use a lockfile for that tool and install with a deterministic flow (e.g.,
include a package-lock.json and run npm ci or run the install in a small
repo-scoped package.json for wrangler) or replace the npm install with
downloading a pre-built wrangler artifact and verify its checksum before
execution; update the workflow to use the chosen approach and remove the
non-lockfile npm install to ensure deterministic installs.

Comment on lines +236 to +238
npx wrangler pages deploy _site --project-name=synthorg-pr-preview --branch="pr-${PR_NUMBER}"
Comment on lines +236 to 239

- name: Comment preview URL
Expand Down
6 changes: 5 additions & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,11 @@ repos:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
exclude: ^src/ai_company/templates/builtins/
exclude: ^(src/ai_company/templates/builtins/|mkdocs\.yml$)
- id: check-yaml
name: check-yaml (mkdocs, unsafe for !!python tags)
args: [--unsafe]
files: ^mkdocs\.yml$
- id: check-toml
- id: check-json
- id: check-merge-conflict
Expand Down
1 change: 1 addition & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ npm --prefix web run test # Vitest unit tests
- **Design spec**: `docs/design/` (7 pages: index, agents, organization, communication, engine, memory, operations)
- **Architecture**: `docs/architecture/` (overview, tech-stack, decision log)
- **Roadmap**: `docs/roadmap/` (status, open questions, future vision)
- **Security**: `docs/security.md` (comprehensive security architecture, hardening, CI/CD security, compliance)
- **Reference**: `docs/reference/` (research, standards)
- **REST API reference**: `docs/rest-api.md` — links to standalone Scalar UI page at `docs/_generated/api-reference.html` (both generated by `scripts/export_openapi.py` in CI)
- **Library reference**: `docs/api/` — auto-generated from docstrings via mkdocstrings + Griffe (AST-based, no imports)
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,7 @@ graph TB
| [Architecture](docs/architecture/index.md) | System overview, tech stack, decision log |
| [API Reference](docs/rest-api.md) | REST API reference (Scalar/OpenAPI) |
| [Library Reference](docs/api/index.md) | Auto-generated from docstrings |
| [Security](docs/security.md) | Security architecture, hardening, CI/CD security |
| [Developer Setup](docs/getting_started.md) | Clone, test, lint, contribute |
| [User Guide](docs/user_guide.md) | Install, configure, run via Docker |

Expand Down
4 changes: 2 additions & 2 deletions docker/sandbox/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
FROM node:22-slim AS node-base
FROM node:22-slim@sha256:9c2c405e3ff9b9afb2873232d24bb06367d649aa3e6259cbe314da59578e81e9 AS node-base

FROM python:3.14-slim
FROM python:3.14.3-slim@sha256:6a27522252aef8432841f224d9baaa6e9fce07b07584154fa0b9a96603af7456

COPY --from=node-base /usr/local/bin/node /usr/local/bin/node
COPY --from=node-base /usr/local/lib/node_modules /usr/local/lib/node_modules
Expand Down
5 changes: 5 additions & 0 deletions docs/api/api.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
search:
exclude: true
---

# API Layer

Litestar REST + WebSocket API — controllers, authentication, guards, and channels.
Expand Down
5 changes: 5 additions & 0 deletions docs/api/budget.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
search:
exclude: true
---

# Budget

Cost tracking, budget enforcement, auto-downgrade, quota management, and CFO optimization.
Expand Down
5 changes: 5 additions & 0 deletions docs/api/communication.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
search:
exclude: true
---

# Communication

Inter-agent messaging — bus, dispatcher, delegation, loop prevention, conflict resolution, and meeting protocols.
Expand Down
5 changes: 5 additions & 0 deletions docs/api/config.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
search:
exclude: true
---

# Config

YAML company configuration loading and validation.
Expand Down
5 changes: 5 additions & 0 deletions docs/api/core.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
search:
exclude: true
---

# Core

Shared domain models, base types, and enums used across the framework.
Expand Down
5 changes: 5 additions & 0 deletions docs/api/engine.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
search:
exclude: true
---

# Engine

Agent orchestration, execution loops, task decomposition, routing, and parallel execution.
Expand Down
5 changes: 5 additions & 0 deletions docs/api/hr.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
search:
exclude: true
---

# HR

Agent lifecycle management — hiring, firing, onboarding, offboarding, performance tracking, and promotion/demotion.
Expand Down
5 changes: 5 additions & 0 deletions docs/api/index.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
search:
exclude: true
---

# Library Reference

Auto-generated reference documentation from source code docstrings.
Expand Down
5 changes: 5 additions & 0 deletions docs/api/memory.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
search:
exclude: true
---

# Memory

Persistent agent memory — protocol, retrieval pipeline, shared org memory, consolidation, and archival.
Expand Down
5 changes: 5 additions & 0 deletions docs/api/observability.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
search:
exclude: true
---

# Observability

Structured logging, event constants, correlation tracking, and log sinks.
Expand Down
5 changes: 5 additions & 0 deletions docs/api/persistence.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
search:
exclude: true
---

# Persistence

Pluggable operational data persistence — protocol, configuration, and SQLite backend.
Expand Down
5 changes: 5 additions & 0 deletions docs/api/providers.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
search:
exclude: true
---

# Providers

LLM provider abstraction — protocol, base class, drivers, capabilities, routing, and resilience.
Expand Down
5 changes: 5 additions & 0 deletions docs/api/security.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
search:
exclude: true
---

# Security

Security subsystem — rule engine, trust strategies, autonomy levels, output scanning, and timeout policies.
Expand Down
5 changes: 5 additions & 0 deletions docs/api/templates.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
search:
exclude: true
---

# Templates

Pre-built company templates, personality presets, and template builder.
Expand Down
5 changes: 5 additions & 0 deletions docs/api/tools.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
search:
exclude: true
---

# Tools

Tool system — base class, registry, invoker, built-in tools, and MCP bridge.
Expand Down
Loading
Loading