agentbundle 0.35.2__tar.gz → 0.37.2__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.35.2/agentbundle.egg-info → agentbundle-0.37.2}/PKG-INFO +38 -31
- {agentbundle-0.35.2 → agentbundle-0.37.2}/README-pypi.md +37 -30
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/catalogue-scaffold/guides/_shared/reference/catalogue-authoring-standards.md +31 -2
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/catalogue-scaffold/manifest.json +2 -2
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/catalogue-scaffold/profiles/AGENTS.md +4 -0
- agentbundle-0.37.2/agentbundle/_data/knowledge-captured-observation.schema.json +287 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/public-contracts.txt +1 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/adapters/claude_code.py +6 -20
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/adapters/codex.py +6 -20
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/adapters/copilot.py +13 -16
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/adapters/cursor.py +13 -22
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/adapters/gemini.py +12 -12
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/adapters/kiro.py +13 -16
- agentbundle-0.37.2/agentbundle/build/projections/direct_directory.py +75 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/catalogue.py +17 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/catalogue_tooling/file_safety.py +31 -5
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/catalogue_tooling/initialise.py +26 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/catalogue_tooling/lint.py +296 -90
- agentbundle-0.37.2/agentbundle/catalogue_tooling/manifest.py +27 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/catalogue_tooling/results.py +5 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/catalogue_tooling/skill_spec_lint.py +427 -188
- agentbundle-0.37.2/agentbundle/catalogue_tooling/verify.py +2296 -0
- agentbundle-0.37.2/agentbundle/catalogue_tooling/version_ranges.py +149 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/cli.py +9 -2
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/catalogue_init.py +6 -26
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/install.py +105 -33
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/local_exclude.py +30 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/render.py +34 -3
- agentbundle-0.37.2/agentbundle/statelock.py +266 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/system_trust.py +32 -3
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/version.py +1 -1
- {agentbundle-0.35.2 → agentbundle-0.37.2/agentbundle.egg-info}/PKG-INFO +38 -31
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle.egg-info/SOURCES.txt +31 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/pyproject.toml +1 -1
- agentbundle-0.37.2/tests/fixtures/external_catalogue/.claude-plugin/marketplace.json +1 -0
- agentbundle-0.37.2/tests/fixtures/external_catalogue/AGENTS.md +1 -0
- agentbundle-0.37.2/tests/fixtures/external_catalogue/LICENSE-APACHE +1 -0
- agentbundle-0.37.2/tests/fixtures/external_catalogue/LICENSE-MIT +1 -0
- agentbundle-0.37.2/tests/fixtures/external_catalogue/agentbundle/_data/install-defaults.toml +2 -0
- agentbundle-0.37.2/tests/fixtures/external_catalogue/catalogue.toml +31 -0
- agentbundle-0.37.2/tests/fixtures/external_catalogue/packs/alpha/.apm/skills/example/SKILL.md +6 -0
- agentbundle-0.37.2/tests/fixtures/external_catalogue/packs/alpha/.claude-plugin/plugin.json +1 -0
- agentbundle-0.37.2/tests/fixtures/external_catalogue/packs/alpha/pack.toml +13 -0
- agentbundle-0.37.2/tests/fixtures/external_catalogue/packs/alpha/seeds/AGENTS.md +3 -0
- agentbundle-0.37.2/tests/fixtures/external_catalogue/packs/beta/.claude-plugin/plugin.json +1 -0
- agentbundle-0.37.2/tests/fixtures/external_catalogue/packs/beta/pack.toml +17 -0
- agentbundle-0.37.2/tests/fixtures/external_catalogue/profiles/example.toml +8 -0
- agentbundle-0.37.2/tests/integration/test_catalogue_verify_adapter_compat.py +53 -0
- agentbundle-0.37.2/tests/integration/test_catalogue_verify_dependencies.py +210 -0
- agentbundle-0.37.2/tests/integration/test_catalogue_verify_external_portability.py +56 -0
- agentbundle-0.37.2/tests/integration/test_catalogue_verify_fixture_checks.py +123 -0
- agentbundle-0.37.2/tests/integration/test_catalogue_verify_marketplace.py +49 -0
- agentbundle-0.37.2/tests/integration/test_catalogue_verify_output_drift.py +149 -0
- agentbundle-0.37.2/tests/integration/test_catalogue_verify_package_preflight.py +74 -0
- agentbundle-0.37.2/tests/integration/test_catalogue_verify_plugin_path.py +209 -0
- agentbundle-0.37.2/tests/integration/test_catalogue_verify_profile_schema.py +139 -0
- agentbundle-0.37.2/tests/integration/test_catalogue_verify_step1.py +21 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_install_dependencies_gate.py +86 -28
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_install_profile.py +6 -6
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_local_scope_install.py +188 -0
- agentbundle-0.37.2/tests/unit/test_adapter_symlink_policy.py +127 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_skill_spec_lint.py +181 -1
- agentbundle-0.37.2/tests/unit/test_catalogue_tooling_file_safety.py +54 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_tooling_lint.py +473 -13
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_tooling_package.py +12 -5
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_tooling_verify.py +69 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_trust_fallback.py +95 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_wave2_validation.py +96 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_wave3_init_nextsteps.py +33 -3
- agentbundle-0.37.2/tests/unit/test_cli_list_targets_help.py +67 -0
- agentbundle-0.37.2/tests/unit/test_collect_tree_symlinks.py +88 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_dependencies_batch.py +6 -2
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_plugin_scope_filter.py +2 -1
- agentbundle-0.37.2/tests/unit/test_statelock_hardening.py +189 -0
- agentbundle-0.35.2/agentbundle/build/projections/direct_directory.py +0 -41
- agentbundle-0.35.2/agentbundle/catalogue_tooling/verify.py +0 -1094
- agentbundle-0.35.2/agentbundle/statelock.py +0 -148
- {agentbundle-0.35.2 → agentbundle-0.37.2}/MANIFEST.in +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/README.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/__init__.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/__main__.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/adapter.schema.json +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/adapter.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/catalogue-scaffold/guides/_shared/reference/catalogue-ci-contract.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/catalogue-scaffold/packs/AGENTS.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/catalogue-scaffold/packs/README.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/catalogue-scaffold/packs/_example/.apm/skills/example-skill/SKILL.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/catalogue-scaffold/packs/_example/.apm/skills/example-skill/evals/eval_queries.json +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/catalogue-scaffold/packs/_example/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/catalogue-scaffold/packs/_example/README.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/catalogue-scaffold/packs/_example/pack.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/catalogue-scaffold/profiles/README.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/catalogue-scaffold/profiles/_example/README.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/catalogue-scaffold/profiles/_example/profile.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/catalogue-scaffold/tests/conformance/test_gemini_admissibility.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/catalogue-scaffold/tests/conformance/test_pack_metadata.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/catalogue-scaffold/tests/conformance/test_shared_library_boundaries.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/catalogue.schema.json +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/guide.schema.json +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/install-defaults.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/install-marker.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/marketplace-entry.schema.json +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/pack.schema.json +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/plugin-manifest.derived.schema.json +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/plugin-manifest.schema.json +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/profile.schema.json +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/skill-manifest.schema.json +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/skill.schema.json +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/target-vocab.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/workspace_status_engine.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/__init__.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/__main__.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/adapter_root_bins.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/adapters/__init__.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/adapters/kiro_cli.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/adapters/kiro_ide.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/contract.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/hook_wiring_rules.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/lint_packs.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/main.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/phase_order.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/projection_io.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/projections/__init__.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/projections/codex_agent_toml.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/projections/copilot_agent_md.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/projections/copilot_hooks_json.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/projections/gemini_command_toml.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/projections/hook_id.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/projections/kiro_ide_hook.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/projections/merge_into_agent_json.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/projections/merge_json.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/projections/plugin_hooks.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/projections/user_merge_json.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/recipes/composite-agents-md.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/recipes/composite-marketplace.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/recipes/marketplace.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/recipes/per-pack-apm-package.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/recipes/per-pack-claude-plugin.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/recipes/per-pack-overlay.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/recipes/self-host.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/scope_rails.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/self_host.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/shared_libs.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/target_resolver.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/user_libs.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/build/validate.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/catalogue_tooling/__init__.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/catalogue_tooling/archive.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/catalogue_tooling/build.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/catalogue_tooling/config.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/catalogue_tooling/contracts_inspector.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/catalogue_tooling/defaults.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/catalogue_tooling/diagnostics.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/catalogue_tooling/identity.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/catalogue_tooling/initialise_self_hosted.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/catalogue_tooling/package.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/catalogue_tooling/self_host.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/catalogue_tooling/self_host_windows.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/catalogue_tooling/toml_emit.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/categories.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/__init__.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/_common.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/_drop_warning.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/adapt.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/catalogue_build.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/catalogue_contracts.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/catalogue_lint.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/catalogue_package.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/catalogue_self_host.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/catalogue_sync_defaults.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/catalogue_tooling_stub.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/catalogue_verify.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/config.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/diff.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/docs.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/init_state.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/list_installed.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/list_packs.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/list_profiles.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/list_targets.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/oplog_cmd.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/pack_config_cmd.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/pack_evals.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/package_catalogue.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/profile.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/reconcile.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/render.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/scaffold.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/show.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/uninstall.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/upgrade.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/commands/validate.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/config.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/https_catalogue.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/oplog.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/pack_inventory.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/safety.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/scaffold.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/scope.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/source_defaults.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/user_config.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/workspace_mcp.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle.egg-info/dependency_links.txt +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle.egg-info/entry_points.txt +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle.egg-info/requires.txt +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle.egg-info/top_level.txt +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/conftest.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/setup.cfg +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/templates/install-marker.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/__init__.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/_support.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/__init__.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/README.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/claude-code-2.1.226-hook-events.json +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/claude-code-2.1.228-hook-events.json +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/core/.apm/agents/bar.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/core/.apm/commands/qux.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/core/.apm/hook-wiring/baz.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/core/.apm/hook-wiring/qux.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/core/.apm/hooks/baz.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/core/.apm/hooks/baz.sh +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/core/.apm/skills/example/SKILL.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/core/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/core/pack.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/governance-extras/.apm/skills/example/SKILL.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/governance-extras/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/governance-extras/pack.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/monorepo-extras/.apm/skills/example/SKILL.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/monorepo-extras/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/monorepo-extras/pack.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/product-documentation/.apm/skills/example/SKILL.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/product-documentation/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/product-documentation/pack.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/user-guide-diataxis/.apm/skills/example/SKILL.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/user-guide-diataxis/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/packs/user-guide-diataxis/pack.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/fixtures/recipes/bogus-target.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_adapter_claude_code.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_adapter_codex.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_adapter_copilot.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_adapter_cursor.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_adapter_gemini.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_adapter_kiro.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_adapter_kiro_alias.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_adapter_kiro_cli.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_adapter_kiro_ide.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_adapter_root_bins_projection.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_build_ships_seeds.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_contract.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_contract_scope.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_contract_v07.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_contract_v08.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_direct_directory_cleanup.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_end_to_end_build.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_hook_wiring_rules.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_lint_packs.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_load_pack_hook_wiring_safely.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_pack_schema.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_pack_schema_allowed_adapters.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_pack_schema_install.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_pipeline.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_plugin_hooks.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_plugin_manifest_schema.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_plugin_publication_gates.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_projectable_subset.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_projection_io.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_projections_merge_json.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_scope_rails.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_security.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_self_host_check.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_self_host_fixture_guard.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_self_host_metadata_policy.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_self_host_recipe_config.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_shared_libs_projection.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_shared_prefix_contract.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_user_libs_projection.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_validate.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/build_pipeline/test_writers_emit_lf.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/conftest.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/adapt/.adapt-discovery.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/adapt/values.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/blank_catalogue/.claude-plugin/marketplace.json +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/blank_catalogue/catalogue.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/blank_catalogue/packs/.gitkeep +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/blank_catalogue/packs/_example/.apm/skills/example-skill/SKILL.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/blank_catalogue/packs/_example/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/blank_catalogue/packs/_example/README.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/blank_catalogue/packs/_example/evals/eval_queries.json +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/blank_catalogue/packs/_example/pack.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/blank_catalogue/profiles/.gitkeep +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/blank_catalogue/profiles/_example/README.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/blank_catalogue/profiles/_example/profile.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/brownfield/values.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/brownfield-adapt/AGENTS.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/brownfield-adapt/AGENTS.upstream.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/brownfield-adapt/DESIGN.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/brownfield-adapt/EXPECTED_TREE.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/brownfield-adapt/docs/CHARTER.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/brownfield-adapt/docs/guides/how-to/index.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/brownfield-adapt/docs/howto/getting-started.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/brownfield-adapt-expected/AGENTS.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/brownfield-adapt-expected/docs/CHARTER.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/brownfield-adapt-user-home/.agentbundle/.adapt-discovery.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/brownfield-adapt-user-home/.agentbundle/state.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/creds/skills/argv-flag/SKILL.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/creds/skills/argv-flag/scripts/cli.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/creds/skills/argv-flag-derived/SKILL.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/creds/skills/argv-flag-derived/scripts/cli.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/creds/skills/argv-flag-normalised/SKILL.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/creds/skills/argv-flag-normalised/scripts/cli.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/creds/skills/conforming/SKILL.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/creds/skills/conforming/scripts/cli.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/creds/skills/dotfile-grep/SKILL.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/creds/skills/dotfile-grep/scripts/leak.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/creds/skills/dotfile-with-optout/SKILL.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/creds/skills/dotfile-with-optout/scripts/legit.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/creds/skills/mcp-server-headers/SKILL.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/creds/skills/mcp-server-headers/scripts/cli.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/creds/skills/missing-dont-block/SKILL.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/install/catalogue/packs/alpha/.apm/agents/helper.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/install/catalogue/packs/alpha/.apm/commands/cmd.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/install/catalogue/packs/alpha/.apm/hook-wiring/run.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/install/catalogue/packs/alpha/.apm/hooks/run.sh +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/install/catalogue/packs/alpha/.apm/skills/example/SKILL.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/install/catalogue/packs/alpha/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/install/catalogue/packs/alpha/pack.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/kiro_ide_hook/ask_agent_basic.kiro.hook +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/kiro_ide_hook/run_command_with_placeholder.kiro.hook +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/lint_packs/clean/pack.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/lint_packs/clean/seeds/README.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/list-installed/golden_120col.txt +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/list-installed/golden_80col.txt +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/list_packs/catalogue/packs/alpha/pack.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/list_packs/catalogue/packs/beta/pack.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/local_scope/catalogue/packs/local-test-pack/.apm/skills/local-test/SKILL.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/local_scope/catalogue/packs/local-test-pack/pack.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/cc-user-hooks/.apm/hook-wiring/on-prompt.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/cc-user-hooks/.apm/hooks/on-prompt.sh +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/cc-user-hooks/pack.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/kiro-repo-hooks/.apm/agents/reviewer.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/kiro-repo-hooks/.apm/hook-wiring/on-spawn.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/kiro-repo-hooks/.apm/hooks/on-spawn.sh +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/kiro-repo-hooks/pack.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/kiro-user-hooks/.apm/agents/reviewer.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/kiro-user-hooks/.apm/hook-wiring/on-spawn.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/kiro-user-hooks/.apm/hooks/on-spawn.sh +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/kiro-user-hooks/pack.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/malformed-kiro-missing-attach/.apm/agents/reviewer.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/malformed-kiro-missing-attach/.apm/hook-wiring/on-spawn.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/malformed-kiro-missing-attach/.apm/hooks/on-spawn.sh +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/malformed-kiro-missing-attach/pack.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/malformed-kiro-pascal-events/.apm/agents/reviewer.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/malformed-kiro-pascal-events/.apm/hook-wiring/on-spawn.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/malformed-kiro-pascal-events/.apm/hooks/on-spawn.sh +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/malformed-kiro-pascal-events/pack.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/malformed-kiro-unknown-agent/.apm/agents/reviewer.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/malformed-kiro-unknown-agent/.apm/hook-wiring/on-spawn.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/malformed-kiro-unknown-agent/.apm/hooks/on-spawn.sh +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/packs/malformed-kiro-unknown-agent/pack.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/scaffold/test-pack/seeds/AGENTS.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/scaffold/test-pack/seeds/_agents-footer.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/scaffold/test-pack/seeds/docs/CHARTER.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/agents/reviewer.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/commands/deploy.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/hook-wiring/pre-commit.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/hooks/lint.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/hooks/pre-commit.sh +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v1/packs/core/.apm/skills/work-loop/SKILL.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v1/packs/core/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v1/packs/core/pack.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/agents/reviewer.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/commands/deploy.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/hook-wiring/pre-commit.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/hooks/lint.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/hooks/pre-commit.sh +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v2/packs/core/.apm/skills/work-loop/SKILL.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v2/packs/core/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v2/packs/core/pack.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/agents/reviewer.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/commands/deploy.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/hook-wiring/pre-commit.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/hooks/lint.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/hooks/pre-commit.sh +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v3/packs/core/.apm/skills/work-loop/SKILL.md +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v3/packs/core/.claude-plugin/plugin.json +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/upgrade/catalogue_v3/packs/core/pack.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/validate/bad_recipe_pack/pack.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/validate/malformed_pack/pack.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/validate/valid_pack/pack.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/fixtures/validate/version_mismatch_pack/pack.toml +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/__init__.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_adapt_cmd.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_adapt_dual_scope.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_adapt_preflight_detection.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_adapt_schema_migration.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_apm_install_route.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_blank_catalogue.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_brownfield_adapt_end_to_end.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_brownfield_round_trip.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_brownfield_user_home_fixture.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_build_check_drift_gates.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_build_derivation_apm.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_build_derivation_claude_plugins.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_catalogue_init.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_cc_user_hooks_fixture.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_claude_plugins_install_route.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_config_cascade.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_credential_brokers_pack_install.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_credentials_wheel.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_discovery_schema_cross_consumer.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_editable_source_detection.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_fixtures_validate.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_hook_wiring_ingress.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_install_adapt_chain.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_install_cmd.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_install_converters_user_scope.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_install_copilot_full_parity.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_install_core_smoke.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_install_default_source.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_install_dropped_primitives_warning.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_install_dual_scope.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_install_orphan_reshape.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_install_pack_metadata_shape.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_install_profile_live.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_install_repo_scope_per_adapter.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_install_research_user_scope.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_install_seed_delivery.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_install_session_start_wiring.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_install_upgrade_offer.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_install_user_hooks.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_install_user_scope_allowed_adapters.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_kiro_ide_hook_e2e.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_kiro_repo_hooks_fixture.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_kiro_user_hooks_fixture.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_list_packs_cmd.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_marketplace_entry_validation.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_marketplace_manifest_regression.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_multi_pack_install.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_orphan_cleanup_respects_foreign_state.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_plugin_route_membership.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_recommends_cross_scope.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_reconcile.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_reserved_path_filter.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_scaffold_projection.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_self_host_schema_migration.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_self_host_sweep_respects_state.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_shared_prefix_coexistence.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_show_cmd.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_tier_invariants.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_trust_fallback_tls.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_uninstall_cmd.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_uninstall_user_hooks.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_upgrade_attach_to_agent.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_upgrade_cmd.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_upgrade_user_hooks.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_version_gate_matrix.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_workspace_mcp_git_fsm.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/integration/test_zipapp.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/test_adapter_permissions_projection.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/test_workspace_mcp_elicit.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/test_workspace_mcp_event_bridge.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/test_workspace_mcp_git.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/test_workspace_mcp_lifecycle.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/test_workspace_mcp_stdin.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/test_workspace_mcp_tools.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/__init__.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_adapt_discovery_schema.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_append_layout_section.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_architect_readme_install_command.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_ci_contract.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_curation_deps.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_init_cli_self_hosted.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_pack_defaults.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_self_hosted_export_removal.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_tooling_archive.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_tooling_build.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_tooling_defaults.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_tooling_foundation.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_tooling_identity.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_tooling_init.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_tooling_self_host.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_tooling_self_hosted_init.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_tooling_source_package.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_wave2_schema.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_wave3_contracts_cli.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_wave3_contracts_inspector.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_catalogue_wave3_offline_navigation.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_cli_catalogue_optional.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_cli_help_lists_config.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_cli_path_normalisation.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_cli_profile_surface.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_cli_scope_flags.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_codex_agent_toml.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_codex_projection_modes.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_common_classify_seeds.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_config.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_config_cmd.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_configured_adapter.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_confirm_helper.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_contract_parity.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_contract_v0_3_schema.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_copilot_agent_md.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_copilot_hooks_json.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_copilot_user_scope_wiring.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_credbroker_lint_hardening.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_diff_cmd.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_footprint_ownership.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_https_catalogue.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_init_state_cmd.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_install_argparse_adapter_flag.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_install_argparse_emit_install_routes.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_install_defaults_preferred_adapter.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_install_dropped_primitives_warning.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_install_event_dropped_wirings.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_install_first_value_handoff.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_install_force_help.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_install_inband_detection.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_install_messages.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_install_messages_repo_scope.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_install_refusal_ordering.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_install_state_provenance.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_kiro_ide_hook_projection.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_kiro_ide_hook_rail.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_kiro_ide_hook_schema.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_lint_agent_artifacts_metadata_auth.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_list_installed_cmd.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_list_installed_status.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_list_targets_cmd.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_local_scope_schema.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_local_scope_t10_uninstall.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_local_scope_t12_show.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_local_scope_t2_resolve.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_local_scope_t3_config.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_local_scope_t4_state_path.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_local_scope_t5_list_installed.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_local_scope_t7_install_gates.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_local_scope_t8_install.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_local_scope_t9_exclude.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_marker_schema_version_parity.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_merge_into_agent_json.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_multi_adapter_disambiguator.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_nested_symlink_hardening.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_org_bootstrap.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_pack_config_api.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_pack_inventory.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_package_catalogue.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_packstate_source_provenance.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_pipeline_phase_order.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_profile_reader.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_render.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_render_cmd.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_render_table.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_resolve_state_path.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_resolve_target_adapter_user_config.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_resolve_user_scope_target_adapter.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_safety.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_safety_repo_scope_prefixes.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_safety_scan_per_pack_scoping.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_scaffold_cmd.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_scope.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_self_host_windows.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_shared_prefix_disclosure.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_source_conflict_guard.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_source_defaults.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_state_v01_refuse_write.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_state_v02.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_state_v0_4_schema.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_statelock.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_system_trust.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_target_resolver.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_toml_emitters.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_unresolved_markers.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_upgrade_bulk_all.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_upgrade_recap.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_upgrade_source_inference.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_user_config_io.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_user_config_isolation.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_user_config_path.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_user_config_source.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_user_merge_json.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_validate_attach_to_agent.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_validate_categories.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_validate_cmd.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_validate_hook_wiring_per_file_compatibility.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/tests/unit/test_values_from_shapes.py +0 -0
- {agentbundle-0.35.2 → agentbundle-0.37.2}/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.37.2
|
|
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,42 +34,49 @@ 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.
|
|
37
|
+
## What's new in 0.37.2
|
|
38
38
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
`agentbundle catalogue verify` now performs all 19 advertised checks. It
|
|
40
|
+
validates profile schemas and pack references, dependency ranges and cycles,
|
|
41
|
+
adapter compatibility, generated-output drift, pack preflight metadata, and
|
|
42
|
+
skill evaluation manifests. The verifier remains read-only and portable across
|
|
43
|
+
external catalogues.
|
|
42
44
|
|
|
43
|
-
|
|
44
|
-
install:
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
```
|
|
45
|
+
Dependency ranges now use the same npm-compatible grammar in verify, lint, and
|
|
46
|
+
install: caret, tilde, comparator, compound, and prerelease forms agree across
|
|
47
|
+
all three commands. In particular, caret ranges below `1.0.0` now use normal
|
|
48
|
+
semver compatibility (`^0.2` does not include `0.3.x`).
|
|
48
49
|
|
|
49
|
-
|
|
50
|
-
trust store, and Python does not read that store on macOS. AgentBundle now
|
|
51
|
-
recovers on its own:
|
|
50
|
+
## Catalogue authoring
|
|
52
51
|
|
|
52
|
+
New catalogue scaffolds document the guide callout contract. The bundled
|
|
53
|
+
authoring reference distinguishes exact quoted wording, which stays a
|
|
54
|
+
blockquote, from guidance that should render as a Starlight `note`, `tip`,
|
|
55
|
+
`caution`, or `danger` aside. Existing catalogues remain unchanged until their
|
|
56
|
+
scaffolded authoring reference is refreshed.
|
|
57
|
+
|
|
58
|
+
## Contract discovery
|
|
59
|
+
|
|
60
|
+
The bundled public contract inventory includes the strict
|
|
61
|
+
`knowledge-captured-observation.schema.json` contract used by the core pack's
|
|
62
|
+
project-knowledge capture handoff.
|
|
63
|
+
|
|
64
|
+
You can inspect the exact public contracts bundled with the installed
|
|
65
|
+
AgentBundle version without network access:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
agentbundle catalogue contracts list
|
|
69
|
+
agentbundle catalogue contracts show pack.schema.json
|
|
70
|
+
agentbundle catalogue contracts export --output ./reference-contracts
|
|
53
71
|
```
|
|
54
|
-
agentbundle: certificate verification failed for github.com;
|
|
55
|
-
retrying with operating-system trust anchors
|
|
56
|
-
```
|
|
57
72
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
only the `catalogue+https://` and `archive+https://` forms read it, so following
|
|
66
|
-
the documentation did not help. `SSL_CERT_FILE`, `SSL_CERT_DIR`, and
|
|
67
|
-
`REQUESTS_CA_BUNDLE` are honoured there too. See
|
|
68
|
-
[Corporate networks](#corporate-networks) below.
|
|
69
|
-
|
|
70
|
-
When a fetch still fails, the error names the likely cause and ordered next
|
|
71
|
-
steps, and the request now carries a 30-second timeout so a proxy that accepts
|
|
72
|
-
the connection and never answers fails instead of hanging.
|
|
73
|
+
`list` and `show` are read-only. `export` writes reference copies through a
|
|
74
|
+
no-follow, preflighted batch writer; those copies do not override the contracts
|
|
75
|
+
AgentBundle uses for validation.
|
|
76
|
+
|
|
77
|
+
Successful `agentbundle catalogue init` output points to the scaffolded
|
|
78
|
+
`guides/_shared/reference/catalogue-authoring-standards.md`, contract discovery,
|
|
79
|
+
and catalogue verification. JSON init output remains unchanged.
|
|
73
80
|
|
|
74
81
|
**Install into a repo** — so everyone who clones it gets the pack. `core` is the flagship pack, the loop itself:
|
|
75
82
|
|
|
@@ -14,42 +14,49 @@ 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.
|
|
17
|
+
## What's new in 0.37.2
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
`agentbundle catalogue verify` now performs all 19 advertised checks. It
|
|
20
|
+
validates profile schemas and pack references, dependency ranges and cycles,
|
|
21
|
+
adapter compatibility, generated-output drift, pack preflight metadata, and
|
|
22
|
+
skill evaluation manifests. The verifier remains read-only and portable across
|
|
23
|
+
external catalogues.
|
|
22
24
|
|
|
23
|
-
|
|
24
|
-
install:
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
```
|
|
25
|
+
Dependency ranges now use the same npm-compatible grammar in verify, lint, and
|
|
26
|
+
install: caret, tilde, comparator, compound, and prerelease forms agree across
|
|
27
|
+
all three commands. In particular, caret ranges below `1.0.0` now use normal
|
|
28
|
+
semver compatibility (`^0.2` does not include `0.3.x`).
|
|
28
29
|
|
|
29
|
-
|
|
30
|
-
trust store, and Python does not read that store on macOS. AgentBundle now
|
|
31
|
-
recovers on its own:
|
|
30
|
+
## Catalogue authoring
|
|
32
31
|
|
|
32
|
+
New catalogue scaffolds document the guide callout contract. The bundled
|
|
33
|
+
authoring reference distinguishes exact quoted wording, which stays a
|
|
34
|
+
blockquote, from guidance that should render as a Starlight `note`, `tip`,
|
|
35
|
+
`caution`, or `danger` aside. Existing catalogues remain unchanged until their
|
|
36
|
+
scaffolded authoring reference is refreshed.
|
|
37
|
+
|
|
38
|
+
## Contract discovery
|
|
39
|
+
|
|
40
|
+
The bundled public contract inventory includes the strict
|
|
41
|
+
`knowledge-captured-observation.schema.json` contract used by the core pack's
|
|
42
|
+
project-knowledge capture handoff.
|
|
43
|
+
|
|
44
|
+
You can inspect the exact public contracts bundled with the installed
|
|
45
|
+
AgentBundle version without network access:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
agentbundle catalogue contracts list
|
|
49
|
+
agentbundle catalogue contracts show pack.schema.json
|
|
50
|
+
agentbundle catalogue contracts export --output ./reference-contracts
|
|
33
51
|
```
|
|
34
|
-
agentbundle: certificate verification failed for github.com;
|
|
35
|
-
retrying with operating-system trust anchors
|
|
36
|
-
```
|
|
37
52
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
only the `catalogue+https://` and `archive+https://` forms read it, so following
|
|
46
|
-
the documentation did not help. `SSL_CERT_FILE`, `SSL_CERT_DIR`, and
|
|
47
|
-
`REQUESTS_CA_BUNDLE` are honoured there too. See
|
|
48
|
-
[Corporate networks](#corporate-networks) below.
|
|
49
|
-
|
|
50
|
-
When a fetch still fails, the error names the likely cause and ordered next
|
|
51
|
-
steps, and the request now carries a 30-second timeout so a proxy that accepts
|
|
52
|
-
the connection and never answers fails instead of hanging.
|
|
53
|
+
`list` and `show` are read-only. `export` writes reference copies through a
|
|
54
|
+
no-follow, preflighted batch writer; those copies do not override the contracts
|
|
55
|
+
AgentBundle uses for validation.
|
|
56
|
+
|
|
57
|
+
Successful `agentbundle catalogue init` output points to the scaffolded
|
|
58
|
+
`guides/_shared/reference/catalogue-authoring-standards.md`, contract discovery,
|
|
59
|
+
and catalogue verification. JSON init output remains unchanged.
|
|
53
60
|
|
|
54
61
|
**Install into a repo** — so everyone who clones it gets the pack. `core` is the flagship pack, the loop itself:
|
|
55
62
|
|
|
@@ -13,6 +13,33 @@ Machine contracts in `contracts/` are normative. These guides explain how to use
|
|
|
13
13
|
Each section below names the authoritative contract and points to the guide that
|
|
14
14
|
explains it. When a guide and its contract disagree, the contract is right.
|
|
15
15
|
|
|
16
|
+
## Guide asides and quotations
|
|
17
|
+
|
|
18
|
+
Use a Starlight aside when a passage does work beyond the surrounding narrative.
|
|
19
|
+
Choose the type by what the reader needs to do with it:
|
|
20
|
+
|
|
21
|
+
| Type | Use it for |
|
|
22
|
+
| --- | --- |
|
|
23
|
+
| `note` | Scope, orientation, or background the reader must notice |
|
|
24
|
+
| `tip` | An optional technique that improves the result or route |
|
|
25
|
+
| `caution` | A pitfall, limitation, or recovery step with reversible consequences |
|
|
26
|
+
| `danger` | A risk of severe or irreversible harm |
|
|
27
|
+
|
|
28
|
+
Use only those four types. Keep the default visible title unless a specific title
|
|
29
|
+
helps the reader act. Put the complete guidance inside the directive:
|
|
30
|
+
|
|
31
|
+
```md
|
|
32
|
+
:::caution
|
|
33
|
+
Confirm the generated paths before replacing an existing projection.
|
|
34
|
+
:::
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
A blockquote has a different job: it preserves someone else's words or exact text
|
|
38
|
+
the reader must recognize, such as a prompt, transcript, sample response, or rubric
|
|
39
|
+
wording. Leave those passages as `>` blockquotes. Do not turn prose into a quotation
|
|
40
|
+
just to make it visually prominent, and do not turn genuine quoted wording into an
|
|
41
|
+
aside.
|
|
42
|
+
|
|
16
43
|
---
|
|
17
44
|
|
|
18
45
|
## 1. Catalogue manifest
|
|
@@ -426,5 +453,7 @@ contracts used for validation by this agentbundle version.
|
|
|
426
453
|
|
|
427
454
|
## Journey format
|
|
428
455
|
|
|
429
|
-
|
|
430
|
-
|
|
456
|
+
:::caution
|
|
457
|
+
**Not yet available.** Wave 4 of the catalogue-contracts initiative will define the
|
|
458
|
+
journey format and its contract. This section will be filled in when that wave ships.
|
|
459
|
+
:::
|
{agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/catalogue-scaffold/manifest.json
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"files": {
|
|
3
|
-
"guides/_shared/reference/catalogue-authoring-standards.md": "
|
|
3
|
+
"guides/_shared/reference/catalogue-authoring-standards.md": "42d4066e9a0226337268b6ea15fdf983ba0dd5f45bfde861557c2565ea354738",
|
|
4
4
|
"guides/_shared/reference/catalogue-ci-contract.md": "fae793ab47989b6dd3c731afcb0b4cda21c7d08bbe7fa40fca6d3abb3d158141",
|
|
5
5
|
"packs/AGENTS.md": "9bfeda4069826e518a4f4fdae45bd40f4393c1c5aaf146149d3eb4aece30be83",
|
|
6
6
|
"packs/README.md": "d2de5f9556f4c8e521103474bde74636e02cc805f9bf5312a3a61a1f3eb45d8f",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"packs/_example/.claude-plugin/plugin.json": "7f94084a56260eed225ec47ac82042fe9029c594557cca760a459885d03ccc26",
|
|
10
10
|
"packs/_example/README.md": "ef130c9c1f97a75a07cc59fc55fc5b3bf71846dd2f06c3cddf5a1154023b6ef6",
|
|
11
11
|
"packs/_example/pack.toml": "f19a0be9fca99a6a0e3ce2d5cd188bf98000f0a4f186954fb42a0c99c6859701",
|
|
12
|
-
"profiles/AGENTS.md": "
|
|
12
|
+
"profiles/AGENTS.md": "794e7f8bdccc0479cf1ac45f864e1cb829ab739b3cdd15c66baad7ee1c894329",
|
|
13
13
|
"profiles/README.md": "a0b0268edc57fc575f7fea08f3363ba7da9f6e67dc4a0a6f8bd38c9668c97922",
|
|
14
14
|
"profiles/_example/README.md": "164494df049ddce3e57cb44ed604cb3d39be0a6ec2072e609ea3fa4bbfc74c72",
|
|
15
15
|
"profiles/_example/profile.toml": "68af18cf50fa0327a9776b029c92bb1cf82710c649691b3ac889eb8537b8eac7",
|
{agentbundle-0.35.2 → agentbundle-0.37.2}/agentbundle/_data/catalogue-scaffold/profiles/AGENTS.md
RENAMED
|
@@ -14,6 +14,10 @@ The profile **id** is the filename stem. It must match `^[a-z0-9][a-z0-9-]*$`.
|
|
|
14
14
|
|
|
15
15
|
## Current schema fields
|
|
16
16
|
|
|
17
|
+
The machine source of truth for profile TOML format is
|
|
18
|
+
[`contracts/profile.schema.json`](../contracts/profile.schema.json). The table
|
|
19
|
+
below is a reading aid; where the two disagree, the schema wins.
|
|
20
|
+
|
|
17
21
|
| Field | Required | Type | Description |
|
|
18
22
|
|-------|----------|------|-------------|
|
|
19
23
|
| `scope` | yes | `"repo"` or `"user"` | Installation scope |
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://agent-ready-repo.example/contracts/jsonschema/knowledge-captured-observation.schema.json",
|
|
4
|
+
"title": "Knowledge captured observation",
|
|
5
|
+
"description": "Strict producer request admitted by project-knowledge capture before core derives storage identity.",
|
|
6
|
+
"x-spec": ["docs/specs/project-knowledge-foundation/"],
|
|
7
|
+
"type": "object",
|
|
8
|
+
"contract_version": "knowledge-captured-observation.v1",
|
|
9
|
+
"additionalProperties": false,
|
|
10
|
+
"required": [
|
|
11
|
+
"contract_version",
|
|
12
|
+
"lesson",
|
|
13
|
+
"kind",
|
|
14
|
+
"project_scope",
|
|
15
|
+
"competency_facets",
|
|
16
|
+
"destination_hint",
|
|
17
|
+
"producer",
|
|
18
|
+
"semantic_gate",
|
|
19
|
+
"provenance",
|
|
20
|
+
"freshness_anchor",
|
|
21
|
+
"observed_at",
|
|
22
|
+
"privacy_attestation"
|
|
23
|
+
],
|
|
24
|
+
"properties": {
|
|
25
|
+
"contract_version": {
|
|
26
|
+
"const": "knowledge-captured-observation.v1"
|
|
27
|
+
},
|
|
28
|
+
"lesson": {
|
|
29
|
+
"$ref": "#/$defs/safeText2000"
|
|
30
|
+
},
|
|
31
|
+
"kind": {
|
|
32
|
+
"enum": ["pattern", "gotcha", "antipattern"]
|
|
33
|
+
},
|
|
34
|
+
"project_scope": {
|
|
35
|
+
"type": "object",
|
|
36
|
+
"additionalProperties": false,
|
|
37
|
+
"required": ["paths", "audience"],
|
|
38
|
+
"properties": {
|
|
39
|
+
"paths": {
|
|
40
|
+
"type": "array",
|
|
41
|
+
"minItems": 1,
|
|
42
|
+
"maxItems": 20,
|
|
43
|
+
"items": {
|
|
44
|
+
"$ref": "#/$defs/repositoryPath"
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
"audience": {
|
|
48
|
+
"const": "project"
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"competency_facets": {
|
|
53
|
+
"type": "array",
|
|
54
|
+
"minItems": 1,
|
|
55
|
+
"maxItems": 9,
|
|
56
|
+
"uniqueItems": true,
|
|
57
|
+
"items": {
|
|
58
|
+
"enum": [
|
|
59
|
+
"CQ-ORIENT",
|
|
60
|
+
"CQ-DESIGN",
|
|
61
|
+
"CQ-CHANGE",
|
|
62
|
+
"CQ-DIAGNOSE",
|
|
63
|
+
"CQ-REVIEW",
|
|
64
|
+
"CQ-VERIFY",
|
|
65
|
+
"CQ-OPERATE",
|
|
66
|
+
"CQ-ROUTE",
|
|
67
|
+
"CQ-RETIRE"
|
|
68
|
+
]
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"destination_hint": {
|
|
72
|
+
"type": "object",
|
|
73
|
+
"additionalProperties": false,
|
|
74
|
+
"required": ["type", "path"],
|
|
75
|
+
"properties": {
|
|
76
|
+
"type": {
|
|
77
|
+
"enum": ["topic", "canonical-artifact", "route-suggestion"]
|
|
78
|
+
},
|
|
79
|
+
"path": {
|
|
80
|
+
"$ref": "#/$defs/repositoryPath"
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
"producer": {
|
|
85
|
+
"type": "object",
|
|
86
|
+
"additionalProperties": false,
|
|
87
|
+
"required": ["workflow", "workflow_version"],
|
|
88
|
+
"properties": {
|
|
89
|
+
"workflow": {
|
|
90
|
+
"$ref": "#/$defs/slug"
|
|
91
|
+
},
|
|
92
|
+
"workflow_version": {
|
|
93
|
+
"type": "string",
|
|
94
|
+
"minLength": 1,
|
|
95
|
+
"maxLength": 80,
|
|
96
|
+
"pattern": "^[A-Za-z0-9._+-]+$"
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
"semantic_gate": {
|
|
101
|
+
"type": "object",
|
|
102
|
+
"additionalProperties": false,
|
|
103
|
+
"required": ["name", "artifact"],
|
|
104
|
+
"properties": {
|
|
105
|
+
"name": {
|
|
106
|
+
"$ref": "#/$defs/slug"
|
|
107
|
+
},
|
|
108
|
+
"artifact": {
|
|
109
|
+
"$ref": "#/$defs/repositoryPath"
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
"provenance": {
|
|
114
|
+
"type": "object",
|
|
115
|
+
"additionalProperties": false,
|
|
116
|
+
"required": ["sources"],
|
|
117
|
+
"properties": {
|
|
118
|
+
"sources": {
|
|
119
|
+
"type": "array",
|
|
120
|
+
"minItems": 1,
|
|
121
|
+
"maxItems": 12,
|
|
122
|
+
"items": {
|
|
123
|
+
"type": "object",
|
|
124
|
+
"additionalProperties": false,
|
|
125
|
+
"required": ["path"],
|
|
126
|
+
"properties": {
|
|
127
|
+
"path": {
|
|
128
|
+
"$ref": "#/$defs/repositoryPath"
|
|
129
|
+
},
|
|
130
|
+
"line_start": {
|
|
131
|
+
"type": "integer",
|
|
132
|
+
"minimum": 1,
|
|
133
|
+
"maximum": 1000000
|
|
134
|
+
},
|
|
135
|
+
"line_end": {
|
|
136
|
+
"type": "integer",
|
|
137
|
+
"minimum": 1,
|
|
138
|
+
"maximum": 1000000
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
"freshness_anchor": {
|
|
146
|
+
"type": "object",
|
|
147
|
+
"additionalProperties": false,
|
|
148
|
+
"required": ["path", "digest"],
|
|
149
|
+
"properties": {
|
|
150
|
+
"path": {
|
|
151
|
+
"$ref": "#/$defs/repositoryPath"
|
|
152
|
+
},
|
|
153
|
+
"digest": {
|
|
154
|
+
"$ref": "#/$defs/digest"
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
"observed_at": {
|
|
159
|
+
"type": "string",
|
|
160
|
+
"format": "date-time",
|
|
161
|
+
"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$"
|
|
162
|
+
},
|
|
163
|
+
"privacy_attestation": {
|
|
164
|
+
"type": "object",
|
|
165
|
+
"additionalProperties": false,
|
|
166
|
+
"required": [
|
|
167
|
+
"reviewed",
|
|
168
|
+
"contains_private_data",
|
|
169
|
+
"contains_secrets",
|
|
170
|
+
"contains_instructions"
|
|
171
|
+
],
|
|
172
|
+
"properties": {
|
|
173
|
+
"reviewed": {
|
|
174
|
+
"const": true
|
|
175
|
+
},
|
|
176
|
+
"contains_private_data": {
|
|
177
|
+
"const": false
|
|
178
|
+
},
|
|
179
|
+
"contains_secrets": {
|
|
180
|
+
"const": false
|
|
181
|
+
},
|
|
182
|
+
"contains_instructions": {
|
|
183
|
+
"const": false
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
},
|
|
187
|
+
"friction": {
|
|
188
|
+
"type": "object",
|
|
189
|
+
"additionalProperties": false,
|
|
190
|
+
"required": ["failed_attempts", "summary"],
|
|
191
|
+
"properties": {
|
|
192
|
+
"failed_attempts": {
|
|
193
|
+
"type": "integer",
|
|
194
|
+
"minimum": 1,
|
|
195
|
+
"maximum": 20
|
|
196
|
+
},
|
|
197
|
+
"summary": {
|
|
198
|
+
"$ref": "#/$defs/safeText500"
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
},
|
|
202
|
+
"verification_route": {
|
|
203
|
+
"type": "object",
|
|
204
|
+
"additionalProperties": false,
|
|
205
|
+
"required": ["command", "path"],
|
|
206
|
+
"properties": {
|
|
207
|
+
"command": {
|
|
208
|
+
"$ref": "#/$defs/safeText500"
|
|
209
|
+
},
|
|
210
|
+
"path": {
|
|
211
|
+
"$ref": "#/$defs/repositoryPath"
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
},
|
|
216
|
+
"$defs": {
|
|
217
|
+
"safeText2000": {
|
|
218
|
+
"type": "string",
|
|
219
|
+
"minLength": 1,
|
|
220
|
+
"maxLength": 2000
|
|
221
|
+
},
|
|
222
|
+
"safeText500": {
|
|
223
|
+
"type": "string",
|
|
224
|
+
"minLength": 1,
|
|
225
|
+
"maxLength": 500
|
|
226
|
+
},
|
|
227
|
+
"slug": {
|
|
228
|
+
"type": "string",
|
|
229
|
+
"minLength": 1,
|
|
230
|
+
"maxLength": 80,
|
|
231
|
+
"pattern": "^[a-z][a-z0-9-]*$"
|
|
232
|
+
},
|
|
233
|
+
"repositoryPath": {
|
|
234
|
+
"type": "string",
|
|
235
|
+
"minLength": 1,
|
|
236
|
+
"maxLength": 1000,
|
|
237
|
+
"pattern": "^(?:\\.|(?!/)(?![A-Za-z]:)(?!.*:)(?!.*\\\\)(?!.*(?:^|/)\\.{1,2}(?:/|$))(?!.*(?:^|/)(?:[Cc][Oo][Nn]|[Pp][Rr][Nn]|[Aa][Uu][Xx]|[Nn][Uu][Ll]|[Cc][Oo][Mm][1-9]|[Ll][Pp][Tt][1-9])(?:\\.|/|$))(?!.*[. ](?:/|$)).+)$"
|
|
238
|
+
},
|
|
239
|
+
"digest": {
|
|
240
|
+
"oneOf": [
|
|
241
|
+
{"$ref": "#/$defs/sha256BytesDigest"},
|
|
242
|
+
{"$ref": "#/$defs/gitBlobDigest"}
|
|
243
|
+
]
|
|
244
|
+
},
|
|
245
|
+
"sha256BytesDigest": {
|
|
246
|
+
"type": "object",
|
|
247
|
+
"additionalProperties": false,
|
|
248
|
+
"required": ["kind", "sha256", "byte_length"],
|
|
249
|
+
"properties": {
|
|
250
|
+
"kind": {
|
|
251
|
+
"const": "sha256-bytes-v1"
|
|
252
|
+
},
|
|
253
|
+
"sha256": {
|
|
254
|
+
"type": "string",
|
|
255
|
+
"pattern": "^[0-9a-f]{64}$"
|
|
256
|
+
},
|
|
257
|
+
"byte_length": {
|
|
258
|
+
"type": "integer",
|
|
259
|
+
"minimum": 0
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
},
|
|
263
|
+
"gitBlobDigest": {
|
|
264
|
+
"type": "object",
|
|
265
|
+
"additionalProperties": false,
|
|
266
|
+
"required": ["kind", "algorithm", "object_id"],
|
|
267
|
+
"properties": {
|
|
268
|
+
"kind": {"const": "git-blob-v1"},
|
|
269
|
+
"algorithm": {"enum": ["sha1", "sha256"]},
|
|
270
|
+
"object_id": {
|
|
271
|
+
"type": "string",
|
|
272
|
+
"pattern": "^(?:[0-9a-f]{40}|[0-9a-f]{64})$"
|
|
273
|
+
}
|
|
274
|
+
},
|
|
275
|
+
"allOf": [
|
|
276
|
+
{
|
|
277
|
+
"if": {"properties": {"algorithm": {"const": "sha1"}}},
|
|
278
|
+
"then": {"properties": {"object_id": {"pattern": "^[0-9a-f]{40}$"}}}
|
|
279
|
+
},
|
|
280
|
+
{
|
|
281
|
+
"if": {"properties": {"algorithm": {"const": "sha256"}}},
|
|
282
|
+
"then": {"properties": {"object_id": {"pattern": "^[0-9a-f]{64}$"}}}
|
|
283
|
+
}
|
|
284
|
+
]
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
}
|
|
@@ -24,7 +24,10 @@ from typing import Iterator
|
|
|
24
24
|
# keeps the phases predictable, which the spec calls for.
|
|
25
25
|
from agentbundle.build.phase_order import PHASE_ORDER as _PHASE_ORDER
|
|
26
26
|
from agentbundle.build.projection_io import copy_projected_file, ensure_directory_no_follow
|
|
27
|
-
from agentbundle.build.projections.direct_directory import
|
|
27
|
+
from agentbundle.build.projections.direct_directory import (
|
|
28
|
+
ignore_absolute_symlinks,
|
|
29
|
+
sweep_orphans,
|
|
30
|
+
)
|
|
28
31
|
from agentbundle.build.projections.merge_json import project_merge_json
|
|
29
32
|
|
|
30
33
|
|
|
@@ -197,23 +200,6 @@ def _project_single(
|
|
|
197
200
|
raise ValueError(f"claude-code: unhandled mode {mode!r} for {primitive_name}")
|
|
198
201
|
|
|
199
202
|
|
|
200
|
-
def _ignore_absolute_symlinks(directory: str, names: list[str]) -> set[str]:
|
|
201
|
-
"""`shutil.copytree` ignore callback: drop symlinks with absolute targets
|
|
202
|
-
and Python bytecode cache directories.
|
|
203
|
-
|
|
204
|
-
Relative symlinks (intra-skill cross-references) are preserved as
|
|
205
|
-
symlinks. Absolute symlinks always escape the tree and are a path-escape
|
|
206
|
-
vector. __pycache__ directories are excluded because .pyc files embed
|
|
207
|
-
absolute source paths and can never be byte-identical across machines.
|
|
208
|
-
"""
|
|
209
|
-
base = Path(directory)
|
|
210
|
-
return {
|
|
211
|
-
name for name in names
|
|
212
|
-
if name == "__pycache__"
|
|
213
|
-
or ((base / name).is_symlink() and (base / name).readlink().is_absolute())
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
|
|
217
203
|
def _project_direct_directory(source_dir: Path, target_dir: Path) -> None:
|
|
218
204
|
for entry in sorted(source_dir.iterdir()):
|
|
219
205
|
# Defense-in-depth — `lint-packs` rejects packs that ship
|
|
@@ -233,11 +219,11 @@ def _project_direct_directory(source_dir: Path, target_dir: Path) -> None:
|
|
|
233
219
|
elif destination.exists():
|
|
234
220
|
shutil.rmtree(destination)
|
|
235
221
|
# symlinks=True preserves relative nested symlinks; absolute
|
|
236
|
-
# targets are filtered out by
|
|
222
|
+
# targets are filtered out by ignore_absolute_symlinks.
|
|
237
223
|
shutil.copytree(
|
|
238
224
|
entry, destination,
|
|
239
225
|
symlinks=True,
|
|
240
|
-
ignore=
|
|
226
|
+
ignore=ignore_absolute_symlinks,
|
|
241
227
|
)
|
|
242
228
|
|
|
243
229
|
|
|
@@ -25,7 +25,10 @@ from agentbundle.build.projection_io import copy_projected_file, ensure_director
|
|
|
25
25
|
from agentbundle.build.projections.codex_agent_toml import (
|
|
26
26
|
project_codex_agent_toml,
|
|
27
27
|
)
|
|
28
|
-
from agentbundle.build.projections.direct_directory import
|
|
28
|
+
from agentbundle.build.projections.direct_directory import (
|
|
29
|
+
ignore_absolute_symlinks,
|
|
30
|
+
sweep_orphans,
|
|
31
|
+
)
|
|
29
32
|
from agentbundle.build.projections.merge_json import project_merge_json
|
|
30
33
|
|
|
31
34
|
|
|
@@ -181,11 +184,11 @@ def project_packs(
|
|
|
181
184
|
elif destination.exists():
|
|
182
185
|
shutil.rmtree(destination)
|
|
183
186
|
# symlinks=True preserves relative nested symlinks;
|
|
184
|
-
# absolute targets are filtered by
|
|
187
|
+
# absolute targets are filtered by ignore_absolute_symlinks.
|
|
185
188
|
shutil.copytree(
|
|
186
189
|
entry, destination,
|
|
187
190
|
symlinks=True,
|
|
188
|
-
ignore=
|
|
191
|
+
ignore=ignore_absolute_symlinks,
|
|
189
192
|
)
|
|
190
193
|
# Bound to `skill` only per spec § Never do. Other
|
|
191
194
|
# direct-directory primitives opt in explicitly.
|
|
@@ -212,23 +215,6 @@ def project_packs(
|
|
|
212
215
|
raise ValueError(f"codex: unhandled mode {mode!r} for {primitive_name}")
|
|
213
216
|
|
|
214
217
|
|
|
215
|
-
def _ignore_absolute_symlinks(directory: str, names: list[str]) -> set[str]:
|
|
216
|
-
"""`shutil.copytree` ignore callback: drop symlinks with absolute targets
|
|
217
|
-
and Python bytecode cache directories.
|
|
218
|
-
|
|
219
|
-
Relative symlinks (intra-skill cross-references) are preserved.
|
|
220
|
-
Absolute symlinks always escape the tree and are a path-escape vector.
|
|
221
|
-
__pycache__ directories are excluded because .pyc files embed absolute
|
|
222
|
-
source paths and can never be byte-identical across machines.
|
|
223
|
-
"""
|
|
224
|
-
base = Path(directory)
|
|
225
|
-
return {
|
|
226
|
-
name for name in names
|
|
227
|
-
if name == "__pycache__"
|
|
228
|
-
or ((base / name).is_symlink() and (base / name).readlink().is_absolute())
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
|
|
232
218
|
def _project_direct_file(
|
|
233
219
|
source_dir: Path,
|
|
234
220
|
output_root: Path,
|