agentbundle 0.53.1__tar.gz → 0.57.0__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.
Files changed (712) hide show
  1. {agentbundle-0.53.1/agentbundle.egg-info → agentbundle-0.57.0}/PKG-INFO +38 -1
  2. {agentbundle-0.53.1 → agentbundle-0.57.0}/README-pypi.md +37 -0
  3. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/adapter.schema.json +2 -0
  4. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/catalogue-index.schema.json +1 -1
  5. agentbundle-0.57.0/agentbundle/_data/catalogue-manifest.schema.json +62 -0
  6. agentbundle-0.57.0/agentbundle/_data/catalogue-members.txt +8 -0
  7. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/catalogue-scaffold/manifest.json +1 -1
  8. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/catalogue-scaffold/tests/conformance/test_pack_layout_declared_section.py +2 -2
  9. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/catalogue.schema.json +1 -1
  10. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/install-marker.py +6 -9
  11. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/pack.schema.json +1 -1
  12. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/profile.schema.json +1 -1
  13. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/public-contracts.txt +1 -0
  14. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/skill-manifest.schema.json +1 -1
  15. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/skill.schema.json +1 -1
  16. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/bounded_metadata.py +3 -3
  17. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/__init__.py +8 -7
  18. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/adapter_root_bins.py +1 -1
  19. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/adapters/claude_code.py +4 -4
  20. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/adapters/codex.py +3 -3
  21. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/adapters/copilot.py +1 -1
  22. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/adapters/cursor.py +1 -1
  23. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/adapters/gemini.py +1 -1
  24. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/adapters/kiro.py +4 -4
  25. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/adapters/kiro_ide.py +1 -1
  26. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/lint_packs.py +21 -48
  27. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/main.py +74 -66
  28. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/projections/direct_directory.py +1 -2
  29. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/projections/kiro_ide_hook.py +2 -2
  30. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/projections/merge_into_agent_json.py +3 -4
  31. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/projections/user_merge_json.py +2 -2
  32. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/recipes/self-host.toml +1 -1
  33. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/scope_rails.py +3 -3
  34. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/self_host.py +20 -22
  35. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/validate.py +2 -2
  36. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/catalogue.py +25 -3
  37. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/catalogue_tooling/__init__.py +1 -1
  38. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/catalogue_tooling/archive.py +9 -9
  39. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/catalogue_tooling/config.py +33 -67
  40. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/catalogue_tooling/diagnostics.py +32 -32
  41. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/catalogue_tooling/initialise.py +21 -22
  42. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/catalogue_tooling/initialise_self_hosted.py +2 -2
  43. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/catalogue_tooling/lint.py +11 -21
  44. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/catalogue_tooling/package.py +5 -5
  45. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/catalogue_tooling/results.py +2 -2
  46. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/catalogue_tooling/verify.py +7 -7
  47. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/cli.py +51 -22
  48. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/commands/_common.py +2 -3
  49. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/commands/catalogue_contracts.py +19 -1
  50. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/commands/catalogue_package.py +2 -2
  51. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/commands/catalogue_sync.py +275 -297
  52. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/commands/catalogue_tooling_stub.py +3 -3
  53. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/commands/install.py +63 -67
  54. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/commands/list_installed.py +4 -4
  55. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/commands/pack_evals.py +7 -6
  56. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/commands/profile.py +5 -20
  57. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/commands/upgrade.py +90 -5
  58. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/commands/validate.py +29 -64
  59. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/config.py +49 -26
  60. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/direct_install.py +27 -26
  61. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/direct_source.py +19 -23
  62. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/direct_source_acquisition.py +12 -12
  63. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/direct_source_state.py +7 -7
  64. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/direct_validate.py +3 -3
  65. agentbundle-0.57.0/agentbundle/pack_renames.py +419 -0
  66. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/render.py +3 -4
  67. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/safety.py +26 -29
  68. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/scope.py +4 -5
  69. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/statelock.py +1 -1
  70. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/system_trust.py +5 -5
  71. agentbundle-0.57.0/agentbundle/version.py +96 -0
  72. {agentbundle-0.53.1 → agentbundle-0.57.0/agentbundle.egg-info}/PKG-INFO +38 -1
  73. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle.egg-info/SOURCES.txt +15 -0
  74. {agentbundle-0.53.1 → agentbundle-0.57.0}/pyproject.toml +1 -1
  75. {agentbundle-0.53.1 → agentbundle-0.57.0}/templates/install-marker.py +6 -9
  76. agentbundle-0.57.0/tests/_rename_fixtures.py +259 -0
  77. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/_support.py +3 -3
  78. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/fixtures/README.md +2 -2
  79. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_adapter_codex.py +1 -1
  80. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_agent_plugin_projection.py +35 -5
  81. agentbundle-0.57.0/tests/build_pipeline/test_build_validate_bundled_schema.py +41 -0
  82. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_end_to_end_build.py +1 -1
  83. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_lint_packs.py +61 -45
  84. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_pack_schema.py +5 -5
  85. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_pack_schema_install.py +3 -4
  86. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_pipeline.py +1 -1
  87. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_plugin_manifest_schema.py +1 -1
  88. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_plugin_publication_gates.py +9 -8
  89. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_policy_registry_projection.py +1 -1
  90. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_self_host_check.py +11 -11
  91. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_self_host_fixture_guard.py +1 -1
  92. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_shared_libs_projection.py +1 -1
  93. agentbundle-0.57.0/tests/fixtures/distribution-routes/golden.json +218 -0
  94. agentbundle-0.57.0/tests/integration/_https_archive.py +112 -0
  95. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_adapt_schema_migration.py +1 -2
  96. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_blank_catalogue.py +1 -1
  97. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_brownfield_round_trip.py +1 -2
  98. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_build_derivation_claude_plugins.py +2 -2
  99. agentbundle-0.57.0/tests/integration/test_bundled_contracts_fail_closed.py +92 -0
  100. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_catalogue_init.py +2 -2
  101. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_catalogue_verify_plugin_path.py +2 -2
  102. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_cc_user_hooks_fixture.py +1 -1
  103. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_claude_plugins_install_route.py +4 -10
  104. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_direct_install.py +8 -8
  105. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_discovery_schema_cross_consumer.py +2 -4
  106. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_fixtures_validate.py +4 -4
  107. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_install_adapt_chain.py +2 -2
  108. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_install_cmd.py +3 -3
  109. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_install_core_smoke.py +1 -1
  110. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_install_dropped_primitives_warning.py +6 -6
  111. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_install_profile_live.py +2 -2
  112. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_install_session_start_wiring.py +3 -4
  113. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_kiro_repo_hooks_fixture.py +1 -1
  114. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_local_scope_install.py +2 -2
  115. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_marketplace_entry_validation.py +7 -7
  116. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_multi_pack_install.py +27 -28
  117. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_plugin_route_membership.py +23 -20
  118. agentbundle-0.57.0/tests/integration/test_rename_hint_cli.py +824 -0
  119. agentbundle-0.57.0/tests/integration/test_rename_migration_e2e.py +219 -0
  120. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_reserved_path_filter.py +1 -1
  121. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_self_host_schema_migration.py +1 -2
  122. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_show_cmd.py +1 -1
  123. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_trust_fallback_tls.py +1 -1
  124. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_upgrade_cmd.py +3 -3
  125. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_upgrade_user_hooks.py +1 -1
  126. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/performance/test_direct_family2_budget_cost.py +19 -19
  127. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/test_workspace_mcp_git_scope.py +11 -8
  128. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/test_workspace_mcp_layout_override.py +2 -2
  129. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_adapt_discovery_schema.py +3 -4
  130. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_adapter_symlink_policy.py +1 -1
  131. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_append_layout_section.py +1 -1
  132. agentbundle-0.57.0/tests/unit/test_bundled_contract_errors.py +289 -0
  133. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_catalogue.py +2 -2
  134. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_catalogue_archive_unit_digests.py +1 -1
  135. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_catalogue_ci_contract.py +1 -1
  136. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_catalogue_curation_deps.py +2 -2
  137. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_catalogue_init_cli_self_hosted.py +2 -2
  138. agentbundle-0.57.0/tests/unit/test_catalogue_manifest_schema.py +215 -0
  139. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_catalogue_pack_defaults.py +7 -7
  140. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_catalogue_package_compare.py +1 -1
  141. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_catalogue_package_refusal.py +1 -1
  142. agentbundle-0.57.0/tests/unit/test_catalogue_spec_version.py +124 -0
  143. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_catalogue_sync.py +184 -186
  144. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_catalogue_tooling_archive.py +1 -1
  145. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_catalogue_tooling_defaults.py +1 -1
  146. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_catalogue_tooling_foundation.py +2 -2
  147. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_catalogue_tooling_init.py +3 -3
  148. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_catalogue_tooling_lint.py +97 -70
  149. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_catalogue_tooling_package.py +3 -3
  150. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_catalogue_tooling_self_host.py +1 -1
  151. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_catalogue_tooling_self_hosted_init.py +27 -27
  152. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_catalogue_tooling_verify.py +1 -1
  153. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_catalogue_trust_fallback.py +1 -1
  154. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_catalogue_unit_digests.py +1 -1
  155. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_catalogue_wave2_schema.py +1 -6
  156. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_catalogue_wave2_validation.py +1 -6
  157. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_catalogue_wave3_contracts_cli.py +5 -2
  158. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_catalogue_wave3_contracts_inspector.py +1 -1
  159. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_catalogue_wave3_init_nextsteps.py +1 -1
  160. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_collect_tree_symlinks.py +1 -1
  161. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_dependencies_batch.py +3 -3
  162. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_direct_admission.py +13 -13
  163. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_direct_architecture_controls.py +20 -20
  164. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_direct_diagnostics.py +12 -12
  165. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_direct_source_acquisition.py +4 -4
  166. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_direct_source_state.py +8 -8
  167. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_direct_validate.py +3 -3
  168. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_https_catalogue.py +1 -1
  169. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_install_event_dropped_wirings.py +5 -7
  170. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_install_first_value_handoff.py +2 -2
  171. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_install_inband_detection.py +7 -7
  172. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_install_refusal_ordering.py +2 -2
  173. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_kiro_ide_hook_projection.py +1 -1
  174. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_kiro_ide_hook_rail.py +2 -2
  175. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_layout_bases_anchoring.py +3 -3
  176. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_list_installed_cmd.py +1 -1
  177. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_list_installed_status.py +7 -7
  178. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_local_scope_t7_install_gates.py +4 -1
  179. agentbundle-0.57.0/tests/unit/test_no_contracts_fallback.py +90 -0
  180. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_org_bootstrap.py +1 -2
  181. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_pack_config_api.py +1 -1
  182. agentbundle-0.57.0/tests/unit/test_pack_evals_bundled_contract.py +33 -0
  183. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_pack_layout_section_schema.py +1 -1
  184. agentbundle-0.57.0/tests/unit/test_pack_renames.py +905 -0
  185. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_package_catalogue.py +7 -8
  186. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_packstate_source_provenance.py +1 -1
  187. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_plugin_scope_filter.py +4 -6
  188. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_resolve_user_scope_target_adapter.py +1 -1
  189. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_route_surface_parity.py +5 -5
  190. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_safety.py +4 -4
  191. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_source_conflict_guard.py +1 -1
  192. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_system_trust.py +6 -6
  193. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_toml_emitters.py +2 -2
  194. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_upgrade_bulk_all.py +1 -1
  195. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_validate_cmd.py +1 -1
  196. agentbundle-0.53.1/agentbundle/version.py +0 -49
  197. agentbundle-0.53.1/tests/fixtures/distribution-routes/golden.json +0 -218
  198. {agentbundle-0.53.1 → agentbundle-0.57.0}/MANIFEST.in +0 -0
  199. {agentbundle-0.53.1 → agentbundle-0.57.0}/README.md +0 -0
  200. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/__init__.py +0 -0
  201. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/__main__.py +0 -0
  202. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/__init__.py +0 -0
  203. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/adapter.toml +0 -0
  204. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/agent-plugin-extension-namespaces.schema.json +0 -0
  205. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/agent-plugin-extension-namespaces.toml +0 -0
  206. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/catalogue-scaffold/guides/_shared/reference/catalogue-authoring-standards.md +0 -0
  207. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/catalogue-scaffold/guides/_shared/reference/catalogue-ci-contract.md +0 -0
  208. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/catalogue-scaffold/packs/AGENTS.md +0 -0
  209. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/catalogue-scaffold/packs/CLAUDE.md +0 -0
  210. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/catalogue-scaffold/packs/README.md +0 -0
  211. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/catalogue-scaffold/packs/_example/.apm/skills/example-skill/SKILL.md +0 -0
  212. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/catalogue-scaffold/packs/_example/.apm/skills/example-skill/evals/eval_queries.json +0 -0
  213. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/catalogue-scaffold/packs/_example/.claude-plugin/plugin.json +0 -0
  214. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/catalogue-scaffold/packs/_example/README.md +0 -0
  215. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/catalogue-scaffold/packs/_example/pack.toml +0 -0
  216. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/catalogue-scaffold/profiles/AGENTS.md +0 -0
  217. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/catalogue-scaffold/profiles/CLAUDE.md +0 -0
  218. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/catalogue-scaffold/profiles/README.md +0 -0
  219. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/catalogue-scaffold/profiles/_example/README.md +0 -0
  220. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/catalogue-scaffold/profiles/_example/profile.toml +0 -0
  221. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/catalogue-scaffold/tests/conformance/test_gemini_admissibility.py +0 -0
  222. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/catalogue-scaffold/tests/conformance/test_pack_metadata.py +0 -0
  223. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/catalogue-scaffold/tests/conformance/test_shared_library_boundaries.py +0 -0
  224. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/close_work.py +0 -0
  225. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/cooling.py +0 -0
  226. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/distribution-routes.schema.json +0 -0
  227. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/distribution-routes.toml +0 -0
  228. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/file_safety.py +0 -0
  229. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/guide.schema.json +0 -0
  230. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/install-defaults.toml +0 -0
  231. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/knowledge-captured-observation.schema.json +0 -0
  232. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/marketplace-entry.schema.json +0 -0
  233. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/plugin-manifest.derived.schema.json +0 -0
  234. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/plugin-manifest.schema.json +0 -0
  235. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/target-vocab.toml +0 -0
  236. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/vendor/agent-plugins/1.0.0/LICENSE.md +0 -0
  237. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/vendor/agent-plugins/1.0.0/PROVENANCE.md +0 -0
  238. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/vendor/agent-plugins/1.0.0/mcp.schema.json +0 -0
  239. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/vendor/agent-plugins/1.0.0/plugin.schema.json +0 -0
  240. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/work_intake_refresh.py +0 -0
  241. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/workspace_status_engine.py +0 -0
  242. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/_data/workspace_status_prune.py +0 -0
  243. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/__main__.py +0 -0
  244. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/adapters/__init__.py +0 -0
  245. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/adapters/_sweep_guard.py +0 -0
  246. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/adapters/kiro_cli.py +0 -0
  247. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/contract.py +0 -0
  248. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/hook_wiring_rules.py +0 -0
  249. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/phase_order.py +0 -0
  250. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/projection_io.py +0 -0
  251. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/projections/__init__.py +0 -0
  252. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/projections/codex_agent_toml.py +0 -0
  253. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/projections/copilot_agent_md.py +0 -0
  254. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/projections/copilot_hooks_json.py +0 -0
  255. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/projections/gemini_command_toml.py +0 -0
  256. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/projections/hook_id.py +0 -0
  257. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/projections/merge_json.py +0 -0
  258. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/projections/plugin_hooks.py +0 -0
  259. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/recipes/composite-agents-md.toml +0 -0
  260. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/recipes/composite-marketplace.toml +0 -0
  261. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/recipes/marketplace.toml +0 -0
  262. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/recipes/per-pack-agent-plugin.toml +0 -0
  263. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/recipes/per-pack-apm-package.toml +0 -0
  264. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/recipes/per-pack-claude-plugin.toml +0 -0
  265. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/recipes/per-pack-overlay.toml +0 -0
  266. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/route_agent_plugin.py +0 -0
  267. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/route_apm.py +0 -0
  268. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/route_claude_plugins.py +0 -0
  269. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/route_lookup.py +0 -0
  270. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/shared_libs.py +0 -0
  271. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/target_resolver.py +0 -0
  272. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/build/user_libs.py +0 -0
  273. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/catalogue_fetch/__init__.py +0 -0
  274. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/catalogue_fetch/direct_http.py +0 -0
  275. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/catalogue_fetch/jfrog_cli.py +0 -0
  276. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/catalogue_fetch/models.py +0 -0
  277. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/catalogue_tooling/build.py +0 -0
  278. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/catalogue_tooling/contracts_inspector.py +0 -0
  279. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/catalogue_tooling/defaults.py +0 -0
  280. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/catalogue_tooling/file_safety.py +0 -0
  281. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/catalogue_tooling/identity.py +0 -0
  282. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/catalogue_tooling/index_generator.py +0 -0
  283. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/catalogue_tooling/journey_validator.py +0 -0
  284. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/catalogue_tooling/manifest.py +0 -0
  285. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/catalogue_tooling/okf_discovery.py +0 -0
  286. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/catalogue_tooling/self_host.py +0 -0
  287. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/catalogue_tooling/self_host_windows.py +0 -0
  288. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/catalogue_tooling/skill_spec_lint.py +0 -0
  289. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/catalogue_tooling/toml_emit.py +0 -0
  290. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/catalogue_tooling/version_ranges.py +0 -0
  291. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/categories.py +0 -0
  292. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/commands/__init__.py +0 -0
  293. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/commands/_drop_warning.py +0 -0
  294. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/commands/adapt.py +0 -0
  295. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/commands/catalogue_build.py +0 -0
  296. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/commands/catalogue_index.py +0 -0
  297. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/commands/catalogue_init.py +0 -0
  298. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/commands/catalogue_lint.py +0 -0
  299. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/commands/catalogue_self_host.py +0 -0
  300. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/commands/catalogue_sync_defaults.py +0 -0
  301. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/commands/catalogue_verify.py +0 -0
  302. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/commands/config.py +0 -0
  303. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/commands/diff.py +0 -0
  304. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/commands/docs.py +0 -0
  305. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/commands/init_state.py +0 -0
  306. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/commands/list_packs.py +0 -0
  307. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/commands/list_profiles.py +0 -0
  308. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/commands/list_targets.py +0 -0
  309. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/commands/oplog_cmd.py +0 -0
  310. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/commands/pack_config_cmd.py +0 -0
  311. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/commands/package_catalogue.py +0 -0
  312. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/commands/reconcile.py +0 -0
  313. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/commands/render.py +0 -0
  314. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/commands/scaffold.py +0 -0
  315. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/commands/show.py +0 -0
  316. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/commands/uninstall.py +0 -0
  317. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/https_catalogue.py +0 -0
  318. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/local_exclude.py +0 -0
  319. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/oplog.py +0 -0
  320. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/pack_inventory.py +0 -0
  321. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/scaffold.py +0 -0
  322. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/source_defaults.py +0 -0
  323. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/user_config.py +0 -0
  324. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle/workspace_mcp.py +0 -0
  325. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle.egg-info/dependency_links.txt +0 -0
  326. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle.egg-info/entry_points.txt +0 -0
  327. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle.egg-info/requires.txt +0 -0
  328. {agentbundle-0.53.1 → agentbundle-0.57.0}/agentbundle.egg-info/top_level.txt +0 -0
  329. {agentbundle-0.53.1 → agentbundle-0.57.0}/conftest.py +0 -0
  330. {agentbundle-0.53.1 → agentbundle-0.57.0}/setup.cfg +0 -0
  331. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/__init__.py +0 -0
  332. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/_direct_acquisition.py +0 -0
  333. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/__init__.py +0 -0
  334. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/fixtures/claude-code-2.1.226-hook-events.json +0 -0
  335. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/fixtures/claude-code-2.1.228-hook-events.json +0 -0
  336. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/fixtures/packs/core/.apm/agents/bar.md +0 -0
  337. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/fixtures/packs/core/.apm/commands/qux.md +0 -0
  338. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/fixtures/packs/core/.apm/hook-wiring/baz.toml +0 -0
  339. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/fixtures/packs/core/.apm/hook-wiring/qux.toml +0 -0
  340. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/fixtures/packs/core/.apm/hooks/baz.py +0 -0
  341. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/fixtures/packs/core/.apm/hooks/baz.sh +0 -0
  342. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/fixtures/packs/core/.apm/skills/example/SKILL.md +0 -0
  343. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/fixtures/packs/core/.claude-plugin/plugin.json +0 -0
  344. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/fixtures/packs/core/pack.toml +0 -0
  345. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/fixtures/packs/governance-extras/.apm/skills/example/SKILL.md +0 -0
  346. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/fixtures/packs/governance-extras/.claude-plugin/plugin.json +0 -0
  347. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/fixtures/packs/governance-extras/pack.toml +0 -0
  348. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/fixtures/packs/monorepo-extras/.apm/skills/example/SKILL.md +0 -0
  349. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/fixtures/packs/monorepo-extras/.claude-plugin/plugin.json +0 -0
  350. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/fixtures/packs/monorepo-extras/pack.toml +0 -0
  351. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/fixtures/packs/product-documentation/.apm/skills/example/SKILL.md +0 -0
  352. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/fixtures/packs/product-documentation/.claude-plugin/plugin.json +0 -0
  353. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/fixtures/packs/product-documentation/pack.toml +0 -0
  354. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/fixtures/packs/user-guide-diataxis/.apm/skills/example/SKILL.md +0 -0
  355. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/fixtures/packs/user-guide-diataxis/.claude-plugin/plugin.json +0 -0
  356. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/fixtures/packs/user-guide-diataxis/pack.toml +0 -0
  357. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/fixtures/recipes/bogus-target.toml +0 -0
  358. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_adapter_claude_code.py +0 -0
  359. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_adapter_copilot.py +0 -0
  360. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_adapter_cursor.py +0 -0
  361. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_adapter_gemini.py +0 -0
  362. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_adapter_kiro.py +0 -0
  363. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_adapter_kiro_alias.py +0 -0
  364. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_adapter_kiro_cli.py +0 -0
  365. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_adapter_kiro_ide.py +0 -0
  366. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_adapter_root_bins_projection.py +0 -0
  367. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_agent_boundary_metadata_projection.py +0 -0
  368. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_build_ships_seeds.py +0 -0
  369. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_contract.py +0 -0
  370. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_contract_scope.py +0 -0
  371. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_contract_v07.py +0 -0
  372. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_contract_v08.py +0 -0
  373. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_direct_directory_cleanup.py +0 -0
  374. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_distribution_route_contract.py +0 -0
  375. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_distribution_route_golden.py +0 -0
  376. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_distribution_route_resolution.py +0 -0
  377. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_hook_wiring_rules.py +0 -0
  378. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_load_pack_hook_wiring_safely.py +0 -0
  379. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_pack_schema_allowed_adapters.py +0 -0
  380. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_plugin_hooks.py +0 -0
  381. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_projectable_subset.py +0 -0
  382. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_projection_io.py +0 -0
  383. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_projections_merge_json.py +0 -0
  384. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_route_lookup.py +0 -0
  385. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_scope_rails.py +0 -0
  386. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_security.py +0 -0
  387. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_self_host_metadata_policy.py +0 -0
  388. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_self_host_recipe_config.py +0 -0
  389. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_sequential_implementer_dispatch_projection.py +0 -0
  390. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_shared_prefix_contract.py +0 -0
  391. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_user_libs_projection.py +0 -0
  392. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_validate.py +0 -0
  393. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/build_pipeline/test_writers_emit_lf.py +0 -0
  394. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/conftest.py +0 -0
  395. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/contracts/test_agentbundle_show_schema.py +0 -0
  396. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/contracts/test_catalogue_fetch_credential_boundary.py +0 -0
  397. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/contracts/test_skill_schema.py +0 -0
  398. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/adapt/.adapt-discovery.toml +0 -0
  399. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/adapt/values.toml +0 -0
  400. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/blank_catalogue/.claude-plugin/marketplace.json +0 -0
  401. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/blank_catalogue/catalogue.toml +0 -0
  402. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/blank_catalogue/packs/.gitkeep +0 -0
  403. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/blank_catalogue/packs/_example/.apm/skills/example-skill/SKILL.md +0 -0
  404. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/blank_catalogue/packs/_example/.claude-plugin/plugin.json +0 -0
  405. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/blank_catalogue/packs/_example/README.md +0 -0
  406. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/blank_catalogue/packs/_example/evals/eval_queries.json +0 -0
  407. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/blank_catalogue/packs/_example/pack.toml +0 -0
  408. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/blank_catalogue/profiles/.gitkeep +0 -0
  409. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/blank_catalogue/profiles/_example/README.md +0 -0
  410. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/blank_catalogue/profiles/_example/profile.toml +0 -0
  411. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/brownfield/values.toml +0 -0
  412. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/brownfield-adapt/AGENTS.md +0 -0
  413. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/brownfield-adapt/AGENTS.upstream.md +0 -0
  414. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/brownfield-adapt/DESIGN.md +0 -0
  415. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/brownfield-adapt/EXPECTED_TREE.md +0 -0
  416. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/brownfield-adapt/docs/CHARTER.md +0 -0
  417. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/brownfield-adapt/docs/guides/how-to/index.md +0 -0
  418. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/brownfield-adapt/docs/howto/getting-started.md +0 -0
  419. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/brownfield-adapt-expected/AGENTS.md +0 -0
  420. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/brownfield-adapt-expected/docs/CHARTER.md +0 -0
  421. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/brownfield-adapt-user-home/.agentbundle/.adapt-discovery.toml +0 -0
  422. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/brownfield-adapt-user-home/.agentbundle/state.toml +0 -0
  423. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/catalogue_sync/adapter_contract_major_mismatch/pack.toml +0 -0
  424. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/catalogue_wave4/catalogue.toml +0 -0
  425. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/catalogue_wave4/packs/pack-with-journey/.apm/hook-wiring/example.json +0 -0
  426. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/catalogue_wave4/packs/pack-with-journey/.apm/skills/example-skill/SKILL.md +0 -0
  427. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/catalogue_wave4/packs/pack-with-journey/.apm/skills/example-skill/scripts/run.py +0 -0
  428. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/catalogue_wave4/packs/pack-with-journey/JOURNEY.md +0 -0
  429. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/catalogue_wave4/packs/pack-with-journey/pack.toml +0 -0
  430. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/catalogue_wave4/packs/pack-without-journey/pack.toml +0 -0
  431. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/catalogue_wave4/profiles/test-profile.toml +0 -0
  432. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/cognitive-load-hosts.json +0 -0
  433. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/creds/skills/argv-flag/SKILL.md +0 -0
  434. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/creds/skills/argv-flag/scripts/cli.py +0 -0
  435. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/creds/skills/argv-flag-derived/SKILL.md +0 -0
  436. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/creds/skills/argv-flag-derived/scripts/cli.py +0 -0
  437. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/creds/skills/argv-flag-normalised/SKILL.md +0 -0
  438. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/creds/skills/argv-flag-normalised/scripts/cli.py +0 -0
  439. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/creds/skills/conforming/SKILL.md +0 -0
  440. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/creds/skills/conforming/scripts/cli.py +0 -0
  441. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/creds/skills/dotfile-grep/SKILL.md +0 -0
  442. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/creds/skills/dotfile-grep/scripts/leak.py +0 -0
  443. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/creds/skills/dotfile-with-optout/SKILL.md +0 -0
  444. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/creds/skills/dotfile-with-optout/scripts/legit.py +0 -0
  445. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/creds/skills/mcp-server-headers/SKILL.md +0 -0
  446. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/creds/skills/mcp-server-headers/scripts/cli.py +0 -0
  447. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/creds/skills/missing-dont-block/SKILL.md +0 -0
  448. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/direct/ac35_corpus_verdicts.json +0 -0
  449. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/direct/golden_state_0_5.toml +0 -0
  450. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/distribution-routes/witness-packs/portable/.apm/skills/example/SKILL.md +0 -0
  451. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/distribution-routes/witness-packs/portable/pack.toml +0 -0
  452. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/external_catalogue/.claude-plugin/marketplace.json +0 -0
  453. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/external_catalogue/AGENTS.md +0 -0
  454. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/external_catalogue/LICENSE-APACHE +0 -0
  455. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/external_catalogue/LICENSE-MIT +0 -0
  456. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/external_catalogue/agentbundle/_data/install-defaults.toml +0 -0
  457. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/external_catalogue/catalogue.toml +0 -0
  458. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/external_catalogue/packs/alpha/.apm/skills/example/SKILL.md +0 -0
  459. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/external_catalogue/packs/alpha/.claude-plugin/plugin.json +0 -0
  460. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/external_catalogue/packs/alpha/pack.toml +0 -0
  461. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/external_catalogue/packs/alpha/seeds/AGENTS.md +0 -0
  462. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/external_catalogue/packs/beta/.claude-plugin/plugin.json +0 -0
  463. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/external_catalogue/packs/beta/pack.toml +0 -0
  464. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/external_catalogue/profiles/example.toml +0 -0
  465. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/install/catalogue/packs/alpha/.apm/agents/helper.md +0 -0
  466. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/install/catalogue/packs/alpha/.apm/commands/cmd.md +0 -0
  467. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/install/catalogue/packs/alpha/.apm/hook-wiring/run.toml +0 -0
  468. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/install/catalogue/packs/alpha/.apm/hooks/run.sh +0 -0
  469. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/install/catalogue/packs/alpha/.apm/skills/example/SKILL.md +0 -0
  470. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/install/catalogue/packs/alpha/.claude-plugin/plugin.json +0 -0
  471. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/install/catalogue/packs/alpha/pack.toml +0 -0
  472. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/kiro_ide_hook/ask_agent_basic.kiro.hook +0 -0
  473. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/kiro_ide_hook/run_command_with_placeholder.kiro.hook +0 -0
  474. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/lint_packs/clean/pack.toml +0 -0
  475. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/lint_packs/clean/seeds/README.md +0 -0
  476. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/list-installed/golden_120col.txt +0 -0
  477. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/list-installed/golden_80col.txt +0 -0
  478. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/list_packs/catalogue/packs/alpha/pack.toml +0 -0
  479. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/list_packs/catalogue/packs/beta/pack.toml +0 -0
  480. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/local_scope/catalogue/packs/local-test-pack/.apm/skills/local-test/SKILL.md +0 -0
  481. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/local_scope/catalogue/packs/local-test-pack/pack.toml +0 -0
  482. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/packs/cc-user-hooks/.apm/hook-wiring/on-prompt.toml +0 -0
  483. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/packs/cc-user-hooks/.apm/hooks/on-prompt.sh +0 -0
  484. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/packs/cc-user-hooks/pack.toml +0 -0
  485. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/packs/kiro-repo-hooks/.apm/agents/reviewer.md +0 -0
  486. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/packs/kiro-repo-hooks/.apm/hook-wiring/on-spawn.toml +0 -0
  487. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/packs/kiro-repo-hooks/.apm/hooks/on-spawn.sh +0 -0
  488. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/packs/kiro-repo-hooks/pack.toml +0 -0
  489. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/packs/kiro-user-hooks/.apm/agents/reviewer.md +0 -0
  490. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/packs/kiro-user-hooks/.apm/hook-wiring/on-spawn.toml +0 -0
  491. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/packs/kiro-user-hooks/.apm/hooks/on-spawn.sh +0 -0
  492. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/packs/kiro-user-hooks/pack.toml +0 -0
  493. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/packs/malformed-kiro-missing-attach/.apm/agents/reviewer.md +0 -0
  494. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/packs/malformed-kiro-missing-attach/.apm/hook-wiring/on-spawn.toml +0 -0
  495. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/packs/malformed-kiro-missing-attach/.apm/hooks/on-spawn.sh +0 -0
  496. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/packs/malformed-kiro-missing-attach/pack.toml +0 -0
  497. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/packs/malformed-kiro-pascal-events/.apm/agents/reviewer.md +0 -0
  498. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/packs/malformed-kiro-pascal-events/.apm/hook-wiring/on-spawn.toml +0 -0
  499. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/packs/malformed-kiro-pascal-events/.apm/hooks/on-spawn.sh +0 -0
  500. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/packs/malformed-kiro-pascal-events/pack.toml +0 -0
  501. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/packs/malformed-kiro-unknown-agent/.apm/agents/reviewer.md +0 -0
  502. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/packs/malformed-kiro-unknown-agent/.apm/hook-wiring/on-spawn.toml +0 -0
  503. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/packs/malformed-kiro-unknown-agent/.apm/hooks/on-spawn.sh +0 -0
  504. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/packs/malformed-kiro-unknown-agent/pack.toml +0 -0
  505. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/scaffold/test-pack/seeds/AGENTS.md +0 -0
  506. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/scaffold/test-pack/seeds/_agents-footer.md +0 -0
  507. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/scaffold/test-pack/seeds/docs/CHARTER.md +0 -0
  508. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/show_contract/agentbundle-show.schema.json +0 -0
  509. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/show_contract/catalogue.json +0 -0
  510. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/show_contract/installed_state.json +0 -0
  511. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/agents/reviewer.md +0 -0
  512. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/commands/deploy.md +0 -0
  513. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/hook-wiring/pre-commit.toml +0 -0
  514. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/hooks/lint.py +0 -0
  515. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/hooks/pre-commit.sh +0 -0
  516. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/skills/work-loop/SKILL.md +0 -0
  517. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/upgrade/catalogue_v1/packs/core/.claude-plugin/plugin.json +0 -0
  518. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/upgrade/catalogue_v1/packs/core/pack.toml +0 -0
  519. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/agents/reviewer.md +0 -0
  520. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/commands/deploy.md +0 -0
  521. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/hook-wiring/pre-commit.toml +0 -0
  522. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/hooks/lint.py +0 -0
  523. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/hooks/pre-commit.sh +0 -0
  524. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/skills/work-loop/SKILL.md +0 -0
  525. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/upgrade/catalogue_v2/packs/core/.claude-plugin/plugin.json +0 -0
  526. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/upgrade/catalogue_v2/packs/core/pack.toml +0 -0
  527. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/agents/reviewer.md +0 -0
  528. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/commands/deploy.md +0 -0
  529. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/hook-wiring/pre-commit.toml +0 -0
  530. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/hooks/lint.py +0 -0
  531. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/hooks/pre-commit.sh +0 -0
  532. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/skills/work-loop/SKILL.md +0 -0
  533. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/upgrade/catalogue_v3/packs/core/.claude-plugin/plugin.json +0 -0
  534. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/upgrade/catalogue_v3/packs/core/pack.toml +0 -0
  535. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/validate/bad_recipe_pack/pack.toml +0 -0
  536. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/validate/malformed_pack/pack.toml +0 -0
  537. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/validate/valid_pack/pack.toml +0 -0
  538. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/fixtures/validate/version_mismatch_pack/pack.toml +0 -0
  539. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/__init__.py +0 -0
  540. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_adapt_cmd.py +0 -0
  541. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_adapt_dual_scope.py +0 -0
  542. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_adapt_preflight_detection.py +0 -0
  543. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_apm_install_route.py +0 -0
  544. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_brownfield_adapt_end_to_end.py +0 -0
  545. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_brownfield_user_home_fixture.py +0 -0
  546. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_build_check_drift_gates.py +0 -0
  547. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_build_derivation_apm.py +0 -0
  548. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_catalogue_init_packageable.py +0 -0
  549. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_catalogue_verify_adapter_compat.py +0 -0
  550. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_catalogue_verify_dependencies.py +0 -0
  551. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_catalogue_verify_external_portability.py +0 -0
  552. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_catalogue_verify_fixture_checks.py +0 -0
  553. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_catalogue_verify_marketplace.py +0 -0
  554. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_catalogue_verify_output_drift.py +0 -0
  555. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_catalogue_verify_package_preflight.py +0 -0
  556. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_catalogue_verify_profile_schema.py +0 -0
  557. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_catalogue_verify_step1.py +0 -0
  558. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_catalogue_wave4_index_generator.py +0 -0
  559. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_catalogue_wave4_integration.py +0 -0
  560. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_catalogue_wave4_journey_validator.py +0 -0
  561. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_catalogue_wave4_schema.py +0 -0
  562. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_config_cascade.py +0 -0
  563. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_credential_brokers_pack_install.py +0 -0
  564. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_credentials_wheel.py +0 -0
  565. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_editable_source_detection.py +0 -0
  566. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_hook_wiring_ingress.py +0 -0
  567. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_install_converters_user_scope.py +0 -0
  568. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_install_copilot_full_parity.py +0 -0
  569. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_install_default_source.py +0 -0
  570. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_install_dependencies_gate.py +0 -0
  571. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_install_dual_scope.py +0 -0
  572. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_install_layout_is_best_effort.py +0 -0
  573. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_install_orphan_reshape.py +0 -0
  574. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_install_pack_metadata_shape.py +0 -0
  575. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_install_profile.py +0 -0
  576. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_install_repo_scope_per_adapter.py +0 -0
  577. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_install_research_user_scope.py +0 -0
  578. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_install_seed_delivery.py +0 -0
  579. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_install_upgrade_offer.py +0 -0
  580. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_install_user_hooks.py +0 -0
  581. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_install_user_scope_allowed_adapters.py +0 -0
  582. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_jfrog_cli_contract.py +0 -0
  583. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_kiro_ide_hook_e2e.py +0 -0
  584. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_kiro_user_hooks_fixture.py +0 -0
  585. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_list_packs_cmd.py +0 -0
  586. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_marketplace_manifest_regression.py +0 -0
  587. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_orphan_cleanup_respects_foreign_state.py +0 -0
  588. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_portable_catalogue_authentication.py +0 -0
  589. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_recommends_cross_scope.py +0 -0
  590. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_reconcile.py +0 -0
  591. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_scaffold_projection.py +0 -0
  592. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_self_host_sweep_respects_state.py +0 -0
  593. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_shared_prefix_coexistence.py +0 -0
  594. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_tier_invariants.py +0 -0
  595. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_uninstall_cmd.py +0 -0
  596. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_uninstall_user_hooks.py +0 -0
  597. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_upgrade_attach_to_agent.py +0 -0
  598. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_version_gate_matrix.py +0 -0
  599. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_workspace_mcp_git_fsm.py +0 -0
  600. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/integration/test_zipapp.py +0 -0
  601. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/performance/__init__.py +0 -0
  602. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/test_adapter_permissions_projection.py +0 -0
  603. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/test_workspace_mcp_elicit.py +0 -0
  604. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/test_workspace_mcp_event_bridge.py +0 -0
  605. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/test_workspace_mcp_git.py +0 -0
  606. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/test_workspace_mcp_lifecycle.py +0 -0
  607. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/test_workspace_mcp_stdin.py +0 -0
  608. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/test_workspace_mcp_tools.py +0 -0
  609. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/__init__.py +0 -0
  610. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/conftest.py +0 -0
  611. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_architect_readme_install_command.py +0 -0
  612. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_catalogue_fetch.py +0 -0
  613. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_catalogue_fetch_jfrog.py +0 -0
  614. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_catalogue_package_include_diagnostic.py +0 -0
  615. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_catalogue_self_hosted_export_removal.py +0 -0
  616. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_catalogue_skill_spec_lint.py +0 -0
  617. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_catalogue_sync_fixture_set.py +0 -0
  618. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_catalogue_tooling_build.py +0 -0
  619. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_catalogue_tooling_file_safety.py +0 -0
  620. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_catalogue_tooling_identity.py +0 -0
  621. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_catalogue_tooling_source_package.py +0 -0
  622. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_catalogue_wave3_offline_navigation.py +0 -0
  623. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_cli_catalogue_optional.py +0 -0
  624. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_cli_help_lists_config.py +0 -0
  625. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_cli_list_targets_help.py +0 -0
  626. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_cli_namespace_fixture.py +0 -0
  627. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_cli_path_normalisation.py +0 -0
  628. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_cli_profile_surface.py +0 -0
  629. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_cli_scope_flags.py +0 -0
  630. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_codex_agent_toml.py +0 -0
  631. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_codex_projection_modes.py +0 -0
  632. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_cognitive_load_seed_contract.py +0 -0
  633. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_common_classify_seeds.py +0 -0
  634. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_config.py +0 -0
  635. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_config_cmd.py +0 -0
  636. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_configured_adapter.py +0 -0
  637. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_confirm_helper.py +0 -0
  638. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_contract_parity.py +0 -0
  639. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_contract_v0_3_schema.py +0 -0
  640. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_copilot_agent_md.py +0 -0
  641. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_copilot_hooks_json.py +0 -0
  642. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_copilot_user_scope_wiring.py +0 -0
  643. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_credbroker_lint_hardening.py +0 -0
  644. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_diff_cmd.py +0 -0
  645. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_direct_lifecycle_facts.py +0 -0
  646. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_direct_upgrade.py +0 -0
  647. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_footprint_ownership.py +0 -0
  648. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_init_state_cmd.py +0 -0
  649. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_install_argparse_adapter_flag.py +0 -0
  650. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_install_argparse_emit_install_routes.py +0 -0
  651. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_install_defaults_preferred_adapter.py +0 -0
  652. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_install_dropped_primitives_warning.py +0 -0
  653. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_install_force_help.py +0 -0
  654. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_install_messages.py +0 -0
  655. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_install_messages_repo_scope.py +0 -0
  656. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_install_state_provenance.py +0 -0
  657. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_kiro_ide_hook_schema.py +0 -0
  658. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_lint_agent_artifacts_metadata_auth.py +0 -0
  659. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_list_targets_cmd.py +0 -0
  660. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_local_exclude_git_cache.py +0 -0
  661. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_local_scope_schema.py +0 -0
  662. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_local_scope_t10_uninstall.py +0 -0
  663. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_local_scope_t12_show.py +0 -0
  664. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_local_scope_t2_resolve.py +0 -0
  665. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_local_scope_t3_config.py +0 -0
  666. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_local_scope_t4_state_path.py +0 -0
  667. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_local_scope_t5_list_installed.py +0 -0
  668. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_local_scope_t8_install.py +0 -0
  669. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_local_scope_t9_exclude.py +0 -0
  670. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_marker_schema_version_parity.py +0 -0
  671. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_merge_into_agent_json.py +0 -0
  672. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_multi_adapter_disambiguator.py +0 -0
  673. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_nested_symlink_hardening.py +0 -0
  674. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_offer_upgrade_namespace.py +0 -0
  675. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_okf_discovery.py +0 -0
  676. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_orphan_sweep_guards.py +0 -0
  677. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_pack_inventory.py +0 -0
  678. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_pipeline_phase_order.py +0 -0
  679. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_profile_reader.py +0 -0
  680. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_render.py +0 -0
  681. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_render_cmd.py +0 -0
  682. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_render_table.py +0 -0
  683. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_resolve_state_path.py +0 -0
  684. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_resolve_target_adapter_user_config.py +0 -0
  685. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_safety_repo_scope_prefixes.py +0 -0
  686. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_safety_scan_per_pack_scoping.py +0 -0
  687. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_scaffold_cmd.py +0 -0
  688. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_scope.py +0 -0
  689. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_self_host_windows.py +0 -0
  690. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_shared_prefix_disclosure.py +0 -0
  691. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_source_defaults.py +0 -0
  692. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_state_v01_refuse_write.py +0 -0
  693. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_state_v02.py +0 -0
  694. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_state_v0_4_schema.py +0 -0
  695. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_statelock.py +0 -0
  696. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_statelock_hardening.py +0 -0
  697. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_target_resolver.py +0 -0
  698. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_unresolved_markers.py +0 -0
  699. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_upgrade_recap.py +0 -0
  700. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_upgrade_source_inference.py +0 -0
  701. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_user_config_io.py +0 -0
  702. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_user_config_isolation.py +0 -0
  703. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_user_config_path.py +0 -0
  704. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_user_config_source.py +0 -0
  705. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_user_merge_json.py +0 -0
  706. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_validate_attach_to_agent.py +0 -0
  707. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_validate_categories.py +0 -0
  708. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_validate_hook_wiring_per_file_compatibility.py +0 -0
  709. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_values_from_shapes.py +0 -0
  710. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_version.py +0 -0
  711. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_windows_direct_suite_registration.py +0 -0
  712. {agentbundle-0.53.1 → agentbundle-0.57.0}/tests/unit/test_workspace_mcp_events_poller.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentbundle
3
- Version: 0.53.1
3
+ Version: 0.57.0
4
4
  Summary: npm for your coding agent. Install packs of skills, subagents, and hooks into any repo, for every major agent.
5
5
  Author-email: eugenelim <eugenelim@users.noreply.github.com>
6
6
  License-Expression: Apache-2.0 OR MIT
@@ -35,6 +35,43 @@ python -m pip install agentbundle
35
35
 
36
36
  Requires Python 3.11+. Runs on macOS, Linux, and Windows.
37
37
 
38
+ ## What's new in 0.57.0
39
+
40
+ `install` and `upgrade` now print the steps to move to a renamed pack when the
41
+ catalogue renamed the one you asked for. The governance pack is now
42
+ `repo-governance`. CLIs older than 0.57.0 print plain "not found", so the steps
43
+ are also in the `repo-governance` pack README and the changelog.
44
+
45
+ ## What's new in 0.56.0
46
+
47
+ `agentbundle --version` and `catalogue contracts list` now report the catalogue
48
+ specification version. **Breaking:** `catalogue contracts list --format json`
49
+ now prints an object, `{"catalogue_specification": "<version>", "contracts":
50
+ [...]}`, instead of a bare array. Read the `contracts` key for the rows.
51
+
52
+ ## What's new in 0.55.0
53
+
54
+ A new bundled contract, `catalogue-manifest.schema.json`, describes the shape
55
+ of the release archive manifest, and `catalogue contracts list`, `show`, and
56
+ `export` expose it. It checks shape only and is not evidence of integrity or
57
+ origin. `catalogue verify` now rejects a boolean `schema` value in
58
+ `catalogue-manifest.json` with `CAT-V-ARC-011`. The archive guide states what
59
+ proves where an archive came from.
60
+
61
+ ## What's new in 0.54.0
62
+
63
+ Every contract now loads from the copy bundled with `agentbundle`. A
64
+ `contracts/` folder in or above a catalogue no longer overrides
65
+ `target-vocab.toml` or `adapter.toml`, and a missing or unparsable bundled
66
+ contract fails closed. `catalogue lint` now reports a missing pack schema as a
67
+ `CAT-L006` error instead of a warning that skipped validation.
68
+
69
+ ## What's new in 0.53.2
70
+
71
+ Error messages from `install` and from `.adapt-discovery.toml` loading state
72
+ their rule directly instead of citing internal design records. The legacy
73
+ layout notices now say `legacy dist-tree`. Exit codes are unchanged.
74
+
38
75
  ## What's new in 0.53.1
39
76
 
40
77
  `agentbundle catalogue init` now writes a root `AGENTS.md` and a `CLAUDE.md`, so
@@ -14,6 +14,43 @@ python -m pip install agentbundle
14
14
 
15
15
  Requires Python 3.11+. Runs on macOS, Linux, and Windows.
16
16
 
17
+ ## What's new in 0.57.0
18
+
19
+ `install` and `upgrade` now print the steps to move to a renamed pack when the
20
+ catalogue renamed the one you asked for. The governance pack is now
21
+ `repo-governance`. CLIs older than 0.57.0 print plain "not found", so the steps
22
+ are also in the `repo-governance` pack README and the changelog.
23
+
24
+ ## What's new in 0.56.0
25
+
26
+ `agentbundle --version` and `catalogue contracts list` now report the catalogue
27
+ specification version. **Breaking:** `catalogue contracts list --format json`
28
+ now prints an object, `{"catalogue_specification": "<version>", "contracts":
29
+ [...]}`, instead of a bare array. Read the `contracts` key for the rows.
30
+
31
+ ## What's new in 0.55.0
32
+
33
+ A new bundled contract, `catalogue-manifest.schema.json`, describes the shape
34
+ of the release archive manifest, and `catalogue contracts list`, `show`, and
35
+ `export` expose it. It checks shape only and is not evidence of integrity or
36
+ origin. `catalogue verify` now rejects a boolean `schema` value in
37
+ `catalogue-manifest.json` with `CAT-V-ARC-011`. The archive guide states what
38
+ proves where an archive came from.
39
+
40
+ ## What's new in 0.54.0
41
+
42
+ Every contract now loads from the copy bundled with `agentbundle`. A
43
+ `contracts/` folder in or above a catalogue no longer overrides
44
+ `target-vocab.toml` or `adapter.toml`, and a missing or unparsable bundled
45
+ contract fails closed. `catalogue lint` now reports a missing pack schema as a
46
+ `CAT-L006` error instead of a warning that skipped validation.
47
+
48
+ ## What's new in 0.53.2
49
+
50
+ Error messages from `install` and from `.adapt-discovery.toml` loading state
51
+ their rule directly instead of citing internal design records. The legacy
52
+ layout notices now say `legacy dist-tree`. Exit codes are unchanged.
53
+
17
54
  ## What's new in 0.53.1
18
55
 
19
56
  `agentbundle catalogue init` now writes a root `AGENTS.md` and a `CLAUDE.md`, so
@@ -1,4 +1,6 @@
1
1
  {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://eugenelim.github.io/agent-ready-repo/docs/spec/catalogue/0.1/adapter.schema.json",
2
4
  "x-spec": "docs/specs/distribution-route-contract",
3
5
  "type": "object",
4
6
  "required": ["contract", "primitive", "adapter"],
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "x-spec": "docs/specs/catalogue-wave4-semantic-contracts-index",
3
3
  "$schema": "https://json-schema.org/draft/2020-12/schema",
4
- "$id": "catalogue-index.schema.json",
4
+ "$id": "https://eugenelim.github.io/agent-ready-repo/docs/spec/catalogue/0.1/catalogue-index.schema.json",
5
5
  "title": "Neutral catalogue index",
6
6
  "type": "object",
7
7
  "additionalProperties": false,
@@ -0,0 +1,62 @@
1
+ {
2
+ "x-spec": "docs/specs/catalogue-manifest-schema",
3
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4
+ "$id": "https://eugenelim.github.io/agent-ready-repo/docs/spec/catalogue/0.1/catalogue-manifest.schema.json",
5
+ "title": "Catalogue archive manifest",
6
+ "description": "Shape of the catalogue-manifest.json that `agentbundle catalogue package` writes into a catalogue archive. This schema describes shape only. A manifest that is valid against it is neither archive verification (the archive's bytes, digests and members are checked by `agentbundle catalogue verify`) nor evidence of who published the archive. Origin is established only by `catalogue verify --sha256-file` with a sidecar, or by a signature, obtained through a separately authenticated channel. Objects stay open: extra keys are allowed. The writer also emits keys this schema does not type because the verifier does not check them: source_revision, minimum_agentbundle_version, catalogue_name, catalogue_display_name and marketplace_digest (each may be null or a string), adapter_contract_version and pack_schema_version.",
7
+ "type": "object",
8
+ "required": ["schema", "bundle", "release", "generated_at", "files", "packs"],
9
+ "properties": {
10
+ "schema": {
11
+ "description": "Manifest schema version, 1 or 2. The package's validator rejects an integer-valued number such as 1.0 that standard JSON Schema validators and `catalogue verify` accept.",
12
+ "type": "integer",
13
+ "enum": [1, 2]
14
+ },
15
+ "bundle": {"type": "string"},
16
+ "release": {"type": "string"},
17
+ "generated_at": {"type": "string"},
18
+ "files": {
19
+ "type": "array",
20
+ "items": {
21
+ "type": "object",
22
+ "required": ["path", "sha256"],
23
+ "properties": {
24
+ "path": {"type": "string"},
25
+ "sha256": {"type": "string"}
26
+ }
27
+ }
28
+ },
29
+ "packs": {
30
+ "type": "array",
31
+ "items": {
32
+ "type": "object",
33
+ "required": ["name", "version"],
34
+ "properties": {
35
+ "name": {"type": "string"},
36
+ "version": {"type": "string"},
37
+ "path": {"type": "string"},
38
+ "digest": {"type": "string"}
39
+ },
40
+ "if": {"required": ["digest"]},
41
+ "then": {"required": ["path"]}
42
+ }
43
+ },
44
+ "profiles": {
45
+ "type": "array",
46
+ "items": {
47
+ "if": {"type": "string"},
48
+ "else": {
49
+ "type": "object",
50
+ "required": ["name"],
51
+ "properties": {
52
+ "name": {"type": "string"},
53
+ "path": {"type": "string"},
54
+ "digest": {"type": "string"}
55
+ },
56
+ "if": {"required": ["digest"]},
57
+ "then": {"required": ["path"]}
58
+ }
59
+ }
60
+ }
61
+ }
62
+ }
@@ -0,0 +1,8 @@
1
+ adapter.schema.json
2
+ catalogue-index.schema.json
3
+ catalogue-manifest.schema.json
4
+ catalogue.schema.json
5
+ pack.schema.json
6
+ profile.schema.json
7
+ skill-manifest.schema.json
8
+ skill.schema.json
@@ -16,7 +16,7 @@
16
16
  "profiles/_example/README.md": "164494df049ddce3e57cb44ed604cb3d39be0a6ec2072e609ea3fa4bbfc74c72",
17
17
  "profiles/_example/profile.toml": "68af18cf50fa0327a9776b029c92bb1cf82710c649691b3ac889eb8537b8eac7",
18
18
  "tests/conformance/test_gemini_admissibility.py": "8b337da9272823aed2cb22041b3f9fd27549f075f28b9817efd5be8f8c5bb948",
19
- "tests/conformance/test_pack_layout_declared_section.py": "1e03e04b995bd3f3cd2e6362c07d05514d3fe995c0fbe59045e3cc11a1e787a0",
19
+ "tests/conformance/test_pack_layout_declared_section.py": "48f644778a08d9460458aadb92eb1157042f9094c59f859c8d44df0a271c1256",
20
20
  "tests/conformance/test_pack_metadata.py": "8ea175b88cc6e10ba10cda87676fc225ee2b968d710c8e6ab05fb20e31ec978a",
21
21
  "tests/conformance/test_shared_library_boundaries.py": "5e07783459336e657a355f43aa5a9cf6c138603624daec258ecc0fa3d74239c3"
22
22
  },
@@ -1,4 +1,4 @@
1
- """A pack's declared layout section must be one it documents (spec AC6).
1
+ """A pack's declared layout section must be one it documents.
2
2
 
3
3
  `agentbundle install` appends `[<section>] output_dir = <output_dir>` to an
4
4
  adopter's `agentbundle-layout.toml`, taking both values from the pack manifest.
@@ -209,7 +209,7 @@ def test_no_pack_documents_a_crossing_of_its_own_pairs() -> None:
209
209
 
210
210
 
211
211
  def test_every_reference_doc_agrees_with_its_pack_on_the_base() -> None:
212
- """AC6 admits a pair documented in *one* doc; this requires all of them.
212
+ """A pair documented in *one* doc is admitted; this requires all of them.
213
213
 
214
214
  A pack with several reference pages can otherwise regress one of them to a
215
215
  base the installer does not write, and stay green — the adopter reading
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "catalogue.schema.json",
3
+ "$id": "https://eugenelim.github.io/agent-ready-repo/docs/spec/catalogue/0.1/catalogue.schema.json",
4
4
  "title": "CatalogueConfig",
5
5
  "description": "JSON Schema for catalogue.toml — ini-005 Bucket 3 configuration layer.",
6
6
  "type": "object",
@@ -13,10 +13,6 @@ It detects first-install-or-update and writes a ``[[packs-installed]]`` entry
13
13
  to the scope-correct ``.adapt-install-marker.toml`` file so the existing core
14
14
  session-start nudge and ``/adapt-to-project`` skill can consume it.
15
15
 
16
- Specs:
17
- docs/specs/claude-plugins-install-route/spec.md (route = "claude-plugins")
18
- docs/specs/apm-install-route-parity/spec.md (route = "apm"; --install-route flag)
19
-
20
16
  CLI:
21
17
  ``--install-route {claude-plugins,apm}`` is *required*. The build pipeline bakes
22
18
  the value into the projected hook ``command`` at projection time for both routes;
@@ -604,8 +600,8 @@ def _serialise_marker(entries: list[dict]) -> str:
604
600
  lines.append(f"install-route = {_emit_basic_string(install_route)}")
605
601
  # Pass-through unresolved-markers and new-companions if present on the
606
602
  # entry. CLI-seeded entries carry both; writer-created entries omit them
607
- # (the writer has no visibility into the projected primitive tree —
608
- # per spec). Re-emit verbatim using _emit_basic_string so CLI-seeded
603
+ # (the writer has no visibility into the projected primitive tree).
604
+ # Re-emit verbatim using _emit_basic_string so CLI-seeded
609
605
  # queue/companion lists survive a Claude-plugins writer pass.
610
606
  if "unresolved-markers" in entry:
611
607
  markers_repr = ", ".join(
@@ -692,9 +688,10 @@ def _write_hash(plugin_data: pathlib.Path, current_hash: str) -> None:
692
688
  """Write the hash file at ``${CLAUDE_PLUGIN_DATA}/pack-manifest-hash``.
693
689
 
694
690
  Only called from ``main`` AFTER ``_write_marker`` returns successfully
695
- (the write-after-success ordering is the spec's robustness rail — see
696
- Boundaries §Never do). Hash-write failure is non-fatal (main allows it
697
- to proceed with exit 0 + warning); the next session retries detection.
691
+ (write-after-success ordering, so a failed marker write is retried
692
+ next session instead of being masked by a fresh hash). Hash-write
693
+ failure is non-fatal (main allows it to proceed with exit 0 + warning);
694
+ the next session retries detection.
698
695
 
699
696
  Uses tempfile + os.replace for atomicity, matching the marker write rail.
700
697
  """
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "pack.schema.json",
3
+ "$id": "https://eugenelim.github.io/agent-ready-repo/docs/spec/catalogue/0.1/pack.schema.json",
4
4
  "title": "PackConfig",
5
5
  "description": "JSON Schema for pack.toml — pack metadata and adapter-contract configuration.",
6
6
  "type": "object",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "profile.schema.json",
3
+ "$id": "https://eugenelim.github.io/agent-ready-repo/docs/spec/catalogue/0.1/profile.schema.json",
4
4
  "title": "ProfileConfig",
5
5
  "description": "JSON Schema for profiles/*.toml — pack-profile install bundles.",
6
6
  "type": "object",
@@ -3,6 +3,7 @@ adapter.toml
3
3
  agent-plugin-extension-namespaces.schema.json
4
4
  agent-plugin-extension-namespaces.toml
5
5
  catalogue-index.schema.json
6
+ catalogue-manifest.schema.json
6
7
  catalogue.schema.json
7
8
  distribution-routes.schema.json
8
9
  distribution-routes.toml
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft-07/schema#",
3
- "$id": "skill-manifest.schema.json",
3
+ "$id": "https://eugenelim.github.io/agent-ready-repo/docs/spec/catalogue/0.1/skill-manifest.schema.json",
4
4
  "type": "object",
5
5
  "required": ["id", "name", "version", "description"],
6
6
  "additionalProperties": false,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "skill.schema.json",
3
+ "$id": "https://eugenelim.github.io/agent-ready-repo/docs/spec/catalogue/0.1/skill.schema.json",
4
4
  "title": "SkillFrontmatter",
5
5
  "description": "JSON Schema for SKILL.md frontmatter — the closed key set enforced by agentbundle catalogue lint --deep.",
6
6
  "type": "object",
@@ -127,7 +127,7 @@ def _parse_frontmatter(
127
127
  except UnicodeDecodeError as exc:
128
128
  raise BoundedMetadataError(f"{label}: invalid UTF-8") from exc
129
129
  # Line endings are normalised for the PARSE ONLY. `data` is the byte string
130
- # AC15 says is written to the normalized tree and fed to the digest, and it
130
+ # is written to the normalized tree and fed to the digest, and it
131
131
  # is untouched here — this rebinds `text`, never `data`.
132
132
  #
133
133
  # Without this, a `SKILL.md` saved with CRLF — the default of most Windows
@@ -153,8 +153,8 @@ def _parse_frontmatter(
153
153
  # after the parse — which is what this did — refuses the whole source when
154
154
  # an unrecognised key holds a value the bounded subset cannot represent:
155
155
  # `version: 1.0` refused while `version: 2` was dropped, and `version` is
156
- # the second most common publisher key in the surveyed corpus. RFC-0098 E18
157
- # says an unrecognised key is ignored regardless of its value type.
156
+ # the second most common publisher key in the surveyed corpus. The
157
+ # rule is that an unrecognised key is ignored regardless of its value type.
158
158
  parsed = _parse_subset(
159
159
  _strip_unrecognised_keys(raw, allowed_top_level_keys), label, limits
160
160
  )
@@ -19,14 +19,13 @@ Subcommands landing in later tasks (T6–T8):
19
19
  from __future__ import annotations
20
20
 
21
21
  import argparse
22
- import json
23
22
  import shutil
24
23
  import sys
25
24
  from pathlib import Path
26
25
 
27
26
  from agentbundle.build.contract import load as load_contract
28
27
  from agentbundle.build.lint_packs import cmd_lint_packs
29
- from agentbundle.build.main import _read_bundled, cmd_build
28
+ from agentbundle.build.main import cmd_build
30
29
  from agentbundle.build.self_host import cmd_check, cmd_self
31
30
  from agentbundle.build.validate import validate as validate_instance
32
31
 
@@ -42,12 +41,15 @@ def _cmd_validate(args: argparse.Namespace) -> int:
42
41
  )
43
42
  return 1
44
43
 
44
+ # Imported at call time so a patch of `agentbundle.build.main._read_bundled`
45
+ # reaches this call.
46
+ from agentbundle.build.main import _load_bundled_json
47
+
45
48
  try:
46
- schema_text = _read_bundled("adapter.schema.json")
47
- except (FileNotFoundError, ModuleNotFoundError):
49
+ schema = _load_bundled_json("adapter.schema.json")
50
+ except (OSError, ValueError, ModuleNotFoundError) as exc:
48
51
  print(
49
- "validate: adapter.schema.json not found in package data or "
50
- "repository contracts",
52
+ f"validate: cannot read bundled _data/adapter.schema.json: {exc}",
51
53
  file=sys.stderr,
52
54
  )
53
55
  return 1
@@ -58,7 +60,6 @@ def _cmd_validate(args: argparse.Namespace) -> int:
58
60
  print(f"validate: failed to load {contract_path}: {exc}", file=sys.stderr)
59
61
  return 1
60
62
 
61
- schema = json.loads(schema_text)
62
63
  errors = validate_instance(contract, schema)
63
64
  if errors:
64
65
  print(
@@ -227,7 +227,7 @@ def collect_pack_root_bins(pack_dir: Path) -> dict[str, Path]:
227
227
  target into each pair. ``agentbundle install`` operates on a single
228
228
  resolved catalogue ``pack_dir`` and owns its own per-scope path-jail, so
229
229
  it needs basenames + sources for one pack, not absolute targets under a
230
- build tree (credbroker-user-scope plan T4 — the install-side seam). The
230
+ build tree (the install-side seam). The
231
231
  install caller composes ``.agentbundle/bin/<basename>`` relpaths from
232
232
  :data:`TARGET_SUBDIR` and writes via ``safety.write_jailed`` with POSIX
233
233
  :data:`EXECUTABLE_MODE`.
@@ -84,8 +84,8 @@ def project_packs(
84
84
 
85
85
 
86
86
  # Mirror of kiro.py:_skill_direct_directory_target — keep in sync.
87
- # A shared helper is barred by the spec's `Never do` boundary (no
88
- # expansion of projections/direct_directory.py beyond `sweep_orphans`).
87
+ # A shared helper is deliberately avoided, so projections/direct_directory.py
88
+ # stays limited to `sweep_orphans`.
89
89
  def _resolve_target(output_root: Path, target_path: str) -> Path:
90
90
  """Join a contract ``target-path`` onto ``output_root``, confined.
91
91
 
@@ -119,7 +119,7 @@ def _installed_skill_names(output_root: Path, target_dir: Path) -> set[str]:
119
119
  """Return skill dir names recorded in the repo state file under target_dir.
120
120
 
121
121
  Delegates to the one shared implementation so this adapter cannot
122
- drift from the other six; see `_sweep_guard` for the AC28 refusal.
122
+ drift from the other six; see `_sweep_guard` for the unreadable-state refusal.
123
123
  """
124
124
  from agentbundle.build.adapters._sweep_guard import installed_skill_names
125
125
 
@@ -193,7 +193,7 @@ def _project_direct_directory(source_dir: Path, target_dir: Path) -> None:
193
193
  continue
194
194
  if entry.is_dir():
195
195
  destination = target_dir / entry.name
196
- # Spec § Never do — `shutil.rmtree` is barred against
196
+ # `shutil.rmtree` is barred against
197
197
  # any entry whose `is_symlink()` is true. If a previous
198
198
  # run left a symlink at the destination path, unlink it
199
199
  # (removes the link, not the target).
@@ -45,7 +45,7 @@ def _installed_skill_names(output_root: Path, target_dir: Path) -> set[str]:
45
45
  """Return skill dir names recorded in the repo state file under target_dir.
46
46
 
47
47
  Delegates to the one shared implementation so this adapter cannot
48
- drift from the other six; see `_sweep_guard` for the AC28 refusal.
48
+ drift from the other six; see `_sweep_guard` for the unreadable-state refusal.
49
49
  """
50
50
  from agentbundle.build.adapters._sweep_guard import installed_skill_names
51
51
 
@@ -157,7 +157,7 @@ def project_packs(
157
157
  if entry.is_dir():
158
158
  expected_names.add(entry.name)
159
159
  destination = target_dir / entry.name
160
- # Spec § Never do — `shutil.rmtree` is barred
160
+ # `shutil.rmtree` is barred
161
161
  # against any entry whose `is_symlink()` is
162
162
  # true. If a previous projection left a
163
163
  # symlink at the destination path, unlink it
@@ -173,7 +173,7 @@ def project_packs(
173
173
  symlinks=True,
174
174
  ignore=ignore_absolute_symlinks,
175
175
  )
176
- # Bound to `skill` only per spec § Never do. Other
176
+ # Orphan sweeping is bound to `skill` only. Other
177
177
  # direct-directory primitives opt in explicitly.
178
178
  if primitive_name == "skill":
179
179
  expected_names |= _installed_skill_names(output_root, target_dir)
@@ -219,7 +219,7 @@ def _installed_skill_names(output_root: Path, target_dir: Path) -> set[str]:
219
219
  """Return skill dir names recorded in the repo state file under target_dir.
220
220
 
221
221
  Delegates to the one shared implementation so this adapter cannot
222
- drift from the other six; see `_sweep_guard` for the AC28 refusal.
222
+ drift from the other six; see `_sweep_guard` for the unreadable-state refusal.
223
223
  """
224
224
  from agentbundle.build.adapters._sweep_guard import installed_skill_names
225
225
 
@@ -234,7 +234,7 @@ def _sweep_skill_orphans(pack_paths: list[Path], contract: dict, output_root: Pa
234
234
  for entry in source_dir.iterdir():
235
235
  if entry.is_dir():
236
236
  expected_names.add(entry.name)
237
- # AC28: this adapter previously built `expected_names` from pack
237
+ # This adapter previously built `expected_names` from pack
238
238
  # sources alone and had no protected set at all, so a sweep removed
239
239
  # every skill installed by `agentbundle install` into the same
240
240
  # directory. The installed set is unioned in, and an unreadable
@@ -229,7 +229,7 @@ def _sweep_skill_orphans(pack_paths: list[Path], contract: dict, output_root: Pa
229
229
  for entry in source_dir.iterdir():
230
230
  if entry.is_dir():
231
231
  expected_names.add(entry.name)
232
- # AC28: this adapter previously built `expected_names` from pack
232
+ # This adapter previously built `expected_names` from pack
233
233
  # sources alone and had no protected set at all, so a sweep removed
234
234
  # every skill installed by `agentbundle install` into the same
235
235
  # directory. The installed set is unioned in, and an unreadable
@@ -131,8 +131,8 @@ def project_packs(
131
131
 
132
132
 
133
133
  # Mirror of claude_code.py:_skill_direct_directory_target — keep in sync.
134
- # A shared helper is barred by the spec's `Never do` boundary (no
135
- # expansion of projections/direct_directory.py beyond `sweep_orphans`).
134
+ # A shared helper is deliberately avoided, so projections/direct_directory.py
135
+ # stays limited to `sweep_orphans`.
136
136
  def _skill_direct_directory_target(contract: dict, output_root: Path) -> Path | None:
137
137
  adapter_block = contract["adapter"]["kiro"]
138
138
  for entry in adapter_block.get("projection", []):
@@ -145,7 +145,7 @@ def _installed_skill_names(output_root: Path, target_dir: Path) -> set[str]:
145
145
  """Return skill dir names recorded in the repo state file under target_dir.
146
146
 
147
147
  Delegates to the one shared implementation so this adapter cannot
148
- drift from the other six; see `_sweep_guard` for the AC28 refusal.
148
+ drift from the other six; see `_sweep_guard` for the unreadable-state refusal.
149
149
  """
150
150
  from agentbundle.build.adapters._sweep_guard import installed_skill_names
151
151
 
@@ -461,7 +461,7 @@ def _project_direct_directory(source_dir: Path, target_dir: Path) -> None:
461
461
  continue
462
462
  if entry.is_dir():
463
463
  destination = target_dir / entry.name
464
- # Spec § Never do — `shutil.rmtree` is barred against
464
+ # `shutil.rmtree` is barred against
465
465
  # any entry whose `is_symlink()` is true. If a previous
466
466
  # run left a symlink at the destination path, unlink it.
467
467
  if destination.is_symlink():
@@ -96,7 +96,7 @@ def _sweep_skill_orphans(pack_paths: list[Path], contract: dict, output_root: Pa
96
96
  for entry in source_dir.iterdir():
97
97
  if entry.is_dir():
98
98
  expected_names.add(entry.name)
99
- # AC28: this adapter previously built `expected_names` from pack
99
+ # This adapter previously built `expected_names` from pack
100
100
  # sources alone and had no protected set at all, so a sweep removed
101
101
  # every skill installed by `agentbundle install` into the same
102
102
  # directory. The installed set is unioned in, and an unreadable
@@ -18,7 +18,7 @@ Three checks, applied to every pack under a `--packs-dir`:
18
18
  exceed the strictest `description-max-length`. Multi-line YAML
19
19
  descriptions (`>`, `|`, continuation lines) are refused outright
20
20
  rather than mis-parsed. Constraints come from
21
- `contracts/target-vocab.toml` — see
21
+ the bundled `_data/target-vocab.toml`.
22
22
 
23
23
  The lint is Python-only so it runs on every CI platform without
24
24
  shelling out, and it is wired into `make build` / `make build-self` /
@@ -44,11 +44,6 @@ from agentbundle.safety import PathJailError, assert_portable_name
44
44
  # their content.
45
45
  _PACK_SUBTREES = ("seeds", ".apm")
46
46
 
47
- # Path to the sibling vocab file, relative to a repo root. The loader
48
- # walks up from a caller-supplied start until an ancestor contains
49
- # this relative path.
50
- _VOCAB_RELPATH = Path("contracts/target-vocab.toml")
51
-
52
47
  # Sentinel returned by `_extract_frontmatter_fields` when a key's
53
48
  # value position is `>`, `|`, or empty (signaling a folded / nested
54
49
  # block). The metadata checks translate this into a finding
@@ -57,7 +52,7 @@ _MULTILINE = object()
57
52
 
58
53
 
59
54
  class Constraints(NamedTuple):
60
- """Strictest-cap snapshot of `contracts/target-vocab.toml`.
55
+ """Strictest-cap snapshot of the bundled `_data/target-vocab.toml`.
61
56
 
62
57
  `binding_targets` keys (`"description_max"`, `"name_max"`,
63
58
  `"name_pattern"`) carry the ASCII-sorted list of targets enforcing
@@ -71,53 +66,31 @@ class Constraints(NamedTuple):
71
66
  binding_targets: dict[str, list[str]]
72
67
 
73
68
 
74
- def _walk_up_for_vocab(start: Path) -> Path | None:
75
- cursor = start.resolve()
76
- while True:
77
- possible = cursor / _VOCAB_RELPATH
78
- if possible.is_file():
79
- return possible
80
- if cursor.parent == cursor:
81
- return None
82
- cursor = cursor.parent
83
-
84
-
85
- def _load_target_vocab(start: Path) -> tuple[dict | None, str | None]:
86
- """Walk up from `start` looking for `contracts/target-vocab.toml`;
87
- then fall back to the bundled engine copy. This keeps the gate working when
88
- an adopter points `--packs-dir` at a tree outside the repo and when the
89
- engine runs from an installed artifact. Returns `(vocab_dict, None)` on
90
- success, `(None, err)` when both sources fail or the file is malformed."""
91
- candidate = _walk_up_for_vocab(start)
92
- source = str(candidate) if candidate is not None else None
93
- text = candidate.read_text(encoding="utf-8") if candidate is not None else None
94
- if text is None:
95
- try:
96
- from importlib.resources import files
69
+ def _load_target_vocab() -> tuple[dict | None, str | None]:
70
+ """Load the bundled `_data/target-vocab.toml`; no other source is tried.
97
71
 
98
- resource = files("agentbundle").joinpath(
99
- f"_data/{_VOCAB_RELPATH.name}"
100
- )
101
- if resource.is_file():
102
- source = str(resource)
103
- text = resource.read_text(encoding="utf-8")
104
- except (FileNotFoundError, ModuleNotFoundError):
105
- pass
106
- if text is None:
72
+ Returns `(vocab_dict, None)` on success, `(None, err)` when the bundled
73
+ copy is missing, unreadable or malformed. `err` names the file."""
74
+ # Imported here so a patch of `agentbundle.build.main._read_bundled`
75
+ # reaches this call; `agentbundle.build.main` as an attribute of the
76
+ # package is rebound to the CLI function.
77
+ from agentbundle.build.main import _read_bundled
78
+
79
+ try:
80
+ text = _read_bundled("target-vocab.toml")
81
+ except (OSError, UnicodeDecodeError) as exc:
107
82
  return None, (
108
- "lint-packs: target-vocab.toml not found (walked up from "
109
- f"{start} and checked bundled package data; expected "
110
- f"{_VOCAB_RELPATH.as_posix()} or _data/{_VOCAB_RELPATH.name})"
83
+ f"lint-packs: cannot read bundled _data/target-vocab.toml: {exc}"
111
84
  )
112
85
  try:
113
86
  raw = tomllib.loads(text)
114
87
  except tomllib.TOMLDecodeError as exc:
115
- return None, f"lint-packs: failed to parse {source}: {exc}"
88
+ return None, f"lint-packs: failed to parse _data/target-vocab.toml: {exc}"
116
89
  targets = raw.get("target")
117
90
  if not isinstance(targets, dict) or not targets:
118
91
  return None, (
119
- f"lint-packs: {source} has no [target.<name>] tables — "
120
- f"the metadata gate has no constraints to apply"
92
+ "lint-packs: _data/target-vocab.toml has no [target.<name>] tables — "
93
+ "the metadata gate has no constraints to apply"
121
94
  )
122
95
  return raw, None
123
96
 
@@ -499,14 +472,14 @@ def lint_pack(
499
472
  from agentbundle.build import route_lookup
500
473
  from agentbundle.build.hook_wiring_rules import claude_projection_paths
501
474
  from agentbundle.build.main import (
475
+ _load_bundled_toml,
502
476
  _load_distribution_route_contract,
503
- _read_bundled,
504
477
  )
505
478
  from agentbundle.build.projections.plugin_hooks import compile_plugin_hooks
506
479
 
507
480
  contract_data = contract
508
481
  if contract_data is None:
509
- contract_data = tomllib.loads(_read_bundled("adapter.toml"))
482
+ contract_data = _load_bundled_toml("adapter.toml")
510
483
  try:
511
484
  route_data = _load_distribution_route_contract()
512
485
  route_declarations = route_lookup.read_route_declarations(route_data)
@@ -597,7 +570,7 @@ def cmd_lint_packs(args: argparse.Namespace) -> int:
597
570
  if not packs_dir.exists():
598
571
  print(f"lint-packs: packs-dir not found: {packs_dir}", file=sys.stderr)
599
572
  return 1
600
- vocab, err = _load_target_vocab(packs_dir)
573
+ vocab, err = _load_target_vocab()
601
574
  if err is not None:
602
575
  print(err, file=sys.stderr)
603
576
  print(