agentbundle 0.52.0__tar.gz → 0.53.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 (694) hide show
  1. {agentbundle-0.52.0/agentbundle.egg-info → agentbundle-0.53.0}/PKG-INFO +16 -1
  2. {agentbundle-0.52.0 → agentbundle-0.53.0}/README-pypi.md +15 -0
  3. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/catalogue-scaffold/guides/_shared/reference/catalogue-authoring-standards.md +8 -8
  4. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/catalogue-scaffold/guides/_shared/reference/catalogue-ci-contract.md +85 -7
  5. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/catalogue-scaffold/manifest.json +2 -2
  6. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/guide.schema.json +30 -5
  7. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/workspace_status_engine.py +3 -3
  8. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/catalogue_tooling/archive.py +159 -2
  9. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/catalogue_tooling/package.py +239 -27
  10. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/catalogue_tooling/results.py +7 -1
  11. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/cli.py +22 -1
  12. agentbundle-0.53.0/agentbundle/commands/catalogue_package.py +196 -0
  13. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/version.py +1 -1
  14. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/workspace_mcp.py +1 -1
  15. {agentbundle-0.52.0 → agentbundle-0.53.0/agentbundle.egg-info}/PKG-INFO +16 -1
  16. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle.egg-info/SOURCES.txt +4 -0
  17. {agentbundle-0.52.0 → agentbundle-0.53.0}/pyproject.toml +1 -1
  18. agentbundle-0.53.0/tests/unit/test_catalogue_archive_unit_digests.py +194 -0
  19. agentbundle-0.53.0/tests/unit/test_catalogue_package_compare.py +523 -0
  20. agentbundle-0.53.0/tests/unit/test_catalogue_package_refusal.py +331 -0
  21. agentbundle-0.53.0/tests/unit/test_catalogue_unit_digests.py +178 -0
  22. agentbundle-0.52.0/agentbundle/commands/catalogue_package.py +0 -98
  23. {agentbundle-0.52.0 → agentbundle-0.53.0}/MANIFEST.in +0 -0
  24. {agentbundle-0.52.0 → agentbundle-0.53.0}/README.md +0 -0
  25. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/__init__.py +0 -0
  26. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/__main__.py +0 -0
  27. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/__init__.py +0 -0
  28. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/adapter.schema.json +0 -0
  29. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/adapter.toml +0 -0
  30. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/agent-plugin-extension-namespaces.schema.json +0 -0
  31. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/agent-plugin-extension-namespaces.toml +0 -0
  32. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/catalogue-index.schema.json +0 -0
  33. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/catalogue-scaffold/packs/AGENTS.md +0 -0
  34. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/catalogue-scaffold/packs/CLAUDE.md +0 -0
  35. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/catalogue-scaffold/packs/README.md +0 -0
  36. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/catalogue-scaffold/packs/_example/.apm/skills/example-skill/SKILL.md +0 -0
  37. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/catalogue-scaffold/packs/_example/.apm/skills/example-skill/evals/eval_queries.json +0 -0
  38. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/catalogue-scaffold/packs/_example/.claude-plugin/plugin.json +0 -0
  39. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/catalogue-scaffold/packs/_example/README.md +0 -0
  40. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/catalogue-scaffold/packs/_example/pack.toml +0 -0
  41. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/catalogue-scaffold/profiles/AGENTS.md +0 -0
  42. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/catalogue-scaffold/profiles/CLAUDE.md +0 -0
  43. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/catalogue-scaffold/profiles/README.md +0 -0
  44. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/catalogue-scaffold/profiles/_example/README.md +0 -0
  45. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/catalogue-scaffold/profiles/_example/profile.toml +0 -0
  46. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/catalogue-scaffold/tests/conformance/test_gemini_admissibility.py +0 -0
  47. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/catalogue-scaffold/tests/conformance/test_pack_layout_declared_section.py +0 -0
  48. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/catalogue-scaffold/tests/conformance/test_pack_metadata.py +0 -0
  49. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/catalogue-scaffold/tests/conformance/test_shared_library_boundaries.py +0 -0
  50. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/catalogue.schema.json +0 -0
  51. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/close_work.py +0 -0
  52. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/cooling.py +0 -0
  53. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/distribution-routes.schema.json +0 -0
  54. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/distribution-routes.toml +0 -0
  55. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/file_safety.py +0 -0
  56. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/install-defaults.toml +0 -0
  57. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/install-marker.py +0 -0
  58. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/knowledge-captured-observation.schema.json +0 -0
  59. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/marketplace-entry.schema.json +0 -0
  60. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/pack.schema.json +0 -0
  61. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/plugin-manifest.derived.schema.json +0 -0
  62. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/plugin-manifest.schema.json +0 -0
  63. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/profile.schema.json +0 -0
  64. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/public-contracts.txt +0 -0
  65. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/skill-manifest.schema.json +0 -0
  66. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/skill.schema.json +0 -0
  67. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/target-vocab.toml +0 -0
  68. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/vendor/agent-plugins/1.0.0/LICENSE.md +0 -0
  69. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/vendor/agent-plugins/1.0.0/PROVENANCE.md +0 -0
  70. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/vendor/agent-plugins/1.0.0/mcp.schema.json +0 -0
  71. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/vendor/agent-plugins/1.0.0/plugin.schema.json +0 -0
  72. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/work_intake_refresh.py +0 -0
  73. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/_data/workspace_status_prune.py +0 -0
  74. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/bounded_metadata.py +0 -0
  75. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/__init__.py +0 -0
  76. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/__main__.py +0 -0
  77. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/adapter_root_bins.py +0 -0
  78. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/adapters/__init__.py +0 -0
  79. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/adapters/_sweep_guard.py +0 -0
  80. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/adapters/claude_code.py +0 -0
  81. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/adapters/codex.py +0 -0
  82. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/adapters/copilot.py +0 -0
  83. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/adapters/cursor.py +0 -0
  84. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/adapters/gemini.py +0 -0
  85. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/adapters/kiro.py +0 -0
  86. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/adapters/kiro_cli.py +0 -0
  87. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/adapters/kiro_ide.py +0 -0
  88. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/contract.py +0 -0
  89. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/hook_wiring_rules.py +0 -0
  90. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/lint_packs.py +0 -0
  91. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/main.py +0 -0
  92. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/phase_order.py +0 -0
  93. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/projection_io.py +0 -0
  94. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/projections/__init__.py +0 -0
  95. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/projections/codex_agent_toml.py +0 -0
  96. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/projections/copilot_agent_md.py +0 -0
  97. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/projections/copilot_hooks_json.py +0 -0
  98. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/projections/direct_directory.py +0 -0
  99. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/projections/gemini_command_toml.py +0 -0
  100. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/projections/hook_id.py +0 -0
  101. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/projections/kiro_ide_hook.py +0 -0
  102. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/projections/merge_into_agent_json.py +0 -0
  103. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/projections/merge_json.py +0 -0
  104. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/projections/plugin_hooks.py +0 -0
  105. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/projections/user_merge_json.py +0 -0
  106. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/recipes/composite-agents-md.toml +0 -0
  107. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/recipes/composite-marketplace.toml +0 -0
  108. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/recipes/marketplace.toml +0 -0
  109. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/recipes/per-pack-agent-plugin.toml +0 -0
  110. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/recipes/per-pack-apm-package.toml +0 -0
  111. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/recipes/per-pack-claude-plugin.toml +0 -0
  112. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/recipes/per-pack-overlay.toml +0 -0
  113. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/recipes/self-host.toml +0 -0
  114. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/route_agent_plugin.py +0 -0
  115. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/route_apm.py +0 -0
  116. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/route_claude_plugins.py +0 -0
  117. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/route_lookup.py +0 -0
  118. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/scope_rails.py +0 -0
  119. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/self_host.py +0 -0
  120. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/shared_libs.py +0 -0
  121. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/target_resolver.py +0 -0
  122. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/user_libs.py +0 -0
  123. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/build/validate.py +0 -0
  124. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/catalogue.py +0 -0
  125. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/catalogue_fetch/__init__.py +0 -0
  126. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/catalogue_fetch/direct_http.py +0 -0
  127. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/catalogue_fetch/jfrog_cli.py +0 -0
  128. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/catalogue_fetch/models.py +0 -0
  129. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/catalogue_tooling/__init__.py +0 -0
  130. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/catalogue_tooling/build.py +0 -0
  131. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/catalogue_tooling/config.py +0 -0
  132. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/catalogue_tooling/contracts_inspector.py +0 -0
  133. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/catalogue_tooling/defaults.py +0 -0
  134. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/catalogue_tooling/diagnostics.py +0 -0
  135. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/catalogue_tooling/file_safety.py +0 -0
  136. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/catalogue_tooling/identity.py +0 -0
  137. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/catalogue_tooling/index_generator.py +0 -0
  138. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/catalogue_tooling/initialise.py +0 -0
  139. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/catalogue_tooling/initialise_self_hosted.py +0 -0
  140. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/catalogue_tooling/journey_validator.py +0 -0
  141. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/catalogue_tooling/lint.py +0 -0
  142. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/catalogue_tooling/manifest.py +0 -0
  143. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/catalogue_tooling/okf_discovery.py +0 -0
  144. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/catalogue_tooling/self_host.py +0 -0
  145. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/catalogue_tooling/self_host_windows.py +0 -0
  146. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/catalogue_tooling/skill_spec_lint.py +0 -0
  147. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/catalogue_tooling/toml_emit.py +0 -0
  148. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/catalogue_tooling/verify.py +0 -0
  149. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/catalogue_tooling/version_ranges.py +0 -0
  150. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/categories.py +0 -0
  151. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/commands/__init__.py +0 -0
  152. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/commands/_common.py +0 -0
  153. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/commands/_drop_warning.py +0 -0
  154. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/commands/adapt.py +0 -0
  155. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/commands/catalogue_build.py +0 -0
  156. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/commands/catalogue_contracts.py +0 -0
  157. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/commands/catalogue_index.py +0 -0
  158. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/commands/catalogue_init.py +0 -0
  159. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/commands/catalogue_lint.py +0 -0
  160. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/commands/catalogue_self_host.py +0 -0
  161. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/commands/catalogue_sync.py +0 -0
  162. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/commands/catalogue_sync_defaults.py +0 -0
  163. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/commands/catalogue_tooling_stub.py +0 -0
  164. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/commands/catalogue_verify.py +0 -0
  165. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/commands/config.py +0 -0
  166. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/commands/diff.py +0 -0
  167. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/commands/docs.py +0 -0
  168. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/commands/init_state.py +0 -0
  169. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/commands/install.py +0 -0
  170. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/commands/list_installed.py +0 -0
  171. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/commands/list_packs.py +0 -0
  172. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/commands/list_profiles.py +0 -0
  173. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/commands/list_targets.py +0 -0
  174. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/commands/oplog_cmd.py +0 -0
  175. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/commands/pack_config_cmd.py +0 -0
  176. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/commands/pack_evals.py +0 -0
  177. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/commands/package_catalogue.py +0 -0
  178. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/commands/profile.py +0 -0
  179. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/commands/reconcile.py +0 -0
  180. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/commands/render.py +0 -0
  181. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/commands/scaffold.py +0 -0
  182. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/commands/show.py +0 -0
  183. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/commands/uninstall.py +0 -0
  184. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/commands/upgrade.py +0 -0
  185. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/commands/validate.py +0 -0
  186. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/config.py +0 -0
  187. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/direct_install.py +0 -0
  188. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/direct_source.py +0 -0
  189. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/direct_source_acquisition.py +0 -0
  190. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/direct_source_state.py +0 -0
  191. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/direct_validate.py +0 -0
  192. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/https_catalogue.py +0 -0
  193. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/local_exclude.py +0 -0
  194. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/oplog.py +0 -0
  195. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/pack_inventory.py +0 -0
  196. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/render.py +0 -0
  197. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/safety.py +0 -0
  198. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/scaffold.py +0 -0
  199. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/scope.py +0 -0
  200. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/source_defaults.py +0 -0
  201. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/statelock.py +0 -0
  202. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/system_trust.py +0 -0
  203. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle/user_config.py +0 -0
  204. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle.egg-info/dependency_links.txt +0 -0
  205. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle.egg-info/entry_points.txt +0 -0
  206. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle.egg-info/requires.txt +0 -0
  207. {agentbundle-0.52.0 → agentbundle-0.53.0}/agentbundle.egg-info/top_level.txt +0 -0
  208. {agentbundle-0.52.0 → agentbundle-0.53.0}/conftest.py +0 -0
  209. {agentbundle-0.52.0 → agentbundle-0.53.0}/setup.cfg +0 -0
  210. {agentbundle-0.52.0 → agentbundle-0.53.0}/templates/install-marker.py +0 -0
  211. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/__init__.py +0 -0
  212. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/_direct_acquisition.py +0 -0
  213. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/_support.py +0 -0
  214. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/__init__.py +0 -0
  215. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/fixtures/README.md +0 -0
  216. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/fixtures/claude-code-2.1.226-hook-events.json +0 -0
  217. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/fixtures/claude-code-2.1.228-hook-events.json +0 -0
  218. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/fixtures/packs/core/.apm/agents/bar.md +0 -0
  219. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/fixtures/packs/core/.apm/commands/qux.md +0 -0
  220. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/fixtures/packs/core/.apm/hook-wiring/baz.toml +0 -0
  221. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/fixtures/packs/core/.apm/hook-wiring/qux.toml +0 -0
  222. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/fixtures/packs/core/.apm/hooks/baz.py +0 -0
  223. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/fixtures/packs/core/.apm/hooks/baz.sh +0 -0
  224. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/fixtures/packs/core/.apm/skills/example/SKILL.md +0 -0
  225. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/fixtures/packs/core/.claude-plugin/plugin.json +0 -0
  226. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/fixtures/packs/core/pack.toml +0 -0
  227. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/fixtures/packs/governance-extras/.apm/skills/example/SKILL.md +0 -0
  228. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/fixtures/packs/governance-extras/.claude-plugin/plugin.json +0 -0
  229. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/fixtures/packs/governance-extras/pack.toml +0 -0
  230. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/fixtures/packs/monorepo-extras/.apm/skills/example/SKILL.md +0 -0
  231. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/fixtures/packs/monorepo-extras/.claude-plugin/plugin.json +0 -0
  232. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/fixtures/packs/monorepo-extras/pack.toml +0 -0
  233. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/fixtures/packs/product-documentation/.apm/skills/example/SKILL.md +0 -0
  234. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/fixtures/packs/product-documentation/.claude-plugin/plugin.json +0 -0
  235. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/fixtures/packs/product-documentation/pack.toml +0 -0
  236. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/fixtures/packs/user-guide-diataxis/.apm/skills/example/SKILL.md +0 -0
  237. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/fixtures/packs/user-guide-diataxis/.claude-plugin/plugin.json +0 -0
  238. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/fixtures/packs/user-guide-diataxis/pack.toml +0 -0
  239. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/fixtures/recipes/bogus-target.toml +0 -0
  240. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_adapter_claude_code.py +0 -0
  241. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_adapter_codex.py +0 -0
  242. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_adapter_copilot.py +0 -0
  243. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_adapter_cursor.py +0 -0
  244. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_adapter_gemini.py +0 -0
  245. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_adapter_kiro.py +0 -0
  246. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_adapter_kiro_alias.py +0 -0
  247. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_adapter_kiro_cli.py +0 -0
  248. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_adapter_kiro_ide.py +0 -0
  249. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_adapter_root_bins_projection.py +0 -0
  250. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_agent_boundary_metadata_projection.py +0 -0
  251. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_agent_plugin_projection.py +0 -0
  252. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_build_ships_seeds.py +0 -0
  253. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_contract.py +0 -0
  254. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_contract_scope.py +0 -0
  255. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_contract_v07.py +0 -0
  256. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_contract_v08.py +0 -0
  257. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_direct_directory_cleanup.py +0 -0
  258. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_distribution_route_contract.py +0 -0
  259. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_distribution_route_golden.py +0 -0
  260. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_distribution_route_resolution.py +0 -0
  261. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_end_to_end_build.py +0 -0
  262. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_hook_wiring_rules.py +0 -0
  263. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_lint_packs.py +0 -0
  264. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_load_pack_hook_wiring_safely.py +0 -0
  265. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_pack_schema.py +0 -0
  266. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_pack_schema_allowed_adapters.py +0 -0
  267. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_pack_schema_install.py +0 -0
  268. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_pipeline.py +0 -0
  269. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_plugin_hooks.py +0 -0
  270. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_plugin_manifest_schema.py +0 -0
  271. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_plugin_publication_gates.py +0 -0
  272. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_policy_registry_projection.py +0 -0
  273. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_projectable_subset.py +0 -0
  274. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_projection_io.py +0 -0
  275. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_projections_merge_json.py +0 -0
  276. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_route_lookup.py +0 -0
  277. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_scope_rails.py +0 -0
  278. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_security.py +0 -0
  279. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_self_host_check.py +0 -0
  280. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_self_host_fixture_guard.py +0 -0
  281. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_self_host_metadata_policy.py +0 -0
  282. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_self_host_recipe_config.py +0 -0
  283. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_sequential_implementer_dispatch_projection.py +0 -0
  284. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_shared_libs_projection.py +0 -0
  285. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_shared_prefix_contract.py +0 -0
  286. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_user_libs_projection.py +0 -0
  287. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_validate.py +0 -0
  288. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/build_pipeline/test_writers_emit_lf.py +0 -0
  289. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/conftest.py +0 -0
  290. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/contracts/test_agentbundle_show_schema.py +0 -0
  291. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/contracts/test_catalogue_fetch_credential_boundary.py +0 -0
  292. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/contracts/test_skill_schema.py +0 -0
  293. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/adapt/.adapt-discovery.toml +0 -0
  294. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/adapt/values.toml +0 -0
  295. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/blank_catalogue/.claude-plugin/marketplace.json +0 -0
  296. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/blank_catalogue/catalogue.toml +0 -0
  297. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/blank_catalogue/packs/.gitkeep +0 -0
  298. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/blank_catalogue/packs/_example/.apm/skills/example-skill/SKILL.md +0 -0
  299. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/blank_catalogue/packs/_example/.claude-plugin/plugin.json +0 -0
  300. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/blank_catalogue/packs/_example/README.md +0 -0
  301. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/blank_catalogue/packs/_example/evals/eval_queries.json +0 -0
  302. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/blank_catalogue/packs/_example/pack.toml +0 -0
  303. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/blank_catalogue/profiles/.gitkeep +0 -0
  304. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/blank_catalogue/profiles/_example/README.md +0 -0
  305. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/blank_catalogue/profiles/_example/profile.toml +0 -0
  306. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/brownfield/values.toml +0 -0
  307. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/brownfield-adapt/AGENTS.md +0 -0
  308. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/brownfield-adapt/AGENTS.upstream.md +0 -0
  309. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/brownfield-adapt/DESIGN.md +0 -0
  310. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/brownfield-adapt/EXPECTED_TREE.md +0 -0
  311. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/brownfield-adapt/docs/CHARTER.md +0 -0
  312. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/brownfield-adapt/docs/guides/how-to/index.md +0 -0
  313. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/brownfield-adapt/docs/howto/getting-started.md +0 -0
  314. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/brownfield-adapt-expected/AGENTS.md +0 -0
  315. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/brownfield-adapt-expected/docs/CHARTER.md +0 -0
  316. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/brownfield-adapt-user-home/.agentbundle/.adapt-discovery.toml +0 -0
  317. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/brownfield-adapt-user-home/.agentbundle/state.toml +0 -0
  318. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/catalogue_sync/adapter_contract_major_mismatch/pack.toml +0 -0
  319. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/catalogue_wave4/catalogue.toml +0 -0
  320. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/catalogue_wave4/packs/pack-with-journey/.apm/hook-wiring/example.json +0 -0
  321. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/catalogue_wave4/packs/pack-with-journey/.apm/skills/example-skill/SKILL.md +0 -0
  322. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/catalogue_wave4/packs/pack-with-journey/.apm/skills/example-skill/scripts/run.py +0 -0
  323. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/catalogue_wave4/packs/pack-with-journey/JOURNEY.md +0 -0
  324. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/catalogue_wave4/packs/pack-with-journey/pack.toml +0 -0
  325. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/catalogue_wave4/packs/pack-without-journey/pack.toml +0 -0
  326. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/catalogue_wave4/profiles/test-profile.toml +0 -0
  327. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/cognitive-load-hosts.json +0 -0
  328. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/creds/skills/argv-flag/SKILL.md +0 -0
  329. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/creds/skills/argv-flag/scripts/cli.py +0 -0
  330. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/creds/skills/argv-flag-derived/SKILL.md +0 -0
  331. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/creds/skills/argv-flag-derived/scripts/cli.py +0 -0
  332. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/creds/skills/argv-flag-normalised/SKILL.md +0 -0
  333. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/creds/skills/argv-flag-normalised/scripts/cli.py +0 -0
  334. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/creds/skills/conforming/SKILL.md +0 -0
  335. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/creds/skills/conforming/scripts/cli.py +0 -0
  336. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/creds/skills/dotfile-grep/SKILL.md +0 -0
  337. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/creds/skills/dotfile-grep/scripts/leak.py +0 -0
  338. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/creds/skills/dotfile-with-optout/SKILL.md +0 -0
  339. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/creds/skills/dotfile-with-optout/scripts/legit.py +0 -0
  340. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/creds/skills/mcp-server-headers/SKILL.md +0 -0
  341. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/creds/skills/mcp-server-headers/scripts/cli.py +0 -0
  342. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/creds/skills/missing-dont-block/SKILL.md +0 -0
  343. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/direct/ac35_corpus_verdicts.json +0 -0
  344. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/direct/golden_state_0_5.toml +0 -0
  345. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/distribution-routes/golden.json +0 -0
  346. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/distribution-routes/witness-packs/portable/.apm/skills/example/SKILL.md +0 -0
  347. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/distribution-routes/witness-packs/portable/pack.toml +0 -0
  348. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/external_catalogue/.claude-plugin/marketplace.json +0 -0
  349. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/external_catalogue/AGENTS.md +0 -0
  350. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/external_catalogue/LICENSE-APACHE +0 -0
  351. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/external_catalogue/LICENSE-MIT +0 -0
  352. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/external_catalogue/agentbundle/_data/install-defaults.toml +0 -0
  353. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/external_catalogue/catalogue.toml +0 -0
  354. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/external_catalogue/packs/alpha/.apm/skills/example/SKILL.md +0 -0
  355. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/external_catalogue/packs/alpha/.claude-plugin/plugin.json +0 -0
  356. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/external_catalogue/packs/alpha/pack.toml +0 -0
  357. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/external_catalogue/packs/alpha/seeds/AGENTS.md +0 -0
  358. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/external_catalogue/packs/beta/.claude-plugin/plugin.json +0 -0
  359. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/external_catalogue/packs/beta/pack.toml +0 -0
  360. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/external_catalogue/profiles/example.toml +0 -0
  361. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/install/catalogue/packs/alpha/.apm/agents/helper.md +0 -0
  362. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/install/catalogue/packs/alpha/.apm/commands/cmd.md +0 -0
  363. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/install/catalogue/packs/alpha/.apm/hook-wiring/run.toml +0 -0
  364. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/install/catalogue/packs/alpha/.apm/hooks/run.sh +0 -0
  365. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/install/catalogue/packs/alpha/.apm/skills/example/SKILL.md +0 -0
  366. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/install/catalogue/packs/alpha/.claude-plugin/plugin.json +0 -0
  367. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/install/catalogue/packs/alpha/pack.toml +0 -0
  368. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/kiro_ide_hook/ask_agent_basic.kiro.hook +0 -0
  369. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/kiro_ide_hook/run_command_with_placeholder.kiro.hook +0 -0
  370. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/lint_packs/clean/pack.toml +0 -0
  371. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/lint_packs/clean/seeds/README.md +0 -0
  372. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/list-installed/golden_120col.txt +0 -0
  373. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/list-installed/golden_80col.txt +0 -0
  374. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/list_packs/catalogue/packs/alpha/pack.toml +0 -0
  375. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/list_packs/catalogue/packs/beta/pack.toml +0 -0
  376. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/local_scope/catalogue/packs/local-test-pack/.apm/skills/local-test/SKILL.md +0 -0
  377. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/local_scope/catalogue/packs/local-test-pack/pack.toml +0 -0
  378. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/packs/cc-user-hooks/.apm/hook-wiring/on-prompt.toml +0 -0
  379. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/packs/cc-user-hooks/.apm/hooks/on-prompt.sh +0 -0
  380. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/packs/cc-user-hooks/pack.toml +0 -0
  381. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/packs/kiro-repo-hooks/.apm/agents/reviewer.md +0 -0
  382. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/packs/kiro-repo-hooks/.apm/hook-wiring/on-spawn.toml +0 -0
  383. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/packs/kiro-repo-hooks/.apm/hooks/on-spawn.sh +0 -0
  384. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/packs/kiro-repo-hooks/pack.toml +0 -0
  385. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/packs/kiro-user-hooks/.apm/agents/reviewer.md +0 -0
  386. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/packs/kiro-user-hooks/.apm/hook-wiring/on-spawn.toml +0 -0
  387. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/packs/kiro-user-hooks/.apm/hooks/on-spawn.sh +0 -0
  388. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/packs/kiro-user-hooks/pack.toml +0 -0
  389. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/packs/malformed-kiro-missing-attach/.apm/agents/reviewer.md +0 -0
  390. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/packs/malformed-kiro-missing-attach/.apm/hook-wiring/on-spawn.toml +0 -0
  391. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/packs/malformed-kiro-missing-attach/.apm/hooks/on-spawn.sh +0 -0
  392. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/packs/malformed-kiro-missing-attach/pack.toml +0 -0
  393. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/packs/malformed-kiro-pascal-events/.apm/agents/reviewer.md +0 -0
  394. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/packs/malformed-kiro-pascal-events/.apm/hook-wiring/on-spawn.toml +0 -0
  395. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/packs/malformed-kiro-pascal-events/.apm/hooks/on-spawn.sh +0 -0
  396. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/packs/malformed-kiro-pascal-events/pack.toml +0 -0
  397. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/packs/malformed-kiro-unknown-agent/.apm/agents/reviewer.md +0 -0
  398. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/packs/malformed-kiro-unknown-agent/.apm/hook-wiring/on-spawn.toml +0 -0
  399. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/packs/malformed-kiro-unknown-agent/.apm/hooks/on-spawn.sh +0 -0
  400. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/packs/malformed-kiro-unknown-agent/pack.toml +0 -0
  401. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/scaffold/test-pack/seeds/AGENTS.md +0 -0
  402. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/scaffold/test-pack/seeds/_agents-footer.md +0 -0
  403. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/scaffold/test-pack/seeds/docs/CHARTER.md +0 -0
  404. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/show_contract/agentbundle-show.schema.json +0 -0
  405. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/show_contract/catalogue.json +0 -0
  406. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/show_contract/installed_state.json +0 -0
  407. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/agents/reviewer.md +0 -0
  408. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/commands/deploy.md +0 -0
  409. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/hook-wiring/pre-commit.toml +0 -0
  410. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/hooks/lint.py +0 -0
  411. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/hooks/pre-commit.sh +0 -0
  412. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/skills/work-loop/SKILL.md +0 -0
  413. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/upgrade/catalogue_v1/packs/core/.claude-plugin/plugin.json +0 -0
  414. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/upgrade/catalogue_v1/packs/core/pack.toml +0 -0
  415. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/agents/reviewer.md +0 -0
  416. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/commands/deploy.md +0 -0
  417. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/hook-wiring/pre-commit.toml +0 -0
  418. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/hooks/lint.py +0 -0
  419. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/hooks/pre-commit.sh +0 -0
  420. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/skills/work-loop/SKILL.md +0 -0
  421. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/upgrade/catalogue_v2/packs/core/.claude-plugin/plugin.json +0 -0
  422. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/upgrade/catalogue_v2/packs/core/pack.toml +0 -0
  423. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/agents/reviewer.md +0 -0
  424. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/commands/deploy.md +0 -0
  425. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/hook-wiring/pre-commit.toml +0 -0
  426. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/hooks/lint.py +0 -0
  427. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/hooks/pre-commit.sh +0 -0
  428. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/skills/work-loop/SKILL.md +0 -0
  429. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/upgrade/catalogue_v3/packs/core/.claude-plugin/plugin.json +0 -0
  430. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/upgrade/catalogue_v3/packs/core/pack.toml +0 -0
  431. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/validate/bad_recipe_pack/pack.toml +0 -0
  432. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/validate/malformed_pack/pack.toml +0 -0
  433. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/validate/valid_pack/pack.toml +0 -0
  434. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/fixtures/validate/version_mismatch_pack/pack.toml +0 -0
  435. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/__init__.py +0 -0
  436. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_adapt_cmd.py +0 -0
  437. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_adapt_dual_scope.py +0 -0
  438. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_adapt_preflight_detection.py +0 -0
  439. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_adapt_schema_migration.py +0 -0
  440. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_apm_install_route.py +0 -0
  441. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_blank_catalogue.py +0 -0
  442. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_brownfield_adapt_end_to_end.py +0 -0
  443. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_brownfield_round_trip.py +0 -0
  444. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_brownfield_user_home_fixture.py +0 -0
  445. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_build_check_drift_gates.py +0 -0
  446. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_build_derivation_apm.py +0 -0
  447. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_build_derivation_claude_plugins.py +0 -0
  448. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_catalogue_init.py +0 -0
  449. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_catalogue_verify_adapter_compat.py +0 -0
  450. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_catalogue_verify_dependencies.py +0 -0
  451. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_catalogue_verify_external_portability.py +0 -0
  452. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_catalogue_verify_fixture_checks.py +0 -0
  453. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_catalogue_verify_marketplace.py +0 -0
  454. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_catalogue_verify_output_drift.py +0 -0
  455. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_catalogue_verify_package_preflight.py +0 -0
  456. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_catalogue_verify_plugin_path.py +0 -0
  457. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_catalogue_verify_profile_schema.py +0 -0
  458. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_catalogue_verify_step1.py +0 -0
  459. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_catalogue_wave4_index_generator.py +0 -0
  460. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_catalogue_wave4_integration.py +0 -0
  461. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_catalogue_wave4_journey_validator.py +0 -0
  462. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_catalogue_wave4_schema.py +0 -0
  463. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_cc_user_hooks_fixture.py +0 -0
  464. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_claude_plugins_install_route.py +0 -0
  465. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_config_cascade.py +0 -0
  466. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_credential_brokers_pack_install.py +0 -0
  467. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_credentials_wheel.py +0 -0
  468. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_direct_install.py +0 -0
  469. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_discovery_schema_cross_consumer.py +0 -0
  470. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_editable_source_detection.py +0 -0
  471. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_fixtures_validate.py +0 -0
  472. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_hook_wiring_ingress.py +0 -0
  473. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_install_adapt_chain.py +0 -0
  474. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_install_cmd.py +0 -0
  475. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_install_converters_user_scope.py +0 -0
  476. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_install_copilot_full_parity.py +0 -0
  477. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_install_core_smoke.py +0 -0
  478. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_install_default_source.py +0 -0
  479. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_install_dependencies_gate.py +0 -0
  480. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_install_dropped_primitives_warning.py +0 -0
  481. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_install_dual_scope.py +0 -0
  482. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_install_layout_is_best_effort.py +0 -0
  483. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_install_orphan_reshape.py +0 -0
  484. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_install_pack_metadata_shape.py +0 -0
  485. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_install_profile.py +0 -0
  486. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_install_profile_live.py +0 -0
  487. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_install_repo_scope_per_adapter.py +0 -0
  488. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_install_research_user_scope.py +0 -0
  489. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_install_seed_delivery.py +0 -0
  490. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_install_session_start_wiring.py +0 -0
  491. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_install_upgrade_offer.py +0 -0
  492. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_install_user_hooks.py +0 -0
  493. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_install_user_scope_allowed_adapters.py +0 -0
  494. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_jfrog_cli_contract.py +0 -0
  495. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_kiro_ide_hook_e2e.py +0 -0
  496. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_kiro_repo_hooks_fixture.py +0 -0
  497. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_kiro_user_hooks_fixture.py +0 -0
  498. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_list_packs_cmd.py +0 -0
  499. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_local_scope_install.py +0 -0
  500. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_marketplace_entry_validation.py +0 -0
  501. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_marketplace_manifest_regression.py +0 -0
  502. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_multi_pack_install.py +0 -0
  503. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_orphan_cleanup_respects_foreign_state.py +0 -0
  504. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_plugin_route_membership.py +0 -0
  505. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_portable_catalogue_authentication.py +0 -0
  506. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_recommends_cross_scope.py +0 -0
  507. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_reconcile.py +0 -0
  508. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_reserved_path_filter.py +0 -0
  509. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_scaffold_projection.py +0 -0
  510. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_self_host_schema_migration.py +0 -0
  511. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_self_host_sweep_respects_state.py +0 -0
  512. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_shared_prefix_coexistence.py +0 -0
  513. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_show_cmd.py +0 -0
  514. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_tier_invariants.py +0 -0
  515. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_trust_fallback_tls.py +0 -0
  516. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_uninstall_cmd.py +0 -0
  517. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_uninstall_user_hooks.py +0 -0
  518. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_upgrade_attach_to_agent.py +0 -0
  519. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_upgrade_cmd.py +0 -0
  520. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_upgrade_user_hooks.py +0 -0
  521. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_version_gate_matrix.py +0 -0
  522. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_workspace_mcp_git_fsm.py +0 -0
  523. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/integration/test_zipapp.py +0 -0
  524. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/performance/__init__.py +0 -0
  525. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/performance/test_direct_family2_budget_cost.py +0 -0
  526. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/test_adapter_permissions_projection.py +0 -0
  527. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/test_workspace_mcp_elicit.py +0 -0
  528. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/test_workspace_mcp_event_bridge.py +0 -0
  529. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/test_workspace_mcp_git.py +0 -0
  530. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/test_workspace_mcp_git_scope.py +0 -0
  531. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/test_workspace_mcp_layout_override.py +0 -0
  532. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/test_workspace_mcp_lifecycle.py +0 -0
  533. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/test_workspace_mcp_stdin.py +0 -0
  534. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/test_workspace_mcp_tools.py +0 -0
  535. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/__init__.py +0 -0
  536. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/conftest.py +0 -0
  537. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_adapt_discovery_schema.py +0 -0
  538. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_adapter_symlink_policy.py +0 -0
  539. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_append_layout_section.py +0 -0
  540. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_architect_readme_install_command.py +0 -0
  541. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_catalogue.py +0 -0
  542. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_catalogue_ci_contract.py +0 -0
  543. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_catalogue_curation_deps.py +0 -0
  544. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_catalogue_fetch.py +0 -0
  545. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_catalogue_fetch_jfrog.py +0 -0
  546. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_catalogue_init_cli_self_hosted.py +0 -0
  547. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_catalogue_pack_defaults.py +0 -0
  548. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_catalogue_self_hosted_export_removal.py +0 -0
  549. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_catalogue_skill_spec_lint.py +0 -0
  550. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_catalogue_sync.py +0 -0
  551. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_catalogue_sync_fixture_set.py +0 -0
  552. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_catalogue_tooling_archive.py +0 -0
  553. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_catalogue_tooling_build.py +0 -0
  554. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_catalogue_tooling_defaults.py +0 -0
  555. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_catalogue_tooling_file_safety.py +0 -0
  556. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_catalogue_tooling_foundation.py +0 -0
  557. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_catalogue_tooling_identity.py +0 -0
  558. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_catalogue_tooling_init.py +0 -0
  559. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_catalogue_tooling_lint.py +0 -0
  560. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_catalogue_tooling_package.py +0 -0
  561. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_catalogue_tooling_self_host.py +0 -0
  562. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_catalogue_tooling_self_hosted_init.py +0 -0
  563. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_catalogue_tooling_source_package.py +0 -0
  564. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_catalogue_tooling_verify.py +0 -0
  565. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_catalogue_trust_fallback.py +0 -0
  566. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_catalogue_wave2_schema.py +0 -0
  567. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_catalogue_wave2_validation.py +0 -0
  568. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_catalogue_wave3_contracts_cli.py +0 -0
  569. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_catalogue_wave3_contracts_inspector.py +0 -0
  570. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_catalogue_wave3_init_nextsteps.py +0 -0
  571. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_catalogue_wave3_offline_navigation.py +0 -0
  572. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_cli_catalogue_optional.py +0 -0
  573. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_cli_help_lists_config.py +0 -0
  574. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_cli_list_targets_help.py +0 -0
  575. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_cli_namespace_fixture.py +0 -0
  576. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_cli_path_normalisation.py +0 -0
  577. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_cli_profile_surface.py +0 -0
  578. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_cli_scope_flags.py +0 -0
  579. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_codex_agent_toml.py +0 -0
  580. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_codex_projection_modes.py +0 -0
  581. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_cognitive_load_seed_contract.py +0 -0
  582. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_collect_tree_symlinks.py +0 -0
  583. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_common_classify_seeds.py +0 -0
  584. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_config.py +0 -0
  585. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_config_cmd.py +0 -0
  586. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_configured_adapter.py +0 -0
  587. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_confirm_helper.py +0 -0
  588. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_contract_parity.py +0 -0
  589. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_contract_v0_3_schema.py +0 -0
  590. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_copilot_agent_md.py +0 -0
  591. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_copilot_hooks_json.py +0 -0
  592. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_copilot_user_scope_wiring.py +0 -0
  593. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_credbroker_lint_hardening.py +0 -0
  594. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_dependencies_batch.py +0 -0
  595. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_diff_cmd.py +0 -0
  596. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_direct_admission.py +0 -0
  597. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_direct_architecture_controls.py +0 -0
  598. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_direct_diagnostics.py +0 -0
  599. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_direct_lifecycle_facts.py +0 -0
  600. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_direct_source_acquisition.py +0 -0
  601. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_direct_source_state.py +0 -0
  602. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_direct_upgrade.py +0 -0
  603. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_direct_validate.py +0 -0
  604. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_footprint_ownership.py +0 -0
  605. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_https_catalogue.py +0 -0
  606. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_init_state_cmd.py +0 -0
  607. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_install_argparse_adapter_flag.py +0 -0
  608. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_install_argparse_emit_install_routes.py +0 -0
  609. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_install_defaults_preferred_adapter.py +0 -0
  610. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_install_dropped_primitives_warning.py +0 -0
  611. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_install_event_dropped_wirings.py +0 -0
  612. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_install_first_value_handoff.py +0 -0
  613. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_install_force_help.py +0 -0
  614. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_install_inband_detection.py +0 -0
  615. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_install_messages.py +0 -0
  616. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_install_messages_repo_scope.py +0 -0
  617. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_install_refusal_ordering.py +0 -0
  618. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_install_state_provenance.py +0 -0
  619. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_kiro_ide_hook_projection.py +0 -0
  620. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_kiro_ide_hook_rail.py +0 -0
  621. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_kiro_ide_hook_schema.py +0 -0
  622. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_layout_bases_anchoring.py +0 -0
  623. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_lint_agent_artifacts_metadata_auth.py +0 -0
  624. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_list_installed_cmd.py +0 -0
  625. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_list_installed_status.py +0 -0
  626. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_list_targets_cmd.py +0 -0
  627. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_local_exclude_git_cache.py +0 -0
  628. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_local_scope_schema.py +0 -0
  629. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_local_scope_t10_uninstall.py +0 -0
  630. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_local_scope_t12_show.py +0 -0
  631. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_local_scope_t2_resolve.py +0 -0
  632. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_local_scope_t3_config.py +0 -0
  633. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_local_scope_t4_state_path.py +0 -0
  634. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_local_scope_t5_list_installed.py +0 -0
  635. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_local_scope_t7_install_gates.py +0 -0
  636. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_local_scope_t8_install.py +0 -0
  637. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_local_scope_t9_exclude.py +0 -0
  638. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_marker_schema_version_parity.py +0 -0
  639. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_merge_into_agent_json.py +0 -0
  640. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_multi_adapter_disambiguator.py +0 -0
  641. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_nested_symlink_hardening.py +0 -0
  642. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_offer_upgrade_namespace.py +0 -0
  643. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_okf_discovery.py +0 -0
  644. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_org_bootstrap.py +0 -0
  645. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_orphan_sweep_guards.py +0 -0
  646. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_pack_config_api.py +0 -0
  647. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_pack_inventory.py +0 -0
  648. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_pack_layout_section_schema.py +0 -0
  649. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_package_catalogue.py +0 -0
  650. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_packstate_source_provenance.py +0 -0
  651. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_pipeline_phase_order.py +0 -0
  652. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_plugin_scope_filter.py +0 -0
  653. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_profile_reader.py +0 -0
  654. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_render.py +0 -0
  655. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_render_cmd.py +0 -0
  656. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_render_table.py +0 -0
  657. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_resolve_state_path.py +0 -0
  658. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_resolve_target_adapter_user_config.py +0 -0
  659. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_resolve_user_scope_target_adapter.py +0 -0
  660. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_route_surface_parity.py +0 -0
  661. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_safety.py +0 -0
  662. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_safety_repo_scope_prefixes.py +0 -0
  663. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_safety_scan_per_pack_scoping.py +0 -0
  664. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_scaffold_cmd.py +0 -0
  665. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_scope.py +0 -0
  666. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_self_host_windows.py +0 -0
  667. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_shared_prefix_disclosure.py +0 -0
  668. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_source_conflict_guard.py +0 -0
  669. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_source_defaults.py +0 -0
  670. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_state_v01_refuse_write.py +0 -0
  671. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_state_v02.py +0 -0
  672. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_state_v0_4_schema.py +0 -0
  673. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_statelock.py +0 -0
  674. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_statelock_hardening.py +0 -0
  675. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_system_trust.py +0 -0
  676. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_target_resolver.py +0 -0
  677. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_toml_emitters.py +0 -0
  678. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_unresolved_markers.py +0 -0
  679. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_upgrade_bulk_all.py +0 -0
  680. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_upgrade_recap.py +0 -0
  681. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_upgrade_source_inference.py +0 -0
  682. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_user_config_io.py +0 -0
  683. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_user_config_isolation.py +0 -0
  684. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_user_config_path.py +0 -0
  685. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_user_config_source.py +0 -0
  686. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_user_merge_json.py +0 -0
  687. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_validate_attach_to_agent.py +0 -0
  688. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_validate_categories.py +0 -0
  689. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_validate_cmd.py +0 -0
  690. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_validate_hook_wiring_per_file_compatibility.py +0 -0
  691. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_values_from_shapes.py +0 -0
  692. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_version.py +0 -0
  693. {agentbundle-0.52.0 → agentbundle-0.53.0}/tests/unit/test_windows_direct_suite_registration.py +0 -0
  694. {agentbundle-0.52.0 → agentbundle-0.53.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.52.0
3
+ Version: 0.53.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,21 @@ 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.53.0
39
+
40
+ `agentbundle catalogue package` now refuses to replace a release archive that
41
+ already exists and exits 2; `--force` replaces it on purpose. `--compare
42
+ <archive>` lists the packs and profiles added, removed or changed since a prior
43
+ release, and `--format json` writes that result on stdout. Shortened options
44
+ such as `--forc` are rejected, and each `profiles` entry in the manifest is now
45
+ an object with a `path` and a `digest`.
46
+
47
+ ## What's new in 0.52.1
48
+
49
+ The workspace-status engine and MCP tool now route `shape` entries to
50
+ `intent`. The shaping suggestion and the `shape` dispatch need
51
+ `product-engineering` 1.0.0 or later.
52
+
38
53
  ## What's new in 0.52.0
39
54
 
40
55
  The workspace-status MCP tool now surfaces a former legacy entry (a bare
@@ -14,6 +14,21 @@ 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.53.0
18
+
19
+ `agentbundle catalogue package` now refuses to replace a release archive that
20
+ already exists and exits 2; `--force` replaces it on purpose. `--compare
21
+ <archive>` lists the packs and profiles added, removed or changed since a prior
22
+ release, and `--format json` writes that result on stdout. Shortened options
23
+ such as `--forc` are rejected, and each `profiles` entry in the manifest is now
24
+ an object with a `path` and a `digest`.
25
+
26
+ ## What's new in 0.52.1
27
+
28
+ The workspace-status engine and MCP tool now route `shape` entries to
29
+ `intent`. The shaping suggestion and the `shape` dispatch need
30
+ `product-engineering` 1.0.0 or later.
31
+
17
32
  ## What's new in 0.52.0
18
33
 
19
34
  The workspace-status MCP tool now surfaces a former legacy entry (a bare
@@ -69,7 +69,7 @@ and `version`; `[pack.adapter-contract]` with `version`.
69
69
  marketplace browser, a catalogue listing, or CLI output. It is not read by the model.
70
70
 
71
71
  That makes it a different artifact from a skill's or agent's `description`, which the
72
- model reads to decide whether to **activate** the primitive. Length is load-bearing
72
+ model reads to decide whether to **activate** the primitive. Length matters
73
73
  there and shortening it degrades activation; per-target caps in
74
74
  `contracts/target-vocab.toml` govern it. Do not carry habits from one to the other.
75
75
 
@@ -126,7 +126,7 @@ review against the shape and the table above.
126
126
  A pack README serves adopters, not contributors. It states the pack's intent and the
127
127
  user journey it serves — not a skill inventory. See the `_example` pack for a template.
128
128
 
129
- - [packs/_example/README.md](../../../packs/_example/README.md) — canonical example.
129
+ - [packs/_example/README.md](../../../packs/_example/README.md) — the model example.
130
130
 
131
131
  ---
132
132
 
@@ -224,7 +224,7 @@ archive supports downstream verification, auditing, security review, and
224
224
  testing an extracted release.
225
225
 
226
226
  Catalogue inclusion does not imply runtime installation. Installers and
227
- projection adapters treat `.apm/` and `seeds/` as the projected surfaces, so
227
+ projection adapters treat `.apm/` and `seeds/` as the projected folders, so
228
228
  nothing outside those two — `tests/` included — reaches an installed
229
229
  environment.
230
230
 
@@ -441,18 +441,18 @@ environment, smoke-test it there, and confirm the projection contains no
441
441
  Every skill is a Markdown file with YAML frontmatter. Required frontmatter keys:
442
442
  `title`, `description` (≤ 1024 characters), `kind`.
443
443
 
444
- - `guides/_shared/how-to/author-a-skill.md` — frontmatter key list, body structure,
445
- naming rules, progressive-disclosure pattern, three-tier dependency policy, and eval
446
- coverage. (Available in the full guide library; not bundled in this scaffold.)
444
+ - `guides/_shared/reference/skill-authoring-standards.md` — frontmatter key list, body
445
+ structure, naming rules, progressive-disclosure pattern, three-tier dependency policy,
446
+ and eval coverage. (Available in the full guide library; not bundled in this scaffold.)
447
447
 
448
448
  ---
449
449
 
450
450
  ## 6. Skill body and progressive disclosure
451
451
 
452
452
  Long skills use progressive disclosure: a brief required-reading summary at the top,
453
- with detail sections the agent loads on demand. This keeps context usage bounded.
453
+ with detail sections the agent loads on demand. This keeps context usage small.
454
454
 
455
- See `guides/_shared/how-to/author-a-skill.md` for the full pattern.
455
+ See `guides/_shared/reference/skill-authoring-standards.md` for the full pattern.
456
456
 
457
457
  ---
458
458
 
@@ -113,6 +113,18 @@ is computed over the archive and stored alongside it. The channel descriptor is
113
113
  small JSON file that records which release the channel currently points to; it is
114
114
  the live pointer consumers use to resolve the latest version.
115
115
 
116
+ Packaging refuses to replace a release that already exists. When
117
+ `catalogue-$RELEASE.tar.gz` is already under `$OUTPUT`, the command exits 2,
118
+ prints the existing archive path on stderr, and writes nothing. Publish each
119
+ release once, from a fresh output directory. A CI step never passes `--force`;
120
+ only a publisher replacing a release by hand does.
121
+
122
+ To see what changed since the last release, pass the prior archive:
123
+
124
+ ```bash
125
+ agentbundle catalogue package ... --compare "/path/to/catalogue-$PRIOR.tar.gz" --format json
126
+ ```
127
+
116
128
  Re-run `agentbundle catalogue verify --archive <path>.tar.gz` after packaging to
117
129
  confirm the archive is valid before uploading it.
118
130
 
@@ -197,10 +209,11 @@ All `agentbundle catalogue` commands follow the same convention:
197
209
  |------|---------|
198
210
  | `0` | Success |
199
211
  | `1` | Validation or operational failure (errors in the catalogue, archive mismatch, internal error) |
200
- | `2` | CLI usage error (missing required flag, unknown option) |
212
+ | `2` | CLI usage error (missing required flag, unknown or abbreviated option); for `catalogue package`, also a refused replacement of an existing release archive |
201
213
 
202
214
  These codes are stable. A CI step that treats any non-zero exit as a failure
203
- gets the correct behaviour.
215
+ gets the correct behaviour. A step that must tell a refused replacement from a
216
+ usage error reads exit 2 together with the `CAT-PKG-002` line on stderr.
204
217
 
205
218
  ## Credential and network boundaries
206
219
 
@@ -277,15 +290,80 @@ agentbundle catalogue package --bundle BUNDLE --release RELEASE
277
290
  [--source-revision SOURCE_REVISION]
278
291
  [--minimum-agentbundle-version VERSION]
279
292
  [--published-at DATETIME]
293
+ [--flavor {runtime,source}]
294
+ [--force] [--compare PATH]
295
+ [--format {table,json}]
280
296
  ```
281
297
 
282
298
  Required flags: `--bundle`, `--release`, `--channel`, `--output`.
283
- Optional: `--root` (defaults to `.`), `--source-revision`, `--minimum-agentbundle-version`,
284
- `--published-at`.
299
+ Optional:
300
+
301
+ | Flag | Meaning |
302
+ |------|---------|
303
+ | `--root` | Catalogue root; defaults to `.` |
304
+ | `--source-revision` | VCS revision recorded as audit metadata |
305
+ | `--minimum-agentbundle-version` | Minimum consumer version required |
306
+ | `--published-at` | ISO-8601 timestamp override |
307
+ | `--flavor` | `runtime` (default) writes the runtime archive; `source` writes the self-hosted source archive |
308
+ | `--force` | Replace an existing release archive instead of refusing. First-party CI never passes it |
309
+ | `--compare PATH` | Prior release archive to compare against; runtime flavour only |
310
+ | `--format` | `table` (default) or `json`; `json` writes one envelope on stdout; runtime flavour only |
311
+
312
+ `--flavor source` with `--compare` or `--format json` exits 2 with a usage
313
+ message and writes nothing. The subcommand rejects abbreviated options, so
314
+ `--forc` exits 2 rather than selecting `--force`.
315
+
316
+ **Streams.** Human output and diagnostic lines go to stderr in both formats.
317
+ Each diagnostic is one line, `<code>: <message>`. Stdout carries the JSON
318
+ envelope alone, and nothing when `--format table` is used. Text taken from the
319
+ prior archive is printed with non-printable characters written as escapes.
320
+
321
+ **`--format json`.** On success and on a failure after argument parsing, stdout
322
+ is one JSON object:
323
+
324
+ ```json
325
+ {
326
+ "schema_version": 1,
327
+ "command": "catalogue",
328
+ "operation": "package",
329
+ "agentbundle_version": "<version>",
330
+ "catalogue_schema_version": 1,
331
+ "ok": true,
332
+ "diagnostics": []
333
+ }
334
+ ```
335
+
336
+ With `--compare`, a successful run adds a `comparison` object:
337
+
338
+ ```json
339
+ {
340
+ "comparison": {
341
+ "prior": {"archive": "<--compare value>", "bundle": "<bundle>", "release": "<release>"},
342
+ "packs": {"added": [], "removed": [], "changed": [], "unchanged": 0},
343
+ "profiles": {"added": [], "removed": [], "changed": [], "unchanged": 0}
344
+ }
345
+ }
346
+ ```
347
+
348
+ Added and removed pack items are `{name, version, digest}`; profile items are
349
+ `{name, digest}`. A changed pack is `{name, version: {from, to}, digest: {from, to}}`;
350
+ a changed profile is `{name, digest: {from, to}}`. Each list is sorted by name and
351
+ `unchanged` is a count. A failed run has `ok` false, the failing codes in
352
+ `diagnostics`, and no `comparison`. The human comparison on stderr marks a pack
353
+ whose content changed under an unchanged version with
354
+ `content changed, version unchanged`.
355
+
356
+ **Exit codes.**
357
+
358
+ | Code | Meaning |
359
+ |------|---------|
360
+ | `0` | Packaged; with `--force`, a replaced release also exits 0 |
361
+ | `1` | Failure: verification, an unreadable or invalid `--compare` archive, or an internal error |
362
+ | `2` | Usage error, or a refused replacement of an existing release archive (`CAT-PKG-002`) |
285
363
 
286
- `catalogue package` does not support `--format json`; its result is the output
287
- directory layout described in [Phase 3](#phase-3--release-packaging). Exits 0
288
- on success, 1 on failure, 2 on missing required flags.
364
+ The refusal applies to both flavours and runs before any file is written. The
365
+ deprecated top-level `package-catalogue` command is unchanged and exits 1 on the
366
+ same refusal.
289
367
 
290
368
  ## See also
291
369
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "files": {
3
- "guides/_shared/reference/catalogue-authoring-standards.md": "72771324354ff29a4bf9072f48236e537bc680421785d700d2a3308d562777cc",
4
- "guides/_shared/reference/catalogue-ci-contract.md": "78994d30da2b0eb9ea9347f397791fafa99ebc92f80410f26b9af93788a6e188",
3
+ "guides/_shared/reference/catalogue-authoring-standards.md": "0b85918871438d7410f31d5e42eeebdf86892e8156428ed4eebdb7acc1e5f933",
4
+ "guides/_shared/reference/catalogue-ci-contract.md": "304c149ae6a3bd32b404b3c384b511266eec8e4e6dd58aa26ec4b9dd1d8f06cd",
5
5
  "packs/AGENTS.md": "c20af03f72b4c25c032ba5c15299eadaa0b41442c92d1cf621dde042cf9ff8db",
6
6
  "packs/CLAUDE.md": "336cc4fbf19beaada7ccf9986414fa91851a8d7a07dfb3ccbe800a69eed0ab49",
7
7
  "packs/README.md": "d2de5f9556f4c8e521103474bde74636e02cc805f9bf5312a3a61a1f3eb45d8f",
@@ -3,12 +3,17 @@
3
3
  "title": "Guide frontmatter",
4
4
  "description": "YAML frontmatter schema for catalogue-facing guide files under guides/.",
5
5
  "type": "object",
6
- "required": ["title", "summary", "pack", "kind"],
6
+ "required": [
7
+ "title",
8
+ "summary",
9
+ "pack",
10
+ "kind"
11
+ ],
7
12
  "properties": {
8
13
  "title": {
9
14
  "type": "string",
10
15
  "minLength": 1,
11
- "description": "Page title — used by the docs-site renderer as the heading."
16
+ "description": "Page title \u2014 used by the docs-site renderer as the heading."
12
17
  },
13
18
  "summary": {
14
19
  "type": "string",
@@ -22,8 +27,13 @@
22
27
  },
23
28
  "kind": {
24
29
  "type": "string",
25
- "enum": ["tutorial", "how-to", "reference", "explanation"],
26
- "description": "Diátaxis kind — a page contract, not a directory requirement."
30
+ "enum": [
31
+ "tutorial",
32
+ "how-to",
33
+ "reference",
34
+ "explanation"
35
+ ],
36
+ "description": "Di\u00e1taxis kind \u2014 a page contract, not a directory requirement."
27
37
  },
28
38
  "slug": {
29
39
  "type": "string",
@@ -49,8 +59,23 @@
49
59
  },
50
60
  "status": {
51
61
  "type": "string",
52
- "enum": ["draft", "review", "stable", "deprecated"],
62
+ "enum": [
63
+ "draft",
64
+ "review",
65
+ "stable",
66
+ "deprecated"
67
+ ],
53
68
  "description": "Optional publication status. Defaults to 'stable' when absent."
69
+ },
70
+ "uses": {
71
+ "type": "array",
72
+ "minItems": 1,
73
+ "uniqueItems": true,
74
+ "items": {
75
+ "type": "string",
76
+ "pattern": "^[a-z0-9][a-z0-9-]*$"
77
+ },
78
+ "description": "Packs a reader needs for this page, shown as pills above the title. Defaults to `pack` when that is a real pack."
54
79
  }
55
80
  },
56
81
  "additionalProperties": false
@@ -4883,7 +4883,7 @@ def extract_top_level_backlog(workspace: dict) -> list[ShapingEntry]:
4883
4883
 
4884
4884
 
4885
4885
  _SHAPING_TYPE_TO_SKILL: dict[str, str] = {
4886
- "shape": "frame-intent",
4886
+ "shape": "intent",
4887
4887
  "research": "desk-research-project-start",
4888
4888
  "strategy": "frame-situation",
4889
4889
  "design": "experience-status",
@@ -4910,10 +4910,10 @@ def check_shaping_guard(
4910
4910
  continue
4911
4911
  for entry in ini.shaping.active + ini.shaping.backlog:
4912
4912
  if entry.slug == spec_slug:
4913
- return _SHAPING_TYPE_TO_SKILL.get(entry.entry_type, "frame-intent")
4913
+ return _SHAPING_TYPE_TO_SKILL.get(entry.entry_type, "intent")
4914
4914
  for entry in (top_level_backlog or []):
4915
4915
  if entry.slug == spec_slug:
4916
- return _SHAPING_TYPE_TO_SKILL.get(entry.entry_type, "frame-intent")
4916
+ return _SHAPING_TYPE_TO_SKILL.get(entry.entry_type, "intent")
4917
4917
  return None
4918
4918
 
4919
4919
 
@@ -9,7 +9,9 @@ from __future__ import annotations
9
9
 
10
10
  import hashlib
11
11
  import json
12
+ import stat
12
13
  import tarfile
14
+ from collections.abc import Mapping
13
15
  from pathlib import Path
14
16
 
15
17
  from agentbundle.catalogue import CatalogueError
@@ -36,6 +38,34 @@ def _get_agentbundle_version() -> str:
36
38
  return _AGENTBUNDLE_VERSION
37
39
 
38
40
 
41
+ def unit_digest(file_digests: Mapping[str, str], unit_path: str) -> str | None:
42
+ """Return the unit digest of ``unit_path`` over ``file_digests`` (AC-0001).
43
+
44
+ ``file_digests`` maps archived relative paths to lowercase hex SHA-256.
45
+ If it holds ``unit_path`` exactly, the unit is that one file, named by its
46
+ basename; otherwise it is the directory of files under ``unit_path + "/"``.
47
+ Returns ``None`` when no member file exists.
48
+ """
49
+ if unit_path in file_digests:
50
+ members = {unit_path.rsplit("/", 1)[-1]: file_digests[unit_path]}
51
+ else:
52
+ prefix = unit_path + "/"
53
+ members = {
54
+ path[len(prefix):]: digest
55
+ for path, digest in file_digests.items()
56
+ if path.startswith(prefix)
57
+ }
58
+ if not members:
59
+ return None
60
+ # Sort by UTF-8 bytes, not code points, to honour "byte order".
61
+ lines = sorted(
62
+ (rel.encode("utf-8"), f"{digest} {rel}\n")
63
+ for rel, digest in members.items()
64
+ )
65
+ preimage = "".join(line for _, line in lines)
66
+ return "sha256:" + hashlib.sha256(preimage.encode("utf-8")).hexdigest()
67
+
68
+
39
69
  def _err(code: str, message: str, path: str | None = None) -> Diagnostic:
40
70
  return Diagnostic(
41
71
  code=code,
@@ -193,7 +223,83 @@ def _parse_manifest(
193
223
  return None, [_err("CAT-V-ARC-010", f"{_MANIFEST_NAME} parse error: {exc}")]
194
224
 
195
225
 
196
- def _check_manifest_schema(manifest: dict) -> list[Diagnostic]:
226
+ def _entry_label(kind: str, index: int, item: object) -> str:
227
+ """Name a manifest entry for a diagnostic: its ``name`` when a string, else its index."""
228
+ if isinstance(item, str):
229
+ return f"{kind}[{index}] {item!r}"
230
+ if isinstance(item, dict) and isinstance(item.get("name"), str):
231
+ return f"{kind}[{index}] {item['name']!r}"
232
+ return f"{kind}[{index}]"
233
+
234
+
235
+ def _check_unit_entry_fields(label: str, item: dict) -> list[Diagnostic]:
236
+ """AC-0018: ``path`` and ``digest`` must be strings, and ``digest`` needs ``path``."""
237
+ diags: list[Diagnostic] = []
238
+ for field in ("path", "digest"):
239
+ if field in item and not isinstance(item[field], str):
240
+ diags.append(_err("CAT-V-ARC-019", f"manifest {label} {field!r} must be a string"))
241
+ if "digest" in item and "path" not in item:
242
+ diags.append(_err("CAT-V-ARC-019", f"manifest {label} has a 'digest' but no 'path'"))
243
+ return diags
244
+
245
+
246
+ def _check_manifest_shape(manifest: dict) -> list[Diagnostic]:
247
+ """AC-0018 shape checks over ``files``, ``packs`` and ``profiles``; one diagnostic per item."""
248
+ diags: list[Diagnostic] = []
249
+ files = manifest.get("files")
250
+ if isinstance(files, list):
251
+ for i, item in enumerate(files):
252
+ if not (
253
+ isinstance(item, dict)
254
+ and isinstance(item.get("path"), str)
255
+ and isinstance(item.get("sha256"), str)
256
+ ):
257
+ diags.append(_err(
258
+ "CAT-V-ARC-019",
259
+ f"manifest {_entry_label('files', i, item)} must be an object "
260
+ "with string 'path' and 'sha256'",
261
+ ))
262
+ packs = manifest.get("packs")
263
+ if isinstance(packs, list):
264
+ for i, item in enumerate(packs):
265
+ label = _entry_label("packs", i, item)
266
+ if not (
267
+ isinstance(item, dict)
268
+ and isinstance(item.get("name"), str)
269
+ and isinstance(item.get("version"), str)
270
+ ):
271
+ diags.append(_err(
272
+ "CAT-V-ARC-019",
273
+ f"manifest {label} must be an object with string 'name' and 'version'",
274
+ ))
275
+ if isinstance(item, dict):
276
+ diags.extend(_check_unit_entry_fields(label, item))
277
+ if "profiles" in manifest:
278
+ profiles = manifest["profiles"]
279
+ if not isinstance(profiles, list):
280
+ diags.append(_err("CAT-V-ARC-019", "manifest 'profiles' must be a list"))
281
+ else:
282
+ for i, item in enumerate(profiles):
283
+ label = _entry_label("profiles", i, item)
284
+ if isinstance(item, str):
285
+ continue
286
+ if not (isinstance(item, dict) and isinstance(item.get("name"), str)):
287
+ diags.append(_err(
288
+ "CAT-V-ARC-019",
289
+ f"manifest {label} must be a string or an object with a string 'name'",
290
+ ))
291
+ if isinstance(item, dict):
292
+ diags.extend(_check_unit_entry_fields(label, item))
293
+ return diags
294
+
295
+
296
+ def _check_manifest_schema(manifest: object) -> list[Diagnostic]:
297
+ """Check manifest schema and shape; accepts any parsed JSON value without raising."""
298
+ if not isinstance(manifest, dict):
299
+ return [_err(
300
+ "CAT-V-ARC-019",
301
+ f"manifest must be a JSON object, got {type(manifest).__name__}",
302
+ )]
197
303
  diags: list[Diagnostic] = []
198
304
  schema = manifest.get("schema")
199
305
  if schema not in (1, 2):
@@ -208,6 +314,31 @@ def _check_manifest_schema(manifest: dict) -> list[Diagnostic]:
208
314
  diags.append(_err("CAT-V-ARC-011", "manifest 'files' must be a list"))
209
315
  if not isinstance(manifest.get("packs"), list):
210
316
  diags.append(_err("CAT-V-ARC-011", "manifest 'packs' must be a list"))
317
+ diags.extend(_check_manifest_shape(manifest))
318
+ return diags
319
+
320
+
321
+ def _check_unit_digests(manifest: dict) -> list[Diagnostic]:
322
+ """AC-0005: each declared unit ``digest`` must equal the unit digest of its ``path``.
323
+
324
+ Entries without a ``digest`` (legacy manifests) are skipped (AC-0006). Runs only on
325
+ manifests that passed ``_check_manifest_schema``, so entries are well typed.
326
+ """
327
+ file_digests = {e["path"]: e["sha256"] for e in manifest["files"]}
328
+ diags: list[Diagnostic] = []
329
+ for kind in ("packs", "profiles"):
330
+ for i, item in enumerate(manifest.get(kind, [])):
331
+ if not isinstance(item, dict) or "digest" not in item:
332
+ continue
333
+ expected = item["digest"]
334
+ actual = unit_digest(file_digests, item["path"])
335
+ if actual != expected:
336
+ diags.append(_err(
337
+ "CAT-V-ARC-018",
338
+ f"unit digest mismatch for {_entry_label(kind, i, item)} "
339
+ f"path {item['path']!r}: declared {expected!r}, computed {actual!r}",
340
+ path=item["path"],
341
+ ))
211
342
  return diags
212
343
 
213
344
 
@@ -411,17 +542,43 @@ def verify_archive(archive: Path, sha256_file: Path | None = None) -> VerifyResu
411
542
 
412
543
  manifest, manifest_diags = _parse_manifest(tf, members)
413
544
  diags.extend(manifest_diags)
414
- if manifest is None:
545
+ if manifest_diags:
415
546
  return _make_result(diags, "archive")
416
547
 
417
548
  diags.extend(_check_manifest_schema(manifest))
418
549
  if any(d.severity == Severity.ERROR for d in diags):
419
550
  return _make_result(diags, "archive")
551
+ assert isinstance(manifest, dict) # a non-object manifest yields CAT-V-ARC-019 above
420
552
 
421
553
  diags.extend(_check_all_manifest_digests(tf, members, manifest))
554
+ diags.extend(_check_unit_digests(manifest))
422
555
  diags.extend(_check_no_undeclared_members(members, manifest))
423
556
  diags.extend(_check_catalogue_markers(members))
424
557
  diags.extend(_check_marketplace_entries(tf, members))
425
558
  diags.extend(_check_min_agentbundle_compat(manifest))
426
559
 
427
560
  return _make_result(diags, "archive")
561
+
562
+
563
+ def read_verified_manifest(archive: Path) -> tuple[dict | None, VerifyResult]:
564
+ """Return the manifest of ``archive`` only when ``verify_archive`` passes on it.
565
+
566
+ A path that is not a regular file is refused before it is opened (AC-0023).
567
+ The archive is read in memory; nothing is extracted to disk. The manifest is
568
+ ``None`` whenever the returned result is not ok.
569
+ """
570
+ try:
571
+ is_regular = stat.S_ISREG(archive.stat().st_mode)
572
+ problem = None if is_regular else f"not a regular file: {archive}"
573
+ except OSError as exc:
574
+ problem = f"cannot read archive: {exc}"
575
+ if problem is not None:
576
+ return None, _make_result([_err("CAT-V-ARC-002", problem)], "archive")
577
+ result = verify_archive(archive)
578
+ if not result.ok:
579
+ return None, result
580
+ with tarfile.open(archive, "r:gz") as tf:
581
+ manifest, diags = _parse_manifest(tf, tf.getmembers())
582
+ if diags or not isinstance(manifest, dict):
583
+ return None, _make_result(diags, "archive")
584
+ return manifest, result