xrefkit 0.7.8__tar.gz → 0.7.9__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.8/xrefkit.egg-info → xrefkit-0.7.9}/PKG-INFO +1 -1
- {xrefkit-0.7.8 → xrefkit-0.7.9}/pyproject.toml +1 -1
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_package_knowledge_resolution.py +27 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/__init__.py +1 -1
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/mcp/catalog.py +10 -3
- {xrefkit-0.7.8 → xrefkit-0.7.9/xrefkit.egg-info}/PKG-INFO +1 -1
- {xrefkit-0.7.8 → xrefkit-0.7.9}/LICENSE +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/README.md +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/setup.cfg +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_artifact_selected_family.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_attention_pet.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_attention_pet_client_protocol.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_attention_pet_codex_session.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_attention_pet_fit.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_azure_connection.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_azure_import.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_azure_recovery.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_azure_update_candidate.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_azure_writer.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_boundary_analysis.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_brownfield_csharp_structure_definitions.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_brownfield_file_editing_protocol.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_business_intake_conversation_definitions.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_business_intake_definition.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_calibration_lint.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_catalog_preparation_definition.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_check_skill_knowledge_xids.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_ci_workflow_invariants.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_cli.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_code_constraint_definition.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_collect_analyzer_sarif.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_compact_skill_logs.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_constraint_derivation_family_definition.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_constraint_derivation_selected_family.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_contribution_adoption_bytes.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_contribution_returns.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_convert_to_xrefkit_skill.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_cs_scope_probe.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_csharp_commonality.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_csharp_naming_profile.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_ctx.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_cutover_readiness.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_dashboard.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_database_batch_definition_migration.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_decision_trace.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_design_business_intake_selected_family.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_design_planning_definition_migration.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_dotnet_definition_candidate.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_editorial_family_definition.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_editorial_intake_definition.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_editorial_selected_family.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_embedded_startup_pack.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_error_policy_audit.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_error_policy_locator.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_execution_binding.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_existing_skill_definition_batch.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_final_skilldefinition_batch.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_flow_selected_family.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_fm_multiroot.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_gate.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_gateway.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_gateway_mcp.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_gateway_skill_adapter.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_gateway_work_items.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_goal_desired_state.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_governance_entry.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_governance_host.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_host_precheck.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_human_evaluation.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_implementation_flow_definition.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_implementation_review_selected_family.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_inbound_uploads.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_instruction_workflow.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_knowledge_relations_validator.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_language_review_definition.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_legacy_guidance.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_legacy_migration.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_legacy_resources.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_mcp_package_routing.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_mcp_setup.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_mcp_subagent_startup.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_mcp_subagent_startup_integration.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_ontology_assessment_validator.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_os_family_definition.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_os_knowledge_family_definition.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_os_selected_family.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_ownership.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_package_skill_run.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_packaged_native_governance.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_packmeta.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_plan_markdown.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_plan_observation.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_project_management_materialization.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_project_quality_baseline.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_qa_report_definition.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_reporting_profiles.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_reporting_quality.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_repository_skill_adoption.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_repository_startup_pack.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_resource_provider.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_runtime_contracts.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_sarif_to_locator.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_security_definition_migration.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_site_release_metadata.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_skill_definition.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_skill_definition_governance.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_skill_definition_mcp.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_skill_definition_runtime.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_skill_edits.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_skill_maturity_return.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_skill_release_compatibility.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_skill_runtime_audit.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_skillmeta.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_skills_sync.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_source_analysis_fragments.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_structure_catalog.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_subagent_startup.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_subagent_startup_boundaries.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_wbs.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_work_management.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_work_packages.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_workflow_family_definition.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_xref.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_xrefkit_instance.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_xrefkit_tools.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_xrefkit_v2_discovery.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_xrefkit_v2_models.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/tests/test_xrefkit_v2_pipeline.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/__main__.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/attention_pet/__init__.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/attention_pet/__main__.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/attention_pet/client.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/attention_pet/client_protocol.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/attention_pet/codex_session.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/attention_pet/evaluator.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/attention_pet/model.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/attention_pet/presentation.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/attention_pet/profiles.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/attention_pet/scenarios.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/attention_pet/server.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/attention_pet/store.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/azure_connection.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/azure_import.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/azure_recovery.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/azure_update_candidate.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/azure_writer.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/boundary_analysis.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/catalog_cli.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/cli.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/contracts.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/ctx.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/dashboard.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/decision_trace.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/discovery.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/execution_binding.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/execution_binding_cli.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/gate.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/gateway.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/goalstate.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/governance_entry.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/governance_entry_cli.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/governance_host.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/hashing.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/host_precheck.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/import_skill.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/instance.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/loaders.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/mcp/__init__.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/mcp/audit.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/mcp/bootstrap.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/mcp/cli.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/mcp/client_cache.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/mcp/client_flow.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/mcp/context_registry.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/mcp/context_token.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/mcp/contracts.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/mcp/contribution_adoption.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/mcp/contribution_returns.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/mcp/dist.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/mcp/gateway.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/mcp/governed_overlays.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/mcp/inbound_uploads.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/mcp/knowledge_edits.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/mcp/legacy_guidance.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/mcp/legacy_migration.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/mcp/legacy_resources.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/mcp/ownership.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/mcp/repository.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/mcp/schemas.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/mcp/server.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/mcp/setup.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/mcp/skill_edits.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/mcp/skill_maturity.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/mcp/startup_contract_pack.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/mcp/subagent_startup.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/mcp/update_gate_intake.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/mcp_tools.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/models/__init__.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/models/common.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/models/effective_bundle.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/models/human_evaluation.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/models/local_manifest.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/models/package_manifest.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/models/run_log.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/models/server_config.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/models/skill_definition.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/operations_cli.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/ownership.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/packmeta.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/plan_markdown.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/plan_observation.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/registry.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/reporting.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/reporting_profiles.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/repository_skills.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/resolver.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/resource_provider.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/resources/attention_pet/client-state.schema.json +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/resources/attention_pet/pet.css +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/resources/attention_pet/pet.html +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/resources/attention_pet/pet.js +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/resources/base/contracts.json +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/resources/base/current.json +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/resources/base/generations/7a682a5272907354/contracts.json +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/resources/base/generations/7a682a5272907354/model_body.md +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/resources/base/generations/9929294385ccb7b0/contracts.json +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/resources/base/generations/9929294385ccb7b0/model_body.md +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/resources/base/model_body.md +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/resources/base/startup_sources/000_agent_entry.md +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/resources/base/startup_sources/011_startup_xref_routing.md +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/resources/base/startup_sources/015_shared_memory_operations.md +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/resources/base/startup_sources/016_uncertainty_protocol.md +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/resources/base/startup_sources/017_base_and_xref_layering.md +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/resources/base/startup_sources/053_context_direction_security_guard.md +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/resources/base/startup_sources/yomiyasu_LICENSE.txt +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/resources/migration/docs/guides/062_legacy_flow_skill_migration_guide.md +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/resources/migration/knowledge/operations/130_legacy_flow_skill_migration_rules.md +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/resources/migration/knowledge/organization/160_context_direction_guard_rules.md +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/resources/migration/skills/os/legacy_flow_skill_migration/SKILL.v1.md +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/resources/migration/skills/os/legacy_flow_skill_migration/references/legacy_flow_skill_migration_template.md +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/resources/migration/skills/repository_adoption.json +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/resources/migration/tools/migrate_legacy_flow_skill.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/runlog.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/skill_definition.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/skill_definition_catalog.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/skill_definition_governance.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/skillmeta.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/skillrun.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/skills_sync.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/structure_catalog.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/subagent_startup.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/tools/__init__.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/tools/__main__.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/v2_cli.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/wbs.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/work_management.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/work_management_view.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/workspace.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/xref.py +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit.egg-info/SOURCES.txt +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit.egg-info/dependency_links.txt +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit.egg-info/entry_points.txt +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit.egg-info/requires.txt +0 -0
- {xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit.egg-info/top_level.txt +0 -0
|
@@ -164,3 +164,30 @@ def test_inline_identity_mismatch_refused(tmp_path):
|
|
|
164
164
|
path.write_text("<!-- xid: ABCDEF123456 -->\n# Wrong identity")
|
|
165
165
|
with pytest.raises(ValueError, match="identity does not match"):
|
|
166
166
|
catalog.expand_knowledge("xid-knowledge-rules")
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
@pytest.mark.parametrize(("declared", "inline", "accepted"), [
|
|
170
|
+
("xid-7A2F4C8D1401", "7A2F4C8D1401", True),
|
|
171
|
+
("7A2F4C8D1401", "xid-7A2F4C8D1401", True),
|
|
172
|
+
("xid-7A2F4C8D1401", "7A2F4C8D1402", False),
|
|
173
|
+
("xid-knowledge-rules", "knowledge-rules", False),
|
|
174
|
+
("xid-7A2F4C8D1401-extra", "7A2F4C8D1401", False),
|
|
175
|
+
])
|
|
176
|
+
def test_native_hex_inline_identity_compatibility(tmp_path, declared, inline, accepted):
|
|
177
|
+
catalog = package_catalog(tmp_path)
|
|
178
|
+
package = catalog.discovered_packages[0]
|
|
179
|
+
package.manifest.provides.knowledge[0].xid = declared
|
|
180
|
+
(package.package_root / "knowledge/rules.md").write_text(f"<!-- xid: {inline} -->\n# Rules")
|
|
181
|
+
if accepted:
|
|
182
|
+
assert catalog.get_document_by_xid(declared)["xid"] == declared
|
|
183
|
+
assert catalog.expand_knowledge(declared)["content"]
|
|
184
|
+
else:
|
|
185
|
+
with pytest.raises(ValueError, match="identity does not match"):
|
|
186
|
+
catalog.get_document_by_xid(declared)
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
def test_prefixed_native_startup_identity_cannot_shadow_core(tmp_path):
|
|
190
|
+
catalog = package_catalog(tmp_path)
|
|
191
|
+
catalog.discovered_packages[0].manifest.provides.knowledge[0].xid = "xid-0B5C58B5E5B2"
|
|
192
|
+
with pytest.raises(ValueError, match="core startup XID"):
|
|
193
|
+
catalog.get_document_by_xid("xid-0B5C58B5E5B2")
|
|
@@ -709,7 +709,7 @@ class XRefCatalog:
|
|
|
709
709
|
for kind, assets in groups.items():
|
|
710
710
|
for asset in assets:
|
|
711
711
|
path = _package_asset_path(root, asset.path)
|
|
712
|
-
if _embedded_startup_document(asset.xid) is not None:
|
|
712
|
+
if _embedded_startup_document(_native_xid_identity(asset.xid)) is not None:
|
|
713
713
|
raise ValueError(f"package asset conflicts with core startup XID: {asset.xid}")
|
|
714
714
|
key = (asset.xid, path)
|
|
715
715
|
if key not in seen:
|
|
@@ -721,7 +721,7 @@ class XRefCatalog:
|
|
|
721
721
|
raise ValueError("package Skill identity does not match manifest")
|
|
722
722
|
for fragment in [skill.entry, *skill.required_fragments, *skill.branches]:
|
|
723
723
|
target = _package_asset_path(root, fragment.path)
|
|
724
|
-
if _embedded_startup_document(fragment.xid) is not None:
|
|
724
|
+
if _embedded_startup_document(_native_xid_identity(fragment.xid)) is not None:
|
|
725
725
|
raise ValueError(f"package fragment conflicts with core startup XID: {fragment.xid}")
|
|
726
726
|
key = (fragment.xid, target)
|
|
727
727
|
if key not in seen:
|
|
@@ -729,7 +729,8 @@ class XRefCatalog:
|
|
|
729
729
|
yield package, fragment.xid, target, "fragment"
|
|
730
730
|
|
|
731
731
|
def _package_document(self, package: DiscoveredSkillPackage, xid: str, path: Path, text: str) -> XRefDocument:
|
|
732
|
-
if path.suffix.lower() == ".md"
|
|
732
|
+
document_xid = first_xid(text) if path.suffix.lower() == ".md" else None
|
|
733
|
+
if document_xid and _native_xid_identity(document_xid) != _native_xid_identity(xid):
|
|
733
734
|
raise ValueError(f"package document identity does not match manifest: {xid}")
|
|
734
735
|
return XRefDocument(
|
|
735
736
|
xid=xid,
|
|
@@ -1720,6 +1721,12 @@ def _knowledge_entry(
|
|
|
1720
1721
|
)
|
|
1721
1722
|
|
|
1722
1723
|
|
|
1724
|
+
def _native_xid_identity(xid: str) -> str:
|
|
1725
|
+
"""Accept the legacy anchor prefix only for native 12-digit hex XIDs."""
|
|
1726
|
+
match = re.fullmatch(r"(?:xid-)?([0-9A-F]{12})", xid)
|
|
1727
|
+
return match.group(1) if match else xid
|
|
1728
|
+
|
|
1729
|
+
|
|
1723
1730
|
def _package_asset_path(root: Path, relative: str) -> Path:
|
|
1724
1731
|
"""Manifest paths are portable relative allowlist entries, never glob roots."""
|
|
1725
1732
|
portable = PurePosixPath(relative)
|
|
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
|
|
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
|
{xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/resources/base/generations/7a682a5272907354/contracts.json
RENAMED
|
File without changes
|
{xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/resources/base/generations/7a682a5272907354/model_body.md
RENAMED
|
File without changes
|
{xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/resources/base/generations/9929294385ccb7b0/contracts.json
RENAMED
|
File without changes
|
{xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/resources/base/generations/9929294385ccb7b0/model_body.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/resources/base/startup_sources/011_startup_xref_routing.md
RENAMED
|
File without changes
|
|
File without changes
|
{xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/resources/base/startup_sources/016_uncertainty_protocol.md
RENAMED
|
File without changes
|
{xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/resources/base/startup_sources/017_base_and_xref_layering.md
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
|
{xrefkit-0.7.8 → xrefkit-0.7.9}/xrefkit/resources/migration/tools/migrate_legacy_flow_skill.py
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
|