agentbundle 0.29.6__tar.gz → 0.29.8__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.29.6 → agentbundle-0.29.8}/PKG-INFO +1 -1
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/_data/catalogue-scaffold/guides/_shared/reference/catalogue-authoring-standards.md +37 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/_data/catalogue-scaffold/manifest.json +2 -2
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/_data/catalogue-scaffold/packs/AGENTS.md +38 -38
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/_data/install-marker.py +88 -18
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/catalogue_tooling/self_host_windows.py +15 -2
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/version.py +1 -1
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle.egg-info/PKG-INFO +1 -1
- {agentbundle-0.29.6 → agentbundle-0.29.8}/pyproject.toml +1 -1
- {agentbundle-0.29.6 → agentbundle-0.29.8}/README-pypi.md +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/README.md +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/__init__.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/__main__.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/_data/adapter.schema.json +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/_data/adapter.toml +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/_data/catalogue-scaffold/guides/_shared/reference/catalogue-ci-contract.md +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/_data/catalogue-scaffold/packs/README.md +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/_data/catalogue-scaffold/packs/_example/README.md +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/_data/catalogue-scaffold/packs/_example/pack.toml +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/_data/catalogue-scaffold/profiles/AGENTS.md +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/_data/catalogue-scaffold/profiles/README.md +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/_data/catalogue-scaffold/profiles/_example/README.md +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/_data/catalogue-scaffold/profiles/_example/profile.toml +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/_data/catalogue.schema.json +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/_data/guide.schema.json +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/_data/install-defaults.toml +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/_data/marketplace-entry.schema.json +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/_data/pack.schema.json +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/_data/plugin-manifest.derived.schema.json +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/_data/plugin-manifest.schema.json +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/_data/profile.schema.json +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/_data/skill-manifest.schema.json +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/_data/skill.schema.json +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/_data/target-vocab.toml +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/__init__.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/__main__.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/adapter_root_bins.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/adapters/__init__.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/adapters/claude_code.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/adapters/codex.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/adapters/copilot.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/adapters/cursor.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/adapters/gemini.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/adapters/kiro.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/adapters/kiro_cli.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/adapters/kiro_ide.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/contract.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/lint_packs.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/main.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/phase_order.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/projections/__init__.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/projections/codex_agent_toml.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/projections/copilot_agent_md.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/projections/copilot_hooks_json.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/projections/direct_directory.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/projections/gemini_command_toml.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/projections/hook_id.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/projections/kiro_ide_hook.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/projections/merge_into_agent_json.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/projections/merge_json.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/projections/user_merge_json.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/recipes/composite-agents-md.toml +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/recipes/composite-marketplace.toml +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/recipes/marketplace.toml +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/recipes/per-pack-apm-package.toml +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/recipes/per-pack-claude-plugin.toml +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/recipes/per-pack-overlay.toml +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/recipes/self-host.toml +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/scope_rails.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/self_host.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/shared_libs.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/target_resolver.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/__init__.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_adapter_claude_code.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_adapter_codex.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_adapter_copilot.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_adapter_cursor.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_adapter_gemini.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_adapter_kiro.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_adapter_kiro_alias.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_adapter_kiro_cli.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_adapter_kiro_ide.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_adapter_root_bins_projection.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_architect_design_reviewer_projection.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_architect_design_reviewer_rubric_parity.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_build_ships_seeds.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_contract.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_contract_scope.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_contract_v07.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_contract_v08.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_direct_directory_cleanup.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_end_to_end_build.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_lint_agents_md_diataxis_block.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_lint_agents_md_legacy_block.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_lint_agents_md_risk_block.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_lint_packs.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_load_pack_hook_wiring_safely.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_pack_schema.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_pack_schema_allowed_adapters.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_pack_schema_install.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_pipeline.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_plugin_manifest_schema.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_projectable_subset.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_projections_merge_json.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_scope_rails.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_security.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_self_host_check.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_self_host_fixture_guard.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_self_host_recipe_config.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_shared_libs_projection.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_shared_prefix_contract.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_shipped_packs_v07_declarations.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_shipped_packs_v08_declarations.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_user_libs_projection.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_validate.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_workspace_status_projection.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_writers_emit_lf.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/user_libs.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/validate.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/catalogue.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/catalogue_tooling/__init__.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/catalogue_tooling/archive.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/catalogue_tooling/build.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/catalogue_tooling/config.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/catalogue_tooling/defaults.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/catalogue_tooling/diagnostics.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/catalogue_tooling/identity.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/catalogue_tooling/initialise.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/catalogue_tooling/initialise_self_hosted.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/catalogue_tooling/lint.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/catalogue_tooling/package.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/catalogue_tooling/results.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/catalogue_tooling/self_host.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/catalogue_tooling/skill_spec_lint.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/catalogue_tooling/toml_emit.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/catalogue_tooling/verify.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/categories.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/cli.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/commands/__init__.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/commands/_common.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/commands/_drop_warning.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/commands/adapt.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/commands/catalogue_build.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/commands/catalogue_init.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/commands/catalogue_lint.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/commands/catalogue_package.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/commands/catalogue_self_host.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/commands/catalogue_sync_defaults.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/commands/catalogue_tooling_stub.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/commands/catalogue_verify.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/commands/config.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/commands/diff.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/commands/docs.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/commands/init_state.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/commands/install.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/commands/list_installed.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/commands/list_packs.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/commands/list_profiles.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/commands/list_targets.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/commands/oplog_cmd.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/commands/pack_config_cmd.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/commands/pack_evals.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/commands/package_catalogue.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/commands/profile.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/commands/reconcile.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/commands/render.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/commands/scaffold.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/commands/show.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/commands/uninstall.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/commands/upgrade.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/commands/validate.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/config.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/https_catalogue.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/local_exclude.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/oplog.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/pack_inventory.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/render.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/safety.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/scaffold.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/scope.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/source_defaults.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/statelock.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/user_config.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/workspace_mcp.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle.egg-info/SOURCES.txt +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle.egg-info/dependency_links.txt +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle.egg-info/entry_points.txt +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle.egg-info/requires.txt +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle.egg-info/top_level.txt +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/setup.cfg +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/tests/test_adapter_permissions_projection.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/tests/test_linear_primitive.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/tests/test_workspace_mcp_elicit.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/tests/test_workspace_mcp_event_bridge.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/tests/test_workspace_mcp_git.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/tests/test_workspace_mcp_lifecycle.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/tests/test_workspace_mcp_stdin.py +0 -0
- {agentbundle-0.29.6 → agentbundle-0.29.8}/tests/test_workspace_mcp_tools.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agentbundle
|
|
3
|
-
Version: 0.29.
|
|
3
|
+
Version: 0.29.8
|
|
4
4
|
Summary: npm for your coding agent. Install packs of skills, subagents, and hooks into any repo, for every major agent.
|
|
5
5
|
Author-email: eugenelim <eugenelim@users.noreply.github.com>
|
|
6
6
|
License: Apache-2.0 OR MIT
|
|
@@ -36,6 +36,43 @@ and `version`; `[pack.adapter-contract]` with `version`.
|
|
|
36
36
|
- [packs/README.md](../../../packs/README.md) — pack layout, versioning rules, lint commands.
|
|
37
37
|
- [packs/AGENTS.md](../../../packs/AGENTS.md) — agent-facing schema map and primary workflow.
|
|
38
38
|
|
|
39
|
+
### `[pack].description` — display copy
|
|
40
|
+
|
|
41
|
+
`[pack].description` is read by a **person** deciding whether to install: in a
|
|
42
|
+
marketplace browser, a catalogue listing, or CLI output. It is not read by the model.
|
|
43
|
+
|
|
44
|
+
That makes it a different artifact from a skill's or agent's `description`, which the
|
|
45
|
+
model reads to decide whether to **activate** the primitive. Length is load-bearing
|
|
46
|
+
there and shortening it degrades activation; per-target caps in
|
|
47
|
+
`contracts/target-vocab.toml` govern it. Do not carry habits from one to the other.
|
|
48
|
+
|
|
49
|
+
**Shape.** First sentence names the job the adopter accomplishes — verb-first, and
|
|
50
|
+
readable on its own. An optional second sentence carries a compressed capability list
|
|
51
|
+
or the one thing that distinguishes this pack. Then stop.
|
|
52
|
+
|
|
53
|
+
> Supervised coding from brief to merged PR. A plan, execute, verify, review loop with
|
|
54
|
+
> spec-driven development, adversarial and security reviewers, and pre-commit gates.
|
|
55
|
+
|
|
56
|
+
**Anti-patterns**, each of which has shipped here before:
|
|
57
|
+
|
|
58
|
+
| Anti-pattern | Instead |
|
|
59
|
+
| --- | --- |
|
|
60
|
+
| Opening with a component inventory (`Core: work-loop, new-spec, bug-fix, …`) | Lead with the outcome; the inventory belongs in the README |
|
|
61
|
+
| Repo-insider vocabulary (`forked-context`, `the grown-up successor to X`) | Words a first-time reader resolves without this repo |
|
|
62
|
+
| Cross-pack references (`co-installs with X`, `feeds Y's queue`) | Nothing that assumes another pack is known |
|
|
63
|
+
| Provenance name-drops (`(STORM, PRISMA, ACH, GRADE)`) | Name a framework only when the reader is buying it |
|
|
64
|
+
| Negative space (`no stack, no values tables, no pixel comps`) | Say what it does; the README can scope what it doesn't |
|
|
65
|
+
| Internal paths (`~/.agentbundle/bin/`) | Nothing an adopter cannot act on from a listing |
|
|
66
|
+
|
|
67
|
+
**Discoverability is carried elsewhere** — `[pack].keywords` and `[pack].categories`
|
|
68
|
+
— so prose does not need to be keyword-dense to stay findable.
|
|
69
|
+
|
|
70
|
+
There is no target-imposed length limit. `tools/lint-pack-descriptions.py` fails the
|
|
71
|
+
build past a deliberately loose backstop, which exists only to stop runaway drift (the
|
|
72
|
+
field once reached 1122 characters); it is not the quality bar. **This section is.** A
|
|
73
|
+
description inside the backstop can still be bad, and a length check cannot tell —
|
|
74
|
+
review against the shape and the table above.
|
|
75
|
+
|
|
39
76
|
---
|
|
40
77
|
|
|
41
78
|
## 3. Pack README standard
|
{agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/_data/catalogue-scaffold/manifest.json
RENAMED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"files": {
|
|
3
|
-
"guides/_shared/reference/catalogue-authoring-standards.md": "
|
|
3
|
+
"guides/_shared/reference/catalogue-authoring-standards.md": "f5e41498139ca335b8a679644eb02d2a35abb2234a77b5b14e7ff90da02722b9",
|
|
4
4
|
"guides/_shared/reference/catalogue-ci-contract.md": "fae793ab47989b6dd3c731afcb0b4cda21c7d08bbe7fa40fca6d3abb3d158141",
|
|
5
|
-
"packs/AGENTS.md": "
|
|
5
|
+
"packs/AGENTS.md": "9bfeda4069826e518a4f4fdae45bd40f4393c1c5aaf146149d3eb4aece30be83",
|
|
6
6
|
"packs/README.md": "d2de5f9556f4c8e521103474bde74636e02cc805f9bf5312a3a61a1f3eb45d8f",
|
|
7
7
|
"packs/_example/.apm/skills/example-skill/SKILL.md": "33be8cbf4b2c014a5a63e788b7d0b350ad8061c6c4b2579369a3e984135bf9f1",
|
|
8
8
|
"packs/_example/.apm/skills/example-skill/evals/eval_queries.json": "f41ecda0834a22f3b4823c81ab02e58b0e4beba610e3b40c185579abff9cfeee",
|
{agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/_data/catalogue-scaffold/packs/AGENTS.md
RENAMED
|
@@ -6,9 +6,11 @@ Read `packs/AGENTS.local.md` when present — it carries host-specific overrides
|
|
|
6
6
|
## Pack layout
|
|
7
7
|
|
|
8
8
|
The pack is the ownership and test-execution boundary; `.apm/` is the runtime export boundary; a skill is the
|
|
9
|
-
evaluation-fixture boundary.
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
evaluation-fixture boundary. Skill tests go in `packs/<pack>/tests/skills/<skill>/` and hook tests in
|
|
10
|
+
`packs/<pack>/tests/hooks/` — never under `.apm/`, which adapters project verbatim into an installed tree.
|
|
11
|
+
Evals stay skill-local at `.apm/skills/<skill>/evals/` and project with the skill. Run **one pytest process
|
|
12
|
+
per skill test directory**: two skills may ship the same test basename, and a shared `sys.path` binds one
|
|
13
|
+
skill's module for both suites and passes green.
|
|
12
14
|
|
|
13
15
|
| Path | Purpose |
|
|
14
16
|
|------|---------|
|
|
@@ -28,14 +30,13 @@ every pack, plus one pytest process per skill test dir. Shape: `docs/architectur
|
|
|
28
30
|
|
|
29
31
|
## Reserved authoring assets
|
|
30
32
|
|
|
31
|
-
Any immediate child of the packs root whose name begins with `_` is a reserved authoring asset
|
|
32
|
-
|
|
33
|
-
installed, and are not included in packaged archives. See `packs/README.md`.
|
|
33
|
+
Any immediate child of the packs root whose name begins with `_` is a reserved authoring asset: not
|
|
34
|
+
catalogue payload, absent from `list-packs`, never installed or packaged. See `packs/README.md`.
|
|
34
35
|
|
|
35
36
|
## pack.toml schema map
|
|
36
37
|
|
|
37
|
-
> The
|
|
38
|
-
> The table below is a navigational summary
|
|
38
|
+
> The normative source for pack.toml format is the `pack` JSON Schema that ships inside `agentbundle`;
|
|
39
|
+
> `agentbundle catalogue lint --root .` validates against it. The table below is a navigational summary.
|
|
39
40
|
|
|
40
41
|
| Table | Required fields | Notable optional fields |
|
|
41
42
|
|-------|----------------|------------------------|
|
|
@@ -64,14 +65,14 @@ For CI pipeline orchestration — publication ordering, exit codes, JSON output
|
|
|
64
65
|
|
|
65
66
|
## Version bump rule
|
|
66
67
|
|
|
67
|
-
Every **non-cosmetic** change to pack content requires a version bump in both
|
|
68
|
-
|
|
69
|
-
2. `.claude-plugin/plugin.json` → `"version"`
|
|
68
|
+
Every **non-cosmetic** change to pack content requires a version bump in **both** `pack.toml` →
|
|
69
|
+
`[pack] version` and `.claude-plugin/plugin.json` → `"version"`.
|
|
70
70
|
|
|
71
71
|
Which increment: **patch** for changed bodies/directives/conventions; **minor** for new primitives;
|
|
72
72
|
**major** for removals. Never ride an unreleased version from another in-flight PR.
|
|
73
73
|
|
|
74
|
-
|
|
74
|
+
Further post-bump steps (changelog, marketplace regeneration) are host-specific — see `AGENTS.local.md` if
|
|
75
|
+
your catalogue has one.
|
|
75
76
|
|
|
76
77
|
## Self-hosting projection
|
|
77
78
|
|
|
@@ -80,52 +81,50 @@ projects them to every shipped adapter's layout. Never edit a projected output d
|
|
|
80
81
|
|
|
81
82
|
On a dirty working tree: `agentbundle catalogue self-host --root . --write --force`.
|
|
82
83
|
|
|
83
|
-
**Critical ordering:** when a session edits both seeds and non-seed pack sources (`.apm/**`,
|
|
84
|
-
|
|
84
|
+
**Critical ordering:** when a session edits both seeds and non-seed pack sources (`.apm/**`, `pack.toml`),
|
|
85
|
+
run self-host AFTER all edits — not between them.
|
|
85
86
|
|
|
86
87
|
## Claude plugin JSON format
|
|
87
88
|
|
|
88
|
-
Each pack's `.claude-plugin/plugin.json` is validated against
|
|
89
|
-
Non-compliant manifests
|
|
89
|
+
Each pack's `.claude-plugin/plugin.json` is validated against the plugin-manifest JSON Schema that ships
|
|
90
|
+
inside `agentbundle`; `agentbundle catalogue lint --root .` reports violations. Non-compliant manifests
|
|
91
|
+
block publishing.
|
|
90
92
|
|
|
91
93
|
**Required:** `name` (string), `version` (string matching `pack.toml`), `description` (string).
|
|
92
94
|
|
|
93
|
-
**Allowed optional fields** — `skills`, `agents` (arrays of strings); `author` (`{name, email?}`);
|
|
94
|
-
`
|
|
95
|
-
|
|
95
|
+
**Allowed optional fields** — `skills`, `agents` (arrays of strings); `author` (`{name, email?}`); `license`,
|
|
96
|
+
`homepage`, `repository`, `category`, `displayName` (strings); `keywords` (array); `source`
|
|
97
|
+
(`{source, repo, branch, directory}`).
|
|
96
98
|
|
|
97
99
|
`additionalProperties: false` — any unknown key fails validation.
|
|
98
100
|
|
|
99
101
|
## Authoring or editing a skill
|
|
100
102
|
|
|
101
|
-
`README.md` states pack intent and the user journey it serves — not a contributor capability list.
|
|
102
|
-
|
|
103
|
-
`agentbundle catalogue lint --root . --deep` to confirm spec compliance.
|
|
103
|
+
`README.md` states pack intent and the user journey it serves — not a contributor capability list. Edit
|
|
104
|
+
`.apm/skills/<name>/SKILL.md`, run self-host to project, then `agentbundle catalogue lint --root . --deep`.
|
|
104
105
|
|
|
105
|
-
Full authoring standards — frontmatter key whitelist, body structure, naming, three-tier dependency
|
|
106
|
-
|
|
106
|
+
Full authoring standards — frontmatter key whitelist, body structure, naming, three-tier dependency policy,
|
|
107
|
+
evals — live in [`catalogue-authoring-standards.md`](../guides/_shared/reference/catalogue-authoring-standards.md).
|
|
107
108
|
|
|
108
109
|
## Eval coverage
|
|
109
110
|
|
|
110
111
|
A non-cosmetic pack update must also update the pack's eval harness:
|
|
111
|
-
- **Tier-A activation** — `evals/eval_queries.json` (~8–10 should-trigger + ~8–10 near-miss) and
|
|
112
|
-
|
|
112
|
+
- **Tier-A activation** — `evals/eval_queries.json` (~8–10 should-trigger + ~8–10 near-miss) and a
|
|
113
|
+
`[pack.evals]` block in `pack.toml` listing every user-triggered skill.
|
|
113
114
|
- **Tier-4 LLM-judge rubric** — `evals/evals.json` for judgment/authoring skills.
|
|
114
115
|
- **Tier-B-lite behavior check** — add an `expect` block to an `evals/evals.json` entry (non-destructive,
|
|
115
|
-
non-credentialed skills only). Four things
|
|
116
|
-
-
|
|
117
|
-
(
|
|
118
|
-
with these files before invoking the skill.
|
|
116
|
+
non-credentialed skills only). Four things must be explicit, or the format churns:
|
|
117
|
+
- The field is **`files`**, not `fixture`, and its paths are relative to the **skill root**
|
|
118
|
+
(`"evals/files/sample.md"`) — not to `evals/`. The runner seeds a temp workspace with them first.
|
|
119
119
|
- `expect.produces`: filenames the run must create in the workspace.
|
|
120
120
|
- `expect.output_contains` / `expect.output_excludes`: substrings in captured output.
|
|
121
|
-
- **Your skill script must accept the workspace path** —
|
|
122
|
-
|
|
123
|
-
Full procedure: [`guides/_shared/
|
|
121
|
+
- **Your skill script must accept the workspace path** — a `--fixture`/`--root` flag, or treat CWD as
|
|
122
|
+
the workspace — so the runner can confine writes and verify `produces`.
|
|
123
|
+
Full procedure: [`guides/_shared/reference/catalogue-authoring-standards.md`](../guides/_shared/reference/catalogue-authoring-standards.md).
|
|
124
124
|
|
|
125
125
|
## Windows-safe Python scripts
|
|
126
126
|
|
|
127
|
-
Any script under `.apm/` that prints to stdout or stderr must include the UTF-8 reconfigure guard
|
|
128
|
-
immediately after `import sys`, before any `print()` call:
|
|
127
|
+
Any script under `.apm/` that prints to stdout or stderr must include the UTF-8 reconfigure guard immediately after `import sys`, before any `print()` call:
|
|
129
128
|
|
|
130
129
|
```python
|
|
131
130
|
sys.stdout.reconfigure(encoding="utf-8", errors="strict")
|
|
@@ -145,6 +144,7 @@ Stubs in `plan.md` tasks must be `raise NotImplementedError # STUB: ACn` — no
|
|
|
145
144
|
|
|
146
145
|
## Shipped pack content carries no internal-governance citations
|
|
147
146
|
|
|
148
|
-
Anywhere under `packs/` — `.apm/**`, `pack.toml`, `README`/`JOURNEY`/`DESIGN`, `seeds/**` —
|
|
149
|
-
|
|
150
|
-
|
|
147
|
+
Anywhere under `packs/` — `.apm/**`, `pack.toml`, `README`/`JOURNEY`/`DESIGN`, `seeds/**` — never cite your
|
|
148
|
+
catalogue's own governance: decision-record or proposal numbers, spec/plan or acceptance-criterion citations,
|
|
149
|
+
or repository-only paths. Shipped content lands in someone else's tree, where each is a dead end. **Keep the
|
|
150
|
+
rule, drop the citation** — state what the reader must do, in full.
|
|
@@ -213,11 +213,66 @@ def _assert_portable_name(component: str) -> None:
|
|
|
213
213
|
# ---------------------------------------------------------------------------
|
|
214
214
|
|
|
215
215
|
|
|
216
|
+
# Settings files are read under an adopter's ``${CLAUDE_PROJECT_DIR}``, whose
|
|
217
|
+
# contents a cloned repo controls. Bound the read itself — measuring after
|
|
218
|
+
# `read_text()` has already pulled the whole file in is no bound at all.
|
|
219
|
+
_SETTINGS_READ_CAP = 1_048_576 # 1 MiB
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
def _plugin_marketplace(
|
|
223
|
+
plugin_root: pathlib.Path,
|
|
224
|
+
plugin_name: str,
|
|
225
|
+
) -> "str | None":
|
|
226
|
+
"""Return the marketplace this pack was installed from, or ``None``.
|
|
227
|
+
|
|
228
|
+
The Claude-plugins client installs into
|
|
229
|
+
``<config>/plugins/cache/<marketplace>/<plugin>/<version>``, so the pack
|
|
230
|
+
can read its own marketplace identity back out of ``${CLAUDE_PLUGIN_ROOT}``.
|
|
231
|
+
Verified against Claude Code 2.1.223.
|
|
232
|
+
|
|
233
|
+
Returns ``None`` when ``plugin_root`` does not have that shape. The caller
|
|
234
|
+
then matches on bare pack name alone — a layout we do not recognise must
|
|
235
|
+
degrade to the historical behaviour, not to "never opted in" (that is the
|
|
236
|
+
very failure this function's caller exists to fix).
|
|
237
|
+
"""
|
|
238
|
+
parts = plugin_root.parts
|
|
239
|
+
if len(parts) < 4:
|
|
240
|
+
return None
|
|
241
|
+
if parts[-4] != "cache" or parts[-2] != plugin_name:
|
|
242
|
+
return None
|
|
243
|
+
return parts[-3] or None
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
def _entry_matches(
|
|
247
|
+
entry: str,
|
|
248
|
+
plugin_name: str,
|
|
249
|
+
marketplace: "str | None",
|
|
250
|
+
) -> bool:
|
|
251
|
+
"""Does one ``enabledPlugins`` identifier name *this* pack?
|
|
252
|
+
|
|
253
|
+
Current clients write a qualified ``name@marketplace``; older ones wrote a
|
|
254
|
+
bare ``name``. A qualified identifier must agree on *both* halves whenever
|
|
255
|
+
we know our own marketplace, so another vendor's ``core@other-marketplace``
|
|
256
|
+
does not opt in a ``core`` that came from somewhere else.
|
|
257
|
+
"""
|
|
258
|
+
name, sep, entry_marketplace = entry.strip().partition("@")
|
|
259
|
+
if name.strip() != plugin_name:
|
|
260
|
+
return False
|
|
261
|
+
if not sep:
|
|
262
|
+
# Bare name — the identifier makes no marketplace claim to check.
|
|
263
|
+
return True
|
|
264
|
+
if marketplace is None:
|
|
265
|
+
# Our own identity is unknown; the name is all there is to compare.
|
|
266
|
+
return True
|
|
267
|
+
return entry_marketplace.strip() == marketplace
|
|
268
|
+
|
|
269
|
+
|
|
216
270
|
def _detect_origin(
|
|
217
271
|
*,
|
|
218
272
|
plugin_name: str,
|
|
219
273
|
home: pathlib.Path,
|
|
220
274
|
project_dir: pathlib.Path | None,
|
|
275
|
+
marketplace: "str | None",
|
|
221
276
|
) -> str | None:
|
|
222
277
|
"""Walk the three ``enabledPlugins`` settings files in precedence order.
|
|
223
278
|
|
|
@@ -226,9 +281,17 @@ def _detect_origin(
|
|
|
226
281
|
(pack is not enabled at any scope).
|
|
227
282
|
|
|
228
283
|
Precedence: local → project → user (most-specific wins).
|
|
229
|
-
|
|
230
|
-
``enabledPlugins``
|
|
231
|
-
|
|
284
|
+
|
|
285
|
+
``enabledPlugins`` carries two shapes. Current clients write an **object**
|
|
286
|
+
keyed by plugin identifier whose boolean value is the enabled state — only
|
|
287
|
+
``true`` counts as opted in, since ``false`` is an adopter who deliberately
|
|
288
|
+
disabled the pack. Older clients wrote a **JSON array** of identifiers;
|
|
289
|
+
both are accepted.
|
|
290
|
+
|
|
291
|
+
Every other outcome is "not opted in at that scope" and falls through: a
|
|
292
|
+
missing file, a non-regular path, a file past ``_SETTINGS_READ_CAP``,
|
|
293
|
+
undecodable bytes, malformed JSON, an absent ``enabledPlugins`` key, or a
|
|
294
|
+
value of any other type. A hostile settings file must never raise.
|
|
232
295
|
"""
|
|
233
296
|
candidates: list[tuple[str, pathlib.Path]] = []
|
|
234
297
|
|
|
@@ -239,32 +302,38 @@ def _detect_origin(
|
|
|
239
302
|
candidates.append(("user", home / ".claude" / "settings.json"))
|
|
240
303
|
|
|
241
304
|
for origin, settings_path in candidates:
|
|
242
|
-
|
|
305
|
+
# `.is_file()` where the old code used `.exists()`: a FIFO exists, and
|
|
306
|
+
# opening one for reading blocks until a writer appears. A character
|
|
307
|
+
# device such as /dev/zero exists too, and reads forever.
|
|
308
|
+
if not settings_path.is_file():
|
|
243
309
|
continue
|
|
244
310
|
try:
|
|
245
|
-
|
|
311
|
+
with settings_path.open("rb") as fh:
|
|
312
|
+
blob = fh.read(_SETTINGS_READ_CAP + 1)
|
|
246
313
|
except OSError:
|
|
247
314
|
continue
|
|
248
|
-
|
|
249
|
-
if len(read_text) > 1_048_576:
|
|
315
|
+
if len(blob) > _SETTINGS_READ_CAP:
|
|
250
316
|
continue
|
|
251
317
|
try:
|
|
252
|
-
|
|
253
|
-
|
|
318
|
+
# `json.loads` decodes UTF-8 itself; undecodable bytes raise
|
|
319
|
+
# UnicodeDecodeError and malformed JSON raises JSONDecodeError,
|
|
320
|
+
# both subclasses of ValueError.
|
|
321
|
+
raw = json.loads(blob)
|
|
322
|
+
except ValueError:
|
|
254
323
|
continue
|
|
255
324
|
if not isinstance(raw, dict):
|
|
256
325
|
continue
|
|
257
326
|
enabled = raw.get("enabledPlugins")
|
|
258
|
-
if
|
|
327
|
+
if isinstance(enabled, dict):
|
|
328
|
+
entries: list = [key for key, value in enabled.items() if value is True]
|
|
329
|
+
elif isinstance(enabled, list):
|
|
330
|
+
entries = enabled
|
|
331
|
+
else:
|
|
259
332
|
continue
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
continue
|
|
265
|
-
# Match by pack name as a prefix component (before '@').
|
|
266
|
-
entry_name = entry.split("@")[0].strip()
|
|
267
|
-
if entry_name == plugin_name:
|
|
333
|
+
for entry in entries:
|
|
334
|
+
if isinstance(entry, str) and _entry_matches(
|
|
335
|
+
entry, plugin_name, marketplace
|
|
336
|
+
):
|
|
268
337
|
return origin
|
|
269
338
|
|
|
270
339
|
return None
|
|
@@ -837,6 +906,7 @@ def _main_claude_plugins(args: argparse.Namespace) -> int:
|
|
|
837
906
|
plugin_name=pack_name,
|
|
838
907
|
home=home,
|
|
839
908
|
project_dir=project_dir,
|
|
909
|
+
marketplace=_plugin_marketplace(plugin_root, pack_name),
|
|
840
910
|
)
|
|
841
911
|
|
|
842
912
|
if origin is None:
|
{agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/catalogue_tooling/self_host_windows.py
RENAMED
|
@@ -84,8 +84,17 @@ def run_windows_compat(root: Path) -> int:
|
|
|
84
84
|
[py, "-m", "pytest", str(root / "packs" / "core" / "tests" / "hooks")],
|
|
85
85
|
root,
|
|
86
86
|
),
|
|
87
|
+
# credbroker's own suite. The cross-platform process-tree kill lives
|
|
88
|
+
# here (POSIX process groups vs `taskkill`), and until this runs green on
|
|
89
|
+
# Windows the `taskkill` arm and the reserved-device-name grammar are
|
|
90
|
+
# reasoned, not verified.
|
|
91
|
+
(
|
|
92
|
+
"credbroker suite (process-tree kill parity)",
|
|
93
|
+
[py, "-m", "pytest"],
|
|
94
|
+
root / "packages" / "credbroker",
|
|
95
|
+
),
|
|
87
96
|
# Atlassian SSO suites (asyncio + SSL-context wiring is platform-sensitive).
|
|
88
|
-
# Pack tests live outside the runtime payload
|
|
97
|
+
# Pack tests live outside the runtime payload.
|
|
89
98
|
#
|
|
90
99
|
# Probe the dependencies first. Both trios `importorskip("credbroker")` at
|
|
91
100
|
# module scope, and `_step` below judges a step by its return code alone —
|
|
@@ -98,7 +107,11 @@ def run_windows_compat(root: Path) -> int:
|
|
|
98
107
|
),
|
|
99
108
|
(
|
|
100
109
|
"jira SSO suites (atlassian-sso-cookie)",
|
|
101
|
-
[
|
|
110
|
+
[
|
|
111
|
+
py, "-m", "pytest",
|
|
112
|
+
"test_sso_config.py", "test_sso_client.py", "test_setup_sso.py",
|
|
113
|
+
"test_check_sso_login.py",
|
|
114
|
+
],
|
|
102
115
|
root / "packs" / "atlassian" / "tests" / "skills" / "jira",
|
|
103
116
|
),
|
|
104
117
|
(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agentbundle
|
|
3
|
-
Version: 0.29.
|
|
3
|
+
Version: 0.29.8
|
|
4
4
|
Summary: npm for your coding agent. Install packs of skills, subagents, and hooks into any repo, for every major agent.
|
|
5
5
|
Author-email: eugenelim <eugenelim@users.noreply.github.com>
|
|
6
6
|
License: Apache-2.0 OR MIT
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "agentbundle"
|
|
7
|
-
version = "0.29.
|
|
7
|
+
version = "0.29.8"
|
|
8
8
|
description = "npm for your coding agent. Install packs of skills, subagents, and hooks into any repo, for every major agent."
|
|
9
9
|
requires-python = ">=3.11"
|
|
10
10
|
dependencies = []
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/_data/catalogue-scaffold/packs/README.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/_data/catalogue-scaffold/profiles/AGENTS.md
RENAMED
|
File without changes
|
{agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/_data/catalogue-scaffold/profiles/README.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/_data/plugin-manifest.derived.schema.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/projections/copilot_hooks_json.py
RENAMED
|
File without changes
|
|
File without changes
|
{agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/projections/gemini_command_toml.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/projections/merge_into_agent_json.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/recipes/composite-agents-md.toml
RENAMED
|
File without changes
|
{agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/recipes/composite-marketplace.toml
RENAMED
|
File without changes
|
|
File without changes
|
{agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/recipes/per-pack-apm-package.toml
RENAMED
|
File without changes
|
{agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/recipes/per-pack-claude-plugin.toml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_adapter_claude_code.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbundle-0.29.6 → agentbundle-0.29.8}/agentbundle/build/tests/test_adapter_kiro_alias.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|