📦 deps(thirdparty): update snapshots

This commit is contained in:
ci[bot]
2026-08-31 05:00:46 +08:00
parent 8fea3d18fe
commit 0b2b056032
347 changed files with 38446 additions and 136 deletions
+94
View File
@@ -0,0 +1,94 @@
name: Pipeline artifacts checks
# 校验流水线产物:books/ 下的 Skill 包格式、Capability Bundle schema、
# capability-destinations 不变量与编译器自身的确定性(方案 §11.5 CI 扩展)。
# 这是 registry-check 之外对 books/、schemas/contracts、scripts/ 的第一层实质校验。
on:
pull_request:
paths:
- "books/**"
- "schemas/**"
- "scripts/**"
- "benchmarks/**"
- "methodology/**"
- "extractors/**"
- "SKILL.md"
- ".github/workflows/pipeline-check.yml"
push:
branches: [main]
paths:
- "books/**"
- "schemas/**"
- "scripts/**"
permissions:
contents: read
jobs:
verify:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v7
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.12"
- name: Install dependencies
run: pip install pyyaml jsonschema referencing
- name: Doctor(跳过可选 tokenizer 依赖)
run: python3 scripts/cangjie.py doctor || true
- name: Validate skill packs (books/)
run: |
shopt -s nullglob
dirs=(books/*/)
if [ ${#dirs[@]} -gt 0 ]; then
python3 scripts/validate_skill_pack.py "${dirs[@]}"
else
echo "no books to validate"
fi
- name: Validate Capability Bundles against schema
run: |
python3 - <<'EOF'
import json, sys
from pathlib import Path
import yaml
from jsonschema import Draft202012Validator
from referencing import Registry, Resource
cap = json.loads(Path("schemas/capability.schema.json").read_text())
bun = json.loads(Path("schemas/capability-bundle.schema.json").read_text())
reg = Registry().with_resources([
(cap["$id"], Resource.from_contents(cap)),
(bun["$id"], Resource.from_contents(bun)),
])
validator = Draft202012Validator(bun, registry=reg)
failed = False
for f in Path("books").glob("*/.cangjie/capabilities/verified.yaml"):
errors = list(validator.iter_errors(yaml.safe_load(f.read_text())))
print(f"{f}: {len(errors)} errors")
for e in errors[:10]:
print(" -", "/".join(map(str, e.path)), e.message[:160])
failed = failed or bool(errors)
sys.exit(1 if failed else 0)
EOF
- name: Compile determinism smoke(同一 Bundle 重复编译字节一致)
run: |
python3 - <<'EOF'
import hashlib, sys
from pathlib import Path
sys.path.insert(0, "scripts")
from compile_single import build_tree
from compile_pack import compile_pack_tree
bundles = list(Path("books").glob("*/.cangjie/capabilities"))
for b in bundles:
for build in (lambda: build_tree(b, "single"), lambda: compile_pack_tree(b)):
h1 = hashlib.sha256(repr(sorted(build().items())).encode()).hexdigest()
h2 = hashlib.sha256(repr(sorted(build().items())).encode()).hexdigest()
assert h1 == h2, f"non-deterministic compile for {b}"
print(f"{b}: deterministic OK")
if not bundles:
print("no bundles to check")
EOF