asecli 0.8.5__tar.gz → 0.8.6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {asecli-0.8.5 → asecli-0.8.6}/PKG-INFO +27 -10
- {asecli-0.8.5 → asecli-0.8.6}/README.md +26 -9
- {asecli-0.8.5 → asecli-0.8.6}/docs/00-governance/timeline.md +2 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/00-governance/traceability.csv +1 -1
- {asecli-0.8.5 → asecli-0.8.6}/docs/04-delivery/project-plan-task-charter.md +2 -1
- {asecli-0.8.5 → asecli-0.8.6}/pyproject.toml +1 -1
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/__init__.py +1 -1
- asecli-0.8.6/tests/test_smoke.py +4 -0
- {asecli-0.8.5 → asecli-0.8.6}/uv.lock +1 -1
- asecli-0.8.5/tests/test_smoke.py +0 -4
- {asecli-0.8.5 → asecli-0.8.6}/.github/workflows/ci.yml +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/.github/workflows/publish.yml +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/.gitignore +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/.project-architect.json +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/AGENTS.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/LICENSE +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/SECURITY.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/00-governance/audit-supplement.json +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/00-governance/change-register.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/00-governance/delivery-protocol.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/00-governance/project-charter.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/00-governance/supply-chain-policy.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/01-architecture/assumption-experiments.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/01-architecture/module-map.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/01-architecture/project-architecture-and-requirements.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/01-architecture/technical-route.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/03-quality/bug-register.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/03-quality/regression-catalog.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/03-quality/test-strategy.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/04-delivery/roadmap.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-01-014104-audit-report.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-01-014104-optimization-plan.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-01-145343-audit-report.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-01-145343-optimization-plan.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-01-193521-audit-report.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-01-193521-optimization-plan.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-01-203438-audit-report.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-01-203438-optimization-plan.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-02-121155-audit-report.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-02-121155-optimization-plan.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-02-175509-audit-report.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-02-175509-optimization-plan.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-04-122304-audit-report.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-04-122304-optimization-plan.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-05-142617-audit-report.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-05-142617-optimization-plan.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-05-160945-audit-report.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-05-160945-optimization-plan.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-05-213523-audit-report.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-05-213523-optimization-plan.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-10-193631-audit-report.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-10-193631-optimization-plan.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-14-123640-audit-report.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-14-123640-optimization-plan.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-14-124947-audit-report.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-14-124947-optimization-plan.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-14-132814-audit-report.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-14-132814-optimization-plan.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/first-principles/2026-08-31-231401-optimization-plan.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/first-principles/2026-09-01-190656-optimization-plan.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/docs/proposals/2026-09-07-shadergraph-to-ase-requirements.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/scripts/install.ps1 +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/scripts/install.sh +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/skills/asecli/SKILL.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/skills/asecli/references/conversion-publication-receipt.v1.schema.json +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/skills/asecli/references/conversion-workflow.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/skills/asecli/references/layout-standard.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/skills/asecli/references/master-output-settings-standard.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/skills/asecli/references/material-property-standard.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/__init__.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/_editor_port_contract.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/_editor_primitives.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/_editor_spec_grammar.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/_editor_spec_io.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/_editor_spec_validation.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/_gui_handoff_store.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/_gui_project.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/_gui_resource_store.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/_gui_resource_upgrade.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/editor_create.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/editor_spec.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/graph_geometry.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/graph_geometry_parser.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/graph_inspect.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/gui_handoff.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/gui_presentation.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/gui_provider_detection.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/gui_runtime_probe.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/gui_support.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/gui_support_resource.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/mcp_client.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/recompile.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/render_settings.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/resource_text.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/resources/asecli_material_gui.authoring.part00.cs.txt +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/resources/asecli_material_gui.authoring.part01.cs.txt +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/resources/asecli_material_gui.authoring.store.cs.txt +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/resources/asecli_material_gui.condition.cs.txt +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/resources/asecli_material_gui.hydration.cs.txt +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/resources/asecli_material_gui.part00.cs.txt +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/resources/asecli_material_gui.part01.cs.txt +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/resources/asecli_material_gui.reconciliation.cs.txt +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/resources/asecli_material_gui.transaction.cs.txt +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/resources/editor_create.part00.cs.txt +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/resources/editor_create.part01.cs.txt +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/resources/editor_create.part02.cs.txt +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/resources/editor_create.part03.cs.txt +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/resources/editor_create.part04.cs.txt +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/resources/wire_route.transaction.cs.txt +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/wire_route.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/checks/__init__.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/checks/checksum.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/checks/local_vars.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/checks/usage.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/checks/validate.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/cli/__init__.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/cli/commands.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/cli/commentary_command.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/cli/contract.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/cli/contract_command.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/cli/conversion_output.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/cli/create_command.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/cli/custom_gui_command.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/cli/export_sg_command.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/cli/graph_review_command.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/cli/gui_provider.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/cli/gui_support_command.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/cli/io.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/cli/layout_command.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/cli/main.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/cli/migrate_package_command.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/cli/recompile_metadata.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/cli/skill_command.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/cli/usage_command.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/contracts/editor-graph-spec.v3.schema.json +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/contracts/sgcli.native.v3.schema.json +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/contracts.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/core/__init__.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/core/comment_bounds.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/core/comment_layout.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/core/comment_metrics.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/core/comment_purpose.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/core/commentary.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/core/compiled_metadata.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/core/compiled_properties.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/core/custom_gui.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/core/custom_gui_versions.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/core/fishbone_placement.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/core/fishbone_topology.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/core/graph_ops.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/core/graph_review.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/core/island_layout.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/core/layout.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/core/layout_audit.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/core/layout_audit_geometry.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/core/layout_audit_repeated.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/core/layout_graph.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/core/local_vars.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/core/material_gui_condition.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/core/material_gui_protocol.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/core/material_gui_spec.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/core/meticulous_layout.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/core/model.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/core/property_presentation.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/core/reuse_plan.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/core/wire_geometry.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/core/wire_router.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/export_sg.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/schema/__init__.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/schema/data/observed.json +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/schema/data/schemas.json +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/schema_validation.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/sg_export/__init__.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/sg_export/alpha_modulate.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/sg_export/binding.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/sg_export/conversion_report.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/sg_export/custom_expression.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/sg_export/decoder.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/sg_export/evidence.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/sg_export/model.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/sg_export/nodes.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/sg_export/pass_blend.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/sg_export/reconciliation.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/sg_export/report_presentation.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/sg_export/report_semantics.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/sg_export/sources.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/sg_export/surface_matching.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/sg_export/surface_precision.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/src/asecli/sg_export/surface_semantics.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/TEST.md +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/__init__.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/conftest.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/editor_create_v3_fixture.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/fixtures/HLIT.shader +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/fixtures/asecli_material_gui_v0_2_0.cs.txt +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/fixtures/step-antialiasing.function.txt +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_adversarial_hardening.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_audit_fixes.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_bridge_contract.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_bridge_recompile.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_build_reproducibility.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_cli_contract.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_commentary.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_contract_schema.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_conversion_report_semantics.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_core_contract.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_create.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_create_constant_presentation.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_cross_cli_workflow.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_custom_gui.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_custom_gui_cli.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_editor_create_bridge.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_editor_create_cli.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_editor_create_e2e.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_editor_create_spec.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_editor_create_spec_v3.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_editor_render_settings.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_export_fidelity.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_export_precision_diagnostics.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_export_property_visibility.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_export_sg.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_governance.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_graph_review.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_graph_safety.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_gui_handoff.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_gui_native_extension.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_gui_support.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_gui_support_cli_contract.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_gui_upgrade.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_install_scripts.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_island_layout.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_layout.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_layout_governance.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_layout_local_var_policy.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_material_gui_e2e.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_mcp_security.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_migrate_package.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_mutate.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_pass_blend.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_perf.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_property_presentation.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_roundtrip.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_schema_add.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_schema_samples.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_sg_export_sources.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_skill_install.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_supply_chain.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_surface_semantics.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_surface_semantics_integration.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_usage_audit.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tests/test_wire_route_bridge.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tools/build_schema.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tools/check_ci_governance.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tools/check_document_governance.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tools/check_packed_executor_loc.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tools/check_regression_catalog.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tools/check_release_candidate.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tools/compare_build_artifacts.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tools/generate_sbom.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tools/independent_wheel_smoke.py +0 -0
- {asecli-0.8.5 → asecli-0.8.6}/tools/supply_chain_check.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: asecli
|
|
3
|
-
Version: 0.8.
|
|
3
|
+
Version: 0.8.6
|
|
4
4
|
Summary: Agent-native CLI for reading, modifying, validating and compiling Amplify Shader Editor assets
|
|
5
5
|
Project-URL: Homepage, https://github.com/seeseeczl/ASECLI
|
|
6
6
|
Project-URL: Repository, https://github.com/seeseeczl/ASECLI
|
|
@@ -28,9 +28,9 @@ Description-Content-Type: text/markdown
|
|
|
28
28
|
|
|
29
29
|
AseCLI 是面向 AI Agent 的本地 CLI:离线读取、编辑和校验 ASE 节点图;通过运行中的 Unity/团结引擎与 MCP,让真实 ASE 创建节点、提供精排几何并重新生成 HLSL。Skill 提供跨 Agent 的操作规则,CLI 提供可验证的执行结果。
|
|
30
30
|
|
|
31
|
-
当前正式版:**[0.8.
|
|
31
|
+
当前正式版:**[0.8.6](https://github.com/seeseeczl/ASECLI/releases/tag/v0.8.6)** · [PyPI](https://pypi.org/project/asecli/0.8.6/) · [Agent 操作手册](skills/asecli/SKILL.md) · [SG 转换后整理流程](skills/asecli/references/conversion-workflow.md)
|
|
32
32
|
|
|
33
|
-
ASECLI 接收 SGCLI 生成的裸 `EditorGraphSpec v3`,并可把受支持的 ASE Shader 直接导出为 SGCLI 的裸 `sgcli.native.v3`。两个方向都只有“生产者 spec 原文件→消费者 `--spec
|
|
33
|
+
ASECLI 接收 SGCLI 生成的裸 `EditorGraphSpec v3`,并可把受支持的 ASE Shader 直接导出为 SGCLI 的裸 `sgcli.native.v3`。两个方向都只有“生产者 spec 原文件→消费者 `--spec`”;spec 是唯一图规格;独立 report 与发布 receipt 通过各自参数提供转换认证证据,创建成功也不代表转换效果等价。
|
|
34
34
|
|
|
35
35
|
```
|
|
36
36
|
你:提需求("给这个 shader 加个可调描边")
|
|
@@ -132,7 +132,7 @@ curl -fsSL https://raw.githubusercontent.com/seeseeczl/ASECLI/main/scripts/insta
|
|
|
132
132
|
uv tool uninstall asecli
|
|
133
133
|
```
|
|
134
134
|
|
|
135
|
-
当前正式版本为 `0.8.
|
|
135
|
+
当前正式版本为 `0.8.6`(补齐 ASE→SG 三文件交接、时间后缀与验收边界说明;运行行为沿用 0.8.5),可从 [PyPI](https://pypi.org/project/asecli/0.8.6/) 或 [GitHub Release](https://github.com/seeseeczl/ASECLI/releases/tag/v0.8.6) 安装。历史版本见 [GitHub Releases](https://github.com/seeseeczl/ASECLI/releases),`v0.8.5` 保留为回滚点。
|
|
136
136
|
|
|
137
137
|
已知限制:真实 MCP 下,属性+纹理 v2 和 Reciprocal 降级 v2 的 create、manifest、validate、独立 recompile 已通过;SGCLI SphereMask v3 spec 在重载时仍可能返回 `node missing after reload: Radius` 并回滚。本次不承诺该 recipe 端到端可用,也不改变 SGCLI v2 默认值契约。
|
|
138
138
|
|
|
@@ -162,7 +162,7 @@ asecli --help
|
|
|
162
162
|
|
|
163
163
|
```bash
|
|
164
164
|
shasum -a 256 -c SHA256SUMS
|
|
165
|
-
uv tool install /path/to/asecli-0.8.
|
|
165
|
+
uv tool install /path/to/asecli-0.8.6-py3-none-any.whl
|
|
166
166
|
asecli --help
|
|
167
167
|
```
|
|
168
168
|
|
|
@@ -202,11 +202,28 @@ asecli recompile Assets/ConvertedNew.shader --mcp-url http://127.0.0.1:9080/mcp
|
|
|
202
202
|
```bash
|
|
203
203
|
asecli export-sg Assets/ConvertedNew.shader --out-dir ./out
|
|
204
204
|
sgcli sg create Assets/ConvertedNew.shadergraph \
|
|
205
|
-
--spec ./out/ConvertedNew.asecli-to-sgcli.spec.json
|
|
205
|
+
--spec ./out/ConvertedNew.asecli-to-sgcli.spec.json \
|
|
206
|
+
--conversion-report ./out/ConvertedNew.asecli-to-sgcli.report.json \
|
|
207
|
+
--publication-receipt ./out/ConvertedNew.asecli-to-sgcli.receipt.json \
|
|
208
|
+
--write
|
|
206
209
|
```
|
|
207
210
|
|
|
208
211
|
`export-sg` 自动从源 Shader 向上识别 Unity/Tuanjie 工程;跨工程资源解析时显式传 `--target-project`。它强制生成 `<stem>.asecli-to-sgcli.spec.json`、`.report.json` 与 `.receipt.json`,同名即失败;receipt 只证明 spec/report 两份文件的提交状态与 SHA,不是中间交接包。命令不调用 SGCLI,也不生成 ASE 自有中间 JSON。未知节点、Master/Pass、外部属性或纹理 Importer 语义时只写规范报告,不写半成品 spec。反方向 `.asecli-to-sgcli.spec.json` 不能交给 ASECLI `create --spec`。
|
|
209
212
|
|
|
213
|
+
需要保存在源文件同目录并添加时间后缀时:
|
|
214
|
+
|
|
215
|
+
```bash
|
|
216
|
+
asecli export-sg /path/to/Shader.shader \
|
|
217
|
+
--out-dir /path/to \
|
|
218
|
+
--output-suffix "_$(date +%Y%m%d_%H%M%S)"
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
三份文件共用同一后缀,例如 `Shader_20260914_163000.asecli-to-sgcli.spec.json`。`--name` 只修改图名称,不能用于文件命名。将实际生成的三份路径原样传给 SGCLI;不要合并、解包或改写 JSON。
|
|
222
|
+
|
|
223
|
+
导出检查算法连接或已识别的数学等价映射、变量名、属性类型、默认值、范围、资源和 Shader 设置。已匹配的 AlphaModulate 可折叠到目标管线,输出路径保持一次调制;局部精度差异在 CLI 的 `precision_warnings` 和报告的检查证据中说明,不把整个图改成 Half,也不因缺少浮点逐位证明而阻断。错误连接、混合变化及无法映射的运行时属性仍会阻断。
|
|
224
|
+
|
|
225
|
+
验收分三层:ASECLI 导出通过;SGCLI 契约/转换认证及真实创建通过;最终编译、画布与效果验收。前一层不代表后一层。最终视觉不是生成 JSON 的前置条件,未运行证据保持 `not_run`。消费者若返回 `SEM-BLEND-002` 等认证错误,应在 SGCLI 侧核对具体规则,不修改 JSON 或省略证据绕过认证。
|
|
226
|
+
|
|
210
227
|
ASECLI 随 wheel 发布自己的 EditorGraphSpec v3 Schema,以及源自 SGCLI `0.3.5` 的固定 `sgcli.native.v3` JSON 快照。快照 SHA-256 标识本包完整性与精确协议修订,不依赖对方当前分支或安装版本。构建、测试、发布与安装只使用 ASECLI,不拉取或执行 SGCLI 源码,不要求同步发布。`MultiplySourceAlpha` 等扩展仍要求实际消费者和目标 URP 支持,导出成功不代表旧消费者兼容。跨产品端到端验收是独立黑盒流程,不是本仓发布前置;本仓任务不自动跨仓修改。
|
|
211
228
|
|
|
212
229
|
可用 `asecli contract editor-graph --version 3 --spec FILE` 在不连接 Editor 时执行权威 Schema/loader 并返回原文件 SHA。报告分开记录来源快照、发布前复核、生产者 Schema 与真实消费者读取状态。旧 `{graph,report}` wrapper 只允许按已登记形状显式迁移,且内层必须已经是 `sgcli.native.v3`;无版本 discriminator 的旧输入只报告 `legacy_format`,不得伪称已识别版本化 Schema:
|
|
@@ -268,7 +285,7 @@ asecli recompile Assets/Example.shader
|
|
|
268
285
|
| `validate <file>` | 检查悬空连线、重复 ID、输入多来源、Local Var 一致性和 CHKSM。 | 只读;有 error 时返回退出码 2。 |
|
|
269
286
|
| `graph-review <file> [--baseline FILE] [--reuse-policy consumer-groups\\|fanout]` | 保守核对计算基线并列出复用计划。 | 只读;基线不一致返回 `SEMANTIC_MISMATCH` / 2,不自动创建 Local Var。 |
|
|
270
287
|
| `graph-audit <file>` | 从 Master 反向分析未参与输出的节点,区分 `unused_candidates` 与外部消费者。 | 只读;Property 的源码/HLSL/GUI 引用不会被误报为可删。 |
|
|
271
|
-
| `export-sg <file> --out-dir DIR [--target-project PROJECT]` | 直接输出裸 `sgcli.native.v3`、独立转换报告和发布回执。 | spec
|
|
288
|
+
| `export-sg <file> --out-dir DIR [--target-project PROJECT] [--output-suffix SUFFIX]` | 直接输出裸 `sgcli.native.v3`、独立转换报告和发布回执。 | spec 是唯一图规格;report/receipt 分别作为转换认证证据;receipt 证明 spec/report 提交状态;不调用 SGCLI;同名失败;转换失败只写 report。 |
|
|
272
289
|
| `contract editor-graph --version 3 [--spec FILE]` | 输出 wheel 内权威 EditorGraphSpec v3 JSON Schema;可离线校验并回执输入 SHA。 | 只读;loader 仍执行端口、中文属性和模板等更强语义校验。 |
|
|
273
290
|
| `migrate-package <file> --out-dir DIR --extract-sg-spec` | 显式提取登记的旧 `{graph,report}` wrapper。 | 只接受内层 `sgcli.native.v3`;未知/v2 wrapper 只留失败报告,不进入正常消费者。 |
|
|
274
291
|
| `set-field <file> --node N --field I --value V [--write]` | 修改一个已知节点的绝对序列化字段。 | 默认预演;`--write` 后写入。不要用它猜写 Master 或未知版本尾部。 |
|
|
@@ -340,9 +357,9 @@ asecli recompile Assets/Example.shader
|
|
|
340
357
|
除显式 `--help` 保留人类可读文本外,stdout 恒为单行严格 JSON,agent 可直接解析。`--version` 也返回 JSON:
|
|
341
358
|
|
|
342
359
|
```json
|
|
343
|
-
{"contract_version":1,"cli_version":"0.8.
|
|
344
|
-
{"contract_version":1,"cli_version":"0.8.
|
|
345
|
-
{"contract_version":1,"cli_version":"0.8.
|
|
360
|
+
{"contract_version":1,"cli_version":"0.8.6","command":"parse","ok":true,"data":{"node_count":7}}
|
|
361
|
+
{"contract_version":1,"cli_version":"0.8.6","command":"parse","ok":false,"error":{"code":"NOT_FOUND","message":"..."}}
|
|
362
|
+
{"contract_version":1,"cli_version":"0.8.6","command":"version","ok":true,"data":{"version":"0.8.6"}}
|
|
346
363
|
```
|
|
347
364
|
|
|
348
365
|
常见错误码:`PARSE_ERROR`、`NOT_FOUND`、`USAGE_ERROR`、`SCHEMA_UNAVAILABLE`、`SCHEMA_VERSION_MISMATCH`、`VALIDATION_ERROR`、`PROPERTY_PRESENTATION_ERROR`、`LAYOUT_ERROR`、`CHECKSUM_FORMAT_ERROR`、`GUI_SUPPORT_ERROR`、`CUSTOM_GUI_ERROR`、`COMMENT_GROUP_ERROR`、`GRAPH_REVIEW_ERROR`、`SEMANTIC_MISMATCH`、`SG_EXPORT_BLOCKED`、`EXTERNAL_REFERENCE`、`SKILL_INSTALL_CONFLICT`、`SKILL_INSTALL_ERROR`、`WRITE_CONFLICT`、`WRITE_PARTIAL`、`UNSAFE_PATH`、`WRITE_ERROR`、`BRIDGE_ERROR`、`INTERNAL`。
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
AseCLI 是面向 AI Agent 的本地 CLI:离线读取、编辑和校验 ASE 节点图;通过运行中的 Unity/团结引擎与 MCP,让真实 ASE 创建节点、提供精排几何并重新生成 HLSL。Skill 提供跨 Agent 的操作规则,CLI 提供可验证的执行结果。
|
|
6
6
|
|
|
7
|
-
当前正式版:**[0.8.
|
|
7
|
+
当前正式版:**[0.8.6](https://github.com/seeseeczl/ASECLI/releases/tag/v0.8.6)** · [PyPI](https://pypi.org/project/asecli/0.8.6/) · [Agent 操作手册](skills/asecli/SKILL.md) · [SG 转换后整理流程](skills/asecli/references/conversion-workflow.md)
|
|
8
8
|
|
|
9
|
-
ASECLI 接收 SGCLI 生成的裸 `EditorGraphSpec v3`,并可把受支持的 ASE Shader 直接导出为 SGCLI 的裸 `sgcli.native.v3`。两个方向都只有“生产者 spec 原文件→消费者 `--spec
|
|
9
|
+
ASECLI 接收 SGCLI 生成的裸 `EditorGraphSpec v3`,并可把受支持的 ASE Shader 直接导出为 SGCLI 的裸 `sgcli.native.v3`。两个方向都只有“生产者 spec 原文件→消费者 `--spec`”;spec 是唯一图规格;独立 report 与发布 receipt 通过各自参数提供转换认证证据,创建成功也不代表转换效果等价。
|
|
10
10
|
|
|
11
11
|
```
|
|
12
12
|
你:提需求("给这个 shader 加个可调描边")
|
|
@@ -108,7 +108,7 @@ curl -fsSL https://raw.githubusercontent.com/seeseeczl/ASECLI/main/scripts/insta
|
|
|
108
108
|
uv tool uninstall asecli
|
|
109
109
|
```
|
|
110
110
|
|
|
111
|
-
当前正式版本为 `0.8.
|
|
111
|
+
当前正式版本为 `0.8.6`(补齐 ASE→SG 三文件交接、时间后缀与验收边界说明;运行行为沿用 0.8.5),可从 [PyPI](https://pypi.org/project/asecli/0.8.6/) 或 [GitHub Release](https://github.com/seeseeczl/ASECLI/releases/tag/v0.8.6) 安装。历史版本见 [GitHub Releases](https://github.com/seeseeczl/ASECLI/releases),`v0.8.5` 保留为回滚点。
|
|
112
112
|
|
|
113
113
|
已知限制:真实 MCP 下,属性+纹理 v2 和 Reciprocal 降级 v2 的 create、manifest、validate、独立 recompile 已通过;SGCLI SphereMask v3 spec 在重载时仍可能返回 `node missing after reload: Radius` 并回滚。本次不承诺该 recipe 端到端可用,也不改变 SGCLI v2 默认值契约。
|
|
114
114
|
|
|
@@ -138,7 +138,7 @@ asecli --help
|
|
|
138
138
|
|
|
139
139
|
```bash
|
|
140
140
|
shasum -a 256 -c SHA256SUMS
|
|
141
|
-
uv tool install /path/to/asecli-0.8.
|
|
141
|
+
uv tool install /path/to/asecli-0.8.6-py3-none-any.whl
|
|
142
142
|
asecli --help
|
|
143
143
|
```
|
|
144
144
|
|
|
@@ -178,11 +178,28 @@ asecli recompile Assets/ConvertedNew.shader --mcp-url http://127.0.0.1:9080/mcp
|
|
|
178
178
|
```bash
|
|
179
179
|
asecli export-sg Assets/ConvertedNew.shader --out-dir ./out
|
|
180
180
|
sgcli sg create Assets/ConvertedNew.shadergraph \
|
|
181
|
-
--spec ./out/ConvertedNew.asecli-to-sgcli.spec.json
|
|
181
|
+
--spec ./out/ConvertedNew.asecli-to-sgcli.spec.json \
|
|
182
|
+
--conversion-report ./out/ConvertedNew.asecli-to-sgcli.report.json \
|
|
183
|
+
--publication-receipt ./out/ConvertedNew.asecli-to-sgcli.receipt.json \
|
|
184
|
+
--write
|
|
182
185
|
```
|
|
183
186
|
|
|
184
187
|
`export-sg` 自动从源 Shader 向上识别 Unity/Tuanjie 工程;跨工程资源解析时显式传 `--target-project`。它强制生成 `<stem>.asecli-to-sgcli.spec.json`、`.report.json` 与 `.receipt.json`,同名即失败;receipt 只证明 spec/report 两份文件的提交状态与 SHA,不是中间交接包。命令不调用 SGCLI,也不生成 ASE 自有中间 JSON。未知节点、Master/Pass、外部属性或纹理 Importer 语义时只写规范报告,不写半成品 spec。反方向 `.asecli-to-sgcli.spec.json` 不能交给 ASECLI `create --spec`。
|
|
185
188
|
|
|
189
|
+
需要保存在源文件同目录并添加时间后缀时:
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
asecli export-sg /path/to/Shader.shader \
|
|
193
|
+
--out-dir /path/to \
|
|
194
|
+
--output-suffix "_$(date +%Y%m%d_%H%M%S)"
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
三份文件共用同一后缀,例如 `Shader_20260914_163000.asecli-to-sgcli.spec.json`。`--name` 只修改图名称,不能用于文件命名。将实际生成的三份路径原样传给 SGCLI;不要合并、解包或改写 JSON。
|
|
198
|
+
|
|
199
|
+
导出检查算法连接或已识别的数学等价映射、变量名、属性类型、默认值、范围、资源和 Shader 设置。已匹配的 AlphaModulate 可折叠到目标管线,输出路径保持一次调制;局部精度差异在 CLI 的 `precision_warnings` 和报告的检查证据中说明,不把整个图改成 Half,也不因缺少浮点逐位证明而阻断。错误连接、混合变化及无法映射的运行时属性仍会阻断。
|
|
200
|
+
|
|
201
|
+
验收分三层:ASECLI 导出通过;SGCLI 契约/转换认证及真实创建通过;最终编译、画布与效果验收。前一层不代表后一层。最终视觉不是生成 JSON 的前置条件,未运行证据保持 `not_run`。消费者若返回 `SEM-BLEND-002` 等认证错误,应在 SGCLI 侧核对具体规则,不修改 JSON 或省略证据绕过认证。
|
|
202
|
+
|
|
186
203
|
ASECLI 随 wheel 发布自己的 EditorGraphSpec v3 Schema,以及源自 SGCLI `0.3.5` 的固定 `sgcli.native.v3` JSON 快照。快照 SHA-256 标识本包完整性与精确协议修订,不依赖对方当前分支或安装版本。构建、测试、发布与安装只使用 ASECLI,不拉取或执行 SGCLI 源码,不要求同步发布。`MultiplySourceAlpha` 等扩展仍要求实际消费者和目标 URP 支持,导出成功不代表旧消费者兼容。跨产品端到端验收是独立黑盒流程,不是本仓发布前置;本仓任务不自动跨仓修改。
|
|
187
204
|
|
|
188
205
|
可用 `asecli contract editor-graph --version 3 --spec FILE` 在不连接 Editor 时执行权威 Schema/loader 并返回原文件 SHA。报告分开记录来源快照、发布前复核、生产者 Schema 与真实消费者读取状态。旧 `{graph,report}` wrapper 只允许按已登记形状显式迁移,且内层必须已经是 `sgcli.native.v3`;无版本 discriminator 的旧输入只报告 `legacy_format`,不得伪称已识别版本化 Schema:
|
|
@@ -244,7 +261,7 @@ asecli recompile Assets/Example.shader
|
|
|
244
261
|
| `validate <file>` | 检查悬空连线、重复 ID、输入多来源、Local Var 一致性和 CHKSM。 | 只读;有 error 时返回退出码 2。 |
|
|
245
262
|
| `graph-review <file> [--baseline FILE] [--reuse-policy consumer-groups\\|fanout]` | 保守核对计算基线并列出复用计划。 | 只读;基线不一致返回 `SEMANTIC_MISMATCH` / 2,不自动创建 Local Var。 |
|
|
246
263
|
| `graph-audit <file>` | 从 Master 反向分析未参与输出的节点,区分 `unused_candidates` 与外部消费者。 | 只读;Property 的源码/HLSL/GUI 引用不会被误报为可删。 |
|
|
247
|
-
| `export-sg <file> --out-dir DIR [--target-project PROJECT]` | 直接输出裸 `sgcli.native.v3`、独立转换报告和发布回执。 | spec
|
|
264
|
+
| `export-sg <file> --out-dir DIR [--target-project PROJECT] [--output-suffix SUFFIX]` | 直接输出裸 `sgcli.native.v3`、独立转换报告和发布回执。 | spec 是唯一图规格;report/receipt 分别作为转换认证证据;receipt 证明 spec/report 提交状态;不调用 SGCLI;同名失败;转换失败只写 report。 |
|
|
248
265
|
| `contract editor-graph --version 3 [--spec FILE]` | 输出 wheel 内权威 EditorGraphSpec v3 JSON Schema;可离线校验并回执输入 SHA。 | 只读;loader 仍执行端口、中文属性和模板等更强语义校验。 |
|
|
249
266
|
| `migrate-package <file> --out-dir DIR --extract-sg-spec` | 显式提取登记的旧 `{graph,report}` wrapper。 | 只接受内层 `sgcli.native.v3`;未知/v2 wrapper 只留失败报告,不进入正常消费者。 |
|
|
250
267
|
| `set-field <file> --node N --field I --value V [--write]` | 修改一个已知节点的绝对序列化字段。 | 默认预演;`--write` 后写入。不要用它猜写 Master 或未知版本尾部。 |
|
|
@@ -316,9 +333,9 @@ asecli recompile Assets/Example.shader
|
|
|
316
333
|
除显式 `--help` 保留人类可读文本外,stdout 恒为单行严格 JSON,agent 可直接解析。`--version` 也返回 JSON:
|
|
317
334
|
|
|
318
335
|
```json
|
|
319
|
-
{"contract_version":1,"cli_version":"0.8.
|
|
320
|
-
{"contract_version":1,"cli_version":"0.8.
|
|
321
|
-
{"contract_version":1,"cli_version":"0.8.
|
|
336
|
+
{"contract_version":1,"cli_version":"0.8.6","command":"parse","ok":true,"data":{"node_count":7}}
|
|
337
|
+
{"contract_version":1,"cli_version":"0.8.6","command":"parse","ok":false,"error":{"code":"NOT_FOUND","message":"..."}}
|
|
338
|
+
{"contract_version":1,"cli_version":"0.8.6","command":"version","ok":true,"data":{"version":"0.8.6"}}
|
|
322
339
|
```
|
|
323
340
|
|
|
324
341
|
常见错误码:`PARSE_ERROR`、`NOT_FOUND`、`USAGE_ERROR`、`SCHEMA_UNAVAILABLE`、`SCHEMA_VERSION_MISMATCH`、`VALIDATION_ERROR`、`PROPERTY_PRESENTATION_ERROR`、`LAYOUT_ERROR`、`CHECKSUM_FORMAT_ERROR`、`GUI_SUPPORT_ERROR`、`CUSTOM_GUI_ERROR`、`COMMENT_GROUP_ERROR`、`GRAPH_REVIEW_ERROR`、`SEMANTIC_MISMATCH`、`SG_EXPORT_BLOCKED`、`EXTERNAL_REFERENCE`、`SKILL_INSTALL_CONFLICT`、`SKILL_INSTALL_ERROR`、`WRITE_CONFLICT`、`WRITE_PARTIAL`、`UNSAFE_PATH`、`WRITE_ERROR`、`BRIDGE_ERROR`、`INTERNAL`。
|
|
@@ -99,3 +99,5 @@
|
|
|
99
99
|
| 2026-09-14 | v0.8.1 发布候选 | matcher-v4 识别并折叠原生 `Lerp(white,color,alpha)`,保留 Wave Noise 不可表示 Alpha Blend 的失败关闭;SGCLI 普通 authoring 与转换认证分离。发布前全量 `461 passed, 3 skipped`,CI governance、供应链与 diff 通过;远端 publish/PyPI、正式资产回读和本机安装待执行,Editor/画布/render 保持开放披露。 | REL-0017 CR-0030 TASK-0066 REG-0063 |
|
|
100
100
|
| 2026-09-14 | v0.8.1 双渠道发布与本机安装完成 | tag `v0.8.1` 解引用到 `610a7a3`;[publish run 34796442345](https://github.com/seeseeczl/ASECLI/actions/runs/34796442345) 的双 Python、可复现构建、供应链、锁定 SGCLI `b4f8310` 的跨 CLI 门禁与 PyPI OIDC 全绿。[GitHub Release](https://github.com/seeseeczl/ASECLI/releases/tag/v0.8.1) wheel/sdist 与 PyPI 摘要一致,本机 CLI 为 `0.8.1`,用户级 Skill 已同步;Editor/画布/render 保持开放披露。 | REL-0017 CR-0030 TASK-0066 REG-0063 |
|
|
101
101
|
| 2026-09-14 | v0.8.5 发布准备 | 用户授权推送发布;本地 485 passed/3 skipped,实文件导出成功;算法/属性/设置门禁保留,精度边界提示;远端与双渠道校验待执行 | CR-0031 TASK-0067 REG-0064 REL-0018 |
|
|
102
|
+
| 2026-09-14 | v0.8.5 双渠道发布完成 | tag cb80828;主线 CI 34823345703 与 publish 34823348963 全成功;GitHub 五资产回读与 PyPI SHA 一致,本机 0.8.5 和 Skill 校验通过;隔离回滚通过,Editor/视觉未运行 | CR-0031 TASK-0067 REG-0064 REL-0018 |
|
|
103
|
+
| 2026-09-14 | v0.8.6 文档补丁准备 | 已按用户要求删除仓库内三份未跟踪实机副本;README 补齐三文件认证、--write、时间后缀和分层验收;运行行为不变 | CR-0031 TASK-0068 REG-0064 REL-0019 |
|
|
@@ -63,4 +63,4 @@ BUG-0023,缺陷,已修复,ADR-0020,MOD-BRIDGE,TASK-0060,REG-0059,2026-09-08 两
|
|
|
63
63
|
CR-0028,变更,已发布(视觉与自动LocalVar仍待验),ADR-0021,MOD-CORE MOD-LAYOUT MOD-CLI MOD-SKILL,TASK-0061 TASK-0062 TASK-0063,REG-0060 REG-0061,端口级基线与复用计划及岛内刚性多列布局;未自动创建LocalVar;未做实机验收,REL-0014,long,保留并行创建器改动;不修改SGCLI
|
|
64
64
|
CR-0029,变更,已发布,ADR-0001 ADR-0009,MOD-CORE MOD-LAYOUT MOD-BRIDGE MOD-CLI MOD-SKILL,TASK-0064,REG-0062,2026-09-10 v0.7.0@029fea4;run 34475832000 全成功;GitHub/PyPI 摘要一致;本机 CLI/Skill 安装幂等,REL-0015,long,严格原子 JSON;非有限数拒绝;version JSON;22 错误码;17 子命令动态覆盖
|
|
65
65
|
CR-0030,变更,已发布(视觉门禁开放),ADR-0022,MOD-CLI MOD-BRIDGE MOD-SG-EXPORT MOD-CONTRACT MOD-SKILL,TASK-0065,REG-0063,2026-09-11 v0.8.0 publish run 34592028675 全绿;GitHub/PyPI 资产、本机 CLI/Skill 和 WaveNoise 双向原文件 SHA 通过,REL-0016,long,消费者原生裸规格与方向命名;最终 wheel Editor/画布/渲染仍开放
|
|
66
|
-
CR-0031
|
|
66
|
+
CR-0031,变更,已发布,,MOD-CLI MOD-SG-EXPORT MOD-SKILL,TASK-0067,REG-0064,v0.8.5@cb80828;run 34823348963;双渠道 SHA 与安装回滚通过,REL-0018,long,数学映射与精度证据分层;视觉不作前置
|
|
@@ -121,4 +121,5 @@ kickoff_completion: complete
|
|
|
121
121
|
- [x] 64 张原子任务卡已定义;本次新增 CR/REG 双向链接完整(实机项保持待验)
|
|
122
122
|
- [x] 里程碑、验收命令、停止条件与回滚已定义
|
|
123
123
|
- [x] 门禁与审计计划已建立
|
|
124
|
-
| TASK-0067 | CR-0031 REL-0018 | 发布 ASE→SG 精度提示与保真修复 v0.8.5 | 用户明确授权推送并发布 | 导出、报告、测试、Skill 与发布元数据 | SGCLI、源 Shader、Editor 与视觉验收 | long/2026-09-14 | REG-0064;pytest、治理、双构建、远端 CI、双渠道 SHA、隔离安装回滚 | 任一发布检查失败则停止 | 本地 485 passed/3 skipped
|
|
124
|
+
| TASK-0067 | CR-0031 REL-0018 | 发布 ASE→SG 精度提示与保真修复 v0.8.5 | 用户明确授权推送并发布 | 导出、报告、测试、Skill 与发布元数据 | SGCLI、源 Shader、Editor 与视觉验收 | long/2026-09-14 | REG-0064;pytest、治理、双构建、远端 CI、双渠道 SHA、隔离安装回滚 | 任一发布检查失败则停止 | 本地 485 passed/3 skipped;正式候选 484 passed/4 skipped;run 34823348963、GitHub/PyPI SHA、本机安装与回滚通过 | released |
|
|
125
|
+
| TASK-0068 | CR-0031 REL-0019 | 清理本地实机副本并发布 README 说明补丁 0.8.6 | 用户授权丢弃三文件、更新 README、推送发布和本机安装 | 三个未跟踪文件、README 与版本发布记录 | 源 Tuanjie 资产、SGCLI 与运行逻辑 | long/2026-09-14 | REG-0064;文档 diff、发布治理、测试、双构建、双渠道 SHA 与安装回滚 | 发布检查失败则停止,保留 0.8.5 | 清理及 README 更新完成,发布验证中 | verified |
|
asecli-0.8.5/tests/test_smoke.py
DELETED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-01-014104-optimization-plan.md
RENAMED
|
File without changes
|
|
File without changes
|
{asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-01-145343-optimization-plan.md
RENAMED
|
File without changes
|
|
File without changes
|
{asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-01-193521-optimization-plan.md
RENAMED
|
File without changes
|
|
File without changes
|
{asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-01-203438-optimization-plan.md
RENAMED
|
File without changes
|
|
File without changes
|
{asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-02-121155-optimization-plan.md
RENAMED
|
File without changes
|
|
File without changes
|
{asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-02-175509-optimization-plan.md
RENAMED
|
File without changes
|
|
File without changes
|
{asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-04-122304-optimization-plan.md
RENAMED
|
File without changes
|
|
File without changes
|
{asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-05-142617-optimization-plan.md
RENAMED
|
File without changes
|
|
File without changes
|
{asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-05-160945-optimization-plan.md
RENAMED
|
File without changes
|
|
File without changes
|
{asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-05-213523-optimization-plan.md
RENAMED
|
File without changes
|
|
File without changes
|
{asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-10-193631-optimization-plan.md
RENAMED
|
File without changes
|
|
File without changes
|
{asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-14-123640-optimization-plan.md
RENAMED
|
File without changes
|
|
File without changes
|
{asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-14-124947-optimization-plan.md
RENAMED
|
File without changes
|
|
File without changes
|
{asecli-0.8.5 → asecli-0.8.6}/docs/adversarial-audits/2026-09-14-132814-optimization-plan.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{asecli-0.8.5 → asecli-0.8.6}/skills/asecli/references/conversion-publication-receipt.v1.schema.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/resources/asecli_material_gui.authoring.store.cs.txt
RENAMED
|
File without changes
|
{asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/resources/asecli_material_gui.condition.cs.txt
RENAMED
|
File without changes
|
{asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/resources/asecli_material_gui.hydration.cs.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/resources/asecli_material_gui.reconciliation.cs.txt
RENAMED
|
File without changes
|
{asecli-0.8.5 → asecli-0.8.6}/src/asecli/bridge/resources/asecli_material_gui.transaction.cs.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|