Skip to content

Commit 058428d

Browse files
committed
fix(security): resolve merge conflicts with upstream/main
2 parents 9dd06b6 + 73ccf41 commit 058428d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+6361
-131
lines changed

.cspell-repo-terms.txt

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
AgentOS
2+
AgentMesh
3+
AgentGovernance
4+
CMVK
5+
IATP
6+
Moltbook
7+
OpenClaw
8+
OpenAI
9+
LangChain
10+
LangGraph
11+
LlamaIndex
12+
CrewAI
13+
Dify
14+
SemanticKernel
15+
Microsoft
16+
GitHub
17+
workflow
18+
workflows
19+
markdown
20+
spellcheck
21+
spellchecking

.cspell.json

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
{
2+
"version": "0.2",
3+
"language": "en",
4+
"useGitignore": true,
5+
"dictionaries": ["repo-terms"],
6+
"dictionaryDefinitions": [
7+
{
8+
"name": "repo-terms",
9+
"path": "./.cspell-repo-terms.txt",
10+
"addWords": true
11+
}
12+
],
13+
"words": [
14+
"GitHub",
15+
"Markdown",
16+
"README",
17+
"TypeScript",
18+
"JavaScript",
19+
"Python",
20+
"PyPI",
21+
"NuGet",
22+
"OpenSSF",
23+
"CodeQL",
24+
"CORS",
25+
"CSP",
26+
"CLI",
27+
"CI",
28+
"CD",
29+
"PR",
30+
"MCP",
31+
"A2A"
32+
],
33+
"ignorePaths": [
34+
"**/node_modules/**",
35+
"**/dist/**",
36+
"**/build/**",
37+
"**/.venv/**",
38+
"**/.git/**",
39+
"**/*.png",
40+
"**/*.svg",
41+
"**/*.json",
42+
"**/*.lock"
43+
]
44+
}

.dockerignore

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
.git
2+
.github
3+
.venv
4+
**/.venv
5+
**/__pycache__
6+
**/.pytest_cache
7+
**/.mypy_cache
8+
**/.ruff_cache
9+
**/.coverage
10+
**/htmlcov
11+
**/build
12+
**/dist
13+
**/*.egg-info
14+
**/node_modules
15+
.DS_Store
16+
.idea
17+
.vscode
18+
coverage.xml
19+
node_modules

.github/workflows/ci.yml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,9 @@ jobs:
178178
'pydantic','pyyaml','cryptography','pynacl','click','rich',
179179
'httpx','aiohttp','fastapi','uvicorn','structlog','numpy',
180180
'scipy','openai','anthropic','langchain','crewai',
181+
'streamlit','plotly','pandas','networkx','aioredis',
182+
'langchain-openai','langchain-core','python-dotenv',
183+
'agent-primitives','emk',
181184
}
182185
bad = []
183186
for nb in glob.glob('**/*.ipynb', recursive=True):
@@ -189,11 +192,11 @@ jobs:
189192
continue
190193
for c in cells:
191194
for line in c.get('source', []):
192-
if 'pip install' in line and not line.strip().startswith('#'):
195+
if 'pip install' in line and not line.strip().startswith('#') and not line.strip().startswith('>'):
193196
pkgs = re.findall(r'(?:pip install\s+)(.+)', line)
194197
if pkgs:
195198
for p in pkgs[0].split():
196-
name = re.sub(r'\[.*\]', '', p).strip()
199+
name = re.sub(r'[^a-zA-Z0-9._-]', '', re.sub(r'\[.*\]', '', p))
197200
if (name and not name.startswith('-') and not name.startswith('.')
198201
and not name.startswith('http') and name not in REGISTERED
199202
and not name.startswith('--')):
@@ -219,10 +222,10 @@ jobs:
219222
# Only flag if actions/checkout has ref: pointing to head (unsafe)
220223
# Uses awk to check checkout blocks specifically, not unrelated lines
221224
if awk '/actions\/checkout/{found=1} found && /ref:.*head\.(ref|sha)/{print; exit 1}' "$f" 2>/dev/null; then
225+
echo "OK: $f (pull_request_target, base-only checkout)"
226+
else
222227
echo "UNSAFE: $f checks out PR head in pull_request_target context"
223228
UNSAFE=1
224-
else
225-
echo "OK: $f (pull_request_target, base-only checkout)"
226229
fi
227230
fi
228231
done

.github/workflows/codeql.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
strategy:
2323
fail-fast: false
2424
matrix:
25-
language: [python, javascript]
25+
language: [python, javascript-typescript]
2626
steps:
2727
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
2828

.github/workflows/spell-check.yml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
name: Spell Check
2+
3+
on:
4+
pull_request:
5+
branches: [main]
6+
paths:
7+
- "**/*.md"
8+
- ".cspell.json"
9+
- ".cspell-repo-terms.txt"
10+
- ".github/workflows/spell-check.yml"
11+
12+
permissions:
13+
contents: read
14+
pull-requests: read
15+
16+
jobs:
17+
spell-check:
18+
runs-on: ubuntu-latest
19+
steps:
20+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
21+
with:
22+
fetch-depth: 0
23+
24+
- name: Get changed markdown files
25+
id: changed-markdown
26+
uses: tj-actions/changed-files@v46
27+
with:
28+
files: |
29+
**/*.md
30+
31+
- name: Install cspell
32+
run: npm install --global cspell@8
33+
34+
- name: Check spelling
35+
if: steps.changed-markdown.outputs.any_changed == 'true'
36+
run: cspell --config .cspell.json --no-progress ${{ steps.changed-markdown.outputs.all_changed_files }}

CHANGELOG.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1010
> and production-quality but may have breaking changes before GA.
1111
1212
## [Unreleased]
13-
13+
14+
### Security
15+
- Copilot extension CORS policy changed from wildcard (`Access-Control-Allow-Origin: *`) to explicit origin allowlist via `ALLOWED_ORIGINS`, with secure GitHub defaults.
16+
17+
### Breaking Changes
18+
- Clients calling protected Copilot extension API routes without an `Origin` header are now rejected (`403`).
19+
- Clients previously relying on unrestricted cross-origin access must configure `ALLOWED_ORIGINS` explicitly.
20+
21+
1422
## [3.0.0] - 2026-03-26
1523

1624
### Changed

CONTRIBUTING.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,33 @@ pip install -e "packages/agent-lightning[dev]"
4949
pytest
5050
```
5151

52+
### Docker Quickstart
53+
54+
If you prefer a containerized development environment, use the root Docker
55+
configuration. The image includes Python 3.11, Node.js 22, the core editable
56+
Python packages in this monorepo, and the TypeScript SDK dependencies.
57+
58+
```bash
59+
# Build and start the development container
60+
docker compose up --build dev
61+
62+
# Open a shell in the running container
63+
docker compose exec dev bash
64+
65+
# Run the full test suite
66+
docker compose run --rm test
67+
```
68+
69+
The repository is bind-mounted into `/workspace`, so Python source changes are
70+
available immediately without rebuilding the image. If you update package
71+
metadata or dependency definitions, rebuild with `docker compose build`.
72+
73+
To launch the optional Agent Hypervisor dashboard:
74+
75+
```bash
76+
docker compose --profile dashboard up --build dashboard
77+
```
78+
5279
### Package Structure
5380

5481
This is a mono-repo with seven packages:

Dockerfile

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# syntax=docker/dockerfile:1.7
2+
3+
ARG PYTHON_VERSION=3.11
4+
5+
FROM python:${PYTHON_VERSION}-slim AS base
6+
7+
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
8+
9+
ENV DEBIAN_FRONTEND=noninteractive \
10+
PIP_NO_CACHE_DIR=1 \
11+
PYTHONDONTWRITEBYTECODE=1 \
12+
PYTHONUNBUFFERED=1 \
13+
NODE_MAJOR=22
14+
15+
WORKDIR /workspace
16+
17+
RUN apt-get update \
18+
&& apt-get install -y --no-install-recommends \
19+
bash \
20+
build-essential \
21+
ca-certificates \
22+
curl \
23+
git \
24+
&& curl -fsSL "https://deb.nodesource.com/setup_${NODE_MAJOR}.x" | bash - \
25+
&& apt-get install -y --no-install-recommends nodejs \
26+
&& python -m pip install --upgrade pip setuptools wheel \
27+
&& rm -rf /var/lib/apt/lists/*
28+
29+
FROM base AS dev
30+
31+
COPY . /workspace
32+
33+
RUN python -m pip install --no-cache-dir \
34+
-e "packages/agent-os[full,dev]" \
35+
-e "packages/agent-mesh[agent-os,dev,server]" \
36+
-e "packages/agent-hypervisor[api,dev,nexus]" \
37+
-e "packages/agent-runtime" \
38+
-e "packages/agent-sre[api,dev]" \
39+
-e "packages/agent-compliance" \
40+
-e "packages/agent-marketplace[cli,dev]" \
41+
-e "packages/agent-lightning[agent-os,dev]" \
42+
&& python -m pip install --no-cache-dir \
43+
-r packages/agent-hypervisor/examples/dashboard/requirements.txt \
44+
&& cd /workspace/packages/agent-mesh/sdks/typescript \
45+
&& npm ci
46+
47+
ENTRYPOINT ["bash", "/workspace/scripts/docker/dev-entrypoint.sh"]
48+
CMD ["sleep", "infinity"]
49+
50+
FROM dev AS test
51+
52+
CMD ["pytest"]

0 commit comments

Comments
 (0)