xrefkit 0.7.9__tar.gz → 0.7.10__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.
- {xrefkit-0.7.9/xrefkit.egg-info → xrefkit-0.7.10}/PKG-INFO +1 -1
- {xrefkit-0.7.9 → xrefkit-0.7.10}/pyproject.toml +1 -1
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_ci_workflow_invariants.py +11 -27
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_package_knowledge_resolution.py +13 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_xrefkit_v2_pipeline.py +16 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/__init__.py +1 -1
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/mcp/catalog.py +9 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/workspace.py +4 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10/xrefkit.egg-info}/PKG-INFO +1 -1
- {xrefkit-0.7.9 → xrefkit-0.7.10}/LICENSE +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/README.md +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/setup.cfg +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_artifact_selected_family.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_attention_pet.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_attention_pet_client_protocol.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_attention_pet_codex_session.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_attention_pet_fit.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_azure_connection.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_azure_import.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_azure_recovery.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_azure_update_candidate.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_azure_writer.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_boundary_analysis.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_brownfield_csharp_structure_definitions.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_brownfield_file_editing_protocol.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_business_intake_conversation_definitions.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_business_intake_definition.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_calibration_lint.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_catalog_preparation_definition.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_check_skill_knowledge_xids.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_cli.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_code_constraint_definition.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_collect_analyzer_sarif.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_compact_skill_logs.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_constraint_derivation_family_definition.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_constraint_derivation_selected_family.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_contribution_adoption_bytes.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_contribution_returns.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_convert_to_xrefkit_skill.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_cs_scope_probe.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_csharp_commonality.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_csharp_naming_profile.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_ctx.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_cutover_readiness.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_dashboard.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_database_batch_definition_migration.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_decision_trace.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_design_business_intake_selected_family.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_design_planning_definition_migration.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_dotnet_definition_candidate.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_editorial_family_definition.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_editorial_intake_definition.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_editorial_selected_family.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_embedded_startup_pack.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_error_policy_audit.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_error_policy_locator.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_execution_binding.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_existing_skill_definition_batch.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_final_skilldefinition_batch.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_flow_selected_family.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_fm_multiroot.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_gate.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_gateway.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_gateway_mcp.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_gateway_skill_adapter.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_gateway_work_items.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_goal_desired_state.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_governance_entry.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_governance_host.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_host_precheck.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_human_evaluation.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_implementation_flow_definition.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_implementation_review_selected_family.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_inbound_uploads.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_instruction_workflow.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_knowledge_relations_validator.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_language_review_definition.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_legacy_guidance.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_legacy_migration.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_legacy_resources.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_mcp_package_routing.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_mcp_setup.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_mcp_subagent_startup.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_mcp_subagent_startup_integration.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_ontology_assessment_validator.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_os_family_definition.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_os_knowledge_family_definition.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_os_selected_family.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_ownership.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_package_skill_run.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_packaged_native_governance.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_packmeta.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_plan_markdown.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_plan_observation.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_project_management_materialization.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_project_quality_baseline.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_qa_report_definition.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_reporting_profiles.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_reporting_quality.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_repository_skill_adoption.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_repository_startup_pack.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_resource_provider.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_runtime_contracts.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_sarif_to_locator.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_security_definition_migration.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_site_release_metadata.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_skill_definition.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_skill_definition_governance.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_skill_definition_mcp.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_skill_definition_runtime.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_skill_edits.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_skill_maturity_return.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_skill_release_compatibility.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_skill_runtime_audit.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_skillmeta.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_skills_sync.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_source_analysis_fragments.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_structure_catalog.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_subagent_startup.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_subagent_startup_boundaries.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_wbs.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_work_management.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_work_packages.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_workflow_family_definition.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_xref.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_xrefkit_instance.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_xrefkit_tools.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_xrefkit_v2_discovery.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/tests/test_xrefkit_v2_models.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/__main__.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/attention_pet/__init__.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/attention_pet/__main__.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/attention_pet/client.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/attention_pet/client_protocol.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/attention_pet/codex_session.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/attention_pet/evaluator.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/attention_pet/model.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/attention_pet/presentation.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/attention_pet/profiles.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/attention_pet/scenarios.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/attention_pet/server.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/attention_pet/store.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/azure_connection.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/azure_import.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/azure_recovery.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/azure_update_candidate.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/azure_writer.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/boundary_analysis.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/catalog_cli.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/cli.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/contracts.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/ctx.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/dashboard.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/decision_trace.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/discovery.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/execution_binding.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/execution_binding_cli.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/gate.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/gateway.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/goalstate.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/governance_entry.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/governance_entry_cli.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/governance_host.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/hashing.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/host_precheck.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/import_skill.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/instance.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/loaders.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/mcp/__init__.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/mcp/audit.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/mcp/bootstrap.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/mcp/cli.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/mcp/client_cache.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/mcp/client_flow.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/mcp/context_registry.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/mcp/context_token.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/mcp/contracts.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/mcp/contribution_adoption.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/mcp/contribution_returns.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/mcp/dist.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/mcp/gateway.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/mcp/governed_overlays.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/mcp/inbound_uploads.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/mcp/knowledge_edits.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/mcp/legacy_guidance.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/mcp/legacy_migration.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/mcp/legacy_resources.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/mcp/ownership.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/mcp/repository.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/mcp/schemas.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/mcp/server.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/mcp/setup.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/mcp/skill_edits.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/mcp/skill_maturity.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/mcp/startup_contract_pack.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/mcp/subagent_startup.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/mcp/update_gate_intake.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/mcp_tools.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/models/__init__.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/models/common.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/models/effective_bundle.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/models/human_evaluation.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/models/local_manifest.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/models/package_manifest.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/models/run_log.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/models/server_config.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/models/skill_definition.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/operations_cli.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/ownership.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/packmeta.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/plan_markdown.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/plan_observation.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/registry.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/reporting.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/reporting_profiles.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/repository_skills.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/resolver.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/resource_provider.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/resources/attention_pet/client-state.schema.json +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/resources/attention_pet/pet.css +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/resources/attention_pet/pet.html +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/resources/attention_pet/pet.js +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/resources/base/contracts.json +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/resources/base/current.json +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/resources/base/generations/7a682a5272907354/contracts.json +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/resources/base/generations/7a682a5272907354/model_body.md +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/resources/base/generations/9929294385ccb7b0/contracts.json +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/resources/base/generations/9929294385ccb7b0/model_body.md +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/resources/base/model_body.md +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/resources/base/startup_sources/000_agent_entry.md +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/resources/base/startup_sources/011_startup_xref_routing.md +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/resources/base/startup_sources/015_shared_memory_operations.md +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/resources/base/startup_sources/016_uncertainty_protocol.md +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/resources/base/startup_sources/017_base_and_xref_layering.md +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/resources/base/startup_sources/053_context_direction_security_guard.md +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/resources/base/startup_sources/yomiyasu_LICENSE.txt +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/resources/migration/docs/guides/062_legacy_flow_skill_migration_guide.md +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/resources/migration/knowledge/operations/130_legacy_flow_skill_migration_rules.md +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/resources/migration/knowledge/organization/160_context_direction_guard_rules.md +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/resources/migration/skills/os/legacy_flow_skill_migration/SKILL.v1.md +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/resources/migration/skills/os/legacy_flow_skill_migration/references/legacy_flow_skill_migration_template.md +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/resources/migration/skills/repository_adoption.json +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/resources/migration/tools/migrate_legacy_flow_skill.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/runlog.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/skill_definition.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/skill_definition_catalog.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/skill_definition_governance.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/skillmeta.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/skillrun.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/skills_sync.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/structure_catalog.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/subagent_startup.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/tools/__init__.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/tools/__main__.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/v2_cli.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/wbs.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/work_management.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/work_management_view.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit/xref.py +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit.egg-info/SOURCES.txt +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit.egg-info/dependency_links.txt +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit.egg-info/entry_points.txt +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit.egg-info/requires.txt +0 -0
- {xrefkit-0.7.9 → xrefkit-0.7.10}/xrefkit.egg-info/top_level.txt +0 -0
|
@@ -18,34 +18,18 @@ PACKAGES = {
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
@pytest.mark.parametrize("
|
|
22
|
-
|
|
21
|
+
@pytest.mark.parametrize("filename", [
|
|
22
|
+
"python-package.yml",
|
|
23
|
+
"python-skill-project-management-package.yml",
|
|
23
24
|
])
|
|
24
|
-
def
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
block = update.split("# Package installation", 1)[1].split("# A failed definition update", 1)[0]
|
|
33
|
-
block = "# Package installation" + block
|
|
34
|
-
mocks = f"""
|
|
35
|
-
set -euo pipefail
|
|
36
|
-
calls=0
|
|
37
|
-
pgrep() {{
|
|
38
|
-
calls=$((calls + 1))
|
|
39
|
-
if [ "$calls" -eq 1 ]; then return 0; fi
|
|
40
|
-
return {0 if remains else 1}
|
|
41
|
-
}}
|
|
42
|
-
sudo() {{ return {stop_status}; }}
|
|
43
|
-
sleep() {{ :; }}
|
|
44
|
-
"""
|
|
45
|
-
result = subprocess.run([bash, "-c", mocks + block + "\necho stop-complete\n"],
|
|
46
|
-
capture_output=True, text=True)
|
|
47
|
-
assert result.returncode == expected, result.stdout + result.stderr
|
|
48
|
-
assert ("stop-complete" in result.stdout) == (expected == 0)
|
|
25
|
+
def test_release_artifact_inspection_uses_verified_fresh_clamav(filename):
|
|
26
|
+
steps = workflow(filename)["jobs"]["artifact-inspection"]["steps"]
|
|
27
|
+
assert any(step.get("run") == "bash tools/scan_python_artifacts.sh dist/" for step in steps)
|
|
28
|
+
script = (WORKFLOWS.parents[1] / "tools/scan_python_artifacts.sh").read_text(encoding="utf-8")
|
|
29
|
+
assert "sha256sum --check" in script
|
|
30
|
+
assert "--fail-if-cvd-older-than=1" in script
|
|
31
|
+
assert script.index("sha256sum --check") < script.index('"${clamav_bin}/freshclam"')
|
|
32
|
+
assert script.index('"${clamav_bin}/freshclam"') < script.index('"${clamav_bin}/clamscan"')
|
|
49
33
|
|
|
50
34
|
|
|
51
35
|
def workflow(filename):
|
|
@@ -191,3 +191,16 @@ def test_prefixed_native_startup_identity_cannot_shadow_core(tmp_path):
|
|
|
191
191
|
catalog.discovered_packages[0].manifest.provides.knowledge[0].xid = "xid-0B5C58B5E5B2"
|
|
192
192
|
with pytest.raises(ValueError, match="core startup XID"):
|
|
193
193
|
catalog.get_document_by_xid("xid-0B5C58B5E5B2")
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
def test_native_seed_resolves_prefixed_package_asset(tmp_path):
|
|
197
|
+
catalog = package_catalog(tmp_path)
|
|
198
|
+
package = catalog.discovered_packages[0]
|
|
199
|
+
package.manifest.provides.knowledge[0].xid = "xid-7A2F4C8D1701"
|
|
200
|
+
bare = catalog.get_document_by_xid("7A2F4C8D1701")
|
|
201
|
+
prefixed = catalog.get_document_by_xid("xid-7A2F4C8D1701")
|
|
202
|
+
assert bare["content_hash"] == prefixed["content_hash"]
|
|
203
|
+
assert bare["content"] == prefixed["content"]
|
|
204
|
+
|
|
205
|
+
duplicate = replace(catalog, discovered_packages=(package, package))
|
|
206
|
+
assert duplicate.get_document_by_xid("7A2F4C8D1701")["error"] == "xid_conflict"
|
|
@@ -533,3 +533,19 @@ def test_repository_csharp_package_resolves_local_csharp_review(tmp_path: Path)
|
|
|
533
533
|
assert "applied_skills" in bundle.required_outputs
|
|
534
534
|
assert "xid-branch-csharp-review-async-synchronization" in bundle.references.branches
|
|
535
535
|
assert "xid-project-csharp-current-code-scope" in bundle.references.knowledge
|
|
536
|
+
|
|
537
|
+
|
|
538
|
+
def test_registry_loads_split_contract_from_mixed_package(tmp_path):
|
|
539
|
+
package_manifest, local_manifest = _sample_workspace(tmp_path)
|
|
540
|
+
manifest = yaml.safe_load(package_manifest.read_text(encoding="utf-8"))
|
|
541
|
+
native_path = "skills/investigation_flow/SKILL.v1.md"
|
|
542
|
+
_write(package_manifest.parent / native_path, (REPO_ROOT / native_path).read_text(encoding="utf-8"))
|
|
543
|
+
manifest["provides"]["skills"].append({
|
|
544
|
+
"id": "investigation_flow",
|
|
545
|
+
"xid": "E8B2D6A4C190",
|
|
546
|
+
"path": native_path,
|
|
547
|
+
})
|
|
548
|
+
_write_yaml(package_manifest, manifest)
|
|
549
|
+
|
|
550
|
+
registry = build_registry(package_manifests=[package_manifest], local_manifest_path=local_manifest)
|
|
551
|
+
assert registry.skills.require("xddp.design.change_design").definition.entry.path == "skills/change_design/entry.md"
|
|
@@ -1299,11 +1299,20 @@ class XRefCatalog:
|
|
|
1299
1299
|
if local_xid == xid
|
|
1300
1300
|
)
|
|
1301
1301
|
package_documents = {}
|
|
1302
|
+
package_aliases = []
|
|
1303
|
+
native_identity = _native_xid_identity(xid)
|
|
1302
1304
|
for package, asset_xid, path, _kind in self._package_assets():
|
|
1303
1305
|
if asset_xid == xid:
|
|
1304
1306
|
text = read_text(path)
|
|
1305
1307
|
matches.append((path, text))
|
|
1306
1308
|
package_documents[path] = self._package_document(package, xid, path, text)
|
|
1309
|
+
elif _native_xid_identity(asset_xid) == native_identity:
|
|
1310
|
+
package_aliases.append((package, path))
|
|
1311
|
+
if not matches:
|
|
1312
|
+
for package, path in package_aliases:
|
|
1313
|
+
text = read_text(path)
|
|
1314
|
+
matches.append((path, text))
|
|
1315
|
+
package_documents[path] = self._package_document(package, xid, path, text)
|
|
1307
1316
|
if package_documents:
|
|
1308
1317
|
# Installed packages cannot shadow a core migration document merely
|
|
1309
1318
|
# because the consumer repository does not contain that document.
|
|
@@ -67,6 +67,10 @@ def build_registry(
|
|
|
67
67
|
registry.add_package(manifest, package_root)
|
|
68
68
|
for provided in manifest.provides.skills:
|
|
69
69
|
skill_path = _contained_path(package_root, provided.path, label=f"package skill {provided.id}")
|
|
70
|
+
# The effective Skill resolver composes split YAML contracts.
|
|
71
|
+
# Native Markdown Skills are registered by the MCP catalog.
|
|
72
|
+
if skill_path.suffix.lower() == ".md":
|
|
73
|
+
continue
|
|
70
74
|
skill = load_skill_definition(skill_path)
|
|
71
75
|
_validate_skill_paths(package_root, skill)
|
|
72
76
|
registry.add_package_skill(
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|