agentbundle 0.28.0__tar.gz → 0.28.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {agentbundle-0.28.0 → agentbundle-0.28.1}/PKG-INFO +31 -1
- {agentbundle-0.28.0 → agentbundle-0.28.1}/README-pypi.md +30 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/version.py +1 -1
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/workspace_mcp.py +90 -12
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle.egg-info/PKG-INFO +31 -1
- {agentbundle-0.28.0 → agentbundle-0.28.1}/pyproject.toml +1 -1
- {agentbundle-0.28.0 → agentbundle-0.28.1}/README.md +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/__init__.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/__main__.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/_data/adapter.schema.json +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/_data/adapter.toml +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/_data/catalogue-scaffold/guides/_shared/reference/catalogue-authoring-standards.md +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/_data/catalogue-scaffold/guides/_shared/reference/catalogue-ci-contract.md +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/_data/catalogue-scaffold/manifest.json +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/_data/catalogue-scaffold/packs/AGENTS.md +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/_data/catalogue-scaffold/packs/README.md +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/_data/catalogue-scaffold/packs/_example/README.md +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/_data/catalogue-scaffold/packs/_example/evals/eval_queries.json +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/_data/catalogue-scaffold/packs/_example/pack.toml +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/_data/catalogue-scaffold/profiles/AGENTS.md +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/_data/catalogue-scaffold/profiles/README.md +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/_data/catalogue-scaffold/profiles/_example/README.md +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/_data/catalogue-scaffold/profiles/_example/profile.toml +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/_data/catalogue.schema.json +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/_data/guide.schema.json +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/_data/install-defaults.toml +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/_data/install-marker.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/_data/pack.schema.json +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/_data/plugin-manifest.derived.schema.json +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/_data/plugin-manifest.schema.json +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/_data/profile.schema.json +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/_data/skill-manifest.schema.json +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/_data/skill.schema.json +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/_data/target-vocab.toml +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/__init__.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/__main__.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/adapter_root_bins.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/adapters/__init__.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/adapters/claude_code.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/adapters/codex.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/adapters/copilot.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/adapters/cursor.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/adapters/gemini.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/adapters/kiro.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/adapters/kiro_cli.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/adapters/kiro_ide.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/contract.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/lint_packs.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/main.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/phase_order.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/projections/__init__.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/projections/codex_agent_toml.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/projections/copilot_agent_md.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/projections/copilot_hooks_json.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/projections/direct_directory.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/projections/gemini_command_toml.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/projections/hook_id.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/projections/kiro_ide_hook.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/projections/merge_into_agent_json.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/projections/merge_json.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/projections/user_merge_json.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/recipes/composite-agents-md.toml +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/recipes/composite-marketplace.toml +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/recipes/marketplace.toml +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/recipes/per-pack-apm-package.toml +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/recipes/per-pack-claude-plugin.toml +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/recipes/per-pack-overlay.toml +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/recipes/self-host.toml +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/scope_rails.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/self_host.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/shared_libs.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/target_resolver.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/__init__.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_adapter_claude_code.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_adapter_codex.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_adapter_copilot.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_adapter_cursor.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_adapter_gemini.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_adapter_kiro.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_adapter_kiro_alias.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_adapter_kiro_cli.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_adapter_kiro_ide.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_adapter_root_bins_projection.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_architect_design_reviewer_projection.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_architect_design_reviewer_rubric_parity.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_build_ships_seeds.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_contract.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_contract_scope.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_contract_v07.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_contract_v08.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_direct_directory_cleanup.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_end_to_end_build.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_lint_agents_md_diataxis_block.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_lint_agents_md_legacy_block.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_lint_agents_md_risk_block.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_lint_packs.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_load_pack_hook_wiring_safely.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_pack_schema.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_pack_schema_allowed_adapters.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_pack_schema_install.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_pipeline.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_plugin_manifest_schema.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_projectable_subset.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_projections_merge_json.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_scope_rails.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_security.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_self_host_check.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_self_host_fixture_guard.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_self_host_recipe_config.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_shared_libs_projection.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_shared_prefix_contract.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_shipped_packs_v07_declarations.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_shipped_packs_v08_declarations.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_user_libs_projection.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_validate.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_workspace_status_projection.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_writers_emit_lf.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/user_libs.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/validate.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/catalogue.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/catalogue_tooling/__init__.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/catalogue_tooling/archive.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/catalogue_tooling/build.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/catalogue_tooling/config.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/catalogue_tooling/defaults.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/catalogue_tooling/diagnostics.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/catalogue_tooling/identity.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/catalogue_tooling/initialise.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/catalogue_tooling/initialise_self_hosted.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/catalogue_tooling/lint.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/catalogue_tooling/package.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/catalogue_tooling/results.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/catalogue_tooling/self_host.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/catalogue_tooling/self_host_windows.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/catalogue_tooling/skill_spec_lint.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/catalogue_tooling/toml_emit.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/catalogue_tooling/verify.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/categories.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/cli.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/commands/__init__.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/commands/_common.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/commands/_drop_warning.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/commands/adapt.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/commands/catalogue_build.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/commands/catalogue_init.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/commands/catalogue_lint.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/commands/catalogue_package.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/commands/catalogue_self_host.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/commands/catalogue_sync_defaults.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/commands/catalogue_tooling_stub.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/commands/catalogue_verify.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/commands/config.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/commands/diff.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/commands/docs.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/commands/init_state.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/commands/install.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/commands/list_installed.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/commands/list_packs.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/commands/list_profiles.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/commands/list_targets.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/commands/oplog_cmd.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/commands/pack_config_cmd.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/commands/pack_evals.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/commands/package_catalogue.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/commands/profile.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/commands/reconcile.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/commands/render.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/commands/scaffold.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/commands/show.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/commands/uninstall.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/commands/upgrade.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/commands/validate.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/config.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/https_catalogue.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/oplog.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/pack_inventory.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/render.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/safety.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/scaffold.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/scope.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/source_defaults.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/statelock.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/user_config.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle.egg-info/SOURCES.txt +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle.egg-info/dependency_links.txt +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle.egg-info/entry_points.txt +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle.egg-info/requires.txt +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle.egg-info/top_level.txt +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/setup.cfg +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/tests/test_adapter_permissions_projection.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/tests/test_linear_primitive.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/tests/test_loop_engine_events_jsonl.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/tests/test_workspace_mcp_elicit.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/tests/test_workspace_mcp_event_bridge.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/tests/test_workspace_mcp_git.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/tests/test_workspace_mcp_lifecycle.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/tests/test_workspace_mcp_stdin.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/tests/test_workspace_mcp_tools.py +0 -0
- {agentbundle-0.28.0 → agentbundle-0.28.1}/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.
|
|
3
|
+
Version: 0.28.1
|
|
4
4
|
Summary: npm for your coding agent. Install packs of skills, subagents, and hooks into any repo, for every major agent.
|
|
5
5
|
Author-email: eugenelim <eugenelim@users.noreply.github.com>
|
|
6
6
|
License: 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.
|
|
@@ -1549,50 +1549,128 @@ class _StdioLoop:
|
|
|
1549
1549
|
return [
|
|
1550
1550
|
{
|
|
1551
1551
|
"name": "workspace_status",
|
|
1552
|
-
"description":
|
|
1552
|
+
"description": (
|
|
1553
|
+
"Returns the current workspace queue and active-run state. "
|
|
1554
|
+
"Call this at session start before doing any work. "
|
|
1555
|
+
"Response fields: "
|
|
1556
|
+
"ready[] — items that can be dispatched immediately, each with "
|
|
1557
|
+
"ini_slug, type, slug, and dispatch_skill; "
|
|
1558
|
+
"blocked[] — items whose dependencies are not yet met; "
|
|
1559
|
+
"active[] — items currently in progress; "
|
|
1560
|
+
"shaping[] — non-implementation items (research, design, shape, strategy); "
|
|
1561
|
+
"current_state — current work-loop phase name (null when idle); "
|
|
1562
|
+
"gate_pending — true when human input is required before work can continue; "
|
|
1563
|
+
"gate — name of the pending gate (e.g. SPEC-HUMAN-GATE, REVIEW-HUMAN-GATE); "
|
|
1564
|
+
"gate_question — the specific question the work-loop is asking."
|
|
1565
|
+
),
|
|
1553
1566
|
"inputSchema": {"type": "object", "properties": {}},
|
|
1554
1567
|
},
|
|
1555
1568
|
{
|
|
1556
1569
|
"name": "elicit",
|
|
1557
|
-
"description":
|
|
1570
|
+
"description": (
|
|
1571
|
+
"Send a question to the human operator and wait for their response. "
|
|
1572
|
+
"Use this instead of emitting free-form text whenever you need "
|
|
1573
|
+
"approval, a decision, or clarifying input. "
|
|
1574
|
+
"Blocks until the operator replies or the 300-second timeout expires. "
|
|
1575
|
+
"Returns {response: string} on success, or {error: string} on timeout."
|
|
1576
|
+
),
|
|
1558
1577
|
"inputSchema": {
|
|
1559
1578
|
"type": "object",
|
|
1560
1579
|
"properties": {
|
|
1561
|
-
"message": {
|
|
1562
|
-
|
|
1563
|
-
|
|
1580
|
+
"message": {
|
|
1581
|
+
"type": "string",
|
|
1582
|
+
"description": "The question or prompt to display to the operator.",
|
|
1583
|
+
},
|
|
1584
|
+
"context": {
|
|
1585
|
+
"type": "string",
|
|
1586
|
+
"description": (
|
|
1587
|
+
"Optional background text shown alongside the question."
|
|
1588
|
+
),
|
|
1589
|
+
},
|
|
1590
|
+
"options": {
|
|
1591
|
+
"type": "array",
|
|
1592
|
+
"items": {"type": "string"},
|
|
1593
|
+
"description": (
|
|
1594
|
+
"Optional list of allowed responses. When provided, the "
|
|
1595
|
+
"operator must choose one of these values."
|
|
1596
|
+
),
|
|
1597
|
+
},
|
|
1564
1598
|
},
|
|
1565
1599
|
"required": ["message"],
|
|
1566
1600
|
},
|
|
1567
1601
|
},
|
|
1568
1602
|
{
|
|
1569
1603
|
"name": "git_status",
|
|
1570
|
-
"description":
|
|
1604
|
+
"description": (
|
|
1605
|
+
"Returns uncommitted file changes in the repo "
|
|
1606
|
+
"(equivalent to git status --short). "
|
|
1607
|
+
"Returns {output: string, returncode: int}."
|
|
1608
|
+
),
|
|
1571
1609
|
"inputSchema": {"type": "object", "properties": {}},
|
|
1572
1610
|
},
|
|
1573
1611
|
{
|
|
1574
1612
|
"name": "git_branch",
|
|
1575
|
-
"description":
|
|
1613
|
+
"description": (
|
|
1614
|
+
"Create and check out a new feature branch. "
|
|
1615
|
+
"The branch name must follow the ini_slug/type/slug format "
|
|
1616
|
+
"(e.g. my-initiative/work/fix-bug) and must match the dispatched item. "
|
|
1617
|
+
"May only be called once per session; subsequent calls are rejected. "
|
|
1618
|
+
"Not available when no item has been dispatched."
|
|
1619
|
+
),
|
|
1576
1620
|
"inputSchema": {
|
|
1577
1621
|
"type": "object",
|
|
1578
|
-
"properties": {
|
|
1622
|
+
"properties": {
|
|
1623
|
+
"name": {
|
|
1624
|
+
"type": "string",
|
|
1625
|
+
"description": (
|
|
1626
|
+
"Branch name in ini_slug/type/slug format "
|
|
1627
|
+
"(e.g. my-initiative/work/fix-bug)."
|
|
1628
|
+
),
|
|
1629
|
+
}
|
|
1630
|
+
},
|
|
1579
1631
|
"required": ["name"],
|
|
1580
1632
|
},
|
|
1581
1633
|
},
|
|
1582
1634
|
{
|
|
1583
1635
|
"name": "git_commit",
|
|
1584
|
-
"description":
|
|
1636
|
+
"description": (
|
|
1637
|
+
"Stage and commit files that belong to the dispatched work item. "
|
|
1638
|
+
"Only files under the item's configured output paths are staged; "
|
|
1639
|
+
"files outside those paths are excluded. "
|
|
1640
|
+
"Not available when no item has been dispatched, or for work-loop "
|
|
1641
|
+
"items (work-loop manages its own git lifecycle)."
|
|
1642
|
+
),
|
|
1585
1643
|
"inputSchema": {
|
|
1586
1644
|
"type": "object",
|
|
1587
|
-
"properties": {
|
|
1645
|
+
"properties": {
|
|
1646
|
+
"message": {
|
|
1647
|
+
"type": "string",
|
|
1648
|
+
"description": (
|
|
1649
|
+
"Git commit message. "
|
|
1650
|
+
"Defaults to 'workspace-mcp: commit artifacts'."
|
|
1651
|
+
),
|
|
1652
|
+
}
|
|
1653
|
+
},
|
|
1588
1654
|
},
|
|
1589
1655
|
},
|
|
1590
1656
|
{
|
|
1591
1657
|
"name": "git_push",
|
|
1592
|
-
"description":
|
|
1658
|
+
"description": (
|
|
1659
|
+
"Push the session branch to origin. "
|
|
1660
|
+
"Requires git_branch() to have been called first in this session. "
|
|
1661
|
+
"Not available when no item has been dispatched."
|
|
1662
|
+
),
|
|
1593
1663
|
"inputSchema": {
|
|
1594
1664
|
"type": "object",
|
|
1595
|
-
"properties": {
|
|
1665
|
+
"properties": {
|
|
1666
|
+
"branch": {
|
|
1667
|
+
"type": "string",
|
|
1668
|
+
"description": (
|
|
1669
|
+
"Branch name to push. Must match the branch "
|
|
1670
|
+
"established by git_branch() in this session."
|
|
1671
|
+
),
|
|
1672
|
+
}
|
|
1673
|
+
},
|
|
1596
1674
|
"required": ["branch"],
|
|
1597
1675
|
},
|
|
1598
1676
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agentbundle
|
|
3
|
-
Version: 0.28.
|
|
3
|
+
Version: 0.28.1
|
|
4
4
|
Summary: npm for your coding agent. Install packs of skills, subagents, and hooks into any repo, for every major agent.
|
|
5
5
|
Author-email: eugenelim <eugenelim@users.noreply.github.com>
|
|
6
6
|
License: 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.
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "agentbundle"
|
|
7
|
-
version = "0.28.
|
|
7
|
+
version = "0.28.1"
|
|
8
8
|
description = "npm for your coding agent. Install packs of skills, subagents, and hooks into any repo, for every major agent."
|
|
9
9
|
requires-python = ">=3.11"
|
|
10
10
|
dependencies = []
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/_data/catalogue-scaffold/manifest.json
RENAMED
|
File without changes
|
{agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/_data/catalogue-scaffold/packs/AGENTS.md
RENAMED
|
File without changes
|
{agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/_data/catalogue-scaffold/packs/README.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/_data/catalogue-scaffold/profiles/AGENTS.md
RENAMED
|
File without changes
|
{agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/_data/catalogue-scaffold/profiles/README.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/_data/plugin-manifest.derived.schema.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/projections/copilot_hooks_json.py
RENAMED
|
File without changes
|
|
File without changes
|
{agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/projections/gemini_command_toml.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/projections/merge_into_agent_json.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/recipes/composite-agents-md.toml
RENAMED
|
File without changes
|
{agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/recipes/composite-marketplace.toml
RENAMED
|
File without changes
|
|
File without changes
|
{agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/recipes/per-pack-apm-package.toml
RENAMED
|
File without changes
|
{agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/recipes/per-pack-claude-plugin.toml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_adapter_claude_code.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_adapter_kiro_alias.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_direct_directory_cleanup.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_lint_agents_md_risk_block.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_pack_schema_install.py
RENAMED
|
File without changes
|
|
File without changes
|
{agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_plugin_manifest_schema.py
RENAMED
|
File without changes
|
{agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_projectable_subset.py
RENAMED
|
File without changes
|
{agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_projections_merge_json.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_self_host_fixture_guard.py
RENAMED
|
File without changes
|
{agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_self_host_recipe_config.py
RENAMED
|
File without changes
|
{agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_shared_libs_projection.py
RENAMED
|
File without changes
|
{agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_shared_prefix_contract.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/build/tests/test_user_libs_projection.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/catalogue_tooling/initialise_self_hosted.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbundle-0.28.0 → agentbundle-0.28.1}/agentbundle/catalogue_tooling/self_host_windows.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|