Summary
Bundle.select() only returns assets that map to typed handles (skill, prompt, toolset, agent_spec). Assets with type config or other are silently excluded from the selection, even when calling select() with no filters (which a user would expect to mean "everything").
Steps to Reproduce
bundle = musher.pull("ns/my-bundle:1.0.0")
# Bundle has 7 files: 2 skill, 1 prompt, 1 toolset, 1 agent_spec, 1 config, 1 other
print(len(bundle.files())) # → 7
selection = bundle.select() # No filters = "select all"
print(len(selection.files())) # → 5 (config and other are missing)
Expected Behavior
Either:
select() with no filters should include all files (including config/other), or
BundleSelection should expose a way to access untyped files, or
- The behavior should be clearly documented
Actual Behavior
config and other typed assets are silently dropped. Users who rely on select().files() to get "all bundle files" will miss assets.
Suggested Fix
Option A: When no filters are passed, include all files in sel_files (not just those belonging to typed handles).
Option B: Add include_untyped: bool = True parameter to select().
Summary
Bundle.select()only returns assets that map to typed handles (skill,prompt,toolset,agent_spec). Assets with typeconfigorotherare silently excluded from the selection, even when callingselect()with no filters (which a user would expect to mean "everything").Steps to Reproduce
Expected Behavior
Either:
select()with no filters should include all files (includingconfig/other), orBundleSelectionshould expose a way to access untyped files, orActual Behavior
configandothertyped assets are silently dropped. Users who rely onselect().files()to get "all bundle files" will miss assets.Suggested Fix
Option A: When no filters are passed, include all files in
sel_files(not just those belonging to typed handles).Option B: Add
include_untyped: bool = Trueparameter toselect().