agentbundle 0.43.0__tar.gz → 0.44.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (669) hide show
  1. {agentbundle-0.43.0/agentbundle.egg-info → agentbundle-0.44.0}/PKG-INFO +27 -1
  2. {agentbundle-0.43.0 → agentbundle-0.44.0}/README-pypi.md +26 -0
  3. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/catalogue-scaffold/manifest.json +3 -0
  4. agentbundle-0.44.0/agentbundle/_data/catalogue-scaffold/packs/CLAUDE.md +1 -0
  5. agentbundle-0.44.0/agentbundle/_data/catalogue-scaffold/profiles/CLAUDE.md +1 -0
  6. agentbundle-0.44.0/agentbundle/_data/catalogue-scaffold/tests/conformance/test_pack_layout_declared_section.py +236 -0
  7. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/pack.schema.json +4 -2
  8. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/commands/install.py +322 -116
  9. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/version.py +1 -1
  10. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/workspace_mcp.py +35 -7
  11. {agentbundle-0.43.0 → agentbundle-0.44.0/agentbundle.egg-info}/PKG-INFO +27 -1
  12. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle.egg-info/SOURCES.txt +6 -0
  13. {agentbundle-0.43.0 → agentbundle-0.44.0}/pyproject.toml +1 -1
  14. agentbundle-0.44.0/tests/integration/test_install_layout_is_best_effort.py +127 -0
  15. agentbundle-0.44.0/tests/unit/test_append_layout_section.py +616 -0
  16. agentbundle-0.44.0/tests/unit/test_layout_bases_anchoring.py +138 -0
  17. agentbundle-0.44.0/tests/unit/test_pack_layout_section_schema.py +94 -0
  18. agentbundle-0.43.0/tests/unit/test_append_layout_section.py +0 -238
  19. {agentbundle-0.43.0 → agentbundle-0.44.0}/MANIFEST.in +0 -0
  20. {agentbundle-0.43.0 → agentbundle-0.44.0}/README.md +0 -0
  21. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/__init__.py +0 -0
  22. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/__main__.py +0 -0
  23. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/__init__.py +0 -0
  24. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/adapter.schema.json +0 -0
  25. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/adapter.toml +0 -0
  26. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/agent-plugin-extension-namespaces.schema.json +0 -0
  27. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/agent-plugin-extension-namespaces.toml +0 -0
  28. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/catalogue-index.schema.json +0 -0
  29. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/catalogue-scaffold/guides/_shared/reference/catalogue-authoring-standards.md +0 -0
  30. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/catalogue-scaffold/guides/_shared/reference/catalogue-ci-contract.md +0 -0
  31. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/catalogue-scaffold/packs/AGENTS.md +0 -0
  32. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/catalogue-scaffold/packs/README.md +0 -0
  33. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/catalogue-scaffold/packs/_example/.apm/skills/example-skill/SKILL.md +0 -0
  34. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/catalogue-scaffold/packs/_example/.apm/skills/example-skill/evals/eval_queries.json +0 -0
  35. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/catalogue-scaffold/packs/_example/.claude-plugin/plugin.json +0 -0
  36. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/catalogue-scaffold/packs/_example/README.md +0 -0
  37. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/catalogue-scaffold/packs/_example/pack.toml +0 -0
  38. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/catalogue-scaffold/profiles/AGENTS.md +0 -0
  39. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/catalogue-scaffold/profiles/README.md +0 -0
  40. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/catalogue-scaffold/profiles/_example/README.md +0 -0
  41. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/catalogue-scaffold/profiles/_example/profile.toml +0 -0
  42. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/catalogue-scaffold/tests/conformance/test_gemini_admissibility.py +0 -0
  43. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/catalogue-scaffold/tests/conformance/test_pack_metadata.py +0 -0
  44. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/catalogue-scaffold/tests/conformance/test_shared_library_boundaries.py +0 -0
  45. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/catalogue.schema.json +0 -0
  46. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/close_work.py +0 -0
  47. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/cooling.py +0 -0
  48. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/distribution-routes.schema.json +0 -0
  49. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/distribution-routes.toml +0 -0
  50. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/file_safety.py +0 -0
  51. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/guide.schema.json +0 -0
  52. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/install-defaults.toml +0 -0
  53. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/install-marker.py +0 -0
  54. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/knowledge-captured-observation.schema.json +0 -0
  55. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/marketplace-entry.schema.json +0 -0
  56. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/plugin-manifest.derived.schema.json +0 -0
  57. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/plugin-manifest.schema.json +0 -0
  58. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/profile.schema.json +0 -0
  59. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/public-contracts.txt +0 -0
  60. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/skill-manifest.schema.json +0 -0
  61. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/skill.schema.json +0 -0
  62. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/target-vocab.toml +0 -0
  63. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/vendor/agent-plugins/1.0.0/LICENSE.md +0 -0
  64. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/vendor/agent-plugins/1.0.0/PROVENANCE.md +0 -0
  65. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/vendor/agent-plugins/1.0.0/mcp.schema.json +0 -0
  66. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/vendor/agent-plugins/1.0.0/plugin.schema.json +0 -0
  67. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/work_intake_refresh.py +0 -0
  68. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/_data/workspace_status_engine.py +0 -0
  69. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/bounded_metadata.py +0 -0
  70. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/__init__.py +0 -0
  71. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/__main__.py +0 -0
  72. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/adapter_root_bins.py +0 -0
  73. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/adapters/__init__.py +0 -0
  74. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/adapters/_sweep_guard.py +0 -0
  75. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/adapters/claude_code.py +0 -0
  76. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/adapters/codex.py +0 -0
  77. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/adapters/copilot.py +0 -0
  78. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/adapters/cursor.py +0 -0
  79. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/adapters/gemini.py +0 -0
  80. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/adapters/kiro.py +0 -0
  81. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/adapters/kiro_cli.py +0 -0
  82. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/adapters/kiro_ide.py +0 -0
  83. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/contract.py +0 -0
  84. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/hook_wiring_rules.py +0 -0
  85. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/lint_packs.py +0 -0
  86. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/main.py +0 -0
  87. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/phase_order.py +0 -0
  88. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/projection_io.py +0 -0
  89. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/projections/__init__.py +0 -0
  90. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/projections/codex_agent_toml.py +0 -0
  91. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/projections/copilot_agent_md.py +0 -0
  92. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/projections/copilot_hooks_json.py +0 -0
  93. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/projections/direct_directory.py +0 -0
  94. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/projections/gemini_command_toml.py +0 -0
  95. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/projections/hook_id.py +0 -0
  96. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/projections/kiro_ide_hook.py +0 -0
  97. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/projections/merge_into_agent_json.py +0 -0
  98. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/projections/merge_json.py +0 -0
  99. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/projections/plugin_hooks.py +0 -0
  100. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/projections/user_merge_json.py +0 -0
  101. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/recipes/composite-agents-md.toml +0 -0
  102. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/recipes/composite-marketplace.toml +0 -0
  103. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/recipes/marketplace.toml +0 -0
  104. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/recipes/per-pack-agent-plugin.toml +0 -0
  105. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/recipes/per-pack-apm-package.toml +0 -0
  106. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/recipes/per-pack-claude-plugin.toml +0 -0
  107. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/recipes/per-pack-overlay.toml +0 -0
  108. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/recipes/self-host.toml +0 -0
  109. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/route_agent_plugin.py +0 -0
  110. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/route_apm.py +0 -0
  111. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/route_claude_plugins.py +0 -0
  112. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/route_lookup.py +0 -0
  113. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/scope_rails.py +0 -0
  114. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/self_host.py +0 -0
  115. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/shared_libs.py +0 -0
  116. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/target_resolver.py +0 -0
  117. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/user_libs.py +0 -0
  118. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/build/validate.py +0 -0
  119. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/catalogue.py +0 -0
  120. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/__init__.py +0 -0
  121. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/archive.py +0 -0
  122. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/build.py +0 -0
  123. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/config.py +0 -0
  124. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/contracts_inspector.py +0 -0
  125. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/defaults.py +0 -0
  126. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/diagnostics.py +0 -0
  127. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/file_safety.py +0 -0
  128. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/identity.py +0 -0
  129. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/index_generator.py +0 -0
  130. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/initialise.py +0 -0
  131. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/initialise_self_hosted.py +0 -0
  132. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/journey_validator.py +0 -0
  133. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/lint.py +0 -0
  134. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/manifest.py +0 -0
  135. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/okf_discovery.py +0 -0
  136. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/package.py +0 -0
  137. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/results.py +0 -0
  138. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/self_host.py +0 -0
  139. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/self_host_windows.py +0 -0
  140. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/skill_spec_lint.py +0 -0
  141. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/toml_emit.py +0 -0
  142. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/verify.py +0 -0
  143. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/version_ranges.py +0 -0
  144. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/categories.py +0 -0
  145. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/cli.py +0 -0
  146. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/commands/__init__.py +0 -0
  147. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/commands/_common.py +0 -0
  148. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/commands/_drop_warning.py +0 -0
  149. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/commands/adapt.py +0 -0
  150. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/commands/catalogue_build.py +0 -0
  151. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/commands/catalogue_contracts.py +0 -0
  152. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/commands/catalogue_index.py +0 -0
  153. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/commands/catalogue_init.py +0 -0
  154. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/commands/catalogue_lint.py +0 -0
  155. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/commands/catalogue_package.py +0 -0
  156. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/commands/catalogue_self_host.py +0 -0
  157. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/commands/catalogue_sync_defaults.py +0 -0
  158. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/commands/catalogue_tooling_stub.py +0 -0
  159. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/commands/catalogue_verify.py +0 -0
  160. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/commands/config.py +0 -0
  161. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/commands/diff.py +0 -0
  162. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/commands/docs.py +0 -0
  163. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/commands/init_state.py +0 -0
  164. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/commands/list_installed.py +0 -0
  165. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/commands/list_packs.py +0 -0
  166. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/commands/list_profiles.py +0 -0
  167. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/commands/list_targets.py +0 -0
  168. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/commands/oplog_cmd.py +0 -0
  169. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/commands/pack_config_cmd.py +0 -0
  170. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/commands/pack_evals.py +0 -0
  171. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/commands/package_catalogue.py +0 -0
  172. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/commands/profile.py +0 -0
  173. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/commands/reconcile.py +0 -0
  174. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/commands/render.py +0 -0
  175. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/commands/scaffold.py +0 -0
  176. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/commands/show.py +0 -0
  177. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/commands/uninstall.py +0 -0
  178. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/commands/upgrade.py +0 -0
  179. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/commands/validate.py +0 -0
  180. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/config.py +0 -0
  181. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/direct_install.py +0 -0
  182. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/direct_source.py +0 -0
  183. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/direct_source_acquisition.py +0 -0
  184. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/direct_source_state.py +0 -0
  185. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/direct_validate.py +0 -0
  186. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/https_catalogue.py +0 -0
  187. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/local_exclude.py +0 -0
  188. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/oplog.py +0 -0
  189. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/pack_inventory.py +0 -0
  190. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/render.py +0 -0
  191. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/safety.py +0 -0
  192. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/scaffold.py +0 -0
  193. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/scope.py +0 -0
  194. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/source_defaults.py +0 -0
  195. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/statelock.py +0 -0
  196. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/system_trust.py +0 -0
  197. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle/user_config.py +0 -0
  198. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle.egg-info/dependency_links.txt +0 -0
  199. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle.egg-info/entry_points.txt +0 -0
  200. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle.egg-info/requires.txt +0 -0
  201. {agentbundle-0.43.0 → agentbundle-0.44.0}/agentbundle.egg-info/top_level.txt +0 -0
  202. {agentbundle-0.43.0 → agentbundle-0.44.0}/conftest.py +0 -0
  203. {agentbundle-0.43.0 → agentbundle-0.44.0}/setup.cfg +0 -0
  204. {agentbundle-0.43.0 → agentbundle-0.44.0}/templates/install-marker.py +0 -0
  205. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/__init__.py +0 -0
  206. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/_direct_acquisition.py +0 -0
  207. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/_support.py +0 -0
  208. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/__init__.py +0 -0
  209. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/README.md +0 -0
  210. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/claude-code-2.1.226-hook-events.json +0 -0
  211. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/claude-code-2.1.228-hook-events.json +0 -0
  212. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/core/.apm/agents/bar.md +0 -0
  213. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/core/.apm/commands/qux.md +0 -0
  214. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/core/.apm/hook-wiring/baz.toml +0 -0
  215. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/core/.apm/hook-wiring/qux.toml +0 -0
  216. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/core/.apm/hooks/baz.py +0 -0
  217. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/core/.apm/hooks/baz.sh +0 -0
  218. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/core/.apm/skills/example/SKILL.md +0 -0
  219. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/core/.claude-plugin/plugin.json +0 -0
  220. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/core/pack.toml +0 -0
  221. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/governance-extras/.apm/skills/example/SKILL.md +0 -0
  222. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/governance-extras/.claude-plugin/plugin.json +0 -0
  223. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/governance-extras/pack.toml +0 -0
  224. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/monorepo-extras/.apm/skills/example/SKILL.md +0 -0
  225. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/monorepo-extras/.claude-plugin/plugin.json +0 -0
  226. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/monorepo-extras/pack.toml +0 -0
  227. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/product-documentation/.apm/skills/example/SKILL.md +0 -0
  228. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/product-documentation/.claude-plugin/plugin.json +0 -0
  229. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/product-documentation/pack.toml +0 -0
  230. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/user-guide-diataxis/.apm/skills/example/SKILL.md +0 -0
  231. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/user-guide-diataxis/.claude-plugin/plugin.json +0 -0
  232. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/user-guide-diataxis/pack.toml +0 -0
  233. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/recipes/bogus-target.toml +0 -0
  234. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_adapter_claude_code.py +0 -0
  235. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_adapter_codex.py +0 -0
  236. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_adapter_copilot.py +0 -0
  237. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_adapter_cursor.py +0 -0
  238. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_adapter_gemini.py +0 -0
  239. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_adapter_kiro.py +0 -0
  240. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_adapter_kiro_alias.py +0 -0
  241. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_adapter_kiro_cli.py +0 -0
  242. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_adapter_kiro_ide.py +0 -0
  243. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_adapter_root_bins_projection.py +0 -0
  244. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_agent_boundary_metadata_projection.py +0 -0
  245. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_agent_plugin_projection.py +0 -0
  246. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_build_ships_seeds.py +0 -0
  247. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_contract.py +0 -0
  248. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_contract_scope.py +0 -0
  249. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_contract_v07.py +0 -0
  250. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_contract_v08.py +0 -0
  251. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_direct_directory_cleanup.py +0 -0
  252. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_distribution_route_contract.py +0 -0
  253. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_distribution_route_golden.py +0 -0
  254. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_distribution_route_resolution.py +0 -0
  255. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_end_to_end_build.py +0 -0
  256. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_hook_wiring_rules.py +0 -0
  257. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_lint_packs.py +0 -0
  258. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_load_pack_hook_wiring_safely.py +0 -0
  259. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_pack_schema.py +0 -0
  260. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_pack_schema_allowed_adapters.py +0 -0
  261. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_pack_schema_install.py +0 -0
  262. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_pipeline.py +0 -0
  263. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_plugin_hooks.py +0 -0
  264. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_plugin_manifest_schema.py +0 -0
  265. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_plugin_publication_gates.py +0 -0
  266. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_policy_registry_projection.py +0 -0
  267. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_projectable_subset.py +0 -0
  268. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_projection_io.py +0 -0
  269. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_projections_merge_json.py +0 -0
  270. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_route_lookup.py +0 -0
  271. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_scope_rails.py +0 -0
  272. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_security.py +0 -0
  273. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_self_host_check.py +0 -0
  274. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_self_host_fixture_guard.py +0 -0
  275. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_self_host_metadata_policy.py +0 -0
  276. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_self_host_recipe_config.py +0 -0
  277. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_sequential_implementer_dispatch_projection.py +0 -0
  278. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_shared_libs_projection.py +0 -0
  279. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_shared_prefix_contract.py +0 -0
  280. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_user_libs_projection.py +0 -0
  281. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_validate.py +0 -0
  282. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/build_pipeline/test_writers_emit_lf.py +0 -0
  283. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/conftest.py +0 -0
  284. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/contracts/test_agentbundle_show_schema.py +0 -0
  285. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/contracts/test_skill_schema.py +0 -0
  286. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/adapt/.adapt-discovery.toml +0 -0
  287. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/adapt/values.toml +0 -0
  288. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/blank_catalogue/.claude-plugin/marketplace.json +0 -0
  289. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/blank_catalogue/catalogue.toml +0 -0
  290. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/blank_catalogue/packs/.gitkeep +0 -0
  291. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/blank_catalogue/packs/_example/.apm/skills/example-skill/SKILL.md +0 -0
  292. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/blank_catalogue/packs/_example/.claude-plugin/plugin.json +0 -0
  293. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/blank_catalogue/packs/_example/README.md +0 -0
  294. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/blank_catalogue/packs/_example/evals/eval_queries.json +0 -0
  295. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/blank_catalogue/packs/_example/pack.toml +0 -0
  296. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/blank_catalogue/profiles/.gitkeep +0 -0
  297. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/blank_catalogue/profiles/_example/README.md +0 -0
  298. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/blank_catalogue/profiles/_example/profile.toml +0 -0
  299. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/brownfield/values.toml +0 -0
  300. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/brownfield-adapt/AGENTS.md +0 -0
  301. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/brownfield-adapt/AGENTS.upstream.md +0 -0
  302. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/brownfield-adapt/DESIGN.md +0 -0
  303. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/brownfield-adapt/EXPECTED_TREE.md +0 -0
  304. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/brownfield-adapt/docs/CHARTER.md +0 -0
  305. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/brownfield-adapt/docs/guides/how-to/index.md +0 -0
  306. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/brownfield-adapt/docs/howto/getting-started.md +0 -0
  307. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/brownfield-adapt-expected/AGENTS.md +0 -0
  308. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/brownfield-adapt-expected/docs/CHARTER.md +0 -0
  309. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/brownfield-adapt-user-home/.agentbundle/.adapt-discovery.toml +0 -0
  310. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/brownfield-adapt-user-home/.agentbundle/state.toml +0 -0
  311. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/catalogue_wave4/catalogue.toml +0 -0
  312. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/catalogue_wave4/packs/pack-with-journey/.apm/hook-wiring/example.json +0 -0
  313. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/catalogue_wave4/packs/pack-with-journey/.apm/skills/example-skill/SKILL.md +0 -0
  314. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/catalogue_wave4/packs/pack-with-journey/.apm/skills/example-skill/scripts/run.py +0 -0
  315. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/catalogue_wave4/packs/pack-with-journey/JOURNEY.md +0 -0
  316. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/catalogue_wave4/packs/pack-with-journey/pack.toml +0 -0
  317. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/catalogue_wave4/packs/pack-without-journey/pack.toml +0 -0
  318. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/catalogue_wave4/profiles/test-profile.toml +0 -0
  319. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/cognitive-load-hosts.json +0 -0
  320. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/creds/skills/argv-flag/SKILL.md +0 -0
  321. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/creds/skills/argv-flag/scripts/cli.py +0 -0
  322. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/creds/skills/argv-flag-derived/SKILL.md +0 -0
  323. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/creds/skills/argv-flag-derived/scripts/cli.py +0 -0
  324. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/creds/skills/argv-flag-normalised/SKILL.md +0 -0
  325. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/creds/skills/argv-flag-normalised/scripts/cli.py +0 -0
  326. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/creds/skills/conforming/SKILL.md +0 -0
  327. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/creds/skills/conforming/scripts/cli.py +0 -0
  328. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/creds/skills/dotfile-grep/SKILL.md +0 -0
  329. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/creds/skills/dotfile-grep/scripts/leak.py +0 -0
  330. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/creds/skills/dotfile-with-optout/SKILL.md +0 -0
  331. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/creds/skills/dotfile-with-optout/scripts/legit.py +0 -0
  332. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/creds/skills/mcp-server-headers/SKILL.md +0 -0
  333. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/creds/skills/mcp-server-headers/scripts/cli.py +0 -0
  334. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/creds/skills/missing-dont-block/SKILL.md +0 -0
  335. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/direct/ac35_corpus_verdicts.json +0 -0
  336. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/direct/golden_state_0_5.toml +0 -0
  337. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/distribution-routes/golden.json +0 -0
  338. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/distribution-routes/witness-packs/portable/.apm/skills/example/SKILL.md +0 -0
  339. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/distribution-routes/witness-packs/portable/pack.toml +0 -0
  340. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/external_catalogue/.claude-plugin/marketplace.json +0 -0
  341. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/external_catalogue/AGENTS.md +0 -0
  342. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/external_catalogue/LICENSE-APACHE +0 -0
  343. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/external_catalogue/LICENSE-MIT +0 -0
  344. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/external_catalogue/agentbundle/_data/install-defaults.toml +0 -0
  345. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/external_catalogue/catalogue.toml +0 -0
  346. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/external_catalogue/packs/alpha/.apm/skills/example/SKILL.md +0 -0
  347. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/external_catalogue/packs/alpha/.claude-plugin/plugin.json +0 -0
  348. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/external_catalogue/packs/alpha/pack.toml +0 -0
  349. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/external_catalogue/packs/alpha/seeds/AGENTS.md +0 -0
  350. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/external_catalogue/packs/beta/.claude-plugin/plugin.json +0 -0
  351. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/external_catalogue/packs/beta/pack.toml +0 -0
  352. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/external_catalogue/profiles/example.toml +0 -0
  353. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/install/catalogue/packs/alpha/.apm/agents/helper.md +0 -0
  354. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/install/catalogue/packs/alpha/.apm/commands/cmd.md +0 -0
  355. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/install/catalogue/packs/alpha/.apm/hook-wiring/run.toml +0 -0
  356. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/install/catalogue/packs/alpha/.apm/hooks/run.sh +0 -0
  357. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/install/catalogue/packs/alpha/.apm/skills/example/SKILL.md +0 -0
  358. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/install/catalogue/packs/alpha/.claude-plugin/plugin.json +0 -0
  359. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/install/catalogue/packs/alpha/pack.toml +0 -0
  360. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/kiro_ide_hook/ask_agent_basic.kiro.hook +0 -0
  361. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/kiro_ide_hook/run_command_with_placeholder.kiro.hook +0 -0
  362. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/lint_packs/clean/pack.toml +0 -0
  363. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/lint_packs/clean/seeds/README.md +0 -0
  364. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/list-installed/golden_120col.txt +0 -0
  365. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/list-installed/golden_80col.txt +0 -0
  366. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/list_packs/catalogue/packs/alpha/pack.toml +0 -0
  367. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/list_packs/catalogue/packs/beta/pack.toml +0 -0
  368. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/local_scope/catalogue/packs/local-test-pack/.apm/skills/local-test/SKILL.md +0 -0
  369. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/local_scope/catalogue/packs/local-test-pack/pack.toml +0 -0
  370. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/packs/cc-user-hooks/.apm/hook-wiring/on-prompt.toml +0 -0
  371. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/packs/cc-user-hooks/.apm/hooks/on-prompt.sh +0 -0
  372. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/packs/cc-user-hooks/pack.toml +0 -0
  373. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/packs/kiro-repo-hooks/.apm/agents/reviewer.md +0 -0
  374. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/packs/kiro-repo-hooks/.apm/hook-wiring/on-spawn.toml +0 -0
  375. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/packs/kiro-repo-hooks/.apm/hooks/on-spawn.sh +0 -0
  376. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/packs/kiro-repo-hooks/pack.toml +0 -0
  377. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/packs/kiro-user-hooks/.apm/agents/reviewer.md +0 -0
  378. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/packs/kiro-user-hooks/.apm/hook-wiring/on-spawn.toml +0 -0
  379. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/packs/kiro-user-hooks/.apm/hooks/on-spawn.sh +0 -0
  380. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/packs/kiro-user-hooks/pack.toml +0 -0
  381. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/packs/malformed-kiro-missing-attach/.apm/agents/reviewer.md +0 -0
  382. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/packs/malformed-kiro-missing-attach/.apm/hook-wiring/on-spawn.toml +0 -0
  383. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/packs/malformed-kiro-missing-attach/.apm/hooks/on-spawn.sh +0 -0
  384. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/packs/malformed-kiro-missing-attach/pack.toml +0 -0
  385. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/packs/malformed-kiro-pascal-events/.apm/agents/reviewer.md +0 -0
  386. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/packs/malformed-kiro-pascal-events/.apm/hook-wiring/on-spawn.toml +0 -0
  387. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/packs/malformed-kiro-pascal-events/.apm/hooks/on-spawn.sh +0 -0
  388. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/packs/malformed-kiro-pascal-events/pack.toml +0 -0
  389. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/packs/malformed-kiro-unknown-agent/.apm/agents/reviewer.md +0 -0
  390. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/packs/malformed-kiro-unknown-agent/.apm/hook-wiring/on-spawn.toml +0 -0
  391. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/packs/malformed-kiro-unknown-agent/.apm/hooks/on-spawn.sh +0 -0
  392. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/packs/malformed-kiro-unknown-agent/pack.toml +0 -0
  393. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/scaffold/test-pack/seeds/AGENTS.md +0 -0
  394. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/scaffold/test-pack/seeds/_agents-footer.md +0 -0
  395. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/scaffold/test-pack/seeds/docs/CHARTER.md +0 -0
  396. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/show_contract/agentbundle-show.schema.json +0 -0
  397. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/show_contract/catalogue.json +0 -0
  398. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/show_contract/installed_state.json +0 -0
  399. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/agents/reviewer.md +0 -0
  400. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/commands/deploy.md +0 -0
  401. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/hook-wiring/pre-commit.toml +0 -0
  402. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/hooks/lint.py +0 -0
  403. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/hooks/pre-commit.sh +0 -0
  404. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/skills/work-loop/SKILL.md +0 -0
  405. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v1/packs/core/.claude-plugin/plugin.json +0 -0
  406. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v1/packs/core/pack.toml +0 -0
  407. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/agents/reviewer.md +0 -0
  408. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/commands/deploy.md +0 -0
  409. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/hook-wiring/pre-commit.toml +0 -0
  410. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/hooks/lint.py +0 -0
  411. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/hooks/pre-commit.sh +0 -0
  412. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/skills/work-loop/SKILL.md +0 -0
  413. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v2/packs/core/.claude-plugin/plugin.json +0 -0
  414. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v2/packs/core/pack.toml +0 -0
  415. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/agents/reviewer.md +0 -0
  416. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/commands/deploy.md +0 -0
  417. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/hook-wiring/pre-commit.toml +0 -0
  418. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/hooks/lint.py +0 -0
  419. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/hooks/pre-commit.sh +0 -0
  420. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/skills/work-loop/SKILL.md +0 -0
  421. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v3/packs/core/.claude-plugin/plugin.json +0 -0
  422. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v3/packs/core/pack.toml +0 -0
  423. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/validate/bad_recipe_pack/pack.toml +0 -0
  424. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/validate/malformed_pack/pack.toml +0 -0
  425. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/validate/valid_pack/pack.toml +0 -0
  426. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/fixtures/validate/version_mismatch_pack/pack.toml +0 -0
  427. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/__init__.py +0 -0
  428. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_adapt_cmd.py +0 -0
  429. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_adapt_dual_scope.py +0 -0
  430. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_adapt_preflight_detection.py +0 -0
  431. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_adapt_schema_migration.py +0 -0
  432. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_apm_install_route.py +0 -0
  433. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_blank_catalogue.py +0 -0
  434. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_brownfield_adapt_end_to_end.py +0 -0
  435. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_brownfield_round_trip.py +0 -0
  436. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_brownfield_user_home_fixture.py +0 -0
  437. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_build_check_drift_gates.py +0 -0
  438. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_build_derivation_apm.py +0 -0
  439. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_build_derivation_claude_plugins.py +0 -0
  440. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_catalogue_init.py +0 -0
  441. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_catalogue_verify_adapter_compat.py +0 -0
  442. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_catalogue_verify_dependencies.py +0 -0
  443. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_catalogue_verify_external_portability.py +0 -0
  444. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_catalogue_verify_fixture_checks.py +0 -0
  445. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_catalogue_verify_marketplace.py +0 -0
  446. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_catalogue_verify_output_drift.py +0 -0
  447. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_catalogue_verify_package_preflight.py +0 -0
  448. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_catalogue_verify_plugin_path.py +0 -0
  449. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_catalogue_verify_profile_schema.py +0 -0
  450. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_catalogue_verify_step1.py +0 -0
  451. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_catalogue_wave4_index_generator.py +0 -0
  452. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_catalogue_wave4_integration.py +0 -0
  453. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_catalogue_wave4_journey_validator.py +0 -0
  454. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_catalogue_wave4_schema.py +0 -0
  455. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_cc_user_hooks_fixture.py +0 -0
  456. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_claude_plugins_install_route.py +0 -0
  457. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_config_cascade.py +0 -0
  458. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_credential_brokers_pack_install.py +0 -0
  459. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_credentials_wheel.py +0 -0
  460. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_direct_install.py +0 -0
  461. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_discovery_schema_cross_consumer.py +0 -0
  462. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_editable_source_detection.py +0 -0
  463. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_fixtures_validate.py +0 -0
  464. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_hook_wiring_ingress.py +0 -0
  465. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_install_adapt_chain.py +0 -0
  466. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_install_cmd.py +0 -0
  467. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_install_converters_user_scope.py +0 -0
  468. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_install_copilot_full_parity.py +0 -0
  469. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_install_core_smoke.py +0 -0
  470. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_install_default_source.py +0 -0
  471. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_install_dependencies_gate.py +0 -0
  472. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_install_dropped_primitives_warning.py +0 -0
  473. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_install_dual_scope.py +0 -0
  474. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_install_orphan_reshape.py +0 -0
  475. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_install_pack_metadata_shape.py +0 -0
  476. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_install_profile.py +0 -0
  477. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_install_profile_live.py +0 -0
  478. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_install_repo_scope_per_adapter.py +0 -0
  479. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_install_research_user_scope.py +0 -0
  480. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_install_seed_delivery.py +0 -0
  481. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_install_session_start_wiring.py +0 -0
  482. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_install_upgrade_offer.py +0 -0
  483. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_install_user_hooks.py +0 -0
  484. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_install_user_scope_allowed_adapters.py +0 -0
  485. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_kiro_ide_hook_e2e.py +0 -0
  486. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_kiro_repo_hooks_fixture.py +0 -0
  487. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_kiro_user_hooks_fixture.py +0 -0
  488. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_list_packs_cmd.py +0 -0
  489. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_local_scope_install.py +0 -0
  490. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_marketplace_entry_validation.py +0 -0
  491. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_marketplace_manifest_regression.py +0 -0
  492. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_multi_pack_install.py +0 -0
  493. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_orphan_cleanup_respects_foreign_state.py +0 -0
  494. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_plugin_route_membership.py +0 -0
  495. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_recommends_cross_scope.py +0 -0
  496. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_reconcile.py +0 -0
  497. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_reserved_path_filter.py +0 -0
  498. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_scaffold_projection.py +0 -0
  499. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_self_host_schema_migration.py +0 -0
  500. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_self_host_sweep_respects_state.py +0 -0
  501. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_shared_prefix_coexistence.py +0 -0
  502. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_show_cmd.py +0 -0
  503. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_tier_invariants.py +0 -0
  504. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_trust_fallback_tls.py +0 -0
  505. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_uninstall_cmd.py +0 -0
  506. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_uninstall_user_hooks.py +0 -0
  507. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_upgrade_attach_to_agent.py +0 -0
  508. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_upgrade_cmd.py +0 -0
  509. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_upgrade_user_hooks.py +0 -0
  510. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_version_gate_matrix.py +0 -0
  511. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_workspace_mcp_git_fsm.py +0 -0
  512. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/integration/test_zipapp.py +0 -0
  513. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/performance/__init__.py +0 -0
  514. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/performance/test_direct_family2_budget_cost.py +0 -0
  515. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/test_adapter_permissions_projection.py +0 -0
  516. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/test_workspace_mcp_elicit.py +0 -0
  517. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/test_workspace_mcp_event_bridge.py +0 -0
  518. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/test_workspace_mcp_git.py +0 -0
  519. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/test_workspace_mcp_lifecycle.py +0 -0
  520. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/test_workspace_mcp_stdin.py +0 -0
  521. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/test_workspace_mcp_tools.py +0 -0
  522. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/__init__.py +0 -0
  523. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_adapt_discovery_schema.py +0 -0
  524. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_adapter_symlink_policy.py +0 -0
  525. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_architect_readme_install_command.py +0 -0
  526. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_catalogue_ci_contract.py +0 -0
  527. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_catalogue_curation_deps.py +0 -0
  528. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_catalogue_init_cli_self_hosted.py +0 -0
  529. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_catalogue_pack_defaults.py +0 -0
  530. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_catalogue_self_hosted_export_removal.py +0 -0
  531. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_catalogue_skill_spec_lint.py +0 -0
  532. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_catalogue_tooling_archive.py +0 -0
  533. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_catalogue_tooling_build.py +0 -0
  534. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_catalogue_tooling_defaults.py +0 -0
  535. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_catalogue_tooling_file_safety.py +0 -0
  536. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_catalogue_tooling_foundation.py +0 -0
  537. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_catalogue_tooling_identity.py +0 -0
  538. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_catalogue_tooling_init.py +0 -0
  539. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_catalogue_tooling_lint.py +0 -0
  540. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_catalogue_tooling_package.py +0 -0
  541. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_catalogue_tooling_self_host.py +0 -0
  542. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_catalogue_tooling_self_hosted_init.py +0 -0
  543. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_catalogue_tooling_source_package.py +0 -0
  544. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_catalogue_tooling_verify.py +0 -0
  545. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_catalogue_trust_fallback.py +0 -0
  546. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_catalogue_wave2_schema.py +0 -0
  547. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_catalogue_wave2_validation.py +0 -0
  548. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_catalogue_wave3_contracts_cli.py +0 -0
  549. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_catalogue_wave3_contracts_inspector.py +0 -0
  550. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_catalogue_wave3_init_nextsteps.py +0 -0
  551. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_catalogue_wave3_offline_navigation.py +0 -0
  552. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_cli_catalogue_optional.py +0 -0
  553. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_cli_help_lists_config.py +0 -0
  554. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_cli_list_targets_help.py +0 -0
  555. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_cli_path_normalisation.py +0 -0
  556. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_cli_profile_surface.py +0 -0
  557. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_cli_scope_flags.py +0 -0
  558. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_codex_agent_toml.py +0 -0
  559. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_codex_projection_modes.py +0 -0
  560. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_cognitive_load_seed_contract.py +0 -0
  561. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_collect_tree_symlinks.py +0 -0
  562. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_common_classify_seeds.py +0 -0
  563. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_config.py +0 -0
  564. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_config_cmd.py +0 -0
  565. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_configured_adapter.py +0 -0
  566. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_confirm_helper.py +0 -0
  567. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_contract_parity.py +0 -0
  568. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_contract_v0_3_schema.py +0 -0
  569. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_copilot_agent_md.py +0 -0
  570. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_copilot_hooks_json.py +0 -0
  571. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_copilot_user_scope_wiring.py +0 -0
  572. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_credbroker_lint_hardening.py +0 -0
  573. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_dependencies_batch.py +0 -0
  574. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_diff_cmd.py +0 -0
  575. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_direct_admission.py +0 -0
  576. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_direct_architecture_controls.py +0 -0
  577. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_direct_diagnostics.py +0 -0
  578. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_direct_lifecycle_facts.py +0 -0
  579. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_direct_source_acquisition.py +0 -0
  580. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_direct_source_state.py +0 -0
  581. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_direct_upgrade.py +0 -0
  582. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_direct_validate.py +0 -0
  583. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_footprint_ownership.py +0 -0
  584. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_https_catalogue.py +0 -0
  585. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_init_state_cmd.py +0 -0
  586. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_install_argparse_adapter_flag.py +0 -0
  587. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_install_argparse_emit_install_routes.py +0 -0
  588. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_install_defaults_preferred_adapter.py +0 -0
  589. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_install_dropped_primitives_warning.py +0 -0
  590. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_install_event_dropped_wirings.py +0 -0
  591. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_install_first_value_handoff.py +0 -0
  592. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_install_force_help.py +0 -0
  593. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_install_inband_detection.py +0 -0
  594. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_install_messages.py +0 -0
  595. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_install_messages_repo_scope.py +0 -0
  596. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_install_refusal_ordering.py +0 -0
  597. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_install_state_provenance.py +0 -0
  598. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_kiro_ide_hook_projection.py +0 -0
  599. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_kiro_ide_hook_rail.py +0 -0
  600. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_kiro_ide_hook_schema.py +0 -0
  601. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_lint_agent_artifacts_metadata_auth.py +0 -0
  602. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_list_installed_cmd.py +0 -0
  603. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_list_installed_status.py +0 -0
  604. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_list_targets_cmd.py +0 -0
  605. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_local_exclude_git_cache.py +0 -0
  606. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_local_scope_schema.py +0 -0
  607. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_local_scope_t10_uninstall.py +0 -0
  608. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_local_scope_t12_show.py +0 -0
  609. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_local_scope_t2_resolve.py +0 -0
  610. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_local_scope_t3_config.py +0 -0
  611. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_local_scope_t4_state_path.py +0 -0
  612. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_local_scope_t5_list_installed.py +0 -0
  613. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_local_scope_t7_install_gates.py +0 -0
  614. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_local_scope_t8_install.py +0 -0
  615. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_local_scope_t9_exclude.py +0 -0
  616. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_marker_schema_version_parity.py +0 -0
  617. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_merge_into_agent_json.py +0 -0
  618. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_multi_adapter_disambiguator.py +0 -0
  619. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_nested_symlink_hardening.py +0 -0
  620. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_okf_discovery.py +0 -0
  621. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_org_bootstrap.py +0 -0
  622. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_orphan_sweep_guards.py +0 -0
  623. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_pack_config_api.py +0 -0
  624. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_pack_inventory.py +0 -0
  625. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_package_catalogue.py +0 -0
  626. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_packstate_source_provenance.py +0 -0
  627. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_pipeline_phase_order.py +0 -0
  628. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_plugin_scope_filter.py +0 -0
  629. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_profile_reader.py +0 -0
  630. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_render.py +0 -0
  631. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_render_cmd.py +0 -0
  632. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_render_table.py +0 -0
  633. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_resolve_state_path.py +0 -0
  634. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_resolve_target_adapter_user_config.py +0 -0
  635. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_resolve_user_scope_target_adapter.py +0 -0
  636. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_route_surface_parity.py +0 -0
  637. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_safety.py +0 -0
  638. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_safety_repo_scope_prefixes.py +0 -0
  639. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_safety_scan_per_pack_scoping.py +0 -0
  640. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_scaffold_cmd.py +0 -0
  641. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_scope.py +0 -0
  642. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_self_host_windows.py +0 -0
  643. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_shared_prefix_disclosure.py +0 -0
  644. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_source_conflict_guard.py +0 -0
  645. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_source_defaults.py +0 -0
  646. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_state_v01_refuse_write.py +0 -0
  647. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_state_v02.py +0 -0
  648. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_state_v0_4_schema.py +0 -0
  649. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_statelock.py +0 -0
  650. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_statelock_hardening.py +0 -0
  651. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_system_trust.py +0 -0
  652. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_target_resolver.py +0 -0
  653. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_toml_emitters.py +0 -0
  654. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_unresolved_markers.py +0 -0
  655. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_upgrade_bulk_all.py +0 -0
  656. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_upgrade_recap.py +0 -0
  657. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_upgrade_source_inference.py +0 -0
  658. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_user_config_io.py +0 -0
  659. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_user_config_isolation.py +0 -0
  660. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_user_config_path.py +0 -0
  661. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_user_config_source.py +0 -0
  662. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_user_merge_json.py +0 -0
  663. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_validate_attach_to_agent.py +0 -0
  664. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_validate_categories.py +0 -0
  665. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_validate_cmd.py +0 -0
  666. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_validate_hook_wiring_per_file_compatibility.py +0 -0
  667. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_values_from_shapes.py +0 -0
  668. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_version.py +0 -0
  669. {agentbundle-0.43.0 → agentbundle-0.44.0}/tests/unit/test_windows_direct_suite_registration.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentbundle
3
- Version: 0.43.0
3
+ Version: 0.44.0
4
4
  Summary: npm for your coding agent. Install packs of skills, subagents, and hooks into any repo, for every major agent.
5
5
  Author-email: eugenelim <eugenelim@users.noreply.github.com>
6
6
  License-Expression: Apache-2.0 OR MIT
@@ -34,6 +34,32 @@ python -m pip install agentbundle
34
34
 
35
35
  Requires Python 3.11+. Runs on macOS, Linux, and Windows.
36
36
 
37
+ ## What's new in 0.44.0
38
+
39
+ Installing a pack now adds its default output location to an
40
+ `agentbundle-layout.toml` you already keep. That step has existed for several
41
+ releases and never wrote anything: it looked for a manifest key no pack
42
+ declares, and named the table after the pack while every skill reads a
43
+ differently-named section. A pack now declares the section it writes.
44
+
45
+ The append also stops rewriting your file. It adds one table and leaves every
46
+ other byte alone — comments, key order, quoting style, line endings, and any
47
+ key it does not recognise — and the file keeps its permissions. A layout
48
+ problem is reported and the install finishes; it no longer aborts.
49
+
50
+ ## What's new in 0.43.1
51
+
52
+ `agentbundle catalogue init` now writes `packs/CLAUDE.md` and
53
+ `profiles/CLAUDE.md` beside the `AGENTS.md` each already scaffolded. Both hold a
54
+ single `@AGENTS.md` import line. Claude Code reads `CLAUDE.md` rather than
55
+ `AGENTS.md`, and finds a nested one only when it reads a file in that directory,
56
+ so without the pair a Claude session in a new catalogue received no scoped pack
57
+ or profile guidance at all. Other agents are unaffected: `AGENTS.md` stays the
58
+ canonical file and its content did not change.
59
+
60
+ An existing `packs/CLAUDE.md` or `profiles/CLAUDE.md` is never overwritten;
61
+ `init` reports the conflict and leaves the file alone.
62
+
37
63
  ## What's new in 0.43.0
38
64
 
39
65
  An installed direct skill can now move to a later repository revision with
@@ -14,6 +14,32 @@ 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.44.0
18
+
19
+ Installing a pack now adds its default output location to an
20
+ `agentbundle-layout.toml` you already keep. That step has existed for several
21
+ releases and never wrote anything: it looked for a manifest key no pack
22
+ declares, and named the table after the pack while every skill reads a
23
+ differently-named section. A pack now declares the section it writes.
24
+
25
+ The append also stops rewriting your file. It adds one table and leaves every
26
+ other byte alone — comments, key order, quoting style, line endings, and any
27
+ key it does not recognise — and the file keeps its permissions. A layout
28
+ problem is reported and the install finishes; it no longer aborts.
29
+
30
+ ## What's new in 0.43.1
31
+
32
+ `agentbundle catalogue init` now writes `packs/CLAUDE.md` and
33
+ `profiles/CLAUDE.md` beside the `AGENTS.md` each already scaffolded. Both hold a
34
+ single `@AGENTS.md` import line. Claude Code reads `CLAUDE.md` rather than
35
+ `AGENTS.md`, and finds a nested one only when it reads a file in that directory,
36
+ so without the pair a Claude session in a new catalogue received no scoped pack
37
+ or profile guidance at all. Other agents are unaffected: `AGENTS.md` stays the
38
+ canonical file and its content did not change.
39
+
40
+ An existing `packs/CLAUDE.md` or `profiles/CLAUDE.md` is never overwritten;
41
+ `init` reports the conflict and leaves the file alone.
42
+
17
43
  ## What's new in 0.43.0
18
44
 
19
45
  An installed direct skill can now move to a later repository revision with
@@ -3,6 +3,7 @@
3
3
  "guides/_shared/reference/catalogue-authoring-standards.md": "72771324354ff29a4bf9072f48236e537bc680421785d700d2a3308d562777cc",
4
4
  "guides/_shared/reference/catalogue-ci-contract.md": "fae793ab47989b6dd3c731afcb0b4cda21c7d08bbe7fa40fca6d3abb3d158141",
5
5
  "packs/AGENTS.md": "c20af03f72b4c25c032ba5c15299eadaa0b41442c92d1cf621dde042cf9ff8db",
6
+ "packs/CLAUDE.md": "336cc4fbf19beaada7ccf9986414fa91851a8d7a07dfb3ccbe800a69eed0ab49",
6
7
  "packs/README.md": "d2de5f9556f4c8e521103474bde74636e02cc805f9bf5312a3a61a1f3eb45d8f",
7
8
  "packs/_example/.apm/skills/example-skill/SKILL.md": "e7e23d478278d4edefbf5aade77d1eefedeecf470ac2be2e32e385fafebc53a0",
8
9
  "packs/_example/.apm/skills/example-skill/evals/eval_queries.json": "f41ecda0834a22f3b4823c81ab02e58b0e4beba610e3b40c185579abff9cfeee",
@@ -10,10 +11,12 @@
10
11
  "packs/_example/README.md": "ef130c9c1f97a75a07cc59fc55fc5b3bf71846dd2f06c3cddf5a1154023b6ef6",
11
12
  "packs/_example/pack.toml": "3834ecbdcfc8184d31412526bc97ed9e9ed4c41c1e65b00e6c1cc19748e11888",
12
13
  "profiles/AGENTS.md": "34fba229a4e8bd1b6efc948d3e1d51d9d47f88826897c259909e0a1fd2672a5e",
14
+ "profiles/CLAUDE.md": "336cc4fbf19beaada7ccf9986414fa91851a8d7a07dfb3ccbe800a69eed0ab49",
13
15
  "profiles/README.md": "a0b0268edc57fc575f7fea08f3363ba7da9f6e67dc4a0a6f8bd38c9668c97922",
14
16
  "profiles/_example/README.md": "164494df049ddce3e57cb44ed604cb3d39be0a6ec2072e609ea3fa4bbfc74c72",
15
17
  "profiles/_example/profile.toml": "68af18cf50fa0327a9776b029c92bb1cf82710c649691b3ac889eb8537b8eac7",
16
18
  "tests/conformance/test_gemini_admissibility.py": "8b337da9272823aed2cb22041b3f9fd27549f075f28b9817efd5be8f8c5bb948",
19
+ "tests/conformance/test_pack_layout_declared_section.py": "1e03e04b995bd3f3cd2e6362c07d05514d3fe995c0fbe59045e3cc11a1e787a0",
17
20
  "tests/conformance/test_pack_metadata.py": "8ea175b88cc6e10ba10cda87676fc225ee2b968d710c8e6ab05fb20e31ec978a",
18
21
  "tests/conformance/test_shared_library_boundaries.py": "5e07783459336e657a355f43aa5a9cf6c138603624daec258ecc0fa3d74239c3"
19
22
  },
@@ -0,0 +1,236 @@
1
+ """A pack's declared layout section must be one it documents (spec AC6).
2
+
3
+ `agentbundle install` appends `[<section>] output_dir = <output_dir>` to an
4
+ adopter's `agentbundle-layout.toml`, taking both values from the pack manifest.
5
+ Every consuming skill then reads that section by prose instruction in its own
6
+ `SKILL.md` — no skill calls Python, so nothing at runtime can reconcile a
7
+ manifest that names a section the pack's own documentation does not.
8
+
9
+ That is exactly how the original defect survived two releases: the writer and
10
+ the readers were each exercised against their own idea of the shape. So this
11
+ check derives **both** sides from the repository and compares them. It carries
12
+ no list of expected section names; a list is the hand-maintained table the
13
+ design rejects.
14
+
15
+ Matching the *pair* rather than the section alone is what makes the check
16
+ discriminate. A pack may legitimately document several sections: one per
17
+ output tree it owns, plus any it only *reads* from a sibling pack. Section
18
+ membership alone would then admit a declaration that crosses two of them — a
19
+ section from one documented pair carried on the base from another — which
20
+ installs a default under a section whose readers resolve somewhere else. No
21
+ document describes that combination, and the pair rule is what rejects it.
22
+
23
+ This file is pack-portable by rule: it derives every pack and every pair from
24
+ the tree rather than naming any. It also ships — `catalogue init` writes it
25
+ into an adopter's catalogue, which may hold no packs, or packs that declare no
26
+ layout — so every tree-derived case skips when its evidence is absent, and the
27
+ rule's own discrimination is proven against synthetic input that is always
28
+ present and can never be vacuous.
29
+
30
+ That the *source* catalogue actually supplies that evidence is a claim about
31
+ this repository, not about every catalogue, so it lives in `tests/roster/`,
32
+ which does not ship. Without it a mis-rooted glob here would skip rather than
33
+ fail.
34
+ """
35
+
36
+ from __future__ import annotations
37
+
38
+ import re
39
+ import tomllib
40
+ from pathlib import Path
41
+
42
+ import pytest
43
+
44
+ REPO_ROOT = Path(__file__).resolve().parents[2]
45
+ PACKS_DIR = REPO_ROOT / "packs"
46
+
47
+ # `[section]` immediately followed by an `output_dir = "..."` assignment, inside
48
+ # one fenced block. Intervening comment lines are allowed; a blank line is not,
49
+ # so two unrelated examples cannot be read as one pair.
50
+ _PAIR = re.compile(
51
+ r"^\[([a-z0-9][a-z0-9-]*)\]\n(?:#[^\n]*\n)*output_dir = \"([^\"]+)\"",
52
+ re.MULTILINE,
53
+ )
54
+
55
+
56
+ def _declaring_packs() -> list[tuple[str, str, str, str]]:
57
+ """(pack, scope, section, output_dir) for every declared layout scope.
58
+
59
+ Both scopes, because the installer honours `[pack.layout.user]` too. No
60
+ shipped pack declares one today, but this file ships into adopter
61
+ catalogues where one could — and a user-scope pair no document describes
62
+ would otherwise pass unseen.
63
+ """
64
+ found = []
65
+ for manifest in sorted(PACKS_DIR.glob("*/pack.toml")):
66
+ layout = (
67
+ tomllib.loads(manifest.read_text(encoding="utf-8"))
68
+ .get("pack", {})
69
+ .get("layout", {})
70
+ )
71
+ for scope in ("repo", "user"):
72
+ table = layout.get(scope)
73
+ if not table:
74
+ continue
75
+ section, output_dir = table.get("section"), table.get("output_dir")
76
+ if section is None and output_dir is None:
77
+ continue
78
+ found.append((manifest.parent.name, scope, section, output_dir))
79
+ return found
80
+
81
+
82
+ def _is_repo_scope_base(base: str) -> bool:
83
+ """A repo-scope base is relative; a user-scope base is absolute.
84
+
85
+ This is the anchoring rule the layout contract already states — a
86
+ repo-root file's value is repo-root-relative, a user-profile file's must
87
+ be an explicit absolute path. Reading scope off the value keeps the check
88
+ from depending on how a fenced example is commented.
89
+ """
90
+ return not base.startswith(("/", "~"))
91
+
92
+
93
+ def _documented_pairs(pack: str, *, repo_scope: bool = True) -> set[tuple[str, str]]:
94
+ """Every (section, base) pair this pack's docs state for one scope.
95
+
96
+ Scope matters: a pack's reference docs carry both a repo-scope and a
97
+ user-scope example for the same section, so unioning them would let a
98
+ repo-scope declaration be validated by the user-scope base — a pair no
99
+ reader of the repo file would ever resolve.
100
+ """
101
+ pairs: set[tuple[str, str]] = set()
102
+ for doc in (PACKS_DIR / pack).rglob("references/agentbundle-layout.md"):
103
+ pairs |= {
104
+ (section, base)
105
+ for section, base in _PAIR.findall(doc.read_text(encoding="utf-8"))
106
+ if _is_repo_scope_base(base) is repo_scope
107
+ }
108
+ return pairs
109
+
110
+
111
+ def _is_admitted(
112
+ section: str, output_dir: str, documented: set[tuple[str, str]]
113
+ ) -> bool:
114
+ """The admission decision, in one place.
115
+
116
+ Both the tree-derived case and the discrimination proof call this, so a
117
+ weakening — to section membership alone, say — fails the proof instead of
118
+ passing it.
119
+ """
120
+ return (section, output_dir) in documented
121
+
122
+
123
+ def test_the_admission_rule_rejects_a_crossed_declaration() -> None:
124
+ """A section from one documented pair, carried on another's base.
125
+
126
+ Asserted through `_is_admitted`, the same predicate the tree-derived case
127
+ uses. Weakening that predicate to section membership admits the crossing
128
+ and turns this red.
129
+ """
130
+ documented = {("alpha", "one/alpha"), ("beta", "two/beta")}
131
+
132
+ assert _is_admitted("alpha", "one/alpha", documented)
133
+ assert _is_admitted("beta", "two/beta", documented)
134
+ assert not _is_admitted("alpha", "two/beta", documented)
135
+ assert not _is_admitted("beta", "one/alpha", documented)
136
+
137
+
138
+ @pytest.mark.parametrize("pack,scope,section,output_dir", _declaring_packs())
139
+ def test_declared_pair_is_documented_by_the_pack( # noqa: D103
140
+ pack: str, scope: str, section: str | None, output_dir: str | None
141
+ ) -> None:
142
+ assert section, f"{pack} declares a {scope} layout without a section"
143
+ assert output_dir, f"{pack} declares a {scope} layout without an output_dir"
144
+
145
+ documented = _documented_pairs(pack, repo_scope=scope == "repo")
146
+ assert documented, f"{pack} declares a layout but documents no section"
147
+ assert _is_admitted(section, output_dir, documented), (
148
+ f"{pack} declares ({section!r}, {output_dir!r}); its reference docs "
149
+ f"document {sorted(documented)}. The installer writes the declared "
150
+ f"pair, so a pair no document describes installs a default the pack's "
151
+ f"own skills will not read."
152
+ )
153
+
154
+
155
+ def _crossed_pairs(pairs: set[tuple[str, str]]) -> set[tuple[str, str]]:
156
+ """Every (section, base) formed from two *different* documented pairs."""
157
+ return {
158
+ (one_section, other_base)
159
+ for one_section, one_base in pairs
160
+ for other_section, other_base in pairs
161
+ if one_section != other_section and one_base != other_base
162
+ }
163
+
164
+
165
+ def test_the_rule_rejects_a_crossed_pair() -> None:
166
+ """The rule must discriminate, proven without depending on the tree.
167
+
168
+ Section membership alone would admit a declaration that takes its section
169
+ from one documented pair and its base from another. This is the property
170
+ that makes the pair rule worth having, so it is asserted against synthetic
171
+ input rather than against whichever packs happen to document two pairs
172
+ today — on an empty catalogue that evidence would simply be absent, and
173
+ the guarantee would silently stop being checked.
174
+ """
175
+ documented = {("alpha", "one/alpha"), ("beta", "two/beta")}
176
+ crossed = _crossed_pairs(documented)
177
+
178
+ assert crossed == {("alpha", "two/beta"), ("beta", "one/alpha")}
179
+ assert not (crossed & documented), "a crossed pair must never be documented"
180
+
181
+
182
+ def test_a_repo_declaration_is_not_validated_by_a_user_scope_example() -> None:
183
+ """The scope split must discriminate, not merely pass on today's tree.
184
+
185
+ A pack documenting the same section at both scopes offers two bases. If
186
+ the check unioned them, a repo-scope manifest carrying the user-scope base
187
+ would pass while naming a path no reader of the repo file resolves.
188
+ """
189
+ checked = 0
190
+ for pack, _scope, _section, _base in _declaring_packs():
191
+ repo_pairs = _documented_pairs(pack, repo_scope=True)
192
+ user_pairs = _documented_pairs(pack, repo_scope=False)
193
+ for section, user_base in user_pairs:
194
+ if any(s == section for s, _ in repo_pairs):
195
+ assert (section, user_base) not in repo_pairs
196
+ checked += 1
197
+ if not checked:
198
+ pytest.skip("no pack here documents one section at both scopes")
199
+
200
+
201
+ def test_no_pack_documents_a_crossing_of_its_own_pairs() -> None:
202
+ """The same property over the real tree, where there is one."""
203
+ for pack, _scope, _section, _base in _declaring_packs():
204
+ pairs = _documented_pairs(pack)
205
+ assert not (_crossed_pairs(pairs) & pairs), (
206
+ f"{pack} documents a pair and also a crossing of it, so the rule "
207
+ "cannot discriminate for that pack"
208
+ )
209
+
210
+
211
+ def test_every_reference_doc_agrees_with_its_pack_on_the_base() -> None:
212
+ """AC6 admits a pair documented in *one* doc; this requires all of them.
213
+
214
+ A pack with several reference pages can otherwise regress one of them to a
215
+ base the installer does not write, and stay green — the adopter reading
216
+ that page gets a location nothing populates.
217
+ """
218
+ walked = 0
219
+ for pack, scope, section, output_dir in _declaring_packs():
220
+ if scope != "repo":
221
+ continue
222
+ for doc in sorted((PACKS_DIR / pack).rglob("references/agentbundle-layout.md")):
223
+ pairs = {
224
+ (s, b)
225
+ for s, b in _PAIR.findall(doc.read_text(encoding="utf-8"))
226
+ if s == section and _is_repo_scope_base(b)
227
+ }
228
+ if not pairs:
229
+ continue # this page documents another section, or user scope
230
+ walked += 1
231
+ assert pairs == {(section, output_dir)}, (
232
+ f"{doc.relative_to(REPO_ROOT)} documents {sorted(pairs)} for "
233
+ f"[{section}] while {pack} declares {output_dir!r}"
234
+ )
235
+ if not walked:
236
+ pytest.skip("no reference doc here documents a declared repo-scope section")
@@ -248,7 +248,8 @@
248
248
  "properties": {
249
249
  "parent": {"type": "string"},
250
250
  "template": {"type": "string"},
251
- "output_dir": {"type": "string"}
251
+ "output_dir": {"type": "string"},
252
+ "section": {"type": "string", "pattern": "^[a-z0-9][a-z0-9-]*$"}
252
253
  }
253
254
  },
254
255
  "user": {
@@ -257,7 +258,8 @@
257
258
  "properties": {
258
259
  "parent": {"type": "string"},
259
260
  "template": {"type": "string"},
260
- "output_dir": {"type": "string"}
261
+ "output_dir": {"type": "string"},
262
+ "section": {"type": "string", "pattern": "^[a-z0-9][a-z0-9-]*$"}
261
263
  }
262
264
  }
263
265
  }