agentbundle 0.22.0__tar.gz → 0.22.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {agentbundle-0.22.0 → agentbundle-0.22.1}/PKG-INFO +1 -1
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/_data/catalogue.schema.json +3 -3
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/catalogue_tooling/config.py +0 -9
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/catalogue_tooling/package.py +82 -35
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/version.py +1 -1
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle.egg-info/PKG-INFO +1 -1
- {agentbundle-0.22.0 → agentbundle-0.22.1}/pyproject.toml +1 -1
- {agentbundle-0.22.0 → agentbundle-0.22.1}/README-pypi.md +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/README.md +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/__init__.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/__main__.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/_data/adapter.schema.json +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/_data/adapter.toml +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/_data/install-defaults.toml +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/_data/install-marker.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/_data/pack.schema.json +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/_data/plugin-manifest.derived.schema.json +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/_data/plugin-manifest.schema.json +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/_data/profile.schema.json +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/__init__.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/__main__.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/adapter_root_bins.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/adapters/__init__.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/adapters/claude_code.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/adapters/codex.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/adapters/copilot.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/adapters/cursor.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/adapters/gemini.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/adapters/kiro.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/adapters/kiro_cli.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/adapters/kiro_ide.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/contract.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/lint_packs.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/main.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/phase_order.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/projections/__init__.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/projections/codex_agent_toml.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/projections/copilot_agent_md.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/projections/copilot_hooks_json.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/projections/direct_directory.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/projections/gemini_command_toml.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/projections/hook_id.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/projections/kiro_ide_hook.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/projections/merge_into_agent_json.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/projections/merge_json.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/projections/user_merge_json.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/recipes/composite-agents-md.toml +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/recipes/composite-marketplace.toml +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/recipes/marketplace.toml +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/recipes/per-pack-apm-package.toml +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/recipes/per-pack-claude-plugin.toml +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/recipes/per-pack-overlay.toml +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/recipes/self-host.toml +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/scope_rails.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/self_host.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/shared_libs.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/target_resolver.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/__init__.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_adapter_claude_code.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_adapter_codex.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_adapter_copilot.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_adapter_cursor.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_adapter_gemini.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_adapter_kiro.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_adapter_kiro_alias.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_adapter_kiro_cli.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_adapter_kiro_ide.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_adapter_root_bins_projection.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_architect_design_reviewer_projection.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_architect_design_reviewer_rubric_parity.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_build_ships_seeds.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_contract.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_contract_scope.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_contract_v07.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_contract_v08.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_direct_directory_cleanup.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_end_to_end_build.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_lint_agents_md_diataxis_block.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_lint_agents_md_legacy_block.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_lint_agents_md_risk_block.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_lint_packs.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_load_pack_hook_wiring_safely.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_pack_schema.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_pack_schema_allowed_adapters.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_pack_schema_install.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_pipeline.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_plugin_manifest_schema.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_projectable_subset.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_projections_merge_json.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_scope_rails.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_security.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_self_host_check.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_self_host_fixture_guard.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_self_host_recipe_config.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_shared_libs_projection.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_shared_prefix_contract.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_shipped_packs_v07_declarations.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_shipped_packs_v08_declarations.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_user_libs_projection.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_validate.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_writers_emit_lf.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/user_libs.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/validate.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/catalogue.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/catalogue_tooling/__init__.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/catalogue_tooling/archive.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/catalogue_tooling/build.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/catalogue_tooling/defaults.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/catalogue_tooling/diagnostics.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/catalogue_tooling/lint.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/catalogue_tooling/results.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/catalogue_tooling/self_host.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/catalogue_tooling/skill_spec_lint.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/catalogue_tooling/verify.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/categories.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/cli.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/commands/__init__.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/commands/_common.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/commands/_drop_warning.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/commands/adapt.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/commands/catalogue_build.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/commands/catalogue_lint.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/commands/catalogue_package.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/commands/catalogue_self_host.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/commands/catalogue_sync_defaults.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/commands/catalogue_tooling_stub.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/commands/catalogue_verify.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/commands/config.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/commands/diff.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/commands/docs.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/commands/init_state.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/commands/install.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/commands/list_installed.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/commands/list_packs.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/commands/list_profiles.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/commands/list_targets.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/commands/oplog_cmd.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/commands/pack_config_cmd.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/commands/pack_evals.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/commands/package_catalogue.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/commands/profile.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/commands/reconcile.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/commands/render.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/commands/scaffold.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/commands/show.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/commands/uninstall.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/commands/upgrade.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/commands/validate.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/config.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/https_catalogue.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/oplog.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/pack_inventory.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/render.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/safety.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/scope.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/source_defaults.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/statelock.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/user_config.py +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle.egg-info/SOURCES.txt +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle.egg-info/dependency_links.txt +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle.egg-info/entry_points.txt +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle.egg-info/requires.txt +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle.egg-info/top_level.txt +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/setup.cfg +0 -0
- {agentbundle-0.22.0 → agentbundle-0.22.1}/tests/test_linear_primitive.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agentbundle
|
|
3
|
-
Version: 0.22.
|
|
3
|
+
Version: 0.22.1
|
|
4
4
|
Summary: npm for your coding agent. Install packs of skills, subagents, and hooks into any repo, for every major agent.
|
|
5
5
|
Author-email: eugenelim <eugenelim@users.noreply.github.com>
|
|
6
6
|
License: Apache-2.0 OR MIT
|
|
@@ -108,17 +108,17 @@
|
|
|
108
108
|
"package": {
|
|
109
109
|
"type": "object",
|
|
110
110
|
"additionalProperties": false,
|
|
111
|
-
"required": ["include"
|
|
111
|
+
"required": ["include"],
|
|
112
112
|
"properties": {
|
|
113
113
|
"include": {
|
|
114
114
|
"type": "array",
|
|
115
115
|
"items": { "type": "string" },
|
|
116
|
-
"description": "Pack paths to include in a packaged archive."
|
|
116
|
+
"description": "Pack paths to include in a packaged archive. Empty list means include all packs."
|
|
117
117
|
},
|
|
118
118
|
"required": {
|
|
119
119
|
"type": "array",
|
|
120
120
|
"items": { "type": "string" },
|
|
121
|
-
"description": "
|
|
121
|
+
"description": "Required root-level file paths. Overrides the default LICENSE-APACHE / LICENSE-MIT constraint when set. Absent or empty means use the default requirement."
|
|
122
122
|
}
|
|
123
123
|
}
|
|
124
124
|
}
|
|
@@ -373,15 +373,6 @@ def load_catalogue_config(root: Path) -> CatalogueConfig | None:
|
|
|
373
373
|
include = pkg_raw.get("include", [])
|
|
374
374
|
required = pkg_raw.get("required", [])
|
|
375
375
|
|
|
376
|
-
include_set = set(include)
|
|
377
|
-
required_set = set(required)
|
|
378
|
-
not_in_include = required_set - include_set
|
|
379
|
-
if not_in_include:
|
|
380
|
-
raise CatalogueConfigError(
|
|
381
|
-
f"catalogue.toml: package.required entries not in package.include: "
|
|
382
|
-
f"{sorted(not_in_include)}"
|
|
383
|
-
)
|
|
384
|
-
|
|
385
376
|
package = CataloguePackage(include=include, required=required)
|
|
386
377
|
|
|
387
378
|
# --- [distribution.agentbundle] ---
|
|
@@ -92,26 +92,60 @@ def _validate_flag_value(flag: str, value: str) -> str | None:
|
|
|
92
92
|
# ---------------------------------------------------------------------------
|
|
93
93
|
|
|
94
94
|
|
|
95
|
-
def _scan_content(root: Path) -> list[Path]:
|
|
95
|
+
def _scan_content(root: Path, pack_include: list[str] | None = None) -> list[Path]:
|
|
96
96
|
"""Return sorted list of regular (non-symlink) files from the content allowlist.
|
|
97
97
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
98
|
+
When pack_include is non-empty, only the listed pack directories are walked;
|
|
99
|
+
non-pack dirs (profiles/, contracts/, .claude-plugin/) are always included.
|
|
100
|
+
An empty or absent pack_include includes all packs (default behavior).
|
|
101
101
|
"""
|
|
102
102
|
collected: list[Path] = []
|
|
103
103
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
104
|
+
if pack_include:
|
|
105
|
+
for entry in pack_include:
|
|
106
|
+
parts = Path(entry).parts
|
|
107
|
+
if not entry.startswith("packs/") or ".." in parts:
|
|
108
|
+
raise ValueError(
|
|
109
|
+
f"pack_include entry {entry!r} must start with 'packs/' and must not "
|
|
110
|
+
f"contain path traversal components"
|
|
111
|
+
)
|
|
112
|
+
d = root / entry
|
|
113
|
+
if not d.is_dir():
|
|
114
|
+
raise ValueError(
|
|
115
|
+
f"pack_include entry {entry!r} does not exist on disk at {d}"
|
|
116
|
+
)
|
|
117
|
+
for dirpath, dirnames, filenames in os.walk(str(d), followlinks=False):
|
|
118
|
+
dp = Path(dirpath)
|
|
119
|
+
for fname in filenames:
|
|
120
|
+
p = dp / fname
|
|
121
|
+
if p.is_file() and not p.is_symlink():
|
|
122
|
+
collected.append(p)
|
|
123
|
+
dirnames[:] = [dn for dn in dirnames if not (dp / dn).is_symlink()]
|
|
124
|
+
for dir_parts in _DEFAULT_INCLUDE_DIRS:
|
|
125
|
+
if dir_parts[0] == "packs":
|
|
126
|
+
continue
|
|
127
|
+
d = root.joinpath(*dir_parts)
|
|
128
|
+
if not d.is_dir() or d.is_symlink():
|
|
129
|
+
continue
|
|
130
|
+
for dirpath, dirnames, filenames in os.walk(str(d), followlinks=False):
|
|
131
|
+
dp = Path(dirpath)
|
|
132
|
+
for fname in filenames:
|
|
133
|
+
p = dp / fname
|
|
134
|
+
if p.is_file() and not p.is_symlink():
|
|
135
|
+
collected.append(p)
|
|
136
|
+
dirnames[:] = [dn for dn in dirnames if not (dp / dn).is_symlink()]
|
|
137
|
+
else:
|
|
138
|
+
for dir_parts in _DEFAULT_INCLUDE_DIRS:
|
|
139
|
+
d = root.joinpath(*dir_parts)
|
|
140
|
+
if not d.is_dir() or d.is_symlink():
|
|
141
|
+
continue
|
|
142
|
+
for dirpath, dirnames, filenames in os.walk(str(d), followlinks=False):
|
|
143
|
+
dp = Path(dirpath)
|
|
144
|
+
for fname in filenames:
|
|
145
|
+
p = dp / fname
|
|
146
|
+
if p.is_file() and not p.is_symlink():
|
|
147
|
+
collected.append(p)
|
|
148
|
+
dirnames[:] = [dn for dn in dirnames if not (dp / dn).is_symlink()]
|
|
115
149
|
|
|
116
150
|
for fname in _DEFAULT_INCLUDE_ROOT_FILES:
|
|
117
151
|
p = root / fname
|
|
@@ -121,10 +155,18 @@ def _scan_content(root: Path) -> list[Path]:
|
|
|
121
155
|
return sorted(collected, key=lambda p: p.relative_to(root).as_posix())
|
|
122
156
|
|
|
123
157
|
|
|
124
|
-
def _check_required_files(
|
|
125
|
-
|
|
158
|
+
def _check_required_files(
|
|
159
|
+
root: Path,
|
|
160
|
+
content_paths: list[Path],
|
|
161
|
+
required_override: list[str] | None = None,
|
|
162
|
+
) -> str | None:
|
|
163
|
+
"""Return error string if any required path is missing, else None.
|
|
164
|
+
|
|
165
|
+
When required_override is not None, checks those paths instead of _REQUIRED_PATHS.
|
|
166
|
+
"""
|
|
167
|
+
required = required_override if required_override is not None else _REQUIRED_PATHS
|
|
126
168
|
posix_set = {p.relative_to(root).as_posix() for p in content_paths}
|
|
127
|
-
for req in
|
|
169
|
+
for req in required:
|
|
128
170
|
if req.endswith("/"):
|
|
129
171
|
# Directory check
|
|
130
172
|
if not (root / req.rstrip("/")).is_dir():
|
|
@@ -479,10 +521,30 @@ def package_catalogue(
|
|
|
479
521
|
)
|
|
480
522
|
return _err(f"pre-package verify failed: {msgs}")
|
|
481
523
|
|
|
524
|
+
# --- Load catalogue.toml for package config ---
|
|
525
|
+
pack_include: list[str] = []
|
|
526
|
+
required_override: list[str] | None = None
|
|
527
|
+
catalogue_name: str | None = None
|
|
528
|
+
catalogue_display_name: str | None = None
|
|
529
|
+
min_version_manifest = minimum_agentbundle_version
|
|
530
|
+
try:
|
|
531
|
+
from agentbundle.catalogue_tooling.config import load_catalogue_config
|
|
532
|
+
config = load_catalogue_config(root)
|
|
533
|
+
if config is not None:
|
|
534
|
+
catalogue_name = config.name
|
|
535
|
+
catalogue_display_name = config.display_name
|
|
536
|
+
if min_version_manifest is None:
|
|
537
|
+
min_version_manifest = config.minimum_agentbundle_version
|
|
538
|
+
pack_include = config.package.include or []
|
|
539
|
+
if config.package.required:
|
|
540
|
+
required_override = config.package.required
|
|
541
|
+
except Exception:
|
|
542
|
+
pass
|
|
543
|
+
|
|
482
544
|
# --- Scan and validate content ---
|
|
483
|
-
content_paths = _scan_content(root)
|
|
545
|
+
content_paths = _scan_content(root, pack_include=pack_include)
|
|
484
546
|
|
|
485
|
-
req_err = _check_required_files(root, content_paths)
|
|
547
|
+
req_err = _check_required_files(root, content_paths, required_override=required_override)
|
|
486
548
|
if req_err is not None:
|
|
487
549
|
return _err(req_err)
|
|
488
550
|
|
|
@@ -534,21 +596,6 @@ def package_catalogue(
|
|
|
534
596
|
if published_at is None:
|
|
535
597
|
published_at = datetime.now(UTC).replace(microsecond=0).isoformat()
|
|
536
598
|
|
|
537
|
-
# --- Read catalogue.toml metadata for manifest ---
|
|
538
|
-
catalogue_name: str | None = None
|
|
539
|
-
catalogue_display_name: str | None = None
|
|
540
|
-
min_version_manifest = minimum_agentbundle_version
|
|
541
|
-
try:
|
|
542
|
-
from agentbundle.catalogue_tooling.config import load_catalogue_config
|
|
543
|
-
config = load_catalogue_config(root)
|
|
544
|
-
if config is not None:
|
|
545
|
-
catalogue_name = config.name
|
|
546
|
-
catalogue_display_name = config.display_name
|
|
547
|
-
if min_version_manifest is None:
|
|
548
|
-
min_version_manifest = config.minimum_agentbundle_version
|
|
549
|
-
except Exception:
|
|
550
|
-
pass
|
|
551
|
-
|
|
552
599
|
# --- Compute marketplace_digest ---
|
|
553
600
|
marketplace_digest: str | None = None
|
|
554
601
|
marketplace_bytes = file_bytes.get(".claude-plugin/marketplace.json")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agentbundle
|
|
3
|
-
Version: 0.22.
|
|
3
|
+
Version: 0.22.1
|
|
4
4
|
Summary: npm for your coding agent. Install packs of skills, subagents, and hooks into any repo, for every major agent.
|
|
5
5
|
Author-email: eugenelim <eugenelim@users.noreply.github.com>
|
|
6
6
|
License: 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.22.
|
|
7
|
+
version = "0.22.1"
|
|
8
8
|
description = "npm for your coding agent. Install packs of skills, subagents, and hooks into any repo, for every major agent."
|
|
9
9
|
requires-python = ">=3.11"
|
|
10
10
|
dependencies = []
|
|
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.22.0 → agentbundle-0.22.1}/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
|
{agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/projections/copilot_hooks_json.py
RENAMED
|
File without changes
|
|
File without changes
|
{agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/projections/gemini_command_toml.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/projections/merge_into_agent_json.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/recipes/composite-agents-md.toml
RENAMED
|
File without changes
|
{agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/recipes/composite-marketplace.toml
RENAMED
|
File without changes
|
|
File without changes
|
{agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/recipes/per-pack-apm-package.toml
RENAMED
|
File without changes
|
{agentbundle-0.22.0 → agentbundle-0.22.1}/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.22.0 → agentbundle-0.22.1}/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.22.0 → agentbundle-0.22.1}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_direct_directory_cleanup.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_lint_agents_md_risk_block.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_pack_schema_install.py
RENAMED
|
File without changes
|
|
File without changes
|
{agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_plugin_manifest_schema.py
RENAMED
|
File without changes
|
{agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_projectable_subset.py
RENAMED
|
File without changes
|
{agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_projections_merge_json.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_self_host_fixture_guard.py
RENAMED
|
File without changes
|
{agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_self_host_recipe_config.py
RENAMED
|
File without changes
|
{agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_shared_libs_projection.py
RENAMED
|
File without changes
|
{agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_shared_prefix_contract.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentbundle-0.22.0 → agentbundle-0.22.1}/agentbundle/build/tests/test_user_libs_projection.py
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
|
|
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
|
|
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
|