agentbundle 0.35.2__tar.gz → 0.37.2__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 (586) hide show
  1. {agentbundle-0.35.2/agentbundle.egg-info → agentbundle-0.37.2}/PKG-INFO +38 -31
  2. {agentbundle-0.35.2 → agentbundle-0.37.2}/README-pypi.md +37 -30
  3. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/catalogue-scaffold/guides/_shared/reference/catalogue-authoring-standards.md +31 -2
  4. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/catalogue-scaffold/manifest.json +2 -2
  5. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/catalogue-scaffold/profiles/AGENTS.md +4 -0
  6. agentbundle-0.37.2/agentbundle/_data/knowledge-captured-observation.schema.json +287 -0
  7. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/public-contracts.txt +1 -0
  8. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/adapters/claude_code.py +6 -20
  9. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/adapters/codex.py +6 -20
  10. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/adapters/copilot.py +13 -16
  11. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/adapters/cursor.py +13 -22
  12. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/adapters/gemini.py +12 -12
  13. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/adapters/kiro.py +13 -16
  14. agentbundle-0.37.2/agentbundle/build/projections/direct_directory.py +75 -0
  15. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/catalogue.py +17 -0
  16. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/catalogue_tooling/file_safety.py +31 -5
  17. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/catalogue_tooling/initialise.py +26 -0
  18. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/catalogue_tooling/lint.py +296 -90
  19. agentbundle-0.37.2/agentbundle/catalogue_tooling/manifest.py +27 -0
  20. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/catalogue_tooling/results.py +5 -0
  21. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/catalogue_tooling/skill_spec_lint.py +427 -188
  22. agentbundle-0.37.2/agentbundle/catalogue_tooling/verify.py +2296 -0
  23. agentbundle-0.37.2/agentbundle/catalogue_tooling/version_ranges.py +149 -0
  24. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/cli.py +9 -2
  25. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/catalogue_init.py +6 -26
  26. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/install.py +105 -33
  27. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/local_exclude.py +30 -0
  28. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/render.py +34 -3
  29. agentbundle-0.37.2/agentbundle/statelock.py +266 -0
  30. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/system_trust.py +32 -3
  31. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/version.py +1 -1
  32. {agentbundle-0.35.2 → agentbundle-0.37.2/agentbundle.egg-info}/PKG-INFO +38 -31
  33. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle.egg-info/SOURCES.txt +31 -0
  34. {agentbundle-0.35.2 → agentbundle-0.37.2}/pyproject.toml +1 -1
  35. agentbundle-0.37.2/tests/fixtures/external_catalogue/.claude-plugin/marketplace.json +1 -0
  36. agentbundle-0.37.2/tests/fixtures/external_catalogue/AGENTS.md +1 -0
  37. agentbundle-0.37.2/tests/fixtures/external_catalogue/LICENSE-APACHE +1 -0
  38. agentbundle-0.37.2/tests/fixtures/external_catalogue/LICENSE-MIT +1 -0
  39. agentbundle-0.37.2/tests/fixtures/external_catalogue/agentbundle/_data/install-defaults.toml +2 -0
  40. agentbundle-0.37.2/tests/fixtures/external_catalogue/catalogue.toml +31 -0
  41. agentbundle-0.37.2/tests/fixtures/external_catalogue/packs/alpha/.apm/skills/example/SKILL.md +6 -0
  42. agentbundle-0.37.2/tests/fixtures/external_catalogue/packs/alpha/.claude-plugin/plugin.json +1 -0
  43. agentbundle-0.37.2/tests/fixtures/external_catalogue/packs/alpha/pack.toml +13 -0
  44. agentbundle-0.37.2/tests/fixtures/external_catalogue/packs/alpha/seeds/AGENTS.md +3 -0
  45. agentbundle-0.37.2/tests/fixtures/external_catalogue/packs/beta/.claude-plugin/plugin.json +1 -0
  46. agentbundle-0.37.2/tests/fixtures/external_catalogue/packs/beta/pack.toml +17 -0
  47. agentbundle-0.37.2/tests/fixtures/external_catalogue/profiles/example.toml +8 -0
  48. agentbundle-0.37.2/tests/integration/test_catalogue_verify_adapter_compat.py +53 -0
  49. agentbundle-0.37.2/tests/integration/test_catalogue_verify_dependencies.py +210 -0
  50. agentbundle-0.37.2/tests/integration/test_catalogue_verify_external_portability.py +56 -0
  51. agentbundle-0.37.2/tests/integration/test_catalogue_verify_fixture_checks.py +123 -0
  52. agentbundle-0.37.2/tests/integration/test_catalogue_verify_marketplace.py +49 -0
  53. agentbundle-0.37.2/tests/integration/test_catalogue_verify_output_drift.py +149 -0
  54. agentbundle-0.37.2/tests/integration/test_catalogue_verify_package_preflight.py +74 -0
  55. agentbundle-0.37.2/tests/integration/test_catalogue_verify_plugin_path.py +209 -0
  56. agentbundle-0.37.2/tests/integration/test_catalogue_verify_profile_schema.py +139 -0
  57. agentbundle-0.37.2/tests/integration/test_catalogue_verify_step1.py +21 -0
  58. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_install_dependencies_gate.py +86 -28
  59. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_install_profile.py +6 -6
  60. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_local_scope_install.py +188 -0
  61. agentbundle-0.37.2/tests/unit/test_adapter_symlink_policy.py +127 -0
  62. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_skill_spec_lint.py +181 -1
  63. agentbundle-0.37.2/tests/unit/test_catalogue_tooling_file_safety.py +54 -0
  64. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_tooling_lint.py +473 -13
  65. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_tooling_package.py +12 -5
  66. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_tooling_verify.py +69 -0
  67. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_trust_fallback.py +95 -0
  68. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_wave2_validation.py +96 -0
  69. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_wave3_init_nextsteps.py +33 -3
  70. agentbundle-0.37.2/tests/unit/test_cli_list_targets_help.py +67 -0
  71. agentbundle-0.37.2/tests/unit/test_collect_tree_symlinks.py +88 -0
  72. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_dependencies_batch.py +6 -2
  73. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_plugin_scope_filter.py +2 -1
  74. agentbundle-0.37.2/tests/unit/test_statelock_hardening.py +189 -0
  75. agentbundle-0.35.2/agentbundle/build/projections/direct_directory.py +0 -41
  76. agentbundle-0.35.2/agentbundle/catalogue_tooling/verify.py +0 -1094
  77. agentbundle-0.35.2/agentbundle/statelock.py +0 -148
  78. {agentbundle-0.35.2 → agentbundle-0.37.2}/MANIFEST.in +0 -0
  79. {agentbundle-0.35.2 → agentbundle-0.37.2}/README.md +0 -0
  80. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/__init__.py +0 -0
  81. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/__main__.py +0 -0
  82. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/adapter.schema.json +0 -0
  83. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/adapter.toml +0 -0
  84. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/catalogue-scaffold/guides/_shared/reference/catalogue-ci-contract.md +0 -0
  85. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/catalogue-scaffold/packs/AGENTS.md +0 -0
  86. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/catalogue-scaffold/packs/README.md +0 -0
  87. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/catalogue-scaffold/packs/_example/.apm/skills/example-skill/SKILL.md +0 -0
  88. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/catalogue-scaffold/packs/_example/.apm/skills/example-skill/evals/eval_queries.json +0 -0
  89. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/catalogue-scaffold/packs/_example/.claude-plugin/plugin.json +0 -0
  90. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/catalogue-scaffold/packs/_example/README.md +0 -0
  91. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/catalogue-scaffold/packs/_example/pack.toml +0 -0
  92. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/catalogue-scaffold/profiles/README.md +0 -0
  93. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/catalogue-scaffold/profiles/_example/README.md +0 -0
  94. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/catalogue-scaffold/profiles/_example/profile.toml +0 -0
  95. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/catalogue-scaffold/tests/conformance/test_gemini_admissibility.py +0 -0
  96. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/catalogue-scaffold/tests/conformance/test_pack_metadata.py +0 -0
  97. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/catalogue-scaffold/tests/conformance/test_shared_library_boundaries.py +0 -0
  98. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/catalogue.schema.json +0 -0
  99. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/guide.schema.json +0 -0
  100. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/install-defaults.toml +0 -0
  101. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/install-marker.py +0 -0
  102. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/marketplace-entry.schema.json +0 -0
  103. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/pack.schema.json +0 -0
  104. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/plugin-manifest.derived.schema.json +0 -0
  105. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/plugin-manifest.schema.json +0 -0
  106. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/profile.schema.json +0 -0
  107. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/skill-manifest.schema.json +0 -0
  108. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/skill.schema.json +0 -0
  109. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/target-vocab.toml +0 -0
  110. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/workspace_status_engine.py +0 -0
  111. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/__init__.py +0 -0
  112. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/__main__.py +0 -0
  113. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/adapter_root_bins.py +0 -0
  114. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/adapters/__init__.py +0 -0
  115. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/adapters/kiro_cli.py +0 -0
  116. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/adapters/kiro_ide.py +0 -0
  117. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/contract.py +0 -0
  118. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/hook_wiring_rules.py +0 -0
  119. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/lint_packs.py +0 -0
  120. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/main.py +0 -0
  121. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/phase_order.py +0 -0
  122. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/projection_io.py +0 -0
  123. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/projections/__init__.py +0 -0
  124. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/projections/codex_agent_toml.py +0 -0
  125. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/projections/copilot_agent_md.py +0 -0
  126. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/projections/copilot_hooks_json.py +0 -0
  127. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/projections/gemini_command_toml.py +0 -0
  128. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/projections/hook_id.py +0 -0
  129. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/projections/kiro_ide_hook.py +0 -0
  130. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/projections/merge_into_agent_json.py +0 -0
  131. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/projections/merge_json.py +0 -0
  132. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/projections/plugin_hooks.py +0 -0
  133. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/projections/user_merge_json.py +0 -0
  134. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/recipes/composite-agents-md.toml +0 -0
  135. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/recipes/composite-marketplace.toml +0 -0
  136. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/recipes/marketplace.toml +0 -0
  137. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/recipes/per-pack-apm-package.toml +0 -0
  138. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/recipes/per-pack-claude-plugin.toml +0 -0
  139. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/recipes/per-pack-overlay.toml +0 -0
  140. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/recipes/self-host.toml +0 -0
  141. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/scope_rails.py +0 -0
  142. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/self_host.py +0 -0
  143. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/shared_libs.py +0 -0
  144. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/target_resolver.py +0 -0
  145. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/user_libs.py +0 -0
  146. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/validate.py +0 -0
  147. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/catalogue_tooling/__init__.py +0 -0
  148. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/catalogue_tooling/archive.py +0 -0
  149. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/catalogue_tooling/build.py +0 -0
  150. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/catalogue_tooling/config.py +0 -0
  151. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/catalogue_tooling/contracts_inspector.py +0 -0
  152. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/catalogue_tooling/defaults.py +0 -0
  153. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/catalogue_tooling/diagnostics.py +0 -0
  154. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/catalogue_tooling/identity.py +0 -0
  155. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/catalogue_tooling/initialise_self_hosted.py +0 -0
  156. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/catalogue_tooling/package.py +0 -0
  157. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/catalogue_tooling/self_host.py +0 -0
  158. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/catalogue_tooling/self_host_windows.py +0 -0
  159. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/catalogue_tooling/toml_emit.py +0 -0
  160. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/categories.py +0 -0
  161. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/__init__.py +0 -0
  162. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/_common.py +0 -0
  163. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/_drop_warning.py +0 -0
  164. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/adapt.py +0 -0
  165. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/catalogue_build.py +0 -0
  166. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/catalogue_contracts.py +0 -0
  167. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/catalogue_lint.py +0 -0
  168. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/catalogue_package.py +0 -0
  169. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/catalogue_self_host.py +0 -0
  170. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/catalogue_sync_defaults.py +0 -0
  171. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/catalogue_tooling_stub.py +0 -0
  172. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/catalogue_verify.py +0 -0
  173. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/config.py +0 -0
  174. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/diff.py +0 -0
  175. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/docs.py +0 -0
  176. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/init_state.py +0 -0
  177. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/list_installed.py +0 -0
  178. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/list_packs.py +0 -0
  179. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/list_profiles.py +0 -0
  180. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/list_targets.py +0 -0
  181. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/oplog_cmd.py +0 -0
  182. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/pack_config_cmd.py +0 -0
  183. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/pack_evals.py +0 -0
  184. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/package_catalogue.py +0 -0
  185. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/profile.py +0 -0
  186. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/reconcile.py +0 -0
  187. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/render.py +0 -0
  188. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/scaffold.py +0 -0
  189. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/show.py +0 -0
  190. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/uninstall.py +0 -0
  191. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/upgrade.py +0 -0
  192. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/validate.py +0 -0
  193. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/config.py +0 -0
  194. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/https_catalogue.py +0 -0
  195. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/oplog.py +0 -0
  196. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/pack_inventory.py +0 -0
  197. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/safety.py +0 -0
  198. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/scaffold.py +0 -0
  199. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/scope.py +0 -0
  200. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/source_defaults.py +0 -0
  201. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/user_config.py +0 -0
  202. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/workspace_mcp.py +0 -0
  203. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle.egg-info/dependency_links.txt +0 -0
  204. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle.egg-info/entry_points.txt +0 -0
  205. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle.egg-info/requires.txt +0 -0
  206. {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle.egg-info/top_level.txt +0 -0
  207. {agentbundle-0.35.2 → agentbundle-0.37.2}/conftest.py +0 -0
  208. {agentbundle-0.35.2 → agentbundle-0.37.2}/setup.cfg +0 -0
  209. {agentbundle-0.35.2 → agentbundle-0.37.2}/templates/install-marker.py +0 -0
  210. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/__init__.py +0 -0
  211. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/_support.py +0 -0
  212. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/__init__.py +0 -0
  213. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/README.md +0 -0
  214. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/claude-code-2.1.226-hook-events.json +0 -0
  215. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/claude-code-2.1.228-hook-events.json +0 -0
  216. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/core/.apm/agents/bar.md +0 -0
  217. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/core/.apm/commands/qux.md +0 -0
  218. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/core/.apm/hook-wiring/baz.toml +0 -0
  219. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/core/.apm/hook-wiring/qux.toml +0 -0
  220. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/core/.apm/hooks/baz.py +0 -0
  221. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/core/.apm/hooks/baz.sh +0 -0
  222. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/core/.apm/skills/example/SKILL.md +0 -0
  223. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/core/.claude-plugin/plugin.json +0 -0
  224. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/core/pack.toml +0 -0
  225. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/governance-extras/.apm/skills/example/SKILL.md +0 -0
  226. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/governance-extras/.claude-plugin/plugin.json +0 -0
  227. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/governance-extras/pack.toml +0 -0
  228. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/monorepo-extras/.apm/skills/example/SKILL.md +0 -0
  229. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/monorepo-extras/.claude-plugin/plugin.json +0 -0
  230. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/monorepo-extras/pack.toml +0 -0
  231. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/product-documentation/.apm/skills/example/SKILL.md +0 -0
  232. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/product-documentation/.claude-plugin/plugin.json +0 -0
  233. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/product-documentation/pack.toml +0 -0
  234. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/user-guide-diataxis/.apm/skills/example/SKILL.md +0 -0
  235. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/user-guide-diataxis/.claude-plugin/plugin.json +0 -0
  236. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/user-guide-diataxis/pack.toml +0 -0
  237. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/recipes/bogus-target.toml +0 -0
  238. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_adapter_claude_code.py +0 -0
  239. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_adapter_codex.py +0 -0
  240. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_adapter_copilot.py +0 -0
  241. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_adapter_cursor.py +0 -0
  242. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_adapter_gemini.py +0 -0
  243. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_adapter_kiro.py +0 -0
  244. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_adapter_kiro_alias.py +0 -0
  245. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_adapter_kiro_cli.py +0 -0
  246. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_adapter_kiro_ide.py +0 -0
  247. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_adapter_root_bins_projection.py +0 -0
  248. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_build_ships_seeds.py +0 -0
  249. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_contract.py +0 -0
  250. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_contract_scope.py +0 -0
  251. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_contract_v07.py +0 -0
  252. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_contract_v08.py +0 -0
  253. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_direct_directory_cleanup.py +0 -0
  254. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_end_to_end_build.py +0 -0
  255. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_hook_wiring_rules.py +0 -0
  256. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_lint_packs.py +0 -0
  257. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_load_pack_hook_wiring_safely.py +0 -0
  258. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_pack_schema.py +0 -0
  259. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_pack_schema_allowed_adapters.py +0 -0
  260. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_pack_schema_install.py +0 -0
  261. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_pipeline.py +0 -0
  262. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_plugin_hooks.py +0 -0
  263. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_plugin_manifest_schema.py +0 -0
  264. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_plugin_publication_gates.py +0 -0
  265. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_projectable_subset.py +0 -0
  266. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_projection_io.py +0 -0
  267. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_projections_merge_json.py +0 -0
  268. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_scope_rails.py +0 -0
  269. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_security.py +0 -0
  270. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_self_host_check.py +0 -0
  271. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_self_host_fixture_guard.py +0 -0
  272. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_self_host_metadata_policy.py +0 -0
  273. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_self_host_recipe_config.py +0 -0
  274. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_shared_libs_projection.py +0 -0
  275. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_shared_prefix_contract.py +0 -0
  276. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_user_libs_projection.py +0 -0
  277. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_validate.py +0 -0
  278. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_writers_emit_lf.py +0 -0
  279. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/conftest.py +0 -0
  280. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/adapt/.adapt-discovery.toml +0 -0
  281. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/adapt/values.toml +0 -0
  282. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/blank_catalogue/.claude-plugin/marketplace.json +0 -0
  283. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/blank_catalogue/catalogue.toml +0 -0
  284. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/blank_catalogue/packs/.gitkeep +0 -0
  285. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/blank_catalogue/packs/_example/.apm/skills/example-skill/SKILL.md +0 -0
  286. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/blank_catalogue/packs/_example/.claude-plugin/plugin.json +0 -0
  287. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/blank_catalogue/packs/_example/README.md +0 -0
  288. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/blank_catalogue/packs/_example/evals/eval_queries.json +0 -0
  289. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/blank_catalogue/packs/_example/pack.toml +0 -0
  290. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/blank_catalogue/profiles/.gitkeep +0 -0
  291. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/blank_catalogue/profiles/_example/README.md +0 -0
  292. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/blank_catalogue/profiles/_example/profile.toml +0 -0
  293. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/brownfield/values.toml +0 -0
  294. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/brownfield-adapt/AGENTS.md +0 -0
  295. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/brownfield-adapt/AGENTS.upstream.md +0 -0
  296. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/brownfield-adapt/DESIGN.md +0 -0
  297. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/brownfield-adapt/EXPECTED_TREE.md +0 -0
  298. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/brownfield-adapt/docs/CHARTER.md +0 -0
  299. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/brownfield-adapt/docs/guides/how-to/index.md +0 -0
  300. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/brownfield-adapt/docs/howto/getting-started.md +0 -0
  301. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/brownfield-adapt-expected/AGENTS.md +0 -0
  302. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/brownfield-adapt-expected/docs/CHARTER.md +0 -0
  303. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/brownfield-adapt-user-home/.agentbundle/.adapt-discovery.toml +0 -0
  304. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/brownfield-adapt-user-home/.agentbundle/state.toml +0 -0
  305. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/creds/skills/argv-flag/SKILL.md +0 -0
  306. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/creds/skills/argv-flag/scripts/cli.py +0 -0
  307. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/creds/skills/argv-flag-derived/SKILL.md +0 -0
  308. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/creds/skills/argv-flag-derived/scripts/cli.py +0 -0
  309. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/creds/skills/argv-flag-normalised/SKILL.md +0 -0
  310. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/creds/skills/argv-flag-normalised/scripts/cli.py +0 -0
  311. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/creds/skills/conforming/SKILL.md +0 -0
  312. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/creds/skills/conforming/scripts/cli.py +0 -0
  313. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/creds/skills/dotfile-grep/SKILL.md +0 -0
  314. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/creds/skills/dotfile-grep/scripts/leak.py +0 -0
  315. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/creds/skills/dotfile-with-optout/SKILL.md +0 -0
  316. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/creds/skills/dotfile-with-optout/scripts/legit.py +0 -0
  317. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/creds/skills/mcp-server-headers/SKILL.md +0 -0
  318. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/creds/skills/mcp-server-headers/scripts/cli.py +0 -0
  319. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/creds/skills/missing-dont-block/SKILL.md +0 -0
  320. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/install/catalogue/packs/alpha/.apm/agents/helper.md +0 -0
  321. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/install/catalogue/packs/alpha/.apm/commands/cmd.md +0 -0
  322. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/install/catalogue/packs/alpha/.apm/hook-wiring/run.toml +0 -0
  323. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/install/catalogue/packs/alpha/.apm/hooks/run.sh +0 -0
  324. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/install/catalogue/packs/alpha/.apm/skills/example/SKILL.md +0 -0
  325. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/install/catalogue/packs/alpha/.claude-plugin/plugin.json +0 -0
  326. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/install/catalogue/packs/alpha/pack.toml +0 -0
  327. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/kiro_ide_hook/ask_agent_basic.kiro.hook +0 -0
  328. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/kiro_ide_hook/run_command_with_placeholder.kiro.hook +0 -0
  329. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/lint_packs/clean/pack.toml +0 -0
  330. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/lint_packs/clean/seeds/README.md +0 -0
  331. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/list-installed/golden_120col.txt +0 -0
  332. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/list-installed/golden_80col.txt +0 -0
  333. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/list_packs/catalogue/packs/alpha/pack.toml +0 -0
  334. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/list_packs/catalogue/packs/beta/pack.toml +0 -0
  335. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/local_scope/catalogue/packs/local-test-pack/.apm/skills/local-test/SKILL.md +0 -0
  336. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/local_scope/catalogue/packs/local-test-pack/pack.toml +0 -0
  337. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/cc-user-hooks/.apm/hook-wiring/on-prompt.toml +0 -0
  338. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/cc-user-hooks/.apm/hooks/on-prompt.sh +0 -0
  339. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/cc-user-hooks/pack.toml +0 -0
  340. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/kiro-repo-hooks/.apm/agents/reviewer.md +0 -0
  341. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/kiro-repo-hooks/.apm/hook-wiring/on-spawn.toml +0 -0
  342. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/kiro-repo-hooks/.apm/hooks/on-spawn.sh +0 -0
  343. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/kiro-repo-hooks/pack.toml +0 -0
  344. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/kiro-user-hooks/.apm/agents/reviewer.md +0 -0
  345. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/kiro-user-hooks/.apm/hook-wiring/on-spawn.toml +0 -0
  346. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/kiro-user-hooks/.apm/hooks/on-spawn.sh +0 -0
  347. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/kiro-user-hooks/pack.toml +0 -0
  348. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/malformed-kiro-missing-attach/.apm/agents/reviewer.md +0 -0
  349. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/malformed-kiro-missing-attach/.apm/hook-wiring/on-spawn.toml +0 -0
  350. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/malformed-kiro-missing-attach/.apm/hooks/on-spawn.sh +0 -0
  351. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/malformed-kiro-missing-attach/pack.toml +0 -0
  352. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/malformed-kiro-pascal-events/.apm/agents/reviewer.md +0 -0
  353. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/malformed-kiro-pascal-events/.apm/hook-wiring/on-spawn.toml +0 -0
  354. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/malformed-kiro-pascal-events/.apm/hooks/on-spawn.sh +0 -0
  355. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/malformed-kiro-pascal-events/pack.toml +0 -0
  356. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/malformed-kiro-unknown-agent/.apm/agents/reviewer.md +0 -0
  357. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/malformed-kiro-unknown-agent/.apm/hook-wiring/on-spawn.toml +0 -0
  358. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/malformed-kiro-unknown-agent/.apm/hooks/on-spawn.sh +0 -0
  359. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/malformed-kiro-unknown-agent/pack.toml +0 -0
  360. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/scaffold/test-pack/seeds/AGENTS.md +0 -0
  361. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/scaffold/test-pack/seeds/_agents-footer.md +0 -0
  362. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/scaffold/test-pack/seeds/docs/CHARTER.md +0 -0
  363. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/agents/reviewer.md +0 -0
  364. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/commands/deploy.md +0 -0
  365. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/hook-wiring/pre-commit.toml +0 -0
  366. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/hooks/lint.py +0 -0
  367. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/hooks/pre-commit.sh +0 -0
  368. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/skills/work-loop/SKILL.md +0 -0
  369. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v1/packs/core/.claude-plugin/plugin.json +0 -0
  370. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v1/packs/core/pack.toml +0 -0
  371. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/agents/reviewer.md +0 -0
  372. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/commands/deploy.md +0 -0
  373. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/hook-wiring/pre-commit.toml +0 -0
  374. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/hooks/lint.py +0 -0
  375. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/hooks/pre-commit.sh +0 -0
  376. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/skills/work-loop/SKILL.md +0 -0
  377. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v2/packs/core/.claude-plugin/plugin.json +0 -0
  378. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v2/packs/core/pack.toml +0 -0
  379. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/agents/reviewer.md +0 -0
  380. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/commands/deploy.md +0 -0
  381. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/hook-wiring/pre-commit.toml +0 -0
  382. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/hooks/lint.py +0 -0
  383. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/hooks/pre-commit.sh +0 -0
  384. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/skills/work-loop/SKILL.md +0 -0
  385. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v3/packs/core/.claude-plugin/plugin.json +0 -0
  386. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v3/packs/core/pack.toml +0 -0
  387. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/validate/bad_recipe_pack/pack.toml +0 -0
  388. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/validate/malformed_pack/pack.toml +0 -0
  389. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/validate/valid_pack/pack.toml +0 -0
  390. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/validate/version_mismatch_pack/pack.toml +0 -0
  391. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/__init__.py +0 -0
  392. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_adapt_cmd.py +0 -0
  393. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_adapt_dual_scope.py +0 -0
  394. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_adapt_preflight_detection.py +0 -0
  395. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_adapt_schema_migration.py +0 -0
  396. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_apm_install_route.py +0 -0
  397. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_blank_catalogue.py +0 -0
  398. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_brownfield_adapt_end_to_end.py +0 -0
  399. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_brownfield_round_trip.py +0 -0
  400. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_brownfield_user_home_fixture.py +0 -0
  401. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_build_check_drift_gates.py +0 -0
  402. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_build_derivation_apm.py +0 -0
  403. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_build_derivation_claude_plugins.py +0 -0
  404. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_catalogue_init.py +0 -0
  405. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_cc_user_hooks_fixture.py +0 -0
  406. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_claude_plugins_install_route.py +0 -0
  407. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_config_cascade.py +0 -0
  408. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_credential_brokers_pack_install.py +0 -0
  409. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_credentials_wheel.py +0 -0
  410. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_discovery_schema_cross_consumer.py +0 -0
  411. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_editable_source_detection.py +0 -0
  412. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_fixtures_validate.py +0 -0
  413. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_hook_wiring_ingress.py +0 -0
  414. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_install_adapt_chain.py +0 -0
  415. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_install_cmd.py +0 -0
  416. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_install_converters_user_scope.py +0 -0
  417. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_install_copilot_full_parity.py +0 -0
  418. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_install_core_smoke.py +0 -0
  419. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_install_default_source.py +0 -0
  420. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_install_dropped_primitives_warning.py +0 -0
  421. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_install_dual_scope.py +0 -0
  422. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_install_orphan_reshape.py +0 -0
  423. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_install_pack_metadata_shape.py +0 -0
  424. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_install_profile_live.py +0 -0
  425. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_install_repo_scope_per_adapter.py +0 -0
  426. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_install_research_user_scope.py +0 -0
  427. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_install_seed_delivery.py +0 -0
  428. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_install_session_start_wiring.py +0 -0
  429. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_install_upgrade_offer.py +0 -0
  430. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_install_user_hooks.py +0 -0
  431. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_install_user_scope_allowed_adapters.py +0 -0
  432. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_kiro_ide_hook_e2e.py +0 -0
  433. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_kiro_repo_hooks_fixture.py +0 -0
  434. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_kiro_user_hooks_fixture.py +0 -0
  435. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_list_packs_cmd.py +0 -0
  436. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_marketplace_entry_validation.py +0 -0
  437. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_marketplace_manifest_regression.py +0 -0
  438. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_multi_pack_install.py +0 -0
  439. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_orphan_cleanup_respects_foreign_state.py +0 -0
  440. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_plugin_route_membership.py +0 -0
  441. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_recommends_cross_scope.py +0 -0
  442. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_reconcile.py +0 -0
  443. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_reserved_path_filter.py +0 -0
  444. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_scaffold_projection.py +0 -0
  445. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_self_host_schema_migration.py +0 -0
  446. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_self_host_sweep_respects_state.py +0 -0
  447. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_shared_prefix_coexistence.py +0 -0
  448. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_show_cmd.py +0 -0
  449. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_tier_invariants.py +0 -0
  450. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_trust_fallback_tls.py +0 -0
  451. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_uninstall_cmd.py +0 -0
  452. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_uninstall_user_hooks.py +0 -0
  453. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_upgrade_attach_to_agent.py +0 -0
  454. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_upgrade_cmd.py +0 -0
  455. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_upgrade_user_hooks.py +0 -0
  456. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_version_gate_matrix.py +0 -0
  457. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_workspace_mcp_git_fsm.py +0 -0
  458. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_zipapp.py +0 -0
  459. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/test_adapter_permissions_projection.py +0 -0
  460. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/test_workspace_mcp_elicit.py +0 -0
  461. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/test_workspace_mcp_event_bridge.py +0 -0
  462. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/test_workspace_mcp_git.py +0 -0
  463. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/test_workspace_mcp_lifecycle.py +0 -0
  464. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/test_workspace_mcp_stdin.py +0 -0
  465. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/test_workspace_mcp_tools.py +0 -0
  466. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/__init__.py +0 -0
  467. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_adapt_discovery_schema.py +0 -0
  468. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_append_layout_section.py +0 -0
  469. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_architect_readme_install_command.py +0 -0
  470. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_ci_contract.py +0 -0
  471. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_curation_deps.py +0 -0
  472. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_init_cli_self_hosted.py +0 -0
  473. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_pack_defaults.py +0 -0
  474. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_self_hosted_export_removal.py +0 -0
  475. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_tooling_archive.py +0 -0
  476. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_tooling_build.py +0 -0
  477. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_tooling_defaults.py +0 -0
  478. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_tooling_foundation.py +0 -0
  479. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_tooling_identity.py +0 -0
  480. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_tooling_init.py +0 -0
  481. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_tooling_self_host.py +0 -0
  482. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_tooling_self_hosted_init.py +0 -0
  483. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_tooling_source_package.py +0 -0
  484. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_wave2_schema.py +0 -0
  485. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_wave3_contracts_cli.py +0 -0
  486. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_wave3_contracts_inspector.py +0 -0
  487. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_wave3_offline_navigation.py +0 -0
  488. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_cli_catalogue_optional.py +0 -0
  489. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_cli_help_lists_config.py +0 -0
  490. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_cli_path_normalisation.py +0 -0
  491. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_cli_profile_surface.py +0 -0
  492. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_cli_scope_flags.py +0 -0
  493. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_codex_agent_toml.py +0 -0
  494. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_codex_projection_modes.py +0 -0
  495. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_common_classify_seeds.py +0 -0
  496. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_config.py +0 -0
  497. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_config_cmd.py +0 -0
  498. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_configured_adapter.py +0 -0
  499. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_confirm_helper.py +0 -0
  500. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_contract_parity.py +0 -0
  501. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_contract_v0_3_schema.py +0 -0
  502. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_copilot_agent_md.py +0 -0
  503. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_copilot_hooks_json.py +0 -0
  504. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_copilot_user_scope_wiring.py +0 -0
  505. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_credbroker_lint_hardening.py +0 -0
  506. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_diff_cmd.py +0 -0
  507. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_footprint_ownership.py +0 -0
  508. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_https_catalogue.py +0 -0
  509. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_init_state_cmd.py +0 -0
  510. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_install_argparse_adapter_flag.py +0 -0
  511. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_install_argparse_emit_install_routes.py +0 -0
  512. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_install_defaults_preferred_adapter.py +0 -0
  513. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_install_dropped_primitives_warning.py +0 -0
  514. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_install_event_dropped_wirings.py +0 -0
  515. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_install_first_value_handoff.py +0 -0
  516. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_install_force_help.py +0 -0
  517. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_install_inband_detection.py +0 -0
  518. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_install_messages.py +0 -0
  519. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_install_messages_repo_scope.py +0 -0
  520. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_install_refusal_ordering.py +0 -0
  521. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_install_state_provenance.py +0 -0
  522. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_kiro_ide_hook_projection.py +0 -0
  523. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_kiro_ide_hook_rail.py +0 -0
  524. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_kiro_ide_hook_schema.py +0 -0
  525. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_lint_agent_artifacts_metadata_auth.py +0 -0
  526. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_list_installed_cmd.py +0 -0
  527. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_list_installed_status.py +0 -0
  528. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_list_targets_cmd.py +0 -0
  529. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_local_scope_schema.py +0 -0
  530. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_local_scope_t10_uninstall.py +0 -0
  531. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_local_scope_t12_show.py +0 -0
  532. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_local_scope_t2_resolve.py +0 -0
  533. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_local_scope_t3_config.py +0 -0
  534. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_local_scope_t4_state_path.py +0 -0
  535. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_local_scope_t5_list_installed.py +0 -0
  536. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_local_scope_t7_install_gates.py +0 -0
  537. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_local_scope_t8_install.py +0 -0
  538. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_local_scope_t9_exclude.py +0 -0
  539. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_marker_schema_version_parity.py +0 -0
  540. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_merge_into_agent_json.py +0 -0
  541. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_multi_adapter_disambiguator.py +0 -0
  542. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_nested_symlink_hardening.py +0 -0
  543. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_org_bootstrap.py +0 -0
  544. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_pack_config_api.py +0 -0
  545. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_pack_inventory.py +0 -0
  546. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_package_catalogue.py +0 -0
  547. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_packstate_source_provenance.py +0 -0
  548. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_pipeline_phase_order.py +0 -0
  549. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_profile_reader.py +0 -0
  550. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_render.py +0 -0
  551. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_render_cmd.py +0 -0
  552. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_render_table.py +0 -0
  553. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_resolve_state_path.py +0 -0
  554. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_resolve_target_adapter_user_config.py +0 -0
  555. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_resolve_user_scope_target_adapter.py +0 -0
  556. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_safety.py +0 -0
  557. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_safety_repo_scope_prefixes.py +0 -0
  558. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_safety_scan_per_pack_scoping.py +0 -0
  559. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_scaffold_cmd.py +0 -0
  560. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_scope.py +0 -0
  561. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_self_host_windows.py +0 -0
  562. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_shared_prefix_disclosure.py +0 -0
  563. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_source_conflict_guard.py +0 -0
  564. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_source_defaults.py +0 -0
  565. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_state_v01_refuse_write.py +0 -0
  566. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_state_v02.py +0 -0
  567. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_state_v0_4_schema.py +0 -0
  568. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_statelock.py +0 -0
  569. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_system_trust.py +0 -0
  570. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_target_resolver.py +0 -0
  571. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_toml_emitters.py +0 -0
  572. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_unresolved_markers.py +0 -0
  573. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_upgrade_bulk_all.py +0 -0
  574. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_upgrade_recap.py +0 -0
  575. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_upgrade_source_inference.py +0 -0
  576. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_user_config_io.py +0 -0
  577. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_user_config_isolation.py +0 -0
  578. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_user_config_path.py +0 -0
  579. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_user_config_source.py +0 -0
  580. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_user_merge_json.py +0 -0
  581. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_validate_attach_to_agent.py +0 -0
  582. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_validate_categories.py +0 -0
  583. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_validate_cmd.py +0 -0
  584. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_validate_hook_wiring_per_file_compatibility.py +0 -0
  585. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_values_from_shapes.py +0 -0
  586. {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentbundle
3
- Version: 0.35.2
3
+ Version: 0.37.2
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,42 +34,49 @@ 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.35.0
37
+ ## What's new in 0.37.2
38
38
 
39
- **Installs now work on corporate networks that inspect TLS.** If your employer
40
- runs a proxy that re-signs HTTPS traffic, an install used to fail like this and
41
- leave you nothing to act on:
39
+ `agentbundle catalogue verify` now performs all 19 advertised checks. It
40
+ validates profile schemas and pack references, dependency ranges and cycles,
41
+ adapter compatibility, generated-output drift, pack preflight metadata, and
42
+ skill evaluation manifests. The verifier remains read-only and portable across
43
+ external catalogues.
42
44
 
43
- ```
44
- install: Failed to fetch catalogue archive: … —
45
- [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed:
46
- unable to get local issuer certificate
47
- ```
45
+ Dependency ranges now use the same npm-compatible grammar in verify, lint, and
46
+ install: caret, tilde, comparator, compound, and prerelease forms agree across
47
+ all three commands. In particular, caret ranges below `1.0.0` now use normal
48
+ semver compatibility (`^0.2` does not include `0.3.x`).
48
49
 
49
- The certificate authority your IT team installed is in the operating system's
50
- trust store, and Python does not read that store on macOS. AgentBundle now
51
- recovers on its own:
50
+ ## Catalogue authoring
52
51
 
52
+ New catalogue scaffolds document the guide callout contract. The bundled
53
+ authoring reference distinguishes exact quoted wording, which stays a
54
+ blockquote, from guidance that should render as a Starlight `note`, `tip`,
55
+ `caution`, or `danger` aside. Existing catalogues remain unchanged until their
56
+ scaffolded authoring reference is refreshed.
57
+
58
+ ## Contract discovery
59
+
60
+ The bundled public contract inventory includes the strict
61
+ `knowledge-captured-observation.schema.json` contract used by the core pack's
62
+ project-knowledge capture handoff.
63
+
64
+ You can inspect the exact public contracts bundled with the installed
65
+ AgentBundle version without network access:
66
+
67
+ ```bash
68
+ agentbundle catalogue contracts list
69
+ agentbundle catalogue contracts show pack.schema.json
70
+ agentbundle catalogue contracts export --output ./reference-contracts
53
71
  ```
54
- agentbundle: certificate verification failed for github.com;
55
- retrying with operating-system trust anchors
56
- ```
57
72
 
58
- Verification stays strict throughout — the retry *adds* trust anchors and never
59
- removes one, and no flag or environment variable can disable verification. Only
60
- the administrator keychain is read; your login keychain never is, because it is
61
- writable without administrator rights. Set `AGENTBUNDLE_NO_SYSTEM_TRUST=1` to
62
- opt out and see the underlying error.
63
-
64
- `AGENTBUNDLE_CA_BUNDLE` also works on `git+https://` sources now — previously
65
- only the `catalogue+https://` and `archive+https://` forms read it, so following
66
- the documentation did not help. `SSL_CERT_FILE`, `SSL_CERT_DIR`, and
67
- `REQUESTS_CA_BUNDLE` are honoured there too. See
68
- [Corporate networks](#corporate-networks) below.
69
-
70
- When a fetch still fails, the error names the likely cause and ordered next
71
- steps, and the request now carries a 30-second timeout so a proxy that accepts
72
- the connection and never answers fails instead of hanging.
73
+ `list` and `show` are read-only. `export` writes reference copies through a
74
+ no-follow, preflighted batch writer; those copies do not override the contracts
75
+ AgentBundle uses for validation.
76
+
77
+ Successful `agentbundle catalogue init` output points to the scaffolded
78
+ `guides/_shared/reference/catalogue-authoring-standards.md`, contract discovery,
79
+ and catalogue verification. JSON init output remains unchanged.
73
80
 
74
81
  **Install into a repo** — so everyone who clones it gets the pack. `core` is the flagship pack, the loop itself:
75
82
 
@@ -14,42 +14,49 @@ 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.35.0
17
+ ## What's new in 0.37.2
18
18
 
19
- **Installs now work on corporate networks that inspect TLS.** If your employer
20
- runs a proxy that re-signs HTTPS traffic, an install used to fail like this and
21
- leave you nothing to act on:
19
+ `agentbundle catalogue verify` now performs all 19 advertised checks. It
20
+ validates profile schemas and pack references, dependency ranges and cycles,
21
+ adapter compatibility, generated-output drift, pack preflight metadata, and
22
+ skill evaluation manifests. The verifier remains read-only and portable across
23
+ external catalogues.
22
24
 
23
- ```
24
- install: Failed to fetch catalogue archive: … —
25
- [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed:
26
- unable to get local issuer certificate
27
- ```
25
+ Dependency ranges now use the same npm-compatible grammar in verify, lint, and
26
+ install: caret, tilde, comparator, compound, and prerelease forms agree across
27
+ all three commands. In particular, caret ranges below `1.0.0` now use normal
28
+ semver compatibility (`^0.2` does not include `0.3.x`).
28
29
 
29
- The certificate authority your IT team installed is in the operating system's
30
- trust store, and Python does not read that store on macOS. AgentBundle now
31
- recovers on its own:
30
+ ## Catalogue authoring
32
31
 
32
+ New catalogue scaffolds document the guide callout contract. The bundled
33
+ authoring reference distinguishes exact quoted wording, which stays a
34
+ blockquote, from guidance that should render as a Starlight `note`, `tip`,
35
+ `caution`, or `danger` aside. Existing catalogues remain unchanged until their
36
+ scaffolded authoring reference is refreshed.
37
+
38
+ ## Contract discovery
39
+
40
+ The bundled public contract inventory includes the strict
41
+ `knowledge-captured-observation.schema.json` contract used by the core pack's
42
+ project-knowledge capture handoff.
43
+
44
+ You can inspect the exact public contracts bundled with the installed
45
+ AgentBundle version without network access:
46
+
47
+ ```bash
48
+ agentbundle catalogue contracts list
49
+ agentbundle catalogue contracts show pack.schema.json
50
+ agentbundle catalogue contracts export --output ./reference-contracts
33
51
  ```
34
- agentbundle: certificate verification failed for github.com;
35
- retrying with operating-system trust anchors
36
- ```
37
52
 
38
- Verification stays strict throughout — the retry *adds* trust anchors and never
39
- removes one, and no flag or environment variable can disable verification. Only
40
- the administrator keychain is read; your login keychain never is, because it is
41
- writable without administrator rights. Set `AGENTBUNDLE_NO_SYSTEM_TRUST=1` to
42
- opt out and see the underlying error.
43
-
44
- `AGENTBUNDLE_CA_BUNDLE` also works on `git+https://` sources now — previously
45
- only the `catalogue+https://` and `archive+https://` forms read it, so following
46
- the documentation did not help. `SSL_CERT_FILE`, `SSL_CERT_DIR`, and
47
- `REQUESTS_CA_BUNDLE` are honoured there too. See
48
- [Corporate networks](#corporate-networks) below.
49
-
50
- When a fetch still fails, the error names the likely cause and ordered next
51
- steps, and the request now carries a 30-second timeout so a proxy that accepts
52
- the connection and never answers fails instead of hanging.
53
+ `list` and `show` are read-only. `export` writes reference copies through a
54
+ no-follow, preflighted batch writer; those copies do not override the contracts
55
+ AgentBundle uses for validation.
56
+
57
+ Successful `agentbundle catalogue init` output points to the scaffolded
58
+ `guides/_shared/reference/catalogue-authoring-standards.md`, contract discovery,
59
+ and catalogue verification. JSON init output remains unchanged.
53
60
 
54
61
  **Install into a repo** — so everyone who clones it gets the pack. `core` is the flagship pack, the loop itself:
55
62
 
@@ -13,6 +13,33 @@ Machine contracts in `contracts/` are normative. These guides explain how to use
13
13
  Each section below names the authoritative contract and points to the guide that
14
14
  explains it. When a guide and its contract disagree, the contract is right.
15
15
 
16
+ ## Guide asides and quotations
17
+
18
+ Use a Starlight aside when a passage does work beyond the surrounding narrative.
19
+ Choose the type by what the reader needs to do with it:
20
+
21
+ | Type | Use it for |
22
+ | --- | --- |
23
+ | `note` | Scope, orientation, or background the reader must notice |
24
+ | `tip` | An optional technique that improves the result or route |
25
+ | `caution` | A pitfall, limitation, or recovery step with reversible consequences |
26
+ | `danger` | A risk of severe or irreversible harm |
27
+
28
+ Use only those four types. Keep the default visible title unless a specific title
29
+ helps the reader act. Put the complete guidance inside the directive:
30
+
31
+ ```md
32
+ :::caution
33
+ Confirm the generated paths before replacing an existing projection.
34
+ :::
35
+ ```
36
+
37
+ A blockquote has a different job: it preserves someone else's words or exact text
38
+ the reader must recognize, such as a prompt, transcript, sample response, or rubric
39
+ wording. Leave those passages as `>` blockquotes. Do not turn prose into a quotation
40
+ just to make it visually prominent, and do not turn genuine quoted wording into an
41
+ aside.
42
+
16
43
  ---
17
44
 
18
45
  ## 1. Catalogue manifest
@@ -426,5 +453,7 @@ contracts used for validation by this agentbundle version.
426
453
 
427
454
  ## Journey format
428
455
 
429
- > **Not yet available.** Wave 4 of the catalogue-contracts initiative will define the
430
- > journey format and its contract. This section will be filled in when that wave ships.
456
+ :::caution
457
+ **Not yet available.** Wave 4 of the catalogue-contracts initiative will define the
458
+ journey format and its contract. This section will be filled in when that wave ships.
459
+ :::
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "files": {
3
- "guides/_shared/reference/catalogue-authoring-standards.md": "3217e6bfcc15dc116d40e1b327b6bf19b66212c7e13553e42966f9982b3c3487",
3
+ "guides/_shared/reference/catalogue-authoring-standards.md": "42d4066e9a0226337268b6ea15fdf983ba0dd5f45bfde861557c2565ea354738",
4
4
  "guides/_shared/reference/catalogue-ci-contract.md": "fae793ab47989b6dd3c731afcb0b4cda21c7d08bbe7fa40fca6d3abb3d158141",
5
5
  "packs/AGENTS.md": "9bfeda4069826e518a4f4fdae45bd40f4393c1c5aaf146149d3eb4aece30be83",
6
6
  "packs/README.md": "d2de5f9556f4c8e521103474bde74636e02cc805f9bf5312a3a61a1f3eb45d8f",
@@ -9,7 +9,7 @@
9
9
  "packs/_example/.claude-plugin/plugin.json": "7f94084a56260eed225ec47ac82042fe9029c594557cca760a459885d03ccc26",
10
10
  "packs/_example/README.md": "ef130c9c1f97a75a07cc59fc55fc5b3bf71846dd2f06c3cddf5a1154023b6ef6",
11
11
  "packs/_example/pack.toml": "f19a0be9fca99a6a0e3ce2d5cd188bf98000f0a4f186954fb42a0c99c6859701",
12
- "profiles/AGENTS.md": "8950438d9e0f57c13613104c88c90b598b53196c91bfdced6d63e4e01b5e9254",
12
+ "profiles/AGENTS.md": "794e7f8bdccc0479cf1ac45f864e1cb829ab739b3cdd15c66baad7ee1c894329",
13
13
  "profiles/README.md": "a0b0268edc57fc575f7fea08f3363ba7da9f6e67dc4a0a6f8bd38c9668c97922",
14
14
  "profiles/_example/README.md": "164494df049ddce3e57cb44ed604cb3d39be0a6ec2072e609ea3fa4bbfc74c72",
15
15
  "profiles/_example/profile.toml": "68af18cf50fa0327a9776b029c92bb1cf82710c649691b3ac889eb8537b8eac7",
@@ -14,6 +14,10 @@ The profile **id** is the filename stem. It must match `^[a-z0-9][a-z0-9-]*$`.
14
14
 
15
15
  ## Current schema fields
16
16
 
17
+ The machine source of truth for profile TOML format is
18
+ [`contracts/profile.schema.json`](../contracts/profile.schema.json). The table
19
+ below is a reading aid; where the two disagree, the schema wins.
20
+
17
21
  | Field | Required | Type | Description |
18
22
  |-------|----------|------|-------------|
19
23
  | `scope` | yes | `"repo"` or `"user"` | Installation scope |
@@ -0,0 +1,287 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://agent-ready-repo.example/contracts/jsonschema/knowledge-captured-observation.schema.json",
4
+ "title": "Knowledge captured observation",
5
+ "description": "Strict producer request admitted by project-knowledge capture before core derives storage identity.",
6
+ "x-spec": ["docs/specs/project-knowledge-foundation/"],
7
+ "type": "object",
8
+ "contract_version": "knowledge-captured-observation.v1",
9
+ "additionalProperties": false,
10
+ "required": [
11
+ "contract_version",
12
+ "lesson",
13
+ "kind",
14
+ "project_scope",
15
+ "competency_facets",
16
+ "destination_hint",
17
+ "producer",
18
+ "semantic_gate",
19
+ "provenance",
20
+ "freshness_anchor",
21
+ "observed_at",
22
+ "privacy_attestation"
23
+ ],
24
+ "properties": {
25
+ "contract_version": {
26
+ "const": "knowledge-captured-observation.v1"
27
+ },
28
+ "lesson": {
29
+ "$ref": "#/$defs/safeText2000"
30
+ },
31
+ "kind": {
32
+ "enum": ["pattern", "gotcha", "antipattern"]
33
+ },
34
+ "project_scope": {
35
+ "type": "object",
36
+ "additionalProperties": false,
37
+ "required": ["paths", "audience"],
38
+ "properties": {
39
+ "paths": {
40
+ "type": "array",
41
+ "minItems": 1,
42
+ "maxItems": 20,
43
+ "items": {
44
+ "$ref": "#/$defs/repositoryPath"
45
+ }
46
+ },
47
+ "audience": {
48
+ "const": "project"
49
+ }
50
+ }
51
+ },
52
+ "competency_facets": {
53
+ "type": "array",
54
+ "minItems": 1,
55
+ "maxItems": 9,
56
+ "uniqueItems": true,
57
+ "items": {
58
+ "enum": [
59
+ "CQ-ORIENT",
60
+ "CQ-DESIGN",
61
+ "CQ-CHANGE",
62
+ "CQ-DIAGNOSE",
63
+ "CQ-REVIEW",
64
+ "CQ-VERIFY",
65
+ "CQ-OPERATE",
66
+ "CQ-ROUTE",
67
+ "CQ-RETIRE"
68
+ ]
69
+ }
70
+ },
71
+ "destination_hint": {
72
+ "type": "object",
73
+ "additionalProperties": false,
74
+ "required": ["type", "path"],
75
+ "properties": {
76
+ "type": {
77
+ "enum": ["topic", "canonical-artifact", "route-suggestion"]
78
+ },
79
+ "path": {
80
+ "$ref": "#/$defs/repositoryPath"
81
+ }
82
+ }
83
+ },
84
+ "producer": {
85
+ "type": "object",
86
+ "additionalProperties": false,
87
+ "required": ["workflow", "workflow_version"],
88
+ "properties": {
89
+ "workflow": {
90
+ "$ref": "#/$defs/slug"
91
+ },
92
+ "workflow_version": {
93
+ "type": "string",
94
+ "minLength": 1,
95
+ "maxLength": 80,
96
+ "pattern": "^[A-Za-z0-9._+-]+$"
97
+ }
98
+ }
99
+ },
100
+ "semantic_gate": {
101
+ "type": "object",
102
+ "additionalProperties": false,
103
+ "required": ["name", "artifact"],
104
+ "properties": {
105
+ "name": {
106
+ "$ref": "#/$defs/slug"
107
+ },
108
+ "artifact": {
109
+ "$ref": "#/$defs/repositoryPath"
110
+ }
111
+ }
112
+ },
113
+ "provenance": {
114
+ "type": "object",
115
+ "additionalProperties": false,
116
+ "required": ["sources"],
117
+ "properties": {
118
+ "sources": {
119
+ "type": "array",
120
+ "minItems": 1,
121
+ "maxItems": 12,
122
+ "items": {
123
+ "type": "object",
124
+ "additionalProperties": false,
125
+ "required": ["path"],
126
+ "properties": {
127
+ "path": {
128
+ "$ref": "#/$defs/repositoryPath"
129
+ },
130
+ "line_start": {
131
+ "type": "integer",
132
+ "minimum": 1,
133
+ "maximum": 1000000
134
+ },
135
+ "line_end": {
136
+ "type": "integer",
137
+ "minimum": 1,
138
+ "maximum": 1000000
139
+ }
140
+ }
141
+ }
142
+ }
143
+ }
144
+ },
145
+ "freshness_anchor": {
146
+ "type": "object",
147
+ "additionalProperties": false,
148
+ "required": ["path", "digest"],
149
+ "properties": {
150
+ "path": {
151
+ "$ref": "#/$defs/repositoryPath"
152
+ },
153
+ "digest": {
154
+ "$ref": "#/$defs/digest"
155
+ }
156
+ }
157
+ },
158
+ "observed_at": {
159
+ "type": "string",
160
+ "format": "date-time",
161
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$"
162
+ },
163
+ "privacy_attestation": {
164
+ "type": "object",
165
+ "additionalProperties": false,
166
+ "required": [
167
+ "reviewed",
168
+ "contains_private_data",
169
+ "contains_secrets",
170
+ "contains_instructions"
171
+ ],
172
+ "properties": {
173
+ "reviewed": {
174
+ "const": true
175
+ },
176
+ "contains_private_data": {
177
+ "const": false
178
+ },
179
+ "contains_secrets": {
180
+ "const": false
181
+ },
182
+ "contains_instructions": {
183
+ "const": false
184
+ }
185
+ }
186
+ },
187
+ "friction": {
188
+ "type": "object",
189
+ "additionalProperties": false,
190
+ "required": ["failed_attempts", "summary"],
191
+ "properties": {
192
+ "failed_attempts": {
193
+ "type": "integer",
194
+ "minimum": 1,
195
+ "maximum": 20
196
+ },
197
+ "summary": {
198
+ "$ref": "#/$defs/safeText500"
199
+ }
200
+ }
201
+ },
202
+ "verification_route": {
203
+ "type": "object",
204
+ "additionalProperties": false,
205
+ "required": ["command", "path"],
206
+ "properties": {
207
+ "command": {
208
+ "$ref": "#/$defs/safeText500"
209
+ },
210
+ "path": {
211
+ "$ref": "#/$defs/repositoryPath"
212
+ }
213
+ }
214
+ }
215
+ },
216
+ "$defs": {
217
+ "safeText2000": {
218
+ "type": "string",
219
+ "minLength": 1,
220
+ "maxLength": 2000
221
+ },
222
+ "safeText500": {
223
+ "type": "string",
224
+ "minLength": 1,
225
+ "maxLength": 500
226
+ },
227
+ "slug": {
228
+ "type": "string",
229
+ "minLength": 1,
230
+ "maxLength": 80,
231
+ "pattern": "^[a-z][a-z0-9-]*$"
232
+ },
233
+ "repositoryPath": {
234
+ "type": "string",
235
+ "minLength": 1,
236
+ "maxLength": 1000,
237
+ "pattern": "^(?:\\.|(?!/)(?![A-Za-z]:)(?!.*:)(?!.*\\\\)(?!.*(?:^|/)\\.{1,2}(?:/|$))(?!.*(?:^|/)(?:[Cc][Oo][Nn]|[Pp][Rr][Nn]|[Aa][Uu][Xx]|[Nn][Uu][Ll]|[Cc][Oo][Mm][1-9]|[Ll][Pp][Tt][1-9])(?:\\.|/|$))(?!.*[. ](?:/|$)).+)$"
238
+ },
239
+ "digest": {
240
+ "oneOf": [
241
+ {"$ref": "#/$defs/sha256BytesDigest"},
242
+ {"$ref": "#/$defs/gitBlobDigest"}
243
+ ]
244
+ },
245
+ "sha256BytesDigest": {
246
+ "type": "object",
247
+ "additionalProperties": false,
248
+ "required": ["kind", "sha256", "byte_length"],
249
+ "properties": {
250
+ "kind": {
251
+ "const": "sha256-bytes-v1"
252
+ },
253
+ "sha256": {
254
+ "type": "string",
255
+ "pattern": "^[0-9a-f]{64}$"
256
+ },
257
+ "byte_length": {
258
+ "type": "integer",
259
+ "minimum": 0
260
+ }
261
+ }
262
+ },
263
+ "gitBlobDigest": {
264
+ "type": "object",
265
+ "additionalProperties": false,
266
+ "required": ["kind", "algorithm", "object_id"],
267
+ "properties": {
268
+ "kind": {"const": "git-blob-v1"},
269
+ "algorithm": {"enum": ["sha1", "sha256"]},
270
+ "object_id": {
271
+ "type": "string",
272
+ "pattern": "^(?:[0-9a-f]{40}|[0-9a-f]{64})$"
273
+ }
274
+ },
275
+ "allOf": [
276
+ {
277
+ "if": {"properties": {"algorithm": {"const": "sha1"}}},
278
+ "then": {"properties": {"object_id": {"pattern": "^[0-9a-f]{40}$"}}}
279
+ },
280
+ {
281
+ "if": {"properties": {"algorithm": {"const": "sha256"}}},
282
+ "then": {"properties": {"object_id": {"pattern": "^[0-9a-f]{64}$"}}}
283
+ }
284
+ ]
285
+ }
286
+ }
287
+ }
@@ -2,6 +2,7 @@ adapter.schema.json
2
2
  adapter.toml
3
3
  catalogue.schema.json
4
4
  guide.schema.json
5
+ knowledge-captured-observation.schema.json
5
6
  marketplace-entry.schema.json
6
7
  pack.schema.json
7
8
  plugin-manifest.derived.schema.json
@@ -24,7 +24,10 @@ from typing import Iterator
24
24
  # keeps the phases predictable, which the spec calls for.
25
25
  from agentbundle.build.phase_order import PHASE_ORDER as _PHASE_ORDER
26
26
  from agentbundle.build.projection_io import copy_projected_file, ensure_directory_no_follow
27
- from agentbundle.build.projections.direct_directory import sweep_orphans
27
+ from agentbundle.build.projections.direct_directory import (
28
+ ignore_absolute_symlinks,
29
+ sweep_orphans,
30
+ )
28
31
  from agentbundle.build.projections.merge_json import project_merge_json
29
32
 
30
33
 
@@ -197,23 +200,6 @@ def _project_single(
197
200
  raise ValueError(f"claude-code: unhandled mode {mode!r} for {primitive_name}")
198
201
 
199
202
 
200
- def _ignore_absolute_symlinks(directory: str, names: list[str]) -> set[str]:
201
- """`shutil.copytree` ignore callback: drop symlinks with absolute targets
202
- and Python bytecode cache directories.
203
-
204
- Relative symlinks (intra-skill cross-references) are preserved as
205
- symlinks. Absolute symlinks always escape the tree and are a path-escape
206
- vector. __pycache__ directories are excluded because .pyc files embed
207
- absolute source paths and can never be byte-identical across machines.
208
- """
209
- base = Path(directory)
210
- return {
211
- name for name in names
212
- if name == "__pycache__"
213
- or ((base / name).is_symlink() and (base / name).readlink().is_absolute())
214
- }
215
-
216
-
217
203
  def _project_direct_directory(source_dir: Path, target_dir: Path) -> None:
218
204
  for entry in sorted(source_dir.iterdir()):
219
205
  # Defense-in-depth — `lint-packs` rejects packs that ship
@@ -233,11 +219,11 @@ def _project_direct_directory(source_dir: Path, target_dir: Path) -> None:
233
219
  elif destination.exists():
234
220
  shutil.rmtree(destination)
235
221
  # symlinks=True preserves relative nested symlinks; absolute
236
- # targets are filtered out by _ignore_absolute_symlinks.
222
+ # targets are filtered out by ignore_absolute_symlinks.
237
223
  shutil.copytree(
238
224
  entry, destination,
239
225
  symlinks=True,
240
- ignore=_ignore_absolute_symlinks,
226
+ ignore=ignore_absolute_symlinks,
241
227
  )
242
228
 
243
229
 
@@ -25,7 +25,10 @@ from agentbundle.build.projection_io import copy_projected_file, ensure_director
25
25
  from agentbundle.build.projections.codex_agent_toml import (
26
26
  project_codex_agent_toml,
27
27
  )
28
- from agentbundle.build.projections.direct_directory import sweep_orphans
28
+ from agentbundle.build.projections.direct_directory import (
29
+ ignore_absolute_symlinks,
30
+ sweep_orphans,
31
+ )
29
32
  from agentbundle.build.projections.merge_json import project_merge_json
30
33
 
31
34
 
@@ -181,11 +184,11 @@ def project_packs(
181
184
  elif destination.exists():
182
185
  shutil.rmtree(destination)
183
186
  # symlinks=True preserves relative nested symlinks;
184
- # absolute targets are filtered by _ignore_absolute_symlinks.
187
+ # absolute targets are filtered by ignore_absolute_symlinks.
185
188
  shutil.copytree(
186
189
  entry, destination,
187
190
  symlinks=True,
188
- ignore=_ignore_absolute_symlinks,
191
+ ignore=ignore_absolute_symlinks,
189
192
  )
190
193
  # Bound to `skill` only per spec § Never do. Other
191
194
  # direct-directory primitives opt in explicitly.
@@ -212,23 +215,6 @@ def project_packs(
212
215
  raise ValueError(f"codex: unhandled mode {mode!r} for {primitive_name}")
213
216
 
214
217
 
215
- def _ignore_absolute_symlinks(directory: str, names: list[str]) -> set[str]:
216
- """`shutil.copytree` ignore callback: drop symlinks with absolute targets
217
- and Python bytecode cache directories.
218
-
219
- Relative symlinks (intra-skill cross-references) are preserved.
220
- Absolute symlinks always escape the tree and are a path-escape vector.
221
- __pycache__ directories are excluded because .pyc files embed absolute
222
- source paths and can never be byte-identical across machines.
223
- """
224
- base = Path(directory)
225
- return {
226
- name for name in names
227
- if name == "__pycache__"
228
- or ((base / name).is_symlink() and (base / name).readlink().is_absolute())
229
- }
230
-
231
-
232
218
  def _project_direct_file(
233
219
  source_dir: Path,
234
220
  output_root: Path,