kanibako-cli 1.8.0.dev95__tar.gz → 1.8.0.dev98__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.
Files changed (221) hide show
  1. {kanibako_cli-1.8.0.dev95/src/kanibako_cli.egg-info → kanibako_cli-1.8.0.dev98}/PKG-INFO +1 -1
  2. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/pyproject.toml +1 -1
  3. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/__init__.py +1 -1
  4. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/targets/__init__.py +46 -1
  5. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98/src/kanibako_cli.egg-info}/PKG-INFO +1 -1
  6. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/LICENSE.md +0 -0
  7. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/README.md +0 -0
  8. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/setup.cfg +0 -0
  9. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/__main__.py +0 -0
  10. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/_atomic.py +0 -0
  11. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/agent_config.py +0 -0
  12. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/agent_defaults.py +0 -0
  13. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/agent_ref.py +0 -0
  14. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/auth_browser.py +0 -0
  15. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/auth_parser.py +0 -0
  16. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/box_lifecycle.py +0 -0
  17. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/box_supervisor.py +0 -0
  18. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/browser_sidecar.py +0 -0
  19. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/browser_state.py +0 -0
  20. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/bun_sea.py +0 -0
  21. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/channels/__init__.py +0 -0
  22. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/channels/channels.py +0 -0
  23. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/channels/helper_client.py +0 -0
  24. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/channels/helper_listener.py +0 -0
  25. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/channels/helpers.py +0 -0
  26. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/cli.py +0 -0
  27. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/commands/__init__.py +0 -0
  28. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/commands/agent_cmd.py +0 -0
  29. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/commands/archive.py +0 -0
  30. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/commands/baseline_cmd.py +0 -0
  31. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/commands/box/__init__.py +0 -0
  32. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/commands/box/_duplicate.py +0 -0
  33. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/commands/box/_lifecycle.py +0 -0
  34. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/commands/box/_parser.py +0 -0
  35. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/commands/clean.py +0 -0
  36. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/commands/code_cmd.py +0 -0
  37. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/commands/diagnose.py +0 -0
  38. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/commands/flags.py +0 -0
  39. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/commands/fork_cmd.py +0 -0
  40. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/commands/helper_cmd.py +0 -0
  41. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/commands/image.py +0 -0
  42. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/commands/install.py +0 -0
  43. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/commands/restore.py +0 -0
  44. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/commands/setup_cmd.py +0 -0
  45. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/commands/start.py +0 -0
  46. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/commands/stop.py +0 -0
  47. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/commands/system_cmd.py +0 -0
  48. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/commands/upgrade.py +0 -0
  49. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/commands/vault_cmd.py +0 -0
  50. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/commands/workset_cmd.py +0 -0
  51. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/containers/Containerfile.template-android +0 -0
  52. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/containers/Containerfile.template-dotnet +0 -0
  53. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/containers/Containerfile.template-js +0 -0
  54. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/containers/Containerfile.template-jvm +0 -0
  55. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/containers/Containerfile.template-systems +0 -0
  56. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/containers/__init__.py +0 -0
  57. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/containers/tmux.conf +0 -0
  58. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/data/__init__.py +0 -0
  59. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/data/core-defaults.yaml +0 -0
  60. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/data/global/KICKOFF.md +0 -0
  61. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/data/global/rom/COLLECTION.md +0 -0
  62. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/data/global/rom/bible/ROM_CONTENTS.md +0 -0
  63. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/data/global/rom/bible/box/directives/ROM_BOX.md +0 -0
  64. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/data/global/rom/bible/general/directives/ROM_GENERAL.md +0 -0
  65. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/data/global/rom/bible/workset/directives/ROM_WORKSET.md +0 -0
  66. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/data/global/template/agent_default/canon/handbook/directives/SYS_AGENT.md +0 -0
  67. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/data/global/template/box/canon/handbook/directives/SYS_BOX.md +0 -0
  68. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/data/global/template/box/home/canon/notebook/MY_CONTENTS.md +0 -0
  69. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/data/global/template/box/home/canon/notebook/directives/CONVENTIONS.md +0 -0
  70. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/data/global/template/box/home/canon/workbook/devnotes.md +0 -0
  71. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/data/global/template/box/home/canon/workbook/tasks.md +0 -0
  72. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/data/global/template/handbook/SYS_CONTENTS.md +0 -0
  73. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/data/global/template/handbook/general/directives/SYS_GENERAL.md +0 -0
  74. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/data/global/template/handbook/general/directives/rules/CANON.md +0 -0
  75. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/data/global/template/handbook/general/directives/rules/DATAPOLICY.md +0 -0
  76. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/data/global/template/handbook/general/directives/rules/INTERACTION.md +0 -0
  77. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/data/global/template/workset/canon/handbook/directives/SYS_WORKSET.md +0 -0
  78. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/data/image-baseline.yaml +0 -0
  79. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/data/keyspace-manifest.yaml +0 -0
  80. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/errors.py +0 -0
  81. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/git.py +0 -0
  82. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/install_method.py +0 -0
  83. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/kuid.py +0 -0
  84. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/launch/__init__.py +0 -0
  85. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/launch/box_identity.py +0 -0
  86. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/launch/box_resolve.py +0 -0
  87. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/launch/creds_watcher.py +0 -0
  88. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/launch/hygiene.py +0 -0
  89. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/launch/journal.py +0 -0
  90. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/launch/shells.py +0 -0
  91. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/launch/templates.py +0 -0
  92. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/log.py +0 -0
  93. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/persona_store.py +0 -0
  94. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/plugins/__init__.py +0 -0
  95. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/project/__init__.py +0 -0
  96. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/project/import_reconcile.py +0 -0
  97. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/project/names.py +0 -0
  98. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/project/registry_store.py +0 -0
  99. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/project/workset.py +0 -0
  100. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/project/workset_registry.py +0 -0
  101. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/py.typed +0 -0
  102. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/runtime/__init__.py +0 -0
  103. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/runtime/baseline.py +0 -0
  104. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/runtime/container.py +0 -0
  105. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/runtime/containerfiles.py +0 -0
  106. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/runtime/freshness.py +0 -0
  107. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/runtime/image_sharing.py +0 -0
  108. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/runtime/registry.py +0 -0
  109. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/runtime/rig_bundle.py +0 -0
  110. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/runtime/rig_meta.py +0 -0
  111. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/runtime/rig_registry.py +0 -0
  112. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/runtime/rig_resolve.py +0 -0
  113. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/runtime/rig_source.py +0 -0
  114. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/runtime/templates_image.py +0 -0
  115. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/scripts/__init__.py +0 -0
  116. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/scripts/helper-init.sh +0 -0
  117. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/scripts/import-directives.py +0 -0
  118. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/scripts/kanibako-entry +0 -0
  119. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/scripts/kanibako-secrets.sh +0 -0
  120. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/settings/__init__.py +0 -0
  121. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/settings/agent_config.py +0 -0
  122. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/settings/agent_defaults.py +0 -0
  123. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/settings/agent_file.py +0 -0
  124. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/settings/agent_representation.py +0 -0
  125. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/settings/agent_select.py +0 -0
  126. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/settings/config.py +0 -0
  127. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/settings/config_dest.py +0 -0
  128. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/settings/config_display.py +0 -0
  129. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/settings/config_interface.py +0 -0
  130. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/settings/config_io.py +0 -0
  131. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/settings/config_keys.py +0 -0
  132. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/settings/core_defaults.py +0 -0
  133. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/settings/defaults_inventory.py +0 -0
  134. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/settings/kb_store.py +0 -0
  135. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/settings/keyspace_manifest.py +0 -0
  136. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/settings/keystore.py +0 -0
  137. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/settings/keystore_strings.py +0 -0
  138. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/settings/paths.py +0 -0
  139. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/settings/paths_defaults.py +0 -0
  140. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/settings/settings_assemble.py +0 -0
  141. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/settings/settings_categories.py +0 -0
  142. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/settings/settings_cli_level.py +0 -0
  143. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/settings/settings_configset.py +0 -0
  144. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/settings/settings_expand.py +0 -0
  145. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/settings/settings_keyspace.py +0 -0
  146. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/settings/settings_launch.py +0 -0
  147. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/settings/settings_merge.py +0 -0
  148. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/settings/settings_prefs.py +0 -0
  149. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/settings/settings_resolve.py +0 -0
  150. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/settings/settings_views.py +0 -0
  151. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/settings/store_collapse.py +0 -0
  152. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/settings/store_shape.py +0 -0
  153. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/settings_resolve.py +0 -0
  154. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/snapshots.py +0 -0
  155. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/targets/assembly.py +0 -0
  156. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/targets/base.py +0 -0
  157. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/targets/credsync.py +0 -0
  158. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/targets/no_agent.py +0 -0
  159. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/tweakcc.py +0 -0
  160. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/tweakcc_cache.py +0 -0
  161. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/utils.py +0 -0
  162. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/vscode/__init__.py +0 -0
  163. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/vscode/vscode_config.py +0 -0
  164. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/vscode/vscode_remote.py +0 -0
  165. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako/vscode_config.py +0 -0
  166. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako_cli.egg-info/SOURCES.txt +0 -0
  167. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako_cli.egg-info/dependency_links.txt +0 -0
  168. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako_cli.egg-info/entry_points.txt +0 -0
  169. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako_cli.egg-info/requires.txt +0 -0
  170. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/src/kanibako_cli.egg-info/top_level.txt +0 -0
  171. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_agent_ref.py +0 -0
  172. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_agent_resolution.py +0 -0
  173. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_archive_restore_integration.py +0 -0
  174. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_atomic.py +0 -0
  175. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_auth_browser.py +0 -0
  176. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_auth_parser.py +0 -0
  177. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_box_lifecycle.py +0 -0
  178. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_box_supervisor.py +0 -0
  179. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_browser_sidecar.py +0 -0
  180. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_browser_state.py +0 -0
  181. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_bun_sea.py +0 -0
  182. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_canon_delivery.py +0 -0
  183. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_canon_lifecycle_deletion.py +0 -0
  184. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_categories_live.py +0 -0
  185. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_category_collisions.py +0 -0
  186. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_cli.py +0 -0
  187. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_cli_exitcodes.py +0 -0
  188. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_comms.py +0 -0
  189. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_create_recovery.py +0 -0
  190. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_credentials.py +0 -0
  191. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_delivery_manifest.py +0 -0
  192. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_env_cmd.py +0 -0
  193. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_error_messages.py +0 -0
  194. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_explicit_create.py +0 -0
  195. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_flawed_oracle.py +0 -0
  196. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_fork.py +0 -0
  197. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_git.py +0 -0
  198. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_helper_cmd.py +0 -0
  199. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_import.py +0 -0
  200. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_import_directives.py +0 -0
  201. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_import_recovery.py +0 -0
  202. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_init_cmd.py +0 -0
  203. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_install_integration.py +0 -0
  204. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_instructions_bind.py +0 -0
  205. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_kuid.py +0 -0
  206. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_lifecycle_integration.py +0 -0
  207. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_log.py +0 -0
  208. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_meta_pin.py +0 -0
  209. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_persona_config_set.py +0 -0
  210. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_persona_store.py +0 -0
  211. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_plugin_import_compat.py +0 -0
  212. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_protected_tree_cleanup.py +0 -0
  213. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_resource_scoping.py +0 -0
  214. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_safety_invariants.py +0 -0
  215. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_seed_hostdest.py +0 -0
  216. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_setup_cmd.py +0 -0
  217. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_snapshots.py +0 -0
  218. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_start_integration.py +0 -0
  219. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_status.py +0 -0
  220. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_tweakcc.py +0 -0
  221. {kanibako_cli-1.8.0.dev95 → kanibako_cli-1.8.0.dev98}/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kanibako-cli
3
- Version: 1.8.0.dev95
3
+ Version: 1.8.0.dev98
4
4
  Summary: Run AI coding agents in rootless containers with per-project isolation
5
5
  Requires-Python: >=3.11
6
6
  License-File: LICENSE.md
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "kanibako-cli"
7
- version = "1.8.0.dev95"
7
+ version = "1.8.0.dev98"
8
8
  description = "Run AI coding agents in rootless containers with per-project isolation"
9
9
  requires-python = ">=3.11"
10
10
  dependencies = ["argcomplete>=3.0", "PyYAML>=6.0", "packaging>=20.0"]
@@ -1,6 +1,6 @@
1
1
  """kanibako: Run AI coding agents in rootless containers with per-project isolation."""
2
2
 
3
- __version__ = "1.8.0.dev95"
3
+ __version__ = "1.8.0.dev98"
4
4
 
5
5
  # Two-tier setup/config compatibility constants for the 5-band setup-completion
6
6
  # gate (design: ``plans/2026-06-23-setup-version-tiers-NEXT.md``). Both are
@@ -6,6 +6,7 @@ import importlib
6
6
  import importlib.util
7
7
  import logging
8
8
  import pkgutil
9
+ import sys
9
10
  from importlib.metadata import entry_points
10
11
  from pathlib import Path
11
12
 
@@ -20,6 +21,12 @@ __all__ = [
20
21
 
21
22
  logger = logging.getLogger(__name__)
22
23
 
24
+ # Entry points whose load() already failed, so the stderr warning is emitted ONCE
25
+ # per process. ``discover_targets`` is called many times per command (selection,
26
+ # setup's agent menu, the target resolve), and repeating the same paragraph on
27
+ # every call would bury the rest of the output.
28
+ _EP_LOAD_FAILED: set[str] = set()
29
+
23
30
 
24
31
  def _scan_plugin_modules(targets: dict[str, type[Target]]) -> None:
25
32
  """Scan ``kanibako.plugins.*`` for Target subclasses (bind-mount fallback).
@@ -119,7 +126,45 @@ def discover_targets(project_path: Path | None = None) -> dict[str, type[Target]
119
126
  # avoid clashing with this entry-point registry. Do not "unify".
120
127
  eps = entry_points(group="kanibako.agents")
121
128
  for ep in eps:
122
- cls = ep.load()
129
+ # ⚑⚑ ONE BROKEN ADAPTER MUST NOT TAKE THE WHOLE CLI DOWN. ``ep.load()``
130
+ # imports third-party code, and an adapter built against a different
131
+ # kanibako-cli raises ImportError from its own module body. Unguarded,
132
+ # that propagated out of discovery and killed whatever command called it
133
+ # — as a raw traceback, from a plugin the user was not even using, since
134
+ # agent SELECTION enumerates every entry point. Worse, ``setup_cmd``
135
+ # calls this too, so the documented cure (`kanibako setup`) died the same
136
+ # way and hand-editing site-packages was the only way back in. MEASURED
137
+ # 2026-08-17 with a stale kanibako-agent-goose: three sequential
138
+ # dead-ends, three manual edits.
139
+ #
140
+ # The two FALLBACK scanners below have always tolerated a failing plugin
141
+ # (``logger.debug`` + continue); this loop is the primary path and was the
142
+ # only one that did not. Skip-and-warn brings it in line.
143
+ #
144
+ # WARN, never swallow: a pip-installed adapter that cannot load is a
145
+ # broken install the user must know about, so this goes to stderr with
146
+ # the cure — unlike the fallbacks' debug-level note, which covers
147
+ # optional bind-mount/file-drop paths where absence is routine.
148
+ try:
149
+ cls = ep.load()
150
+ except Exception as exc:
151
+ if ep.name not in _EP_LOAD_FAILED:
152
+ _EP_LOAD_FAILED.add(ep.name)
153
+ dist = getattr(getattr(ep, "dist", None), "name", None)
154
+ who = f"'{dist}'" if dist else f"the '{ep.name}' agent plugin"
155
+ print(
156
+ f"Warning: {who} failed to load and is being SKIPPED: "
157
+ f"{type(exc).__name__}: {exc}\n"
158
+ f" The '{ep.name}' agent is unavailable; every other agent, "
159
+ f"and 'kanibako setup', still work. This usually means the "
160
+ f"package was built against a different kanibako-cli — "
161
+ f"upgrade it, or uninstall it if you do not use it.",
162
+ file=sys.stderr,
163
+ )
164
+ logger.debug(
165
+ "entry point %s failed to load", ep.name, exc_info=True,
166
+ )
167
+ continue
123
168
  targets[ep.name] = cls
124
169
 
125
170
  # Fallback: scan kanibako.plugins.* for bind-mounted plugins
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kanibako-cli
3
- Version: 1.8.0.dev95
3
+ Version: 1.8.0.dev98
4
4
  Summary: Run AI coding agents in rootless containers with per-project isolation
5
5
  Requires-Python: >=3.11
6
6
  License-File: LICENSE.md