agentbundle 0.38.6__tar.gz → 0.41.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.38.6/agentbundle.egg-info → agentbundle-0.41.1}/PKG-INFO +97 -5
- {agentbundle-0.38.6 → agentbundle-0.41.1}/README-pypi.md +96 -4
- {agentbundle-0.38.6 → agentbundle-0.41.1}/README.md +13 -2
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/_data/adapter.schema.json +1 -26
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/_data/adapter.toml +30 -13
- agentbundle-0.41.1/agentbundle/_data/agent-plugin-extension-namespaces.schema.json +53 -0
- agentbundle-0.41.1/agentbundle/_data/agent-plugin-extension-namespaces.toml +12 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/_data/catalogue-scaffold/guides/_shared/reference/catalogue-authoring-standards.md +79 -9
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/_data/catalogue-scaffold/manifest.json +4 -4
- agentbundle-0.41.1/agentbundle/_data/catalogue-scaffold/packs/_example/.apm/skills/example-skill/SKILL.md +48 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/_data/catalogue-scaffold/packs/_example/.claude-plugin/plugin.json +1 -1
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/_data/catalogue-scaffold/packs/_example/pack.toml +1 -1
- agentbundle-0.41.1/agentbundle/_data/close_work.py +2380 -0
- agentbundle-0.41.1/agentbundle/_data/cooling.py +912 -0
- agentbundle-0.41.1/agentbundle/_data/distribution-routes.schema.json +906 -0
- agentbundle-0.41.1/agentbundle/_data/distribution-routes.toml +61 -0
- agentbundle-0.41.1/agentbundle/_data/file_safety.py +484 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/_data/pack.schema.json +1 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/_data/public-contracts.txt +4 -0
- agentbundle-0.41.1/agentbundle/_data/vendor/agent-plugins/1.0.0/LICENSE.md +12 -0
- agentbundle-0.41.1/agentbundle/_data/vendor/agent-plugins/1.0.0/PROVENANCE.md +11 -0
- agentbundle-0.41.1/agentbundle/_data/vendor/agent-plugins/1.0.0/mcp.schema.json +120 -0
- agentbundle-0.41.1/agentbundle/_data/vendor/agent-plugins/1.0.0/plugin.schema.json +65 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/_data/work_intake_refresh.py +10 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/_data/workspace_status_engine.py +1991 -62
- agentbundle-0.41.1/agentbundle/bounded_metadata.py +523 -0
- agentbundle-0.41.1/agentbundle/build/adapters/_sweep_guard.py +75 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/adapters/claude_code.py +51 -24
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/adapters/codex.py +5 -22
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/adapters/copilot.py +8 -20
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/adapters/cursor.py +10 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/adapters/gemini.py +10 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/adapters/kiro.py +81 -23
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/adapters/kiro_ide.py +21 -1
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/hook_wiring_rules.py +12 -6
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/lint_packs.py +16 -2
- agentbundle-0.41.1/agentbundle/build/main.py +2470 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/projection_io.py +27 -5
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/projections/codex_agent_toml.py +5 -1
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/recipes/marketplace.toml +1 -0
- agentbundle-0.41.1/agentbundle/build/recipes/per-pack-agent-plugin.toml +8 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/recipes/per-pack-apm-package.toml +1 -1
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/recipes/per-pack-claude-plugin.toml +1 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/self_host.py +23 -6
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/catalogue.py +179 -83
- agentbundle-0.41.1/agentbundle/catalogue_tooling/diagnostics.py +209 -0
- agentbundle-0.41.1/agentbundle/catalogue_tooling/file_safety.py +484 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/catalogue_tooling/lint.py +312 -9
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/catalogue_tooling/okf_discovery.py +109 -3
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/catalogue_tooling/self_host_windows.py +110 -1
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/catalogue_tooling/verify.py +11 -1
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/cli.py +36 -2
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/commands/_common.py +25 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/commands/init_state.py +8 -3
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/commands/install.py +86 -14
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/commands/list_installed.py +24 -1
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/commands/render.py +16 -20
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/commands/validate.py +163 -1
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/config.py +39 -2
- agentbundle-0.41.1/agentbundle/direct_install.py +1162 -0
- agentbundle-0.41.1/agentbundle/direct_source.py +1171 -0
- agentbundle-0.41.1/agentbundle/direct_source_acquisition.py +852 -0
- agentbundle-0.41.1/agentbundle/direct_source_state.py +359 -0
- agentbundle-0.41.1/agentbundle/direct_validate.py +88 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/render.py +46 -4
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/statelock.py +47 -1
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/version.py +1 -1
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/workspace_mcp.py +53 -11
- {agentbundle-0.38.6 → agentbundle-0.41.1/agentbundle.egg-info}/PKG-INFO +97 -5
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle.egg-info/SOURCES.txt +42 -1
- {agentbundle-0.38.6 → agentbundle-0.41.1}/pyproject.toml +2 -1
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/_support.py +10 -1
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/fixtures/recipes/bogus-target.toml +1 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/test_adapter_codex.py +30 -0
- agentbundle-0.41.1/tests/build_pipeline/test_adapter_kiro_cli.py +299 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/test_adapter_kiro_ide.py +121 -0
- agentbundle-0.41.1/tests/build_pipeline/test_agent_boundary_metadata_projection.py +253 -0
- agentbundle-0.41.1/tests/build_pipeline/test_agent_plugin_projection.py +1197 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/test_contract.py +34 -87
- agentbundle-0.41.1/tests/build_pipeline/test_distribution_route_contract.py +398 -0
- agentbundle-0.41.1/tests/build_pipeline/test_distribution_route_golden.py +204 -0
- agentbundle-0.41.1/tests/build_pipeline/test_distribution_route_resolution.py +434 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/test_end_to_end_build.py +3 -2
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/test_lint_packs.py +19 -0
- agentbundle-0.41.1/tests/fixtures/cognitive-load-hosts.json +32 -0
- agentbundle-0.41.1/tests/fixtures/direct/ac35_corpus_verdicts.json +342 -0
- agentbundle-0.41.1/tests/fixtures/direct/golden_state_0_5.toml +29 -0
- agentbundle-0.41.1/tests/fixtures/distribution-routes/golden.json +171 -0
- agentbundle-0.41.1/tests/integration/test_direct_install.py +1013 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_install_cmd.py +8 -1
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_install_repo_scope_per_adapter.py +13 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_local_scope_install.py +1 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_marketplace_entry_validation.py +40 -14
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_plugin_route_membership.py +3 -3
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_self_host_sweep_respects_state.py +121 -15
- agentbundle-0.41.1/tests/performance/test_direct_family2_budget_cost.py +211 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/test_workspace_mcp_lifecycle.py +5 -2
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/test_workspace_mcp_tools.py +65 -0
- agentbundle-0.41.1/tests/unit/__init__.py +0 -0
- agentbundle-0.41.1/tests/unit/test_architect_readme_install_command.py +58 -0
- agentbundle-0.41.1/tests/unit/test_catalogue_tooling_file_safety.py +311 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_catalogue_tooling_lint.py +277 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_codex_agent_toml.py +12 -1
- agentbundle-0.41.1/tests/unit/test_cognitive_load_seed_contract.py +129 -0
- agentbundle-0.41.1/tests/unit/test_direct_admission.py +1026 -0
- agentbundle-0.41.1/tests/unit/test_direct_architecture_controls.py +524 -0
- agentbundle-0.41.1/tests/unit/test_direct_diagnostics.py +467 -0
- agentbundle-0.41.1/tests/unit/test_direct_source_acquisition.py +531 -0
- agentbundle-0.41.1/tests/unit/test_direct_source_state.py +366 -0
- agentbundle-0.41.1/tests/unit/test_direct_upgrade.py +124 -0
- agentbundle-0.41.1/tests/unit/test_direct_validate.py +412 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_install_first_value_handoff.py +32 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_okf_discovery.py +55 -7
- agentbundle-0.41.1/tests/unit/test_orphan_sweep_guards.py +147 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_pack_config_api.py +148 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_plugin_scope_filter.py +1 -1
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_render_cmd.py +68 -6
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_self_host_windows.py +19 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_state_v0_4_schema.py +5 -2
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_statelock.py +39 -0
- agentbundle-0.41.1/tests/unit/test_windows_direct_suite_registration.py +142 -0
- agentbundle-0.38.6/agentbundle/build/main.py +0 -1287
- agentbundle-0.38.6/agentbundle/catalogue_tooling/diagnostics.py +0 -42
- agentbundle-0.38.6/agentbundle/catalogue_tooling/file_safety.py +0 -217
- agentbundle-0.38.6/tests/build_pipeline/test_adapter_kiro_cli.py +0 -143
- agentbundle-0.38.6/tests/fixtures/blank_catalogue/packs/_example/.apm/skills/example-skill/SKILL.md +0 -27
- agentbundle-0.38.6/tests/unit/test_architect_readme_install_command.py +0 -26
- agentbundle-0.38.6/tests/unit/test_catalogue_tooling_file_safety.py +0 -54
- {agentbundle-0.38.6 → agentbundle-0.41.1}/MANIFEST.in +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/__init__.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/__main__.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/_data/__init__.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/_data/catalogue-index.schema.json +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/_data/catalogue-scaffold/guides/_shared/reference/catalogue-ci-contract.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/_data/catalogue-scaffold/packs/AGENTS.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/_data/catalogue-scaffold/packs/README.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/_data/catalogue-scaffold/packs/_example/.apm/skills/example-skill/evals/eval_queries.json +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/_data/catalogue-scaffold/packs/_example/README.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/_data/catalogue-scaffold/profiles/AGENTS.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/_data/catalogue-scaffold/profiles/README.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/_data/catalogue-scaffold/profiles/_example/README.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/_data/catalogue-scaffold/profiles/_example/profile.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/_data/catalogue-scaffold/tests/conformance/test_gemini_admissibility.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/_data/catalogue-scaffold/tests/conformance/test_pack_metadata.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/_data/catalogue-scaffold/tests/conformance/test_shared_library_boundaries.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/_data/catalogue.schema.json +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/_data/guide.schema.json +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/_data/install-defaults.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/_data/install-marker.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/_data/knowledge-captured-observation.schema.json +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/_data/marketplace-entry.schema.json +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/_data/plugin-manifest.derived.schema.json +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/_data/plugin-manifest.schema.json +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/_data/profile.schema.json +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/_data/skill-manifest.schema.json +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/_data/skill.schema.json +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/_data/target-vocab.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/__init__.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/__main__.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/adapter_root_bins.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/adapters/__init__.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/adapters/kiro_cli.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/contract.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/phase_order.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/projections/__init__.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/projections/copilot_agent_md.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/projections/copilot_hooks_json.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/projections/direct_directory.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/projections/gemini_command_toml.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/projections/hook_id.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/projections/kiro_ide_hook.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/projections/merge_into_agent_json.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/projections/merge_json.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/projections/plugin_hooks.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/projections/user_merge_json.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/recipes/composite-agents-md.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/recipes/composite-marketplace.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/recipes/per-pack-overlay.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/recipes/self-host.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/scope_rails.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/shared_libs.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/target_resolver.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/user_libs.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/build/validate.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/catalogue_tooling/__init__.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/catalogue_tooling/archive.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/catalogue_tooling/build.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/catalogue_tooling/config.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/catalogue_tooling/contracts_inspector.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/catalogue_tooling/defaults.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/catalogue_tooling/identity.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/catalogue_tooling/index_generator.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/catalogue_tooling/initialise.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/catalogue_tooling/initialise_self_hosted.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/catalogue_tooling/journey_validator.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/catalogue_tooling/manifest.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/catalogue_tooling/package.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/catalogue_tooling/results.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/catalogue_tooling/self_host.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/catalogue_tooling/skill_spec_lint.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/catalogue_tooling/toml_emit.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/catalogue_tooling/version_ranges.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/categories.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/commands/__init__.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/commands/_drop_warning.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/commands/adapt.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/commands/catalogue_build.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/commands/catalogue_contracts.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/commands/catalogue_index.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/commands/catalogue_init.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/commands/catalogue_lint.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/commands/catalogue_package.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/commands/catalogue_self_host.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/commands/catalogue_sync_defaults.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/commands/catalogue_tooling_stub.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/commands/catalogue_verify.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/commands/config.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/commands/diff.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/commands/docs.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/commands/list_packs.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/commands/list_profiles.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/commands/list_targets.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/commands/oplog_cmd.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/commands/pack_config_cmd.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/commands/pack_evals.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/commands/package_catalogue.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/commands/profile.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/commands/reconcile.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/commands/scaffold.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/commands/show.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/commands/uninstall.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/commands/upgrade.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/https_catalogue.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/local_exclude.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/oplog.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/pack_inventory.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/safety.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/scaffold.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/scope.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/source_defaults.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/system_trust.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/user_config.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle.egg-info/dependency_links.txt +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle.egg-info/entry_points.txt +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle.egg-info/requires.txt +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle.egg-info/top_level.txt +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/conftest.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/setup.cfg +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/templates/install-marker.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/__init__.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/__init__.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/fixtures/README.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/fixtures/claude-code-2.1.226-hook-events.json +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/fixtures/claude-code-2.1.228-hook-events.json +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/fixtures/packs/core/.apm/agents/bar.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/fixtures/packs/core/.apm/commands/qux.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/fixtures/packs/core/.apm/hook-wiring/baz.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/fixtures/packs/core/.apm/hook-wiring/qux.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/fixtures/packs/core/.apm/hooks/baz.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/fixtures/packs/core/.apm/hooks/baz.sh +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/fixtures/packs/core/.apm/skills/example/SKILL.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/fixtures/packs/core/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/fixtures/packs/core/pack.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/fixtures/packs/governance-extras/.apm/skills/example/SKILL.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/fixtures/packs/governance-extras/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/fixtures/packs/governance-extras/pack.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/fixtures/packs/monorepo-extras/.apm/skills/example/SKILL.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/fixtures/packs/monorepo-extras/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/fixtures/packs/monorepo-extras/pack.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/fixtures/packs/product-documentation/.apm/skills/example/SKILL.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/fixtures/packs/product-documentation/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/fixtures/packs/product-documentation/pack.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/fixtures/packs/user-guide-diataxis/.apm/skills/example/SKILL.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/fixtures/packs/user-guide-diataxis/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/fixtures/packs/user-guide-diataxis/pack.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/test_adapter_claude_code.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/test_adapter_copilot.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/test_adapter_cursor.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/test_adapter_gemini.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/test_adapter_kiro.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/test_adapter_kiro_alias.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/test_adapter_root_bins_projection.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/test_build_ships_seeds.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/test_contract_scope.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/test_contract_v07.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/test_contract_v08.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/test_direct_directory_cleanup.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/test_hook_wiring_rules.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/test_load_pack_hook_wiring_safely.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/test_pack_schema.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/test_pack_schema_allowed_adapters.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/test_pack_schema_install.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/test_pipeline.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/test_plugin_hooks.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/test_plugin_manifest_schema.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/test_plugin_publication_gates.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/test_projectable_subset.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/test_projection_io.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/test_projections_merge_json.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/test_scope_rails.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/test_security.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/test_self_host_check.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/test_self_host_fixture_guard.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/test_self_host_metadata_policy.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/test_self_host_recipe_config.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/test_shared_libs_projection.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/test_shared_prefix_contract.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/test_user_libs_projection.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/test_validate.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/build_pipeline/test_writers_emit_lf.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/conftest.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/contracts/test_agentbundle_show_schema.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/contracts/test_skill_schema.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/adapt/.adapt-discovery.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/adapt/values.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/blank_catalogue/.claude-plugin/marketplace.json +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/blank_catalogue/catalogue.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/blank_catalogue/packs/.gitkeep +0 -0
- {agentbundle-0.38.6/agentbundle/_data/catalogue-scaffold → agentbundle-0.41.1/tests/fixtures/blank_catalogue}/packs/_example/.apm/skills/example-skill/SKILL.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/blank_catalogue/packs/_example/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/blank_catalogue/packs/_example/README.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/blank_catalogue/packs/_example/evals/eval_queries.json +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/blank_catalogue/packs/_example/pack.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/blank_catalogue/profiles/.gitkeep +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/blank_catalogue/profiles/_example/README.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/blank_catalogue/profiles/_example/profile.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/brownfield/values.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/brownfield-adapt/AGENTS.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/brownfield-adapt/AGENTS.upstream.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/brownfield-adapt/DESIGN.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/brownfield-adapt/EXPECTED_TREE.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/brownfield-adapt/docs/CHARTER.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/brownfield-adapt/docs/guides/how-to/index.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/brownfield-adapt/docs/howto/getting-started.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/brownfield-adapt-expected/AGENTS.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/brownfield-adapt-expected/docs/CHARTER.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/brownfield-adapt-user-home/.agentbundle/.adapt-discovery.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/brownfield-adapt-user-home/.agentbundle/state.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/catalogue_wave4/catalogue.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/catalogue_wave4/packs/pack-with-journey/.apm/hook-wiring/example.json +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/catalogue_wave4/packs/pack-with-journey/.apm/skills/example-skill/SKILL.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/catalogue_wave4/packs/pack-with-journey/.apm/skills/example-skill/scripts/run.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/catalogue_wave4/packs/pack-with-journey/JOURNEY.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/catalogue_wave4/packs/pack-with-journey/pack.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/catalogue_wave4/packs/pack-without-journey/pack.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/catalogue_wave4/profiles/test-profile.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/creds/skills/argv-flag/SKILL.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/creds/skills/argv-flag/scripts/cli.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/creds/skills/argv-flag-derived/SKILL.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/creds/skills/argv-flag-derived/scripts/cli.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/creds/skills/argv-flag-normalised/SKILL.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/creds/skills/argv-flag-normalised/scripts/cli.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/creds/skills/conforming/SKILL.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/creds/skills/conforming/scripts/cli.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/creds/skills/dotfile-grep/SKILL.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/creds/skills/dotfile-grep/scripts/leak.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/creds/skills/dotfile-with-optout/SKILL.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/creds/skills/dotfile-with-optout/scripts/legit.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/creds/skills/mcp-server-headers/SKILL.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/creds/skills/mcp-server-headers/scripts/cli.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/creds/skills/missing-dont-block/SKILL.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/external_catalogue/.claude-plugin/marketplace.json +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/external_catalogue/AGENTS.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/external_catalogue/LICENSE-APACHE +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/external_catalogue/LICENSE-MIT +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/external_catalogue/agentbundle/_data/install-defaults.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/external_catalogue/catalogue.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/external_catalogue/packs/alpha/.apm/skills/example/SKILL.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/external_catalogue/packs/alpha/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/external_catalogue/packs/alpha/pack.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/external_catalogue/packs/alpha/seeds/AGENTS.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/external_catalogue/packs/beta/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/external_catalogue/packs/beta/pack.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/external_catalogue/profiles/example.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/install/catalogue/packs/alpha/.apm/agents/helper.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/install/catalogue/packs/alpha/.apm/commands/cmd.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/install/catalogue/packs/alpha/.apm/hook-wiring/run.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/install/catalogue/packs/alpha/.apm/hooks/run.sh +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/install/catalogue/packs/alpha/.apm/skills/example/SKILL.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/install/catalogue/packs/alpha/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/install/catalogue/packs/alpha/pack.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/kiro_ide_hook/ask_agent_basic.kiro.hook +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/kiro_ide_hook/run_command_with_placeholder.kiro.hook +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/lint_packs/clean/pack.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/lint_packs/clean/seeds/README.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/list-installed/golden_120col.txt +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/list-installed/golden_80col.txt +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/list_packs/catalogue/packs/alpha/pack.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/list_packs/catalogue/packs/beta/pack.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/local_scope/catalogue/packs/local-test-pack/.apm/skills/local-test/SKILL.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/local_scope/catalogue/packs/local-test-pack/pack.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/packs/cc-user-hooks/.apm/hook-wiring/on-prompt.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/packs/cc-user-hooks/.apm/hooks/on-prompt.sh +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/packs/cc-user-hooks/pack.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/packs/kiro-repo-hooks/.apm/agents/reviewer.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/packs/kiro-repo-hooks/.apm/hook-wiring/on-spawn.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/packs/kiro-repo-hooks/.apm/hooks/on-spawn.sh +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/packs/kiro-repo-hooks/pack.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/packs/kiro-user-hooks/.apm/agents/reviewer.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/packs/kiro-user-hooks/.apm/hook-wiring/on-spawn.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/packs/kiro-user-hooks/.apm/hooks/on-spawn.sh +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/packs/kiro-user-hooks/pack.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/packs/malformed-kiro-missing-attach/.apm/agents/reviewer.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/packs/malformed-kiro-missing-attach/.apm/hook-wiring/on-spawn.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/packs/malformed-kiro-missing-attach/.apm/hooks/on-spawn.sh +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/packs/malformed-kiro-missing-attach/pack.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/packs/malformed-kiro-pascal-events/.apm/agents/reviewer.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/packs/malformed-kiro-pascal-events/.apm/hook-wiring/on-spawn.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/packs/malformed-kiro-pascal-events/.apm/hooks/on-spawn.sh +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/packs/malformed-kiro-pascal-events/pack.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/packs/malformed-kiro-unknown-agent/.apm/agents/reviewer.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/packs/malformed-kiro-unknown-agent/.apm/hook-wiring/on-spawn.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/packs/malformed-kiro-unknown-agent/.apm/hooks/on-spawn.sh +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/packs/malformed-kiro-unknown-agent/pack.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/scaffold/test-pack/seeds/AGENTS.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/scaffold/test-pack/seeds/_agents-footer.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/scaffold/test-pack/seeds/docs/CHARTER.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/show_contract/agentbundle-show.schema.json +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/show_contract/catalogue.json +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/show_contract/installed_state.json +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/agents/reviewer.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/commands/deploy.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/hook-wiring/pre-commit.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/hooks/lint.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/hooks/pre-commit.sh +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/skills/work-loop/SKILL.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/upgrade/catalogue_v1/packs/core/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/upgrade/catalogue_v1/packs/core/pack.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/agents/reviewer.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/commands/deploy.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/hook-wiring/pre-commit.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/hooks/lint.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/hooks/pre-commit.sh +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/skills/work-loop/SKILL.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/upgrade/catalogue_v2/packs/core/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/upgrade/catalogue_v2/packs/core/pack.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/agents/reviewer.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/commands/deploy.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/hook-wiring/pre-commit.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/hooks/lint.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/hooks/pre-commit.sh +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/skills/work-loop/SKILL.md +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/upgrade/catalogue_v3/packs/core/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/upgrade/catalogue_v3/packs/core/pack.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/validate/bad_recipe_pack/pack.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/validate/malformed_pack/pack.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/validate/valid_pack/pack.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/fixtures/validate/version_mismatch_pack/pack.toml +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/__init__.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_adapt_cmd.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_adapt_dual_scope.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_adapt_preflight_detection.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_adapt_schema_migration.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_apm_install_route.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_blank_catalogue.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_brownfield_adapt_end_to_end.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_brownfield_round_trip.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_brownfield_user_home_fixture.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_build_check_drift_gates.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_build_derivation_apm.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_build_derivation_claude_plugins.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_catalogue_init.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_catalogue_verify_adapter_compat.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_catalogue_verify_dependencies.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_catalogue_verify_external_portability.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_catalogue_verify_fixture_checks.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_catalogue_verify_marketplace.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_catalogue_verify_output_drift.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_catalogue_verify_package_preflight.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_catalogue_verify_plugin_path.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_catalogue_verify_profile_schema.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_catalogue_verify_step1.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_catalogue_wave4_index_generator.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_catalogue_wave4_integration.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_catalogue_wave4_journey_validator.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_catalogue_wave4_schema.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_cc_user_hooks_fixture.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_claude_plugins_install_route.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_config_cascade.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_credential_brokers_pack_install.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_credentials_wheel.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_discovery_schema_cross_consumer.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_editable_source_detection.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_fixtures_validate.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_hook_wiring_ingress.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_install_adapt_chain.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_install_converters_user_scope.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_install_copilot_full_parity.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_install_core_smoke.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_install_default_source.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_install_dependencies_gate.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_install_dropped_primitives_warning.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_install_dual_scope.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_install_orphan_reshape.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_install_pack_metadata_shape.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_install_profile.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_install_profile_live.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_install_research_user_scope.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_install_seed_delivery.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_install_session_start_wiring.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_install_upgrade_offer.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_install_user_hooks.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_install_user_scope_allowed_adapters.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_kiro_ide_hook_e2e.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_kiro_repo_hooks_fixture.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_kiro_user_hooks_fixture.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_list_packs_cmd.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_marketplace_manifest_regression.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_multi_pack_install.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_orphan_cleanup_respects_foreign_state.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_recommends_cross_scope.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_reconcile.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_reserved_path_filter.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_scaffold_projection.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_self_host_schema_migration.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_shared_prefix_coexistence.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_show_cmd.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_tier_invariants.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_trust_fallback_tls.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_uninstall_cmd.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_uninstall_user_hooks.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_upgrade_attach_to_agent.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_upgrade_cmd.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_upgrade_user_hooks.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_version_gate_matrix.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_workspace_mcp_git_fsm.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/integration/test_zipapp.py +0 -0
- {agentbundle-0.38.6/tests/unit → agentbundle-0.41.1/tests/performance}/__init__.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/test_adapter_permissions_projection.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/test_workspace_mcp_elicit.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/test_workspace_mcp_event_bridge.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/test_workspace_mcp_git.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/test_workspace_mcp_stdin.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_adapt_discovery_schema.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_adapter_symlink_policy.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_append_layout_section.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_catalogue_ci_contract.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_catalogue_curation_deps.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_catalogue_init_cli_self_hosted.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_catalogue_pack_defaults.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_catalogue_self_hosted_export_removal.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_catalogue_skill_spec_lint.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_catalogue_tooling_archive.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_catalogue_tooling_build.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_catalogue_tooling_defaults.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_catalogue_tooling_foundation.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_catalogue_tooling_identity.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_catalogue_tooling_init.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_catalogue_tooling_package.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_catalogue_tooling_self_host.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_catalogue_tooling_self_hosted_init.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_catalogue_tooling_source_package.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_catalogue_tooling_verify.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_catalogue_trust_fallback.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_catalogue_wave2_schema.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_catalogue_wave2_validation.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_catalogue_wave3_contracts_cli.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_catalogue_wave3_contracts_inspector.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_catalogue_wave3_init_nextsteps.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_catalogue_wave3_offline_navigation.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_cli_catalogue_optional.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_cli_help_lists_config.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_cli_list_targets_help.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_cli_path_normalisation.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_cli_profile_surface.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_cli_scope_flags.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_codex_projection_modes.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_collect_tree_symlinks.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_common_classify_seeds.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_config.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_config_cmd.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_configured_adapter.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_confirm_helper.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_contract_parity.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_contract_v0_3_schema.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_copilot_agent_md.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_copilot_hooks_json.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_copilot_user_scope_wiring.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_credbroker_lint_hardening.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_dependencies_batch.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_diff_cmd.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_footprint_ownership.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_https_catalogue.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_init_state_cmd.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_install_argparse_adapter_flag.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_install_argparse_emit_install_routes.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_install_defaults_preferred_adapter.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_install_dropped_primitives_warning.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_install_event_dropped_wirings.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_install_force_help.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_install_inband_detection.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_install_messages.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_install_messages_repo_scope.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_install_refusal_ordering.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_install_state_provenance.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_kiro_ide_hook_projection.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_kiro_ide_hook_rail.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_kiro_ide_hook_schema.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_lint_agent_artifacts_metadata_auth.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_list_installed_cmd.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_list_installed_status.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_list_targets_cmd.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_local_exclude_git_cache.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_local_scope_schema.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_local_scope_t10_uninstall.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_local_scope_t12_show.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_local_scope_t2_resolve.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_local_scope_t3_config.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_local_scope_t4_state_path.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_local_scope_t5_list_installed.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_local_scope_t7_install_gates.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_local_scope_t8_install.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_local_scope_t9_exclude.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_marker_schema_version_parity.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_merge_into_agent_json.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_multi_adapter_disambiguator.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_nested_symlink_hardening.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_org_bootstrap.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_pack_inventory.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_package_catalogue.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_packstate_source_provenance.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_pipeline_phase_order.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_profile_reader.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_render.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_render_table.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_resolve_state_path.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_resolve_target_adapter_user_config.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_resolve_user_scope_target_adapter.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_safety.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_safety_repo_scope_prefixes.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_safety_scan_per_pack_scoping.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_scaffold_cmd.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_scope.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_shared_prefix_disclosure.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_source_conflict_guard.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_source_defaults.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_state_v01_refuse_write.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_state_v02.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_statelock_hardening.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_system_trust.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_target_resolver.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_toml_emitters.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_unresolved_markers.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_upgrade_bulk_all.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_upgrade_recap.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_upgrade_source_inference.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_user_config_io.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_user_config_isolation.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_user_config_path.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_user_config_source.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_user_merge_json.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_validate_attach_to_agent.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_validate_categories.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_validate_cmd.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_validate_hook_wiring_per_file_compatibility.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_values_from_shapes.py +0 -0
- {agentbundle-0.38.6 → agentbundle-0.41.1}/tests/unit/test_version.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agentbundle
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.41.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
|
|
@@ -34,6 +34,97 @@ python -m pip install agentbundle
|
|
|
34
34
|
|
|
35
35
|
Requires Python 3.11+. Runs on macOS, Linux, and Windows.
|
|
36
36
|
|
|
37
|
+
## What's new in 0.41.1
|
|
38
|
+
|
|
39
|
+
The same release as 0.41.0, which never reached PyPI: its release run failed a
|
|
40
|
+
pre-release gate on a faulty performance measurement, so the version exists in
|
|
41
|
+
the internal repository but was never published here. No shipped code differs
|
|
42
|
+
between the two.
|
|
43
|
+
|
|
44
|
+
## What's new in 0.41.0
|
|
45
|
+
|
|
46
|
+
`install` and `validate` now accept a skill folder, a `skills/` collection, or a
|
|
47
|
+
single pack taken straight from a repository — no catalogue required. A direct
|
|
48
|
+
source is admitted against explicit shape and size bounds, pinned to the commit
|
|
49
|
+
its bytes came from, and summarised for consent before anything is written.
|
|
50
|
+
|
|
51
|
+
## What's new in 0.40.3
|
|
52
|
+
|
|
53
|
+
Catalogue validation now checks bounded reviewer declarations and keeps their
|
|
54
|
+
least-privilege posture in supported adapter projections.
|
|
55
|
+
|
|
56
|
+
## What's new in 0.40.2
|
|
57
|
+
|
|
58
|
+
Catalogue seed lint now accepts the core pack's bounded rule router,
|
|
59
|
+
cognitive-load topic, and scoped docs guidance. Undeclared seed paths still
|
|
60
|
+
fail closed.
|
|
61
|
+
|
|
62
|
+
## What's new in 0.40.1
|
|
63
|
+
|
|
64
|
+
Workspace MCP lifecycle metadata now dispatches briefs to the canonical
|
|
65
|
+
`author-delivery-brief` owner. Existing workspace kinds, queues, paths, and
|
|
66
|
+
lifecycle semantics are unchanged.
|
|
67
|
+
|
|
68
|
+
## What's new in 0.40.0
|
|
69
|
+
|
|
70
|
+
Catalogue builds now produce offline-validatable Agent Plugins 1.0.0 packages
|
|
71
|
+
under `dist/agent-plugins/<pack>/` for every skills-only pack. The new route
|
|
72
|
+
preserves canonical skill bytes and executable bits, emits a privacy-minimal
|
|
73
|
+
root `plugin.json`, and reports every pack excluded by non-portable primitives.
|
|
74
|
+
The paired plugin and MCP schemas are bundled from an immutable upstream commit;
|
|
75
|
+
MCP behavior remains a separate follow-on.
|
|
76
|
+
|
|
77
|
+
Extension namespaces are closed and allocation-gated. Kiro and Copilot are
|
|
78
|
+
reserved, while active namespaces must name a versioned schema before their
|
|
79
|
+
manifest data or files can enter a portable artifact.
|
|
80
|
+
|
|
81
|
+
## What's new in 0.39.4
|
|
82
|
+
|
|
83
|
+
Codex-projected agents that declare `Read`, `Grep`, or `Glob` without `Bash`
|
|
84
|
+
can read and search local files again. AgentBundle now retains Codex's default
|
|
85
|
+
shell tool for those read intents while confining the agent to a read-only
|
|
86
|
+
sandbox; write and web capabilities still require their corresponding source
|
|
87
|
+
declarations.
|
|
88
|
+
|
|
89
|
+
Kiro IDE and CLI agents may also declare `resources: []` to suppress the
|
|
90
|
+
default skill-resource injection without emitting an empty consumer field. The
|
|
91
|
+
portable way to say the same thing is Claude Code's own `skills: []`, which now
|
|
92
|
+
suppresses that injection too — a non-empty `skills` list is a build error until
|
|
93
|
+
`skill://` URI templating exists.
|
|
94
|
+
|
|
95
|
+
**Breaking for Kiro agent sources:** the Kiro projectors now bound the field set
|
|
96
|
+
they emit rather than passing unmapped source frontmatter through verbatim.
|
|
97
|
+
Claude Code fields Kiro cannot read (`permissionMode`, `memory`, `maxTurns`, …)
|
|
98
|
+
and IDE-only keys that make the CLI loader drop an agent (`hooks`) are dropped,
|
|
99
|
+
each with a `kiro: dropping … agent field` line on stderr. If you relied on the
|
|
100
|
+
previous pass-through, check your build log after upgrading.
|
|
101
|
+
## What's new in 0.39.3
|
|
102
|
+
|
|
103
|
+
The bundled workspace-status engine now recognizes reviewed legacy work-intake
|
|
104
|
+
migrations, validates durable operation digests, and refuses linked or aliased
|
|
105
|
+
workspace input before projecting exact legacy bytes.
|
|
106
|
+
|
|
107
|
+
## What's new in 0.39.2
|
|
108
|
+
|
|
109
|
+
Level A packs can now provide an optional manual next step after installation.
|
|
110
|
+
When present, `agentbundle install` prints it after `Verify:`, so packs can guide
|
|
111
|
+
adopters even when a runtime hook does not execute. Existing packs without the
|
|
112
|
+
field keep their current output, and Level B packs still require it.
|
|
113
|
+
|
|
114
|
+
## What's new in 0.39.1
|
|
115
|
+
|
|
116
|
+
Catalogue seed lint now rejects generic directory-tree placeholders unless the
|
|
117
|
+
architecture overview also explains each area's responsibility and change
|
|
118
|
+
guidance. This keeps generated starter repositories useful without assuming a
|
|
119
|
+
particular application layout.
|
|
120
|
+
|
|
121
|
+
## What's new in 0.39.0
|
|
122
|
+
|
|
123
|
+
Catalogue builders can now inspect a first-class, schema-validated distribution
|
|
124
|
+
route contract for the existing APM and Claude-plugin package formats. Recipes
|
|
125
|
+
name their route explicitly and fail before writing on inconsistent route data;
|
|
126
|
+
the emitted package trees and direct-install behavior are unchanged.
|
|
127
|
+
|
|
37
128
|
## What's new in 0.38.6
|
|
38
129
|
|
|
39
130
|
Catalogue authors can now read the profile schema from initialized catalogues
|
|
@@ -144,10 +235,11 @@ agentbundle catalogue index . --output catalogue-index.json
|
|
|
144
235
|
|
|
145
236
|
## Contract discovery
|
|
146
237
|
|
|
147
|
-
The bundled public contract inventory includes `
|
|
148
|
-
|
|
149
|
-
`
|
|
150
|
-
|
|
238
|
+
The bundled public contract inventory includes `distribution-routes.toml` and
|
|
239
|
+
its closed schema for package-route semantics, plus
|
|
240
|
+
`catalogue-index.schema.json` for generated neutral indexes. It also includes
|
|
241
|
+
the strict `knowledge-captured-observation.schema.json` contract used by the
|
|
242
|
+
core pack's project-knowledge capture handoff.
|
|
151
243
|
|
|
152
244
|
You can inspect the exact public contracts bundled with the installed
|
|
153
245
|
AgentBundle version without network access:
|
|
@@ -14,6 +14,97 @@ 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.41.1
|
|
18
|
+
|
|
19
|
+
The same release as 0.41.0, which never reached PyPI: its release run failed a
|
|
20
|
+
pre-release gate on a faulty performance measurement, so the version exists in
|
|
21
|
+
the internal repository but was never published here. No shipped code differs
|
|
22
|
+
between the two.
|
|
23
|
+
|
|
24
|
+
## What's new in 0.41.0
|
|
25
|
+
|
|
26
|
+
`install` and `validate` now accept a skill folder, a `skills/` collection, or a
|
|
27
|
+
single pack taken straight from a repository — no catalogue required. A direct
|
|
28
|
+
source is admitted against explicit shape and size bounds, pinned to the commit
|
|
29
|
+
its bytes came from, and summarised for consent before anything is written.
|
|
30
|
+
|
|
31
|
+
## What's new in 0.40.3
|
|
32
|
+
|
|
33
|
+
Catalogue validation now checks bounded reviewer declarations and keeps their
|
|
34
|
+
least-privilege posture in supported adapter projections.
|
|
35
|
+
|
|
36
|
+
## What's new in 0.40.2
|
|
37
|
+
|
|
38
|
+
Catalogue seed lint now accepts the core pack's bounded rule router,
|
|
39
|
+
cognitive-load topic, and scoped docs guidance. Undeclared seed paths still
|
|
40
|
+
fail closed.
|
|
41
|
+
|
|
42
|
+
## What's new in 0.40.1
|
|
43
|
+
|
|
44
|
+
Workspace MCP lifecycle metadata now dispatches briefs to the canonical
|
|
45
|
+
`author-delivery-brief` owner. Existing workspace kinds, queues, paths, and
|
|
46
|
+
lifecycle semantics are unchanged.
|
|
47
|
+
|
|
48
|
+
## What's new in 0.40.0
|
|
49
|
+
|
|
50
|
+
Catalogue builds now produce offline-validatable Agent Plugins 1.0.0 packages
|
|
51
|
+
under `dist/agent-plugins/<pack>/` for every skills-only pack. The new route
|
|
52
|
+
preserves canonical skill bytes and executable bits, emits a privacy-minimal
|
|
53
|
+
root `plugin.json`, and reports every pack excluded by non-portable primitives.
|
|
54
|
+
The paired plugin and MCP schemas are bundled from an immutable upstream commit;
|
|
55
|
+
MCP behavior remains a separate follow-on.
|
|
56
|
+
|
|
57
|
+
Extension namespaces are closed and allocation-gated. Kiro and Copilot are
|
|
58
|
+
reserved, while active namespaces must name a versioned schema before their
|
|
59
|
+
manifest data or files can enter a portable artifact.
|
|
60
|
+
|
|
61
|
+
## What's new in 0.39.4
|
|
62
|
+
|
|
63
|
+
Codex-projected agents that declare `Read`, `Grep`, or `Glob` without `Bash`
|
|
64
|
+
can read and search local files again. AgentBundle now retains Codex's default
|
|
65
|
+
shell tool for those read intents while confining the agent to a read-only
|
|
66
|
+
sandbox; write and web capabilities still require their corresponding source
|
|
67
|
+
declarations.
|
|
68
|
+
|
|
69
|
+
Kiro IDE and CLI agents may also declare `resources: []` to suppress the
|
|
70
|
+
default skill-resource injection without emitting an empty consumer field. The
|
|
71
|
+
portable way to say the same thing is Claude Code's own `skills: []`, which now
|
|
72
|
+
suppresses that injection too — a non-empty `skills` list is a build error until
|
|
73
|
+
`skill://` URI templating exists.
|
|
74
|
+
|
|
75
|
+
**Breaking for Kiro agent sources:** the Kiro projectors now bound the field set
|
|
76
|
+
they emit rather than passing unmapped source frontmatter through verbatim.
|
|
77
|
+
Claude Code fields Kiro cannot read (`permissionMode`, `memory`, `maxTurns`, …)
|
|
78
|
+
and IDE-only keys that make the CLI loader drop an agent (`hooks`) are dropped,
|
|
79
|
+
each with a `kiro: dropping … agent field` line on stderr. If you relied on the
|
|
80
|
+
previous pass-through, check your build log after upgrading.
|
|
81
|
+
## What's new in 0.39.3
|
|
82
|
+
|
|
83
|
+
The bundled workspace-status engine now recognizes reviewed legacy work-intake
|
|
84
|
+
migrations, validates durable operation digests, and refuses linked or aliased
|
|
85
|
+
workspace input before projecting exact legacy bytes.
|
|
86
|
+
|
|
87
|
+
## What's new in 0.39.2
|
|
88
|
+
|
|
89
|
+
Level A packs can now provide an optional manual next step after installation.
|
|
90
|
+
When present, `agentbundle install` prints it after `Verify:`, so packs can guide
|
|
91
|
+
adopters even when a runtime hook does not execute. Existing packs without the
|
|
92
|
+
field keep their current output, and Level B packs still require it.
|
|
93
|
+
|
|
94
|
+
## What's new in 0.39.1
|
|
95
|
+
|
|
96
|
+
Catalogue seed lint now rejects generic directory-tree placeholders unless the
|
|
97
|
+
architecture overview also explains each area's responsibility and change
|
|
98
|
+
guidance. This keeps generated starter repositories useful without assuming a
|
|
99
|
+
particular application layout.
|
|
100
|
+
|
|
101
|
+
## What's new in 0.39.0
|
|
102
|
+
|
|
103
|
+
Catalogue builders can now inspect a first-class, schema-validated distribution
|
|
104
|
+
route contract for the existing APM and Claude-plugin package formats. Recipes
|
|
105
|
+
name their route explicitly and fail before writing on inconsistent route data;
|
|
106
|
+
the emitted package trees and direct-install behavior are unchanged.
|
|
107
|
+
|
|
17
108
|
## What's new in 0.38.6
|
|
18
109
|
|
|
19
110
|
Catalogue authors can now read the profile schema from initialized catalogues
|
|
@@ -124,10 +215,11 @@ agentbundle catalogue index . --output catalogue-index.json
|
|
|
124
215
|
|
|
125
216
|
## Contract discovery
|
|
126
217
|
|
|
127
|
-
The bundled public contract inventory includes `
|
|
128
|
-
|
|
129
|
-
`
|
|
130
|
-
|
|
218
|
+
The bundled public contract inventory includes `distribution-routes.toml` and
|
|
219
|
+
its closed schema for package-route semantics, plus
|
|
220
|
+
`catalogue-index.schema.json` for generated neutral indexes. It also includes
|
|
221
|
+
the strict `knowledge-captured-observation.schema.json` contract used by the
|
|
222
|
+
core pack's project-knowledge capture handoff.
|
|
131
223
|
|
|
132
224
|
You can inspect the exact public contracts bundled with the installed
|
|
133
225
|
AgentBundle version without network access:
|
|
@@ -43,7 +43,7 @@ The install auto-detects your agent (`--adapter` overrides). Multi-IDE? Install
|
|
|
43
43
|
agentbundle list-packs
|
|
44
44
|
agentbundle list-profiles
|
|
45
45
|
|
|
46
|
-
# See what a single pack contains —
|
|
46
|
+
# See what a single pack contains — inventory and catalogue metadata, derived live
|
|
47
47
|
agentbundle show core
|
|
48
48
|
agentbundle show core --format json # stable object for scripts/agents
|
|
49
49
|
|
|
@@ -72,7 +72,18 @@ agentbundle uninstall --pack core --yes
|
|
|
72
72
|
|
|
73
73
|
**`list-installed`** reads your state files (not the catalogue) and reports every installed `(pack, adapter)` at each scope with its version and a four-value status — `up-to-date`, `upgrade-available`, `ahead` (installed version is newer than catalogue), or `unknown`; it degrades to `unknown` (never an error) when the catalogue can't be resolved, and `--no-check` skips the check entirely. `--format json` emits a stable JSON contract (`schema_version: 1`) to stdout — useful for CI automation of upgrade decisions. `--updates-only` hides `up-to-date` rows.
|
|
74
74
|
|
|
75
|
-
**`show <pack>`** answers "what
|
|
75
|
+
**`show <pack>`** answers "what does this pack contain?" by walking the pack's
|
|
76
|
+
source tree live on each call, so the answer cannot drift and nothing is
|
|
77
|
+
persisted. `--format json` retains the ordinary `name`, `version`,
|
|
78
|
+
`description`, `skills`, `agents`, `integrations`, and `source` fields and adds
|
|
79
|
+
`pack_metadata`, per-Skill `skill_metadata`, and declared OKF `knowledge` for a
|
|
80
|
+
live catalogue. Those three rich metadata fields are **pre-release**: they are
|
|
81
|
+
source-backed only for live catalogue reads and are not a cross-pack OKF index.
|
|
82
|
+
It is one-pack-at-a-time and read-only: it does not compile
|
|
83
|
+
knowledge, run pack code, or fetch remote OKF content. When the catalogue cannot
|
|
84
|
+
be resolved, an *installed* pack still reports its inventory from state files
|
|
85
|
+
(marked `source: installed-state`), while `pack_metadata`, `skill_metadata`, and
|
|
86
|
+
`knowledge` are exactly `null`; a not-installed pack errors.
|
|
76
87
|
|
|
77
88
|
A **profile** is a catalogue-curated, single-scope set of packs you install in one command — it declares its own scope, so `--scope` doesn't apply. **Upgrade takes no version** — the target is whatever the catalogue you point at declares; to pin a past version, point the catalogue at that git ref. Install a pack that's **already there** and `agentbundle` offers to `upgrade` it instead (`--yes` runs it straight away).
|
|
78
89
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
+
"x-spec": "docs/specs/distribution-route-contract",
|
|
2
3
|
"type": "object",
|
|
3
4
|
"required": ["contract", "primitive", "adapter"],
|
|
4
5
|
"properties": {
|
|
@@ -54,25 +55,6 @@
|
|
|
54
55
|
]
|
|
55
56
|
},
|
|
56
57
|
"target-path": {"type": "string"},
|
|
57
|
-
"plugin-target-path": {"type": "string"},
|
|
58
|
-
"plugin-mode": {
|
|
59
|
-
"type": "string",
|
|
60
|
-
"enum": [
|
|
61
|
-
"direct-directory",
|
|
62
|
-
"direct-file",
|
|
63
|
-
"merge-json",
|
|
64
|
-
"user-merge-json",
|
|
65
|
-
"merge-into-agent-json",
|
|
66
|
-
"instruction-file",
|
|
67
|
-
"managed-block-inline",
|
|
68
|
-
"degraded-info-log",
|
|
69
|
-
"dropped",
|
|
70
|
-
"codex-agent-toml",
|
|
71
|
-
"copilot-agent-md",
|
|
72
|
-
"copilot-hooks-json",
|
|
73
|
-
"gemini-command-toml"
|
|
74
|
-
]
|
|
75
|
-
},
|
|
76
58
|
"on-conflict": {
|
|
77
59
|
"type": "string",
|
|
78
60
|
"enum": [
|
|
@@ -251,13 +233,6 @@
|
|
|
251
233
|
}
|
|
252
234
|
}
|
|
253
235
|
}
|
|
254
|
-
},
|
|
255
|
-
"install-routes": {
|
|
256
|
-
"type": "array",
|
|
257
|
-
"items": {
|
|
258
|
-
"type": "string",
|
|
259
|
-
"enum": ["cli", "claude-plugins", "apm"]
|
|
260
|
-
}
|
|
261
236
|
}
|
|
262
237
|
}
|
|
263
238
|
}
|
|
@@ -180,38 +180,29 @@ source-path = ".apm/user-libs/"
|
|
|
180
180
|
# entries remain authoritative; the new tables are declarative metadata.
|
|
181
181
|
# ---------------------------------------------------------------------------
|
|
182
182
|
|
|
183
|
-
# Install routes declared for this adapter ("claude-plugins" at v0.4;
|
|
184
|
-
# "apm" added at v0.5).
|
|
185
|
-
# Kiro, Copilot, and Codex do not declare install-routes; the field defaults to ["cli"]
|
|
186
|
-
# on read for adapters that omit it.
|
|
187
183
|
[adapter."claude-code"]
|
|
188
|
-
install-routes = ["cli", "claude-plugins", "apm"]
|
|
189
184
|
|
|
190
185
|
[[adapter."claude-code".projection]]
|
|
191
186
|
primitive = "skill"
|
|
192
187
|
mode = "direct-directory"
|
|
193
188
|
target-path = ".claude/skills/"
|
|
194
|
-
plugin-target-path = "skills/"
|
|
195
189
|
on-conflict = "prompt-then-preserve"
|
|
196
190
|
|
|
197
191
|
[[adapter."claude-code".projection]]
|
|
198
192
|
primitive = "agent"
|
|
199
193
|
mode = "direct-file"
|
|
200
194
|
target-path = ".claude/agents/"
|
|
201
|
-
plugin-target-path = "agents/"
|
|
202
195
|
on-conflict = "prompt-then-preserve"
|
|
203
196
|
|
|
204
197
|
[[adapter."claude-code".projection]]
|
|
205
198
|
primitive = "hook-body"
|
|
206
199
|
mode = "direct-file"
|
|
207
200
|
target-path = "tools/hooks/"
|
|
208
|
-
plugin-target-path = "hooks/"
|
|
209
201
|
on-conflict = "prompt-then-preserve"
|
|
210
202
|
|
|
211
203
|
[[adapter."claude-code".projection]]
|
|
212
204
|
primitive = "hook-wiring"
|
|
213
205
|
mode = "merge-json"
|
|
214
|
-
plugin-mode = "dropped"
|
|
215
206
|
target-path = ".claude/settings.local.json"
|
|
216
207
|
managed-key = "hooks"
|
|
217
208
|
on-conflict = "merge-managed-key-only"
|
|
@@ -220,7 +211,6 @@ on-conflict = "merge-managed-key-only"
|
|
|
220
211
|
primitive = "command"
|
|
221
212
|
mode = "direct-file"
|
|
222
213
|
target-path = ".claude/commands/"
|
|
223
|
-
plugin-target-path = "commands/"
|
|
224
214
|
on-conflict = "prompt-then-preserve"
|
|
225
215
|
|
|
226
216
|
# hook-body — scope-conditional target.
|
|
@@ -361,7 +351,12 @@ frontmatter-mapping = "kiro-ide-agent-frontmatter-v0.9"
|
|
|
361
351
|
# #4993). Inject the same fixed skill-resources glob as kiro-cli; the IDE
|
|
362
352
|
# agent `resources` field is documented and `skill://`-aware, so it does not
|
|
363
353
|
# trip the silent-drop bug (that's for non-schema keys like `hooks`). Emitted
|
|
364
|
-
# into the `.md` YAML frontmatter, quoted. Author override wins
|
|
354
|
+
# into the `.md` YAML frontmatter, quoted. Author override wins; an explicit
|
|
355
|
+
# empty `resources` list suppresses injection and is omitted from output, and so
|
|
356
|
+
# does Claude Code's `skills: []` — the portable form of the same intent, since
|
|
357
|
+
# `resources` is Kiro-native and not valid Claude Code agent frontmatter. A
|
|
358
|
+
# non-empty `skills` list is a build error: turning a bare skill name into a
|
|
359
|
+
# `skill://` URI needs templating this mapping grammar cannot express.
|
|
365
360
|
inject-resources = ["skill://.kiro/skills/**/SKILL.md", "skill://~/.kiro/skills/**/SKILL.md"]
|
|
366
361
|
on-conflict = "prompt-then-preserve"
|
|
367
362
|
|
|
@@ -437,8 +432,21 @@ frontmatter-mapping = "kiro-cli-agent-frontmatter-v1.0"
|
|
|
437
432
|
# `--agent` run sees zero skills unless the agent declares them. Inject this
|
|
438
433
|
# fixed skill-resources glob (both install scopes) into every projected agent.
|
|
439
434
|
# Skipped when the agent source already declares its own `resources` (author
|
|
440
|
-
# override wins)
|
|
435
|
+
# override wins); an explicit empty list suppresses injection and is omitted, as
|
|
436
|
+
# does the portable Claude Code `skills: []` opt-out (see the kiro-ide entry).
|
|
437
|
+
# kiro-ide carries the same field on its own agent projection
|
|
441
438
|
# entry (emitted into `.md` frontmatter rather than JSON).
|
|
439
|
+
#
|
|
440
|
+
# Both Kiro agent projectors rewrite the *source frontmatter* and pass unmapped
|
|
441
|
+
# keys through, unlike codex/copilot/cursor/gemini which iterate this mapping and
|
|
442
|
+
# so drop anything unmapped. That is what admits a Kiro-native `resources` or
|
|
443
|
+
# `prompt`, but it also means an unmapped key would reach the consumer verbatim.
|
|
444
|
+
# `_CLI_AGENT_FIELDS` / `_IDE_AGENT_FIELDS` in `adapters/kiro.py` bound the
|
|
445
|
+
# emitted shape and log every drop, so Claude Code fields Kiro cannot read
|
|
446
|
+
# (`permissionMode`, `memory`, `maxTurns`) and IDE-only fields that make the CLI
|
|
447
|
+
# loader silently drop an agent (`hooks`) stay out of the output. `skills` is
|
|
448
|
+
# not among them: it is consumed as the portable no-skill opt-out before that
|
|
449
|
+
# bound applies, so it is never emitted and never logged as a drop.
|
|
442
450
|
inject-resources = ["skill://.kiro/skills/**/SKILL.md", "skill://~/.kiro/skills/**/SKILL.md"]
|
|
443
451
|
on-conflict = "prompt-then-preserve"
|
|
444
452
|
|
|
@@ -789,7 +797,13 @@ allowed-prefixes.user = [".agents/skills/", ".gemini/", ".agentbundle/"]
|
|
|
789
797
|
# ---------------------------------------------------------------------------
|
|
790
798
|
|
|
791
799
|
# Kiro agent frontmatter v0.9: renames Claude Code agent fields to Kiro's schema.
|
|
792
|
-
# Adapters consume
|
|
800
|
+
# Adapters consume the RENAME/NORMALIZE/VALUES rules below generically — no
|
|
801
|
+
# per-field rename dictionary is hardcoded in Python. The emitted field *set* is
|
|
802
|
+
# a separate concern and is bounded in `adapters/kiro.py` (`_IDE_AGENT_FIELDS` /
|
|
803
|
+
# `_CLI_AGENT_FIELDS`), because these projectors iterate source frontmatter and
|
|
804
|
+
# would otherwise pass unmapped keys through verbatim. A rename target added
|
|
805
|
+
# here must also be a member of that set or the rule is a silent no-op;
|
|
806
|
+
# `test_adapter_kiro_cli.py` / `test_adapter_kiro_ide.py` assert that coupling.
|
|
793
807
|
[frontmatter-mapping."kiro-ide-agent-frontmatter-v0.9"]
|
|
794
808
|
|
|
795
809
|
[frontmatter-mapping."kiro-ide-agent-frontmatter-v0.9".description]
|
|
@@ -845,6 +859,9 @@ values = { opus = "claude-opus-4.6", sonnet = "claude-sonnet-4.5", haiku = "clau
|
|
|
845
859
|
# `codex-agent-toml` projection reduces duplicate intents to documented
|
|
846
860
|
# config keys (`sandbox_mode`, `[features].shell_tool`, `web_search`,
|
|
847
861
|
# `[tools].web_search`) and never emits a generic `tools = [...]` array.
|
|
862
|
+
# Codex has no named Read/Grep/Glob tool allowlist, so any mapped `read`
|
|
863
|
+
# intent retains the default shell tool inside `sandbox_mode = "read-only"`;
|
|
864
|
+
# mapped `write` remains the only route to a writable sandbox.
|
|
848
865
|
# The markdown body lands in TOML `developer_instructions` via a
|
|
849
866
|
# mode-level convention in the `codex-agent-toml` projection mode, NOT
|
|
850
867
|
# via a rename rule (frontmatter mapping is keyed on frontmatter fields;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "agent-plugin-extension-namespaces.schema.json",
|
|
4
|
+
"x-spec": "docs/specs/portable-agent-plugin-projection",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["contract", "namespace"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"contract": {
|
|
10
|
+
"type": "object",
|
|
11
|
+
"additionalProperties": false,
|
|
12
|
+
"required": ["version"],
|
|
13
|
+
"properties": {
|
|
14
|
+
"version": {"type": "string", "enum": ["1.0"]}
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"namespace": {
|
|
18
|
+
"type": "object",
|
|
19
|
+
"propertyNames": {
|
|
20
|
+
"pattern": "^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)+$"
|
|
21
|
+
},
|
|
22
|
+
"additionalProperties": {
|
|
23
|
+
"type": "object",
|
|
24
|
+
"additionalProperties": false,
|
|
25
|
+
"required": ["owner", "state"],
|
|
26
|
+
"properties": {
|
|
27
|
+
"owner": {"type": "string", "minLength": 1},
|
|
28
|
+
"state": {"type": "string", "enum": ["reserved", "active"]},
|
|
29
|
+
"schema": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"pattern": "^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))[a-zA-Z0-9._/-]+/v?[0-9]+(?:\\.[0-9]+)*/[a-zA-Z0-9._-]+\\.schema\\.json$"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"allOf": [
|
|
35
|
+
{
|
|
36
|
+
"if": {
|
|
37
|
+
"properties": {"state": {"const": "active"}},
|
|
38
|
+
"required": ["state"]
|
|
39
|
+
},
|
|
40
|
+
"then": {"required": ["schema"]}
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"if": {
|
|
44
|
+
"properties": {"state": {"const": "reserved"}},
|
|
45
|
+
"required": ["state"]
|
|
46
|
+
},
|
|
47
|
+
"then": {"not": {"required": ["schema"]}}
|
|
48
|
+
}
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -266,10 +266,10 @@ tooling. Neither is a root `tests/` tree; a catalogue that wants the separate
|
|
|
266
266
|
tree can add one. Don't create a top-level directory for a single test — the
|
|
267
267
|
ownership rule is what matters, not the path.
|
|
268
268
|
|
|
269
|
-
### One test process per skill
|
|
269
|
+
### One test process per skill, unless a compatibility class says otherwise
|
|
270
270
|
|
|
271
|
-
|
|
272
|
-
not a performance preference.
|
|
271
|
+
Each skill's suite runs in its own process by default. This is a correctness
|
|
272
|
+
default, not a performance preference, and a new suite gets it without asking.
|
|
273
273
|
|
|
274
274
|
Skills are independent, so two of them may reasonably ship a `render.py`, and
|
|
275
275
|
their suites may both be called `test_render.py`. Collect them into one pytest
|
|
@@ -278,19 +278,57 @@ run and two things break: pytest refuses the duplicate test basenames outright
|
|
|
278
278
|
would serve every suite that expects its own.
|
|
279
279
|
|
|
280
280
|
```
|
|
281
|
-
pytest packs/<pack>/tests/skills/<skill>/ # one
|
|
281
|
+
pytest packs/<pack>/tests/skills/<skill>/ # the default: one per skill
|
|
282
282
|
```
|
|
283
283
|
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
284
|
+
A single process may cover several suites only when they form an explicitly
|
|
285
|
+
declared **compatibility class**. A class:
|
|
286
|
+
|
|
287
|
+
- lives entirely inside one pack — the pack stays the execution boundary;
|
|
288
|
+
- names its exact member paths, never an ancestor directory, so a suite added
|
|
289
|
+
later cannot join it silently;
|
|
290
|
+
- declares how duplicate test basenames are resolved and which pytest flags the
|
|
291
|
+
grouping requires;
|
|
292
|
+
- is re-derived from source by a fail-closed gate on every run, so it stops
|
|
293
|
+
being valid the moment a member stops being safe.
|
|
294
|
+
|
|
295
|
+
A grouping justified only by "nothing collides today" is not a class. That is a
|
|
296
|
+
property of the current contents, not of the layout.
|
|
297
|
+
|
|
298
|
+
**How to prove a class before declaring it.** Collect each member alone, then
|
|
299
|
+
collect the group, and compare the node-ID sets:
|
|
300
|
+
|
|
301
|
+
```
|
|
302
|
+
pytest <member> --collect-only -q # once per member; union the output
|
|
303
|
+
pytest <member-1> <member-2> … --collect-only -q
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
The union must equal the grouped set exactly, and the raw line count must equal
|
|
307
|
+
the unique count on both sides — otherwise something is collected twice. Repeat
|
|
308
|
+
the grouped command with the members in reverse order; a difference means an
|
|
309
|
+
import in one member is deciding what another member sees. Any suite that needs
|
|
310
|
+
a flag to collect cleanly must carry that flag in the runner, and the class
|
|
311
|
+
should record why.
|
|
312
|
+
|
|
313
|
+
That is the test-module half. The subject half is separate, and no collection
|
|
314
|
+
comparison can see it: two suites can bind the same module object and still
|
|
315
|
+
produce identical node IDs.
|
|
316
|
+
|
|
317
|
+
Retaining isolation is a valid result. A suite that needs a clean interpreter,
|
|
318
|
+
carries a collection floor, or reaches a subject through `sys.path` should stay
|
|
319
|
+
in its own process, and saying so is engineering rather than a failure to
|
|
320
|
+
optimise.
|
|
321
|
+
|
|
322
|
+
Record the decision behind each class where your repository keeps decisions,
|
|
323
|
+
and keep the class declaration itself next to the gate that enforces it.
|
|
287
324
|
|
|
288
325
|
### Write suites that do not depend on isolation
|
|
289
326
|
|
|
290
|
-
Process isolation is the
|
|
327
|
+
Process isolation is the default above. It is not a licence to write suites
|
|
291
328
|
that only work because they run alone — a suite that depends on being the sole
|
|
292
329
|
occupant of an interpreter is fragile even when isolated, because collection
|
|
293
|
-
order inside its own directory can still decide a binding.
|
|
330
|
+
order inside its own directory can still decide a binding. It is also what
|
|
331
|
+
keeps a suite eligible to join a compatibility class later.
|
|
294
332
|
|
|
295
333
|
Two collisions matter, and they are not the same:
|
|
296
334
|
|
|
@@ -304,6 +342,17 @@ Two collisions matter, and they are not the same:
|
|
|
304
342
|
collision is in the interpreter's module namespace rather than in pytest's
|
|
305
343
|
collection.
|
|
306
344
|
|
|
345
|
+
These are separate obligations, and solving one proves nothing about the other.
|
|
346
|
+
`--import-mode=importlib` gives two same-named *test* modules distinct
|
|
347
|
+
identities; it does **not** touch subject-module identity, and must never be
|
|
348
|
+
offered as a fix for it. Where two suites already carry `__init__.py` and their
|
|
349
|
+
shared parent does not, the test-module half is resolved by that packaging
|
|
350
|
+
alone and no flag is needed.
|
|
351
|
+
|
|
352
|
+
The subject rule is that one module name maps to exactly one path. Two suites
|
|
353
|
+
loading the *same* file under one name is idempotent and safe; one name
|
|
354
|
+
resolving to two different files is the silent failure above.
|
|
355
|
+
|
|
307
356
|
Load a subject module under a name that includes its pack and skill:
|
|
308
357
|
|
|
309
358
|
```python
|
|
@@ -323,6 +372,15 @@ module that an agent can still invoke directly — while making the test's
|
|
|
323
372
|
binding explicit rather than positional. Apply the same rule to shared test
|
|
324
373
|
helpers, which collide across packs for exactly the same reason.
|
|
325
374
|
|
|
375
|
+
Do not repackage a runtime payload to suit a test. Hyphenated skill directories
|
|
376
|
+
and standalone scripts under `.apm/skills/<skill>/scripts/` are valid runtime
|
|
377
|
+
shapes; the test adapts to them, not the other way round.
|
|
378
|
+
|
|
379
|
+
Remember that a suite's import set is larger than its test files. A
|
|
380
|
+
`conftest.py` is loaded even for a single-file invocation, so a `sys.path`
|
|
381
|
+
mutation there applies to everything the process runs afterwards — which is
|
|
382
|
+
where this hazard usually lives.
|
|
383
|
+
|
|
326
384
|
### Keep a suite's cost in assertions, not in processes
|
|
327
385
|
|
|
328
386
|
A test that spawns a process pays for an interpreter start, imports, and
|
|
@@ -344,6 +402,18 @@ asserting — so it grows worse on a loaded machine, not better.
|
|
|
344
402
|
|
|
345
403
|
- A pack **MUST** be the ownership boundary for its tests.
|
|
346
404
|
- Pack-specific tests **MUST** live under `packs/<pack>/tests/`.
|
|
405
|
+
- A pack test suite **MUST** run in its own pytest process unless it is named
|
|
406
|
+
in an explicitly declared compatibility class.
|
|
407
|
+
- A compatibility class **MUST NOT** span packs, **MUST** name its exact member
|
|
408
|
+
paths rather than an ancestor directory, and **MUST** be re-derived from
|
|
409
|
+
source by a fail-closed gate rather than trusted as a standing permission.
|
|
410
|
+
- A suite bearing a collection floor **MUST** remain the sole target of its own
|
|
411
|
+
invocation, because the floor counts a whole pytest session.
|
|
412
|
+
- Test-module identity and subject-module identity **MUST** be proven
|
|
413
|
+
separately; `--import-mode=importlib` **MUST NOT** be used as evidence about
|
|
414
|
+
subject modules.
|
|
415
|
+
- A runtime payload under `.apm/` **MUST NOT** be repackaged to make tests
|
|
416
|
+
cohabit.
|
|
347
417
|
- Ordinary tests **MUST NOT** live under `.apm/`.
|
|
348
418
|
- `.apm/` **MUST** contain only runtime or projectable content.
|
|
349
419
|
- Agent evaluations **MUST** live under `.apm/skills/<skill>/evals/` and stay
|
{agentbundle-0.38.6 → agentbundle-0.41.1}/agentbundle/_data/catalogue-scaffold/manifest.json
RENAMED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"files": {
|
|
3
|
-
"guides/_shared/reference/catalogue-authoring-standards.md": "
|
|
3
|
+
"guides/_shared/reference/catalogue-authoring-standards.md": "4e8bf28a1c4a6861bcfb3028a971163e0250c7db67be2fc32b6ea23f5d1fd547",
|
|
4
4
|
"guides/_shared/reference/catalogue-ci-contract.md": "fae793ab47989b6dd3c731afcb0b4cda21c7d08bbe7fa40fca6d3abb3d158141",
|
|
5
5
|
"packs/AGENTS.md": "c20af03f72b4c25c032ba5c15299eadaa0b41442c92d1cf621dde042cf9ff8db",
|
|
6
6
|
"packs/README.md": "d2de5f9556f4c8e521103474bde74636e02cc805f9bf5312a3a61a1f3eb45d8f",
|
|
7
|
-
"packs/_example/.apm/skills/example-skill/SKILL.md": "
|
|
7
|
+
"packs/_example/.apm/skills/example-skill/SKILL.md": "e7e23d478278d4edefbf5aade77d1eefedeecf470ac2be2e32e385fafebc53a0",
|
|
8
8
|
"packs/_example/.apm/skills/example-skill/evals/eval_queries.json": "f41ecda0834a22f3b4823c81ab02e58b0e4beba610e3b40c185579abff9cfeee",
|
|
9
|
-
"packs/_example/.claude-plugin/plugin.json": "
|
|
9
|
+
"packs/_example/.claude-plugin/plugin.json": "f67fc61dddf93068395140546683689240d1b5f9de77e4bd98e85de77789c26b",
|
|
10
10
|
"packs/_example/README.md": "ef130c9c1f97a75a07cc59fc55fc5b3bf71846dd2f06c3cddf5a1154023b6ef6",
|
|
11
|
-
"packs/_example/pack.toml": "
|
|
11
|
+
"packs/_example/pack.toml": "3834ecbdcfc8184d31412526bc97ed9e9ed4c41c1e65b00e6c1cc19748e11888",
|
|
12
12
|
"profiles/AGENTS.md": "34fba229a4e8bd1b6efc948d3e1d51d9d47f88826897c259909e0a1fd2672a5e",
|
|
13
13
|
"profiles/README.md": "a0b0268edc57fc575f7fea08f3363ba7da9f6e67dc4a0a6f8bd38c9668c97922",
|
|
14
14
|
"profiles/_example/README.md": "164494df049ddce3e57cb44ed604cb3d39be0a6ec2072e609ea3fa4bbfc74c72",
|