agentbundle 0.53.0__tar.gz → 0.53.1__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 (695) hide show
  1. {agentbundle-0.53.0/agentbundle.egg-info → agentbundle-0.53.1}/PKG-INFO +11 -1
  2. {agentbundle-0.53.0 → agentbundle-0.53.1}/README-pypi.md +10 -0
  3. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/initialise.py +56 -3
  4. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/package.py +13 -1
  5. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/catalogue_sync.py +4 -3
  6. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/version.py +1 -1
  7. {agentbundle-0.53.0 → agentbundle-0.53.1/agentbundle.egg-info}/PKG-INFO +11 -1
  8. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle.egg-info/SOURCES.txt +2 -0
  9. {agentbundle-0.53.0 → agentbundle-0.53.1}/pyproject.toml +1 -1
  10. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_catalogue_init.py +6 -1
  11. agentbundle-0.53.1/tests/integration/test_catalogue_init_packageable.py +165 -0
  12. agentbundle-0.53.1/tests/unit/test_catalogue_package_include_diagnostic.py +154 -0
  13. {agentbundle-0.53.0 → agentbundle-0.53.1}/MANIFEST.in +0 -0
  14. {agentbundle-0.53.0 → agentbundle-0.53.1}/README.md +0 -0
  15. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/__init__.py +0 -0
  16. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/__main__.py +0 -0
  17. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/__init__.py +0 -0
  18. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/adapter.schema.json +0 -0
  19. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/adapter.toml +0 -0
  20. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/agent-plugin-extension-namespaces.schema.json +0 -0
  21. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/agent-plugin-extension-namespaces.toml +0 -0
  22. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-index.schema.json +0 -0
  23. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/guides/_shared/reference/catalogue-authoring-standards.md +0 -0
  24. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/guides/_shared/reference/catalogue-ci-contract.md +0 -0
  25. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/manifest.json +0 -0
  26. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/packs/AGENTS.md +0 -0
  27. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/packs/CLAUDE.md +0 -0
  28. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/packs/README.md +0 -0
  29. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/packs/_example/.apm/skills/example-skill/SKILL.md +0 -0
  30. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/packs/_example/.apm/skills/example-skill/evals/eval_queries.json +0 -0
  31. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/packs/_example/.claude-plugin/plugin.json +0 -0
  32. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/packs/_example/README.md +0 -0
  33. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/packs/_example/pack.toml +0 -0
  34. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/profiles/AGENTS.md +0 -0
  35. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/profiles/CLAUDE.md +0 -0
  36. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/profiles/README.md +0 -0
  37. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/profiles/_example/README.md +0 -0
  38. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/profiles/_example/profile.toml +0 -0
  39. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/tests/conformance/test_gemini_admissibility.py +0 -0
  40. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/tests/conformance/test_pack_layout_declared_section.py +0 -0
  41. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/tests/conformance/test_pack_metadata.py +0 -0
  42. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/tests/conformance/test_shared_library_boundaries.py +0 -0
  43. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue.schema.json +0 -0
  44. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/close_work.py +0 -0
  45. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/cooling.py +0 -0
  46. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/distribution-routes.schema.json +0 -0
  47. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/distribution-routes.toml +0 -0
  48. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/file_safety.py +0 -0
  49. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/guide.schema.json +0 -0
  50. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/install-defaults.toml +0 -0
  51. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/install-marker.py +0 -0
  52. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/knowledge-captured-observation.schema.json +0 -0
  53. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/marketplace-entry.schema.json +0 -0
  54. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/pack.schema.json +0 -0
  55. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/plugin-manifest.derived.schema.json +0 -0
  56. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/plugin-manifest.schema.json +0 -0
  57. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/profile.schema.json +0 -0
  58. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/public-contracts.txt +0 -0
  59. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/skill-manifest.schema.json +0 -0
  60. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/skill.schema.json +0 -0
  61. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/target-vocab.toml +0 -0
  62. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/vendor/agent-plugins/1.0.0/LICENSE.md +0 -0
  63. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/vendor/agent-plugins/1.0.0/PROVENANCE.md +0 -0
  64. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/vendor/agent-plugins/1.0.0/mcp.schema.json +0 -0
  65. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/vendor/agent-plugins/1.0.0/plugin.schema.json +0 -0
  66. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/work_intake_refresh.py +0 -0
  67. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/workspace_status_engine.py +0 -0
  68. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/workspace_status_prune.py +0 -0
  69. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/bounded_metadata.py +0 -0
  70. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/__init__.py +0 -0
  71. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/__main__.py +0 -0
  72. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/adapter_root_bins.py +0 -0
  73. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/adapters/__init__.py +0 -0
  74. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/adapters/_sweep_guard.py +0 -0
  75. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/adapters/claude_code.py +0 -0
  76. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/adapters/codex.py +0 -0
  77. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/adapters/copilot.py +0 -0
  78. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/adapters/cursor.py +0 -0
  79. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/adapters/gemini.py +0 -0
  80. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/adapters/kiro.py +0 -0
  81. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/adapters/kiro_cli.py +0 -0
  82. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/adapters/kiro_ide.py +0 -0
  83. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/contract.py +0 -0
  84. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/hook_wiring_rules.py +0 -0
  85. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/lint_packs.py +0 -0
  86. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/main.py +0 -0
  87. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/phase_order.py +0 -0
  88. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/projection_io.py +0 -0
  89. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/projections/__init__.py +0 -0
  90. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/projections/codex_agent_toml.py +0 -0
  91. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/projections/copilot_agent_md.py +0 -0
  92. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/projections/copilot_hooks_json.py +0 -0
  93. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/projections/direct_directory.py +0 -0
  94. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/projections/gemini_command_toml.py +0 -0
  95. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/projections/hook_id.py +0 -0
  96. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/projections/kiro_ide_hook.py +0 -0
  97. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/projections/merge_into_agent_json.py +0 -0
  98. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/projections/merge_json.py +0 -0
  99. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/projections/plugin_hooks.py +0 -0
  100. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/projections/user_merge_json.py +0 -0
  101. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/recipes/composite-agents-md.toml +0 -0
  102. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/recipes/composite-marketplace.toml +0 -0
  103. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/recipes/marketplace.toml +0 -0
  104. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/recipes/per-pack-agent-plugin.toml +0 -0
  105. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/recipes/per-pack-apm-package.toml +0 -0
  106. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/recipes/per-pack-claude-plugin.toml +0 -0
  107. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/recipes/per-pack-overlay.toml +0 -0
  108. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/recipes/self-host.toml +0 -0
  109. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/route_agent_plugin.py +0 -0
  110. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/route_apm.py +0 -0
  111. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/route_claude_plugins.py +0 -0
  112. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/route_lookup.py +0 -0
  113. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/scope_rails.py +0 -0
  114. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/self_host.py +0 -0
  115. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/shared_libs.py +0 -0
  116. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/target_resolver.py +0 -0
  117. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/user_libs.py +0 -0
  118. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/validate.py +0 -0
  119. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue.py +0 -0
  120. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_fetch/__init__.py +0 -0
  121. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_fetch/direct_http.py +0 -0
  122. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_fetch/jfrog_cli.py +0 -0
  123. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_fetch/models.py +0 -0
  124. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/__init__.py +0 -0
  125. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/archive.py +0 -0
  126. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/build.py +0 -0
  127. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/config.py +0 -0
  128. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/contracts_inspector.py +0 -0
  129. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/defaults.py +0 -0
  130. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/diagnostics.py +0 -0
  131. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/file_safety.py +0 -0
  132. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/identity.py +0 -0
  133. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/index_generator.py +0 -0
  134. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/initialise_self_hosted.py +0 -0
  135. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/journey_validator.py +0 -0
  136. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/lint.py +0 -0
  137. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/manifest.py +0 -0
  138. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/okf_discovery.py +0 -0
  139. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/results.py +0 -0
  140. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/self_host.py +0 -0
  141. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/self_host_windows.py +0 -0
  142. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/skill_spec_lint.py +0 -0
  143. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/toml_emit.py +0 -0
  144. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/verify.py +0 -0
  145. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/version_ranges.py +0 -0
  146. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/categories.py +0 -0
  147. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/cli.py +0 -0
  148. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/__init__.py +0 -0
  149. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/_common.py +0 -0
  150. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/_drop_warning.py +0 -0
  151. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/adapt.py +0 -0
  152. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/catalogue_build.py +0 -0
  153. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/catalogue_contracts.py +0 -0
  154. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/catalogue_index.py +0 -0
  155. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/catalogue_init.py +0 -0
  156. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/catalogue_lint.py +0 -0
  157. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/catalogue_package.py +0 -0
  158. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/catalogue_self_host.py +0 -0
  159. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/catalogue_sync_defaults.py +0 -0
  160. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/catalogue_tooling_stub.py +0 -0
  161. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/catalogue_verify.py +0 -0
  162. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/config.py +0 -0
  163. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/diff.py +0 -0
  164. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/docs.py +0 -0
  165. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/init_state.py +0 -0
  166. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/install.py +0 -0
  167. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/list_installed.py +0 -0
  168. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/list_packs.py +0 -0
  169. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/list_profiles.py +0 -0
  170. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/list_targets.py +0 -0
  171. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/oplog_cmd.py +0 -0
  172. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/pack_config_cmd.py +0 -0
  173. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/pack_evals.py +0 -0
  174. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/package_catalogue.py +0 -0
  175. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/profile.py +0 -0
  176. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/reconcile.py +0 -0
  177. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/render.py +0 -0
  178. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/scaffold.py +0 -0
  179. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/show.py +0 -0
  180. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/uninstall.py +0 -0
  181. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/upgrade.py +0 -0
  182. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/validate.py +0 -0
  183. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/config.py +0 -0
  184. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/direct_install.py +0 -0
  185. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/direct_source.py +0 -0
  186. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/direct_source_acquisition.py +0 -0
  187. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/direct_source_state.py +0 -0
  188. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/direct_validate.py +0 -0
  189. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/https_catalogue.py +0 -0
  190. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/local_exclude.py +0 -0
  191. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/oplog.py +0 -0
  192. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/pack_inventory.py +0 -0
  193. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/render.py +0 -0
  194. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/safety.py +0 -0
  195. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/scaffold.py +0 -0
  196. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/scope.py +0 -0
  197. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/source_defaults.py +0 -0
  198. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/statelock.py +0 -0
  199. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/system_trust.py +0 -0
  200. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/user_config.py +0 -0
  201. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/workspace_mcp.py +0 -0
  202. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle.egg-info/dependency_links.txt +0 -0
  203. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle.egg-info/entry_points.txt +0 -0
  204. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle.egg-info/requires.txt +0 -0
  205. {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle.egg-info/top_level.txt +0 -0
  206. {agentbundle-0.53.0 → agentbundle-0.53.1}/conftest.py +0 -0
  207. {agentbundle-0.53.0 → agentbundle-0.53.1}/setup.cfg +0 -0
  208. {agentbundle-0.53.0 → agentbundle-0.53.1}/templates/install-marker.py +0 -0
  209. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/__init__.py +0 -0
  210. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/_direct_acquisition.py +0 -0
  211. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/_support.py +0 -0
  212. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/__init__.py +0 -0
  213. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/README.md +0 -0
  214. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/claude-code-2.1.226-hook-events.json +0 -0
  215. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/claude-code-2.1.228-hook-events.json +0 -0
  216. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/core/.apm/agents/bar.md +0 -0
  217. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/core/.apm/commands/qux.md +0 -0
  218. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/core/.apm/hook-wiring/baz.toml +0 -0
  219. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/core/.apm/hook-wiring/qux.toml +0 -0
  220. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/core/.apm/hooks/baz.py +0 -0
  221. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/core/.apm/hooks/baz.sh +0 -0
  222. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/core/.apm/skills/example/SKILL.md +0 -0
  223. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/core/.claude-plugin/plugin.json +0 -0
  224. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/core/pack.toml +0 -0
  225. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/governance-extras/.apm/skills/example/SKILL.md +0 -0
  226. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/governance-extras/.claude-plugin/plugin.json +0 -0
  227. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/governance-extras/pack.toml +0 -0
  228. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/monorepo-extras/.apm/skills/example/SKILL.md +0 -0
  229. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/monorepo-extras/.claude-plugin/plugin.json +0 -0
  230. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/monorepo-extras/pack.toml +0 -0
  231. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/product-documentation/.apm/skills/example/SKILL.md +0 -0
  232. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/product-documentation/.claude-plugin/plugin.json +0 -0
  233. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/product-documentation/pack.toml +0 -0
  234. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/user-guide-diataxis/.apm/skills/example/SKILL.md +0 -0
  235. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/user-guide-diataxis/.claude-plugin/plugin.json +0 -0
  236. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/user-guide-diataxis/pack.toml +0 -0
  237. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/recipes/bogus-target.toml +0 -0
  238. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_adapter_claude_code.py +0 -0
  239. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_adapter_codex.py +0 -0
  240. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_adapter_copilot.py +0 -0
  241. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_adapter_cursor.py +0 -0
  242. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_adapter_gemini.py +0 -0
  243. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_adapter_kiro.py +0 -0
  244. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_adapter_kiro_alias.py +0 -0
  245. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_adapter_kiro_cli.py +0 -0
  246. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_adapter_kiro_ide.py +0 -0
  247. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_adapter_root_bins_projection.py +0 -0
  248. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_agent_boundary_metadata_projection.py +0 -0
  249. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_agent_plugin_projection.py +0 -0
  250. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_build_ships_seeds.py +0 -0
  251. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_contract.py +0 -0
  252. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_contract_scope.py +0 -0
  253. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_contract_v07.py +0 -0
  254. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_contract_v08.py +0 -0
  255. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_direct_directory_cleanup.py +0 -0
  256. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_distribution_route_contract.py +0 -0
  257. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_distribution_route_golden.py +0 -0
  258. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_distribution_route_resolution.py +0 -0
  259. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_end_to_end_build.py +0 -0
  260. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_hook_wiring_rules.py +0 -0
  261. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_lint_packs.py +0 -0
  262. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_load_pack_hook_wiring_safely.py +0 -0
  263. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_pack_schema.py +0 -0
  264. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_pack_schema_allowed_adapters.py +0 -0
  265. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_pack_schema_install.py +0 -0
  266. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_pipeline.py +0 -0
  267. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_plugin_hooks.py +0 -0
  268. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_plugin_manifest_schema.py +0 -0
  269. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_plugin_publication_gates.py +0 -0
  270. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_policy_registry_projection.py +0 -0
  271. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_projectable_subset.py +0 -0
  272. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_projection_io.py +0 -0
  273. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_projections_merge_json.py +0 -0
  274. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_route_lookup.py +0 -0
  275. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_scope_rails.py +0 -0
  276. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_security.py +0 -0
  277. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_self_host_check.py +0 -0
  278. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_self_host_fixture_guard.py +0 -0
  279. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_self_host_metadata_policy.py +0 -0
  280. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_self_host_recipe_config.py +0 -0
  281. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_sequential_implementer_dispatch_projection.py +0 -0
  282. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_shared_libs_projection.py +0 -0
  283. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_shared_prefix_contract.py +0 -0
  284. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_user_libs_projection.py +0 -0
  285. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_validate.py +0 -0
  286. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_writers_emit_lf.py +0 -0
  287. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/conftest.py +0 -0
  288. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/contracts/test_agentbundle_show_schema.py +0 -0
  289. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/contracts/test_catalogue_fetch_credential_boundary.py +0 -0
  290. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/contracts/test_skill_schema.py +0 -0
  291. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/adapt/.adapt-discovery.toml +0 -0
  292. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/adapt/values.toml +0 -0
  293. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/blank_catalogue/.claude-plugin/marketplace.json +0 -0
  294. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/blank_catalogue/catalogue.toml +0 -0
  295. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/blank_catalogue/packs/.gitkeep +0 -0
  296. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/blank_catalogue/packs/_example/.apm/skills/example-skill/SKILL.md +0 -0
  297. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/blank_catalogue/packs/_example/.claude-plugin/plugin.json +0 -0
  298. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/blank_catalogue/packs/_example/README.md +0 -0
  299. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/blank_catalogue/packs/_example/evals/eval_queries.json +0 -0
  300. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/blank_catalogue/packs/_example/pack.toml +0 -0
  301. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/blank_catalogue/profiles/.gitkeep +0 -0
  302. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/blank_catalogue/profiles/_example/README.md +0 -0
  303. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/blank_catalogue/profiles/_example/profile.toml +0 -0
  304. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/brownfield/values.toml +0 -0
  305. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/brownfield-adapt/AGENTS.md +0 -0
  306. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/brownfield-adapt/AGENTS.upstream.md +0 -0
  307. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/brownfield-adapt/DESIGN.md +0 -0
  308. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/brownfield-adapt/EXPECTED_TREE.md +0 -0
  309. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/brownfield-adapt/docs/CHARTER.md +0 -0
  310. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/brownfield-adapt/docs/guides/how-to/index.md +0 -0
  311. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/brownfield-adapt/docs/howto/getting-started.md +0 -0
  312. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/brownfield-adapt-expected/AGENTS.md +0 -0
  313. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/brownfield-adapt-expected/docs/CHARTER.md +0 -0
  314. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/brownfield-adapt-user-home/.agentbundle/.adapt-discovery.toml +0 -0
  315. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/brownfield-adapt-user-home/.agentbundle/state.toml +0 -0
  316. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/catalogue_sync/adapter_contract_major_mismatch/pack.toml +0 -0
  317. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/catalogue_wave4/catalogue.toml +0 -0
  318. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/catalogue_wave4/packs/pack-with-journey/.apm/hook-wiring/example.json +0 -0
  319. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/catalogue_wave4/packs/pack-with-journey/.apm/skills/example-skill/SKILL.md +0 -0
  320. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/catalogue_wave4/packs/pack-with-journey/.apm/skills/example-skill/scripts/run.py +0 -0
  321. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/catalogue_wave4/packs/pack-with-journey/JOURNEY.md +0 -0
  322. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/catalogue_wave4/packs/pack-with-journey/pack.toml +0 -0
  323. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/catalogue_wave4/packs/pack-without-journey/pack.toml +0 -0
  324. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/catalogue_wave4/profiles/test-profile.toml +0 -0
  325. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/cognitive-load-hosts.json +0 -0
  326. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/creds/skills/argv-flag/SKILL.md +0 -0
  327. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/creds/skills/argv-flag/scripts/cli.py +0 -0
  328. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/creds/skills/argv-flag-derived/SKILL.md +0 -0
  329. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/creds/skills/argv-flag-derived/scripts/cli.py +0 -0
  330. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/creds/skills/argv-flag-normalised/SKILL.md +0 -0
  331. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/creds/skills/argv-flag-normalised/scripts/cli.py +0 -0
  332. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/creds/skills/conforming/SKILL.md +0 -0
  333. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/creds/skills/conforming/scripts/cli.py +0 -0
  334. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/creds/skills/dotfile-grep/SKILL.md +0 -0
  335. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/creds/skills/dotfile-grep/scripts/leak.py +0 -0
  336. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/creds/skills/dotfile-with-optout/SKILL.md +0 -0
  337. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/creds/skills/dotfile-with-optout/scripts/legit.py +0 -0
  338. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/creds/skills/mcp-server-headers/SKILL.md +0 -0
  339. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/creds/skills/mcp-server-headers/scripts/cli.py +0 -0
  340. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/creds/skills/missing-dont-block/SKILL.md +0 -0
  341. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/direct/ac35_corpus_verdicts.json +0 -0
  342. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/direct/golden_state_0_5.toml +0 -0
  343. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/distribution-routes/golden.json +0 -0
  344. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/distribution-routes/witness-packs/portable/.apm/skills/example/SKILL.md +0 -0
  345. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/distribution-routes/witness-packs/portable/pack.toml +0 -0
  346. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/external_catalogue/.claude-plugin/marketplace.json +0 -0
  347. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/external_catalogue/AGENTS.md +0 -0
  348. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/external_catalogue/LICENSE-APACHE +0 -0
  349. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/external_catalogue/LICENSE-MIT +0 -0
  350. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/external_catalogue/agentbundle/_data/install-defaults.toml +0 -0
  351. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/external_catalogue/catalogue.toml +0 -0
  352. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/external_catalogue/packs/alpha/.apm/skills/example/SKILL.md +0 -0
  353. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/external_catalogue/packs/alpha/.claude-plugin/plugin.json +0 -0
  354. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/external_catalogue/packs/alpha/pack.toml +0 -0
  355. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/external_catalogue/packs/alpha/seeds/AGENTS.md +0 -0
  356. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/external_catalogue/packs/beta/.claude-plugin/plugin.json +0 -0
  357. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/external_catalogue/packs/beta/pack.toml +0 -0
  358. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/external_catalogue/profiles/example.toml +0 -0
  359. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/install/catalogue/packs/alpha/.apm/agents/helper.md +0 -0
  360. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/install/catalogue/packs/alpha/.apm/commands/cmd.md +0 -0
  361. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/install/catalogue/packs/alpha/.apm/hook-wiring/run.toml +0 -0
  362. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/install/catalogue/packs/alpha/.apm/hooks/run.sh +0 -0
  363. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/install/catalogue/packs/alpha/.apm/skills/example/SKILL.md +0 -0
  364. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/install/catalogue/packs/alpha/.claude-plugin/plugin.json +0 -0
  365. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/install/catalogue/packs/alpha/pack.toml +0 -0
  366. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/kiro_ide_hook/ask_agent_basic.kiro.hook +0 -0
  367. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/kiro_ide_hook/run_command_with_placeholder.kiro.hook +0 -0
  368. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/lint_packs/clean/pack.toml +0 -0
  369. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/lint_packs/clean/seeds/README.md +0 -0
  370. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/list-installed/golden_120col.txt +0 -0
  371. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/list-installed/golden_80col.txt +0 -0
  372. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/list_packs/catalogue/packs/alpha/pack.toml +0 -0
  373. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/list_packs/catalogue/packs/beta/pack.toml +0 -0
  374. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/local_scope/catalogue/packs/local-test-pack/.apm/skills/local-test/SKILL.md +0 -0
  375. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/local_scope/catalogue/packs/local-test-pack/pack.toml +0 -0
  376. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/cc-user-hooks/.apm/hook-wiring/on-prompt.toml +0 -0
  377. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/cc-user-hooks/.apm/hooks/on-prompt.sh +0 -0
  378. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/cc-user-hooks/pack.toml +0 -0
  379. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/kiro-repo-hooks/.apm/agents/reviewer.md +0 -0
  380. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/kiro-repo-hooks/.apm/hook-wiring/on-spawn.toml +0 -0
  381. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/kiro-repo-hooks/.apm/hooks/on-spawn.sh +0 -0
  382. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/kiro-repo-hooks/pack.toml +0 -0
  383. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/kiro-user-hooks/.apm/agents/reviewer.md +0 -0
  384. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/kiro-user-hooks/.apm/hook-wiring/on-spawn.toml +0 -0
  385. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/kiro-user-hooks/.apm/hooks/on-spawn.sh +0 -0
  386. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/kiro-user-hooks/pack.toml +0 -0
  387. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/malformed-kiro-missing-attach/.apm/agents/reviewer.md +0 -0
  388. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/malformed-kiro-missing-attach/.apm/hook-wiring/on-spawn.toml +0 -0
  389. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/malformed-kiro-missing-attach/.apm/hooks/on-spawn.sh +0 -0
  390. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/malformed-kiro-missing-attach/pack.toml +0 -0
  391. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/malformed-kiro-pascal-events/.apm/agents/reviewer.md +0 -0
  392. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/malformed-kiro-pascal-events/.apm/hook-wiring/on-spawn.toml +0 -0
  393. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/malformed-kiro-pascal-events/.apm/hooks/on-spawn.sh +0 -0
  394. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/malformed-kiro-pascal-events/pack.toml +0 -0
  395. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/malformed-kiro-unknown-agent/.apm/agents/reviewer.md +0 -0
  396. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/malformed-kiro-unknown-agent/.apm/hook-wiring/on-spawn.toml +0 -0
  397. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/malformed-kiro-unknown-agent/.apm/hooks/on-spawn.sh +0 -0
  398. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/malformed-kiro-unknown-agent/pack.toml +0 -0
  399. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/scaffold/test-pack/seeds/AGENTS.md +0 -0
  400. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/scaffold/test-pack/seeds/_agents-footer.md +0 -0
  401. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/scaffold/test-pack/seeds/docs/CHARTER.md +0 -0
  402. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/show_contract/agentbundle-show.schema.json +0 -0
  403. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/show_contract/catalogue.json +0 -0
  404. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/show_contract/installed_state.json +0 -0
  405. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/agents/reviewer.md +0 -0
  406. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/commands/deploy.md +0 -0
  407. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/hook-wiring/pre-commit.toml +0 -0
  408. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/hooks/lint.py +0 -0
  409. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/hooks/pre-commit.sh +0 -0
  410. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/skills/work-loop/SKILL.md +0 -0
  411. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v1/packs/core/.claude-plugin/plugin.json +0 -0
  412. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v1/packs/core/pack.toml +0 -0
  413. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/agents/reviewer.md +0 -0
  414. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/commands/deploy.md +0 -0
  415. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/hook-wiring/pre-commit.toml +0 -0
  416. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/hooks/lint.py +0 -0
  417. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/hooks/pre-commit.sh +0 -0
  418. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/skills/work-loop/SKILL.md +0 -0
  419. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v2/packs/core/.claude-plugin/plugin.json +0 -0
  420. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v2/packs/core/pack.toml +0 -0
  421. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/agents/reviewer.md +0 -0
  422. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/commands/deploy.md +0 -0
  423. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/hook-wiring/pre-commit.toml +0 -0
  424. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/hooks/lint.py +0 -0
  425. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/hooks/pre-commit.sh +0 -0
  426. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/skills/work-loop/SKILL.md +0 -0
  427. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v3/packs/core/.claude-plugin/plugin.json +0 -0
  428. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v3/packs/core/pack.toml +0 -0
  429. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/validate/bad_recipe_pack/pack.toml +0 -0
  430. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/validate/malformed_pack/pack.toml +0 -0
  431. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/validate/valid_pack/pack.toml +0 -0
  432. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/validate/version_mismatch_pack/pack.toml +0 -0
  433. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/__init__.py +0 -0
  434. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_adapt_cmd.py +0 -0
  435. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_adapt_dual_scope.py +0 -0
  436. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_adapt_preflight_detection.py +0 -0
  437. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_adapt_schema_migration.py +0 -0
  438. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_apm_install_route.py +0 -0
  439. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_blank_catalogue.py +0 -0
  440. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_brownfield_adapt_end_to_end.py +0 -0
  441. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_brownfield_round_trip.py +0 -0
  442. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_brownfield_user_home_fixture.py +0 -0
  443. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_build_check_drift_gates.py +0 -0
  444. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_build_derivation_apm.py +0 -0
  445. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_build_derivation_claude_plugins.py +0 -0
  446. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_catalogue_verify_adapter_compat.py +0 -0
  447. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_catalogue_verify_dependencies.py +0 -0
  448. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_catalogue_verify_external_portability.py +0 -0
  449. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_catalogue_verify_fixture_checks.py +0 -0
  450. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_catalogue_verify_marketplace.py +0 -0
  451. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_catalogue_verify_output_drift.py +0 -0
  452. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_catalogue_verify_package_preflight.py +0 -0
  453. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_catalogue_verify_plugin_path.py +0 -0
  454. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_catalogue_verify_profile_schema.py +0 -0
  455. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_catalogue_verify_step1.py +0 -0
  456. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_catalogue_wave4_index_generator.py +0 -0
  457. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_catalogue_wave4_integration.py +0 -0
  458. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_catalogue_wave4_journey_validator.py +0 -0
  459. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_catalogue_wave4_schema.py +0 -0
  460. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_cc_user_hooks_fixture.py +0 -0
  461. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_claude_plugins_install_route.py +0 -0
  462. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_config_cascade.py +0 -0
  463. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_credential_brokers_pack_install.py +0 -0
  464. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_credentials_wheel.py +0 -0
  465. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_direct_install.py +0 -0
  466. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_discovery_schema_cross_consumer.py +0 -0
  467. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_editable_source_detection.py +0 -0
  468. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_fixtures_validate.py +0 -0
  469. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_hook_wiring_ingress.py +0 -0
  470. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_adapt_chain.py +0 -0
  471. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_cmd.py +0 -0
  472. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_converters_user_scope.py +0 -0
  473. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_copilot_full_parity.py +0 -0
  474. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_core_smoke.py +0 -0
  475. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_default_source.py +0 -0
  476. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_dependencies_gate.py +0 -0
  477. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_dropped_primitives_warning.py +0 -0
  478. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_dual_scope.py +0 -0
  479. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_layout_is_best_effort.py +0 -0
  480. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_orphan_reshape.py +0 -0
  481. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_pack_metadata_shape.py +0 -0
  482. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_profile.py +0 -0
  483. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_profile_live.py +0 -0
  484. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_repo_scope_per_adapter.py +0 -0
  485. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_research_user_scope.py +0 -0
  486. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_seed_delivery.py +0 -0
  487. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_session_start_wiring.py +0 -0
  488. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_upgrade_offer.py +0 -0
  489. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_user_hooks.py +0 -0
  490. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_user_scope_allowed_adapters.py +0 -0
  491. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_jfrog_cli_contract.py +0 -0
  492. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_kiro_ide_hook_e2e.py +0 -0
  493. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_kiro_repo_hooks_fixture.py +0 -0
  494. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_kiro_user_hooks_fixture.py +0 -0
  495. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_list_packs_cmd.py +0 -0
  496. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_local_scope_install.py +0 -0
  497. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_marketplace_entry_validation.py +0 -0
  498. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_marketplace_manifest_regression.py +0 -0
  499. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_multi_pack_install.py +0 -0
  500. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_orphan_cleanup_respects_foreign_state.py +0 -0
  501. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_plugin_route_membership.py +0 -0
  502. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_portable_catalogue_authentication.py +0 -0
  503. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_recommends_cross_scope.py +0 -0
  504. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_reconcile.py +0 -0
  505. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_reserved_path_filter.py +0 -0
  506. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_scaffold_projection.py +0 -0
  507. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_self_host_schema_migration.py +0 -0
  508. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_self_host_sweep_respects_state.py +0 -0
  509. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_shared_prefix_coexistence.py +0 -0
  510. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_show_cmd.py +0 -0
  511. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_tier_invariants.py +0 -0
  512. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_trust_fallback_tls.py +0 -0
  513. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_uninstall_cmd.py +0 -0
  514. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_uninstall_user_hooks.py +0 -0
  515. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_upgrade_attach_to_agent.py +0 -0
  516. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_upgrade_cmd.py +0 -0
  517. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_upgrade_user_hooks.py +0 -0
  518. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_version_gate_matrix.py +0 -0
  519. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_workspace_mcp_git_fsm.py +0 -0
  520. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_zipapp.py +0 -0
  521. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/performance/__init__.py +0 -0
  522. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/performance/test_direct_family2_budget_cost.py +0 -0
  523. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/test_adapter_permissions_projection.py +0 -0
  524. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/test_workspace_mcp_elicit.py +0 -0
  525. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/test_workspace_mcp_event_bridge.py +0 -0
  526. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/test_workspace_mcp_git.py +0 -0
  527. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/test_workspace_mcp_git_scope.py +0 -0
  528. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/test_workspace_mcp_layout_override.py +0 -0
  529. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/test_workspace_mcp_lifecycle.py +0 -0
  530. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/test_workspace_mcp_stdin.py +0 -0
  531. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/test_workspace_mcp_tools.py +0 -0
  532. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/__init__.py +0 -0
  533. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/conftest.py +0 -0
  534. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_adapt_discovery_schema.py +0 -0
  535. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_adapter_symlink_policy.py +0 -0
  536. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_append_layout_section.py +0 -0
  537. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_architect_readme_install_command.py +0 -0
  538. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue.py +0 -0
  539. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_archive_unit_digests.py +0 -0
  540. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_ci_contract.py +0 -0
  541. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_curation_deps.py +0 -0
  542. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_fetch.py +0 -0
  543. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_fetch_jfrog.py +0 -0
  544. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_init_cli_self_hosted.py +0 -0
  545. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_pack_defaults.py +0 -0
  546. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_package_compare.py +0 -0
  547. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_package_refusal.py +0 -0
  548. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_self_hosted_export_removal.py +0 -0
  549. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_skill_spec_lint.py +0 -0
  550. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_sync.py +0 -0
  551. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_sync_fixture_set.py +0 -0
  552. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_tooling_archive.py +0 -0
  553. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_tooling_build.py +0 -0
  554. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_tooling_defaults.py +0 -0
  555. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_tooling_file_safety.py +0 -0
  556. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_tooling_foundation.py +0 -0
  557. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_tooling_identity.py +0 -0
  558. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_tooling_init.py +0 -0
  559. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_tooling_lint.py +0 -0
  560. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_tooling_package.py +0 -0
  561. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_tooling_self_host.py +0 -0
  562. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_tooling_self_hosted_init.py +0 -0
  563. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_tooling_source_package.py +0 -0
  564. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_tooling_verify.py +0 -0
  565. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_trust_fallback.py +0 -0
  566. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_unit_digests.py +0 -0
  567. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_wave2_schema.py +0 -0
  568. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_wave2_validation.py +0 -0
  569. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_wave3_contracts_cli.py +0 -0
  570. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_wave3_contracts_inspector.py +0 -0
  571. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_wave3_init_nextsteps.py +0 -0
  572. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_wave3_offline_navigation.py +0 -0
  573. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_cli_catalogue_optional.py +0 -0
  574. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_cli_help_lists_config.py +0 -0
  575. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_cli_list_targets_help.py +0 -0
  576. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_cli_namespace_fixture.py +0 -0
  577. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_cli_path_normalisation.py +0 -0
  578. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_cli_profile_surface.py +0 -0
  579. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_cli_scope_flags.py +0 -0
  580. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_codex_agent_toml.py +0 -0
  581. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_codex_projection_modes.py +0 -0
  582. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_cognitive_load_seed_contract.py +0 -0
  583. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_collect_tree_symlinks.py +0 -0
  584. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_common_classify_seeds.py +0 -0
  585. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_config.py +0 -0
  586. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_config_cmd.py +0 -0
  587. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_configured_adapter.py +0 -0
  588. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_confirm_helper.py +0 -0
  589. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_contract_parity.py +0 -0
  590. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_contract_v0_3_schema.py +0 -0
  591. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_copilot_agent_md.py +0 -0
  592. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_copilot_hooks_json.py +0 -0
  593. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_copilot_user_scope_wiring.py +0 -0
  594. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_credbroker_lint_hardening.py +0 -0
  595. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_dependencies_batch.py +0 -0
  596. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_diff_cmd.py +0 -0
  597. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_direct_admission.py +0 -0
  598. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_direct_architecture_controls.py +0 -0
  599. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_direct_diagnostics.py +0 -0
  600. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_direct_lifecycle_facts.py +0 -0
  601. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_direct_source_acquisition.py +0 -0
  602. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_direct_source_state.py +0 -0
  603. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_direct_upgrade.py +0 -0
  604. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_direct_validate.py +0 -0
  605. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_footprint_ownership.py +0 -0
  606. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_https_catalogue.py +0 -0
  607. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_init_state_cmd.py +0 -0
  608. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_install_argparse_adapter_flag.py +0 -0
  609. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_install_argparse_emit_install_routes.py +0 -0
  610. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_install_defaults_preferred_adapter.py +0 -0
  611. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_install_dropped_primitives_warning.py +0 -0
  612. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_install_event_dropped_wirings.py +0 -0
  613. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_install_first_value_handoff.py +0 -0
  614. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_install_force_help.py +0 -0
  615. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_install_inband_detection.py +0 -0
  616. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_install_messages.py +0 -0
  617. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_install_messages_repo_scope.py +0 -0
  618. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_install_refusal_ordering.py +0 -0
  619. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_install_state_provenance.py +0 -0
  620. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_kiro_ide_hook_projection.py +0 -0
  621. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_kiro_ide_hook_rail.py +0 -0
  622. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_kiro_ide_hook_schema.py +0 -0
  623. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_layout_bases_anchoring.py +0 -0
  624. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_lint_agent_artifacts_metadata_auth.py +0 -0
  625. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_list_installed_cmd.py +0 -0
  626. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_list_installed_status.py +0 -0
  627. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_list_targets_cmd.py +0 -0
  628. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_local_exclude_git_cache.py +0 -0
  629. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_local_scope_schema.py +0 -0
  630. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_local_scope_t10_uninstall.py +0 -0
  631. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_local_scope_t12_show.py +0 -0
  632. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_local_scope_t2_resolve.py +0 -0
  633. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_local_scope_t3_config.py +0 -0
  634. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_local_scope_t4_state_path.py +0 -0
  635. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_local_scope_t5_list_installed.py +0 -0
  636. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_local_scope_t7_install_gates.py +0 -0
  637. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_local_scope_t8_install.py +0 -0
  638. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_local_scope_t9_exclude.py +0 -0
  639. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_marker_schema_version_parity.py +0 -0
  640. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_merge_into_agent_json.py +0 -0
  641. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_multi_adapter_disambiguator.py +0 -0
  642. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_nested_symlink_hardening.py +0 -0
  643. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_offer_upgrade_namespace.py +0 -0
  644. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_okf_discovery.py +0 -0
  645. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_org_bootstrap.py +0 -0
  646. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_orphan_sweep_guards.py +0 -0
  647. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_pack_config_api.py +0 -0
  648. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_pack_inventory.py +0 -0
  649. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_pack_layout_section_schema.py +0 -0
  650. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_package_catalogue.py +0 -0
  651. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_packstate_source_provenance.py +0 -0
  652. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_pipeline_phase_order.py +0 -0
  653. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_plugin_scope_filter.py +0 -0
  654. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_profile_reader.py +0 -0
  655. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_render.py +0 -0
  656. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_render_cmd.py +0 -0
  657. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_render_table.py +0 -0
  658. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_resolve_state_path.py +0 -0
  659. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_resolve_target_adapter_user_config.py +0 -0
  660. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_resolve_user_scope_target_adapter.py +0 -0
  661. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_route_surface_parity.py +0 -0
  662. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_safety.py +0 -0
  663. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_safety_repo_scope_prefixes.py +0 -0
  664. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_safety_scan_per_pack_scoping.py +0 -0
  665. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_scaffold_cmd.py +0 -0
  666. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_scope.py +0 -0
  667. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_self_host_windows.py +0 -0
  668. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_shared_prefix_disclosure.py +0 -0
  669. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_source_conflict_guard.py +0 -0
  670. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_source_defaults.py +0 -0
  671. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_state_v01_refuse_write.py +0 -0
  672. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_state_v02.py +0 -0
  673. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_state_v0_4_schema.py +0 -0
  674. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_statelock.py +0 -0
  675. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_statelock_hardening.py +0 -0
  676. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_system_trust.py +0 -0
  677. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_target_resolver.py +0 -0
  678. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_toml_emitters.py +0 -0
  679. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_unresolved_markers.py +0 -0
  680. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_upgrade_bulk_all.py +0 -0
  681. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_upgrade_recap.py +0 -0
  682. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_upgrade_source_inference.py +0 -0
  683. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_user_config_io.py +0 -0
  684. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_user_config_isolation.py +0 -0
  685. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_user_config_path.py +0 -0
  686. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_user_config_source.py +0 -0
  687. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_user_merge_json.py +0 -0
  688. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_validate_attach_to_agent.py +0 -0
  689. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_validate_categories.py +0 -0
  690. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_validate_cmd.py +0 -0
  691. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_validate_hook_wiring_per_file_compatibility.py +0 -0
  692. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_values_from_shapes.py +0 -0
  693. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_version.py +0 -0
  694. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_windows_direct_suite_registration.py +0 -0
  695. {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_workspace_mcp_events_poller.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentbundle
3
- Version: 0.53.0
3
+ Version: 0.53.1
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,16 @@ 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.1
39
+
40
+ `agentbundle catalogue init` now writes a root `AGENTS.md` and a `CLAUDE.md`, so
41
+ a new catalogue packages and verifies with no hand edits. A bad
42
+ `[catalogue.package].include` entry fails with a `CAT-PKG-001` message, not a
43
+ traceback. An `include` entry that names a `_` directory under `packs/`, such as
44
+ `packs/_example`, now fails too and must be removed; an empty `include` packages
45
+ every non-`_` pack, so list the packs to ship instead. A catalogue made by an
46
+ earlier release needs a root `AGENTS.md` added by hand.
47
+
38
48
  ## What's new in 0.53.0
39
49
 
40
50
  `agentbundle catalogue package` now refuses to replace a release archive that
@@ -14,6 +14,16 @@ 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.1
18
+
19
+ `agentbundle catalogue init` now writes a root `AGENTS.md` and a `CLAUDE.md`, so
20
+ a new catalogue packages and verifies with no hand edits. A bad
21
+ `[catalogue.package].include` entry fails with a `CAT-PKG-001` message, not a
22
+ traceback. An `include` entry that names a `_` directory under `packs/`, such as
23
+ `packs/_example`, now fails too and must be removed; an empty `include` packages
24
+ every non-`_` pack, so list the packs to ship instead. A catalogue made by an
25
+ earlier release needs a root `AGENTS.md` added by hand.
26
+
17
27
  ## What's new in 0.53.0
18
28
 
19
29
  `agentbundle catalogue package` now refuses to replace a release archive that
@@ -79,7 +79,7 @@ def _derive_name(basename: str) -> str | None:
79
79
  cleaned = _UNSAFE_NAME_CHARS_RE.sub("-", basename.lower())
80
80
  # Collapse multiple dashes, strip leading/trailing dashes
81
81
  cleaned = re.sub(r"-{2,}", "-", cleaned).strip("-")
82
- if _SAFE_NAME_RE.match(cleaned):
82
+ if _SAFE_NAME_RE.fullmatch(cleaned):
83
83
  return cleaned
84
84
  return None
85
85
 
@@ -151,6 +151,43 @@ def generate_empty_marketplace(
151
151
  return text.encode("utf-8")
152
152
 
153
153
 
154
+ _CLAUDE_SHIM = b"@AGENTS.md\n"
155
+
156
+ # Root files init keeps when the author already has their own copy.
157
+ _KEEP_EXISTING_PATHS: frozenset[str] = frozenset({"AGENTS.md", "CLAUDE.md"})
158
+
159
+
160
+ def generate_root_agents_md(name: str) -> bytes:
161
+ """Pure function. Return UTF-8 bytes for the catalogue's root ``AGENTS.md``.
162
+
163
+ Only the validated catalogue *name* is interpolated, so no free-text flag
164
+ reaches Markdown. Deterministic, final newline.
165
+ """
166
+ standards = "guides/_shared/reference/catalogue-authoring-standards.md"
167
+ package_cmd = (
168
+ "agentbundle catalogue package --root . --bundle <bundle> "
169
+ "--release <version> --channel <channel> --output dist/"
170
+ )
171
+ text = (
172
+ f"# {name} catalogue\n\n"
173
+ "This is an AgentBundle catalogue. Packs live in `packs/` and profiles live in\n"
174
+ "`profiles/`. Directories that start with `_` are templates: discovery, builds\n"
175
+ "and packaging skip them.\n\n"
176
+ "Read these next:\n\n"
177
+ "- [`packs/AGENTS.md`](packs/AGENTS.md)\n"
178
+ "- [`profiles/AGENTS.md`](profiles/AGENTS.md)\n"
179
+ f"- [`{standards}`]({standards})\n\n"
180
+ "```bash\n"
181
+ "agentbundle catalogue verify --root .\n"
182
+ "agentbundle catalogue lint --root .\n"
183
+ f"{package_cmd}\n"
184
+ "```\n\n"
185
+ "`catalogue package` ships this file at the archive root as the "
186
+ "installable-catalogue marker, so keep it.\n"
187
+ )
188
+ return text.encode("utf-8")
189
+
190
+
154
191
  # ---------------------------------------------------------------------------
155
192
  # Metadata resolution
156
193
  # ---------------------------------------------------------------------------
@@ -182,7 +219,7 @@ def resolve_metadata(
182
219
  # --- name ---
183
220
  resolved_name: str
184
221
  if name:
185
- if not _SAFE_NAME_RE.match(name):
222
+ if not _SAFE_NAME_RE.fullmatch(name):
186
223
  errors.append(
187
224
  f"--name {name!r} is not a valid catalogue name. "
188
225
  "Use only letters, digits, hyphens, and underscores, "
@@ -312,6 +349,17 @@ def _build_plan(
312
349
  content=marketplace_bytes,
313
350
  ))
314
351
 
352
+ planned.append(PlannedFile(
353
+ rel_path="AGENTS.md",
354
+ kind="generated",
355
+ content=generate_root_agents_md(meta.name),
356
+ ))
357
+ planned.append(PlannedFile(
358
+ rel_path="CLAUDE.md",
359
+ kind="generated",
360
+ content=_CLAUDE_SHIM,
361
+ ))
362
+
315
363
  # Scaffold files in manifest order (already sorted)
316
364
  for rel, content in sorted(scaffold_files.items()):
317
365
  planned.append(PlannedFile(rel_path=rel, kind="scaffold", content=content))
@@ -380,6 +428,7 @@ def classify_conflicts(
380
428
  existing = target / pf.rel_path
381
429
  action: FileAction
382
430
  conflict_reason: str | None = None
431
+ plan_sha256 = _sha256_bytes(pf.content)
383
432
 
384
433
  if existing.is_symlink():
385
434
  action = FileAction.CONFLICT
@@ -403,6 +452,10 @@ def classify_conflicts(
403
452
  else:
404
453
  if current_content == pf.content:
405
454
  action = FileAction.ALREADY_PRESENT
455
+ elif pf.rel_path in _KEEP_EXISTING_PATHS:
456
+ # Author's own root guidance file: keep it, report its hash.
457
+ action = FileAction.ALREADY_PRESENT
458
+ plan_sha256 = _sha256_bytes(current_content)
406
459
  else:
407
460
  action = FileAction.CONFLICT
408
461
  if pf.rel_path == "catalogue.toml":
@@ -423,7 +476,7 @@ def classify_conflicts(
423
476
  path=pf.rel_path,
424
477
  kind=pf.kind,
425
478
  action=action,
426
- sha256=_sha256_bytes(pf.content),
479
+ sha256=plan_sha256,
427
480
  conflict_reason=conflict_reason,
428
481
  ))
429
482
 
@@ -157,6 +157,10 @@ def _scan_content(root: Path, pack_include: list[str] | None = None) -> list[Pat
157
157
  When pack_include is non-empty, only the listed pack directories are walked;
158
158
  non-pack dirs (profiles/, contracts/, .claude-plugin/) are always included.
159
159
  An empty or absent pack_include includes all packs (default behavior).
160
+
161
+ Raises ValueError for an include entry that is not under ``packs/``, contains
162
+ path traversal, does not exist as a directory, names build residue, or names a
163
+ ``_`` template directory directly under ``packs/``.
160
164
  """
161
165
  collected: list[Path] = []
162
166
 
@@ -178,6 +182,11 @@ def _scan_content(root: Path, pack_include: list[str] | None = None) -> list[Pat
178
182
  f"pack_include entry {entry!r} names build residue; "
179
183
  f"it is never packaged"
180
184
  )
185
+ if len(parts) > 1 and parts[1].startswith("_"):
186
+ raise ValueError(
187
+ f"pack_include entry {entry!r} names a '_' directory; "
188
+ f"'_' directories are templates that are never packaged"
189
+ )
181
190
  for dirpath, dirnames, filenames in os.walk(str(d), followlinks=False):
182
191
  dp = Path(dirpath)
183
192
  _prune(dp, dirnames)
@@ -790,7 +799,10 @@ def package_catalogue(
790
799
  pass
791
800
 
792
801
  # --- Scan and validate content ---
793
- content_paths = _scan_content(root, pack_include=pack_include)
802
+ try:
803
+ content_paths = _scan_content(root, pack_include=pack_include)
804
+ except ValueError as exc:
805
+ return _err(f"invalid [catalogue.package].include: {exc}")
794
806
 
795
807
  req_err = _check_required_files(root, content_paths, required_override=required_override)
796
808
  if req_err is not None:
@@ -83,9 +83,10 @@ _APPLY_FAILED = 4
83
83
 
84
84
  # The two digest-bearing schemes fetch_catalogue_archive_with_provenance
85
85
  # handles; every other URI (local path or git+https://) goes through
86
- # resolve_catalogue instead. Whose digest each form verifies differs — see
87
- # docs/specs/catalogue-sync-dry-run/notes/grounding/probe-digest-provenance.py —
88
- # which is why the two get distinct fidelity tokens rather than one shared
86
+ # resolve_catalogue instead. Whose digest each form verifies differs: an
87
+ # archive+https URI carries the adopter's own `#sha256=` fragment, while
88
+ # catalogue+https takes the sha256 from the resolved channel descriptor. That
89
+ # is why the two get distinct fidelity tokens rather than one shared
89
90
  # "verified-digest" token.
90
91
  _DIGEST_BEARING_PREFIXES = ("archive+https://", "catalogue+https://")
91
92
 
@@ -14,7 +14,7 @@ import tomllib
14
14
  from importlib.resources import files
15
15
  from pathlib import Path
16
16
 
17
- CLI_VERSION = "0.53.0"
17
+ CLI_VERSION = "0.53.1"
18
18
 
19
19
  _HERE = Path(__file__).resolve().parent
20
20
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentbundle
3
- Version: 0.53.0
3
+ Version: 0.53.1
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,16 @@ 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.1
39
+
40
+ `agentbundle catalogue init` now writes a root `AGENTS.md` and a `CLAUDE.md`, so
41
+ a new catalogue packages and verifies with no hand edits. A bad
42
+ `[catalogue.package].include` entry fails with a `CAT-PKG-001` message, not a
43
+ traceback. An `include` entry that names a `_` directory under `packs/`, such as
44
+ `packs/_example`, now fails too and must be removed; an empty `include` packages
45
+ every non-`_` pack, so list the packs to ship instead. A catalogue made by an
46
+ earlier release needs a root `AGENTS.md` added by hand.
47
+
38
48
  ## What's new in 0.53.0
39
49
 
40
50
  `agentbundle catalogue package` now refuses to replace a release archive that
@@ -448,6 +448,7 @@ tests/integration/test_build_check_drift_gates.py
448
448
  tests/integration/test_build_derivation_apm.py
449
449
  tests/integration/test_build_derivation_claude_plugins.py
450
450
  tests/integration/test_catalogue_init.py
451
+ tests/integration/test_catalogue_init_packageable.py
451
452
  tests/integration/test_catalogue_verify_adapter_compat.py
452
453
  tests/integration/test_catalogue_verify_dependencies.py
453
454
  tests/integration/test_catalogue_verify_external_portability.py
@@ -540,6 +541,7 @@ tests/unit/test_catalogue_fetch_jfrog.py
540
541
  tests/unit/test_catalogue_init_cli_self_hosted.py
541
542
  tests/unit/test_catalogue_pack_defaults.py
542
543
  tests/unit/test_catalogue_package_compare.py
544
+ tests/unit/test_catalogue_package_include_diagnostic.py
543
545
  tests/unit/test_catalogue_package_refusal.py
544
546
  tests/unit/test_catalogue_self_hosted_export_removal.py
545
547
  tests/unit/test_catalogue_skill_spec_lint.py
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "agentbundle"
7
- version = "0.53.0"
7
+ version = "0.53.1"
8
8
  description = "npm for your coding agent. Install packs of skills, subagents, and hooks into any repo, for every major agent."
9
9
  requires-python = ">=3.11"
10
10
  dependencies = ["credbroker>=0.7,<0.8"]
@@ -398,7 +398,12 @@ def test_dogfood_no_host_files_leaked(tmp_path):
398
398
 
399
399
  scaffold_paths = set(list_files())
400
400
  # Generated files
401
- generated_paths = {"catalogue.toml", ".claude-plugin/marketplace.json"}
401
+ generated_paths = {
402
+ "catalogue.toml",
403
+ ".claude-plugin/marketplace.json",
404
+ "AGENTS.md",
405
+ "CLAUDE.md",
406
+ }
402
407
  allowed = scaffold_paths | generated_paths
403
408
 
404
409
  # Walk target and collect all files
@@ -0,0 +1,165 @@
1
+ """A blank catalogue from `catalogue init` packages and verifies with no hand edits."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import os
6
+ import subprocess
7
+ import sys
8
+ import tarfile
9
+ from pathlib import Path
10
+
11
+ PACKAGE_ROOT = Path(__file__).resolve().parents[2]
12
+
13
+
14
+ def _cli(*args: str) -> subprocess.CompletedProcess[str]:
15
+ env = os.environ.copy()
16
+ env["PYTHONPATH"] = os.pathsep.join(filter(None, [str(PACKAGE_ROOT), env.get("PYTHONPATH")]))
17
+ env["PYTHONIOENCODING"] = "utf-8"
18
+ return subprocess.run(
19
+ [sys.executable, "-m", "agentbundle", *args],
20
+ env=env,
21
+ capture_output=True,
22
+ text=True,
23
+ encoding="utf-8",
24
+ )
25
+
26
+
27
+ def test_init_creates_root_agents_md_and_claude_shim(tmp_path: Path) -> None:
28
+ from agentbundle.catalogue_tooling.initialise import init_catalogue
29
+ from agentbundle.catalogue_tooling.results import FileAction
30
+
31
+ target = tmp_path / "cat"
32
+ result = init_catalogue(target=target, name="demo-cat")
33
+
34
+ assert result.ok, result.diagnostics
35
+ assert (target / "AGENTS.md").is_file()
36
+ assert (target / "CLAUDE.md").read_bytes() == b"@AGENTS.md\n"
37
+ actions = {fp.path: fp.action for fp in result.files}
38
+ assert actions["AGENTS.md"] == FileAction.CREATE
39
+ assert actions["CLAUDE.md"] == FileAction.CREATE
40
+
41
+
42
+ def test_blank_catalogue_inits_verifies_packages_and_verifies_archive(tmp_path: Path) -> None:
43
+ cat = tmp_path / "cat"
44
+ out = tmp_path / "out"
45
+
46
+ steps = [
47
+ ("catalogue", "init", str(cat), "--name", "demo-cat"),
48
+ ("catalogue", "verify", "--root", str(cat)),
49
+ (
50
+ "catalogue", "package", "--root", str(cat), "--bundle", "demo",
51
+ "--release", "0.1.0", "--channel", "stable", "--output", str(out),
52
+ ),
53
+ ]
54
+ for step in steps:
55
+ proc = _cli(*step)
56
+ assert proc.returncode == 0, (step, proc.stdout, proc.stderr)
57
+
58
+ archive = out / "catalogues" / "demo" / "releases" / "0.1.0" / "catalogue-0.1.0.tar.gz"
59
+ sidecar = archive.with_name(archive.name + ".sha256")
60
+ proc = _cli("catalogue", "verify", "--archive", str(archive), "--sha256-file", str(sidecar))
61
+ assert proc.returncode == 0, (proc.stdout, proc.stderr)
62
+
63
+ with tarfile.open(archive, "r:gz") as tf:
64
+ names = tf.getnames()
65
+ assert "AGENTS.md" in names
66
+ assert not [n for n in names if n.startswith(("packs/_example/", "profiles/_example/"))]
67
+
68
+
69
+ def _snapshot(root: Path) -> dict[str, bytes]:
70
+ return {
71
+ p.relative_to(root).as_posix(): p.read_bytes()
72
+ for p in root.rglob("*")
73
+ if p.is_file() and not p.is_symlink()
74
+ }
75
+
76
+
77
+ def test_root_agents_md_names_catalogue_and_links_exactly_three_files(tmp_path: Path) -> None:
78
+ import re
79
+
80
+ from agentbundle.catalogue_tooling.initialise import init_catalogue
81
+
82
+ target = tmp_path / "cat"
83
+ assert init_catalogue(target=target, name="demo-cat").ok
84
+ text = (target / "AGENTS.md").read_text(encoding="utf-8")
85
+
86
+ assert "demo-cat" in text
87
+ links = re.findall(r"\]\(([^)]*)\)", text)
88
+ assert sorted(links) == sorted([
89
+ "packs/AGENTS.md",
90
+ "profiles/AGENTS.md",
91
+ "guides/_shared/reference/catalogue-authoring-standards.md",
92
+ ])
93
+
94
+
95
+ def test_existing_root_files_are_kept_and_reported_already_present(tmp_path: Path) -> None:
96
+ import hashlib
97
+
98
+ from agentbundle.catalogue_tooling.initialise import init_catalogue
99
+ from agentbundle.catalogue_tooling.results import FileAction
100
+
101
+ target = tmp_path / "cat"
102
+ target.mkdir()
103
+ agents = b"# my own rules\n"
104
+ claude = b"my own claude notes\n"
105
+ (target / "AGENTS.md").write_bytes(agents)
106
+ (target / "CLAUDE.md").write_bytes(claude)
107
+
108
+ result = init_catalogue(target=target, name="demo-cat")
109
+
110
+ assert result.ok, result.diagnostics
111
+ assert (target / "AGENTS.md").read_bytes() == agents
112
+ assert (target / "CLAUDE.md").read_bytes() == claude
113
+ by_path = {fp.path: fp for fp in result.files}
114
+ for rel, data in (("AGENTS.md", agents), ("CLAUDE.md", claude)):
115
+ assert by_path[rel].action == FileAction.ALREADY_PRESENT
116
+ assert by_path[rel].sha256 == hashlib.sha256(data).hexdigest()
117
+
118
+
119
+ def test_symlinked_root_agents_md_is_a_conflict_and_writes_nothing(tmp_path: Path) -> None:
120
+ import pytest
121
+ from agentbundle.catalogue_tooling.initialise import init_catalogue
122
+
123
+ target = tmp_path / "cat"
124
+ target.mkdir()
125
+ real = tmp_path / "real.md"
126
+ real.write_bytes(b"x\n")
127
+ try:
128
+ (target / "AGENTS.md").symlink_to(real)
129
+ except OSError:
130
+ pytest.skip("symlinks unavailable")
131
+ before = _snapshot(target)
132
+
133
+ result = init_catalogue(target=target, name="demo-cat")
134
+
135
+ assert not result.ok
136
+ assert any(d.code == "CAT-INIT-007" and d.path == "AGENTS.md" for d in result.diagnostics)
137
+ assert _snapshot(target) == before
138
+
139
+
140
+ def test_changed_nested_guidance_file_still_conflicts(tmp_path: Path) -> None:
141
+ from agentbundle.catalogue_tooling.initialise import init_catalogue
142
+
143
+ for rel in ("packs/AGENTS.md", "profiles/CLAUDE.md"):
144
+ target = tmp_path / rel.replace("/", "-")
145
+ (target / rel).parent.mkdir(parents=True)
146
+ (target / rel).write_bytes(b"custom\n")
147
+ before = _snapshot(target)
148
+
149
+ result = init_catalogue(target=target, name="demo-cat")
150
+
151
+ assert not result.ok, rel
152
+ assert any(d.code == "CAT-INIT-007" and d.path == rel for d in result.diagnostics), rel
153
+ assert _snapshot(target) == before, rel
154
+
155
+
156
+ def test_name_with_trailing_newline_is_refused(tmp_path: Path) -> None:
157
+ """`$` matches before a final newline, so the name check must be a full match."""
158
+ from agentbundle.catalogue_tooling.initialise import init_catalogue
159
+
160
+ target = tmp_path / "cat"
161
+ result = init_catalogue(target=target, name="foo\n")
162
+
163
+ assert not result.ok
164
+ assert [d.code for d in result.diagnostics] == ["CAT-INIT-003"]
165
+ assert not target.exists()
@@ -0,0 +1,154 @@
1
+ """An invalid [catalogue.package].include entry is a CAT-PKG-001 diagnostic, not a traceback."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from pathlib import Path
6
+
7
+
8
+ def _blank_catalogue(tmp_path: Path) -> Path:
9
+ from agentbundle.catalogue_tooling.initialise import init_catalogue
10
+
11
+ root = tmp_path / "cat"
12
+ assert init_catalogue(target=root, name="demo-cat").ok
13
+ return root
14
+
15
+
16
+ def test_include_entry_outside_packs_is_a_diagnostic(tmp_path: Path) -> None:
17
+ from agentbundle.catalogue_tooling.package import package_catalogue
18
+
19
+ root = _blank_catalogue(tmp_path)
20
+ toml = root / "catalogue.toml"
21
+ toml.write_text(
22
+ toml.read_text(encoding="utf-8").replace("include = []", 'include = ["AGENTS.md"]'),
23
+ encoding="utf-8",
24
+ )
25
+ out = tmp_path / "out"
26
+
27
+ result = package_catalogue(
28
+ root=root, bundle="demo", release="0.1.0", channel="stable", output=out,
29
+ )
30
+
31
+ assert not result.ok
32
+ assert [d.code for d in result.diagnostics] == ["CAT-PKG-001"]
33
+ assert "AGENTS.md" in result.diagnostics[0].message
34
+ assert not out.exists()
35
+
36
+
37
+ def _set_include(root: Path, entries: list[str]) -> None:
38
+ toml = root / "catalogue.toml"
39
+ rendered = "[" + ", ".join(f'"{e}"' for e in entries) + "]"
40
+ toml.write_text(
41
+ toml.read_text(encoding="utf-8").replace("include = []", f"include = {rendered}"),
42
+ encoding="utf-8",
43
+ )
44
+
45
+
46
+ def _assert_single_diagnostic(tmp_path: Path, root: Path, entry: str) -> None:
47
+ from agentbundle.catalogue_tooling.package import package_catalogue
48
+
49
+ out = tmp_path / "out"
50
+ result = package_catalogue(
51
+ root=root, bundle="demo", release="0.1.0", channel="stable", output=out,
52
+ )
53
+
54
+ assert not result.ok
55
+ assert [d.code for d in result.diagnostics] == ["CAT-PKG-001"]
56
+ assert entry in result.diagnostics[0].message
57
+ assert not out.exists()
58
+
59
+
60
+ def test_missing_include_entry_is_a_diagnostic(tmp_path: Path) -> None:
61
+ root = _blank_catalogue(tmp_path)
62
+ _set_include(root, ["packs/nope"])
63
+ _assert_single_diagnostic(tmp_path, root, "packs/nope")
64
+
65
+
66
+ def test_build_residue_include_entry_is_a_diagnostic(tmp_path: Path) -> None:
67
+ root = _blank_catalogue(tmp_path)
68
+ (root / "packs" / "__pycache__").mkdir()
69
+ _set_include(root, ["packs/__pycache__"])
70
+ _assert_single_diagnostic(tmp_path, root, "packs/__pycache__")
71
+
72
+
73
+ def test_scaffold_template_include_entry_is_a_diagnostic(tmp_path: Path) -> None:
74
+ root = _blank_catalogue(tmp_path)
75
+ _set_include(root, ["packs/_example"])
76
+ _assert_single_diagnostic(tmp_path, root, "packs/_example")
77
+
78
+
79
+ def test_bare_packs_include_entry_still_packages(tmp_path: Path) -> None:
80
+ """`packs/` names the whole packs directory, so it walks every pack as before."""
81
+ from agentbundle.catalogue_tooling.package import package_catalogue
82
+
83
+ root = _blank_catalogue(tmp_path)
84
+ _set_include(root, ["packs/"])
85
+
86
+ result = package_catalogue(
87
+ root=root, bundle="demo", release="0.1.0", channel="stable", output=tmp_path / "out",
88
+ )
89
+
90
+ assert result.ok, result.diagnostics
91
+
92
+
93
+ def test_cli_reports_bad_include_without_a_traceback(tmp_path: Path) -> None:
94
+ import os
95
+ import subprocess
96
+ import sys
97
+
98
+ root = _blank_catalogue(tmp_path)
99
+ _set_include(root, ["packs/nope"])
100
+ env = os.environ.copy()
101
+ package_root = Path(__file__).resolve().parents[2]
102
+ env["PYTHONPATH"] = os.pathsep.join(filter(None, [str(package_root), env.get("PYTHONPATH")]))
103
+ env["PYTHONIOENCODING"] = "utf-8"
104
+
105
+ proc = subprocess.run(
106
+ [
107
+ sys.executable, "-m", "agentbundle", "catalogue", "package",
108
+ "--root", str(root), "--bundle", "demo", "--release", "0.1.0",
109
+ "--channel", "stable", "--output", str(tmp_path / "out"),
110
+ ],
111
+ env=env, capture_output=True, text=True, encoding="utf-8",
112
+ )
113
+
114
+ assert proc.returncode == 1, (proc.stdout, proc.stderr)
115
+ assert "CAT-PKG-001" in proc.stderr
116
+ assert "Traceback" not in proc.stderr
117
+ assert "Traceback" not in proc.stdout
118
+
119
+
120
+ def test_underscore_directory_inside_a_real_pack_is_packaged(tmp_path: Path) -> None:
121
+ import json
122
+ import shutil
123
+ import tarfile
124
+
125
+ from agentbundle.catalogue_tooling.package import package_catalogue
126
+
127
+ root = _blank_catalogue(tmp_path)
128
+ pack = root / "packs" / "demo-pack"
129
+ shutil.copytree(root / "packs" / "_example", pack)
130
+ for rel in ("pack.toml", ".claude-plugin/plugin.json"):
131
+ f = pack / rel
132
+ if f.is_file():
133
+ f.write_text(f.read_text(encoding="utf-8").replace("example-pack", "demo-pack"), encoding="utf-8")
134
+ plugin = pack / ".claude-plugin" / "plugin.json"
135
+ if plugin.is_file():
136
+ assert json.loads(plugin.read_text(encoding="utf-8"))["name"] == "demo-pack"
137
+ (pack / "_sub").mkdir()
138
+ (pack / "_sub" / "note.md").write_text("note\n", encoding="utf-8")
139
+ _set_include(root, ["packs/demo-pack"])
140
+ out = tmp_path / "out"
141
+
142
+ result = package_catalogue(
143
+ root=root, bundle="demo", release="0.1.0", channel="stable", output=out,
144
+ )
145
+
146
+ assert result.ok, result.diagnostics
147
+ archive = out / "catalogues" / "demo" / "releases" / "0.1.0" / "catalogue-0.1.0.tar.gz"
148
+ with tarfile.open(archive, "r:gz") as tf:
149
+ names = set(tf.getnames())
150
+ expected = {
151
+ p.relative_to(root).as_posix() for p in pack.rglob("*") if p.is_file() and not p.is_symlink()
152
+ }
153
+ assert "packs/demo-pack/_sub/note.md" in expected
154
+ assert expected <= names
File without changes
File without changes