agentbundle 0.43.1__tar.gz → 0.44.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {agentbundle-0.43.1/agentbundle.egg-info → agentbundle-0.44.0}/PKG-INFO +14 -1
- {agentbundle-0.43.1 → agentbundle-0.44.0}/README-pypi.md +13 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/catalogue-scaffold/manifest.json +1 -0
- agentbundle-0.44.0/agentbundle/_data/catalogue-scaffold/tests/conformance/test_pack_layout_declared_section.py +236 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/pack.schema.json +4 -2
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/commands/install.py +322 -116
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/version.py +1 -1
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/workspace_mcp.py +35 -7
- {agentbundle-0.43.1 → agentbundle-0.44.0/agentbundle.egg-info}/PKG-INFO +14 -1
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle.egg-info/SOURCES.txt +4 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/pyproject.toml +1 -1
- agentbundle-0.44.0/tests/integration/test_install_layout_is_best_effort.py +127 -0
- agentbundle-0.44.0/tests/unit/test_append_layout_section.py +616 -0
- agentbundle-0.44.0/tests/unit/test_layout_bases_anchoring.py +138 -0
- agentbundle-0.44.0/tests/unit/test_pack_layout_section_schema.py +94 -0
- agentbundle-0.43.1/tests/unit/test_append_layout_section.py +0 -238
- {agentbundle-0.43.1 → agentbundle-0.44.0}/MANIFEST.in +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/README.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/__init__.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/__main__.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/__init__.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/adapter.schema.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/adapter.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/agent-plugin-extension-namespaces.schema.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/agent-plugin-extension-namespaces.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/catalogue-index.schema.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/catalogue-scaffold/guides/_shared/reference/catalogue-authoring-standards.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/catalogue-scaffold/guides/_shared/reference/catalogue-ci-contract.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/catalogue-scaffold/packs/AGENTS.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/catalogue-scaffold/packs/CLAUDE.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/catalogue-scaffold/packs/README.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/catalogue-scaffold/packs/_example/.apm/skills/example-skill/SKILL.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/catalogue-scaffold/packs/_example/.apm/skills/example-skill/evals/eval_queries.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/catalogue-scaffold/packs/_example/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/catalogue-scaffold/packs/_example/README.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/catalogue-scaffold/packs/_example/pack.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/catalogue-scaffold/profiles/AGENTS.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/catalogue-scaffold/profiles/CLAUDE.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/catalogue-scaffold/profiles/README.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/catalogue-scaffold/profiles/_example/README.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/catalogue-scaffold/profiles/_example/profile.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/catalogue-scaffold/tests/conformance/test_gemini_admissibility.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/catalogue-scaffold/tests/conformance/test_pack_metadata.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/catalogue-scaffold/tests/conformance/test_shared_library_boundaries.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/catalogue.schema.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/close_work.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/cooling.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/distribution-routes.schema.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/distribution-routes.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/file_safety.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/guide.schema.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/install-defaults.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/install-marker.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/knowledge-captured-observation.schema.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/marketplace-entry.schema.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/plugin-manifest.derived.schema.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/plugin-manifest.schema.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/profile.schema.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/public-contracts.txt +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/skill-manifest.schema.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/skill.schema.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/target-vocab.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/vendor/agent-plugins/1.0.0/LICENSE.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/vendor/agent-plugins/1.0.0/PROVENANCE.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/vendor/agent-plugins/1.0.0/mcp.schema.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/vendor/agent-plugins/1.0.0/plugin.schema.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/work_intake_refresh.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/workspace_status_engine.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/bounded_metadata.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/__init__.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/__main__.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/adapter_root_bins.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/adapters/__init__.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/adapters/_sweep_guard.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/adapters/claude_code.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/adapters/codex.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/adapters/copilot.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/adapters/cursor.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/adapters/gemini.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/adapters/kiro.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/adapters/kiro_cli.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/adapters/kiro_ide.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/contract.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/hook_wiring_rules.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/lint_packs.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/main.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/phase_order.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/projection_io.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/projections/__init__.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/projections/codex_agent_toml.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/projections/copilot_agent_md.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/projections/copilot_hooks_json.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/projections/direct_directory.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/projections/gemini_command_toml.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/projections/hook_id.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/projections/kiro_ide_hook.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/projections/merge_into_agent_json.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/projections/merge_json.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/projections/plugin_hooks.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/projections/user_merge_json.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/recipes/composite-agents-md.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/recipes/composite-marketplace.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/recipes/marketplace.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/recipes/per-pack-agent-plugin.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/recipes/per-pack-apm-package.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/recipes/per-pack-claude-plugin.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/recipes/per-pack-overlay.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/recipes/self-host.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/route_agent_plugin.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/route_apm.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/route_claude_plugins.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/route_lookup.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/scope_rails.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/self_host.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/shared_libs.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/target_resolver.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/user_libs.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/build/validate.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/catalogue.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/__init__.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/archive.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/build.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/config.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/contracts_inspector.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/defaults.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/diagnostics.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/file_safety.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/identity.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/index_generator.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/initialise.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/initialise_self_hosted.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/journey_validator.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/lint.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/manifest.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/okf_discovery.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/package.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/results.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/self_host.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/self_host_windows.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/skill_spec_lint.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/toml_emit.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/verify.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/catalogue_tooling/version_ranges.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/categories.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/cli.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/commands/__init__.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/commands/_common.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/commands/_drop_warning.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/commands/adapt.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/commands/catalogue_build.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/commands/catalogue_contracts.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/commands/catalogue_index.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/commands/catalogue_init.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/commands/catalogue_lint.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/commands/catalogue_package.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/commands/catalogue_self_host.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/commands/catalogue_sync_defaults.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/commands/catalogue_tooling_stub.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/commands/catalogue_verify.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/commands/config.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/commands/diff.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/commands/docs.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/commands/init_state.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/commands/list_installed.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/commands/list_packs.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/commands/list_profiles.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/commands/list_targets.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/commands/oplog_cmd.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/commands/pack_config_cmd.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/commands/pack_evals.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/commands/package_catalogue.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/commands/profile.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/commands/reconcile.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/commands/render.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/commands/scaffold.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/commands/show.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/commands/uninstall.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/commands/upgrade.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/commands/validate.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/config.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/direct_install.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/direct_source.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/direct_source_acquisition.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/direct_source_state.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/direct_validate.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/https_catalogue.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/local_exclude.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/oplog.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/pack_inventory.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/render.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/safety.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/scaffold.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/scope.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/source_defaults.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/statelock.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/system_trust.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/user_config.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle.egg-info/dependency_links.txt +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle.egg-info/entry_points.txt +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle.egg-info/requires.txt +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle.egg-info/top_level.txt +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/conftest.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/setup.cfg +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/templates/install-marker.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/__init__.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/_direct_acquisition.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/_support.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/__init__.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/README.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/claude-code-2.1.226-hook-events.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/claude-code-2.1.228-hook-events.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/core/.apm/agents/bar.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/core/.apm/commands/qux.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/core/.apm/hook-wiring/baz.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/core/.apm/hook-wiring/qux.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/core/.apm/hooks/baz.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/core/.apm/hooks/baz.sh +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/core/.apm/skills/example/SKILL.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/core/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/core/pack.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/governance-extras/.apm/skills/example/SKILL.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/governance-extras/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/governance-extras/pack.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/monorepo-extras/.apm/skills/example/SKILL.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/monorepo-extras/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/monorepo-extras/pack.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/product-documentation/.apm/skills/example/SKILL.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/product-documentation/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/product-documentation/pack.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/user-guide-diataxis/.apm/skills/example/SKILL.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/user-guide-diataxis/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/packs/user-guide-diataxis/pack.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/fixtures/recipes/bogus-target.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_adapter_claude_code.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_adapter_codex.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_adapter_copilot.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_adapter_cursor.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_adapter_gemini.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_adapter_kiro.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_adapter_kiro_alias.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_adapter_kiro_cli.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_adapter_kiro_ide.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_adapter_root_bins_projection.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_agent_boundary_metadata_projection.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_agent_plugin_projection.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_build_ships_seeds.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_contract.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_contract_scope.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_contract_v07.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_contract_v08.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_direct_directory_cleanup.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_distribution_route_contract.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_distribution_route_golden.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_distribution_route_resolution.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_end_to_end_build.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_hook_wiring_rules.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_lint_packs.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_load_pack_hook_wiring_safely.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_pack_schema.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_pack_schema_allowed_adapters.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_pack_schema_install.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_pipeline.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_plugin_hooks.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_plugin_manifest_schema.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_plugin_publication_gates.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_policy_registry_projection.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_projectable_subset.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_projection_io.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_projections_merge_json.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_route_lookup.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_scope_rails.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_security.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_self_host_check.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_self_host_fixture_guard.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_self_host_metadata_policy.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_self_host_recipe_config.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_sequential_implementer_dispatch_projection.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_shared_libs_projection.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_shared_prefix_contract.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_user_libs_projection.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_validate.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/build_pipeline/test_writers_emit_lf.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/conftest.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/contracts/test_agentbundle_show_schema.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/contracts/test_skill_schema.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/adapt/.adapt-discovery.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/adapt/values.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/blank_catalogue/.claude-plugin/marketplace.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/blank_catalogue/catalogue.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/blank_catalogue/packs/.gitkeep +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/blank_catalogue/packs/_example/.apm/skills/example-skill/SKILL.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/blank_catalogue/packs/_example/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/blank_catalogue/packs/_example/README.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/blank_catalogue/packs/_example/evals/eval_queries.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/blank_catalogue/packs/_example/pack.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/blank_catalogue/profiles/.gitkeep +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/blank_catalogue/profiles/_example/README.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/blank_catalogue/profiles/_example/profile.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/brownfield/values.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/brownfield-adapt/AGENTS.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/brownfield-adapt/AGENTS.upstream.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/brownfield-adapt/DESIGN.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/brownfield-adapt/EXPECTED_TREE.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/brownfield-adapt/docs/CHARTER.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/brownfield-adapt/docs/guides/how-to/index.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/brownfield-adapt/docs/howto/getting-started.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/brownfield-adapt-expected/AGENTS.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/brownfield-adapt-expected/docs/CHARTER.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/brownfield-adapt-user-home/.agentbundle/.adapt-discovery.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/brownfield-adapt-user-home/.agentbundle/state.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/catalogue_wave4/catalogue.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/catalogue_wave4/packs/pack-with-journey/.apm/hook-wiring/example.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/catalogue_wave4/packs/pack-with-journey/.apm/skills/example-skill/SKILL.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/catalogue_wave4/packs/pack-with-journey/.apm/skills/example-skill/scripts/run.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/catalogue_wave4/packs/pack-with-journey/JOURNEY.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/catalogue_wave4/packs/pack-with-journey/pack.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/catalogue_wave4/packs/pack-without-journey/pack.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/catalogue_wave4/profiles/test-profile.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/cognitive-load-hosts.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/creds/skills/argv-flag/SKILL.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/creds/skills/argv-flag/scripts/cli.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/creds/skills/argv-flag-derived/SKILL.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/creds/skills/argv-flag-derived/scripts/cli.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/creds/skills/argv-flag-normalised/SKILL.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/creds/skills/argv-flag-normalised/scripts/cli.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/creds/skills/conforming/SKILL.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/creds/skills/conforming/scripts/cli.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/creds/skills/dotfile-grep/SKILL.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/creds/skills/dotfile-grep/scripts/leak.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/creds/skills/dotfile-with-optout/SKILL.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/creds/skills/dotfile-with-optout/scripts/legit.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/creds/skills/mcp-server-headers/SKILL.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/creds/skills/mcp-server-headers/scripts/cli.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/creds/skills/missing-dont-block/SKILL.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/direct/ac35_corpus_verdicts.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/direct/golden_state_0_5.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/distribution-routes/golden.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/distribution-routes/witness-packs/portable/.apm/skills/example/SKILL.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/distribution-routes/witness-packs/portable/pack.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/external_catalogue/.claude-plugin/marketplace.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/external_catalogue/AGENTS.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/external_catalogue/LICENSE-APACHE +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/external_catalogue/LICENSE-MIT +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/external_catalogue/agentbundle/_data/install-defaults.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/external_catalogue/catalogue.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/external_catalogue/packs/alpha/.apm/skills/example/SKILL.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/external_catalogue/packs/alpha/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/external_catalogue/packs/alpha/pack.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/external_catalogue/packs/alpha/seeds/AGENTS.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/external_catalogue/packs/beta/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/external_catalogue/packs/beta/pack.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/external_catalogue/profiles/example.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/install/catalogue/packs/alpha/.apm/agents/helper.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/install/catalogue/packs/alpha/.apm/commands/cmd.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/install/catalogue/packs/alpha/.apm/hook-wiring/run.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/install/catalogue/packs/alpha/.apm/hooks/run.sh +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/install/catalogue/packs/alpha/.apm/skills/example/SKILL.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/install/catalogue/packs/alpha/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/install/catalogue/packs/alpha/pack.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/kiro_ide_hook/ask_agent_basic.kiro.hook +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/kiro_ide_hook/run_command_with_placeholder.kiro.hook +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/lint_packs/clean/pack.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/lint_packs/clean/seeds/README.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/list-installed/golden_120col.txt +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/list-installed/golden_80col.txt +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/list_packs/catalogue/packs/alpha/pack.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/list_packs/catalogue/packs/beta/pack.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/local_scope/catalogue/packs/local-test-pack/.apm/skills/local-test/SKILL.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/local_scope/catalogue/packs/local-test-pack/pack.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/packs/cc-user-hooks/.apm/hook-wiring/on-prompt.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/packs/cc-user-hooks/.apm/hooks/on-prompt.sh +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/packs/cc-user-hooks/pack.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/packs/kiro-repo-hooks/.apm/agents/reviewer.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/packs/kiro-repo-hooks/.apm/hook-wiring/on-spawn.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/packs/kiro-repo-hooks/.apm/hooks/on-spawn.sh +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/packs/kiro-repo-hooks/pack.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/packs/kiro-user-hooks/.apm/agents/reviewer.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/packs/kiro-user-hooks/.apm/hook-wiring/on-spawn.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/packs/kiro-user-hooks/.apm/hooks/on-spawn.sh +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/packs/kiro-user-hooks/pack.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/packs/malformed-kiro-missing-attach/.apm/agents/reviewer.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/packs/malformed-kiro-missing-attach/.apm/hook-wiring/on-spawn.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/packs/malformed-kiro-missing-attach/.apm/hooks/on-spawn.sh +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/packs/malformed-kiro-missing-attach/pack.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/packs/malformed-kiro-pascal-events/.apm/agents/reviewer.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/packs/malformed-kiro-pascal-events/.apm/hook-wiring/on-spawn.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/packs/malformed-kiro-pascal-events/.apm/hooks/on-spawn.sh +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/packs/malformed-kiro-pascal-events/pack.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/packs/malformed-kiro-unknown-agent/.apm/agents/reviewer.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/packs/malformed-kiro-unknown-agent/.apm/hook-wiring/on-spawn.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/packs/malformed-kiro-unknown-agent/.apm/hooks/on-spawn.sh +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/packs/malformed-kiro-unknown-agent/pack.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/scaffold/test-pack/seeds/AGENTS.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/scaffold/test-pack/seeds/_agents-footer.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/scaffold/test-pack/seeds/docs/CHARTER.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/show_contract/agentbundle-show.schema.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/show_contract/catalogue.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/show_contract/installed_state.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/agents/reviewer.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/commands/deploy.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/hook-wiring/pre-commit.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/hooks/lint.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/hooks/pre-commit.sh +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/skills/work-loop/SKILL.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v1/packs/core/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v1/packs/core/pack.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/agents/reviewer.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/commands/deploy.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/hook-wiring/pre-commit.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/hooks/lint.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/hooks/pre-commit.sh +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/skills/work-loop/SKILL.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v2/packs/core/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v2/packs/core/pack.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/agents/reviewer.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/commands/deploy.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/hook-wiring/pre-commit.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/hooks/lint.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/hooks/pre-commit.sh +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/skills/work-loop/SKILL.md +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v3/packs/core/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/upgrade/catalogue_v3/packs/core/pack.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/validate/bad_recipe_pack/pack.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/validate/malformed_pack/pack.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/validate/valid_pack/pack.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/fixtures/validate/version_mismatch_pack/pack.toml +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/__init__.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_adapt_cmd.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_adapt_dual_scope.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_adapt_preflight_detection.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_adapt_schema_migration.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_apm_install_route.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_blank_catalogue.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_brownfield_adapt_end_to_end.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_brownfield_round_trip.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_brownfield_user_home_fixture.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_build_check_drift_gates.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_build_derivation_apm.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_build_derivation_claude_plugins.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_catalogue_init.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_catalogue_verify_adapter_compat.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_catalogue_verify_dependencies.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_catalogue_verify_external_portability.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_catalogue_verify_fixture_checks.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_catalogue_verify_marketplace.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_catalogue_verify_output_drift.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_catalogue_verify_package_preflight.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_catalogue_verify_plugin_path.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_catalogue_verify_profile_schema.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_catalogue_verify_step1.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_catalogue_wave4_index_generator.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_catalogue_wave4_integration.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_catalogue_wave4_journey_validator.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_catalogue_wave4_schema.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_cc_user_hooks_fixture.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_claude_plugins_install_route.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_config_cascade.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_credential_brokers_pack_install.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_credentials_wheel.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_direct_install.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_discovery_schema_cross_consumer.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_editable_source_detection.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_fixtures_validate.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_hook_wiring_ingress.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_install_adapt_chain.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_install_cmd.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_install_converters_user_scope.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_install_copilot_full_parity.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_install_core_smoke.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_install_default_source.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_install_dependencies_gate.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_install_dropped_primitives_warning.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_install_dual_scope.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_install_orphan_reshape.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_install_pack_metadata_shape.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_install_profile.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_install_profile_live.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_install_repo_scope_per_adapter.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_install_research_user_scope.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_install_seed_delivery.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_install_session_start_wiring.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_install_upgrade_offer.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_install_user_hooks.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_install_user_scope_allowed_adapters.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_kiro_ide_hook_e2e.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_kiro_repo_hooks_fixture.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_kiro_user_hooks_fixture.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_list_packs_cmd.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_local_scope_install.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_marketplace_entry_validation.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_marketplace_manifest_regression.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_multi_pack_install.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_orphan_cleanup_respects_foreign_state.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_plugin_route_membership.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_recommends_cross_scope.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_reconcile.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_reserved_path_filter.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_scaffold_projection.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_self_host_schema_migration.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_self_host_sweep_respects_state.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_shared_prefix_coexistence.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_show_cmd.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_tier_invariants.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_trust_fallback_tls.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_uninstall_cmd.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_uninstall_user_hooks.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_upgrade_attach_to_agent.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_upgrade_cmd.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_upgrade_user_hooks.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_version_gate_matrix.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_workspace_mcp_git_fsm.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/integration/test_zipapp.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/performance/__init__.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/performance/test_direct_family2_budget_cost.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/test_adapter_permissions_projection.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/test_workspace_mcp_elicit.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/test_workspace_mcp_event_bridge.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/test_workspace_mcp_git.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/test_workspace_mcp_lifecycle.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/test_workspace_mcp_stdin.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/test_workspace_mcp_tools.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/__init__.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_adapt_discovery_schema.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_adapter_symlink_policy.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_architect_readme_install_command.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_catalogue_ci_contract.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_catalogue_curation_deps.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_catalogue_init_cli_self_hosted.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_catalogue_pack_defaults.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_catalogue_self_hosted_export_removal.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_catalogue_skill_spec_lint.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_catalogue_tooling_archive.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_catalogue_tooling_build.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_catalogue_tooling_defaults.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_catalogue_tooling_file_safety.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_catalogue_tooling_foundation.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_catalogue_tooling_identity.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_catalogue_tooling_init.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_catalogue_tooling_lint.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_catalogue_tooling_package.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_catalogue_tooling_self_host.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_catalogue_tooling_self_hosted_init.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_catalogue_tooling_source_package.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_catalogue_tooling_verify.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_catalogue_trust_fallback.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_catalogue_wave2_schema.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_catalogue_wave2_validation.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_catalogue_wave3_contracts_cli.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_catalogue_wave3_contracts_inspector.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_catalogue_wave3_init_nextsteps.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_catalogue_wave3_offline_navigation.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_cli_catalogue_optional.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_cli_help_lists_config.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_cli_list_targets_help.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_cli_path_normalisation.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_cli_profile_surface.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_cli_scope_flags.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_codex_agent_toml.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_codex_projection_modes.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_cognitive_load_seed_contract.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_collect_tree_symlinks.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_common_classify_seeds.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_config.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_config_cmd.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_configured_adapter.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_confirm_helper.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_contract_parity.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_contract_v0_3_schema.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_copilot_agent_md.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_copilot_hooks_json.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_copilot_user_scope_wiring.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_credbroker_lint_hardening.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_dependencies_batch.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_diff_cmd.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_direct_admission.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_direct_architecture_controls.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_direct_diagnostics.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_direct_lifecycle_facts.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_direct_source_acquisition.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_direct_source_state.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_direct_upgrade.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_direct_validate.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_footprint_ownership.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_https_catalogue.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_init_state_cmd.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_install_argparse_adapter_flag.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_install_argparse_emit_install_routes.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_install_defaults_preferred_adapter.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_install_dropped_primitives_warning.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_install_event_dropped_wirings.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_install_first_value_handoff.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_install_force_help.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_install_inband_detection.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_install_messages.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_install_messages_repo_scope.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_install_refusal_ordering.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_install_state_provenance.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_kiro_ide_hook_projection.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_kiro_ide_hook_rail.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_kiro_ide_hook_schema.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_lint_agent_artifacts_metadata_auth.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_list_installed_cmd.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_list_installed_status.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_list_targets_cmd.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_local_exclude_git_cache.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_local_scope_schema.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_local_scope_t10_uninstall.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_local_scope_t12_show.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_local_scope_t2_resolve.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_local_scope_t3_config.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_local_scope_t4_state_path.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_local_scope_t5_list_installed.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_local_scope_t7_install_gates.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_local_scope_t8_install.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_local_scope_t9_exclude.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_marker_schema_version_parity.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_merge_into_agent_json.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_multi_adapter_disambiguator.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_nested_symlink_hardening.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_okf_discovery.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_org_bootstrap.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_orphan_sweep_guards.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_pack_config_api.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_pack_inventory.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_package_catalogue.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_packstate_source_provenance.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_pipeline_phase_order.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_plugin_scope_filter.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_profile_reader.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_render.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_render_cmd.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_render_table.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_resolve_state_path.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_resolve_target_adapter_user_config.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_resolve_user_scope_target_adapter.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_route_surface_parity.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_safety.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_safety_repo_scope_prefixes.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_safety_scan_per_pack_scoping.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_scaffold_cmd.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_scope.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_self_host_windows.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_shared_prefix_disclosure.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_source_conflict_guard.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_source_defaults.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_state_v01_refuse_write.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_state_v02.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_state_v0_4_schema.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_statelock.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_statelock_hardening.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_system_trust.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_target_resolver.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_toml_emitters.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_unresolved_markers.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_upgrade_bulk_all.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_upgrade_recap.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_upgrade_source_inference.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_user_config_io.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_user_config_isolation.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_user_config_path.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_user_config_source.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_user_merge_json.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_validate_attach_to_agent.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_validate_categories.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_validate_cmd.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_validate_hook_wiring_per_file_compatibility.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_values_from_shapes.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_version.py +0 -0
- {agentbundle-0.43.1 → agentbundle-0.44.0}/tests/unit/test_windows_direct_suite_registration.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agentbundle
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.44.0
|
|
4
4
|
Summary: npm for your coding agent. Install packs of skills, subagents, and hooks into any repo, for every major agent.
|
|
5
5
|
Author-email: eugenelim <eugenelim@users.noreply.github.com>
|
|
6
6
|
License-Expression: Apache-2.0 OR MIT
|
|
@@ -34,6 +34,19 @@ python -m pip install agentbundle
|
|
|
34
34
|
|
|
35
35
|
Requires Python 3.11+. Runs on macOS, Linux, and Windows.
|
|
36
36
|
|
|
37
|
+
## What's new in 0.44.0
|
|
38
|
+
|
|
39
|
+
Installing a pack now adds its default output location to an
|
|
40
|
+
`agentbundle-layout.toml` you already keep. That step has existed for several
|
|
41
|
+
releases and never wrote anything: it looked for a manifest key no pack
|
|
42
|
+
declares, and named the table after the pack while every skill reads a
|
|
43
|
+
differently-named section. A pack now declares the section it writes.
|
|
44
|
+
|
|
45
|
+
The append also stops rewriting your file. It adds one table and leaves every
|
|
46
|
+
other byte alone — comments, key order, quoting style, line endings, and any
|
|
47
|
+
key it does not recognise — and the file keeps its permissions. A layout
|
|
48
|
+
problem is reported and the install finishes; it no longer aborts.
|
|
49
|
+
|
|
37
50
|
## What's new in 0.43.1
|
|
38
51
|
|
|
39
52
|
`agentbundle catalogue init` now writes `packs/CLAUDE.md` and
|
|
@@ -14,6 +14,19 @@ python -m pip install agentbundle
|
|
|
14
14
|
|
|
15
15
|
Requires Python 3.11+. Runs on macOS, Linux, and Windows.
|
|
16
16
|
|
|
17
|
+
## What's new in 0.44.0
|
|
18
|
+
|
|
19
|
+
Installing a pack now adds its default output location to an
|
|
20
|
+
`agentbundle-layout.toml` you already keep. That step has existed for several
|
|
21
|
+
releases and never wrote anything: it looked for a manifest key no pack
|
|
22
|
+
declares, and named the table after the pack while every skill reads a
|
|
23
|
+
differently-named section. A pack now declares the section it writes.
|
|
24
|
+
|
|
25
|
+
The append also stops rewriting your file. It adds one table and leaves every
|
|
26
|
+
other byte alone — comments, key order, quoting style, line endings, and any
|
|
27
|
+
key it does not recognise — and the file keeps its permissions. A layout
|
|
28
|
+
problem is reported and the install finishes; it no longer aborts.
|
|
29
|
+
|
|
17
30
|
## What's new in 0.43.1
|
|
18
31
|
|
|
19
32
|
`agentbundle catalogue init` now writes `packs/CLAUDE.md` and
|
{agentbundle-0.43.1 → agentbundle-0.44.0}/agentbundle/_data/catalogue-scaffold/manifest.json
RENAMED
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
"profiles/_example/README.md": "164494df049ddce3e57cb44ed604cb3d39be0a6ec2072e609ea3fa4bbfc74c72",
|
|
17
17
|
"profiles/_example/profile.toml": "68af18cf50fa0327a9776b029c92bb1cf82710c649691b3ac889eb8537b8eac7",
|
|
18
18
|
"tests/conformance/test_gemini_admissibility.py": "8b337da9272823aed2cb22041b3f9fd27549f075f28b9817efd5be8f8c5bb948",
|
|
19
|
+
"tests/conformance/test_pack_layout_declared_section.py": "1e03e04b995bd3f3cd2e6362c07d05514d3fe995c0fbe59045e3cc11a1e787a0",
|
|
19
20
|
"tests/conformance/test_pack_metadata.py": "8ea175b88cc6e10ba10cda87676fc225ee2b968d710c8e6ab05fb20e31ec978a",
|
|
20
21
|
"tests/conformance/test_shared_library_boundaries.py": "5e07783459336e657a355f43aa5a9cf6c138603624daec258ecc0fa3d74239c3"
|
|
21
22
|
},
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
"""A pack's declared layout section must be one it documents (spec AC6).
|
|
2
|
+
|
|
3
|
+
`agentbundle install` appends `[<section>] output_dir = <output_dir>` to an
|
|
4
|
+
adopter's `agentbundle-layout.toml`, taking both values from the pack manifest.
|
|
5
|
+
Every consuming skill then reads that section by prose instruction in its own
|
|
6
|
+
`SKILL.md` — no skill calls Python, so nothing at runtime can reconcile a
|
|
7
|
+
manifest that names a section the pack's own documentation does not.
|
|
8
|
+
|
|
9
|
+
That is exactly how the original defect survived two releases: the writer and
|
|
10
|
+
the readers were each exercised against their own idea of the shape. So this
|
|
11
|
+
check derives **both** sides from the repository and compares them. It carries
|
|
12
|
+
no list of expected section names; a list is the hand-maintained table the
|
|
13
|
+
design rejects.
|
|
14
|
+
|
|
15
|
+
Matching the *pair* rather than the section alone is what makes the check
|
|
16
|
+
discriminate. A pack may legitimately document several sections: one per
|
|
17
|
+
output tree it owns, plus any it only *reads* from a sibling pack. Section
|
|
18
|
+
membership alone would then admit a declaration that crosses two of them — a
|
|
19
|
+
section from one documented pair carried on the base from another — which
|
|
20
|
+
installs a default under a section whose readers resolve somewhere else. No
|
|
21
|
+
document describes that combination, and the pair rule is what rejects it.
|
|
22
|
+
|
|
23
|
+
This file is pack-portable by rule: it derives every pack and every pair from
|
|
24
|
+
the tree rather than naming any. It also ships — `catalogue init` writes it
|
|
25
|
+
into an adopter's catalogue, which may hold no packs, or packs that declare no
|
|
26
|
+
layout — so every tree-derived case skips when its evidence is absent, and the
|
|
27
|
+
rule's own discrimination is proven against synthetic input that is always
|
|
28
|
+
present and can never be vacuous.
|
|
29
|
+
|
|
30
|
+
That the *source* catalogue actually supplies that evidence is a claim about
|
|
31
|
+
this repository, not about every catalogue, so it lives in `tests/roster/`,
|
|
32
|
+
which does not ship. Without it a mis-rooted glob here would skip rather than
|
|
33
|
+
fail.
|
|
34
|
+
"""
|
|
35
|
+
|
|
36
|
+
from __future__ import annotations
|
|
37
|
+
|
|
38
|
+
import re
|
|
39
|
+
import tomllib
|
|
40
|
+
from pathlib import Path
|
|
41
|
+
|
|
42
|
+
import pytest
|
|
43
|
+
|
|
44
|
+
REPO_ROOT = Path(__file__).resolve().parents[2]
|
|
45
|
+
PACKS_DIR = REPO_ROOT / "packs"
|
|
46
|
+
|
|
47
|
+
# `[section]` immediately followed by an `output_dir = "..."` assignment, inside
|
|
48
|
+
# one fenced block. Intervening comment lines are allowed; a blank line is not,
|
|
49
|
+
# so two unrelated examples cannot be read as one pair.
|
|
50
|
+
_PAIR = re.compile(
|
|
51
|
+
r"^\[([a-z0-9][a-z0-9-]*)\]\n(?:#[^\n]*\n)*output_dir = \"([^\"]+)\"",
|
|
52
|
+
re.MULTILINE,
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
def _declaring_packs() -> list[tuple[str, str, str, str]]:
|
|
57
|
+
"""(pack, scope, section, output_dir) for every declared layout scope.
|
|
58
|
+
|
|
59
|
+
Both scopes, because the installer honours `[pack.layout.user]` too. No
|
|
60
|
+
shipped pack declares one today, but this file ships into adopter
|
|
61
|
+
catalogues where one could — and a user-scope pair no document describes
|
|
62
|
+
would otherwise pass unseen.
|
|
63
|
+
"""
|
|
64
|
+
found = []
|
|
65
|
+
for manifest in sorted(PACKS_DIR.glob("*/pack.toml")):
|
|
66
|
+
layout = (
|
|
67
|
+
tomllib.loads(manifest.read_text(encoding="utf-8"))
|
|
68
|
+
.get("pack", {})
|
|
69
|
+
.get("layout", {})
|
|
70
|
+
)
|
|
71
|
+
for scope in ("repo", "user"):
|
|
72
|
+
table = layout.get(scope)
|
|
73
|
+
if not table:
|
|
74
|
+
continue
|
|
75
|
+
section, output_dir = table.get("section"), table.get("output_dir")
|
|
76
|
+
if section is None and output_dir is None:
|
|
77
|
+
continue
|
|
78
|
+
found.append((manifest.parent.name, scope, section, output_dir))
|
|
79
|
+
return found
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
def _is_repo_scope_base(base: str) -> bool:
|
|
83
|
+
"""A repo-scope base is relative; a user-scope base is absolute.
|
|
84
|
+
|
|
85
|
+
This is the anchoring rule the layout contract already states — a
|
|
86
|
+
repo-root file's value is repo-root-relative, a user-profile file's must
|
|
87
|
+
be an explicit absolute path. Reading scope off the value keeps the check
|
|
88
|
+
from depending on how a fenced example is commented.
|
|
89
|
+
"""
|
|
90
|
+
return not base.startswith(("/", "~"))
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
def _documented_pairs(pack: str, *, repo_scope: bool = True) -> set[tuple[str, str]]:
|
|
94
|
+
"""Every (section, base) pair this pack's docs state for one scope.
|
|
95
|
+
|
|
96
|
+
Scope matters: a pack's reference docs carry both a repo-scope and a
|
|
97
|
+
user-scope example for the same section, so unioning them would let a
|
|
98
|
+
repo-scope declaration be validated by the user-scope base — a pair no
|
|
99
|
+
reader of the repo file would ever resolve.
|
|
100
|
+
"""
|
|
101
|
+
pairs: set[tuple[str, str]] = set()
|
|
102
|
+
for doc in (PACKS_DIR / pack).rglob("references/agentbundle-layout.md"):
|
|
103
|
+
pairs |= {
|
|
104
|
+
(section, base)
|
|
105
|
+
for section, base in _PAIR.findall(doc.read_text(encoding="utf-8"))
|
|
106
|
+
if _is_repo_scope_base(base) is repo_scope
|
|
107
|
+
}
|
|
108
|
+
return pairs
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
def _is_admitted(
|
|
112
|
+
section: str, output_dir: str, documented: set[tuple[str, str]]
|
|
113
|
+
) -> bool:
|
|
114
|
+
"""The admission decision, in one place.
|
|
115
|
+
|
|
116
|
+
Both the tree-derived case and the discrimination proof call this, so a
|
|
117
|
+
weakening — to section membership alone, say — fails the proof instead of
|
|
118
|
+
passing it.
|
|
119
|
+
"""
|
|
120
|
+
return (section, output_dir) in documented
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
def test_the_admission_rule_rejects_a_crossed_declaration() -> None:
|
|
124
|
+
"""A section from one documented pair, carried on another's base.
|
|
125
|
+
|
|
126
|
+
Asserted through `_is_admitted`, the same predicate the tree-derived case
|
|
127
|
+
uses. Weakening that predicate to section membership admits the crossing
|
|
128
|
+
and turns this red.
|
|
129
|
+
"""
|
|
130
|
+
documented = {("alpha", "one/alpha"), ("beta", "two/beta")}
|
|
131
|
+
|
|
132
|
+
assert _is_admitted("alpha", "one/alpha", documented)
|
|
133
|
+
assert _is_admitted("beta", "two/beta", documented)
|
|
134
|
+
assert not _is_admitted("alpha", "two/beta", documented)
|
|
135
|
+
assert not _is_admitted("beta", "one/alpha", documented)
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
@pytest.mark.parametrize("pack,scope,section,output_dir", _declaring_packs())
|
|
139
|
+
def test_declared_pair_is_documented_by_the_pack( # noqa: D103
|
|
140
|
+
pack: str, scope: str, section: str | None, output_dir: str | None
|
|
141
|
+
) -> None:
|
|
142
|
+
assert section, f"{pack} declares a {scope} layout without a section"
|
|
143
|
+
assert output_dir, f"{pack} declares a {scope} layout without an output_dir"
|
|
144
|
+
|
|
145
|
+
documented = _documented_pairs(pack, repo_scope=scope == "repo")
|
|
146
|
+
assert documented, f"{pack} declares a layout but documents no section"
|
|
147
|
+
assert _is_admitted(section, output_dir, documented), (
|
|
148
|
+
f"{pack} declares ({section!r}, {output_dir!r}); its reference docs "
|
|
149
|
+
f"document {sorted(documented)}. The installer writes the declared "
|
|
150
|
+
f"pair, so a pair no document describes installs a default the pack's "
|
|
151
|
+
f"own skills will not read."
|
|
152
|
+
)
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
def _crossed_pairs(pairs: set[tuple[str, str]]) -> set[tuple[str, str]]:
|
|
156
|
+
"""Every (section, base) formed from two *different* documented pairs."""
|
|
157
|
+
return {
|
|
158
|
+
(one_section, other_base)
|
|
159
|
+
for one_section, one_base in pairs
|
|
160
|
+
for other_section, other_base in pairs
|
|
161
|
+
if one_section != other_section and one_base != other_base
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
def test_the_rule_rejects_a_crossed_pair() -> None:
|
|
166
|
+
"""The rule must discriminate, proven without depending on the tree.
|
|
167
|
+
|
|
168
|
+
Section membership alone would admit a declaration that takes its section
|
|
169
|
+
from one documented pair and its base from another. This is the property
|
|
170
|
+
that makes the pair rule worth having, so it is asserted against synthetic
|
|
171
|
+
input rather than against whichever packs happen to document two pairs
|
|
172
|
+
today — on an empty catalogue that evidence would simply be absent, and
|
|
173
|
+
the guarantee would silently stop being checked.
|
|
174
|
+
"""
|
|
175
|
+
documented = {("alpha", "one/alpha"), ("beta", "two/beta")}
|
|
176
|
+
crossed = _crossed_pairs(documented)
|
|
177
|
+
|
|
178
|
+
assert crossed == {("alpha", "two/beta"), ("beta", "one/alpha")}
|
|
179
|
+
assert not (crossed & documented), "a crossed pair must never be documented"
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
def test_a_repo_declaration_is_not_validated_by_a_user_scope_example() -> None:
|
|
183
|
+
"""The scope split must discriminate, not merely pass on today's tree.
|
|
184
|
+
|
|
185
|
+
A pack documenting the same section at both scopes offers two bases. If
|
|
186
|
+
the check unioned them, a repo-scope manifest carrying the user-scope base
|
|
187
|
+
would pass while naming a path no reader of the repo file resolves.
|
|
188
|
+
"""
|
|
189
|
+
checked = 0
|
|
190
|
+
for pack, _scope, _section, _base in _declaring_packs():
|
|
191
|
+
repo_pairs = _documented_pairs(pack, repo_scope=True)
|
|
192
|
+
user_pairs = _documented_pairs(pack, repo_scope=False)
|
|
193
|
+
for section, user_base in user_pairs:
|
|
194
|
+
if any(s == section for s, _ in repo_pairs):
|
|
195
|
+
assert (section, user_base) not in repo_pairs
|
|
196
|
+
checked += 1
|
|
197
|
+
if not checked:
|
|
198
|
+
pytest.skip("no pack here documents one section at both scopes")
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
def test_no_pack_documents_a_crossing_of_its_own_pairs() -> None:
|
|
202
|
+
"""The same property over the real tree, where there is one."""
|
|
203
|
+
for pack, _scope, _section, _base in _declaring_packs():
|
|
204
|
+
pairs = _documented_pairs(pack)
|
|
205
|
+
assert not (_crossed_pairs(pairs) & pairs), (
|
|
206
|
+
f"{pack} documents a pair and also a crossing of it, so the rule "
|
|
207
|
+
"cannot discriminate for that pack"
|
|
208
|
+
)
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
def test_every_reference_doc_agrees_with_its_pack_on_the_base() -> None:
|
|
212
|
+
"""AC6 admits a pair documented in *one* doc; this requires all of them.
|
|
213
|
+
|
|
214
|
+
A pack with several reference pages can otherwise regress one of them to a
|
|
215
|
+
base the installer does not write, and stay green — the adopter reading
|
|
216
|
+
that page gets a location nothing populates.
|
|
217
|
+
"""
|
|
218
|
+
walked = 0
|
|
219
|
+
for pack, scope, section, output_dir in _declaring_packs():
|
|
220
|
+
if scope != "repo":
|
|
221
|
+
continue
|
|
222
|
+
for doc in sorted((PACKS_DIR / pack).rglob("references/agentbundle-layout.md")):
|
|
223
|
+
pairs = {
|
|
224
|
+
(s, b)
|
|
225
|
+
for s, b in _PAIR.findall(doc.read_text(encoding="utf-8"))
|
|
226
|
+
if s == section and _is_repo_scope_base(b)
|
|
227
|
+
}
|
|
228
|
+
if not pairs:
|
|
229
|
+
continue # this page documents another section, or user scope
|
|
230
|
+
walked += 1
|
|
231
|
+
assert pairs == {(section, output_dir)}, (
|
|
232
|
+
f"{doc.relative_to(REPO_ROOT)} documents {sorted(pairs)} for "
|
|
233
|
+
f"[{section}] while {pack} declares {output_dir!r}"
|
|
234
|
+
)
|
|
235
|
+
if not walked:
|
|
236
|
+
pytest.skip("no reference doc here documents a declared repo-scope section")
|
|
@@ -248,7 +248,8 @@
|
|
|
248
248
|
"properties": {
|
|
249
249
|
"parent": {"type": "string"},
|
|
250
250
|
"template": {"type": "string"},
|
|
251
|
-
"output_dir": {"type": "string"}
|
|
251
|
+
"output_dir": {"type": "string"},
|
|
252
|
+
"section": {"type": "string", "pattern": "^[a-z0-9][a-z0-9-]*$"}
|
|
252
253
|
}
|
|
253
254
|
},
|
|
254
255
|
"user": {
|
|
@@ -257,7 +258,8 @@
|
|
|
257
258
|
"properties": {
|
|
258
259
|
"parent": {"type": "string"},
|
|
259
260
|
"template": {"type": "string"},
|
|
260
|
-
"output_dir": {"type": "string"}
|
|
261
|
+
"output_dir": {"type": "string"},
|
|
262
|
+
"section": {"type": "string", "pattern": "^[a-z0-9][a-z0-9-]*$"}
|
|
261
263
|
}
|
|
262
264
|
}
|
|
263
265
|
}
|