Open protocol for AI agent work contracts and verifiable execution — authorization, evidence, and acceptance for multi-agent systems
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http
verified
reported
listed in the official MCP registry counts 27 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
owp_analyze_repo
-
owp_build_delivery_package
-
owp_compute_digest
-
owp_compute_key_id
-
owp_control_observation_validate
-
owp_explain_binding_decision
-
owp_generate_keypair
-
owp_get_binding_status
-
owp_get_decision
-
owp_get_schema
-
owp_get_schema_digest
-
owp_get_settlement_readiness
-
owp_integrity_observation_validate
-
owp_list_domains
-
owp_repo_read
-
owp_run_tests
-
owp_run_verification
-
owp_scope_compare
-
owp_scope_validate
-
owp_sign_payload
-
owp_status
-
owp_validate_action_binding_manifest
-
owp_validate_judgment_commitment
-
owp_validate_profile
-
owp_verify_nested_claim
-
owp_verify_signature
-
owp_verify_work_order
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 04e62d5 · analyzer v33 · 2w ago
danger signals2
- dynamic code execution eval()/exec() dengyier-OpenWorkProof-04e62d5/tests/test_delivery_m3_dify.py :255
exec(compile(source, name, "exec"), module.__dict__) - dynamic code execution eval()/exec() dengyier-OpenWorkProof-04e62d5/tests/test_delivery_m4_agentscope.py :86
exec(compile(source, name, "exec"), module.__dict__) # noqa: S102
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 133
filesystem 78
- fs (weak) dengyier-OpenWorkProof-04e62d5/agentteams/scripts/run_skills_demo.py :19
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/docs/check_delivery_materials.py :13
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/docs/competition/OpenWorkProof参赛方案/fill_template.py :2
import shutil - fs (weak) dengyier-OpenWorkProof-04e62d5/docs/delivery-signoff/generate_sha256sums.py :17
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/docs/delivery-signoff/sign_manifest.py :18
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/docs/delivery-signoff/verify_sha256sums.py :15
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/docs/delivery-signoff/verify_signature.py :16
from pathlib import Path - fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/acceptance.py :15
from pathlib import Path - fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/binding_transactions.py :8
from pathlib import Path - fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/cli.py :29
from pathlib import Path - fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/delivery_package.py :9
from pathlib import Path - fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/evidence.py :13
from pathlib import Path - fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/execution_adapter.py :28
from pathlib import Path - fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/external_acceptor.py :25
from pathlib import Path - fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_server.py :15
from pathlib import Path - fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :47
from pathlib import Path - fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/policy.py :11
from pathlib import Path - fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/repo_pipeline/__init__.py :26
from pathlib import Path - fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/repo_pipeline/models.py :12
from pathlib import Path - fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/repo_pipeline/reader.py :11
from pathlib import Path - fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/repo_pipeline/sources.py :18
from pathlib import Path - fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/repo_pipeline/traversal.py :12
from pathlib import Path - fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/repo_tools.py :13
from pathlib import Path - fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/runtime_context.py :11
from pathlib import Path - fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/schema_registry.py :14
from pathlib import Path - fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/scope.py :10
import shutil - fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/services.py :7
from pathlib import Path - fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/settlement.py :7
from pathlib import Path - fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/team_network_client.py :38
from pathlib import Path - fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/trusted_helper.py :8
from pathlib import Path - fs dengyier-OpenWorkProof-04e62d5/src/openworkproof/verification.py :10
from pathlib import Path - fs dengyier-OpenWorkProof-04e62d5/supply-chain/images/convert_docker_archive.py :35
from pathlib import Path - fs dengyier-OpenWorkProof-04e62d5/supply-chain/images/execution/run_tests_runner.py :13
from pathlib import Path - fs dengyier-OpenWorkProof-04e62d5/supply-chain/images/prepare_context.py :9
from pathlib import Path, PurePosixPath - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/evidence-bundles/verify_evidence_bundle.py :25
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_acceptance.py :1824
from pathlib import Path # noqa: PLC0415 - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_binding_demo_v04.py :12
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_binding_manifest_transactions_v04.py :11
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_binding_schema_v04.py :8
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_candidate_supplychain_integration.py :14
from pathlib import Path, PurePosixPath - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_cli_transport.py :6
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_convert_docker_archive.py :8
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_delivery_m1.py :12
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_delivery_m2.py :23
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_delivery_m3_dify.py :40
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_delivery_package_v02.py :7
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_delivery_package_v03.py :5
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_delivery_package_v05.py :5
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_documentation_boundaries.py :9
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_execution_adapter.py :6
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_export_evidence_bundles.py :24
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_image_supply_chain.py :8
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_judgment_transactions_v04.py :9
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_mcp_server.py :11
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_package.py :3
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_prepare_image_context.py :7
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_receipt_chain.py :14
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_replay.py :2115
monkeypatch.setattr("pathlib.Path.resolve", forbid_resolution_substitute) - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_repo_pipeline.py :7
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_repo_read_transaction.py :6
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_run_tests_runner.py :11
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_sandbox.py :14
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_schema_registry.py :10
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_scope_adversarial_v03.py :5
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_scope_building_v03.py :6
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_scope_demo_v03.py :5
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_scope_interfaces_v03.py :5
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_scope_transactions_v03.py :7
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_trusted_helper.py :12
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_v02_adversarial.py :7
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_v02_bundles.py :6
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_v02_interfaces.py :4
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_verification_integrity_adapters_v05.py :7
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_verification_integrity_demo_v05.py :16
import shutil - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_verification_integrity_interfaces_v05.py :6
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_verification_integrity_transactions_v05.py :7
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_verification_transactions_v02.py :7
from pathlib import Path - fs (weak) dengyier-OpenWorkProof-04e62d5/tests/test_verification_transactions_v03.py :8
from pathlib import Path
shell / exec 26
- shell (weak) dengyier-OpenWorkProof-04e62d5/docs/delivery-signoff/generate_sha256sums.py :16
import subprocess - shell dengyier-OpenWorkProof-04e62d5/src/openworkproof/agentteams_controller_client.py :28
import subprocess - shell dengyier-OpenWorkProof-04e62d5/src/openworkproof/repo_pipeline/sources.py :21
import subprocess - shell dengyier-OpenWorkProof-04e62d5/src/openworkproof/repo_tools.py :20
import subprocess - shell dengyier-OpenWorkProof-04e62d5/src/openworkproof/scope.py :11
import subprocess - shell dengyier-OpenWorkProof-04e62d5/supply-chain/images/execution/run_tests_runner.py :18
import subprocess - shell dengyier-OpenWorkProof-04e62d5/supply-chain/images/prepare_context.py :13
import subprocess - shell (weak) dengyier-OpenWorkProof-04e62d5/tests/test_binding_demo_v04.py :119
import subprocess - shell (weak) dengyier-OpenWorkProof-04e62d5/tests/test_candidate_supplychain_integration.py :18
import subprocess - shell (weak) dengyier-OpenWorkProof-04e62d5/tests/test_delivery_m1.py :14
import subprocess - shell (weak) dengyier-OpenWorkProof-04e62d5/tests/test_delivery_m2.py :25
import subprocess - shell (weak) dengyier-OpenWorkProof-04e62d5/tests/test_delivery_m3_dify.py :42
import subprocess - shell (weak) dengyier-OpenWorkProof-04e62d5/tests/test_export_evidence_bundles.py :950
import subprocess - shell (weak) dengyier-OpenWorkProof-04e62d5/tests/test_image_supply_chain.py :11
import subprocess - shell (weak) dengyier-OpenWorkProof-04e62d5/tests/test_mcp_server.py :14
import subprocess - shell (weak) dengyier-OpenWorkProof-04e62d5/tests/test_prepare_image_context.py :10
import subprocess - shell (weak) dengyier-OpenWorkProof-04e62d5/tests/test_replay.py :11
import subprocess - shell (weak) dengyier-OpenWorkProof-04e62d5/tests/test_run_tests_runner.py :17
import subprocess - shell (weak) dengyier-OpenWorkProof-04e62d5/tests/test_sandbox.py :17
import subprocess - shell (weak) dengyier-OpenWorkProof-04e62d5/tests/test_schema_registry.py :12
import subprocess - shell (weak) dengyier-OpenWorkProof-04e62d5/tests/test_scope_building_v03.py :4
import subprocess - shell (weak) dengyier-OpenWorkProof-04e62d5/tests/test_scope_demo_v03.py :7
import subprocess - shell (weak) dengyier-OpenWorkProof-04e62d5/tests/test_trusted_helper.py :15
import subprocess - shell (weak) dengyier-OpenWorkProof-04e62d5/tests/test_v02_interfaces.py :5
import subprocess - shell (weak) dengyier-OpenWorkProof-04e62d5/tests/test_verification_integrity_adapters_v05.py :6
import subprocess - shell (weak) dengyier-OpenWorkProof-04e62d5/tests/test_verification_integrity_demo_v05.py :17
import subprocess
network 10
- net dengyier-OpenWorkProof-04e62d5/src/openworkproof/agentteams_matrix_client.py :29
import urllib.error - net dengyier-OpenWorkProof-04e62d5/src/openworkproof/external_acceptor.py :26
import socket - net dengyier-OpenWorkProof-04e62d5/src/openworkproof/repo_pipeline/sources.py :23
from urllib.parse import urlparse - net dengyier-OpenWorkProof-04e62d5/src/openworkproof/team_network_client.py :39
import socket - net (weak) dengyier-OpenWorkProof-04e62d5/tests/test_agentteams_adapters.py :142
"openworkproof.agentteams_matrix_client.urllib.request.urlopen", - net (weak) dengyier-OpenWorkProof-04e62d5/tests/test_delivery_m1.py :13
import socket - net (weak) dengyier-OpenWorkProof-04e62d5/tests/test_delivery_m2.py :24
import socket - net (weak) dengyier-OpenWorkProof-04e62d5/tests/test_delivery_m3_dify.py :41
import socket - net (weak) dengyier-OpenWorkProof-04e62d5/tests/test_team_network_client.py :6
import socket - net (weak) dengyier-OpenWorkProof-04e62d5/tests/test_trusted_helper.py :13
import socket
secrets 2
- secrets dengyier-OpenWorkProof-04e62d5/src/openworkproof/team_network_client.py :130
token=os.environ.get("OWP_TEAM_TOKEN", ""), - secrets (weak) dengyier-OpenWorkProof-04e62d5/tests/test_sandbox.py :1183
"os.environ.get('OPENWORKPROOF_HOST_SECRET', 'missing'))"
database 26
- db dengyier-OpenWorkProof-04e62d5/src/openworkproof/acceptance.py :17
import sqlite3 - db dengyier-OpenWorkProof-04e62d5/src/openworkproof/binding_transactions.py :5
import sqlite3 - db dengyier-OpenWorkProof-04e62d5/src/openworkproof/evidence.py :15
import sqlite3 - db dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_server.py :18
import sqlite3 - db dengyier-OpenWorkProof-04e62d5/src/openworkproof/settlement.py :8
import sqlite3 - db dengyier-OpenWorkProof-04e62d5/src/openworkproof/verification.py :8
import sqlite3 - db (weak) dengyier-OpenWorkProof-04e62d5/tests/test_acceptance.py :446
import sqlite3 # noqa: PLC0415 - db (weak) dengyier-OpenWorkProof-04e62d5/tests/test_acceptance_v03.py :3
import sqlite3 - db (weak) dengyier-OpenWorkProof-04e62d5/tests/test_acceptor_rejection.py :433
import sqlite3 as _sql # noqa: PLC0415 - db (weak) dengyier-OpenWorkProof-04e62d5/tests/test_binding_gateway_v04.py :9
import sqlite3 - db (weak) dengyier-OpenWorkProof-04e62d5/tests/test_binding_manifest_transactions_v04.py :6
import sqlite3 - db (weak) dengyier-OpenWorkProof-04e62d5/tests/test_delivery_m2.py :820
import sqlite3 as _sql - db (weak) dengyier-OpenWorkProof-04e62d5/tests/test_delivery_m3_dify.py :840
import sqlite3 as _sql - db (weak) dengyier-OpenWorkProof-04e62d5/tests/test_export_evidence_bundles.py :22
import sqlite3 - db (weak) dengyier-OpenWorkProof-04e62d5/tests/test_independent_recomposition.py :184
import sqlite3 as _sql - db (weak) dengyier-OpenWorkProof-04e62d5/tests/test_judgment_transactions_v04.py :4
import sqlite3 - db (weak) dengyier-OpenWorkProof-04e62d5/tests/test_mcp_server.py :13
import sqlite3 - db (weak) dengyier-OpenWorkProof-04e62d5/tests/test_receipt_chain.py :15
import sqlite3 - db (weak) dengyier-OpenWorkProof-04e62d5/tests/test_repo_read_transaction.py :188
import sqlite3 as _sql - db (weak) dengyier-OpenWorkProof-04e62d5/tests/test_scope_adversarial_v03.py :4
import sqlite3 - db (weak) dengyier-OpenWorkProof-04e62d5/tests/test_scope_transactions_v03.py :5
import sqlite3 - db (weak) dengyier-OpenWorkProof-04e62d5/tests/test_settlement_readiness.py :4
import sqlite3 - db (weak) dengyier-OpenWorkProof-04e62d5/tests/test_verification_integrity_adversarial_v05.py :5
import sqlite3 - db (weak) dengyier-OpenWorkProof-04e62d5/tests/test_verification_integrity_transactions_v05.py :5
import sqlite3 - db (weak) dengyier-OpenWorkProof-04e62d5/tests/test_verification_transactions_v02.py :5
import sqlite3 - db (weak) dengyier-OpenWorkProof-04e62d5/tests/test_verification_transactions_v03.py :6
import sqlite3
tool registrations 27
- owp_generate_keypair dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :177
- owp_compute_key_id dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :209
- owp_sign_payload dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :223
- owp_verify_signature dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :266
- owp_compute_digest dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :307
- owp_verify_work_order dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :348
- owp_verify_nested_claim dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :377
- owp_list_domains dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :430
- owp_validate_profile dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :444
- owp_integrity_observation_validate dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :454
- owp_control_observation_validate dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :470
- owp_scope_validate dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :486
- owp_scope_compare dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :501
- owp_status dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :524
- owp_run_tests dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :538
- owp_repo_read dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :550
- owp_run_verification dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :561
- owp_get_decision dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :590
- owp_build_delivery_package dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :604
- owp_get_settlement_readiness dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :623
- owp_get_schema dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :649
- owp_get_schema_digest dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :666
- owp_analyze_repo dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :691
- owp_validate_judgment_commitment dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :747
- owp_validate_action_binding_manifest dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :766
- owp_get_binding_status dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :781
- owp_explain_binding_decision dengyier-OpenWorkProof-04e62d5/src/openworkproof/mcp_transport.py :790
declared dependencies 10
- mcp@>=1.0
- cryptography@>=43.0
- jsonschema@>=4.20
- pydantic@>=2.5
- rfc8785@>=0.1.2
- rich@>=13.0
- typer@>=0.12
- pip-tools@>=7.4
- pytest@>=8.0
- setuptools@>=68.0