mirror of
https://github.com/rookiestar28/ComfyUI-OpenClaw.git
synced 2026-08-14 00:48:07 +00:00
545 lines
19 KiB
JSON
545 lines
19 KiB
JSON
{
|
|
"schema_version": 1,
|
|
"review": {
|
|
"owner": "architecture-maintainers",
|
|
"reviewed_at": "2026-07-31",
|
|
"next_review_by": "2026-10-31",
|
|
"static_analysis_policy_schema": 1
|
|
},
|
|
"tracked_roots": [
|
|
"__init__.py",
|
|
"config.py",
|
|
"api",
|
|
"connector",
|
|
"models",
|
|
"nodes",
|
|
"services",
|
|
"scripts"
|
|
],
|
|
"domains": {
|
|
"api": [
|
|
"api/__init__.py",
|
|
"api/approvals.py",
|
|
"api/assist.py",
|
|
"api/bridge.py",
|
|
"api/capabilities.py",
|
|
"api/checkpoints_handler.py",
|
|
"api/config.py",
|
|
"api/config_llm_handlers.py",
|
|
"api/config_model_handlers.py",
|
|
"api/config_projection_handlers.py",
|
|
"api/connector_contracts.py",
|
|
"api/errors.py",
|
|
"api/events.py",
|
|
"api/model_manager.py",
|
|
"api/packs.py",
|
|
"api/pnginfo.py",
|
|
"api/preflight_handler.py",
|
|
"api/presets.py",
|
|
"api/remote_admin.py",
|
|
"api/rewrite_recipes.py",
|
|
"api/route_handlers.py",
|
|
"api/route_orchestration.py",
|
|
"api/route_registrars.py",
|
|
"api/routes.py",
|
|
"api/schedules.py",
|
|
"api/secrets.py",
|
|
"api/security_doctor.py",
|
|
"api/templates.py",
|
|
"api/tools.py",
|
|
"api/triggers.py",
|
|
"api/webhook.py",
|
|
"api/webhook_submit.py",
|
|
"api/webhook_validate.py"
|
|
],
|
|
"connector": [
|
|
"connector/__init__.py",
|
|
"connector/__main__.py",
|
|
"connector/channels/__init__.py",
|
|
"connector/channels/kakaotalk.py",
|
|
"connector/command_firewall.py",
|
|
"connector/config.py",
|
|
"connector/contract.py",
|
|
"connector/jobs_summary.py",
|
|
"connector/llm_client.py",
|
|
"connector/media_response.py",
|
|
"connector/media_store.py",
|
|
"connector/openclaw_client.py",
|
|
"connector/platforms/__init__.py",
|
|
"connector/platforms/discord_gateway.py",
|
|
"connector/platforms/feishu_delivery_handlers.py",
|
|
"connector/platforms/feishu_ingress_handlers.py",
|
|
"connector/platforms/feishu_installation_handlers.py",
|
|
"connector/platforms/feishu_installation_manager.py",
|
|
"connector/platforms/feishu_long_connection.py",
|
|
"connector/platforms/feishu_webhook.py",
|
|
"connector/platforms/kakao_webhook.py",
|
|
"connector/platforms/line_webhook.py",
|
|
"connector/platforms/slack_delivery_handlers.py",
|
|
"connector/platforms/slack_ingress_handlers.py",
|
|
"connector/platforms/slack_installation_handlers.py",
|
|
"connector/platforms/slack_installation_manager.py",
|
|
"connector/platforms/slack_socket_mode.py",
|
|
"connector/platforms/slack_webhook.py",
|
|
"connector/platforms/telegram_polling.py",
|
|
"connector/platforms/wechat_webhook.py",
|
|
"connector/platforms/whatsapp_webhook.py",
|
|
"connector/prompts.py",
|
|
"connector/rate_limiter.py",
|
|
"connector/reply_visibility.py",
|
|
"connector/results_poller.py",
|
|
"connector/router.py",
|
|
"connector/router_admin_handlers.py",
|
|
"connector/router_chat_handlers.py",
|
|
"connector/router_dispatch.py",
|
|
"connector/router_execution_handlers.py",
|
|
"connector/security_profile.py",
|
|
"connector/semantic_guard.py",
|
|
"connector/state.py",
|
|
"connector/transport_contract.py"
|
|
],
|
|
"models": [
|
|
"models/__init__.py",
|
|
"models/schemas.py"
|
|
],
|
|
"nodes": [
|
|
"nodes/__init__.py",
|
|
"nodes/batch_variants.py",
|
|
"nodes/image_to_prompt.py",
|
|
"nodes/portability_contract.py",
|
|
"nodes/prompt_planner.py",
|
|
"nodes/prompt_refiner.py"
|
|
],
|
|
"root": [
|
|
"__init__.py",
|
|
"config.py"
|
|
],
|
|
"scripts": [
|
|
"scripts/check_deployment_profile.py",
|
|
"scripts/check_openapi_sync.py",
|
|
"scripts/check_supply_chain_hardening.py",
|
|
"scripts/compatibility_matrix_refresh.py",
|
|
"scripts/contract_digest.py",
|
|
"scripts/devtools/debug_s35_import.py",
|
|
"scripts/devtools/verify_s30_doctor.py",
|
|
"scripts/generate_openapi_spec.py",
|
|
"scripts/generate_provenance.py",
|
|
"scripts/lint_implementation_record.py",
|
|
"scripts/openclaw_smoke_import.py",
|
|
"scripts/operator_doctor.py",
|
|
"scripts/precommit_black_single.py",
|
|
"scripts/precommit_block_sensitive_files.py",
|
|
"scripts/preflight_check.py",
|
|
"scripts/quality_governance_common.py",
|
|
"scripts/regenerate_openapi_if_needed.py",
|
|
"scripts/registry_publish_guard.py",
|
|
"scripts/report_coverage_governance.py",
|
|
"scripts/run_adversarial_gate.py",
|
|
"scripts/run_backend_coverage.py",
|
|
"scripts/run_crypto_lifecycle_drills.py",
|
|
"scripts/run_mutation_test.py",
|
|
"scripts/run_unittests.py",
|
|
"scripts/start_sidecar.py",
|
|
"scripts/verify_api_config_contract.py",
|
|
"scripts/verify_api_route_contract.py",
|
|
"scripts/verify_audit_chain.py",
|
|
"scripts/verify_connector_router_contract.py",
|
|
"scripts/verify_exception_boundary_policy.py",
|
|
"scripts/verify_platform_adapter_contract.py",
|
|
"scripts/verify_production_dependencies.py",
|
|
"scripts/verify_provenance.py",
|
|
"scripts/verify_quality_governance.py",
|
|
"scripts/verify_static_analysis_policy.py",
|
|
"scripts/verify_test_debt_governance.py"
|
|
],
|
|
"services": [
|
|
"services/__init__.py",
|
|
"services/access_control.py",
|
|
"services/aiohttp_compat.py",
|
|
"services/approvals/__init__.py",
|
|
"services/approvals/models.py",
|
|
"services/approvals/service.py",
|
|
"services/approvals/storage.py",
|
|
"services/async_utils.py",
|
|
"services/audit.py",
|
|
"services/audit_events.py",
|
|
"services/audit_pipeline.py",
|
|
"services/automation_composer.py",
|
|
"services/bridge_handshake.py",
|
|
"services/bridge_token_lifecycle.py",
|
|
"services/cache/__init__.py",
|
|
"services/cache/ttl_cache.py",
|
|
"services/callback_delivery.py",
|
|
"services/capabilities.py",
|
|
"services/chatops/__init__.py",
|
|
"services/chatops/network_errors.py",
|
|
"services/chatops/retry.py",
|
|
"services/chatops/session_scope.py",
|
|
"services/chatops/targets.py",
|
|
"services/chatops/transport_contract.py",
|
|
"services/chatops/webhook_adapter.py",
|
|
"services/checkpoints.py",
|
|
"services/comfyui_history.py",
|
|
"services/compatibility_matrix_governance.py",
|
|
"services/config_layers.py",
|
|
"services/connector_allowlist_posture.py",
|
|
"services/connector_callback_contract.py",
|
|
"services/connector_extraction_contract.py",
|
|
"services/connector_installation_registry.py",
|
|
"services/connector_replay_lifecycle.py",
|
|
"services/constrained_transforms.py",
|
|
"services/control_plane.py",
|
|
"services/control_plane_adapter.py",
|
|
"services/crypto_lifecycle_drills.py",
|
|
"services/csrf_protection.py",
|
|
"services/delivery/__init__.py",
|
|
"services/delivery/http_callback.py",
|
|
"services/delivery/router.py",
|
|
"services/deployment_profile.py",
|
|
"services/diagnostics_flags.py",
|
|
"services/effective_config.py",
|
|
"services/effective_security_posture.py",
|
|
"services/endpoint_manifest.py",
|
|
"services/execution_budgets.py",
|
|
"services/failover.py",
|
|
"services/idempotency_store.py",
|
|
"services/image_utils.py",
|
|
"services/import_fallback.py",
|
|
"services/integrity.py",
|
|
"services/internal_content.py",
|
|
"services/job_events.py",
|
|
"services/jobs_read_model.py",
|
|
"services/jobs_security.py",
|
|
"services/legacy_compat.py",
|
|
"services/llm_client.py",
|
|
"services/llm_model_list.py",
|
|
"services/llm_output.py",
|
|
"services/log_tail.py",
|
|
"services/management_query.py",
|
|
"services/metrics.py",
|
|
"services/model_manager.py",
|
|
"services/model_manager_catalog.py",
|
|
"services/model_manager_tasks.py",
|
|
"services/model_manager_transfer.py",
|
|
"services/modules.py",
|
|
"services/observability/backpressure.py",
|
|
"services/openapi_generation.py",
|
|
"services/operator_doctor.py",
|
|
"services/operator_guidance.py",
|
|
"services/package_hygiene.py",
|
|
"services/packs/pack_archive.py",
|
|
"services/packs/pack_manifest.py",
|
|
"services/packs/pack_registry.py",
|
|
"services/packs/pack_types.py",
|
|
"services/parameter_lab.py",
|
|
"services/paths.py",
|
|
"services/permission_posture.py",
|
|
"services/planner.py",
|
|
"services/planner_registry.py",
|
|
"services/plugins/__init__.py",
|
|
"services/plugins/async_bridge.py",
|
|
"services/plugins/builtin/__init__.py",
|
|
"services/plugins/builtin/audit_log.py",
|
|
"services/plugins/builtin/model_alias.py",
|
|
"services/plugins/builtin/params_clamp.py",
|
|
"services/plugins/contract.py",
|
|
"services/plugins/manager.py",
|
|
"services/pnginfo.py",
|
|
"services/policy_posture.py",
|
|
"services/preflight.py",
|
|
"services/presets/__init__.py",
|
|
"services/presets/models.py",
|
|
"services/presets/storage.py",
|
|
"services/product_boundary.py",
|
|
"services/provider_errors.py",
|
|
"services/providers/__init__.py",
|
|
"services/providers/anthropic.py",
|
|
"services/providers/catalog.py",
|
|
"services/providers/keys.py",
|
|
"services/providers/openai_compat.py",
|
|
"services/queue_submit.py",
|
|
"services/rate_limit.py",
|
|
"services/reasoning_redaction.py",
|
|
"services/redaction.py",
|
|
"services/refiner.py",
|
|
"services/registry.py",
|
|
"services/registry_quarantine.py",
|
|
"services/request_contracts.py",
|
|
"services/request_ip.py",
|
|
"services/retry_after.py",
|
|
"services/retry_partition.py",
|
|
"services/rewrite_recipes.py",
|
|
"services/route_bootstrap.py",
|
|
"services/route_bootstrap_contract.py",
|
|
"services/runtime_config.py",
|
|
"services/runtime_config_policy.py",
|
|
"services/runtime_config_projection.py",
|
|
"services/runtime_config_store.py",
|
|
"services/runtime_dependency_hygiene.py",
|
|
"services/runtime_guardrails.py",
|
|
"services/runtime_lifecycle.py",
|
|
"services/runtime_profile.py",
|
|
"services/safe_io.py",
|
|
"services/scheduler/__init__.py",
|
|
"services/scheduler/delivery_contract.py",
|
|
"services/scheduler/history.py",
|
|
"services/scheduler/models.py",
|
|
"services/scheduler/runner.py",
|
|
"services/scheduler/storage.py",
|
|
"services/schema_sanitizer.py",
|
|
"services/secret_providers.py",
|
|
"services/secret_store.py",
|
|
"services/secrets_encryption.py",
|
|
"services/security_advisories.py",
|
|
"services/security_doctor.py",
|
|
"services/security_doctor_checks.py",
|
|
"services/security_doctor_connector_checks.py",
|
|
"services/security_doctor_endpoint_checks.py",
|
|
"services/security_doctor_remediation.py",
|
|
"services/security_doctor_report.py",
|
|
"services/security_doctor_runner.py",
|
|
"services/security_doctor_runtime_checks.py",
|
|
"services/security_gate.py",
|
|
"services/security_invariants.py",
|
|
"services/security_telemetry.py",
|
|
"services/settings_schema.py",
|
|
"services/sidecar/__init__.py",
|
|
"services/sidecar/auth.py",
|
|
"services/sidecar/bridge_client.py",
|
|
"services/sidecar/bridge_contract.py",
|
|
"services/sidecar/runtime.py",
|
|
"services/sidecar_secret_refs.py",
|
|
"services/startup_lifecycle.py",
|
|
"services/startup_profile_gate.py",
|
|
"services/state_dir.py",
|
|
"services/structured_logging.py",
|
|
"services/surface_guard.py",
|
|
"services/templates.py",
|
|
"services/tenant_context.py",
|
|
"services/threat_intel_gate.py",
|
|
"services/threat_intel_provider.py",
|
|
"services/tool_calling.py",
|
|
"services/tool_runner.py",
|
|
"services/trace.py",
|
|
"services/trace_store.py",
|
|
"services/transform_common.py",
|
|
"services/transform_runner.py",
|
|
"services/transform_worker.py",
|
|
"services/webhook_auth.py",
|
|
"services/webhook_mapping.py",
|
|
"services/workflow_portability.py"
|
|
]
|
|
},
|
|
"allowed_dependencies": {
|
|
"api": [
|
|
"api",
|
|
"models",
|
|
"root",
|
|
"services"
|
|
],
|
|
"connector": [
|
|
"connector",
|
|
"services"
|
|
],
|
|
"models": [
|
|
"models"
|
|
],
|
|
"nodes": [
|
|
"models",
|
|
"nodes",
|
|
"services"
|
|
],
|
|
"root": [
|
|
"nodes",
|
|
"root",
|
|
"services"
|
|
],
|
|
"scripts": [
|
|
"api",
|
|
"connector",
|
|
"models",
|
|
"nodes",
|
|
"root",
|
|
"scripts",
|
|
"services"
|
|
],
|
|
"services": [
|
|
"models",
|
|
"root",
|
|
"services"
|
|
]
|
|
},
|
|
"compatibility_exceptions": [
|
|
{
|
|
"importer": "models.schemas",
|
|
"imported": "services.request_contracts",
|
|
"owner": "architecture-maintainers",
|
|
"rationale": "Existing boundary retained for compatibility while domain ownership is reduced.",
|
|
"review_condition": "Remove when the importer no longer requires the higher-level domain."
|
|
},
|
|
{
|
|
"importer": "services.connector_callback_contract",
|
|
"imported": "connector.config",
|
|
"owner": "architecture-maintainers",
|
|
"rationale": "Existing boundary retained for compatibility while domain ownership is reduced.",
|
|
"review_condition": "Remove when the importer no longer requires the higher-level domain."
|
|
},
|
|
{
|
|
"importer": "services.connector_callback_contract",
|
|
"imported": "connector.security_profile",
|
|
"owner": "architecture-maintainers",
|
|
"rationale": "Existing boundary retained for compatibility while domain ownership is reduced.",
|
|
"review_condition": "Remove when the importer no longer requires the higher-level domain."
|
|
},
|
|
{
|
|
"importer": "services.connector_callback_contract",
|
|
"imported": "connector.transport_contract",
|
|
"owner": "architecture-maintainers",
|
|
"rationale": "Existing boundary retained for compatibility while domain ownership is reduced.",
|
|
"review_condition": "Remove when the importer no longer requires the higher-level domain."
|
|
},
|
|
{
|
|
"importer": "services.preflight",
|
|
"imported": "nodes",
|
|
"owner": "architecture-maintainers",
|
|
"rationale": "Existing boundary retained for compatibility while domain ownership is reduced.",
|
|
"review_condition": "Remove when the importer no longer requires the higher-level domain."
|
|
},
|
|
{
|
|
"importer": "services.queue_submit",
|
|
"imported": "api.errors",
|
|
"owner": "architecture-maintainers",
|
|
"rationale": "Existing boundary retained for compatibility while domain ownership is reduced.",
|
|
"review_condition": "Remove when the importer no longer requires the higher-level domain."
|
|
},
|
|
{
|
|
"importer": "services.sidecar.runtime",
|
|
"imported": "connector.config",
|
|
"owner": "architecture-maintainers",
|
|
"rationale": "Existing boundary retained for compatibility while domain ownership is reduced.",
|
|
"review_condition": "Remove when the importer no longer requires the higher-level domain."
|
|
},
|
|
{
|
|
"importer": "services.sidecar.runtime",
|
|
"imported": "connector.openclaw_client",
|
|
"owner": "architecture-maintainers",
|
|
"rationale": "Existing boundary retained for compatibility while domain ownership is reduced.",
|
|
"review_condition": "Remove when the importer no longer requires the higher-level domain."
|
|
},
|
|
{
|
|
"importer": "services.workflow_portability",
|
|
"imported": "nodes.portability_contract",
|
|
"owner": "architecture-maintainers",
|
|
"rationale": "Existing boundary retained for compatibility while domain ownership is reduced.",
|
|
"review_condition": "Remove when the importer no longer requires the higher-level domain."
|
|
}
|
|
],
|
|
"accepted_cycles": [
|
|
{
|
|
"modules": [
|
|
"config",
|
|
"services.effective_config",
|
|
"services.runtime_config",
|
|
"services.runtime_config_policy",
|
|
"services.safe_io"
|
|
],
|
|
"owner": "architecture-maintainers",
|
|
"rationale": "Existing runtime configuration and safe-I/O bootstrap cycle.",
|
|
"review_condition": "Remove when the cycle is decomposed into one-way contracts."
|
|
},
|
|
{
|
|
"modules": [
|
|
"services.access_control",
|
|
"services.audit_events",
|
|
"services.reasoning_redaction",
|
|
"services.security_telemetry"
|
|
],
|
|
"owner": "architecture-maintainers",
|
|
"rationale": "Existing security telemetry, audit, access, and redaction cycle.",
|
|
"review_condition": "Remove when the cycle is decomposed into one-way contracts."
|
|
}
|
|
],
|
|
"dynamic_imports": [
|
|
{
|
|
"path": "api/routes.py",
|
|
"scope": "check_dependency",
|
|
"callee": "__import__",
|
|
"target_kind": "expression",
|
|
"target": "module_name",
|
|
"owner": "architecture-maintainers",
|
|
"rationale": "Optional dependency availability probe.",
|
|
"review_condition": "Remove or update when the dynamic loading boundary changes."
|
|
},
|
|
{
|
|
"path": "scripts/openclaw_smoke_import.py",
|
|
"scope": "main",
|
|
"callee": "__import__",
|
|
"target_kind": "expression",
|
|
"target": "candidate",
|
|
"owner": "architecture-maintainers",
|
|
"rationale": "Package/top-level smoke import candidate.",
|
|
"review_condition": "Remove or update when the dynamic loading boundary changes."
|
|
},
|
|
{
|
|
"path": "scripts/openclaw_smoke_import.py",
|
|
"scope": "test_import",
|
|
"callee": "__import__",
|
|
"target_kind": "expression",
|
|
"target": "module_name",
|
|
"owner": "architecture-maintainers",
|
|
"rationale": "Smoke-test module import boundary.",
|
|
"review_condition": "Remove or update when the dynamic loading boundary changes."
|
|
},
|
|
{
|
|
"path": "services/import_fallback.py",
|
|
"scope": "import_module_dual",
|
|
"callee": "importlib.import_module",
|
|
"target_kind": "expression",
|
|
"target": "absolute_module",
|
|
"owner": "architecture-maintainers",
|
|
"rationale": "Top-level fallback half of dual import compatibility.",
|
|
"review_condition": "Remove or update when the dynamic loading boundary changes."
|
|
},
|
|
{
|
|
"path": "services/import_fallback.py",
|
|
"scope": "import_module_dual",
|
|
"callee": "importlib.import_module",
|
|
"target_kind": "expression",
|
|
"target": "relative_module",
|
|
"owner": "architecture-maintainers",
|
|
"rationale": "Package-relative half of dual import compatibility.",
|
|
"review_condition": "Remove or update when the dynamic loading boundary changes."
|
|
},
|
|
{
|
|
"path": "services/jobs_read_model.py",
|
|
"scope": "_resolve_get_all_jobs",
|
|
"callee": "importlib.import_module",
|
|
"target_kind": "literal",
|
|
"target": "comfy_execution.jobs",
|
|
"owner": "architecture-maintainers",
|
|
"rationale": "Optional ComfyUI jobs host capability.",
|
|
"review_condition": "Remove or update when the dynamic loading boundary changes."
|
|
},
|
|
{
|
|
"path": "services/operator_doctor.py",
|
|
"scope": "check_core_imports",
|
|
"callee": "importlib.import_module",
|
|
"target_kind": "expression",
|
|
"target": "mod_name",
|
|
"owner": "architecture-maintainers",
|
|
"rationale": "Operator-doctor import health probe.",
|
|
"review_condition": "Remove or update when the dynamic loading boundary changes."
|
|
},
|
|
{
|
|
"path": "services/operator_doctor.py",
|
|
"scope": "check_pre_commit",
|
|
"callee": "importlib.import_module",
|
|
"target_kind": "literal",
|
|
"target": "pre_commit",
|
|
"owner": "architecture-maintainers",
|
|
"rationale": "Optional quality-tool availability probe.",
|
|
"review_condition": "Remove or update when the dynamic loading boundary changes."
|
|
}
|
|
]
|
|
}
|