agentbundle 0.28.0__tar.gz → 0.29.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. {agentbundle-0.28.0 → agentbundle-0.29.0}/PKG-INFO +31 -1
  2. {agentbundle-0.28.0 → agentbundle-0.29.0}/README-pypi.md +30 -0
  3. {agentbundle-0.28.0 → agentbundle-0.29.0}/README.md +8 -0
  4. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/_data/pack.schema.json +16 -2
  5. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/cli.py +5 -4
  6. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/commands/_common.py +6 -2
  7. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/commands/install.py +278 -49
  8. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/commands/list_installed.py +10 -3
  9. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/commands/show.py +12 -6
  10. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/commands/uninstall.py +99 -3
  11. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/config.py +3 -1
  12. agentbundle-0.29.0/agentbundle/local_exclude.py +375 -0
  13. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/scope.py +18 -1
  14. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/version.py +1 -1
  15. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/workspace_mcp.py +90 -12
  16. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle.egg-info/PKG-INFO +31 -1
  17. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle.egg-info/SOURCES.txt +1 -0
  18. {agentbundle-0.28.0 → agentbundle-0.29.0}/pyproject.toml +1 -1
  19. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/__init__.py +0 -0
  20. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/__main__.py +0 -0
  21. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/_data/adapter.schema.json +0 -0
  22. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/_data/adapter.toml +0 -0
  23. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/_data/catalogue-scaffold/guides/_shared/reference/catalogue-authoring-standards.md +0 -0
  24. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/_data/catalogue-scaffold/guides/_shared/reference/catalogue-ci-contract.md +0 -0
  25. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/_data/catalogue-scaffold/manifest.json +0 -0
  26. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/_data/catalogue-scaffold/packs/AGENTS.md +0 -0
  27. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/_data/catalogue-scaffold/packs/README.md +0 -0
  28. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/_data/catalogue-scaffold/packs/_example/README.md +0 -0
  29. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/_data/catalogue-scaffold/packs/_example/evals/eval_queries.json +0 -0
  30. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/_data/catalogue-scaffold/packs/_example/pack.toml +0 -0
  31. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/_data/catalogue-scaffold/profiles/AGENTS.md +0 -0
  32. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/_data/catalogue-scaffold/profiles/README.md +0 -0
  33. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/_data/catalogue-scaffold/profiles/_example/README.md +0 -0
  34. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/_data/catalogue-scaffold/profiles/_example/profile.toml +0 -0
  35. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/_data/catalogue.schema.json +0 -0
  36. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/_data/guide.schema.json +0 -0
  37. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/_data/install-defaults.toml +0 -0
  38. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/_data/install-marker.py +0 -0
  39. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/_data/plugin-manifest.derived.schema.json +0 -0
  40. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/_data/plugin-manifest.schema.json +0 -0
  41. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/_data/profile.schema.json +0 -0
  42. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/_data/skill-manifest.schema.json +0 -0
  43. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/_data/skill.schema.json +0 -0
  44. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/_data/target-vocab.toml +0 -0
  45. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/__init__.py +0 -0
  46. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/__main__.py +0 -0
  47. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/adapter_root_bins.py +0 -0
  48. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/adapters/__init__.py +0 -0
  49. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/adapters/claude_code.py +0 -0
  50. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/adapters/codex.py +0 -0
  51. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/adapters/copilot.py +0 -0
  52. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/adapters/cursor.py +0 -0
  53. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/adapters/gemini.py +0 -0
  54. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/adapters/kiro.py +0 -0
  55. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/adapters/kiro_cli.py +0 -0
  56. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/adapters/kiro_ide.py +0 -0
  57. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/contract.py +0 -0
  58. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/lint_packs.py +0 -0
  59. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/main.py +0 -0
  60. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/phase_order.py +0 -0
  61. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/projections/__init__.py +0 -0
  62. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/projections/codex_agent_toml.py +0 -0
  63. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/projections/copilot_agent_md.py +0 -0
  64. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/projections/copilot_hooks_json.py +0 -0
  65. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/projections/direct_directory.py +0 -0
  66. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/projections/gemini_command_toml.py +0 -0
  67. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/projections/hook_id.py +0 -0
  68. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/projections/kiro_ide_hook.py +0 -0
  69. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/projections/merge_into_agent_json.py +0 -0
  70. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/projections/merge_json.py +0 -0
  71. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/projections/user_merge_json.py +0 -0
  72. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/recipes/composite-agents-md.toml +0 -0
  73. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/recipes/composite-marketplace.toml +0 -0
  74. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/recipes/marketplace.toml +0 -0
  75. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/recipes/per-pack-apm-package.toml +0 -0
  76. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/recipes/per-pack-claude-plugin.toml +0 -0
  77. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/recipes/per-pack-overlay.toml +0 -0
  78. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/recipes/self-host.toml +0 -0
  79. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/scope_rails.py +0 -0
  80. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/self_host.py +0 -0
  81. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/shared_libs.py +0 -0
  82. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/target_resolver.py +0 -0
  83. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/__init__.py +0 -0
  84. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_adapter_claude_code.py +0 -0
  85. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_adapter_codex.py +0 -0
  86. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_adapter_copilot.py +0 -0
  87. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_adapter_cursor.py +0 -0
  88. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_adapter_gemini.py +0 -0
  89. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_adapter_kiro.py +0 -0
  90. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_adapter_kiro_alias.py +0 -0
  91. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_adapter_kiro_cli.py +0 -0
  92. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_adapter_kiro_ide.py +0 -0
  93. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_adapter_root_bins_projection.py +0 -0
  94. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_architect_design_reviewer_projection.py +0 -0
  95. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_architect_design_reviewer_rubric_parity.py +0 -0
  96. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_build_ships_seeds.py +0 -0
  97. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_contract.py +0 -0
  98. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_contract_scope.py +0 -0
  99. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_contract_v07.py +0 -0
  100. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_contract_v08.py +0 -0
  101. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_direct_directory_cleanup.py +0 -0
  102. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_end_to_end_build.py +0 -0
  103. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_lint_agents_md_diataxis_block.py +0 -0
  104. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_lint_agents_md_legacy_block.py +0 -0
  105. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_lint_agents_md_risk_block.py +0 -0
  106. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_lint_packs.py +0 -0
  107. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_load_pack_hook_wiring_safely.py +0 -0
  108. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_pack_schema.py +0 -0
  109. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_pack_schema_allowed_adapters.py +0 -0
  110. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_pack_schema_install.py +0 -0
  111. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_pipeline.py +0 -0
  112. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_plugin_manifest_schema.py +0 -0
  113. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_projectable_subset.py +0 -0
  114. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_projections_merge_json.py +0 -0
  115. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_scope_rails.py +0 -0
  116. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_security.py +0 -0
  117. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_self_host_check.py +0 -0
  118. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_self_host_fixture_guard.py +0 -0
  119. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_self_host_recipe_config.py +0 -0
  120. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_shared_libs_projection.py +0 -0
  121. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_shared_prefix_contract.py +0 -0
  122. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_shipped_packs_v07_declarations.py +0 -0
  123. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_shipped_packs_v08_declarations.py +0 -0
  124. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_user_libs_projection.py +0 -0
  125. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_validate.py +0 -0
  126. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_workspace_status_projection.py +0 -0
  127. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/tests/test_writers_emit_lf.py +0 -0
  128. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/user_libs.py +0 -0
  129. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/build/validate.py +0 -0
  130. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/catalogue.py +0 -0
  131. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/catalogue_tooling/__init__.py +0 -0
  132. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/catalogue_tooling/archive.py +0 -0
  133. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/catalogue_tooling/build.py +0 -0
  134. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/catalogue_tooling/config.py +0 -0
  135. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/catalogue_tooling/defaults.py +0 -0
  136. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/catalogue_tooling/diagnostics.py +0 -0
  137. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/catalogue_tooling/identity.py +0 -0
  138. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/catalogue_tooling/initialise.py +0 -0
  139. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/catalogue_tooling/initialise_self_hosted.py +0 -0
  140. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/catalogue_tooling/lint.py +0 -0
  141. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/catalogue_tooling/package.py +0 -0
  142. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/catalogue_tooling/results.py +0 -0
  143. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/catalogue_tooling/self_host.py +0 -0
  144. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/catalogue_tooling/self_host_windows.py +0 -0
  145. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/catalogue_tooling/skill_spec_lint.py +0 -0
  146. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/catalogue_tooling/toml_emit.py +0 -0
  147. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/catalogue_tooling/verify.py +0 -0
  148. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/categories.py +0 -0
  149. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/commands/__init__.py +0 -0
  150. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/commands/_drop_warning.py +0 -0
  151. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/commands/adapt.py +0 -0
  152. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/commands/catalogue_build.py +0 -0
  153. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/commands/catalogue_init.py +0 -0
  154. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/commands/catalogue_lint.py +0 -0
  155. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/commands/catalogue_package.py +0 -0
  156. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/commands/catalogue_self_host.py +0 -0
  157. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/commands/catalogue_sync_defaults.py +0 -0
  158. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/commands/catalogue_tooling_stub.py +0 -0
  159. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/commands/catalogue_verify.py +0 -0
  160. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/commands/config.py +0 -0
  161. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/commands/diff.py +0 -0
  162. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/commands/docs.py +0 -0
  163. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/commands/init_state.py +0 -0
  164. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/commands/list_packs.py +0 -0
  165. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/commands/list_profiles.py +0 -0
  166. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/commands/list_targets.py +0 -0
  167. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/commands/oplog_cmd.py +0 -0
  168. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/commands/pack_config_cmd.py +0 -0
  169. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/commands/pack_evals.py +0 -0
  170. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/commands/package_catalogue.py +0 -0
  171. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/commands/profile.py +0 -0
  172. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/commands/reconcile.py +0 -0
  173. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/commands/render.py +0 -0
  174. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/commands/scaffold.py +0 -0
  175. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/commands/upgrade.py +0 -0
  176. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/commands/validate.py +0 -0
  177. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/https_catalogue.py +0 -0
  178. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/oplog.py +0 -0
  179. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/pack_inventory.py +0 -0
  180. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/render.py +0 -0
  181. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/safety.py +0 -0
  182. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/scaffold.py +0 -0
  183. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/source_defaults.py +0 -0
  184. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/statelock.py +0 -0
  185. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle/user_config.py +0 -0
  186. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle.egg-info/dependency_links.txt +0 -0
  187. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle.egg-info/entry_points.txt +0 -0
  188. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle.egg-info/requires.txt +0 -0
  189. {agentbundle-0.28.0 → agentbundle-0.29.0}/agentbundle.egg-info/top_level.txt +0 -0
  190. {agentbundle-0.28.0 → agentbundle-0.29.0}/setup.cfg +0 -0
  191. {agentbundle-0.28.0 → agentbundle-0.29.0}/tests/test_adapter_permissions_projection.py +0 -0
  192. {agentbundle-0.28.0 → agentbundle-0.29.0}/tests/test_linear_primitive.py +0 -0
  193. {agentbundle-0.28.0 → agentbundle-0.29.0}/tests/test_loop_engine_events_jsonl.py +0 -0
  194. {agentbundle-0.28.0 → agentbundle-0.29.0}/tests/test_workspace_mcp_elicit.py +0 -0
  195. {agentbundle-0.28.0 → agentbundle-0.29.0}/tests/test_workspace_mcp_event_bridge.py +0 -0
  196. {agentbundle-0.28.0 → agentbundle-0.29.0}/tests/test_workspace_mcp_git.py +0 -0
  197. {agentbundle-0.28.0 → agentbundle-0.29.0}/tests/test_workspace_mcp_lifecycle.py +0 -0
  198. {agentbundle-0.28.0 → agentbundle-0.29.0}/tests/test_workspace_mcp_stdin.py +0 -0
  199. {agentbundle-0.28.0 → agentbundle-0.29.0}/tests/test_workspace_mcp_tools.py +0 -0
  200. {agentbundle-0.28.0 → agentbundle-0.29.0}/tests/test_workspace_status_engine_autonomous.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentbundle
3
- Version: 0.28.0
3
+ Version: 0.29.0
4
4
  Summary: npm for your coding agent. Install packs of skills, subagents, and hooks into any repo, for every major agent.
5
5
  Author-email: eugenelim <eugenelim@users.noreply.github.com>
6
6
  License: Apache-2.0 OR MIT
@@ -329,6 +329,36 @@ agentbundle oplog show my-pack # JSONL operation history
329
329
  agentbundle oplog clear my-pack # wipe history (asks first)
330
330
  ```
331
331
 
332
+ ## Per-session MCP server (workspace-mcp)
333
+
334
+ The `core` pack ships a per-session MCP server that a control harness can inject into
335
+ each Claude Code session. It exposes six tools over MCP stdio:
336
+
337
+ | Tool | What it does |
338
+ |---|---|
339
+ | `workspace_status` | Returns the queue (ready / blocked / active / shaping items) and active-run state — current phase, whether a gate is pending, and the gate question |
340
+ | `elicit` | Sends a question to the operator and blocks until they respond (300 s timeout) |
341
+ | `git_status` | Returns uncommitted changes (`git status --short`) |
342
+ | `git_branch` | Creates and checks out a feature branch scoped to the dispatched item |
343
+ | `git_commit` | Stages and commits only files under the item's configured output paths |
344
+ | `git_push` | Pushes the session branch to origin |
345
+
346
+ **Spawn it** (the harness does this, not the agent):
347
+
348
+ ```bash
349
+ python3 -m agentbundle.workspace_mcp
350
+ ```
351
+
352
+ **Inject the session instruction** so the agent knows to use the tools:
353
+
354
+ ```python
355
+ from agentbundle.workspace_mcp import DEFAULT_SESSION_INSTRUCTION
356
+ ```
357
+
358
+ Pass `WORKSPACE_MCP_SPEC_PATH` (path to the spec directory) and
359
+ `WORKSPACE_MCP_DISPATCHED_ITEM` (`ini_slug/type:slug`) as environment variables
360
+ when spawning to unlock the git write tools and FSM event tracking.
361
+
332
362
  ## Credentials
333
363
 
334
364
  `agentbundle` doesn't resolve secrets. Credentialed skills use [`credbroker`](https://pypi.org/project/credbroker/), a standalone resolver that keeps cleartext out of the model's reach.
@@ -307,6 +307,36 @@ agentbundle oplog show my-pack # JSONL operation history
307
307
  agentbundle oplog clear my-pack # wipe history (asks first)
308
308
  ```
309
309
 
310
+ ## Per-session MCP server (workspace-mcp)
311
+
312
+ The `core` pack ships a per-session MCP server that a control harness can inject into
313
+ each Claude Code session. It exposes six tools over MCP stdio:
314
+
315
+ | Tool | What it does |
316
+ |---|---|
317
+ | `workspace_status` | Returns the queue (ready / blocked / active / shaping items) and active-run state — current phase, whether a gate is pending, and the gate question |
318
+ | `elicit` | Sends a question to the operator and blocks until they respond (300 s timeout) |
319
+ | `git_status` | Returns uncommitted changes (`git status --short`) |
320
+ | `git_branch` | Creates and checks out a feature branch scoped to the dispatched item |
321
+ | `git_commit` | Stages and commits only files under the item's configured output paths |
322
+ | `git_push` | Pushes the session branch to origin |
323
+
324
+ **Spawn it** (the harness does this, not the agent):
325
+
326
+ ```bash
327
+ python3 -m agentbundle.workspace_mcp
328
+ ```
329
+
330
+ **Inject the session instruction** so the agent knows to use the tools:
331
+
332
+ ```python
333
+ from agentbundle.workspace_mcp import DEFAULT_SESSION_INSTRUCTION
334
+ ```
335
+
336
+ Pass `WORKSPACE_MCP_SPEC_PATH` (path to the spec directory) and
337
+ `WORKSPACE_MCP_DISPATCHED_ITEM` (`ini_slug/type:slug`) as environment variables
338
+ when spawning to unlock the git write tools and FSM event tracking.
339
+
310
340
  ## Credentials
311
341
 
312
342
  `agentbundle` doesn't resolve secrets. Credentialed skills use [`credbroker`](https://pypi.org/project/credbroker/), a standalone resolver that keeps cleartext out of the model's reach.
@@ -26,6 +26,14 @@ agentbundle install --pack desk-research --scope user
26
26
 
27
27
  User-scope packs land in your home directory, not the repo — they're yours, not the team's, and they're there in every project you open.
28
28
 
29
+ **Try a pack without committing anything** — so the pack is fully live for your session but completely invisible to git:
30
+
31
+ ```bash
32
+ agentbundle install --pack core --scope local
33
+ ```
34
+
35
+ Local-scope packs land at the same paths as a repo install, but every file is registered in `.git/info/exclude` — so `git status` stays clean and nothing gets accidentally committed. Uninstall removes both the files and the exclude entries; the repo returns to exactly the state it was in before. Requires a git working tree. Useful for trialling a pack in a repo you don't own, or testing an update before rolling it out to the team.
36
+
29
37
  The install auto-detects your agent (`--adapter` overrides). Multi-IDE? Install the same pack for each agent at the same scope — they coexist, and the agents that read `.agents/skills/` (codex, cursor, gemini, copilot) share one skill copy instead of fighting over it. To install from a **different** catalogue, pass it as a trailing argument — a git URL or a local path (`agentbundle install --pack core <catalogue>`); a `config set source <catalogue>` makes that the default, and an editable clone (`pip install -e`) defaults to itself.
30
38
 
31
39
  ## More commands
@@ -75,7 +75,7 @@
75
75
  "allowed-scopes": {
76
76
  "type": "array",
77
77
  "minItems": 1,
78
- "items": {"enum": ["repo", "user"]}
78
+ "items": {"enum": ["repo", "user", "local"]}
79
79
  },
80
80
  "user-scope-hooks": {"type": "boolean"},
81
81
  "allowed-adapters": {
@@ -98,7 +98,21 @@
98
98
  "properties": {
99
99
  "allowed-scopes": {"contains": {"enum": ["repo"]}}
100
100
  }
101
- }
101
+ },
102
+ "allOf": [
103
+ {
104
+ "if": {
105
+ "properties": {
106
+ "allowed-scopes": {"contains": {"enum": ["local"]}}
107
+ }
108
+ },
109
+ "then": {
110
+ "properties": {
111
+ "allowed-scopes": {"contains": {"enum": ["repo"]}}
112
+ }
113
+ }
114
+ }
115
+ ]
102
116
  },
103
117
  "evals": {
104
118
  "type": "object",
@@ -33,6 +33,7 @@ import re
33
33
  import sys
34
34
  from typing import Sequence
35
35
 
36
+ from agentbundle.scope import LEGAL_SCOPES
36
37
  from agentbundle.version import CLI_VERSION, SPEC_VERSION
37
38
 
38
39
  # Path-bearing argparse-attribute names. The set is curated rather than
@@ -258,8 +259,8 @@ def _build_parser() -> argparse.ArgumentParser:
258
259
  sp.add_argument("--root", default=".")
259
260
  sp.add_argument(
260
261
  "--scope",
261
- choices=("repo", "user"),
262
- help="Limit the listing to one scope. Default: both user and repo.",
262
+ choices=tuple(sorted(LEGAL_SCOPES)),
263
+ help="Limit the listing to one scope. Default: all scopes (repo, user, local).",
263
264
  )
264
265
  sp.add_argument(
265
266
  "--no-check",
@@ -387,7 +388,7 @@ def _build_parser() -> argparse.ArgumentParser:
387
388
  ),
388
389
  )
389
390
  sp.add_argument("--output", default=".")
390
- sp.add_argument("--scope", choices=("repo", "user"))
391
+ sp.add_argument("--scope", choices=tuple(sorted(LEGAL_SCOPES)))
391
392
  sp.add_argument(
392
393
  "--force",
393
394
  action="store_true",
@@ -627,7 +628,7 @@ def _build_parser() -> argparse.ArgumentParser:
627
628
  )
628
629
  sp.add_argument("--pack", required=True)
629
630
  sp.add_argument("--root", default=".")
630
- sp.add_argument("--scope", choices=("repo", "user"))
631
+ sp.add_argument("--scope", choices=tuple(sorted(LEGAL_SCOPES)))
631
632
  sp.add_argument(
632
633
  "--adapter",
633
634
  choices=_shipped_adapters_choices(),
@@ -43,11 +43,15 @@ def resolve_catalogue_uri(args: argparse.Namespace) -> str:
43
43
  def resolve_state_path(scope: str, root: Path) -> Path:
44
44
  """Return the state-file path for *scope* under *root*.
45
45
 
46
- ``scope="repo"`` → ``<root>/.agentbundle-state.toml``
47
- ``scope="user"`` → ``<root>/.agentbundle/state.toml``
46
+ ``scope="repo"`` → ``<root>/.agentbundle-state.toml``
47
+ ``scope="user"`` → ``<root>/.agentbundle/state.toml``
48
+ ``scope="local"`` → ``<root>/.agentbundle-local-state.toml``
49
+ (RFC-0080: per-clone, never-committed; never added to .gitignore)
48
50
  """
49
51
  if scope == "user":
50
52
  return root / ".agentbundle" / "state.toml"
53
+ if scope == "local":
54
+ return root / ".agentbundle-local-state.toml"
51
55
  return root / ".agentbundle-state.toml"
52
56
 
53
57