agentbundle 0.46.1__tar.gz → 0.47.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 (677) hide show
  1. {agentbundle-0.46.1/agentbundle.egg-info → agentbundle-0.47.1}/PKG-INFO +21 -17
  2. {agentbundle-0.46.1 → agentbundle-0.47.1}/README-pypi.md +20 -16
  3. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/knowledge-captured-observation.schema.json +113 -5
  4. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/self_host.py +42 -12
  5. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/catalogue_tooling/lint.py +1 -1
  6. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/catalogue_tooling/verify.py +1 -1
  7. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/commands/_common.py +2 -1
  8. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/commands/adapt.py +2 -2
  9. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/commands/catalogue_build.py +5 -5
  10. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/commands/catalogue_contracts.py +1 -1
  11. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/commands/catalogue_init.py +26 -26
  12. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/commands/catalogue_lint.py +4 -4
  13. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/commands/catalogue_package.py +15 -15
  14. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/commands/catalogue_self_host.py +6 -6
  15. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/commands/catalogue_sync_defaults.py +3 -3
  16. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/commands/catalogue_verify.py +5 -5
  17. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/commands/diff.py +2 -2
  18. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/commands/docs.py +2 -2
  19. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/commands/init_state.py +4 -4
  20. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/commands/install.py +24 -17
  21. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/commands/list_installed.py +8 -8
  22. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/commands/oplog_cmd.py +1 -1
  23. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/commands/pack_config_cmd.py +1 -1
  24. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/commands/package_catalogue.py +3 -3
  25. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/commands/profile.py +1 -1
  26. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/commands/render.py +3 -3
  27. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/commands/show.py +2 -2
  28. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/commands/uninstall.py +4 -4
  29. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/commands/upgrade.py +33 -35
  30. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/commands/validate.py +3 -3
  31. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/system_trust.py +1 -1
  32. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/version.py +1 -1
  33. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/workspace_mcp.py +181 -90
  34. {agentbundle-0.46.1 → agentbundle-0.47.1/agentbundle.egg-info}/PKG-INFO +21 -17
  35. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle.egg-info/SOURCES.txt +3 -4
  36. {agentbundle-0.46.1 → agentbundle-0.47.1}/pyproject.toml +14 -1
  37. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/_support.py +29 -1
  38. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_pack_schema.py +1 -1
  39. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_plugin_publication_gates.py +3 -4
  40. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_scope_rails.py +5 -6
  41. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_self_host_check.py +11 -7
  42. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_brownfield_round_trip.py +15 -14
  43. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_credential_brokers_pack_install.py +10 -22
  44. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_direct_install.py +11 -10
  45. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_fixtures_validate.py +4 -4
  46. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_hook_wiring_ingress.py +17 -51
  47. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_install_adapt_chain.py +21 -6
  48. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_install_cmd.py +40 -29
  49. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_install_converters_user_scope.py +7 -13
  50. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_install_core_smoke.py +6 -9
  51. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_install_default_source.py +11 -25
  52. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_install_dependencies_gate.py +8 -2
  53. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_install_dropped_primitives_warning.py +11 -3
  54. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_install_dual_scope.py +26 -28
  55. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_install_layout_is_best_effort.py +5 -9
  56. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_install_orphan_reshape.py +7 -14
  57. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_install_pack_metadata_shape.py +5 -7
  58. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_install_research_user_scope.py +7 -13
  59. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_install_seed_delivery.py +6 -11
  60. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_install_session_start_wiring.py +10 -2
  61. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_install_upgrade_offer.py +19 -26
  62. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_install_user_hooks.py +12 -9
  63. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_install_user_scope_allowed_adapters.py +9 -16
  64. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_kiro_ide_hook_e2e.py +3 -3
  65. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_local_scope_install.py +20 -28
  66. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_marketplace_entry_validation.py +1 -1
  67. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_plugin_route_membership.py +7 -10
  68. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_recommends_cross_scope.py +12 -6
  69. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_reconcile.py +10 -8
  70. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_tier_invariants.py +41 -53
  71. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_uninstall_cmd.py +13 -20
  72. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_uninstall_user_hooks.py +12 -16
  73. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_upgrade_attach_to_agent.py +9 -9
  74. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_upgrade_cmd.py +26 -24
  75. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_upgrade_user_hooks.py +11 -11
  76. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_version_gate_matrix.py +31 -26
  77. agentbundle-0.47.1/tests/test_workspace_mcp_layout_override.py +151 -0
  78. agentbundle-0.47.1/tests/unit/test_cli_namespace_fixture.py +75 -0
  79. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_common_classify_seeds.py +3 -3
  80. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_diff_cmd.py +5 -3
  81. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_init_state_cmd.py +6 -7
  82. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_install_defaults_preferred_adapter.py +7 -8
  83. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_install_first_value_handoff.py +16 -28
  84. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_install_messages.py +5 -12
  85. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_install_state_provenance.py +11 -28
  86. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_layout_bases_anchoring.py +11 -10
  87. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_multi_adapter_disambiguator.py +5 -13
  88. agentbundle-0.47.1/tests/unit/test_offer_upgrade_namespace.py +100 -0
  89. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_orphan_sweep_guards.py +4 -7
  90. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_plugin_scope_filter.py +1 -1
  91. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_render_cmd.py +11 -3
  92. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_route_surface_parity.py +3 -2
  93. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_scaffold_cmd.py +5 -7
  94. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_source_conflict_guard.py +13 -14
  95. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_state_v01_refuse_write.py +11 -29
  96. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_system_trust.py +2 -1
  97. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_validate_categories.py +3 -2
  98. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_validate_cmd.py +6 -4
  99. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_validate_hook_wiring_per_file_compatibility.py +3 -4
  100. agentbundle-0.46.1/agentbundle/telemetry_layout.py +0 -166
  101. agentbundle-0.46.1/tests/fixtures/telemetry-layout/repo-agentbundle-layout.toml +0 -2
  102. agentbundle-0.46.1/tests/fixtures/telemetry-layout/user-agentbundle-layout.toml +0 -3
  103. agentbundle-0.46.1/tests/unit/test_telemetry_layout.py +0 -337
  104. {agentbundle-0.46.1 → agentbundle-0.47.1}/MANIFEST.in +0 -0
  105. {agentbundle-0.46.1 → agentbundle-0.47.1}/README.md +0 -0
  106. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/__init__.py +0 -0
  107. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/__main__.py +0 -0
  108. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/__init__.py +0 -0
  109. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/adapter.schema.json +0 -0
  110. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/adapter.toml +0 -0
  111. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/agent-plugin-extension-namespaces.schema.json +0 -0
  112. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/agent-plugin-extension-namespaces.toml +0 -0
  113. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/catalogue-index.schema.json +0 -0
  114. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/catalogue-scaffold/guides/_shared/reference/catalogue-authoring-standards.md +0 -0
  115. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/catalogue-scaffold/guides/_shared/reference/catalogue-ci-contract.md +0 -0
  116. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/catalogue-scaffold/manifest.json +0 -0
  117. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/catalogue-scaffold/packs/AGENTS.md +0 -0
  118. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/catalogue-scaffold/packs/CLAUDE.md +0 -0
  119. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/catalogue-scaffold/packs/README.md +0 -0
  120. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/catalogue-scaffold/packs/_example/.apm/skills/example-skill/SKILL.md +0 -0
  121. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/catalogue-scaffold/packs/_example/.apm/skills/example-skill/evals/eval_queries.json +0 -0
  122. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/catalogue-scaffold/packs/_example/.claude-plugin/plugin.json +0 -0
  123. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/catalogue-scaffold/packs/_example/README.md +0 -0
  124. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/catalogue-scaffold/packs/_example/pack.toml +0 -0
  125. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/catalogue-scaffold/profiles/AGENTS.md +0 -0
  126. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/catalogue-scaffold/profiles/CLAUDE.md +0 -0
  127. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/catalogue-scaffold/profiles/README.md +0 -0
  128. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/catalogue-scaffold/profiles/_example/README.md +0 -0
  129. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/catalogue-scaffold/profiles/_example/profile.toml +0 -0
  130. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/catalogue-scaffold/tests/conformance/test_gemini_admissibility.py +0 -0
  131. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/catalogue-scaffold/tests/conformance/test_pack_layout_declared_section.py +0 -0
  132. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/catalogue-scaffold/tests/conformance/test_pack_metadata.py +0 -0
  133. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/catalogue-scaffold/tests/conformance/test_shared_library_boundaries.py +0 -0
  134. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/catalogue.schema.json +0 -0
  135. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/close_work.py +0 -0
  136. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/cooling.py +0 -0
  137. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/distribution-routes.schema.json +0 -0
  138. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/distribution-routes.toml +0 -0
  139. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/file_safety.py +0 -0
  140. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/guide.schema.json +0 -0
  141. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/install-defaults.toml +0 -0
  142. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/install-marker.py +0 -0
  143. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/marketplace-entry.schema.json +0 -0
  144. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/pack.schema.json +0 -0
  145. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/plugin-manifest.derived.schema.json +0 -0
  146. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/plugin-manifest.schema.json +0 -0
  147. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/profile.schema.json +0 -0
  148. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/public-contracts.txt +0 -0
  149. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/skill-manifest.schema.json +0 -0
  150. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/skill.schema.json +0 -0
  151. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/target-vocab.toml +0 -0
  152. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/vendor/agent-plugins/1.0.0/LICENSE.md +0 -0
  153. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/vendor/agent-plugins/1.0.0/PROVENANCE.md +0 -0
  154. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/vendor/agent-plugins/1.0.0/mcp.schema.json +0 -0
  155. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/vendor/agent-plugins/1.0.0/plugin.schema.json +0 -0
  156. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/work_intake_refresh.py +0 -0
  157. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/workspace_status_engine.py +0 -0
  158. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/_data/workspace_status_prune.py +0 -0
  159. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/bounded_metadata.py +0 -0
  160. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/__init__.py +0 -0
  161. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/__main__.py +0 -0
  162. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/adapter_root_bins.py +0 -0
  163. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/adapters/__init__.py +0 -0
  164. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/adapters/_sweep_guard.py +0 -0
  165. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/adapters/claude_code.py +0 -0
  166. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/adapters/codex.py +0 -0
  167. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/adapters/copilot.py +0 -0
  168. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/adapters/cursor.py +0 -0
  169. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/adapters/gemini.py +0 -0
  170. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/adapters/kiro.py +0 -0
  171. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/adapters/kiro_cli.py +0 -0
  172. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/adapters/kiro_ide.py +0 -0
  173. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/contract.py +0 -0
  174. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/hook_wiring_rules.py +0 -0
  175. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/lint_packs.py +0 -0
  176. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/main.py +0 -0
  177. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/phase_order.py +0 -0
  178. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/projection_io.py +0 -0
  179. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/projections/__init__.py +0 -0
  180. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/projections/codex_agent_toml.py +0 -0
  181. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/projections/copilot_agent_md.py +0 -0
  182. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/projections/copilot_hooks_json.py +0 -0
  183. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/projections/direct_directory.py +0 -0
  184. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/projections/gemini_command_toml.py +0 -0
  185. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/projections/hook_id.py +0 -0
  186. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/projections/kiro_ide_hook.py +0 -0
  187. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/projections/merge_into_agent_json.py +0 -0
  188. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/projections/merge_json.py +0 -0
  189. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/projections/plugin_hooks.py +0 -0
  190. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/projections/user_merge_json.py +0 -0
  191. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/recipes/composite-agents-md.toml +0 -0
  192. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/recipes/composite-marketplace.toml +0 -0
  193. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/recipes/marketplace.toml +0 -0
  194. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/recipes/per-pack-agent-plugin.toml +0 -0
  195. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/recipes/per-pack-apm-package.toml +0 -0
  196. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/recipes/per-pack-claude-plugin.toml +0 -0
  197. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/recipes/per-pack-overlay.toml +0 -0
  198. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/recipes/self-host.toml +0 -0
  199. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/route_agent_plugin.py +0 -0
  200. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/route_apm.py +0 -0
  201. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/route_claude_plugins.py +0 -0
  202. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/route_lookup.py +0 -0
  203. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/scope_rails.py +0 -0
  204. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/shared_libs.py +0 -0
  205. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/target_resolver.py +0 -0
  206. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/user_libs.py +0 -0
  207. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/build/validate.py +0 -0
  208. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/catalogue.py +0 -0
  209. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/catalogue_tooling/__init__.py +0 -0
  210. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/catalogue_tooling/archive.py +0 -0
  211. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/catalogue_tooling/build.py +0 -0
  212. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/catalogue_tooling/config.py +0 -0
  213. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/catalogue_tooling/contracts_inspector.py +0 -0
  214. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/catalogue_tooling/defaults.py +0 -0
  215. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/catalogue_tooling/diagnostics.py +0 -0
  216. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/catalogue_tooling/file_safety.py +0 -0
  217. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/catalogue_tooling/identity.py +0 -0
  218. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/catalogue_tooling/index_generator.py +0 -0
  219. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/catalogue_tooling/initialise.py +0 -0
  220. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/catalogue_tooling/initialise_self_hosted.py +0 -0
  221. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/catalogue_tooling/journey_validator.py +0 -0
  222. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/catalogue_tooling/manifest.py +0 -0
  223. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/catalogue_tooling/okf_discovery.py +0 -0
  224. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/catalogue_tooling/package.py +0 -0
  225. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/catalogue_tooling/results.py +0 -0
  226. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/catalogue_tooling/self_host.py +0 -0
  227. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/catalogue_tooling/self_host_windows.py +0 -0
  228. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/catalogue_tooling/skill_spec_lint.py +0 -0
  229. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/catalogue_tooling/toml_emit.py +0 -0
  230. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/catalogue_tooling/version_ranges.py +0 -0
  231. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/categories.py +0 -0
  232. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/cli.py +0 -0
  233. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/commands/__init__.py +0 -0
  234. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/commands/_drop_warning.py +0 -0
  235. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/commands/catalogue_index.py +0 -0
  236. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/commands/catalogue_tooling_stub.py +0 -0
  237. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/commands/config.py +0 -0
  238. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/commands/list_packs.py +0 -0
  239. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/commands/list_profiles.py +0 -0
  240. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/commands/list_targets.py +0 -0
  241. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/commands/pack_evals.py +0 -0
  242. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/commands/reconcile.py +0 -0
  243. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/commands/scaffold.py +0 -0
  244. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/config.py +0 -0
  245. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/direct_install.py +0 -0
  246. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/direct_source.py +0 -0
  247. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/direct_source_acquisition.py +0 -0
  248. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/direct_source_state.py +0 -0
  249. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/direct_validate.py +0 -0
  250. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/https_catalogue.py +0 -0
  251. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/local_exclude.py +0 -0
  252. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/oplog.py +0 -0
  253. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/pack_inventory.py +0 -0
  254. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/render.py +0 -0
  255. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/safety.py +0 -0
  256. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/scaffold.py +0 -0
  257. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/scope.py +0 -0
  258. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/source_defaults.py +0 -0
  259. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/statelock.py +0 -0
  260. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle/user_config.py +0 -0
  261. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle.egg-info/dependency_links.txt +0 -0
  262. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle.egg-info/entry_points.txt +0 -0
  263. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle.egg-info/requires.txt +0 -0
  264. {agentbundle-0.46.1 → agentbundle-0.47.1}/agentbundle.egg-info/top_level.txt +0 -0
  265. {agentbundle-0.46.1 → agentbundle-0.47.1}/conftest.py +0 -0
  266. {agentbundle-0.46.1 → agentbundle-0.47.1}/setup.cfg +0 -0
  267. {agentbundle-0.46.1 → agentbundle-0.47.1}/templates/install-marker.py +0 -0
  268. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/__init__.py +0 -0
  269. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/_direct_acquisition.py +0 -0
  270. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/__init__.py +0 -0
  271. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/fixtures/README.md +0 -0
  272. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/fixtures/claude-code-2.1.226-hook-events.json +0 -0
  273. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/fixtures/claude-code-2.1.228-hook-events.json +0 -0
  274. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/fixtures/packs/core/.apm/agents/bar.md +0 -0
  275. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/fixtures/packs/core/.apm/commands/qux.md +0 -0
  276. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/fixtures/packs/core/.apm/hook-wiring/baz.toml +0 -0
  277. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/fixtures/packs/core/.apm/hook-wiring/qux.toml +0 -0
  278. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/fixtures/packs/core/.apm/hooks/baz.py +0 -0
  279. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/fixtures/packs/core/.apm/hooks/baz.sh +0 -0
  280. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/fixtures/packs/core/.apm/skills/example/SKILL.md +0 -0
  281. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/fixtures/packs/core/.claude-plugin/plugin.json +0 -0
  282. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/fixtures/packs/core/pack.toml +0 -0
  283. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/fixtures/packs/governance-extras/.apm/skills/example/SKILL.md +0 -0
  284. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/fixtures/packs/governance-extras/.claude-plugin/plugin.json +0 -0
  285. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/fixtures/packs/governance-extras/pack.toml +0 -0
  286. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/fixtures/packs/monorepo-extras/.apm/skills/example/SKILL.md +0 -0
  287. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/fixtures/packs/monorepo-extras/.claude-plugin/plugin.json +0 -0
  288. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/fixtures/packs/monorepo-extras/pack.toml +0 -0
  289. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/fixtures/packs/product-documentation/.apm/skills/example/SKILL.md +0 -0
  290. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/fixtures/packs/product-documentation/.claude-plugin/plugin.json +0 -0
  291. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/fixtures/packs/product-documentation/pack.toml +0 -0
  292. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/fixtures/packs/user-guide-diataxis/.apm/skills/example/SKILL.md +0 -0
  293. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/fixtures/packs/user-guide-diataxis/.claude-plugin/plugin.json +0 -0
  294. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/fixtures/packs/user-guide-diataxis/pack.toml +0 -0
  295. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/fixtures/recipes/bogus-target.toml +0 -0
  296. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_adapter_claude_code.py +0 -0
  297. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_adapter_codex.py +0 -0
  298. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_adapter_copilot.py +0 -0
  299. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_adapter_cursor.py +0 -0
  300. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_adapter_gemini.py +0 -0
  301. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_adapter_kiro.py +0 -0
  302. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_adapter_kiro_alias.py +0 -0
  303. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_adapter_kiro_cli.py +0 -0
  304. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_adapter_kiro_ide.py +0 -0
  305. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_adapter_root_bins_projection.py +0 -0
  306. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_agent_boundary_metadata_projection.py +0 -0
  307. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_agent_plugin_projection.py +0 -0
  308. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_build_ships_seeds.py +0 -0
  309. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_contract.py +0 -0
  310. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_contract_scope.py +0 -0
  311. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_contract_v07.py +0 -0
  312. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_contract_v08.py +0 -0
  313. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_direct_directory_cleanup.py +0 -0
  314. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_distribution_route_contract.py +0 -0
  315. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_distribution_route_golden.py +0 -0
  316. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_distribution_route_resolution.py +0 -0
  317. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_end_to_end_build.py +0 -0
  318. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_hook_wiring_rules.py +0 -0
  319. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_lint_packs.py +0 -0
  320. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_load_pack_hook_wiring_safely.py +0 -0
  321. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_pack_schema_allowed_adapters.py +0 -0
  322. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_pack_schema_install.py +0 -0
  323. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_pipeline.py +0 -0
  324. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_plugin_hooks.py +0 -0
  325. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_plugin_manifest_schema.py +0 -0
  326. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_policy_registry_projection.py +0 -0
  327. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_projectable_subset.py +0 -0
  328. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_projection_io.py +0 -0
  329. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_projections_merge_json.py +0 -0
  330. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_route_lookup.py +0 -0
  331. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_security.py +0 -0
  332. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_self_host_fixture_guard.py +0 -0
  333. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_self_host_metadata_policy.py +0 -0
  334. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_self_host_recipe_config.py +0 -0
  335. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_sequential_implementer_dispatch_projection.py +0 -0
  336. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_shared_libs_projection.py +0 -0
  337. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_shared_prefix_contract.py +0 -0
  338. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_user_libs_projection.py +0 -0
  339. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_validate.py +0 -0
  340. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/build_pipeline/test_writers_emit_lf.py +0 -0
  341. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/conftest.py +0 -0
  342. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/contracts/test_agentbundle_show_schema.py +0 -0
  343. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/contracts/test_skill_schema.py +0 -0
  344. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/adapt/.adapt-discovery.toml +0 -0
  345. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/adapt/values.toml +0 -0
  346. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/blank_catalogue/.claude-plugin/marketplace.json +0 -0
  347. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/blank_catalogue/catalogue.toml +0 -0
  348. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/blank_catalogue/packs/.gitkeep +0 -0
  349. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/blank_catalogue/packs/_example/.apm/skills/example-skill/SKILL.md +0 -0
  350. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/blank_catalogue/packs/_example/.claude-plugin/plugin.json +0 -0
  351. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/blank_catalogue/packs/_example/README.md +0 -0
  352. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/blank_catalogue/packs/_example/evals/eval_queries.json +0 -0
  353. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/blank_catalogue/packs/_example/pack.toml +0 -0
  354. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/blank_catalogue/profiles/.gitkeep +0 -0
  355. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/blank_catalogue/profiles/_example/README.md +0 -0
  356. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/blank_catalogue/profiles/_example/profile.toml +0 -0
  357. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/brownfield/values.toml +0 -0
  358. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/brownfield-adapt/AGENTS.md +0 -0
  359. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/brownfield-adapt/AGENTS.upstream.md +0 -0
  360. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/brownfield-adapt/DESIGN.md +0 -0
  361. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/brownfield-adapt/EXPECTED_TREE.md +0 -0
  362. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/brownfield-adapt/docs/CHARTER.md +0 -0
  363. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/brownfield-adapt/docs/guides/how-to/index.md +0 -0
  364. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/brownfield-adapt/docs/howto/getting-started.md +0 -0
  365. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/brownfield-adapt-expected/AGENTS.md +0 -0
  366. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/brownfield-adapt-expected/docs/CHARTER.md +0 -0
  367. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/brownfield-adapt-user-home/.agentbundle/.adapt-discovery.toml +0 -0
  368. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/brownfield-adapt-user-home/.agentbundle/state.toml +0 -0
  369. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/catalogue_wave4/catalogue.toml +0 -0
  370. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/catalogue_wave4/packs/pack-with-journey/.apm/hook-wiring/example.json +0 -0
  371. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/catalogue_wave4/packs/pack-with-journey/.apm/skills/example-skill/SKILL.md +0 -0
  372. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/catalogue_wave4/packs/pack-with-journey/.apm/skills/example-skill/scripts/run.py +0 -0
  373. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/catalogue_wave4/packs/pack-with-journey/JOURNEY.md +0 -0
  374. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/catalogue_wave4/packs/pack-with-journey/pack.toml +0 -0
  375. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/catalogue_wave4/packs/pack-without-journey/pack.toml +0 -0
  376. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/catalogue_wave4/profiles/test-profile.toml +0 -0
  377. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/cognitive-load-hosts.json +0 -0
  378. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/creds/skills/argv-flag/SKILL.md +0 -0
  379. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/creds/skills/argv-flag/scripts/cli.py +0 -0
  380. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/creds/skills/argv-flag-derived/SKILL.md +0 -0
  381. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/creds/skills/argv-flag-derived/scripts/cli.py +0 -0
  382. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/creds/skills/argv-flag-normalised/SKILL.md +0 -0
  383. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/creds/skills/argv-flag-normalised/scripts/cli.py +0 -0
  384. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/creds/skills/conforming/SKILL.md +0 -0
  385. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/creds/skills/conforming/scripts/cli.py +0 -0
  386. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/creds/skills/dotfile-grep/SKILL.md +0 -0
  387. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/creds/skills/dotfile-grep/scripts/leak.py +0 -0
  388. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/creds/skills/dotfile-with-optout/SKILL.md +0 -0
  389. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/creds/skills/dotfile-with-optout/scripts/legit.py +0 -0
  390. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/creds/skills/mcp-server-headers/SKILL.md +0 -0
  391. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/creds/skills/mcp-server-headers/scripts/cli.py +0 -0
  392. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/creds/skills/missing-dont-block/SKILL.md +0 -0
  393. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/direct/ac35_corpus_verdicts.json +0 -0
  394. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/direct/golden_state_0_5.toml +0 -0
  395. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/distribution-routes/golden.json +0 -0
  396. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/distribution-routes/witness-packs/portable/.apm/skills/example/SKILL.md +0 -0
  397. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/distribution-routes/witness-packs/portable/pack.toml +0 -0
  398. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/external_catalogue/.claude-plugin/marketplace.json +0 -0
  399. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/external_catalogue/AGENTS.md +0 -0
  400. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/external_catalogue/LICENSE-APACHE +0 -0
  401. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/external_catalogue/LICENSE-MIT +0 -0
  402. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/external_catalogue/agentbundle/_data/install-defaults.toml +0 -0
  403. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/external_catalogue/catalogue.toml +0 -0
  404. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/external_catalogue/packs/alpha/.apm/skills/example/SKILL.md +0 -0
  405. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/external_catalogue/packs/alpha/.claude-plugin/plugin.json +0 -0
  406. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/external_catalogue/packs/alpha/pack.toml +0 -0
  407. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/external_catalogue/packs/alpha/seeds/AGENTS.md +0 -0
  408. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/external_catalogue/packs/beta/.claude-plugin/plugin.json +0 -0
  409. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/external_catalogue/packs/beta/pack.toml +0 -0
  410. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/external_catalogue/profiles/example.toml +0 -0
  411. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/install/catalogue/packs/alpha/.apm/agents/helper.md +0 -0
  412. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/install/catalogue/packs/alpha/.apm/commands/cmd.md +0 -0
  413. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/install/catalogue/packs/alpha/.apm/hook-wiring/run.toml +0 -0
  414. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/install/catalogue/packs/alpha/.apm/hooks/run.sh +0 -0
  415. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/install/catalogue/packs/alpha/.apm/skills/example/SKILL.md +0 -0
  416. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/install/catalogue/packs/alpha/.claude-plugin/plugin.json +0 -0
  417. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/install/catalogue/packs/alpha/pack.toml +0 -0
  418. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/kiro_ide_hook/ask_agent_basic.kiro.hook +0 -0
  419. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/kiro_ide_hook/run_command_with_placeholder.kiro.hook +0 -0
  420. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/lint_packs/clean/pack.toml +0 -0
  421. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/lint_packs/clean/seeds/README.md +0 -0
  422. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/list-installed/golden_120col.txt +0 -0
  423. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/list-installed/golden_80col.txt +0 -0
  424. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/list_packs/catalogue/packs/alpha/pack.toml +0 -0
  425. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/list_packs/catalogue/packs/beta/pack.toml +0 -0
  426. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/local_scope/catalogue/packs/local-test-pack/.apm/skills/local-test/SKILL.md +0 -0
  427. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/local_scope/catalogue/packs/local-test-pack/pack.toml +0 -0
  428. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/packs/cc-user-hooks/.apm/hook-wiring/on-prompt.toml +0 -0
  429. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/packs/cc-user-hooks/.apm/hooks/on-prompt.sh +0 -0
  430. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/packs/cc-user-hooks/pack.toml +0 -0
  431. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/packs/kiro-repo-hooks/.apm/agents/reviewer.md +0 -0
  432. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/packs/kiro-repo-hooks/.apm/hook-wiring/on-spawn.toml +0 -0
  433. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/packs/kiro-repo-hooks/.apm/hooks/on-spawn.sh +0 -0
  434. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/packs/kiro-repo-hooks/pack.toml +0 -0
  435. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/packs/kiro-user-hooks/.apm/agents/reviewer.md +0 -0
  436. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/packs/kiro-user-hooks/.apm/hook-wiring/on-spawn.toml +0 -0
  437. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/packs/kiro-user-hooks/.apm/hooks/on-spawn.sh +0 -0
  438. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/packs/kiro-user-hooks/pack.toml +0 -0
  439. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/packs/malformed-kiro-missing-attach/.apm/agents/reviewer.md +0 -0
  440. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/packs/malformed-kiro-missing-attach/.apm/hook-wiring/on-spawn.toml +0 -0
  441. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/packs/malformed-kiro-missing-attach/.apm/hooks/on-spawn.sh +0 -0
  442. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/packs/malformed-kiro-missing-attach/pack.toml +0 -0
  443. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/packs/malformed-kiro-pascal-events/.apm/agents/reviewer.md +0 -0
  444. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/packs/malformed-kiro-pascal-events/.apm/hook-wiring/on-spawn.toml +0 -0
  445. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/packs/malformed-kiro-pascal-events/.apm/hooks/on-spawn.sh +0 -0
  446. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/packs/malformed-kiro-pascal-events/pack.toml +0 -0
  447. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/packs/malformed-kiro-unknown-agent/.apm/agents/reviewer.md +0 -0
  448. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/packs/malformed-kiro-unknown-agent/.apm/hook-wiring/on-spawn.toml +0 -0
  449. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/packs/malformed-kiro-unknown-agent/.apm/hooks/on-spawn.sh +0 -0
  450. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/packs/malformed-kiro-unknown-agent/pack.toml +0 -0
  451. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/scaffold/test-pack/seeds/AGENTS.md +0 -0
  452. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/scaffold/test-pack/seeds/_agents-footer.md +0 -0
  453. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/scaffold/test-pack/seeds/docs/CHARTER.md +0 -0
  454. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/show_contract/agentbundle-show.schema.json +0 -0
  455. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/show_contract/catalogue.json +0 -0
  456. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/show_contract/installed_state.json +0 -0
  457. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/agents/reviewer.md +0 -0
  458. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/commands/deploy.md +0 -0
  459. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/hook-wiring/pre-commit.toml +0 -0
  460. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/hooks/lint.py +0 -0
  461. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/hooks/pre-commit.sh +0 -0
  462. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/skills/work-loop/SKILL.md +0 -0
  463. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/upgrade/catalogue_v1/packs/core/.claude-plugin/plugin.json +0 -0
  464. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/upgrade/catalogue_v1/packs/core/pack.toml +0 -0
  465. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/agents/reviewer.md +0 -0
  466. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/commands/deploy.md +0 -0
  467. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/hook-wiring/pre-commit.toml +0 -0
  468. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/hooks/lint.py +0 -0
  469. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/hooks/pre-commit.sh +0 -0
  470. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/skills/work-loop/SKILL.md +0 -0
  471. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/upgrade/catalogue_v2/packs/core/.claude-plugin/plugin.json +0 -0
  472. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/upgrade/catalogue_v2/packs/core/pack.toml +0 -0
  473. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/agents/reviewer.md +0 -0
  474. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/commands/deploy.md +0 -0
  475. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/hook-wiring/pre-commit.toml +0 -0
  476. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/hooks/lint.py +0 -0
  477. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/hooks/pre-commit.sh +0 -0
  478. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/skills/work-loop/SKILL.md +0 -0
  479. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/upgrade/catalogue_v3/packs/core/.claude-plugin/plugin.json +0 -0
  480. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/upgrade/catalogue_v3/packs/core/pack.toml +0 -0
  481. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/validate/bad_recipe_pack/pack.toml +0 -0
  482. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/validate/malformed_pack/pack.toml +0 -0
  483. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/validate/valid_pack/pack.toml +0 -0
  484. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/fixtures/validate/version_mismatch_pack/pack.toml +0 -0
  485. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/__init__.py +0 -0
  486. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_adapt_cmd.py +0 -0
  487. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_adapt_dual_scope.py +0 -0
  488. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_adapt_preflight_detection.py +0 -0
  489. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_adapt_schema_migration.py +0 -0
  490. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_apm_install_route.py +0 -0
  491. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_blank_catalogue.py +0 -0
  492. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_brownfield_adapt_end_to_end.py +0 -0
  493. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_brownfield_user_home_fixture.py +0 -0
  494. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_build_check_drift_gates.py +0 -0
  495. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_build_derivation_apm.py +0 -0
  496. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_build_derivation_claude_plugins.py +0 -0
  497. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_catalogue_init.py +0 -0
  498. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_catalogue_verify_adapter_compat.py +0 -0
  499. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_catalogue_verify_dependencies.py +0 -0
  500. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_catalogue_verify_external_portability.py +0 -0
  501. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_catalogue_verify_fixture_checks.py +0 -0
  502. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_catalogue_verify_marketplace.py +0 -0
  503. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_catalogue_verify_output_drift.py +0 -0
  504. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_catalogue_verify_package_preflight.py +0 -0
  505. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_catalogue_verify_plugin_path.py +0 -0
  506. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_catalogue_verify_profile_schema.py +0 -0
  507. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_catalogue_verify_step1.py +0 -0
  508. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_catalogue_wave4_index_generator.py +0 -0
  509. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_catalogue_wave4_integration.py +0 -0
  510. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_catalogue_wave4_journey_validator.py +0 -0
  511. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_catalogue_wave4_schema.py +0 -0
  512. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_cc_user_hooks_fixture.py +0 -0
  513. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_claude_plugins_install_route.py +0 -0
  514. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_config_cascade.py +0 -0
  515. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_credentials_wheel.py +0 -0
  516. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_discovery_schema_cross_consumer.py +0 -0
  517. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_editable_source_detection.py +0 -0
  518. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_install_copilot_full_parity.py +0 -0
  519. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_install_profile.py +0 -0
  520. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_install_profile_live.py +0 -0
  521. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_install_repo_scope_per_adapter.py +0 -0
  522. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_kiro_repo_hooks_fixture.py +0 -0
  523. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_kiro_user_hooks_fixture.py +0 -0
  524. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_list_packs_cmd.py +0 -0
  525. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_marketplace_manifest_regression.py +0 -0
  526. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_multi_pack_install.py +0 -0
  527. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_orphan_cleanup_respects_foreign_state.py +0 -0
  528. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_reserved_path_filter.py +0 -0
  529. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_scaffold_projection.py +0 -0
  530. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_self_host_schema_migration.py +0 -0
  531. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_self_host_sweep_respects_state.py +0 -0
  532. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_shared_prefix_coexistence.py +0 -0
  533. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_show_cmd.py +0 -0
  534. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_trust_fallback_tls.py +0 -0
  535. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_workspace_mcp_git_fsm.py +0 -0
  536. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/integration/test_zipapp.py +0 -0
  537. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/performance/__init__.py +0 -0
  538. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/performance/test_direct_family2_budget_cost.py +0 -0
  539. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/test_adapter_permissions_projection.py +0 -0
  540. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/test_workspace_mcp_elicit.py +0 -0
  541. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/test_workspace_mcp_event_bridge.py +0 -0
  542. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/test_workspace_mcp_git.py +0 -0
  543. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/test_workspace_mcp_lifecycle.py +0 -0
  544. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/test_workspace_mcp_stdin.py +0 -0
  545. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/test_workspace_mcp_tools.py +0 -0
  546. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/__init__.py +0 -0
  547. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_adapt_discovery_schema.py +0 -0
  548. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_adapter_symlink_policy.py +0 -0
  549. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_append_layout_section.py +0 -0
  550. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_architect_readme_install_command.py +0 -0
  551. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_catalogue_ci_contract.py +0 -0
  552. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_catalogue_curation_deps.py +0 -0
  553. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_catalogue_init_cli_self_hosted.py +0 -0
  554. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_catalogue_pack_defaults.py +0 -0
  555. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_catalogue_self_hosted_export_removal.py +0 -0
  556. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_catalogue_skill_spec_lint.py +0 -0
  557. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_catalogue_tooling_archive.py +0 -0
  558. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_catalogue_tooling_build.py +0 -0
  559. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_catalogue_tooling_defaults.py +0 -0
  560. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_catalogue_tooling_file_safety.py +0 -0
  561. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_catalogue_tooling_foundation.py +0 -0
  562. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_catalogue_tooling_identity.py +0 -0
  563. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_catalogue_tooling_init.py +0 -0
  564. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_catalogue_tooling_lint.py +0 -0
  565. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_catalogue_tooling_package.py +0 -0
  566. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_catalogue_tooling_self_host.py +0 -0
  567. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_catalogue_tooling_self_hosted_init.py +0 -0
  568. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_catalogue_tooling_source_package.py +0 -0
  569. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_catalogue_tooling_verify.py +0 -0
  570. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_catalogue_trust_fallback.py +0 -0
  571. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_catalogue_wave2_schema.py +0 -0
  572. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_catalogue_wave2_validation.py +0 -0
  573. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_catalogue_wave3_contracts_cli.py +0 -0
  574. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_catalogue_wave3_contracts_inspector.py +0 -0
  575. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_catalogue_wave3_init_nextsteps.py +0 -0
  576. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_catalogue_wave3_offline_navigation.py +0 -0
  577. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_cli_catalogue_optional.py +0 -0
  578. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_cli_help_lists_config.py +0 -0
  579. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_cli_list_targets_help.py +0 -0
  580. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_cli_path_normalisation.py +0 -0
  581. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_cli_profile_surface.py +0 -0
  582. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_cli_scope_flags.py +0 -0
  583. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_codex_agent_toml.py +0 -0
  584. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_codex_projection_modes.py +0 -0
  585. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_cognitive_load_seed_contract.py +0 -0
  586. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_collect_tree_symlinks.py +0 -0
  587. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_config.py +0 -0
  588. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_config_cmd.py +0 -0
  589. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_configured_adapter.py +0 -0
  590. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_confirm_helper.py +0 -0
  591. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_contract_parity.py +0 -0
  592. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_contract_v0_3_schema.py +0 -0
  593. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_copilot_agent_md.py +0 -0
  594. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_copilot_hooks_json.py +0 -0
  595. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_copilot_user_scope_wiring.py +0 -0
  596. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_credbroker_lint_hardening.py +0 -0
  597. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_dependencies_batch.py +0 -0
  598. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_direct_admission.py +0 -0
  599. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_direct_architecture_controls.py +0 -0
  600. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_direct_diagnostics.py +0 -0
  601. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_direct_lifecycle_facts.py +0 -0
  602. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_direct_source_acquisition.py +0 -0
  603. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_direct_source_state.py +0 -0
  604. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_direct_upgrade.py +0 -0
  605. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_direct_validate.py +0 -0
  606. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_footprint_ownership.py +0 -0
  607. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_https_catalogue.py +0 -0
  608. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_install_argparse_adapter_flag.py +0 -0
  609. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_install_argparse_emit_install_routes.py +0 -0
  610. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_install_dropped_primitives_warning.py +0 -0
  611. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_install_event_dropped_wirings.py +0 -0
  612. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_install_force_help.py +0 -0
  613. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_install_inband_detection.py +0 -0
  614. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_install_messages_repo_scope.py +0 -0
  615. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_install_refusal_ordering.py +0 -0
  616. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_kiro_ide_hook_projection.py +0 -0
  617. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_kiro_ide_hook_rail.py +0 -0
  618. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_kiro_ide_hook_schema.py +0 -0
  619. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_lint_agent_artifacts_metadata_auth.py +0 -0
  620. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_list_installed_cmd.py +0 -0
  621. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_list_installed_status.py +0 -0
  622. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_list_targets_cmd.py +0 -0
  623. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_local_exclude_git_cache.py +0 -0
  624. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_local_scope_schema.py +0 -0
  625. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_local_scope_t10_uninstall.py +0 -0
  626. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_local_scope_t12_show.py +0 -0
  627. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_local_scope_t2_resolve.py +0 -0
  628. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_local_scope_t3_config.py +0 -0
  629. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_local_scope_t4_state_path.py +0 -0
  630. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_local_scope_t5_list_installed.py +0 -0
  631. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_local_scope_t7_install_gates.py +0 -0
  632. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_local_scope_t8_install.py +0 -0
  633. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_local_scope_t9_exclude.py +0 -0
  634. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_marker_schema_version_parity.py +0 -0
  635. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_merge_into_agent_json.py +0 -0
  636. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_nested_symlink_hardening.py +0 -0
  637. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_okf_discovery.py +0 -0
  638. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_org_bootstrap.py +0 -0
  639. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_pack_config_api.py +0 -0
  640. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_pack_inventory.py +0 -0
  641. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_pack_layout_section_schema.py +0 -0
  642. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_package_catalogue.py +0 -0
  643. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_packstate_source_provenance.py +0 -0
  644. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_pipeline_phase_order.py +0 -0
  645. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_profile_reader.py +0 -0
  646. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_render.py +0 -0
  647. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_render_table.py +0 -0
  648. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_resolve_state_path.py +0 -0
  649. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_resolve_target_adapter_user_config.py +0 -0
  650. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_resolve_user_scope_target_adapter.py +0 -0
  651. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_safety.py +0 -0
  652. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_safety_repo_scope_prefixes.py +0 -0
  653. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_safety_scan_per_pack_scoping.py +0 -0
  654. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_scope.py +0 -0
  655. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_self_host_windows.py +0 -0
  656. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_shared_prefix_disclosure.py +0 -0
  657. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_source_defaults.py +0 -0
  658. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_state_v02.py +0 -0
  659. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_state_v0_4_schema.py +0 -0
  660. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_statelock.py +0 -0
  661. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_statelock_hardening.py +0 -0
  662. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_target_resolver.py +0 -0
  663. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_toml_emitters.py +0 -0
  664. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_unresolved_markers.py +0 -0
  665. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_upgrade_bulk_all.py +0 -0
  666. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_upgrade_recap.py +0 -0
  667. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_upgrade_source_inference.py +0 -0
  668. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_user_config_io.py +0 -0
  669. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_user_config_isolation.py +0 -0
  670. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_user_config_path.py +0 -0
  671. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_user_config_source.py +0 -0
  672. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_user_merge_json.py +0 -0
  673. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_validate_attach_to_agent.py +0 -0
  674. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_values_from_shapes.py +0 -0
  675. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_version.py +0 -0
  676. {agentbundle-0.46.1 → agentbundle-0.47.1}/tests/unit/test_windows_direct_suite_registration.py +0 -0
  677. {agentbundle-0.46.1 → agentbundle-0.47.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.46.1
3
+ Version: 0.47.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
@@ -34,6 +34,23 @@ 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.47.1
38
+
39
+ **Fixed:** `workspace_status` now reports the output path your
40
+ `agentbundle-layout.toml` configures. It previously showed the built-in default
41
+ for an item type while the git tools committed to your configured `output_dir`,
42
+ so the status surface and everything else disagreed. If your configured
43
+ directory resolves outside the repository, the status surface now reports no
44
+ pattern and says why, because commits are confined to the repository.
45
+
46
+ ## What's new in 0.47.0
47
+
48
+ **Removed:** the work-loop telemetry resolver. `jsonl-otlp-export` now reads
49
+ `[telemetry]` from your repository and user `agentbundle-layout.toml` itself,
50
+ through its own `--config` and `--user-config` flags, so invoking it no longer
51
+ requires importing this package. Configuration files, their location and their
52
+ repository-wins-per-setting precedence are unchanged; only what reads them moved.
53
+
37
54
  ## What's new in 0.46.1
38
55
 
39
56
  `catalogue init` no longer stages its writes under a name another local user
@@ -57,22 +74,9 @@ null. Values written into the generated `catalogue.toml` are escaped for TOML.
57
74
 
58
75
  ## What's new in 0.45.0
59
76
 
60
- `agentbundle` can now work out where to send your work-loop telemetry.
61
- `agentbundle.telemetry_layout.resolve()` reads the `[telemetry]` section of the
62
- `agentbundle-layout.toml` in your repository and the one in your user layout
63
- directory, and returns the arguments for the separately installed
64
- `jsonl-otlp-exporter` sender. Nothing is sent unless you configure an endpoint
65
- and install that sender: they are two separate consents.
66
-
67
- Repository settings win per setting, because sending data off the machine is a
68
- team decision rather than a personal one. Both files are read through the
69
- catalogue's confinement helper and bounded at 64 KiB, and a `[telemetry]`
70
- setting the sender has no route for is refused — naming the file it came from —
71
- rather than silently ignored.
72
-
73
- `catalogue lint` also reports `CAT-L032` when a pack declares an optional
74
- runtime dependency you do not have installed. It names the package and exits 0.
75
- It never invokes a package manager and never installs anything.
77
+ Work-loop telemetry configuration. The resolver this release introduced was
78
+ removed in 0.47.0 — the sender reads both `agentbundle-layout.toml` files
79
+ itself, so nothing in this package stands between your configuration and it.
76
80
 
77
81
  ## What's new in 0.44.3
78
82
 
@@ -14,6 +14,23 @@ 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.47.1
18
+
19
+ **Fixed:** `workspace_status` now reports the output path your
20
+ `agentbundle-layout.toml` configures. It previously showed the built-in default
21
+ for an item type while the git tools committed to your configured `output_dir`,
22
+ so the status surface and everything else disagreed. If your configured
23
+ directory resolves outside the repository, the status surface now reports no
24
+ pattern and says why, because commits are confined to the repository.
25
+
26
+ ## What's new in 0.47.0
27
+
28
+ **Removed:** the work-loop telemetry resolver. `jsonl-otlp-export` now reads
29
+ `[telemetry]` from your repository and user `agentbundle-layout.toml` itself,
30
+ through its own `--config` and `--user-config` flags, so invoking it no longer
31
+ requires importing this package. Configuration files, their location and their
32
+ repository-wins-per-setting precedence are unchanged; only what reads them moved.
33
+
17
34
  ## What's new in 0.46.1
18
35
 
19
36
  `catalogue init` no longer stages its writes under a name another local user
@@ -37,22 +54,9 @@ null. Values written into the generated `catalogue.toml` are escaped for TOML.
37
54
 
38
55
  ## What's new in 0.45.0
39
56
 
40
- `agentbundle` can now work out where to send your work-loop telemetry.
41
- `agentbundle.telemetry_layout.resolve()` reads the `[telemetry]` section of the
42
- `agentbundle-layout.toml` in your repository and the one in your user layout
43
- directory, and returns the arguments for the separately installed
44
- `jsonl-otlp-exporter` sender. Nothing is sent unless you configure an endpoint
45
- and install that sender: they are two separate consents.
46
-
47
- Repository settings win per setting, because sending data off the machine is a
48
- team decision rather than a personal one. Both files are read through the
49
- catalogue's confinement helper and bounded at 64 KiB, and a `[telemetry]`
50
- setting the sender has no route for is refused — naming the file it came from —
51
- rather than silently ignored.
52
-
53
- `catalogue lint` also reports `CAT-L032` when a pack declares an optional
54
- runtime dependency you do not have installed. It names the package and exits 0.
55
- It never invokes a package manager and never installs anything.
57
+ Work-loop telemetry configuration. The resolver this release introduced was
58
+ removed in 0.47.0 — the sender reads both `agentbundle-layout.toml` files
59
+ itself, so nothing in this package stands between your configuration and it.
56
60
 
57
61
  ## What's new in 0.44.3
58
62
 
@@ -5,11 +5,10 @@
5
5
  "description": "Strict producer request admitted by project-knowledge capture before core derives storage identity.",
6
6
  "x-spec": ["docs/specs/project-knowledge-foundation/"],
7
7
  "type": "object",
8
- "contract_version": "knowledge-captured-observation.v1",
8
+ "contract_version": "knowledge-captured-observation.v2",
9
9
  "additionalProperties": false,
10
10
  "required": [
11
11
  "contract_version",
12
- "lesson",
13
12
  "kind",
14
13
  "project_scope",
15
14
  "competency_facets",
@@ -23,13 +22,13 @@
23
22
  ],
24
23
  "properties": {
25
24
  "contract_version": {
26
- "const": "knowledge-captured-observation.v1"
25
+ "const": "knowledge-captured-observation.v2"
27
26
  },
28
27
  "lesson": {
29
28
  "$ref": "#/$defs/safeText2000"
30
29
  },
31
30
  "kind": {
32
- "enum": ["pattern", "gotcha", "antipattern"]
31
+ "enum": ["pattern", "gotcha", "antipattern", "work-item"]
33
32
  },
34
33
  "project_scope": {
35
34
  "type": "object",
@@ -205,14 +204,123 @@
205
204
  "required": ["command", "path"],
206
205
  "properties": {
207
206
  "command": {
208
- "$ref": "#/$defs/safeText500"
207
+ "type": "array",
208
+ "minItems": 1,
209
+ "maxItems": 20,
210
+ "items": { "$ref": "#/$defs/safeText500" }
209
211
  },
210
212
  "path": {
211
213
  "$ref": "#/$defs/repositoryPath"
212
214
  }
213
215
  }
216
+ },
217
+ "work_item": {
218
+ "type": "object",
219
+ "additionalProperties": false,
220
+ "required": ["statement", "shape", "blocker", "finished_state", "necessity_rationale"],
221
+ "properties": {
222
+ "statement": {
223
+ "$ref": "#/$defs/safeText2000"
224
+ },
225
+ "shape": {
226
+ "enum": ["defect", "question", "decision"]
227
+ },
228
+ "blocker": {
229
+ "enum": ["decision", "instrument", "elapsed-time", "dependency"]
230
+ },
231
+ "finished_state": {
232
+ "$ref": "#/$defs/safeText2000"
233
+ },
234
+ "necessity_rationale": {
235
+ "$ref": "#/$defs/safeText2000"
236
+ },
237
+ "observed": {
238
+ "$ref": "#/$defs/safeText2000"
239
+ },
240
+ "intended": {
241
+ "$ref": "#/$defs/safeText2000"
242
+ },
243
+ "answered_by": {
244
+ "$ref": "#/$defs/safeText2000"
245
+ },
246
+ "significance": {
247
+ "type": "array",
248
+ "minItems": 1,
249
+ "uniqueItems": true,
250
+ "items": {
251
+ "enum": [
252
+ "architecturally-significant",
253
+ "expensive-to-reverse",
254
+ "constrains-beyond"
255
+ ]
256
+ }
257
+ }
258
+ }
214
259
  }
215
260
  },
261
+ "allOf": [
262
+ {
263
+ "if": {"properties": {"kind": {"const": "work-item"}}},
264
+ "then": {"required": ["work_item"]}
265
+ },
266
+ {
267
+ "if": {"not": {"properties": {"kind": {"const": "work-item"}}}},
268
+ "then": {"required": ["lesson"]}
269
+ },
270
+ {
271
+ "if": {
272
+ "required": ["work_item"],
273
+ "properties": {
274
+ "work_item": {
275
+ "required": ["shape"],
276
+ "properties": {"shape": {"const": "defect"}}
277
+ }
278
+ }
279
+ },
280
+ "then": {
281
+ "anyOf": [
282
+ {"required": ["verification_route"]},
283
+ {
284
+ "properties": {
285
+ "work_item": {"required": ["observed", "intended"]}
286
+ }
287
+ }
288
+ ]
289
+ }
290
+ },
291
+ {
292
+ "if": {
293
+ "required": ["work_item"],
294
+ "properties": {
295
+ "work_item": {
296
+ "required": ["shape"],
297
+ "properties": {"shape": {"const": "question"}}
298
+ }
299
+ }
300
+ },
301
+ "then": {
302
+ "properties": {
303
+ "work_item": {"required": ["answered_by"]}
304
+ }
305
+ }
306
+ },
307
+ {
308
+ "if": {
309
+ "required": ["work_item"],
310
+ "properties": {
311
+ "work_item": {
312
+ "required": ["shape"],
313
+ "properties": {"shape": {"const": "decision"}}
314
+ }
315
+ }
316
+ },
317
+ "then": {
318
+ "properties": {
319
+ "work_item": {"required": ["significance"]}
320
+ }
321
+ }
322
+ }
323
+ ],
216
324
  "$defs": {
217
325
  "safeText2000": {
218
326
  "type": "string",
@@ -130,6 +130,32 @@ def _runtime_projections(root: Path) -> tuple[tuple[Path, Path], ...]:
130
130
  )
131
131
 
132
132
 
133
+ def _library_mirrors(root: Path) -> tuple[tuple[Path, Path], ...]:
134
+ """Return pack-source mirrors that land outside the flat `_data/` layout.
135
+
136
+ `catalogue_tooling.file_safety` is the blessed filesystem-confinement helper
137
+ and must stay byte-identical to the core pack script it mirrors. It is kept
138
+ separate from `_runtime_projections` because the sibling-closure derivation
139
+ below is a fact about `_data/`'s flat layout: this destination is an ordinary
140
+ package module reached by import, so it has no sibling closure to check.
141
+ """
142
+
143
+ return (
144
+ (
145
+ root / "packs" / "core" / ".apm" / "skills" / "close-work"
146
+ / "scripts" / "file_safety.py",
147
+ root / "packages" / "agentbundle" / "agentbundle" / "catalogue_tooling"
148
+ / "file_safety.py",
149
+ ),
150
+ )
151
+
152
+
153
+ def _mirrored_pack_sources(root: Path) -> tuple[tuple[Path, Path], ...]:
154
+ """Every pack-source copy `make build-self` writes and build-check gates."""
155
+
156
+ return _runtime_projections(root) + _library_mirrors(root)
157
+
158
+
133
159
  # A bundled runtime loads its helpers as siblings of its own file, because the
134
160
  # `_data/` layout is flat. Every sibling it reaches must therefore be bundled
135
161
  # too, or the packaged CLI resolves a module that is not there. Pairs are
@@ -618,6 +644,11 @@ EXCLUDED_PATTERNS: tuple[str, ...] = (
618
644
  # Manual seed-projected root path (amendment 2026-05-25). The subtree
619
645
  # patterns above cover the other reclassified documentation paths.
620
646
  "docs/CHARTER.md",
647
+ # Seeded once, then repository-owned — same shape as CHARTER.md. The seed is
648
+ # a template whose map carries a placeholder row; a real repository's map
649
+ # names its own areas, including ones no pack seeds. Projecting the seed over
650
+ # it would overwrite that with the template on every build.
651
+ "docs/README.md",
621
652
  "README.md", # root-level; nested README.md not excluded
622
653
  "CONTRIBUTING.md",
623
654
  "LICENSE-*",
@@ -698,14 +729,12 @@ _EXCLUDED_REGEXES: tuple[re.Pattern[str], ...] = tuple(
698
729
  # Hardcoded "Projected README" allow-list — paths classified as
699
730
  # *Projected* even when EXCLUDED_PATTERNS would otherwise catch them.
700
731
  #
701
- # The 2026-05-25 amendment reclassified 19 paths Projected
702
- # → Manual; this allow-list shrank to one entry (`docs/CONVENTIONS.md`)
703
- # accordingly. The reclassified paths now fall through to
704
- # EXCLUDED_PATTERNS coverage (the repository-owned documentation and package
705
- # subtrees plus their root-file entries above).
706
- PROJECTED_README_OVERRIDES: tuple[str, ...] = (
707
- "docs/CONVENTIONS.md",
708
- )
732
+ # The 2026-05-25 amendment reclassified 19 paths Projected → Manual, leaving
733
+ # one entry. Retiring the conventions document removed it, so the allow-list is now
734
+ # empty: every path's classification comes from EXCLUDED_PATTERNS alone, with no
735
+ # exception. Keep the tuple rather than deleting it — a future Projected path
736
+ # that an excluded pattern would otherwise catch belongs here.
737
+ PROJECTED_README_OVERRIDES: tuple[str, ...] = ()
709
738
 
710
739
 
711
740
  def _is_excluded(relative: Path) -> bool:
@@ -763,7 +792,7 @@ def _project_seeds(
763
792
  # the Phase-2 composite-agents-md recipe consumes them
764
793
  # by reading `packs/core/seeds/_agents-footer.md`
765
794
  # directly. Skip standalone projection. Convention
766
- # documented in docs/CONVENTIONS.md § Pack source-of-truth
795
+ # documented in ``docs/architecture/pack-layout.md`` § The source-of-truth split.
767
796
  # split.
768
797
  if src.name.startswith("_"):
769
798
  continue
@@ -1589,7 +1618,7 @@ def run_self_host(
1589
1618
  if agents_path is not None:
1590
1619
  extra_marker_paths.append(Path("AGENTS.md"))
1591
1620
  resolve_markers(working_tree, discovery_flat, extra_paths=extra_marker_paths)
1592
- for source_path, bundled_path in _runtime_projections(working_tree):
1621
+ for source_path, bundled_path in _mirrored_pack_sources(working_tree):
1593
1622
  if not source_path.is_file() or not bundled_path.parent.is_dir():
1594
1623
  continue
1595
1624
  bundled_path.write_bytes(source_path.read_bytes())
@@ -1864,14 +1893,15 @@ def run_build_check_drift_gates(
1864
1893
  # directory missing a declared copy is the worse failure, because the
1865
1894
  # packaged engine imports its siblings by path and would fail at import
1866
1895
  # while build-check reported clean.
1867
- for source_path, bundled_path in _runtime_projections(REPO_ROOT):
1896
+ for source_path, bundled_path in _mirrored_pack_sources(REPO_ROOT):
1868
1897
  if not source_path.is_file() or not bundled_path.parent.is_dir():
1869
1898
  continue
1870
1899
  if not bundled_path.is_file():
1900
+ _where = bundled_path.parent.relative_to(REPO_ROOT).as_posix()
1871
1901
  failures.append(
1872
1902
  "build-check: packaged runtime missing — "
1873
1903
  f"{bundled_path.name} is declared as a packaged runtime but is "
1874
- "absent from packages/agentbundle/agentbundle/_data/; run "
1904
+ f"absent from {_where}/; run "
1875
1905
  "`make build-self` to sync it"
1876
1906
  )
1877
1907
  continue
@@ -518,6 +518,7 @@ _SEEDS_REQUIRED_PLACEHOLDERS: dict[str, tuple[str, ...]] = {
518
518
  "docs/rfc/README.md": ("<!-- no RFCs yet -->",),
519
519
  "docs/adr/README.md": ("<!-- no ADRs yet -->",),
520
520
  "governance/manifest.example.yaml": ("ADR-NNNN",),
521
+ "docs/README.md": ("<your area>",),
521
522
  "docs/architecture/README.md": (),
522
523
  "docs/knowledge/README.md": (),
523
524
  "docs/product/README.md": (),
@@ -525,7 +526,6 @@ _SEEDS_REQUIRED_PLACEHOLDERS: dict[str, tuple[str, ...]] = {
525
526
  "docs/product/changelog.md": ("pack-name][version",),
526
527
  "docs/product/briefs/_template.md": ("<slug>", "<one-line outcome>"),
527
528
  "workspace.toml": ("[backlog]",),
528
- "docs/CONVENTIONS.md": (),
529
529
  "AGENTS.md": ("<project-name>",),
530
530
  "AGENT_RULES.md": (),
531
531
  "docs/AGENTS.md": (),
@@ -1092,7 +1092,7 @@ def _step_agent_artifacts(
1092
1092
  model = fields.get("model")
1093
1093
  if model is None or model == "":
1094
1094
  _report(path, "frontmatter missing required key: model "
1095
- "(see docs/CONVENTIONS.md#model-selection)")
1095
+ "(see the work-loop skill's references/model-selection.md)")
1096
1096
  elif not isinstance(model, str):
1097
1097
  _report(path, f"frontmatter key 'model' must be a string "
1098
1098
  f"(got {type(model).__name__}) — "
@@ -173,7 +173,8 @@ def deliver_seeds(seeds_dir: Path, output: Path) -> list[SeedDelivery]:
173
173
  For each file under ``seeds_dir`` (recursively):
174
174
  - **Composition fragments** (name starts with ``_``, e.g.
175
175
  ``_agents-footer.md``) are *not* delivered standalone — they are folded
176
- into ``AGENTS.md`` instead (per ``CONVENTIONS.md`` §Pack source-of-truth split).
176
+ into ``AGENTS.md`` instead (per the pack-layout contract's
177
+ § The source-of-truth split).
177
178
  - **Absent on disk** → write the seed (Tier-1).
178
179
  - **Present, content matches** → no-op (already in sync).
179
180
  - **Present, content differs** → write a ``*.upstream.<ext>`` companion
@@ -246,7 +246,7 @@ def run(args: argparse.Namespace) -> int:
246
246
  for k, v in discovery.markers.items():
247
247
  values[k] = v
248
248
 
249
- if getattr(args, "values_from", None):
249
+ if args.values_from:
250
250
  try:
251
251
  explicit = load_values_from(Path(args.values_from))
252
252
  except ConfigError as exc:
@@ -265,7 +265,7 @@ def run(args: argparse.Namespace) -> int:
265
265
 
266
266
  # Substitute markers only when --values-from was given (preserve
267
267
  # the read-only-without-values-from contract).
268
- if getattr(args, "values_from", None) and values and projected:
268
+ if args.values_from and values and projected:
269
269
  for relpath in sorted(projected):
270
270
  target = s.root / relpath
271
271
  if not target.exists() or not target.is_file():
@@ -15,12 +15,12 @@ if TYPE_CHECKING:
15
15
  def run(args: argparse.Namespace) -> int:
16
16
  from agentbundle.catalogue_tooling.build import build_catalogue
17
17
 
18
- root = Path(getattr(args, "root", ".")).resolve()
19
- output_str = getattr(args, "output", None)
18
+ root = Path(args.root).resolve()
19
+ output_str = args.output
20
20
  output = Path(output_str).resolve() if output_str else None
21
- pack = getattr(args, "pack", None)
22
- recipe = getattr(args, "recipe", None)
23
- fmt = getattr(args, "format", "table")
21
+ pack = args.pack
22
+ recipe = args.recipe
23
+ fmt = args.format
24
24
 
25
25
  try:
26
26
  result = build_catalogue(root, output=output, pack=pack, recipe=recipe)
@@ -90,7 +90,7 @@ def _run_export(args: argparse.Namespace) -> int:
90
90
 
91
91
  def run(args: argparse.Namespace) -> int:
92
92
  """Dispatch a bundled-contract operation."""
93
- subcommand = getattr(args, "contracts_sub", None)
93
+ subcommand = args.contracts_sub
94
94
  if subcommand == "list":
95
95
  return _run_list(args)
96
96
  if subcommand == "show":
@@ -30,7 +30,7 @@ _SELF_HOSTED_ONLY_FLAGS: tuple[tuple[str, str], ...] = (
30
30
 
31
31
 
32
32
  def run(args: argparse.Namespace) -> int:
33
- preset: str | None = getattr(args, "preset", None)
33
+ preset: str | None = args.preset
34
34
  if preset == "self-hosted":
35
35
  return _run_self_hosted(args)
36
36
  # Reject self-hosted-only flags when not in self-hosted mode.
@@ -47,7 +47,7 @@ def run(args: argparse.Namespace) -> int:
47
47
  def _run_plain(args: argparse.Namespace) -> int:
48
48
  from agentbundle.catalogue_tooling.initialise import init_catalogue
49
49
 
50
- target_raw = getattr(args, "target", ".")
50
+ target_raw = args.target
51
51
  target_path = Path(target_raw)
52
52
  if target_path.is_symlink():
53
53
  print(
@@ -57,13 +57,13 @@ def _run_plain(args: argparse.Namespace) -> int:
57
57
  return 2
58
58
  target = target_path.resolve()
59
59
 
60
- dry_run: bool = getattr(args, "dry_run", False)
61
- name: str | None = getattr(args, "name", None) or None
62
- display_name: str | None = getattr(args, "display_name", None) or None
63
- description: str | None = getattr(args, "description", None) or None
64
- owner_name: str | None = getattr(args, "owner_name", None) or None
65
- preferred_adapter: str | None = getattr(args, "preferred_adapter", None) or None
66
- fmt: str = getattr(args, "format", "table")
60
+ dry_run: bool = args.dry_run
61
+ name: str | None = args.name or None
62
+ display_name: str | None = args.display_name or None
63
+ description: str | None = args.description or None
64
+ owner_name: str | None = args.owner_name or None
65
+ preferred_adapter: str | None = args.preferred_adapter or None
66
+ fmt: str = args.format
67
67
 
68
68
  result = init_catalogue(
69
69
  target=target,
@@ -162,7 +162,7 @@ def _run_self_hosted(args: argparse.Namespace) -> int:
162
162
  init_self_hosted,
163
163
  )
164
164
 
165
- target_raw = getattr(args, "target", ".")
165
+ target_raw = args.target
166
166
  target_path = Path(target_raw)
167
167
  if target_path.is_symlink():
168
168
  print(
@@ -171,7 +171,7 @@ def _run_self_hosted(args: argparse.Namespace) -> int:
171
171
  )
172
172
  return 2
173
173
 
174
- source_raw = getattr(args, "source", None)
174
+ source_raw = args.source
175
175
  if not source_raw:
176
176
  print(
177
177
  "error: --source is required with --preset self-hosted",
@@ -179,12 +179,12 @@ def _run_self_hosted(args: argparse.Namespace) -> int:
179
179
  )
180
180
  return 2
181
181
 
182
- tooling: str = getattr(args, "tooling", None) or "external"
182
+ tooling: str = args.tooling or "external"
183
183
  if tooling not in ("external", "vendored"):
184
184
  print("error: --tooling must be 'external' or 'vendored'", file=sys.stderr)
185
185
  return 2
186
186
 
187
- attribution: str = getattr(args, "attribution", None) or "white-label"
187
+ attribution: str = args.attribution or "white-label"
188
188
  if attribution not in ("white-label", "attributed"):
189
189
  print(
190
190
  "error: --attribution must be 'white-label' or 'attributed'",
@@ -192,7 +192,7 @@ def _run_self_hosted(args: argparse.Namespace) -> int:
192
192
  )
193
193
  return 2
194
194
 
195
- guides: str = getattr(args, "guides", None) or "selected"
195
+ guides: str = args.guides or "selected"
196
196
  if guides not in ("none", "selected"):
197
197
  print("error: --guides must be 'none' or 'selected'", file=sys.stderr)
198
198
  return 2
@@ -201,22 +201,22 @@ def _run_self_hosted(args: argparse.Namespace) -> int:
201
201
  target=target_path.resolve(),
202
202
  source=Path(source_raw).resolve(),
203
203
  tooling=tooling,
204
- name=getattr(args, "name", None) or None,
205
- display_name=getattr(args, "display_name", None) or None,
206
- description=getattr(args, "description", None) or None,
207
- owner_name=getattr(args, "owner_name", None) or None,
208
- owner_email=getattr(args, "owner_email", None) or None,
209
- preferred_adapter=getattr(args, "preferred_adapter", None) or None,
210
- repository_url=getattr(args, "repository_url", None) or None,
211
- packs=getattr(args, "packs", None) or None,
212
- adapters=getattr(args, "adapters", None) or None,
213
- profiles=getattr(args, "profiles", None) or None,
204
+ name=args.name or None,
205
+ display_name=args.display_name or None,
206
+ description=args.description or None,
207
+ owner_name=args.owner_name or None,
208
+ owner_email=args.owner_email or None,
209
+ preferred_adapter=args.preferred_adapter or None,
210
+ repository_url=args.repository_url or None,
211
+ packs=args.packs or None,
212
+ adapters=args.adapters or None,
213
+ profiles=args.profiles or None,
214
214
  guides=guides,
215
215
  attribution=attribution,
216
- dry_run=bool(getattr(args, "dry_run", False)),
216
+ dry_run=bool(args.dry_run),
217
217
  )
218
218
 
219
- fmt: str = getattr(args, "format", "table")
219
+ fmt: str = args.format
220
220
  result = init_self_hosted(cfg)
221
221
 
222
222
  if fmt == "json":
@@ -13,10 +13,10 @@ if TYPE_CHECKING:
13
13
  def run(args: argparse.Namespace) -> int:
14
14
  from agentbundle.catalogue_tooling.lint import lint_catalogue, render_json, render_table
15
15
 
16
- root = Path(getattr(args, "root", ".")).resolve()
17
- pack = getattr(args, "pack", None)
18
- fmt = getattr(args, "format", "table")
19
- deep = getattr(args, "deep", False)
16
+ root = Path(args.root).resolve()
17
+ pack = args.pack
18
+ fmt = args.format
19
+ deep = args.deep
20
20
 
21
21
  try:
22
22
  result = lint_catalogue(root, pack=pack, deep=deep)
@@ -11,7 +11,7 @@ if TYPE_CHECKING:
11
11
 
12
12
 
13
13
  def run(args: argparse.Namespace) -> int:
14
- flavor: str = getattr(args, "flavor", "runtime")
14
+ flavor: str = args.flavor
15
15
  if flavor == "source":
16
16
  return _run_source(args)
17
17
  return _run_runtime(args)
@@ -20,15 +20,15 @@ def run(args: argparse.Namespace) -> int:
20
20
  def _run_runtime(args: argparse.Namespace) -> int:
21
21
  from agentbundle.catalogue_tooling.package import package_catalogue
22
22
 
23
- root = Path(getattr(args, "root", ".")).resolve()
24
- output_str = getattr(args, "output", None)
23
+ root = Path(args.root).resolve()
24
+ output_str = args.output
25
25
  if not output_str:
26
26
  print("error: --output is required", file=sys.stderr)
27
27
  return 1
28
28
  output = Path(output_str).resolve()
29
- bundle = getattr(args, "bundle", None)
30
- release = getattr(args, "release", None)
31
- channel = getattr(args, "channel", None)
29
+ bundle = args.bundle
30
+ release = args.release
31
+ channel = args.channel
32
32
 
33
33
  for flag, value in (("bundle", bundle), ("release", release), ("channel", channel)):
34
34
  if not value:
@@ -41,9 +41,9 @@ def _run_runtime(args: argparse.Namespace) -> int:
41
41
  release=release,
42
42
  channel=channel,
43
43
  output=output,
44
- source_revision=getattr(args, "source_revision", None),
45
- minimum_agentbundle_version=getattr(args, "minimum_agentbundle_version", None),
46
- published_at=getattr(args, "published_at", None),
44
+ source_revision=args.source_revision,
45
+ minimum_agentbundle_version=args.minimum_agentbundle_version,
46
+ published_at=args.published_at,
47
47
  )
48
48
 
49
49
  if not result.ok:
@@ -57,7 +57,7 @@ def _run_runtime(args: argparse.Namespace) -> int:
57
57
  def _run_source(args: argparse.Namespace) -> int:
58
58
  from agentbundle.catalogue_tooling.package import package_source_flavour
59
59
 
60
- channel = getattr(args, "channel", None)
60
+ channel = args.channel
61
61
  if channel:
62
62
  print(
63
63
  "error: --channel is not valid with --flavor source; "
@@ -66,14 +66,14 @@ def _run_source(args: argparse.Namespace) -> int:
66
66
  )
67
67
  return 2
68
68
 
69
- root = Path(getattr(args, "root", ".")).resolve()
70
- output_str = getattr(args, "output", None)
69
+ root = Path(args.root).resolve()
70
+ output_str = args.output
71
71
  if not output_str:
72
72
  print("error: --output is required", file=sys.stderr)
73
73
  return 1
74
74
  output = Path(output_str).resolve()
75
- bundle = getattr(args, "bundle", None)
76
- release = getattr(args, "release", None)
75
+ bundle = args.bundle
76
+ release = args.release
77
77
 
78
78
  for flag, value in (("bundle", bundle), ("release", release)):
79
79
  if not value:
@@ -85,7 +85,7 @@ def _run_source(args: argparse.Namespace) -> int:
85
85
  bundle=bundle,
86
86
  release=release,
87
87
  output=output,
88
- source_revision=getattr(args, "source_revision", None),
88
+ source_revision=args.source_revision,
89
89
  )
90
90
 
91
91
  if not result.ok: