agentbundle 0.53.0__tar.gz → 0.53.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.53.0/agentbundle.egg-info → agentbundle-0.53.1}/PKG-INFO +11 -1
- {agentbundle-0.53.0 → agentbundle-0.53.1}/README-pypi.md +10 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/initialise.py +56 -3
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/package.py +13 -1
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/catalogue_sync.py +4 -3
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/version.py +1 -1
- {agentbundle-0.53.0 → agentbundle-0.53.1/agentbundle.egg-info}/PKG-INFO +11 -1
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle.egg-info/SOURCES.txt +2 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/pyproject.toml +1 -1
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_catalogue_init.py +6 -1
- agentbundle-0.53.1/tests/integration/test_catalogue_init_packageable.py +165 -0
- agentbundle-0.53.1/tests/unit/test_catalogue_package_include_diagnostic.py +154 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/MANIFEST.in +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/README.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/__init__.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/__main__.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/__init__.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/adapter.schema.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/adapter.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/agent-plugin-extension-namespaces.schema.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/agent-plugin-extension-namespaces.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-index.schema.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/guides/_shared/reference/catalogue-authoring-standards.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/guides/_shared/reference/catalogue-ci-contract.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/manifest.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/packs/AGENTS.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/packs/CLAUDE.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/packs/README.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/packs/_example/.apm/skills/example-skill/SKILL.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/packs/_example/.apm/skills/example-skill/evals/eval_queries.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/packs/_example/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/packs/_example/README.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/packs/_example/pack.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/profiles/AGENTS.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/profiles/CLAUDE.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/profiles/README.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/profiles/_example/README.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/profiles/_example/profile.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/tests/conformance/test_gemini_admissibility.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/tests/conformance/test_pack_layout_declared_section.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/tests/conformance/test_pack_metadata.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/tests/conformance/test_shared_library_boundaries.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue.schema.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/close_work.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/cooling.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/distribution-routes.schema.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/distribution-routes.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/file_safety.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/guide.schema.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/install-defaults.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/install-marker.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/knowledge-captured-observation.schema.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/marketplace-entry.schema.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/pack.schema.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/plugin-manifest.derived.schema.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/plugin-manifest.schema.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/profile.schema.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/public-contracts.txt +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/skill-manifest.schema.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/skill.schema.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/target-vocab.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/vendor/agent-plugins/1.0.0/LICENSE.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/vendor/agent-plugins/1.0.0/PROVENANCE.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/vendor/agent-plugins/1.0.0/mcp.schema.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/vendor/agent-plugins/1.0.0/plugin.schema.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/work_intake_refresh.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/workspace_status_engine.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/workspace_status_prune.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/bounded_metadata.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/__init__.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/__main__.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/adapter_root_bins.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/adapters/__init__.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/adapters/_sweep_guard.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/adapters/claude_code.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/adapters/codex.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/adapters/copilot.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/adapters/cursor.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/adapters/gemini.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/adapters/kiro.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/adapters/kiro_cli.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/adapters/kiro_ide.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/contract.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/hook_wiring_rules.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/lint_packs.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/main.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/phase_order.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/projection_io.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/projections/__init__.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/projections/codex_agent_toml.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/projections/copilot_agent_md.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/projections/copilot_hooks_json.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/projections/direct_directory.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/projections/gemini_command_toml.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/projections/hook_id.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/projections/kiro_ide_hook.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/projections/merge_into_agent_json.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/projections/merge_json.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/projections/plugin_hooks.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/projections/user_merge_json.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/recipes/composite-agents-md.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/recipes/composite-marketplace.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/recipes/marketplace.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/recipes/per-pack-agent-plugin.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/recipes/per-pack-apm-package.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/recipes/per-pack-claude-plugin.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/recipes/per-pack-overlay.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/recipes/self-host.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/route_agent_plugin.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/route_apm.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/route_claude_plugins.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/route_lookup.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/scope_rails.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/self_host.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/shared_libs.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/target_resolver.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/user_libs.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/build/validate.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_fetch/__init__.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_fetch/direct_http.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_fetch/jfrog_cli.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_fetch/models.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/__init__.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/archive.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/build.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/config.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/contracts_inspector.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/defaults.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/diagnostics.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/file_safety.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/identity.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/index_generator.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/initialise_self_hosted.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/journey_validator.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/lint.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/manifest.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/okf_discovery.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/results.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/self_host.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/self_host_windows.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/skill_spec_lint.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/toml_emit.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/verify.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/catalogue_tooling/version_ranges.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/categories.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/cli.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/__init__.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/_common.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/_drop_warning.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/adapt.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/catalogue_build.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/catalogue_contracts.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/catalogue_index.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/catalogue_init.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/catalogue_lint.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/catalogue_package.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/catalogue_self_host.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/catalogue_sync_defaults.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/catalogue_tooling_stub.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/catalogue_verify.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/config.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/diff.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/docs.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/init_state.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/install.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/list_installed.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/list_packs.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/list_profiles.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/list_targets.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/oplog_cmd.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/pack_config_cmd.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/pack_evals.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/package_catalogue.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/profile.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/reconcile.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/render.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/scaffold.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/show.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/uninstall.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/upgrade.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/commands/validate.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/config.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/direct_install.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/direct_source.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/direct_source_acquisition.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/direct_source_state.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/direct_validate.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/https_catalogue.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/local_exclude.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/oplog.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/pack_inventory.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/render.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/safety.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/scaffold.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/scope.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/source_defaults.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/statelock.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/system_trust.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/user_config.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/workspace_mcp.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle.egg-info/dependency_links.txt +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle.egg-info/entry_points.txt +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle.egg-info/requires.txt +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle.egg-info/top_level.txt +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/conftest.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/setup.cfg +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/templates/install-marker.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/__init__.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/_direct_acquisition.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/_support.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/__init__.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/README.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/claude-code-2.1.226-hook-events.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/claude-code-2.1.228-hook-events.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/core/.apm/agents/bar.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/core/.apm/commands/qux.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/core/.apm/hook-wiring/baz.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/core/.apm/hook-wiring/qux.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/core/.apm/hooks/baz.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/core/.apm/hooks/baz.sh +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/core/.apm/skills/example/SKILL.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/core/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/core/pack.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/governance-extras/.apm/skills/example/SKILL.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/governance-extras/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/governance-extras/pack.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/monorepo-extras/.apm/skills/example/SKILL.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/monorepo-extras/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/monorepo-extras/pack.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/product-documentation/.apm/skills/example/SKILL.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/product-documentation/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/product-documentation/pack.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/user-guide-diataxis/.apm/skills/example/SKILL.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/user-guide-diataxis/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/packs/user-guide-diataxis/pack.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/fixtures/recipes/bogus-target.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_adapter_claude_code.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_adapter_codex.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_adapter_copilot.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_adapter_cursor.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_adapter_gemini.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_adapter_kiro.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_adapter_kiro_alias.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_adapter_kiro_cli.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_adapter_kiro_ide.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_adapter_root_bins_projection.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_agent_boundary_metadata_projection.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_agent_plugin_projection.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_build_ships_seeds.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_contract.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_contract_scope.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_contract_v07.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_contract_v08.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_direct_directory_cleanup.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_distribution_route_contract.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_distribution_route_golden.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_distribution_route_resolution.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_end_to_end_build.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_hook_wiring_rules.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_lint_packs.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_load_pack_hook_wiring_safely.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_pack_schema.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_pack_schema_allowed_adapters.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_pack_schema_install.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_pipeline.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_plugin_hooks.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_plugin_manifest_schema.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_plugin_publication_gates.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_policy_registry_projection.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_projectable_subset.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_projection_io.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_projections_merge_json.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_route_lookup.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_scope_rails.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_security.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_self_host_check.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_self_host_fixture_guard.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_self_host_metadata_policy.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_self_host_recipe_config.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_sequential_implementer_dispatch_projection.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_shared_libs_projection.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_shared_prefix_contract.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_user_libs_projection.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_validate.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/build_pipeline/test_writers_emit_lf.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/conftest.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/contracts/test_agentbundle_show_schema.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/contracts/test_catalogue_fetch_credential_boundary.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/contracts/test_skill_schema.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/adapt/.adapt-discovery.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/adapt/values.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/blank_catalogue/.claude-plugin/marketplace.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/blank_catalogue/catalogue.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/blank_catalogue/packs/.gitkeep +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/blank_catalogue/packs/_example/.apm/skills/example-skill/SKILL.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/blank_catalogue/packs/_example/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/blank_catalogue/packs/_example/README.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/blank_catalogue/packs/_example/evals/eval_queries.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/blank_catalogue/packs/_example/pack.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/blank_catalogue/profiles/.gitkeep +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/blank_catalogue/profiles/_example/README.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/blank_catalogue/profiles/_example/profile.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/brownfield/values.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/brownfield-adapt/AGENTS.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/brownfield-adapt/AGENTS.upstream.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/brownfield-adapt/DESIGN.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/brownfield-adapt/EXPECTED_TREE.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/brownfield-adapt/docs/CHARTER.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/brownfield-adapt/docs/guides/how-to/index.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/brownfield-adapt/docs/howto/getting-started.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/brownfield-adapt-expected/AGENTS.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/brownfield-adapt-expected/docs/CHARTER.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/brownfield-adapt-user-home/.agentbundle/.adapt-discovery.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/brownfield-adapt-user-home/.agentbundle/state.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/catalogue_sync/adapter_contract_major_mismatch/pack.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/catalogue_wave4/catalogue.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/catalogue_wave4/packs/pack-with-journey/.apm/hook-wiring/example.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/catalogue_wave4/packs/pack-with-journey/.apm/skills/example-skill/SKILL.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/catalogue_wave4/packs/pack-with-journey/.apm/skills/example-skill/scripts/run.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/catalogue_wave4/packs/pack-with-journey/JOURNEY.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/catalogue_wave4/packs/pack-with-journey/pack.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/catalogue_wave4/packs/pack-without-journey/pack.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/catalogue_wave4/profiles/test-profile.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/cognitive-load-hosts.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/creds/skills/argv-flag/SKILL.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/creds/skills/argv-flag/scripts/cli.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/creds/skills/argv-flag-derived/SKILL.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/creds/skills/argv-flag-derived/scripts/cli.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/creds/skills/argv-flag-normalised/SKILL.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/creds/skills/argv-flag-normalised/scripts/cli.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/creds/skills/conforming/SKILL.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/creds/skills/conforming/scripts/cli.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/creds/skills/dotfile-grep/SKILL.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/creds/skills/dotfile-grep/scripts/leak.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/creds/skills/dotfile-with-optout/SKILL.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/creds/skills/dotfile-with-optout/scripts/legit.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/creds/skills/mcp-server-headers/SKILL.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/creds/skills/mcp-server-headers/scripts/cli.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/creds/skills/missing-dont-block/SKILL.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/direct/ac35_corpus_verdicts.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/direct/golden_state_0_5.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/distribution-routes/golden.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/distribution-routes/witness-packs/portable/.apm/skills/example/SKILL.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/distribution-routes/witness-packs/portable/pack.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/external_catalogue/.claude-plugin/marketplace.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/external_catalogue/AGENTS.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/external_catalogue/LICENSE-APACHE +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/external_catalogue/LICENSE-MIT +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/external_catalogue/agentbundle/_data/install-defaults.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/external_catalogue/catalogue.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/external_catalogue/packs/alpha/.apm/skills/example/SKILL.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/external_catalogue/packs/alpha/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/external_catalogue/packs/alpha/pack.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/external_catalogue/packs/alpha/seeds/AGENTS.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/external_catalogue/packs/beta/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/external_catalogue/packs/beta/pack.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/external_catalogue/profiles/example.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/install/catalogue/packs/alpha/.apm/agents/helper.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/install/catalogue/packs/alpha/.apm/commands/cmd.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/install/catalogue/packs/alpha/.apm/hook-wiring/run.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/install/catalogue/packs/alpha/.apm/hooks/run.sh +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/install/catalogue/packs/alpha/.apm/skills/example/SKILL.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/install/catalogue/packs/alpha/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/install/catalogue/packs/alpha/pack.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/kiro_ide_hook/ask_agent_basic.kiro.hook +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/kiro_ide_hook/run_command_with_placeholder.kiro.hook +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/lint_packs/clean/pack.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/lint_packs/clean/seeds/README.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/list-installed/golden_120col.txt +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/list-installed/golden_80col.txt +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/list_packs/catalogue/packs/alpha/pack.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/list_packs/catalogue/packs/beta/pack.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/local_scope/catalogue/packs/local-test-pack/.apm/skills/local-test/SKILL.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/local_scope/catalogue/packs/local-test-pack/pack.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/cc-user-hooks/.apm/hook-wiring/on-prompt.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/cc-user-hooks/.apm/hooks/on-prompt.sh +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/cc-user-hooks/pack.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/kiro-repo-hooks/.apm/agents/reviewer.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/kiro-repo-hooks/.apm/hook-wiring/on-spawn.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/kiro-repo-hooks/.apm/hooks/on-spawn.sh +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/kiro-repo-hooks/pack.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/kiro-user-hooks/.apm/agents/reviewer.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/kiro-user-hooks/.apm/hook-wiring/on-spawn.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/kiro-user-hooks/.apm/hooks/on-spawn.sh +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/kiro-user-hooks/pack.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/malformed-kiro-missing-attach/.apm/agents/reviewer.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/malformed-kiro-missing-attach/.apm/hook-wiring/on-spawn.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/malformed-kiro-missing-attach/.apm/hooks/on-spawn.sh +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/malformed-kiro-missing-attach/pack.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/malformed-kiro-pascal-events/.apm/agents/reviewer.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/malformed-kiro-pascal-events/.apm/hook-wiring/on-spawn.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/malformed-kiro-pascal-events/.apm/hooks/on-spawn.sh +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/malformed-kiro-pascal-events/pack.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/malformed-kiro-unknown-agent/.apm/agents/reviewer.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/malformed-kiro-unknown-agent/.apm/hook-wiring/on-spawn.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/malformed-kiro-unknown-agent/.apm/hooks/on-spawn.sh +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/packs/malformed-kiro-unknown-agent/pack.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/scaffold/test-pack/seeds/AGENTS.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/scaffold/test-pack/seeds/_agents-footer.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/scaffold/test-pack/seeds/docs/CHARTER.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/show_contract/agentbundle-show.schema.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/show_contract/catalogue.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/show_contract/installed_state.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/agents/reviewer.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/commands/deploy.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/hook-wiring/pre-commit.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/hooks/lint.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/hooks/pre-commit.sh +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/skills/work-loop/SKILL.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v1/packs/core/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v1/packs/core/pack.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/agents/reviewer.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/commands/deploy.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/hook-wiring/pre-commit.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/hooks/lint.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/hooks/pre-commit.sh +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/skills/work-loop/SKILL.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v2/packs/core/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v2/packs/core/pack.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/agents/reviewer.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/commands/deploy.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/hook-wiring/pre-commit.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/hooks/lint.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/hooks/pre-commit.sh +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/skills/work-loop/SKILL.md +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v3/packs/core/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/upgrade/catalogue_v3/packs/core/pack.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/validate/bad_recipe_pack/pack.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/validate/malformed_pack/pack.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/validate/valid_pack/pack.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/fixtures/validate/version_mismatch_pack/pack.toml +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/__init__.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_adapt_cmd.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_adapt_dual_scope.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_adapt_preflight_detection.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_adapt_schema_migration.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_apm_install_route.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_blank_catalogue.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_brownfield_adapt_end_to_end.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_brownfield_round_trip.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_brownfield_user_home_fixture.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_build_check_drift_gates.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_build_derivation_apm.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_build_derivation_claude_plugins.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_catalogue_verify_adapter_compat.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_catalogue_verify_dependencies.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_catalogue_verify_external_portability.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_catalogue_verify_fixture_checks.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_catalogue_verify_marketplace.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_catalogue_verify_output_drift.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_catalogue_verify_package_preflight.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_catalogue_verify_plugin_path.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_catalogue_verify_profile_schema.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_catalogue_verify_step1.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_catalogue_wave4_index_generator.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_catalogue_wave4_integration.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_catalogue_wave4_journey_validator.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_catalogue_wave4_schema.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_cc_user_hooks_fixture.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_claude_plugins_install_route.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_config_cascade.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_credential_brokers_pack_install.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_credentials_wheel.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_direct_install.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_discovery_schema_cross_consumer.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_editable_source_detection.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_fixtures_validate.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_hook_wiring_ingress.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_adapt_chain.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_cmd.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_converters_user_scope.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_copilot_full_parity.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_core_smoke.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_default_source.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_dependencies_gate.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_dropped_primitives_warning.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_dual_scope.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_layout_is_best_effort.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_orphan_reshape.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_pack_metadata_shape.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_profile.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_profile_live.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_repo_scope_per_adapter.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_research_user_scope.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_seed_delivery.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_session_start_wiring.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_upgrade_offer.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_user_hooks.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_install_user_scope_allowed_adapters.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_jfrog_cli_contract.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_kiro_ide_hook_e2e.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_kiro_repo_hooks_fixture.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_kiro_user_hooks_fixture.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_list_packs_cmd.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_local_scope_install.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_marketplace_entry_validation.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_marketplace_manifest_regression.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_multi_pack_install.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_orphan_cleanup_respects_foreign_state.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_plugin_route_membership.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_portable_catalogue_authentication.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_recommends_cross_scope.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_reconcile.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_reserved_path_filter.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_scaffold_projection.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_self_host_schema_migration.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_self_host_sweep_respects_state.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_shared_prefix_coexistence.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_show_cmd.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_tier_invariants.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_trust_fallback_tls.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_uninstall_cmd.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_uninstall_user_hooks.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_upgrade_attach_to_agent.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_upgrade_cmd.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_upgrade_user_hooks.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_version_gate_matrix.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_workspace_mcp_git_fsm.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/integration/test_zipapp.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/performance/__init__.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/performance/test_direct_family2_budget_cost.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/test_adapter_permissions_projection.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/test_workspace_mcp_elicit.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/test_workspace_mcp_event_bridge.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/test_workspace_mcp_git.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/test_workspace_mcp_git_scope.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/test_workspace_mcp_layout_override.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/test_workspace_mcp_lifecycle.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/test_workspace_mcp_stdin.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/test_workspace_mcp_tools.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/__init__.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/conftest.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_adapt_discovery_schema.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_adapter_symlink_policy.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_append_layout_section.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_architect_readme_install_command.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_archive_unit_digests.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_ci_contract.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_curation_deps.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_fetch.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_fetch_jfrog.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_init_cli_self_hosted.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_pack_defaults.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_package_compare.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_package_refusal.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_self_hosted_export_removal.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_skill_spec_lint.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_sync.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_sync_fixture_set.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_tooling_archive.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_tooling_build.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_tooling_defaults.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_tooling_file_safety.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_tooling_foundation.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_tooling_identity.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_tooling_init.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_tooling_lint.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_tooling_package.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_tooling_self_host.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_tooling_self_hosted_init.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_tooling_source_package.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_tooling_verify.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_trust_fallback.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_unit_digests.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_wave2_schema.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_wave2_validation.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_wave3_contracts_cli.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_wave3_contracts_inspector.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_wave3_init_nextsteps.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_catalogue_wave3_offline_navigation.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_cli_catalogue_optional.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_cli_help_lists_config.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_cli_list_targets_help.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_cli_namespace_fixture.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_cli_path_normalisation.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_cli_profile_surface.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_cli_scope_flags.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_codex_agent_toml.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_codex_projection_modes.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_cognitive_load_seed_contract.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_collect_tree_symlinks.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_common_classify_seeds.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_config.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_config_cmd.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_configured_adapter.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_confirm_helper.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_contract_parity.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_contract_v0_3_schema.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_copilot_agent_md.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_copilot_hooks_json.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_copilot_user_scope_wiring.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_credbroker_lint_hardening.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_dependencies_batch.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_diff_cmd.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_direct_admission.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_direct_architecture_controls.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_direct_diagnostics.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_direct_lifecycle_facts.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_direct_source_acquisition.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_direct_source_state.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_direct_upgrade.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_direct_validate.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_footprint_ownership.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_https_catalogue.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_init_state_cmd.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_install_argparse_adapter_flag.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_install_argparse_emit_install_routes.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_install_defaults_preferred_adapter.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_install_dropped_primitives_warning.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_install_event_dropped_wirings.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_install_first_value_handoff.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_install_force_help.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_install_inband_detection.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_install_messages.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_install_messages_repo_scope.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_install_refusal_ordering.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_install_state_provenance.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_kiro_ide_hook_projection.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_kiro_ide_hook_rail.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_kiro_ide_hook_schema.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_layout_bases_anchoring.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_lint_agent_artifacts_metadata_auth.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_list_installed_cmd.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_list_installed_status.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_list_targets_cmd.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_local_exclude_git_cache.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_local_scope_schema.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_local_scope_t10_uninstall.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_local_scope_t12_show.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_local_scope_t2_resolve.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_local_scope_t3_config.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_local_scope_t4_state_path.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_local_scope_t5_list_installed.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_local_scope_t7_install_gates.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_local_scope_t8_install.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_local_scope_t9_exclude.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_marker_schema_version_parity.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_merge_into_agent_json.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_multi_adapter_disambiguator.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_nested_symlink_hardening.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_offer_upgrade_namespace.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_okf_discovery.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_org_bootstrap.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_orphan_sweep_guards.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_pack_config_api.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_pack_inventory.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_pack_layout_section_schema.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_package_catalogue.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_packstate_source_provenance.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_pipeline_phase_order.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_plugin_scope_filter.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_profile_reader.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_render.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_render_cmd.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_render_table.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_resolve_state_path.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_resolve_target_adapter_user_config.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_resolve_user_scope_target_adapter.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_route_surface_parity.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_safety.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_safety_repo_scope_prefixes.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_safety_scan_per_pack_scoping.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_scaffold_cmd.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_scope.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_self_host_windows.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_shared_prefix_disclosure.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_source_conflict_guard.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_source_defaults.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_state_v01_refuse_write.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_state_v02.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_state_v0_4_schema.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_statelock.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_statelock_hardening.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_system_trust.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_target_resolver.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_toml_emitters.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_unresolved_markers.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_upgrade_bulk_all.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_upgrade_recap.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_upgrade_source_inference.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_user_config_io.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_user_config_isolation.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_user_config_path.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_user_config_source.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_user_merge_json.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_validate_attach_to_agent.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_validate_categories.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_validate_cmd.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_validate_hook_wiring_per_file_compatibility.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_values_from_shapes.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_version.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_windows_direct_suite_registration.py +0 -0
- {agentbundle-0.53.0 → agentbundle-0.53.1}/tests/unit/test_workspace_mcp_events_poller.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agentbundle
|
|
3
|
-
Version: 0.53.
|
|
3
|
+
Version: 0.53.1
|
|
4
4
|
Summary: npm for your coding agent. Install packs of skills, subagents, and hooks into any repo, for every major agent.
|
|
5
5
|
Author-email: eugenelim <eugenelim@users.noreply.github.com>
|
|
6
6
|
License-Expression: Apache-2.0 OR MIT
|
|
@@ -35,6 +35,16 @@ python -m pip install agentbundle
|
|
|
35
35
|
|
|
36
36
|
Requires Python 3.11+. Runs on macOS, Linux, and Windows.
|
|
37
37
|
|
|
38
|
+
## What's new in 0.53.1
|
|
39
|
+
|
|
40
|
+
`agentbundle catalogue init` now writes a root `AGENTS.md` and a `CLAUDE.md`, so
|
|
41
|
+
a new catalogue packages and verifies with no hand edits. A bad
|
|
42
|
+
`[catalogue.package].include` entry fails with a `CAT-PKG-001` message, not a
|
|
43
|
+
traceback. An `include` entry that names a `_` directory under `packs/`, such as
|
|
44
|
+
`packs/_example`, now fails too and must be removed; an empty `include` packages
|
|
45
|
+
every non-`_` pack, so list the packs to ship instead. A catalogue made by an
|
|
46
|
+
earlier release needs a root `AGENTS.md` added by hand.
|
|
47
|
+
|
|
38
48
|
## What's new in 0.53.0
|
|
39
49
|
|
|
40
50
|
`agentbundle catalogue package` now refuses to replace a release archive that
|
|
@@ -14,6 +14,16 @@ 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.53.1
|
|
18
|
+
|
|
19
|
+
`agentbundle catalogue init` now writes a root `AGENTS.md` and a `CLAUDE.md`, so
|
|
20
|
+
a new catalogue packages and verifies with no hand edits. A bad
|
|
21
|
+
`[catalogue.package].include` entry fails with a `CAT-PKG-001` message, not a
|
|
22
|
+
traceback. An `include` entry that names a `_` directory under `packs/`, such as
|
|
23
|
+
`packs/_example`, now fails too and must be removed; an empty `include` packages
|
|
24
|
+
every non-`_` pack, so list the packs to ship instead. A catalogue made by an
|
|
25
|
+
earlier release needs a root `AGENTS.md` added by hand.
|
|
26
|
+
|
|
17
27
|
## What's new in 0.53.0
|
|
18
28
|
|
|
19
29
|
`agentbundle catalogue package` now refuses to replace a release archive that
|
|
@@ -79,7 +79,7 @@ def _derive_name(basename: str) -> str | None:
|
|
|
79
79
|
cleaned = _UNSAFE_NAME_CHARS_RE.sub("-", basename.lower())
|
|
80
80
|
# Collapse multiple dashes, strip leading/trailing dashes
|
|
81
81
|
cleaned = re.sub(r"-{2,}", "-", cleaned).strip("-")
|
|
82
|
-
if _SAFE_NAME_RE.
|
|
82
|
+
if _SAFE_NAME_RE.fullmatch(cleaned):
|
|
83
83
|
return cleaned
|
|
84
84
|
return None
|
|
85
85
|
|
|
@@ -151,6 +151,43 @@ def generate_empty_marketplace(
|
|
|
151
151
|
return text.encode("utf-8")
|
|
152
152
|
|
|
153
153
|
|
|
154
|
+
_CLAUDE_SHIM = b"@AGENTS.md\n"
|
|
155
|
+
|
|
156
|
+
# Root files init keeps when the author already has their own copy.
|
|
157
|
+
_KEEP_EXISTING_PATHS: frozenset[str] = frozenset({"AGENTS.md", "CLAUDE.md"})
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
def generate_root_agents_md(name: str) -> bytes:
|
|
161
|
+
"""Pure function. Return UTF-8 bytes for the catalogue's root ``AGENTS.md``.
|
|
162
|
+
|
|
163
|
+
Only the validated catalogue *name* is interpolated, so no free-text flag
|
|
164
|
+
reaches Markdown. Deterministic, final newline.
|
|
165
|
+
"""
|
|
166
|
+
standards = "guides/_shared/reference/catalogue-authoring-standards.md"
|
|
167
|
+
package_cmd = (
|
|
168
|
+
"agentbundle catalogue package --root . --bundle <bundle> "
|
|
169
|
+
"--release <version> --channel <channel> --output dist/"
|
|
170
|
+
)
|
|
171
|
+
text = (
|
|
172
|
+
f"# {name} catalogue\n\n"
|
|
173
|
+
"This is an AgentBundle catalogue. Packs live in `packs/` and profiles live in\n"
|
|
174
|
+
"`profiles/`. Directories that start with `_` are templates: discovery, builds\n"
|
|
175
|
+
"and packaging skip them.\n\n"
|
|
176
|
+
"Read these next:\n\n"
|
|
177
|
+
"- [`packs/AGENTS.md`](packs/AGENTS.md)\n"
|
|
178
|
+
"- [`profiles/AGENTS.md`](profiles/AGENTS.md)\n"
|
|
179
|
+
f"- [`{standards}`]({standards})\n\n"
|
|
180
|
+
"```bash\n"
|
|
181
|
+
"agentbundle catalogue verify --root .\n"
|
|
182
|
+
"agentbundle catalogue lint --root .\n"
|
|
183
|
+
f"{package_cmd}\n"
|
|
184
|
+
"```\n\n"
|
|
185
|
+
"`catalogue package` ships this file at the archive root as the "
|
|
186
|
+
"installable-catalogue marker, so keep it.\n"
|
|
187
|
+
)
|
|
188
|
+
return text.encode("utf-8")
|
|
189
|
+
|
|
190
|
+
|
|
154
191
|
# ---------------------------------------------------------------------------
|
|
155
192
|
# Metadata resolution
|
|
156
193
|
# ---------------------------------------------------------------------------
|
|
@@ -182,7 +219,7 @@ def resolve_metadata(
|
|
|
182
219
|
# --- name ---
|
|
183
220
|
resolved_name: str
|
|
184
221
|
if name:
|
|
185
|
-
if not _SAFE_NAME_RE.
|
|
222
|
+
if not _SAFE_NAME_RE.fullmatch(name):
|
|
186
223
|
errors.append(
|
|
187
224
|
f"--name {name!r} is not a valid catalogue name. "
|
|
188
225
|
"Use only letters, digits, hyphens, and underscores, "
|
|
@@ -312,6 +349,17 @@ def _build_plan(
|
|
|
312
349
|
content=marketplace_bytes,
|
|
313
350
|
))
|
|
314
351
|
|
|
352
|
+
planned.append(PlannedFile(
|
|
353
|
+
rel_path="AGENTS.md",
|
|
354
|
+
kind="generated",
|
|
355
|
+
content=generate_root_agents_md(meta.name),
|
|
356
|
+
))
|
|
357
|
+
planned.append(PlannedFile(
|
|
358
|
+
rel_path="CLAUDE.md",
|
|
359
|
+
kind="generated",
|
|
360
|
+
content=_CLAUDE_SHIM,
|
|
361
|
+
))
|
|
362
|
+
|
|
315
363
|
# Scaffold files in manifest order (already sorted)
|
|
316
364
|
for rel, content in sorted(scaffold_files.items()):
|
|
317
365
|
planned.append(PlannedFile(rel_path=rel, kind="scaffold", content=content))
|
|
@@ -380,6 +428,7 @@ def classify_conflicts(
|
|
|
380
428
|
existing = target / pf.rel_path
|
|
381
429
|
action: FileAction
|
|
382
430
|
conflict_reason: str | None = None
|
|
431
|
+
plan_sha256 = _sha256_bytes(pf.content)
|
|
383
432
|
|
|
384
433
|
if existing.is_symlink():
|
|
385
434
|
action = FileAction.CONFLICT
|
|
@@ -403,6 +452,10 @@ def classify_conflicts(
|
|
|
403
452
|
else:
|
|
404
453
|
if current_content == pf.content:
|
|
405
454
|
action = FileAction.ALREADY_PRESENT
|
|
455
|
+
elif pf.rel_path in _KEEP_EXISTING_PATHS:
|
|
456
|
+
# Author's own root guidance file: keep it, report its hash.
|
|
457
|
+
action = FileAction.ALREADY_PRESENT
|
|
458
|
+
plan_sha256 = _sha256_bytes(current_content)
|
|
406
459
|
else:
|
|
407
460
|
action = FileAction.CONFLICT
|
|
408
461
|
if pf.rel_path == "catalogue.toml":
|
|
@@ -423,7 +476,7 @@ def classify_conflicts(
|
|
|
423
476
|
path=pf.rel_path,
|
|
424
477
|
kind=pf.kind,
|
|
425
478
|
action=action,
|
|
426
|
-
sha256=
|
|
479
|
+
sha256=plan_sha256,
|
|
427
480
|
conflict_reason=conflict_reason,
|
|
428
481
|
))
|
|
429
482
|
|
|
@@ -157,6 +157,10 @@ def _scan_content(root: Path, pack_include: list[str] | None = None) -> list[Pat
|
|
|
157
157
|
When pack_include is non-empty, only the listed pack directories are walked;
|
|
158
158
|
non-pack dirs (profiles/, contracts/, .claude-plugin/) are always included.
|
|
159
159
|
An empty or absent pack_include includes all packs (default behavior).
|
|
160
|
+
|
|
161
|
+
Raises ValueError for an include entry that is not under ``packs/``, contains
|
|
162
|
+
path traversal, does not exist as a directory, names build residue, or names a
|
|
163
|
+
``_`` template directory directly under ``packs/``.
|
|
160
164
|
"""
|
|
161
165
|
collected: list[Path] = []
|
|
162
166
|
|
|
@@ -178,6 +182,11 @@ def _scan_content(root: Path, pack_include: list[str] | None = None) -> list[Pat
|
|
|
178
182
|
f"pack_include entry {entry!r} names build residue; "
|
|
179
183
|
f"it is never packaged"
|
|
180
184
|
)
|
|
185
|
+
if len(parts) > 1 and parts[1].startswith("_"):
|
|
186
|
+
raise ValueError(
|
|
187
|
+
f"pack_include entry {entry!r} names a '_' directory; "
|
|
188
|
+
f"'_' directories are templates that are never packaged"
|
|
189
|
+
)
|
|
181
190
|
for dirpath, dirnames, filenames in os.walk(str(d), followlinks=False):
|
|
182
191
|
dp = Path(dirpath)
|
|
183
192
|
_prune(dp, dirnames)
|
|
@@ -790,7 +799,10 @@ def package_catalogue(
|
|
|
790
799
|
pass
|
|
791
800
|
|
|
792
801
|
# --- Scan and validate content ---
|
|
793
|
-
|
|
802
|
+
try:
|
|
803
|
+
content_paths = _scan_content(root, pack_include=pack_include)
|
|
804
|
+
except ValueError as exc:
|
|
805
|
+
return _err(f"invalid [catalogue.package].include: {exc}")
|
|
794
806
|
|
|
795
807
|
req_err = _check_required_files(root, content_paths, required_override=required_override)
|
|
796
808
|
if req_err is not None:
|
|
@@ -83,9 +83,10 @@ _APPLY_FAILED = 4
|
|
|
83
83
|
|
|
84
84
|
# The two digest-bearing schemes fetch_catalogue_archive_with_provenance
|
|
85
85
|
# handles; every other URI (local path or git+https://) goes through
|
|
86
|
-
# resolve_catalogue instead. Whose digest each form verifies differs
|
|
87
|
-
#
|
|
88
|
-
#
|
|
86
|
+
# resolve_catalogue instead. Whose digest each form verifies differs: an
|
|
87
|
+
# archive+https URI carries the adopter's own `#sha256=` fragment, while
|
|
88
|
+
# catalogue+https takes the sha256 from the resolved channel descriptor. That
|
|
89
|
+
# is why the two get distinct fidelity tokens rather than one shared
|
|
89
90
|
# "verified-digest" token.
|
|
90
91
|
_DIGEST_BEARING_PREFIXES = ("archive+https://", "catalogue+https://")
|
|
91
92
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agentbundle
|
|
3
|
-
Version: 0.53.
|
|
3
|
+
Version: 0.53.1
|
|
4
4
|
Summary: npm for your coding agent. Install packs of skills, subagents, and hooks into any repo, for every major agent.
|
|
5
5
|
Author-email: eugenelim <eugenelim@users.noreply.github.com>
|
|
6
6
|
License-Expression: Apache-2.0 OR MIT
|
|
@@ -35,6 +35,16 @@ python -m pip install agentbundle
|
|
|
35
35
|
|
|
36
36
|
Requires Python 3.11+. Runs on macOS, Linux, and Windows.
|
|
37
37
|
|
|
38
|
+
## What's new in 0.53.1
|
|
39
|
+
|
|
40
|
+
`agentbundle catalogue init` now writes a root `AGENTS.md` and a `CLAUDE.md`, so
|
|
41
|
+
a new catalogue packages and verifies with no hand edits. A bad
|
|
42
|
+
`[catalogue.package].include` entry fails with a `CAT-PKG-001` message, not a
|
|
43
|
+
traceback. An `include` entry that names a `_` directory under `packs/`, such as
|
|
44
|
+
`packs/_example`, now fails too and must be removed; an empty `include` packages
|
|
45
|
+
every non-`_` pack, so list the packs to ship instead. A catalogue made by an
|
|
46
|
+
earlier release needs a root `AGENTS.md` added by hand.
|
|
47
|
+
|
|
38
48
|
## What's new in 0.53.0
|
|
39
49
|
|
|
40
50
|
`agentbundle catalogue package` now refuses to replace a release archive that
|
|
@@ -448,6 +448,7 @@ tests/integration/test_build_check_drift_gates.py
|
|
|
448
448
|
tests/integration/test_build_derivation_apm.py
|
|
449
449
|
tests/integration/test_build_derivation_claude_plugins.py
|
|
450
450
|
tests/integration/test_catalogue_init.py
|
|
451
|
+
tests/integration/test_catalogue_init_packageable.py
|
|
451
452
|
tests/integration/test_catalogue_verify_adapter_compat.py
|
|
452
453
|
tests/integration/test_catalogue_verify_dependencies.py
|
|
453
454
|
tests/integration/test_catalogue_verify_external_portability.py
|
|
@@ -540,6 +541,7 @@ tests/unit/test_catalogue_fetch_jfrog.py
|
|
|
540
541
|
tests/unit/test_catalogue_init_cli_self_hosted.py
|
|
541
542
|
tests/unit/test_catalogue_pack_defaults.py
|
|
542
543
|
tests/unit/test_catalogue_package_compare.py
|
|
544
|
+
tests/unit/test_catalogue_package_include_diagnostic.py
|
|
543
545
|
tests/unit/test_catalogue_package_refusal.py
|
|
544
546
|
tests/unit/test_catalogue_self_hosted_export_removal.py
|
|
545
547
|
tests/unit/test_catalogue_skill_spec_lint.py
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "agentbundle"
|
|
7
|
-
version = "0.53.
|
|
7
|
+
version = "0.53.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 = ["credbroker>=0.7,<0.8"]
|
|
@@ -398,7 +398,12 @@ def test_dogfood_no_host_files_leaked(tmp_path):
|
|
|
398
398
|
|
|
399
399
|
scaffold_paths = set(list_files())
|
|
400
400
|
# Generated files
|
|
401
|
-
generated_paths = {
|
|
401
|
+
generated_paths = {
|
|
402
|
+
"catalogue.toml",
|
|
403
|
+
".claude-plugin/marketplace.json",
|
|
404
|
+
"AGENTS.md",
|
|
405
|
+
"CLAUDE.md",
|
|
406
|
+
}
|
|
402
407
|
allowed = scaffold_paths | generated_paths
|
|
403
408
|
|
|
404
409
|
# Walk target and collect all files
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
"""A blank catalogue from `catalogue init` packages and verifies with no hand edits."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import os
|
|
6
|
+
import subprocess
|
|
7
|
+
import sys
|
|
8
|
+
import tarfile
|
|
9
|
+
from pathlib import Path
|
|
10
|
+
|
|
11
|
+
PACKAGE_ROOT = Path(__file__).resolve().parents[2]
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def _cli(*args: str) -> subprocess.CompletedProcess[str]:
|
|
15
|
+
env = os.environ.copy()
|
|
16
|
+
env["PYTHONPATH"] = os.pathsep.join(filter(None, [str(PACKAGE_ROOT), env.get("PYTHONPATH")]))
|
|
17
|
+
env["PYTHONIOENCODING"] = "utf-8"
|
|
18
|
+
return subprocess.run(
|
|
19
|
+
[sys.executable, "-m", "agentbundle", *args],
|
|
20
|
+
env=env,
|
|
21
|
+
capture_output=True,
|
|
22
|
+
text=True,
|
|
23
|
+
encoding="utf-8",
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def test_init_creates_root_agents_md_and_claude_shim(tmp_path: Path) -> None:
|
|
28
|
+
from agentbundle.catalogue_tooling.initialise import init_catalogue
|
|
29
|
+
from agentbundle.catalogue_tooling.results import FileAction
|
|
30
|
+
|
|
31
|
+
target = tmp_path / "cat"
|
|
32
|
+
result = init_catalogue(target=target, name="demo-cat")
|
|
33
|
+
|
|
34
|
+
assert result.ok, result.diagnostics
|
|
35
|
+
assert (target / "AGENTS.md").is_file()
|
|
36
|
+
assert (target / "CLAUDE.md").read_bytes() == b"@AGENTS.md\n"
|
|
37
|
+
actions = {fp.path: fp.action for fp in result.files}
|
|
38
|
+
assert actions["AGENTS.md"] == FileAction.CREATE
|
|
39
|
+
assert actions["CLAUDE.md"] == FileAction.CREATE
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def test_blank_catalogue_inits_verifies_packages_and_verifies_archive(tmp_path: Path) -> None:
|
|
43
|
+
cat = tmp_path / "cat"
|
|
44
|
+
out = tmp_path / "out"
|
|
45
|
+
|
|
46
|
+
steps = [
|
|
47
|
+
("catalogue", "init", str(cat), "--name", "demo-cat"),
|
|
48
|
+
("catalogue", "verify", "--root", str(cat)),
|
|
49
|
+
(
|
|
50
|
+
"catalogue", "package", "--root", str(cat), "--bundle", "demo",
|
|
51
|
+
"--release", "0.1.0", "--channel", "stable", "--output", str(out),
|
|
52
|
+
),
|
|
53
|
+
]
|
|
54
|
+
for step in steps:
|
|
55
|
+
proc = _cli(*step)
|
|
56
|
+
assert proc.returncode == 0, (step, proc.stdout, proc.stderr)
|
|
57
|
+
|
|
58
|
+
archive = out / "catalogues" / "demo" / "releases" / "0.1.0" / "catalogue-0.1.0.tar.gz"
|
|
59
|
+
sidecar = archive.with_name(archive.name + ".sha256")
|
|
60
|
+
proc = _cli("catalogue", "verify", "--archive", str(archive), "--sha256-file", str(sidecar))
|
|
61
|
+
assert proc.returncode == 0, (proc.stdout, proc.stderr)
|
|
62
|
+
|
|
63
|
+
with tarfile.open(archive, "r:gz") as tf:
|
|
64
|
+
names = tf.getnames()
|
|
65
|
+
assert "AGENTS.md" in names
|
|
66
|
+
assert not [n for n in names if n.startswith(("packs/_example/", "profiles/_example/"))]
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
def _snapshot(root: Path) -> dict[str, bytes]:
|
|
70
|
+
return {
|
|
71
|
+
p.relative_to(root).as_posix(): p.read_bytes()
|
|
72
|
+
for p in root.rglob("*")
|
|
73
|
+
if p.is_file() and not p.is_symlink()
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
def test_root_agents_md_names_catalogue_and_links_exactly_three_files(tmp_path: Path) -> None:
|
|
78
|
+
import re
|
|
79
|
+
|
|
80
|
+
from agentbundle.catalogue_tooling.initialise import init_catalogue
|
|
81
|
+
|
|
82
|
+
target = tmp_path / "cat"
|
|
83
|
+
assert init_catalogue(target=target, name="demo-cat").ok
|
|
84
|
+
text = (target / "AGENTS.md").read_text(encoding="utf-8")
|
|
85
|
+
|
|
86
|
+
assert "demo-cat" in text
|
|
87
|
+
links = re.findall(r"\]\(([^)]*)\)", text)
|
|
88
|
+
assert sorted(links) == sorted([
|
|
89
|
+
"packs/AGENTS.md",
|
|
90
|
+
"profiles/AGENTS.md",
|
|
91
|
+
"guides/_shared/reference/catalogue-authoring-standards.md",
|
|
92
|
+
])
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
def test_existing_root_files_are_kept_and_reported_already_present(tmp_path: Path) -> None:
|
|
96
|
+
import hashlib
|
|
97
|
+
|
|
98
|
+
from agentbundle.catalogue_tooling.initialise import init_catalogue
|
|
99
|
+
from agentbundle.catalogue_tooling.results import FileAction
|
|
100
|
+
|
|
101
|
+
target = tmp_path / "cat"
|
|
102
|
+
target.mkdir()
|
|
103
|
+
agents = b"# my own rules\n"
|
|
104
|
+
claude = b"my own claude notes\n"
|
|
105
|
+
(target / "AGENTS.md").write_bytes(agents)
|
|
106
|
+
(target / "CLAUDE.md").write_bytes(claude)
|
|
107
|
+
|
|
108
|
+
result = init_catalogue(target=target, name="demo-cat")
|
|
109
|
+
|
|
110
|
+
assert result.ok, result.diagnostics
|
|
111
|
+
assert (target / "AGENTS.md").read_bytes() == agents
|
|
112
|
+
assert (target / "CLAUDE.md").read_bytes() == claude
|
|
113
|
+
by_path = {fp.path: fp for fp in result.files}
|
|
114
|
+
for rel, data in (("AGENTS.md", agents), ("CLAUDE.md", claude)):
|
|
115
|
+
assert by_path[rel].action == FileAction.ALREADY_PRESENT
|
|
116
|
+
assert by_path[rel].sha256 == hashlib.sha256(data).hexdigest()
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
def test_symlinked_root_agents_md_is_a_conflict_and_writes_nothing(tmp_path: Path) -> None:
|
|
120
|
+
import pytest
|
|
121
|
+
from agentbundle.catalogue_tooling.initialise import init_catalogue
|
|
122
|
+
|
|
123
|
+
target = tmp_path / "cat"
|
|
124
|
+
target.mkdir()
|
|
125
|
+
real = tmp_path / "real.md"
|
|
126
|
+
real.write_bytes(b"x\n")
|
|
127
|
+
try:
|
|
128
|
+
(target / "AGENTS.md").symlink_to(real)
|
|
129
|
+
except OSError:
|
|
130
|
+
pytest.skip("symlinks unavailable")
|
|
131
|
+
before = _snapshot(target)
|
|
132
|
+
|
|
133
|
+
result = init_catalogue(target=target, name="demo-cat")
|
|
134
|
+
|
|
135
|
+
assert not result.ok
|
|
136
|
+
assert any(d.code == "CAT-INIT-007" and d.path == "AGENTS.md" for d in result.diagnostics)
|
|
137
|
+
assert _snapshot(target) == before
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
def test_changed_nested_guidance_file_still_conflicts(tmp_path: Path) -> None:
|
|
141
|
+
from agentbundle.catalogue_tooling.initialise import init_catalogue
|
|
142
|
+
|
|
143
|
+
for rel in ("packs/AGENTS.md", "profiles/CLAUDE.md"):
|
|
144
|
+
target = tmp_path / rel.replace("/", "-")
|
|
145
|
+
(target / rel).parent.mkdir(parents=True)
|
|
146
|
+
(target / rel).write_bytes(b"custom\n")
|
|
147
|
+
before = _snapshot(target)
|
|
148
|
+
|
|
149
|
+
result = init_catalogue(target=target, name="demo-cat")
|
|
150
|
+
|
|
151
|
+
assert not result.ok, rel
|
|
152
|
+
assert any(d.code == "CAT-INIT-007" and d.path == rel for d in result.diagnostics), rel
|
|
153
|
+
assert _snapshot(target) == before, rel
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
def test_name_with_trailing_newline_is_refused(tmp_path: Path) -> None:
|
|
157
|
+
"""`$` matches before a final newline, so the name check must be a full match."""
|
|
158
|
+
from agentbundle.catalogue_tooling.initialise import init_catalogue
|
|
159
|
+
|
|
160
|
+
target = tmp_path / "cat"
|
|
161
|
+
result = init_catalogue(target=target, name="foo\n")
|
|
162
|
+
|
|
163
|
+
assert not result.ok
|
|
164
|
+
assert [d.code for d in result.diagnostics] == ["CAT-INIT-003"]
|
|
165
|
+
assert not target.exists()
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
"""An invalid [catalogue.package].include entry is a CAT-PKG-001 diagnostic, not a traceback."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from pathlib import Path
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def _blank_catalogue(tmp_path: Path) -> Path:
|
|
9
|
+
from agentbundle.catalogue_tooling.initialise import init_catalogue
|
|
10
|
+
|
|
11
|
+
root = tmp_path / "cat"
|
|
12
|
+
assert init_catalogue(target=root, name="demo-cat").ok
|
|
13
|
+
return root
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def test_include_entry_outside_packs_is_a_diagnostic(tmp_path: Path) -> None:
|
|
17
|
+
from agentbundle.catalogue_tooling.package import package_catalogue
|
|
18
|
+
|
|
19
|
+
root = _blank_catalogue(tmp_path)
|
|
20
|
+
toml = root / "catalogue.toml"
|
|
21
|
+
toml.write_text(
|
|
22
|
+
toml.read_text(encoding="utf-8").replace("include = []", 'include = ["AGENTS.md"]'),
|
|
23
|
+
encoding="utf-8",
|
|
24
|
+
)
|
|
25
|
+
out = tmp_path / "out"
|
|
26
|
+
|
|
27
|
+
result = package_catalogue(
|
|
28
|
+
root=root, bundle="demo", release="0.1.0", channel="stable", output=out,
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
assert not result.ok
|
|
32
|
+
assert [d.code for d in result.diagnostics] == ["CAT-PKG-001"]
|
|
33
|
+
assert "AGENTS.md" in result.diagnostics[0].message
|
|
34
|
+
assert not out.exists()
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def _set_include(root: Path, entries: list[str]) -> None:
|
|
38
|
+
toml = root / "catalogue.toml"
|
|
39
|
+
rendered = "[" + ", ".join(f'"{e}"' for e in entries) + "]"
|
|
40
|
+
toml.write_text(
|
|
41
|
+
toml.read_text(encoding="utf-8").replace("include = []", f"include = {rendered}"),
|
|
42
|
+
encoding="utf-8",
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
def _assert_single_diagnostic(tmp_path: Path, root: Path, entry: str) -> None:
|
|
47
|
+
from agentbundle.catalogue_tooling.package import package_catalogue
|
|
48
|
+
|
|
49
|
+
out = tmp_path / "out"
|
|
50
|
+
result = package_catalogue(
|
|
51
|
+
root=root, bundle="demo", release="0.1.0", channel="stable", output=out,
|
|
52
|
+
)
|
|
53
|
+
|
|
54
|
+
assert not result.ok
|
|
55
|
+
assert [d.code for d in result.diagnostics] == ["CAT-PKG-001"]
|
|
56
|
+
assert entry in result.diagnostics[0].message
|
|
57
|
+
assert not out.exists()
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
def test_missing_include_entry_is_a_diagnostic(tmp_path: Path) -> None:
|
|
61
|
+
root = _blank_catalogue(tmp_path)
|
|
62
|
+
_set_include(root, ["packs/nope"])
|
|
63
|
+
_assert_single_diagnostic(tmp_path, root, "packs/nope")
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
def test_build_residue_include_entry_is_a_diagnostic(tmp_path: Path) -> None:
|
|
67
|
+
root = _blank_catalogue(tmp_path)
|
|
68
|
+
(root / "packs" / "__pycache__").mkdir()
|
|
69
|
+
_set_include(root, ["packs/__pycache__"])
|
|
70
|
+
_assert_single_diagnostic(tmp_path, root, "packs/__pycache__")
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
def test_scaffold_template_include_entry_is_a_diagnostic(tmp_path: Path) -> None:
|
|
74
|
+
root = _blank_catalogue(tmp_path)
|
|
75
|
+
_set_include(root, ["packs/_example"])
|
|
76
|
+
_assert_single_diagnostic(tmp_path, root, "packs/_example")
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
def test_bare_packs_include_entry_still_packages(tmp_path: Path) -> None:
|
|
80
|
+
"""`packs/` names the whole packs directory, so it walks every pack as before."""
|
|
81
|
+
from agentbundle.catalogue_tooling.package import package_catalogue
|
|
82
|
+
|
|
83
|
+
root = _blank_catalogue(tmp_path)
|
|
84
|
+
_set_include(root, ["packs/"])
|
|
85
|
+
|
|
86
|
+
result = package_catalogue(
|
|
87
|
+
root=root, bundle="demo", release="0.1.0", channel="stable", output=tmp_path / "out",
|
|
88
|
+
)
|
|
89
|
+
|
|
90
|
+
assert result.ok, result.diagnostics
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
def test_cli_reports_bad_include_without_a_traceback(tmp_path: Path) -> None:
|
|
94
|
+
import os
|
|
95
|
+
import subprocess
|
|
96
|
+
import sys
|
|
97
|
+
|
|
98
|
+
root = _blank_catalogue(tmp_path)
|
|
99
|
+
_set_include(root, ["packs/nope"])
|
|
100
|
+
env = os.environ.copy()
|
|
101
|
+
package_root = Path(__file__).resolve().parents[2]
|
|
102
|
+
env["PYTHONPATH"] = os.pathsep.join(filter(None, [str(package_root), env.get("PYTHONPATH")]))
|
|
103
|
+
env["PYTHONIOENCODING"] = "utf-8"
|
|
104
|
+
|
|
105
|
+
proc = subprocess.run(
|
|
106
|
+
[
|
|
107
|
+
sys.executable, "-m", "agentbundle", "catalogue", "package",
|
|
108
|
+
"--root", str(root), "--bundle", "demo", "--release", "0.1.0",
|
|
109
|
+
"--channel", "stable", "--output", str(tmp_path / "out"),
|
|
110
|
+
],
|
|
111
|
+
env=env, capture_output=True, text=True, encoding="utf-8",
|
|
112
|
+
)
|
|
113
|
+
|
|
114
|
+
assert proc.returncode == 1, (proc.stdout, proc.stderr)
|
|
115
|
+
assert "CAT-PKG-001" in proc.stderr
|
|
116
|
+
assert "Traceback" not in proc.stderr
|
|
117
|
+
assert "Traceback" not in proc.stdout
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
def test_underscore_directory_inside_a_real_pack_is_packaged(tmp_path: Path) -> None:
|
|
121
|
+
import json
|
|
122
|
+
import shutil
|
|
123
|
+
import tarfile
|
|
124
|
+
|
|
125
|
+
from agentbundle.catalogue_tooling.package import package_catalogue
|
|
126
|
+
|
|
127
|
+
root = _blank_catalogue(tmp_path)
|
|
128
|
+
pack = root / "packs" / "demo-pack"
|
|
129
|
+
shutil.copytree(root / "packs" / "_example", pack)
|
|
130
|
+
for rel in ("pack.toml", ".claude-plugin/plugin.json"):
|
|
131
|
+
f = pack / rel
|
|
132
|
+
if f.is_file():
|
|
133
|
+
f.write_text(f.read_text(encoding="utf-8").replace("example-pack", "demo-pack"), encoding="utf-8")
|
|
134
|
+
plugin = pack / ".claude-plugin" / "plugin.json"
|
|
135
|
+
if plugin.is_file():
|
|
136
|
+
assert json.loads(plugin.read_text(encoding="utf-8"))["name"] == "demo-pack"
|
|
137
|
+
(pack / "_sub").mkdir()
|
|
138
|
+
(pack / "_sub" / "note.md").write_text("note\n", encoding="utf-8")
|
|
139
|
+
_set_include(root, ["packs/demo-pack"])
|
|
140
|
+
out = tmp_path / "out"
|
|
141
|
+
|
|
142
|
+
result = package_catalogue(
|
|
143
|
+
root=root, bundle="demo", release="0.1.0", channel="stable", output=out,
|
|
144
|
+
)
|
|
145
|
+
|
|
146
|
+
assert result.ok, result.diagnostics
|
|
147
|
+
archive = out / "catalogues" / "demo" / "releases" / "0.1.0" / "catalogue-0.1.0.tar.gz"
|
|
148
|
+
with tarfile.open(archive, "r:gz") as tf:
|
|
149
|
+
names = set(tf.getnames())
|
|
150
|
+
expected = {
|
|
151
|
+
p.relative_to(root).as_posix() for p in pack.rglob("*") if p.is_file() and not p.is_symlink()
|
|
152
|
+
}
|
|
153
|
+
assert "packs/demo-pack/_sub/note.md" in expected
|
|
154
|
+
assert expected <= names
|
|
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.53.0 → agentbundle-0.53.1}/agentbundle/_data/agent-plugin-extension-namespaces.toml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/manifest.json
RENAMED
|
File without changes
|
{agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/packs/AGENTS.md
RENAMED
|
File without changes
|
{agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/packs/CLAUDE.md
RENAMED
|
File without changes
|
{agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/packs/README.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/profiles/AGENTS.md
RENAMED
|
File without changes
|
{agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/profiles/CLAUDE.md
RENAMED
|
File without changes
|
{agentbundle-0.53.0 → agentbundle-0.53.1}/agentbundle/_data/catalogue-scaffold/profiles/README.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|